12345678910111213141516171819202122232425262728293031323334353637 |
- SOURCES := $(wildcard [0-9]*x[0-9]*.S)
- BIN := $(patsubst %.S, %.bin, $(SOURCES))
- IHEX := $(patsubst %.S, %.bin.ihex, $(SOURCES))
- CODE := $(patsubst %.S, %.c, $(SOURCES))
- all: $(BIN) $(IHEX) $(CODE)
- clean:
- @rm -f *.o *.bin.ihex *.bin *.c
- %.o: %.S
- @cc -c $^
- %.bin.nocrc: %.o
- @objcopy -Obinary $^ $@
- %.crc: %.bin.nocrc
- @list=$$(for i in `seq 1 127`; do head -c$$i $^ | tail -c1 \
- | hexdump -v -e '/1 "%02X+"'; done); \
- echo "ibase=16;100-($${list%?})%100" | bc >$@
- %.p: %.crc %.S
- @cc -c -DCRC="$$(cat $*.crc)" -o $@ $*.S
- %.bin: %.p
- @objcopy -Obinary $^ $@
- %.bin.ihex: %.p
- @objcopy -Oihex $^ $@
- @dos2unix $@ 2>/dev/null
- %.c: %.bin
- @echo "{" >$@; hexdump -f hex $^ >>$@; echo "};" >>$@
|