# # LUFA Library # Copyright (C) Dean Camera, 2014. # # dean [at] fourwalledcubicle [dot] com # www.lufa-lib.org # LUFA_BUILD_MODULES += HID LUFA_BUILD_TARGETS += hid hid-ee teensy teensy-ee LUFA_BUILD_MANDATORY_VARS += MCU TARGET LUFA_BUILD_OPTIONAL_VARS += LUFA_BUILD_PROVIDED_VARS += LUFA_BUILD_PROVIDED_MACROS += # ----------------------------------------------------------------------------- # LUFA HID Bootloader Buildsystem Makefile Module. # ----------------------------------------------------------------------------- # DESCRIPTION: # Provides a set of targets to re-program a device currently running a HID # class bootloader with a project's FLASH files. # ----------------------------------------------------------------------------- # TARGETS: # # hid - Program FLASH into target via # hid_bootloader_cli # hid-ee - Program EEPROM into target via a temporary # AVR application and hid_bootloader_cli # teensy - Program FLASH into target via # teensy_loader_cli # teensy-ee - Program EEPROM into target via a temporary # AVR application and teensy_loader_cli # # MANDATORY PARAMETERS: # # MCU - Microcontroller device model name # TARGET - Application name # # OPTIONAL PARAMETERS: # # (None) # # PROVIDED VARIABLES: # # (None) # # PROVIDED MACROS: # # (None) # # ----------------------------------------------------------------------------- SHELL = /bin/sh LUFA_MODULE_PATH := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) ERROR_IF_UNSET ?= $(if $(filter undefined, $(origin $(strip $(1)))), $(error Makefile $(strip $(1)) value not set)) ERROR_IF_EMPTY ?= $(if $(strip $($(strip $(1)))), , $(error Makefile $(strip $(1)) option cannot be blank)) ERROR_IF_NONBOOL ?= $(if $(filter Y N, $($(strip $(1)))), , $(error Makefile $(strip $(1)) option must be Y or N)) # Sanity-check values of mandatory user-supplied variables $(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR))) $(call ERROR_IF_EMPTY, MCU) $(call ERROR_IF_EMPTY, TARGET) # Output Messages MSG_HID_BOOTLOADER_CMD := ' [HID] :' MSG_OBJCPY_CMD := ' [OBJCPY] :' MSG_MAKE_CMD := ' [MAKE] :' # Programs in the target FLASH memory using the HID_BOOTLOADER_CLI tool hid: $(TARGET).hex $(MAKEFILE_LIST) @echo $(MSG_HID_BOOTLOADER_CMD) Programming FLASH with hid_bootloader_cli using \"$<\" hid_bootloader_cli -mmcu=$(MCU) -v $< # Programs in the target EEPROM memory using the HID_BOOTLOADER_CLI tool (note: clears target FLASH memory) hid-ee: $(TARGET).eep $(MAKEFILE_LIST) @echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a binary file \"InputEEData.bin\" avr-objcopy -I ihex -O binary $< $(LUFA_MODULE_PATH)/HID_EEPROM_Loader/InputEEData.bin @echo $(MSG_MAKE_CMD) Making EEPROM loader application for \"$<\" $(MAKE) -C $(LUFA_MODULE_PATH)/HID_EEPROM_Loader/ MCU=$(MCU) clean hid # Programs in the target FLASH memory using the TEENSY_BOOTLOADER_CLI tool teensy: $(TARGET).hex $(MAKEFILE_LIST) @echo $(MSG_HID_BOOTLOADER_CMD) Programming FLASH with teensy_loader_cli using \"$<\" teensy_loader_cli -mmcu=$(MCU) -v $< # Programs in the target EEPROM memory using the TEENSY_BOOTLOADER_CLI tool (note: clears target FLASH memory) teensy-ee: $(TARGET).hex $(MAKEFILE_LIST) @echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a binary file \"InputEEData.bin\" avr-objcopy -I ihex -O binary $< $(LUFA_MODULE_PATH)/HID_EEPROM_Loader/InputEEData.bin @echo $(MSG_MAKE_CMD) Making EEPROM loader application for \"$<\" $(MAKE) -s -C $(LUFA_MODULE_PATH)/HID_EEPROM_Loader/ MCU=$(MCU) clean teensy # Phony build targets for this module .PHONY: hid hid-ee teensy teensy-ee