--- 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 $< $@