]> www.fi.muni.cz Git - bike-lights.git/blob - Makefile
Initial import
[bike-lights.git] / Makefile
1
2
3 PROGRAM=lights
4 SRC=lights.c
5 OBJ=$(SRC:.c=.o)
6
7 MCU=attiny861a
8 # AVRDUDE_MCU=$(MCU)
9 AVRDUDE_MCU=attiny861
10 AVRDUDE_PROGRAMMER=usbasp
11
12 CFLAGS=-Os -mmcu=$(MCU)
13 LDFLAGS=
14 AVRDUDE_FLAGS= -p$(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER)
15
16 FORMAT=ihex
17
18 CC=avr-gcc
19 OBJCOPY=avr-objcopy
20 AVRDUDE=avrdude
21
22 all: $(PROGRAM).hex $(PROGRAM).eep
23
24 program: $(PROGRAM).hex $(PROGRAM).eep
25         $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i -U eeprom:w:$(PROGRAM).eep:i
26
27 .PRECIOUS : $(OBJ) $(PROGRAM).elf
28
29 %.hex: %.elf
30         $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
31
32 %.eep: %.elf
33         $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
34                 --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
35
36 %.elf: $(OBJ)
37         $(CC) $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS)
38
39 %.o: %.c
40         $(CC) -c $(CFLAGS) $< -o $@
41
42 %.s: %.c
43         $(CC) -S -c $(CFLAGS) $< -o $@
44
45 %.o: %.S
46         $(CC) -c $(CFLAGS) $< -o $@
47
48 clean:
49         rm -f $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf *.o *.s
50
51 .PHONY: all clean
52