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