38 lines
		
	
	
		
			707 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			707 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
 | 
						|
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 "};" >>$@
 |