0001
0002 SOURCES := $(wildcard [0-9]*x[0-9]*.S)
0003
0004 BIN := $(patsubst %.S, %.bin, $(SOURCES))
0005
0006 IHEX := $(patsubst %.S, %.bin.ihex, $(SOURCES))
0007
0008 CODE := $(patsubst %.S, %.c, $(SOURCES))
0009
0010 all: $(BIN) $(IHEX) $(CODE)
0011
0012 clean:
0013 @rm -f *.o *.bin.ihex *.bin *.c
0014
0015 %.o: %.S
0016 @cc -c $^
0017
0018 %.bin.nocrc: %.o
0019 @objcopy -Obinary $^ $@
0020
0021 %.crc: %.bin.nocrc
0022 @list=$$(for i in `seq 1 127`; do head -c$$i $^ | tail -c1 \
0023 | hexdump -v -e '/1 "%02X+"'; done); \
0024 echo "ibase=16;100-($${list%?})%100" | bc >$@
0025
0026 %.p: %.crc %.S
0027 @cc -c -DCRC="$$(cat $*.crc)" -o $@ $*.S
0028
0029 %.bin: %.p
0030 @objcopy -Obinary $^ $@
0031
0032 %.bin.ihex: %.p
0033 @objcopy -Oihex $^ $@
0034 @dos2unix $@ 2>/dev/null
0035
0036 %.c: %.bin
0037 @echo "{" >$@; hexdump -f hex $^ >>$@; echo "};" >>$@