Makefile
changeset 48 50dc2f4d90fd
parent 47 7f930a94ee1e
child 50 e4ac5a591dcd
equal deleted inserted replaced
47:7f930a94ee1e 48:50dc2f4d90fd
     1 PROG = hello
     1 PROG = hello
     2 # console
     2 # console
     3 # dmx
     3 # dmx
     4 
     4 
     5 all: $(PROG).hex
     5 all: $(PROG).hex
       
     6 
       
     7 build:
       
     8 	mkdir -p build/
     6 
     9 
     7 ## Compiler
    10 ## Compiler
     8 MCU = atmega328p
    11 MCU = atmega328p
     9 
    12 
    10 # CPU clock frequency
    13 # CPU clock frequency
    11 CPU = 16000000
    14 CPU = 16000000
    12 
    15 
    13 CC = avr-gcc
    16 CC = avr-gcc
    14 CFLAGS = -g -mmcu=$(MCU) -DF_CPU=$(CPU)UL -Os
    17 CPPFLAGS = -DF_CPU=$(CPU)UL
       
    18 CFLAGS = -g -mmcu=$(MCU) -Os
    15 
    19 
    16 %.elf: %.c
    20 %.elf: %.c
    17 	$(CC) $(CFLAGS) -o $@ $+
    21 	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $*.c
       
    22 	$(CC) -MM $(CPPFLAGS) -MT $@ -MF build/$*.d $*.c
       
    23 
       
    24 # existing .d files for rebuilding existing .o's
       
    25 -include $(wildcard build/*.d)
    18 
    26 
    19 %.hex: %.elf
    27 %.hex: %.elf
    20 	avr-objcopy -O ihex -R .eeprom $< $@
    28 	avr-objcopy -O ihex -R .eeprom $< $@
    21 
    29 
    22 .PRECIOUS: %.elf
    30 .PRECIOUS: %.elf