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