Makefile
changeset 50 e4ac5a591dcd
parent 48 50dc2f4d90fd
child 51 ec6271f0637b
equal deleted inserted replaced
49:f01fb659e54d 50:e4ac5a591dcd
     1 PROG = hello
     1 PROG = hello
     2 # console
     2 # console
     3 # dmx
     3 # dmx
     4 
     4 
     5 all: $(PROG).hex
     5 HEX = build/src/$(PROG).hex
       
     6 
       
     7 all: $(HEX)
     6 
     8 
     7 build:
     9 build:
     8 	mkdir -p build/
    10 	mkdir -p build/src
     9 
    11 
    10 ## Compiler
    12 ## Compiler
    11 MCU = atmega328p
    13 MCU = atmega328p
    12 
    14 
    13 # CPU clock frequency
    15 # CPU clock frequency
    15 
    17 
    16 CC = avr-gcc
    18 CC = avr-gcc
    17 CPPFLAGS = -DF_CPU=$(CPU)UL
    19 CPPFLAGS = -DF_CPU=$(CPU)UL
    18 CFLAGS = -g -mmcu=$(MCU) -Os
    20 CFLAGS = -g -mmcu=$(MCU) -Os
    19 
    21 
    20 %.elf: %.c
    22 build/%.elf: %.c
    21 	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $*.c
    23 	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $*.c
    22 	$(CC) -MM $(CPPFLAGS) -MT $@ -MF build/$*.d $*.c
    24 	$(CC) -MM $(CPPFLAGS) -MT $@ -MF build/$*.d $*.c
    23 
    25 
    24 # existing .d files for rebuilding existing .o's
    26 # existing .d files for rebuilding existing .o's
    25 -include $(wildcard build/*.d)
    27 -include $(wildcard build/*.d)
    26 
    28 
    27 %.hex: %.elf
    29 build/%.hex: build/%.elf
    28 	avr-objcopy -O ihex -R .eeprom $< $@
    30 	avr-objcopy -O ihex -R .eeprom $< $@
    29 
    31 
    30 .PRECIOUS: %.elf
    32 .PRECIOUS: build/%.elf
    31 
    33 
    32 ## Assembler
    34 ## Assembler
    33 AS = avra
    35 AS = avra
    34 ASFLAGS = 
    36 ASFLAGS = 
    35 
    37 
    56 AD_PORT = /dev/arduino
    58 AD_PORT = /dev/arduino
    57 
    59 
    58 AD = avrdude
    60 AD = avrdude
    59 ADFLAGS = -p $(AD_PART) -c $(AD_PROG) -b $(AD_BAUD) -P $(AD_PORT)
    61 ADFLAGS = -p $(AD_PART) -c $(AD_PROG) -b $(AD_BAUD) -P $(AD_PORT)
    60 
    62 
    61 upload: $(PROG).hex
    63 upload: $(HEX)
    62 	$(AD) $(ADFLAGS) -U flash:w:$<
    64 	$(AD) $(ADFLAGS) -U flash:w:$<
    63 
    65 
    64 ## Console
    66 ## Console
    65 SERIAL_BAUD = 9600
    67 SERIAL_BAUD = 9600
    66 SERIAL_FLOW = n
    68 SERIAL_FLOW = n