6 FEATURES := LCD_SHIFTREG LCD_ASYNC
7 CFLAGS := -Wall -Os -ffunction-sections -fdata-sections -mmcu=$(MCU) -DF_CPU=$(CLOCK) $(patsubst %,-D%,$(FEATURES))
8 LDFLAGS := -Os -Wl,--gc-sections -mmcu=$(MCU)
10 OBJCOPY := avr-objcopy
11 ifeq ($(MCU),atmega168)
19 @echo " %.hex: Build firmware from %.c"
20 @echo " upload-%: Upload firmware to AVR"
21 @echo " clean: Clean all built files"
24 @echo " MCU: Microcontroller type"
25 @echo " Arduino Duemilanove = atmega328p (default)"
26 @echo " Arduino Mini = atmega168"
29 $(OBJCOPY) -O ihex $< $@
32 $(CC) $(LDFLAGS) -o $@ $^
35 $(CC) -c $(CFLAGS) -o $@ $<
38 $(AVRDUDE) -p$(MCU) -carduino -P/dev/ttyUSB0 -b$(BAUD) -D -Uflash:w:$<:i
45 s88w-t.elf: serial.o timer.o eeprom.o
46 s88w-r.elf: serial.o lcd.o timer.o