SOURCES := firmware.c OBJECTS := $(patsubst %.c, %.o, $(SOURCES)) CFLAGS := -O2 -std=c99 -mmcu=atmega48 -Wall -DF_CPU=16000000UL -DDEBUG=1 LDFLAGS := -mmcu=atmega48 -lm all: fw.hex %.o: %.c @echo "[CC] $<" @avr-gcc -o $@ $(CFLAGS) -c $< fw.hex: fw.elf @echo "[HEX] $@" @avr-objcopy $^ -O ihex -R .eeprom $@ fw.elf: ${OBJECTS} @echo "[LD] $@" @avr-gcc -o $@ $(LDFLAGS) $^ fw.S: fw.elf @avr-objdump -d fw.elf -h -m avr > fw.S clean: @rm -f ${OBJECTS} fw.hex fw.elf fw.S backup: avrdude -c buspirate -P /dev/ttyUSB0 -p m48 -U flash:r:"backup.hex":i noreset flash: avrdude -c buspirate -P /dev/ttyUSB0 -p m48 -U flash:w:"fw.hex":i reset .PHONY: all clean backup flash