Makefile: .d build deps
authorTero Marttila <terom@paivola.fi>
Thu, 03 Apr 2014 18:49:02 +0300
changeset 48 50dc2f4d90fd
parent 47 7f930a94ee1e
child 49 f01fb659e54d
Makefile: .d build deps
Makefile
--- a/Makefile	Wed Apr 02 19:10:05 2014 +0300
+++ b/Makefile	Thu Apr 03 18:49:02 2014 +0300
@@ -4,6 +4,9 @@
 
 all: $(PROG).hex
 
+build:
+	mkdir -p build/
+
 ## Compiler
 MCU = atmega328p
 
@@ -11,10 +14,15 @@
 CPU = 16000000
 
 CC = avr-gcc
-CFLAGS = -g -mmcu=$(MCU) -DF_CPU=$(CPU)UL -Os
+CPPFLAGS = -DF_CPU=$(CPU)UL
+CFLAGS = -g -mmcu=$(MCU) -Os
 
 %.elf: %.c
-	$(CC) $(CFLAGS) -o $@ $+
+	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $*.c
+	$(CC) -MM $(CPPFLAGS) -MT $@ -MF build/$*.d $*.c
+
+# existing .d files for rebuilding existing .o's
+-include $(wildcard build/*.d)
 
 %.hex: %.elf
 	avr-objcopy -O ihex -R .eeprom $< $@