/** \file
*
* This file contains special DoxyGen information for the generation of the main page and other special
* documentation pages. It is not a project source file.
*/
/** \page Page_BuildSystem The LUFA Build System
*
* \section Sec_BuildSystemOverview Overview of the LUFA Build System
* The LUFA build system is an attempt at making a set of re-usable, modular build make files which
* can be referenced in a LUFA powered project, to minimise the amount of code required in an
* application makefile. The system is written in GNU Make, and each module is independant of
* one-another.
*
* For details on the prerequisites needed for Linux and Windows machines to be able to use the LUFA
* build system, see \ref Sec_Prerequisites.
*
* To use a LUFA build system module, simply add an include to your project makefile:
* \code
* include $(LUFA_PATH)/Build/lufa_core.mk
* \endcode
*
* And the associated build module targets will be added to your project's build makefile automatically.
* To call a build target, run make {TARGET_NAME} from the command line, substituting in
* the appropriate target name.
*
* \see \ref Sec_AppConfigParams for a copy of the sample LUFA project makefile.
*
* Each build module may have one or more mandatory parameters (GNU Make variables) which must
* be supplied in the project makefile for the module to work, and one or more optional parameters which
* may be defined and which will assume a sensible default if not.
*
* \section SSec_BuildSystemModules Available Modules
*
* The following modules are included in this LUFA release:
*
* \li \subpage Page_BuildModule_ATPROGRAM - Device Programming
* \li \subpage Page_BuildModule_AVRDUDE - Device Programming
* \li \subpage Page_BuildModule_BUILD - Compiling/Assembling/Linking
* \li \subpage Page_BuildModule_CORE - Core Build System Functions
* \li \subpage Page_BuildModule_CPPCHECK - Static Code Analysis
* \li \subpage Page_BuildModule_DFU - Device Programming
* \li \subpage Page_BuildModule_DOXYGEN - Automated Source Code Documentation
* \li \subpage Page_BuildModule_HID - Device Programming
* \li \subpage Page_BuildModule_SOURCES - LUFA Module Source Code Variables
*/
/** \page Page_BuildModule_BUILD The BUILD build module
*
* The BUILD LUFA build system module, providing targets for the compilation,
* assembling and linking of an application from source code into binary files
* suitable for programming into a target device.
*
* To use this module in your application makefile, add the following code:
* \code
* include $(LUFA_PATH)/Build/lufa_build.mk
* \endcode
*
* \section SSec_BuildModule_BUILD_Requirements Requirements
* This module requires the the architecture appropriate binaries of the GCC compiler are available in your
* system's PATH variable. The GCC compiler and associated toolchain is distributed in Atmel AVR Studio
* 5.x and Atmel Studio 6.x installation directories, as well as in many third party distribution packages.
*
* \section SSec_BuildModule_BUILD_Targets Targets
*
*
*
* size |
* Display size of the compiled application FLASH and SRAM segments. |
*
*
* symbol-sizes |
* Display a size-sorted list of symbols from the compiled application, in decimal bytes. |
*
*
* check-source |
* Display a list of input SRC source files which cannot be found (if any). |
*
*
* lib |
* Build and archive all source files into a library A binary file. |
*
*
* all |
* Build and link the application into ELF debug and HEX binary files. |
*
*
* elf |
* Build and link the application into an ELF debug file. |
*
*
* hex |
* Build and link the application and produce HEX and EEP binary files. |
*
*
* lss |
* Build and link the application and produce a LSS source code/assembly code mixed listing file. |
*
*
* clean |
* Remove all intermediatary files and binary output files. |
*
*
* mostlyclean |
* Remove all intermediatary files but preserve any binary output files. |
*
*
*
* \section SSec_BuildModule_BUILD_MandatoryParams Mandatory Parameters
*
*
*
* BOARD |
* LUFA board hardware drivers to use (see \ref Page_DeviceSupport). |
*
*
* OPTIMIZATION |
* Optimization level to use when compiling source files (see GCC manual). |
*
*
* C_STANDARD |
* Version of the C standard to apply when compiling C++ source files (see GCC manual). |
*
*
* CPP_STANDARD |
* Version of the C++ standard to apply when compiling C++ source files (see GCC manual). |
*
*
* DEBUG_FORMAT |
* Format of the debug information to embed in the generated object files (see GCC manual). |
*
*
* DEBUG_LEVEL |
* Level of the debugging information to embed in the generated object files (see GCC manual). |
*
*
* F_CPU |
* Speed of the processor CPU clock, in Hz. |
*
*
* C_FLAGS |
* Flags to pass to the C compiler only, after the automatically generated flags. |
*
*
* CPP_FLAGS |
* Flags to pass to the C++ compiler only, after the automatically generated flags. |
*
*
* ASM_FLAGS |
* Flags to pass to the assembler only, after the automatically generated flags. |
*
*
* CC_FLAGS |
* Common flags to pass to the C/C++ compiler and assembler, after the automatically generated flags. |
*
*
* LD_FLAGS |
* Flags to pass to the linker, after the automatically generated flags. |
*
*
* OBJDIR |
* Directory to place the generated object and dependency files. If set to "." the same folder as the source file will be used.
* \note When this option is enabled, all source filenames must be unique. |
*
*
* OBJECT_FILES |
* List of additional object files that should be linked into the resulting binary. |
*
*
*
* \section SSec_BuildModule_BUILD_ProvidedVariables Module Provided Variables
*
*
*
* CPPCHECK_INCLUDES |
* Path of extra directories to check when attemting to resolve C/C++ header file includes. |
*
*
* CPPCHECK_EXCLUDES |
* Paths or path fragments to exclude when analyzing. |
*
*
* CPPCHECK_MSG_TEMPLATE |
* Output message template to use when printing errors, warnings and information (see cppcheck documentation). |
*
*
* CPPCHECK_ENABLE |
* Analysis rule categories to enable (see cppcheck documentation). |
*
*
* CPPCHECK_SUPPRESS |
* Specific analysis rules to suppress (see cppcheck documentation). |
*
*
* CPPCHECK_FAIL_ON_WARNING |
* Set to Y to fail the analysis job with an error exit code if warnings are found, N to continue without failing. |
*
*
* CPPCHECK_QUIET |
* Set to Y to suppress all output except warnings and errors, N to show verbose output information. |
*
*
* CPPCHECK_FLAGS |
* Extra flags to pass to cppcheck, after the automatically generated flags. |
*
*
*
* \section SSec_BuildModule_CPPCHECK_ProvidedVariables Module Provided Variables
*
*