APP	= pendant

DEVICE	= atmega328p
CMD	= sudo avrdude -p $(DEVICE) -c avrisp2 -P usb -U flash:w:$(APP).hex:i
OPTS	=

ifeq ($(CLOCK), crystal)
	XTAL = 16000000
	LFUSE = 0b11010111
else
	XTAL = 8000000
	LFUSE = 0b11010010
endif


OPT		= -Os
CC_FLAGS	=  -Wall -Wextra $(OPT) -mmcu=$(DEVICE) -I/usr/lib/avr/include $(OPTS) -ffunction-sections -DF_CPU=$(XTAL)
LD_FLAGS	=  -Wall -Wextra $(OPT) -mmcu=$(DEVICE) -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		= main.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:
	sudo avrdude -p $(DEVICE) -c avrisp2 -P usb -U efuse:w:0b00000111:m -U hfuse:w:0b11011001:m -U lfuse:w:$(LFUSE):m
	#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)
