diff options
| author | tmk <hasu@tmk-kbd.com> | 2015-05-13 11:13:10 +0900 | 
|---|---|---|
| committer | tmk <hasu@tmk-kbd.com> | 2015-05-13 11:13:10 +0900 | 
| commit | f6d56675f9f981c5464f0ca7a1fbb0162154e8c5 (patch) | |
| tree | 57c9d4b3808a26116ae0ee7956fc00b84841aa2b /protocol/lufa/LUFA-git/LUFA/Build | |
| parent | 4d116a04e94cf0d19317d5b44e4fa9f34a3e5594 (diff) | |
Squashed 'tmk_core/' changes from caca2c0..dc0e46e
dc0e46e Rename LUFA to LUFA-git
3bfa7fa Remove LUFA-120730
215b764 Merge commit 'afa0f22a9299686fd88f58ce09c5b521ac917e8f' as 'protocol/lufa/LUFA'
afa0f22 Squashed 'protocol/lufa/LUFA/' content from commit def7fca
c0c42fa Remove submodule of LUFA
30f897d Merge commit '87ced33feb74e79c3281dda36eb6d6d153399b41' as 'protocol/usb_hid/USB_Host_Shield_2.0'
87ced33 Squashed 'protocol/usb_hid/USB_Host_Shield_2.0/' content from commit aab4a69
14f6d49 Remove submodule of USB_Host_Shield_2.0
git-subtree-dir: tmk_core
git-subtree-split: dc0e46eaa4367d4e218f8816e3c117895820f07c
Diffstat (limited to 'protocol/lufa/LUFA-git/LUFA/Build')
| m--------- | protocol/lufa/LUFA-git | 0 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c | 61 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile | 42 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_atprogram.mk | 103 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_avrdude.mk | 86 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_build.mk | 351 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_core.mk | 175 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_cppcheck.mk | 107 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_dfu.mk | 95 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_doxygen.mk | 100 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_hid.mk | 96 | ||||
| -rw-r--r-- | protocol/lufa/LUFA-git/LUFA/Build/lufa_sources.mk | 144 | 
12 files changed, 1360 insertions, 0 deletions
| diff --git a/protocol/lufa/LUFA-git b/protocol/lufa/LUFA-git deleted file mode 160000 -Subproject b6c18b2a7c544653efbe12a1d4e8ba65e7d83c3 diff --git a/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c b/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c new file mode 100644 index 0000000000..7ee46b4db4 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c @@ -0,0 +1,61 @@ +/* +             LUFA Library +     Copyright (C) Dean Camera, 2014. + +  dean [at] fourwalledcubicle [dot] com +           www.lufa-lib.org +*/ + +/* +  Copyright 2014  Dean Camera (dean [at] fourwalledcubicle [dot] com) + +  Permission to use, copy, modify, distribute, and sell this +  software and its documentation for any purpose is hereby granted +  without fee, provided that the above copyright notice appear in +  all copies and that both that the copyright notice and this +  permission notice and warranty disclaimer appear in supporting +  documentation, and that the name of the author not be used in +  advertising or publicity pertaining to distribution of the +  software without specific, written prior permission. + +  The author disclaims all warranties with regard to this +  software, including all implied warranties of merchantability +  and fitness.  In no event shall the author be liable for any +  special, indirect or consequential damages or any damages +  whatsoever resulting from loss of use, data or profits, whether +  in an action of contract, negligence or other tortious action, +  arising out of or in connection with the use or performance of +  this software. +*/ + +/** \file + * + *  Special application to extract an EEPROM image stored in FLASH memory, and + *  copy it to the device EEPROM. This application is designed to be used with + *  the HID build system module of LUFA to program the EEPROM of a target device + *  that uses the HID bootloader protocol, which does not have native EEPROM + *  programming support. + */ + +#include <avr/io.h> +#include <avr/eeprom.h> +#include <avr/pgmspace.h> + +/* References to the binary EEPROM data linked in the AVR's FLASH memory space */ +extern const char _binary_InputEEData_bin_start[]; +extern const char _binary_InputEEData_bin_end[]; +extern const char _binary_InputEEData_bin_size[]; + +/* Friendly names for the embedded binary data stored in FLASH memory space */ +#define InputEEData       _binary_InputEEData_bin_start +#define InputEEData_size  ((int)_binary_InputEEData_bin_size) + +int main(void) +{ +	/* Copy out the embedded EEPROM data from FLASH to EEPROM memory space */ +	for (uint16_t i = 0; i < InputEEData_size; i++) +	  eeprom_update_byte((uint8_t*)i, pgm_read_byte(&InputEEData[i])); + +	/* Infinite loop once complete */ +	for (;;); +} diff --git a/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile b/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile new file mode 100644 index 0000000000..9fd188c936 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile @@ -0,0 +1,42 @@ +#
 +#             LUFA Library
 +#     Copyright (C) Dean Camera, 2014.
 +#
 +#  dean [at] fourwalledcubicle [dot] com
 +#           www.lufa-lib.org
 +#
 +# --------------------------------------
 +#         LUFA Project Makefile.
 +# --------------------------------------
 +
 +# Run "make help" for target help.
 +
 +MCU          = at90usb1287
 +ARCH         = AVR8
 +F_CPU        = 1000000
 +F_USB        = $(F_CPU)
 +OPTIMIZATION = s
 +TARGET       = HID_EEPROM_Loader
 +SRC          = $(TARGET).c
 +LUFA_PATH    = ../../../LUFA
 +CC_FLAGS     =
 +LD_FLAGS     =
 +OBJECT_FILES = InputEEData.o
 +
 +# Default target
 +all:
 +
 +# Determine the AVR sub-architecture of the build main application object file
 +FIND_AVR_SUBARCH = avr$(shell avr-objdump -f $(TARGET).o | grep architecture | cut -d':' -f3 | cut -d',' -f1)
 +
 +# Create a linkable object file with the input binary EEPROM data stored in the FLASH section
 +InputEEData.o: InputEEData.bin $(TARGET).o $(MAKEFILE_LIST)
 +	@echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a object file \"$@\"
 +	avr-objcopy -I binary -O elf32-avr -B $(call FIND_AVR_SUBARCH) --rename-section .data=.progmem.data,contents,alloc,readonly,data $< $@
 +
 +# Include LUFA build script makefiles
 +include $(LUFA_PATH)/Build/lufa_core.mk
 +include $(LUFA_PATH)/Build/lufa_build.mk
 +include $(LUFA_PATH)/Build/lufa_cppcheck.mk
 +include $(LUFA_PATH)/Build/lufa_doxygen.mk
 +include $(LUFA_PATH)/Build/lufa_hid.mk
 diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_atprogram.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_atprogram.mk new file mode 100644 index 0000000000..9433834187 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_atprogram.mk @@ -0,0 +1,103 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += ATPROGRAM +LUFA_BUILD_TARGETS         += atprogram atprogram-ee +LUFA_BUILD_MANDATORY_VARS  += MCU TARGET +LUFA_BUILD_OPTIONAL_VARS   += ATPROGRAM_PROGRAMMER ATPROGRAM_INTERFACE ATPROGRAM_PORT +LUFA_BUILD_PROVIDED_VARS   += +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#             LUFA ATPROGRAM Programmer Buildsystem Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of targets to re-program a device using the Atmel atprogram +#   utility in AVR Studio 5.x and Atmel Studio 6.0 onwards. +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    atprogram                 - Program target FLASH with application using +#                                atprogram +#    atprogram-ee              - Program target EEPROM with application data +#                                using atprogram +# +# MANDATORY PARAMETERS: +# +#    MCU                       - Microcontroller device model name +#    TARGET                    - Application name +# +# OPTIONAL PARAMETERS: +# +#    ATPROGRAM_PROGRAMMER      - Name of programming hardware to use +#    ATPROGRAM_INTERFACE       - Name of programming interface to use +#    ATPROGRAM_PORT            - Name of communication port to use +# +# PROVIDED VARIABLES: +# +#    (None) +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +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)) + +# Default values of optionally user-supplied variables +ATPROGRAM_PROGRAMMER ?= jtagice3 +ATPROGRAM_INTERFACE  ?= jtag +ATPROGRAM_PORT       ?= + +# Sanity check user supplied values +$(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR))) +$(call ERROR_IF_EMPTY, MCU) +$(call ERROR_IF_EMPTY, TARGET) +$(call ERROR_IF_EMPTY, ATPROGRAM_PROGRAMMER) +$(call ERROR_IF_EMPTY, ATPROGRAM_INTERFACE) + +# Output Messages +MSG_ATPROGRAM_CMD    := ' [ATPRGRM] :' + +# Construct base atprogram command flags +BASE_ATPROGRAM_FLAGS := --tool $(ATPROGRAM_PROGRAMMER) --interface $(ATPROGRAM_INTERFACE) --device $(MCU) +ifneq ($(ATPROGRAM_PORT),) +   BASE_ATPROGRAM_FLAGS += --port $(ATPROGRAM_PORT) +endif + +# Construct the flags to use for the various memory spaces +ifeq ($(ARCH), AVR8) +   ATPROGRAM_FLASH_FLAGS  := --chiperase --flash +   ATPROGRAM_EEPROM_FLAGS := --eeprom +else ifeq ($(ARCH), XMEGA) +   ATPROGRAM_FLASH_FLAGS  := --erase --flash +   ATPROGRAM_EEPROM_FLAGS := --eeprom +else ifeq ($(ARCH), UC3) +   ATPROGRAM_FLASH_FLAGS  := --erase +   ATPROGRAM_EEPROM_FLAGS := --eeprom +else +   $(error Unsupported architecture "$(ARCH)") +endif + +# Programs in the target FLASH memory using ATPROGRAM +atprogram: $(TARGET).elf $(MAKEFILE_LIST) +	@echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" FLASH using \"$(ATPROGRAM_PROGRAMMER)\" +	atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_FLASH_FLAGS) --file $< + +# Programs in the target EEPROM memory using ATPROGRAM +atprogram-ee: $(TARGET).elf $(MAKEFILE_LIST) +	@echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" EEPROM using \"$(ATPROGRAM_PROGRAMMER)\" +	atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_EEPROM_FLAGS) --file $< + +# Phony build targets for this module +.PHONY: atprogram atprogram-ee diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_avrdude.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_avrdude.mk new file mode 100644 index 0000000000..4eff4181c3 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_avrdude.mk @@ -0,0 +1,86 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += AVRDUDE +LUFA_BUILD_TARGETS         += avrdude avrdude-ee +LUFA_BUILD_MANDATORY_VARS  += MCU TARGET +LUFA_BUILD_OPTIONAL_VARS   += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS +LUFA_BUILD_PROVIDED_VARS   += +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#             LUFA AVRDUDE Programmer Buildsystem Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of targets to re-program a device using the open source +#   avr-dude utility. +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    avrdude                   - Program target FLASH with application using +#                                avrdude +#    avrdude-ee                - Program target EEPROM with application data +#                                using avrdude +# +# MANDATORY PARAMETERS: +# +#    MCU                       - Microcontroller device model name +#    TARGET                    - Application name +# +# OPTIONAL PARAMETERS: +# +#    AVRDUDE_PROGRAMMER        - Name of programming hardware to use +#    AVRDUDE_PORT              - Name of communication port to use +#    AVRDUDE_FLAGS             - Flags to pass to avr-dude +# +# PROVIDED VARIABLES: +# +#    (None) +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +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)) + +# Default values of optionally user-supplied variables +AVRDUDE_PROGRAMMER ?= jtagicemkii +AVRDUDE_PORT       ?= usb +AVRDUDE_FLAGS      ?= + +# Sanity check user supplied values +$(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR))) +$(call ERROR_IF_EMPTY, MCU) +$(call ERROR_IF_EMPTY, TARGET) +$(call ERROR_IF_EMPTY, AVRDUDE_PROGRAMMER) +$(call ERROR_IF_EMPTY, AVRDUDE_PORT) + +# Output Messages +MSG_AVRDUDE_CMD    := ' [AVRDUDE] :' + +# Construct base avrdude command flags +BASE_AVRDUDE_FLAGS := -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) + +# Programs in the target FLASH memory using AVRDUDE +avrdude: $(TARGET).hex $(MAKEFILE_LIST) +	@echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" FLASH using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\" +	avrdude $(BASE_AVRDUDE_FLAGS) -U flash:w:$< $(AVRDUDE_FLAGS) + +# Programs in the target EEPROM memory using AVRDUDE +avrdude-ee: $(TARGET).eep $(MAKEFILE_LIST) +	@echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" EEPROM using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\" +	avrdude $(BASE_AVRDUDE_FLAGS) -U eeprom:w:$< $(AVRDUDE_FLAGS) + +# Phony build targets for this module +.PHONY: avrdude avrdude-ee diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_build.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_build.mk new file mode 100644 index 0000000000..b9b144aee5 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_build.mk @@ -0,0 +1,351 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += BUILD +LUFA_BUILD_TARGETS         += size symbol-sizes all lib elf bin hex lss clean mostlyclean +LUFA_BUILD_MANDATORY_VARS  += TARGET ARCH MCU SRC F_USB LUFA_PATH +LUFA_BUILD_OPTIONAL_VARS   += BOARD OPTIMIZATION C_STANDARD CPP_STANDARD F_CPU C_FLAGS CPP_FLAGS ASM_FLAGS CC_FLAGS LD_FLAGS OBJDIR OBJECT_FILES DEBUG_TYPE DEBUG_LEVEL LINKER_RELAXATIONS COMPILER_PATH +LUFA_BUILD_PROVIDED_VARS   += +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#               LUFA GCC Compiler Buildsystem Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of targets to build a C, C++ and/or Assembly application +#   via the AVR-GCC compiler. +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    size                      - List built application size +#    symbol-sizes              - Print application symbols from the binary ELF +#                                file as a list sorted by size in bytes +#    all                       - Build application and list size +#    lib                       - Build and archive source files into a library +#    elf                       - Build application ELF debug object file +#    bin                       - Build application BIN binary object file +#    hex                       - Build application HEX object file +#    lss                       - Build application LSS assembly listing file +#    clean                     - Remove all project intermediary and binary +#                                output files +#    mostlyclean               - Remove intermediary output files, but +#                                preserve binaries +#    <filename>.s              - Compile C/C++ source file into an assembly file +#                                for manual code inspection +# +# MANDATORY PARAMETERS: +# +#    TARGET                    - Application name +#    ARCH                      - Device architecture name +#    MCU                       - Microcontroller device model name +#    SRC                       - List of input source files (*.c, *.cpp, *.S) +#    F_USB                     - Speed of the input clock of the USB controller +#                                in Hz +#    LUFA_PATH                 - Path to the LUFA library core +# +# OPTIONAL PARAMETERS: +# +#    BOARD                     - LUFA board hardware +#    OPTIMIZATION              - Optimization level +#    C_STANDARD                - C Language Standard to use +#    CPP_STANDARD              - C++ Language Standard to use +#    F_CPU                     - Speed of the CPU, in Hz +#    C_FLAGS                   - Flags to pass to the C compiler only +#    CPP_FLAGS                 - Flags to pass to the C++ compiler only +#    ASM_FLAGS                 - Flags to pass to the assembler only +#    CC_FLAGS                  - Common flags to pass to the C/C++ compiler and +#                                assembler +#    LD_FLAGS                  - Flags to pass to the linker +#    LINKER_RELAXATIONS        - Enable or disable linker relaxations to +#                                decrease binary size (note: can cause link +#                                failures on systems with an unpatched binutils) +#    OBJDIR                    - Directory for the output object and dependency +#                                files; if equal to ".", the output files will +#                                be generated in the same folder as the sources +#    OBJECT_FILES              - Extra object files to link in to the binaries +#    DEBUG_FORMAT              - Format of the debugging information to +#                                generate in the compiled object files +#    DEBUG_LEVEL               - Level the debugging information to generate in +#                                the compiled object files +#    COMPILER_PATH             - Location of the GCC toolchain to use +# +# PROVIDED VARIABLES: +# +#    (None) +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +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)) + +# Default values of optionally user-supplied variables +COMPILER_PATH      ?= +BOARD              ?= NONE +OPTIMIZATION       ?= s +F_CPU              ?= +C_STANDARD         ?= gnu99 +CPP_STANDARD       ?= gnu++98 +C_FLAGS            ?= +CPP_FLAGS          ?= +ASM_FLAGS          ?= +CC_FLAGS           ?= +OBJDIR             ?= . +OBJECT_FILES       ?= +DEBUG_FORMAT       ?= dwarf-2 +DEBUG_LEVEL        ?= 2 +LINKER_RELAXATIONS ?= Y + +# Sanity check user supplied values +$(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR))) +$(call ERROR_IF_EMPTY, MCU) +$(call ERROR_IF_EMPTY, TARGET) +$(call ERROR_IF_EMPTY, ARCH) +$(call ERROR_IF_EMPTY, F_USB) +$(call ERROR_IF_EMPTY, LUFA_PATH) +$(call ERROR_IF_EMPTY, BOARD) +$(call ERROR_IF_EMPTY, OPTIMIZATION) +$(call ERROR_IF_EMPTY, C_STANDARD) +$(call ERROR_IF_EMPTY, CPP_STANDARD) +$(call ERROR_IF_EMPTY, OBJDIR) +$(call ERROR_IF_EMPTY, DEBUG_FORMAT) +$(call ERROR_IF_EMPTY, DEBUG_LEVEL) +$(call ERROR_IF_NONBOOL, LINKER_RELAXATIONS) + +# Determine the utility prefix to use for the selected architecture +ifeq ($(ARCH), AVR8) +   CROSS        := $(COMPILER_PATH)avr +else ifeq ($(ARCH), XMEGA) +   CROSS        := $(COMPILER_PATH)avr +   $(warning The XMEGA device support is currently EXPERIMENTAL (incomplete and/or non-functional), and is included for preview purposes only.) +else ifeq ($(ARCH), UC3) +   CROSS        := $(COMPILER_PATH)avr32 +   $(warning The UC3 device support is currently EXPERIMENTAL (incomplete and/or non-functional), and is included for preview purposes only.) +else +   $(error Unsupported architecture "$(ARCH)") +endif + +# Output Messages +MSG_INFO_MESSAGE := ' [INFO]    :' +MSG_COMPILE_CMD  := ' [GCC]     :' +MSG_ASSEMBLE_CMD := ' [GAS]     :' +MSG_NM_CMD       := ' [NM]      :' +MSG_REMOVE_CMD   := ' [RM]      :' +MSG_LINK_CMD     := ' [LNK]     :' +MSG_ARCHIVE_CMD  := ' [AR]      :' +MSG_SIZE_CMD     := ' [SIZE]    :' +MSG_OBJCPY_CMD   := ' [OBJCPY]  :' +MSG_OBJDMP_CMD   := ' [OBJDMP]  :' + +# Convert input source file list to differentiate them by type +C_SOURCE   := $(filter %.c, $(SRC)) +CPP_SOURCE := $(filter %.cpp, $(SRC)) +ASM_SOURCE := $(filter %.S, $(SRC)) + +# Create a list of unknown source file types, if any are found throw an error +UNKNOWN_SOURCE := $(filter-out $(C_SOURCE) $(CPP_SOURCE) $(ASM_SOURCE), $(SRC)) +ifneq ($(UNKNOWN_SOURCE),) +   $(error Unknown input source file formats: $(UNKNOWN_SOURCE)) +endif + +# Convert input source filenames into a list of required output object files +OBJECT_FILES += $(addsuffix .o, $(basename $(SRC))) + +# Check if an output object file directory was specified instead of the input file location +ifneq ($(OBJDIR),.) +   # Prefix all the object filenames with the output object file directory path +   OBJECT_FILES    := $(addprefix $(patsubst %/,%,$(OBJDIR))/, $(notdir $(OBJECT_FILES))) + +   # Check if any object file (without path) appears more than once in the object file list +   ifneq ($(words $(sort $(OBJECT_FILES))), $(words $(OBJECT_FILES))) +       $(error Cannot build with OBJDIR parameter set - one or more object file name is not unique) +   endif + +   # Create the output object file directory if it does not exist and add it to the virtual path list +   $(shell mkdir $(OBJDIR) 2> /dev/null) +   VPATH           += $(dir $(SRC)) +endif + +# Create a list of dependency files from the list of object files +DEPENDENCY_FILES := $(OBJECT_FILES:%.o=%.d) + +# Create a list of common flags to pass to the compiler/linker/assembler +BASE_CC_FLAGS    := -pipe -g$(DEBUG_FORMAT) -g$(DEBUG_LEVEL) +ifeq ($(ARCH), AVR8) +   BASE_CC_FLAGS += -mmcu=$(MCU) -fshort-enums -fno-inline-small-functions -fpack-struct +else ifeq ($(ARCH), XMEGA) +   BASE_CC_FLAGS += -mmcu=$(MCU) -fshort-enums -fno-inline-small-functions -fpack-struct +else ifeq ($(ARCH), UC3) +   BASE_CC_FLAGS += -mpart=$(MCU:at32%=%) -masm-addr-pseudos +endif +BASE_CC_FLAGS += -Wall -fno-strict-aliasing -funsigned-char -funsigned-bitfields -ffunction-sections +BASE_CC_FLAGS += -I. -I$(patsubst %/,%,$(LUFA_PATH))/.. +BASE_CC_FLAGS += -DARCH=ARCH_$(ARCH) -DBOARD=BOARD_$(BOARD) -DF_USB=$(F_USB)UL +ifneq ($(F_CPU),) +   BASE_CC_FLAGS += -DF_CPU=$(F_CPU)UL +endif +ifeq ($(LINKER_RELAXATIONS), Y) +BASE_CC_FLAGS += -mrelax +endif + +# This flag is required for bootloaders as GCC will emit invalid jump table +# assembly code for devices with large amounts of flash; the jump table target +# is extracted from FLASH without using the correct ELPM instruction, resulting +# in a pseudo-random jump target. +BASE_CC_FLAGS += -fno-jump-tables + +# Additional language specific compiler flags +BASE_C_FLAGS   := -x c -O$(OPTIMIZATION) -std=$(C_STANDARD) -Wstrict-prototypes +BASE_CPP_FLAGS := -x c++ -O$(OPTIMIZATION) -std=$(CPP_STANDARD) +BASE_ASM_FLAGS := -x assembler-with-cpp + +# Create a list of flags to pass to the linker +BASE_LD_FLAGS := -lm -Wl,-Map=$(TARGET).map,--cref -Wl,--gc-sections +ifeq ($(LINKER_RELAXATIONS), Y) +   BASE_LD_FLAGS += -Wl,--relax +endif +ifeq ($(ARCH), AVR8) +   BASE_LD_FLAGS += -mmcu=$(MCU) +else ifeq ($(ARCH), XMEGA) +   BASE_LD_FLAGS += -mmcu=$(MCU) +else ifeq ($(ARCH), UC3) +   BASE_LD_FLAGS += -mpart=$(MCU:at32%=%) --rodata-writable --direct-data +endif + +# Determine flags to pass to the size utility based on its reported features (only invoke if size target required) +# and on an architecture where this non-standard patch is available +ifneq ($(ARCH), UC3) +size: SIZE_MCU_FLAG    := $(shell $(CROSS)-size --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) ) +size: SIZE_FORMAT_FLAG := $(shell $(CROSS)-size --help | grep -- --format=.*avr > /dev/null && echo --format=avr ) +endif + +# Pre-build informational target, to give compiler and project name information when building +build_begin: +	@echo $(MSG_INFO_MESSAGE) Begin compilation of project \"$(TARGET)\"... +	@echo "" +	@$(CROSS)-gcc --version + +# Post-build informational target, to project name information when building has completed +build_end: +	@echo $(MSG_INFO_MESSAGE) Finished building project \"$(TARGET)\". + +# Prints size information of a compiled application (FLASH, RAM and EEPROM usages) +size: $(TARGET).elf +	@echo $(MSG_SIZE_CMD) Determining size of \"$<\" +	@echo "" +	$(CROSS)-size $(SIZE_MCU_FLAG) $(SIZE_FORMAT_FLAG) $< + +# Prints size information on the symbols within a compiled application in decimal bytes +symbol-sizes: $(TARGET).elf +	@echo $(MSG_NM_CMD) Extracting \"$<\" symbols with decimal byte sizes +	$(CROSS)-nm --size-sort --demangle --radix=d $< + +# Cleans intermediary build files, leaving only the compiled application files +mostlyclean: +	@echo $(MSG_REMOVE_CMD) Removing object files of \"$(TARGET)\" +	rm -f $(OBJECT_FILES) +	@echo $(MSG_REMOVE_CMD) Removing dependency files of \"$(TARGET)\" +	rm -f $(DEPENDENCY_FILES) + +# Cleans all build files, leaving only the original source code +clean: mostlyclean +	@echo $(MSG_REMOVE_CMD) Removing output files of \"$(TARGET)\" +	rm -f $(TARGET).elf $(TARGET).hex $(TARGET).bin $(TARGET).eep $(TARGET).map $(TARGET).lss $(TARGET).sym lib$(TARGET).a + +# Performs a complete build of the user application and prints size information afterwards +all: build_begin elf hex bin lss sym size build_end + +# Helper targets, to build a specific type of output file without having to know the project target name +lib: lib$(TARGET).a +elf: $(TARGET).elf +hex: $(TARGET).hex $(TARGET).eep +bin: $(TARGET).bin +lss: $(TARGET).lss +sym: $(TARGET).sym + +# Default target to *create* the user application's specified source files; if this rule is executed by +# make, the input source file doesn't exist and an error needs to be presented to the user +$(SRC): +	$(error Source file does not exist: $@) + +# Compiles an input C source file and generates an assembly listing for it +%.s: %.c $(MAKEFILE_LIST) +	@echo $(MSG_COMPILE_CMD) Generating assembly from C file \"$(notdir $<)\" +	$(CROSS)-gcc -S $(BASE_CC_FLAGS) $(BASE_C_FLAGS) $(CC_FLAGS) $(C_FLAGS) $< -o $@ + +# Compiles an input C++ source file and generates an assembly listing for it +%.s: %.cpp $(MAKEFILE_LIST) +	@echo $(MSG_COMPILE_CMD) Generating assembly from C++ file \"$(notdir $<)\" +	$(CROSS)-gcc -S $(BASE_CC_FLAGS) $(BASE_CPP_FLAGS) $(CC_FLAGS) $(CPP_FLAGS) $< -o $@ + +# Compiles an input C source file and generates a linkable object file for it +$(OBJDIR)/%.o: %.c $(MAKEFILE_LIST) +	@echo $(MSG_COMPILE_CMD) Compiling C file \"$(notdir $<)\" +	$(CROSS)-gcc -c $(BASE_CC_FLAGS) $(BASE_C_FLAGS) $(CC_FLAGS) $(C_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@ + +# Compiles an input C++ source file and generates a linkable object file for it +$(OBJDIR)/%.o: %.cpp $(MAKEFILE_LIST) +	@echo $(MSG_COMPILE_CMD) Compiling C++ file \"$(notdir $<)\" +	$(CROSS)-gcc -c $(BASE_CC_FLAGS) $(BASE_CPP_FLAGS) $(CC_FLAGS) $(CPP_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@ + +# Assembles an input ASM source file and generates a linkable object file for it +$(OBJDIR)/%.o: %.S $(MAKEFILE_LIST) +	@echo $(MSG_ASSEMBLE_CMD) Assembling \"$(notdir $<)\" +	$(CROSS)-gcc -c $(BASE_CC_FLAGS) $(BASE_ASM_FLAGS) $(CC_FLAGS) $(ASM_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@ + +# Generates a library archive file from the user application, which can be linked into other applications +.PRECIOUS  : $(OBJECT_FILES) +.SECONDARY : %.a +%.a: $(OBJECT_FILES) +	@echo $(MSG_ARCHIVE_CMD) Archiving object files into \"$@\" +	$(CROSS)-ar rcs $@ $(OBJECT_FILES) + +# Generates an ELF debug file from the user application, which can be further processed for FLASH and EEPROM data +# files, or used for programming and debugging directly +.PRECIOUS  : $(OBJECT_FILES) +.SECONDARY : %.elf +%.elf: $(OBJECT_FILES) +	@echo $(MSG_LINK_CMD) Linking object files into \"$@\" +	$(CROSS)-gcc $^ -o $@ $(BASE_LD_FLAGS) $(LD_FLAGS) + +# Extracts out the loadable FLASH memory data from the project ELF file, and creates an Intel HEX format file of it +%.hex: %.elf +	@echo $(MSG_OBJCPY_CMD) Extracting HEX file data from \"$<\" +	$(CROSS)-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $< $@ + +# Extracts out the loadable FLASH memory data from the project ELF file, and creates an Binary format file of it +%.bin: %.elf +	@echo $(MSG_OBJCPY_CMD) Extracting BIN file data from \"$<\" +	$(CROSS)-objcopy -O binary -R .eeprom -R .fuse -R .lock -R .signature $< $@ + +# Extracts out the loadable EEPROM memory data from the project ELF file, and creates an Intel HEX format file of it +%.eep: %.elf +	@echo $(MSG_OBJCPY_CMD) Extracting EEP file data from \"$<\" +	$(CROSS)-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings $< $@ || exit 0 + +# Creates an assembly listing file from an input project ELF file, containing interleaved assembly and source data +%.lss: %.elf +	@echo $(MSG_OBJDMP_CMD) Extracting LSS file data from \"$<\" +	$(CROSS)-objdump -h -d -S -z $< > $@ + +# Creates a symbol file listing the loadable and discarded symbols from an input project ELF file +%.sym: %.elf +	@echo $(MSG_NM_CMD) Extracting SYM file data from \"$<\" +	$(CROSS)-nm -n $< > $@ + +# Include build dependency files +-include $(DEPENDENCY_FILES) + +# Phony build targets for this module +.PHONY: build_begin build_end size symbol-sizes lib elf hex lss clean mostlyclean diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_core.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_core.mk new file mode 100644 index 0000000000..7d974664bf --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_core.mk @@ -0,0 +1,175 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += CORE +LUFA_BUILD_TARGETS         += help list_targets list_modules list_mandatory list_optional list_provided list_macros +LUFA_BUILD_MANDATORY_VARS  += +LUFA_BUILD_OPTIONAL_VARS   += +LUFA_BUILD_PROVIDED_VARS   += +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#               LUFA Core Build System Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of core build targets for the LUFA build system +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    help                      - Build system help +#    list_targets              - List all build targets +#    list_modules              - List all build modules +#    list_mandatory            - List all mandatory make variables required by +#                                the included build modules of the application +#    list_optional             - List all optional make variables required by +#                                the included build modules of the application +#    list_provided             - List all provided make variables from the +#                                included build modules of the application +#    list_macros               - List all provided make macros from the +#                                included build modules of the application +# +# MANDATORY PARAMETERS: +# +#    (None) +# +# OPTIONAL PARAMETERS: +# +#    (None) +# +# PROVIDED VARIABLES: +# +#    (None) +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +# Converts a given input to a printable output using "(None)" if no items are in the list +CONVERT_TO_PRINTABLE           = $(if $(strip $(1)), $(1), (None)) + + +# Build sorted and filtered lists of the included build module data +SORTED_LUFA_BUILD_MODULES      = $(sort $(LUFA_BUILD_MODULES)) +SORTED_LUFA_BUILD_TARGETS      = $(sort $(LUFA_BUILD_TARGETS)) +SORTED_LUFA_MANDATORY_VARS     = $(sort $(LUFA_BUILD_MANDATORY_VARS)) +SORTED_LUFA_OPTIONAL_VARS      = $(filter-out $(SORTED_LUFA_MANDATORY_VARS), $(sort $(LUFA_BUILD_OPTIONAL_VARS))) +SORTED_LUFA_PROVIDED_VARS      = $(sort $(LUFA_BUILD_PROVIDED_VARS)) +SORTED_LUFA_PROVIDED_MACROS    = $(sort $(LUFA_BUILD_PROVIDED_MACROS)) + +# Create printable versions of the sorted build module data (use "(None)" when no data is available) +PRINTABLE_LUFA_BUILD_MODULES   = $(call CONVERT_TO_PRINTABLE, $(SORTED_LUFA_BUILD_MODULES)) +PRINTABLE_LUFA_BUILD_TARGETS   = $(call CONVERT_TO_PRINTABLE, $(SORTED_LUFA_BUILD_TARGETS)) +PRINTABLE_LUFA_MANDATORY_VARS  = $(call CONVERT_TO_PRINTABLE, $(SORTED_LUFA_MANDATORY_VARS)) +PRINTABLE_LUFA_OPTIONAL_VARS   = $(call CONVERT_TO_PRINTABLE, $(SORTED_LUFA_OPTIONAL_VARS)) +PRINTABLE_LUFA_PROVIDED_VARS   = $(call CONVERT_TO_PRINTABLE, $(SORTED_LUFA_PROVIDED_VARS)) +PRINTABLE_LUFA_PROVIDED_MACROS = $(call CONVERT_TO_PRINTABLE, $(SORTED_LUFA_PROVIDED_MACROS)) + +help: +	@echo "===================================================================" +	@echo "                       LUFA Build System 2.0                       " +	@echo "      (C) Dean Camera, 2014 { dean @ fourwalledcubicle . com }     " +	@echo "===================================================================" +	@echo "DESCRIPTION:                                                       " +	@echo " This build system is a set of makefile modules for (GNU) Make, to " +	@echo " provide a simple system for building LUFA powered applications.   " +	@echo " Each makefile module can be included from within a user makefile, " +	@echo " to expose the build rules documented in the comments at the top of" +	@echo " each build module.                                                " +	@echo "                                                                   " +	@echo "USAGE:                                                             " +	@echo " To execute a rule, define all variables indicated in the desired  " +	@echo " module as a required parameter before including the build module  " +	@echo " in your project makefile. Parameters marked as optional will      " +	@echo " assume a default value in the modules if not user-assigned.       " +	@echo "                                                                   " +	@echo " By default the target output shows both a friendly summary, as    " +	@echo " well as the actual invoked command. To suppress the output of the " +	@echo " invoked commands and show only the friendly command output, run   " +	@echo " make with the \"-s\" switch added before the target(s).           " +	@echo "                                                                   " +	@echo "SEE ALSO:                                                          " +	@echo " For more information, see the 'Build System' chapter of the LUFA  " +	@echo " project documentation.                                            " +	@echo "===================================================================" +	@echo "                                                                   " +	@echo "  Currently used build system modules in this application:         " +	@echo "                                                                   " +	@printf " %b" "$(PRINTABLE_LUFA_BUILD_MODULES:%=   - %\n)" +	@echo "                                                                   " +	@echo "                                                                   " +	@echo "  Currently available build targets in this application:           " +	@echo "                                                                   " +	@printf " %b" "$(PRINTABLE_LUFA_BUILD_TARGETS:%=   - %\n)" +	@echo "                                                                   " +	@echo "                                                                   " +	@echo "  Mandatory variables required by the selected build Modules:      " +	@echo "                                                                   " +	@printf " %b" "$(PRINTABLE_LUFA_MANDATORY_VARS:%=   - %\n)" +	@echo "                                                                   " +	@echo "                                                                   " +	@echo "  Optional variables required by the selected build Modules:       " +	@echo "                                                                   " +	@printf " %b" "$(PRINTABLE_LUFA_OPTIONAL_VARS:%=   - %\n)" +	@echo "                                                                   " +	@echo "                                                                   " +	@echo "  Variables provided by the selected build Modules:                " +	@echo "                                                                   " +	@printf " %b" "$(PRINTABLE_LUFA_PROVIDED_VARS:%=   - %\n)" +	@echo "                                                                   " +	@echo "                                                                   " +	@echo "  Macros provided by the selected build Modules:                   " +	@echo "                                                                   " +	@printf " %b" "$(PRINTABLE_LUFA_PROVIDED_MACROS:%=   - %\n)" +	@echo "                                                                   " +	@echo "===================================================================" +	@echo "   The LUFA BuildSystem 2.0 - Powered By Positive Thinking (tm)    " +	@echo "===================================================================" + +# Lists build modules included by the project makefile, in alphabetical order +list_modules: +	@echo Currently Used Build System Modules: +	@printf " %b" "$(PRINTABLE_LUFA_BUILD_MODULES:%=   - %\n)" + +# Lists build targets included by the project makefile, in alphabetical order +list_targets: +	@echo Currently Available Build Targets: +	@printf " %b" "$(PRINTABLE_LUFA_BUILD_TARGETS:%=   - %\n)" + +# Lists mandatory variables that must be set by the project makefile, in alphabetical order +list_mandatory: +	@echo Mandatory Variables for Included Modules: +	@printf " %b" "$(PRINTABLE_LUFA_MANDATORY_VARS:%=   - %\n)" + +# Lists optional variables that must be set by the project makefile, in alphabetical order +list_optional: +	@echo Optional Variables for Included Modules: +	@printf " %b" "$(PRINTABLE_LUFA_OPTIONAL_VARS:%=   - %\n)" + +# Lists variables provided by the included build modules, in alphabetical order +list_provided: +	@echo Variables Provided by the Included Modules: +	@printf " %b" "$(PRINTABLE_LUFA_PROVIDED_VARS:%=   - %\n)" + +# Lists macros provided by the included build modules, in alphabetical order +list_macros: +	@echo Macros Provided by the Included Modules: +	@printf " %b" "$(PRINTABLE_LUFA_PROVIDED_MACROS:%=   - %\n)" + +# Disable default in-built make rules (those that are needed are explicitly +# defined, and doing so has performance benefits when recursively building) +ifeq ($(filter -r,$(MAKEFLAGS)),) +  MAKEFLAGS += -r +endif +.SUFFIXES: + +# Phony build targets for this module +.PHONY: help list_modules list_targets list_mandatory list_optional list_provided list_macros diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_cppcheck.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_cppcheck.mk new file mode 100644 index 0000000000..0b9b611646 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_cppcheck.mk @@ -0,0 +1,107 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += CPPCHECK +LUFA_BUILD_TARGETS         += cppcheck cppcheck-config +LUFA_BUILD_MANDATORY_VARS  += SRC +LUFA_BUILD_OPTIONAL_VARS   += CPPCHECK_INCLUDES CPPCHECK_EXCLUDES CPPCHECK_MSG_TEMPLATE CPPCHECK_ENABLE \ +                              CPPCHECK_SUPPRESS CPPCHECK_FAIL_ON_WARNING CPPCHECK_QUIET CPPCHECK_FLAGS +LUFA_BUILD_PROVIDED_VARS   += +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#                LUFA CPPCheck Buildsystem Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of targets to scan a project with the free "cppcheck" static +#   analysis tool, to check for code errors at runtime +#   (see http://cppcheck.sourceforge.net). +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    cppcheck                  - Scan the project with CPPCheck +#    cppcheck-config           - Use CPPCheck to look for missing include files +# +# MANDATORY PARAMETERS: +# +#    SRC                       - List of source files to statically analyze +# +# OPTIONAL PARAMETERS: +# +#    CPPCHECK_INCLUDES         - Extra include paths to search for missing +#                                header files +#    CPPCHECK_EXCLUDES         - Source file paths to exclude checking (can be +#                                a path fragment if desired) +#    CPPCHECK_MSG_TEMPLATE     - Template for cppcheck error and warning output +#    CPPCHECK_ENABLE           - General cppcheck category checks to enable +#    CPPCHECK_SUPPRESS         - Specific cppcheck warnings to disable by ID +#    CPPCHECK_FAIL_ON_WARNING  - Set to Y to fail the build on cppcheck +#                                warnings, N to continue even if warnings occur +#    CPPCHECK_QUIET            - Enable cppcheck verbose or quiet output mode +#    CPPCHECK_FLAGS            - Additional flags to pass to cppcheck +# +# PROVIDED VARIABLES: +# +#    (None) +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +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)) + +# Default values of optionally user-supplied variables +CPPCHECK_INCLUDES            ?= +CPPCHECK_EXCLUDES            ?= +CPPCHECK_MSG_TEMPLATE        ?= {file}:{line}: {severity} ({id}): {message} +CPPCHECK_ENABLE              ?= all +CPPCHECK_SUPPRESS            ?= variableScope missingInclude +CPPCHECK_FAIL_ON_WARNING     ?= Y +CPPCHECK_QUIET               ?= Y +CPPCHECK_FLAGS               ?= + +# Sanity check user supplied values +$(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR))) +$(call ERROR_IF_EMPTY, SRC) +$(call ERROR_IF_EMPTY, CPPCHECK_MSG_TEMPLATE) +$(call ERROR_IF_EMPTY, CPPCHECK_ENABLE) +$(call ERROR_IF_NONBOOL, CPPCHECK_FAIL_ON_WARNING) +$(call ERROR_IF_NONBOOL, CPPCHECK_QUIET) + +# Build a default argument list for cppcheck +BASE_CPPCHECK_FLAGS := --template="$(CPPCHECK_MSG_TEMPLATE)" $(CPPCHECK_INCLUDES:%=-I%) $(CPPCHECK_EXCLUDES:%=-i%) --inline-suppr --force --std=c99 + +# Sanity check parameters and construct additional command line arguments to cppcheck +ifeq ($(CPPCHECK_FAIL_ON_WARNING), Y) +   BASE_CPPCHECK_FLAGS += --error-exitcode=1 +endif +ifeq ($(CPPCHECK_QUIET), Y) +   BASE_CPPCHECK_FLAGS += --quiet +endif + +# Output Messages +MSG_CPPCHECK_CMD         := ' [CPPCHECK]:' + +# Checks the CPPCheck configuration as used in the user project, to determine if any paths are missing or invalid +cppcheck-config: $(MAKEFILE_LIST) +	@echo $(MSG_CPPCHECK_CMD) Checking cppcheck configuration check on source files +	cppcheck $(BASE_CPPCHECK_FLAGS) --check-config $(CPPCHECK_FLAGS) $(SRC) + +# Runs a static analysis using CPPCheck to determine if there are any issues +cppcheck: $(MAKEFILE_LIST) +	@echo $(MSG_CPPCHECK_CMD) Performing static analysis on source files +	cppcheck $(BASE_CPPCHECK_FLAGS) --enable=$(CPPCHECK_ENABLE) $(CPPCHECK_SUPPRESS:%=--suppress=%) $(CPPCHECK_FLAGS) $(SRC) + +# Phony build targets for this module +.PHONY: cppcheck-config cppcheck diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_dfu.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_dfu.mk new file mode 100644 index 0000000000..956adc8ba0 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_dfu.mk @@ -0,0 +1,95 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += DFU +LUFA_BUILD_TARGETS         += flip flip-ee dfu dfu-ee +LUFA_BUILD_MANDATORY_VARS  += MCU TARGET +LUFA_BUILD_OPTIONAL_VARS   += +LUFA_BUILD_PROVIDED_VARS   += +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#               LUFA DFU Bootloader Buildsystem Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of targets to re-program a device currently running a DFU +#   class bootloader with a project's FLASH and EEPROM files. +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    flip                      - Program FLASH into target via Atmel FLIP +#    flip-ee                   - Program EEPROM into target via Atmel FLIP +#    dfu                       - Program FLASH into target via dfu-programmer +#    dfu-ee                    - Program EEPROM into target via dfu-programmer +# +# MANDATORY PARAMETERS: +# +#    MCU                       - Microcontroller device model name +#    TARGET                    - Application name +# +# OPTIONAL PARAMETERS: +# +#    (None) +# +# PROVIDED VARIABLES: +# +#    (None) +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +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_COPY_CMD   := ' [CP]      :' +MSG_REMOVE_CMD := ' [RM]      :' +MSG_DFU_CMD    := ' [DFU]     :' + +# Programs in the target FLASH memory using BATCHISP, the command line tool used by FLIP +flip: $(TARGET).hex $(MAKEFILE_LIST) +	@echo $(MSG_DFU_CMD) Programming FLASH with batchisp using \"$<\" +	batchisp -hardware usb -device $(MCU) -operation erase f loadbuffer $< program +	batchisp -hardware usb -device $(MCU) -operation start reset 0 + +# Programs in the target EEPROM memory using BATCHISP, the command line tool used by FLIP +flip-ee: $(TARGET).eep $(MAKEFILE_LIST) +	@echo $(MSG_COPY_CMD) Copying EEP file to temporary file \"$<.hex\" +	cp $< $<.hex +	@echo $(MSG_DFU_CMD) Programming EEPROM with batchisp using \"$<.hex\" +	batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $<.hex program +	batchisp -hardware usb -device $(MCU) -operation start reset 0 +	@echo $(MSG_REMOVE_CMD) Removing temporary file \"$<.hex\" +	rm $<.hex + +# Programs in the target FLASH memory using DFU-PROGRAMMER +dfu: $(TARGET).hex $(MAKEFILE_LIST) +	@echo $(MSG_DFU_CMD) Programming FLASH with dfu-programmer using \"$<\" +	dfu-programmer $(MCU) erase +	dfu-programmer $(MCU) flash $< +	dfu-programmer $(MCU) reset + +# Programs in the target EEPROM memory using DFU-PROGRAMMER +dfu-ee: $(TARGET).eep $(MAKEFILE_LIST) +	@echo $(MSG_DFU_CMD) Programming EEPROM with dfu-programmer using \"$<\" +	dfu-programmer $(MCU) eeprom-flash $< +	dfu-programmer $(MCU) reset + +# Phony build targets for this module +.PHONY: flip flip-ee dfu dfu-ee diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_doxygen.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_doxygen.mk new file mode 100644 index 0000000000..babf287981 --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_doxygen.mk @@ -0,0 +1,100 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += DOXYGEN +LUFA_BUILD_TARGETS         += doxygen doxygen_upgrade doxygen_create +LUFA_BUILD_MANDATORY_VARS  += LUFA_PATH +LUFA_BUILD_OPTIONAL_VARS   += DOXYGEN_CONF DOXYGEN_FAIL_ON_WARNING DOXYGEN_OVERRIDE_PARAMS +LUFA_BUILD_PROVIDED_VARS   += +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#                 LUFA Doxygen Buildsystem Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of targets to automatically build Doxygen documentation for +#   a project (see www.doxygen.org). +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    doxygen                   - Build Doxygen Documentation +#    doxygen_create            - Create a new Doxygen configuration file using +#                                the latest template +#    doxygen_upgrade           - Upgrade an existing Doxygen configuration file +#                                to the latest template +# +# MANDATORY PARAMETERS: +# +#    LUFA_PATH                 - Path to the LUFA library core +# +# OPTIONAL PARAMETERS: +# +#    DOXYGEN_CONF              - Doxygen configuration filename +#    DOXYGEN_FAIL_ON_WARNING   - Set to Y to fail the build on Doxygen warnings, +#                                N to continue even if warnings occur +#    DOXYGEN_OVERRIDE_PARAMS   - Parameters to override in the doxygen +#                                configuration file +# PROVIDED VARIABLES: +# +#    (None) +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +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)) + +# Default values of optionally user-supplied variables +DOXYGEN_CONF            ?= doxyfile +DOXYGEN_FAIL_ON_WARNING ?= Y +DOXYGEN_OVERRIDE_PARAMS ?= QUIET=YES HTML_EXTRA_STYLESHEET=$(patsubst %/,%,$(LUFA_PATH))/DoxygenPages/Style/Style.css + +# Sanity check user supplied values +$(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR))) +$(call ERROR_IF_EMPTY, DOXYGEN_CONF) +$(call ERROR_IF_EMPTY, LUFA_PATH) +$(call ERROR_IF_NONBOOL, DOXYGEN_FAIL_ON_WARNING) + +# Output Messages +MSG_DOXYGEN_CMD         := ' [DOXYGEN] :' + +# Determine Doxygen invocation command +BASE_DOXYGEN_CMD := ( cat $(DOXYGEN_CONF) $(DOXYGEN_OVERRIDE_PARAMS:%=; echo "%") ) | doxygen - +ifeq ($(DOXYGEN_FAIL_ON_WARNING), Y) +   DOXYGEN_CMD := if ( $(BASE_DOXYGEN_CMD) 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then exit 1; fi; +else +   DOXYGEN_CMD := $(BASE_DOXYGEN_CMD) +endif + +# Error if the specified Doxygen configuration file does not exist +$(DOXYGEN_CONF): +	$(error Doxygen configuration file $@ does not exist) + +# Builds the project documentation using the specified configuration file and the DOXYGEN tool +doxygen: $(DOXYGEN_CONF) $(MAKEFILE_LIST) +	@echo $(MSG_DOXYGEN_CMD) Configuration file \"$(DOXYGEN_CONF)\" with parameters \"$(DOXYGEN_OVERRIDE_PARAMS)\" +	$(DOXYGEN_CMD) + +# Upgrades an existing Doxygen configuration file to the latest Doxygen template, preserving settings +doxygen_upgrade: $(DOXYGEN_CONF) $(MAKEFILE_LIST) +	@echo $(MSG_DOXYGEN_CMD) Upgrading configuration file \"$(DOXYGEN_CONF)\" with latest template +	doxygen -u $(DOXYGEN_CONF) > /dev/null + +# Creates a new Doxygen configuration file with the set file name +doxygen_create: $(MAKEFILE_LIST) +	@echo $(MSG_DOXYGEN_CMD) Creating new configuration file \"$(DOXYGEN_CONF)\" with latest template +	doxygen -g $(DOXYGEN_CONF) > /dev/null + +# Phony build targets for this module +.PHONY: doxygen doxygen_upgrade doxygen_create diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_hid.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_hid.mk new file mode 100644 index 0000000000..e79b7bf4dd --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_hid.mk @@ -0,0 +1,96 @@ +# +#             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 diff --git a/protocol/lufa/LUFA-git/LUFA/Build/lufa_sources.mk b/protocol/lufa/LUFA-git/LUFA/Build/lufa_sources.mk new file mode 100644 index 0000000000..cc3492ecce --- /dev/null +++ b/protocol/lufa/LUFA-git/LUFA/Build/lufa_sources.mk @@ -0,0 +1,144 @@ +# +#             LUFA Library +#     Copyright (C) Dean Camera, 2014. +# +#  dean [at] fourwalledcubicle [dot] com +#           www.lufa-lib.org +# + +LUFA_BUILD_MODULES         += SOURCES +LUFA_BUILD_TARGETS         += +LUFA_BUILD_MANDATORY_VARS  += LUFA_PATH ARCH +LUFA_BUILD_OPTIONAL_VARS   += +LUFA_BUILD_PROVIDED_VARS   += LUFA_SRC_USB_DEVICE LUFA_SRC_USB_HOST    \ +                              LUFA_SRC_USB LUFA_SRC_USBCLASS_DEVICE    \ +                              LUFA_SRC_USBCLASS_HOST LUFA_SRC_USBCLASS \ +                              LUFA_SRC_TEMPERATURE LUFA_SRC_SERIAL     \ +                              LUFA_SRC_TWI LUFA_SRC_PLATFORM +LUFA_BUILD_PROVIDED_MACROS += + +# ----------------------------------------------------------------------------- +#               LUFA Sources Buildsystem Makefile Module. +# ----------------------------------------------------------------------------- +# DESCRIPTION: +#   Provides a set of makefile variables for the various LUFA module sources. +#   Once included, the sources required to use a given LUFA module will become +#   available using the makefile variable names listed in the LUFA project +#   documentation. +# ----------------------------------------------------------------------------- +# TARGETS: +# +#    (None) +# +# MANDATORY PARAMETERS: +# +#    LUFA_PATH                 - Path to the LUFA library core +#    ARCH                      - Device architecture name +# +# OPTIONAL PARAMETERS: +# +#    (None) +# +# PROVIDED VARIABLES: +# +#    LUFA_SRC_USB_DEVICE       - List of LUFA USB driver source files required +#                                for USB Device mode only +#    LUFA_SRC_USB_HOST         - List of LUFA USB driver source files required +#                                for USB Host mode only +#    LUFA_SRC_USB              - List of LUFA USB driver source files for all +#                                USB modes +#    LUFA_SRC_USBCLASS_DEVICE  - List of LUFA USB Class driver source files for +#                                USB Device mode only +#    LUFA_SRC_USBCLASS_HOST    - List of LUFA USB Class driver source files for +#                                USB Host mode only +#    LUFA_SRC_USBCLASS         - List of LUFA USB Class driver source files for +#                                all USB modes +#    LUFA_SRC_TEMPERATURE      - List of LUFA temperature sensor driver source +#                                files +#    LUFA_SRC_SERIAL           - List of LUFA Serial U(S)ART driver source files +#    LUFA_SRC_TWI              - List of LUFA TWI driver source files +#    LUFA_SRC_PLATFORM         - List of LUFA architecture specific platform +#                                management source files +# +# PROVIDED MACROS: +# +#    (None) +# +# ----------------------------------------------------------------------------- + +SHELL = /bin/sh + +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 user supplied values +$(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR))) +$(call ERROR_IF_EMPTY, LUFA_PATH) +$(call ERROR_IF_EMPTY, ARCH) + +# Allow LUFA_ROOT_PATH to be overridden elsewhere to support legacy LUFA makefiles +LUFA_ROOT_PATH ?= $(patsubst %/,%,$(LUFA_PATH)) + +# Construct LUFA module source variables +LUFA_SRC_USB_COMMON      := $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBController_$(ARCH).c   \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBInterrupt_$(ARCH).c    \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/ConfigDescriptors.c               \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/Events.c                          \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/USBTask.c                         \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Common/HIDParser.c               \ + +LUFA_SRC_USB_HOST        := $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Host_$(ARCH).c            \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Pipe_$(ARCH).c            \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/PipeStream_$(ARCH).c      \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/HostStandardReq.c                 \ +                            $(LUFA_SRC_USB_COMMON) + +LUFA_SRC_USB_DEVICE      := $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Device_$(ARCH).c          \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Endpoint_$(ARCH).c        \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/EndpointStream_$(ARCH).c  \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Core/DeviceStandardReq.c               \ +                            $(LUFA_SRC_USB_COMMON) + +LUFA_SRC_USBCLASS_DEVICE := $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/AudioClassDevice.c        \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/CDCClassDevice.c          \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/HIDClassDevice.c          \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MassStorageClassDevice.c  \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MIDIClassDevice.c         \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/PrinterClassDevice.c      \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/RNDISClassDevice.c        \ + +LUFA_SRC_USBCLASS_HOST   := $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AudioClassHost.c            \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/CDCClassHost.c              \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/HIDClassHost.c              \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MassStorageClassHost.c      \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MIDIClassHost.c             \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/PrinterClassHost.c          \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/RNDISClassHost.c            \ +                            $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/StillImageClassHost.c + +LUFA_SRC_USB             := $(sort $(LUFA_SRC_USB_COMMON) $(LUFA_SRC_USB_HOST) $(LUFA_SRC_USB_DEVICE)) + +LUFA_SRC_USBCLASS        := $(LUFA_SRC_USBCLASS_DEVICE) $(LUFA_SRC_USBCLASS_HOST) + +LUFA_SRC_TEMPERATURE     := $(LUFA_ROOT_PATH)/Drivers/Board/Temperature.c + +LUFA_SRC_SERIAL          := $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/Serial_$(ARCH).c + +LUFA_SRC_TWI             := $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/TWI_$(ARCH).c + +ifeq ($(ARCH), UC3) +   LUFA_SRC_PLATFORM     := $(LUFA_ROOT_PATH)/Platform/UC3/Exception.S   \ +                            $(LUFA_ROOT_PATH)/Platform/UC3/InterruptManagement.c +else +   LUFA_SRC_PLATFORM     := +endif + +# Build a list of all available module sources +LUFA_SRC_ALL_FILES   := $(LUFA_SRC_USB)            \ +                        $(LUFA_SRC_USBCLASS)       \ +                        $(LUFA_SRC_TEMPERATURE)    \ +                        $(LUFA_SRC_SERIAL)         \ +                        $(LUFA_SRC_TWI)            \ +                        $(LUFA_SRC_PLATFORM) | 
