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