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