--- /dev/null
+# $Id$
+
+MCU = atmega328p
+CLOCK = 16000000
+CFLAGS = -Wall -Os -ffunction-sections -fdata-sections -mmcu=$(MCU) -DF_CPU=$(CLOCK)
+LDFLAGS = -Os -Wl,--gc-sections -mmcu=$(MCU)
+
+help:
+ @echo "Targets:"
+ @echo " %.hex: Build firmware from %.c"
+ @echo " upload-%: Upload firmware to AVR"
+
+%.hex: %.elf
+ avr-objcopy -O ihex $< $@
+
+%.elf: %.o
+ avr-gcc $(LDFLAGS) -o $@ $<
+
+%.o: %.c
+ avr-gcc -c $(CFLAGS) -o $@ $<
+
+upload-%: %.hex
+ avrdude -p$(MCU) -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:$<:i