#
#             LUFA Library
#     Copyright (C) Dean Camera, 2017.
#
#  dean [at] fourwalledcubicle [dot] com
#           www.lufa-lib.org
#
# --------------------------------------
#         LUFA Project Makefile.
# --------------------------------------

# Run "make help" for target help.

MCU          = atmega16u4
ARCH         = AVR8
BOARD        = NONE
F_CPU        = 16000000
F_USB        = $(F_CPU)
OPTIMIZATION = s
TARGET       = final
SRC          = $(TARGET).c Descriptors.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
LUFA_PATH    = ../../../../LUFA
CC_FLAGS     = -DUSE_LUFA_CONFIG_HEADER -IConfig/
LD_FLAGS     =

# 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


# Programming

program-avrisp2: $(TARGET).hex
	avrdude -p m16u4 -P usb -c avrisp2 -U flash:w:$(TARGET).hex

program-avrisp2-fuses: $(TARGET).hex
	avrdude -p m16u4 -P usb -c avrisp2 -U lfuse:w:0x5E:m

program-usbtiny: $(TARGET).hex
	avrdude -p m16u4 -P usb -c usbtiny -U flash:w:$(TARGET).hex

program-usbtiny-fuses: $(TARGET).hex
	avrdude -p m16u4 -P usb -c usbtiny -U lfuse:w:0x5E:m

program-dfu: $(TARGET).hex
	dfu-programmer $(MCU) flash $(TARGET).hex

erase-dfu:
	dfu-programmer $(MCU) erase

clean: 
	rm $(TARGET).hex $(TARGET).out