Back to home page

OSCL-LXR

 
 

    


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