MCU          = atmega32u4
ARCH         = AVR8
BOARD        = NONE
F_CPU        = 16000000
F_USB        = $(F_CPU)
OPTIMIZATION = s
TARGET       = Minimal
SRC_MAIN = $(wildcard *.c)
SRC_LCD  = $(wildcard lcd/*.c)
SRC_ACD  = $(wildcard adc/*.c)
SOURCES  = $(SRC_MAIN) $(SRC_LCD) $(SRC_ACD)
SRC          = $(SOURCES) $(LUFA_SRC_USB)
LUFA_PATH    = ../../LUFA
CC_FLAGS     = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -Iinclude/
LD_FLAGS     =

export PROGRAMMER = dfu-programmer

# Default target
all:

# Include LUFA-specific DMBS extension modules
DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA
include $(DMBS_LUFA_PATH)/lufa-sources.mk
include $(DMBS_LUFA_PATH)/lufa-gcc.mk

# Include common DMBS build system modules
DMBS_PATH      ?= $(LUFA_PATH)/Build/DMBS/DMBS
include $(DMBS_PATH)/core.mk
include $(DMBS_PATH)/cppcheck.mk
include $(DMBS_PATH)/doxygen.mk
include $(DMBS_PATH)/dfu.mk
include $(DMBS_PATH)/gcc.mk
include $(DMBS_PATH)/hid.mk
include $(DMBS_PATH)/avrdude.mk
include $(DMBS_PATH)/atprogram.mk

clean:
	rm -rf obj $(TARGET).bin $(TARGET).eep $(TARGET).hex $(TARGET).elf $(TARGET).lss $(TARGET).map $(TARGET).sym

upload: $(TARGET).hex
	$(PROGRAMMER) $(MCU) erase
	$(PROGRAMMER) $(MCU) flash $(TARGET).hex
	$(PROGRAMMER) $(MCU) reset

size: all
	avr-size --format=avr --mcu=$(MCU) $(TARGET).elf