Makefile
changeset 50 e4ac5a591dcd
parent 48 50dc2f4d90fd
child 51 ec6271f0637b
--- a/Makefile	Thu Apr 03 18:49:18 2014 +0300
+++ b/Makefile	Thu Apr 03 18:54:50 2014 +0300
@@ -2,10 +2,12 @@
 # console
 # dmx
 
-all: $(PROG).hex
+HEX = build/src/$(PROG).hex
+
+all: $(HEX)
 
 build:
-	mkdir -p build/
+	mkdir -p build/src
 
 ## Compiler
 MCU = atmega328p
@@ -17,17 +19,17 @@
 CPPFLAGS = -DF_CPU=$(CPU)UL
 CFLAGS = -g -mmcu=$(MCU) -Os
 
-%.elf: %.c
+build/%.elf: %.c
 	$(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
+build/%.hex: build/%.elf
 	avr-objcopy -O ihex -R .eeprom $< $@
 
-.PRECIOUS: %.elf
+.PRECIOUS: build/%.elf
 
 ## Assembler
 AS = avra
@@ -58,7 +60,7 @@
 AD = avrdude
 ADFLAGS = -p $(AD_PART) -c $(AD_PROG) -b $(AD_BAUD) -P $(AD_PORT)
 
-upload: $(PROG).hex
+upload: $(HEX)
 	$(AD) $(ADFLAGS) -U flash:w:$<
 
 ## Console