minor cleanup
[tv_i2c_hack] / Makefile
1 src = $(wildcard src/*.c)
2 obj = $(src:.c=.o)
3 bin = tv_i2c_hack
4 hex = $(bin).hex
5 eep = $(bin).eep
6
7 mcu_gcc = atmega168
8 mcu_dude = m168
9
10 CC = avr-gcc
11 OBJCOPY = avr-objcopy
12
13 warn = -pedantic -Wall
14
15 CFLAGS = -Os $(warn) -mmcu=$(mcu_gcc) -DF_CPU=14745600
16 LDFLAGS = -Wl,-Map,$(bin).map -mmcu=$(mcu_gcc) -lprintf_min
17
18 .PHONY: all
19 all: $(hex) $(eep)
20
21 $(bin): $(obj)
22         $(CC) -o $@ $(obj) $(LDFLAGS)
23
24 $(hex): $(bin)
25         $(OBJCOPY) -j .text -j .data -O ihex -R .eeprom $< $@
26
27 $(bin).bin: $(bin)
28         $(OBJCOPY) -j .text -j .data -O binary -R .eeprom $< $@
29
30 $(eep): $(bin)
31         $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@
32
33 .PHONY: fuses
34 fuses:
35         avrdude -c usbtiny -p $(mcu_dude) -U lfuse:w:0xe7:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m
36
37 .PHONY: program
38 program: $(hex)
39         avrdude -c usbtiny -p $(mcu_dude) -e -U flash:w:$(hex)
40
41 .PHONY: clean
42 clean:
43         rm -f $(bin) $(obj) $(hex) $(eep) $(bin).map