• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2SOURCES	:= $(wildcard [0-9]*x[0-9]*.S)
3
4BIN	:= $(patsubst %.S, %.bin, $(SOURCES))
5
6IHEX	:= $(patsubst %.S, %.bin.ihex, $(SOURCES))
7
8CODE	:= $(patsubst %.S, %.c, $(SOURCES))
9
10all:	$(BIN) $(IHEX) $(CODE)
11
12clean:
13	@rm -f *.o *.bin.ihex *.bin *.c
14
15%.o:	%.S
16	@cc -c $^
17
18%.bin.nocrc:	%.o
19	@objcopy -Obinary $^ $@
20
21%.crc:	%.bin.nocrc
22	@list=$$(for i in `seq 1 127`; do head -c$$i $^ | tail -c1 \
23		| hexdump -v -e '/1 "%02X+"'; done); \
24		echo "ibase=16;100-($${list%?})%100" | bc >$@
25
26%.p:	%.crc %.S
27	@cc -c -DCRC="$$(cat $*.crc)" -o $@ $*.S
28
29%.bin:	%.p
30	@objcopy -Obinary $^ $@
31
32%.bin.ihex:	%.p
33	@objcopy -Oihex $^ $@
34	@dos2unix $@ 2>/dev/null
35
36%.c:	%.bin
37	@echo "{" >$@; hexdump -f hex $^ >>$@; echo "};" >>$@
38