X-Git-Url: http://git.asbjorn.biz/?p=rapper.git;a=blobdiff_plain;f=src%2FMakefile;h=0022b3da4f396b655b480b838e74ea7a7e3768f4;hp=bf7dcc7df9ed3bb5c9bb612ed2ae31b10deadd42;hb=626209dbba411cb9604a02fcb02cb2c5f6cec0ff;hpb=ab3f716f01b5b40ce743fbaa5780e12e448b609c diff --git a/src/Makefile b/src/Makefile index bf7dcc7..0022b3d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -11,8 +11,11 @@ USB_OBJS=usb/serial.o usb/core.o usb/desc.o usb/hw.o usb/user.o usb/vcom.o usb/c BOARD_OBJS=$(BPATH)/startup.o $(BPATH)/system.o boards/cortex_m3/core_cm3.o OBJECTS=main.o $(BOARD_OBJS) $(USB_OBJS) +depend=$(shell sh -c 'b=$$(echo $1|sed -e"s/\\.o$$//g");([ -f $$b.d ] \ + && sed -e":a;N;$$!ba;s/\\\\\\n//g" $$b.d|grep "^$$(basename $1):"\ + | cut -d: -f2)||echo $$b.c') -all: crc +all: crc.h crc $(PROJECT).elf: $(OBJECTS) $(PLATFORM)-ld -Map $(PROJECT).map $(LDFLAGS) $(OBJECTS) -o $@ @@ -20,17 +23,21 @@ $(PROJECT).elf: $(OBJECTS) %.bin: %.elf $(PLATFORM)-objcopy -O binary $< $*.bin -%.o: %.c +.SECONDEXPANSION: +%.o: $$(call depend,$$@) $(PLATFORM)-gcc -MM $< -MF $(patsubst %.o,%.d,$@) -MP $(PLATFORM)-gcc $(CFLAGS) -c $< -o $@ .PHONY: clean gdb crc clean: - rm -f $(PROJECT).elf $(OBJECTS) $(OBJECTS:.o=.d) $(PROJECT).map + rm -f $(PROJECT).elf $(OBJECTS) $(OBJECTS:.o=.d) $(PROJECT).map crc.h gdb: $(PLATFORM)-gdb $(PROJECT).elf crc: $(PROJECT).bin - ../tools/lpcrc/lpcrc.sh $(PROJECT).bin $(BPATH)/startup.c + ../tools/lpcrc/lpcrc.sh $(PROJECT).bin crc.h + +crc.h: crc.tmpl.h + cp crc.tmpl.h crc.h