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 "};" >>$@
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 "};" >>$@