Rev Author Line No. Line
1145 kaklik 1  
2 NAME := gpsrl
3 HEX := $(NAME).hex
4 OUT := $(NAME).out
5 MAP := $(NAME).map
6 SOURCES := $(wildcard *.c)
7 HEADERS := $(wildcard *.h)
8 OBJECTS := $(patsubst %.c,%.o,$(SOURCES))
9  
10 MCU := atmega8
11 MCU_AVRDUDE := m8
12  
13 CC := avr-gcc
14 OBJCOPY := avr-objcopy
15 SIZE := avr-size -A
16 DOXYGEN := doxygen
17  
18 CFLAGS := -Wall -pedantic -mmcu=$(MCU) -std=c99 -g -Os
19  
20 all: $(HEX)
21  
22 clean:
23 rm -f $(HEX) $(OUT) $(MAP) $(OBJECTS)
24 rm -rf doc/html
25  
26 flash: $(HEX)
27 avrdude -y -p $(MCU_AVRDUDE) -P /dev/ttyUSB0 -c stk500v2 -U flash:w:$(HEX)
28  
29 $(HEX): $(OUT)
30 $(OBJCOPY) -R .eeprom -O ihex $< $@
31  
32 $(OUT): $(OBJECTS)
33 $(CC) $(CFLAGS) -o $@ -Wl,-Map,$(MAP) $^
34 @echo
35 @$(SIZE) $@
36 @echo
37  
38 %.o: %.c $(HEADERS)
39 $(CC) $(CFLAGS) -c -o $@ $<
40  
41 %.pp: %.c
42 $(CC) $(CFLAGS) -E -o $@ $<
43  
44 %.ppo: %.c
45 $(CC) $(CFLAGS) -E $<
46  
47 doc: $(HEADERS) $(SOURCES) Doxyfile
48 $(DOXYGEN) Doxyfile
49  
50 .PHONY: all clean flash doc
51