--- /dev/null
+MCU_TARGET = atmega168p
+F_CPU = 12000000
+FLASHER = avrdude -c usbasp -p $(MCU_TARGET)
+
+usbasp: fuses
+ifeq ($(F_CPU), 12000000)
+ $(FLASHER) -B 1 -U flash:w:usbasp.atmega168p-12MHz.hex
+else ifeq ($(F_CPU), 16000000)
+ $(FLASHER) -B 1 -U flash:w:usbasp.atmega168p-16MHz.hex
+else ifeq ($(F_CPU), 18000000)
+ $(FLASHER) -B 1 -U flash:w:usbasp.atmega168p-18MHz.hex
+else
+ $(error setting of F_CPU is not supported.)
+endif
+
+fuses:
+ifeq ($(F_CPU), 18000000)
+ $(FLASHER) -B 300 -U lfuse:w:0xe7:m -U hfuse:w:0xdd:m -U efuse:w:0x01:m
+else
+ $(FLASHER) -B 300 -U lfuse:w:0xef:m -U hfuse:w:0xdd:m -U efuse:w:0x01:m
+endif
+
+shell:
+ $(FLASHER) -B 200 -t