APP	= RoomRGB

DEVICEp	= atmega1284p
DEVICEc	= atmega1284p
EFUSE   = 0b11111111

CMD	= avrdude -p $(DEVICEp) -c avrisp2 -P usb -U flash:w:$(APP).hex:i -F -B 1
OPTS	=
CLOCK  ?= crystal

ifeq ($(CLOCK), crystal)
	XTAL = 20000000
	LFUSE = 0b11110111
else
	XTAL = 8000000
	LFUSE = 0b11010010
endif


OPT		= -O2
CC_FLAGS	=  -Wall -Wextra $(OPT) -mmcu=$(DEVICEc) -I/usr/lib/avr/include $(OPTS) -ffunction-sections -DF_CPU=$(XTAL)
LD_FLAGS	=  -Wall -Wextra $(OPT) -mmcu=$(DEVICEc) -Wl,--gc-sections -lm -lc
CC		= avr-gcc
LD		= avr-gcc
EXTRA		= avr-size -Ax $(APP) && avr-objcopy -j .text -j .data -O ihex $(APP) $(APP).hex

OBJS		= LEDs.o main.o nRF.o nwk.o nwk_hw.o

$(APP): $(OBJS)
	$(LD) $(LD_FLAGS) -o $(APP) $(OBJS)
	avr-size -Ax $(APP)
	avr-objcopy -j .text -j .data -O ihex $(APP) $(APP).hex

AVR:	$(APP)
	$(CMD)

fuses:
	avrdude -p $(DEVICEp) -c avrisp2 -P usb -U efuse:w:$(EFUSE):m -U hfuse:w:0b11011001:m -U lfuse:w:$(LFUSE):m -F -B 250
	#no BOD & no HW bootloader
	#no JTAG & OCD, SPI_prog on, WDT off, defaults
	#no clock div, defaults, crystal clock

%.o : %.c
	$(CC) $(CC_FLAGS) -c $< -o $@

%.o : %.S
	$(CC) $(CC_FLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(APP)
