# Makefile for the DDF firmware with avr-gcc and avrdude

# Configure AVR part here
# #######################
PART=m8
MCU=-mmcu=atmega8
#PROGRAMMER=stk500v2 -P/dev/tty.KeySerial1
#PROGRAMMER=stk500v2 -P/dev/com1
PROGRAMMER=avrisp -P/dev/com1

# Project main file
# #################
TRG=ddf
all: $(TRG).hex

# Project installation
# ####################
install: $(TRG).hex
	avrdude -U flash:w:$(TRG).hex:i -p $(PART) -c $(PROGRAMMER) -e

# Project dependencies (NOTE: mem => hex conversion is automatic)
# ####################

$(TRG).mem: firmware.o usart.o twi.o
	avr-gcc $(CFLAGS) $(MCU) -g -o $@ $^

firmware.o: firmware.c twi.h usart.h
usart.o: usart.c usart.h
twi.o: twi.c twi.h

# DO NOT EDIT BELOW THIS LINE
# ###########################
hfuse:
	avrdude -p $(PART) -c $(PROGRAMMER) -U hfuse:w:0xd9:m
lfuse:
	avrdude -p $(PART) -c $(PROGRAMMER) -U lfuse:w:0x61:m
run:
	avrdude -p $(PART) -c $(PROGRAMMER) -Enoreset
clean:
	rm -f *.hex *.mem *.o

term:
	avrdude -p $(PART) -c $(PROGRAMMER) -t

erase:
	avrdude -p $(PART) -c $(PROGRAMMER) -e

size:
	avr-size ddf.hex


%.o : %.c
	avr-gcc $(CFLAGS) $(MCU) -g -Os -mcall-prologues -c $<

%.hex : %.mem
	avr-objcopy -O ihex $< $@
