# bulb - BlinkenArea ultimate logo board
# Copyright (C) 2011-2012 Stefan Schuermans <stefan@blinkenarea.org>
# Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
# a BlinkenArea project - http://www.blinkenarea.org/

NAME = bulb
INC = tn2313def
VER = 1.0.0
LFUSE = 0x64
HFUSE = 0xDF
EFUSE = 0xFF
LOCK = 0xFC

#PROGRAMMER = stk200
#CONNECTION = /dev/parport0
PROGRAMMER = avrisp2
CONNECTION = usb
DEVICE = t2313

AVRA = avra
AVRDUDE = avrdude

AVRDUDE_CALL = $(AVRDUDE) -c $(PROGRAMMER) -P $(CONNECTION) -p $(DEVICE)

.PHONY: all prog prog_fuses prog_auto clean
.SUFFIXES:

all: $(NAME).hex

$(NAME).hex: $(NAME).asm $(INC).inc Makefile
	$(AVRA) -l $(NAME).lst $(NAME).asm

prog_fuses: Makefile
	$(AVRDUDE_CALL) -u -e
	$(AVRDUDE_CALL) -u -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m \
	                   -U efuse:w:$(EFUSE):m

prog: $(NAME).hex Makefile
	$(AVRDUDE_CALL) -u -e
	$(AVRDUDE_CALL) -u -U flash:w:$(NAME).hex
	$(AVRDUDE_CALL) -u -V -U lock:w:$(LOCK):m

prog_auto: $(NAME).hex Makefile
	while ! $(MAKE) prog_fuses || ! $(MAKE) prog; do echo -n; done

clean:
	rm -f $(addprefix $(NAME)., lst obj cof hex eep.hex)