#CHIPNAME=ATmega328P
CHIPNAME=ATmega88A

LC_CHIPNAME = $(shell echo "$(CHIPNAME)" | tr 'A-Z' 'a-z')
DEBUG_FLAGS =

.PHONY: clean flash

all: main.hex main.bin

main.elf: main.S delays.S kernel.S vars.S story.S
	avr-gcc -Xlinker -M \
		-D__AVR_$(CHIPNAME)__ -mmcu=$(LC_CHIPNAME) $(DEBUG_FLAGS) -nostdlib -o $@ $^ > mapfile

interrupt_latency.elf: interrupt_latency.S

%.elf: %.S
	avr-gcc -D__AVR_$(CHIPNAME)__ -mmcu=$(LC_CHIPNAME) -nostdlib -o $@ $<

%.hex: %.elf
	avr-objcopy -j .text -j .data -O ihex $< $@

%.bin: %.elf
	avr-objcopy -j .text -j .data -O binary $< $@

flash: main.hex
	avrdude -v -p $(CHIPNAME) -c avrispmkII -U flash:w:$<:i

clean:
	rm -f main.hex main.elf main.bin mapfile
