Extend bootloader build test to include all supported configurations including the...
[pub/USBasp.git] / LUFA / DoxygenPages / BuildSystem.txt
index fe29aeb..c30a88b 100644 (file)
  *  application makefile. The system is written in GNU Make, and each module is independant of\r
  *  one-another.\r
  *\r
+ *  For details on the prerequisites needed for Linux and Windows machines to be able to use the LUFA\r
+ *  build system, see \ref Sec_Prerequisites.\r
+ *\r
  *  To use a LUFA build system module, simply add an include to your project makefile:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.core.in\r
+ *  include $(LUFA_PATH)/Build/lufa_core.mk\r
  *  \endcode\r
  *\r
  *  And the associated build module targets will be added to your project's build makefile automatically.\r
@@ -38,6 +41,7 @@
  *  \li \subpage Page_BuildModule_CPPCHECK - Static Code Analysis\r
  *  \li \subpage Page_BuildModule_DFU - Device Programming\r
  *  \li \subpage Page_BuildModule_DOXYGEN - Automated Source Code Documentation\r
+ *  \li \subpage Page_BuildModule_HID - Device Programming\r
  *  \li \subpage Page_BuildModule_SOURCES - LUFA Module Source Code Variables\r
  */\r
  \r
@@ -49,7 +53,7 @@
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.build.in\r
+ *  include $(LUFA_PATH)/Build/lufa_build.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_BUILD_Requirements Requirements\r
  *    <td>Display a size-sorted list of symbols from the compiled application, in decimal bytes.</td>\r
  *   </tr>\r
  *   <tr>\r
+ *    <td><tt>check-source</tt></td>\r
+ *    <td>Display a list of input SRC source files which cannot be found (if any).</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>lib</tt></td>\r
+ *    <td>Build and archive all source files into a library A binary file.</td>\r
+ *   </tr>\r
+ *   <tr>\r
  *    <td><tt>all</tt></td>\r
  *    <td>Build and link the application into ELF debug and HEX binary files.</td>\r
  *   </tr>\r
  *    <td><tt>clean</tt></td>\r
  *    <td>Remove all intermediatary files and binary output files.</td>\r
  *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>mostlyclean</tt></td>\r
+ *    <td>Remove all intermediatary files but preserve any binary output files.</td>\r
+ *   </tr>\r
  *  </table>\r
  *\r
  *  \section SSec_BuildModule_BUILD_MandatoryParams Mandatory Parameters\r
  *    <td>Version of the C++ standard to apply when compiling C++ source files (see GCC manual).</td>\r
  *   </tr>\r
  *   <tr>\r
+ *    <td><tt>DEBUG_FORMAT</tt></td>\r
+ *    <td>Format of the debug information to embed in the generated object files (see GCC manual).</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>DEBUG_LEVEL</tt></td>\r
+ *    <td>Level of the debugging information to embed in the generated object files (see GCC manual).</td>\r
+ *   </tr>\r
+ *   <tr>\r
  *    <td><tt>F_CPU</tt></td>\r
  *    <td>Speed of the processor CPU clock, in Hz.</td>\r
  *   </tr>\r
  *   </tr>\r
  *   <tr>\r
  *    <td><tt>CC_FLAGS</tt></td>\r
- *    <td>Common flags to pass to the compiler, assembler and linker, after the automatically generated flags.</td>\r
+ *    <td>Common flags to pass to the C/C++ compiler and assembler, after the automatically generated flags.</td>\r
  *   </tr>\r
  *   <tr>\r
  *    <td><tt>LD_FLAGS</tt></td>\r
  *    <td>Flags to pass to the linker, after the automatically generated flags.</td>\r
  *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>OBJDIR</tt></td>\r
+ *    <td>Directory to place the generated object and dependency files. If set to "." the same folder as the source file will be used.\r
+ *        \note When this option is enabled, all source filenames <b>must</b> be unique.</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>OBJECT_FILES</tt></td>\r
+ *    <td>List of additional object files that should be linked into the resulting binary.</td>\r
+ *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_BUILD_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_BUILD_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.core.in\r
+ *  include $(LUFA_PATH)/Build/lufa_core.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_CORE_Requirements Requirements\r
  *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_CORE_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_CORE_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.atprogram.in\r
+ *  include $(LUFA_PATH)/Build/lufa_atprogram.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_ATPROGRAM_Requirements Requirements\r
  *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_ATPROGRAM_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_ATPROGRAM_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.avrdude.in\r
+ *  include $(LUFA_PATH)/Build/lufa_avrdude.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_AVRDUDE_Requirements Requirements\r
  *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_AVRDUDE_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_AVRDUDE_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.cppcheck.in\r
+ *  include $(LUFA_PATH)/Build/lufa_cppcheck.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_CPPCHECK_Requirements Requirements\r
  *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_CPPCHECK_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_CPPCHECK_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r
  *\r
  *  The DFU programming utility LUFA build system module, providing targets to reprogram an\r
  *  Atmel processor FLASH and EEPROM memories with a project's compiled binary output files.\r
- *  This module requires a DFU class bootloader to be running in the target.\r
+ *  This module requires a DFU class bootloader to be running in the target, compatible with\r
+ *  the DFU bootloader protocol as published by Atmel.\r
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.dfu.in\r
+ *  include $(LUFA_PATH)/Build/lufa_dfu.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_DFU_Requirements Requirements\r
  *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_DFU_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_DFU_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.doxygen.in\r
+ *  include $(LUFA_PATH)/Build/lufa_doxygen.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_DOXYGEN_Requirements Requirements\r
  *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_DOXYGEN_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_DOXYGEN_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r
  *  </table>\r
  */\r
  \r
+ /** \page Page_BuildModule_HID The HID build module\r
+ *\r
+ *  The HID programming utility LUFA build system module, providing targets to reprogram an\r
+ *  Atmel processor's FLASH memory with a project's compiled binary output file. This module\r
+ *  requires a HID class bootloader to be running in the target, using a protocol compatible\r
+ *  with the PJRC "HalfKay" protocol (<a>http://www.pjrc.com/teensy/halfkay_protocol.html</a>).\r
+ *\r
+ *  To use this module in your application makefile, add the following code:\r
+ *  \code\r
+ *  include $(LUFA_PATH)/Build/lufa_hid.mk\r
+ *  \endcode\r
+ *\r
+ *  \section SSec_BuildModule_HID_Requirements Requirements\r
+ *  This module requires either the <tt>hid_bootloader_cli</tt> utility from the included LUFA HID\r
+ *  class bootloader API subdirectory, or the <tt>teensy_loader_cli</tt> utility from PJRC\r
+ *  (<a>http://www.pjrc.com/teensy/loader_cli.html</a>) to be available in your system's <b>PATH</b>\r
+ *  variable.\r
+ *\r
+ *  \section SSec_BuildModule_HID_Targets Targets\r
+ *\r
+ *  <table>\r
+ *   <tr>\r
+ *    <td><tt>hid</tt></td>\r
+ *    <td>Program the device FLASH memory with the application's executable data using <tt>hid_bootloader_cli</tt>.</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>hid-ee</tt></td>\r
+ *    <td>Program the device EEPROM memory with the application's EEPROM data using <tt>hid_bootloader_cli</tt> and\r
+ *        a temporary AVR application programmed into the target's FLASH.\r
+ *        \note This will erase the currently loaded application in the target.</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>teensy</tt></td>\r
+ *    <td>Program the device FLASH memory with the application's executable data using <tt>teensy_loader_cli</tt>.</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>teensy-ee</tt></td>\r
+ *    <td>Program the device EEPROM memory with the application's EEPROM data using <tt>teensy_loader_cli</tt> and\r
+ *        a temporary AVR application programmed into the target's FLASH.\r
+ *        \note This will erase the currently loaded application in the target.</td>\r
+ *   </tr>\r
+ *  </table>\r
+ *\r
+ *  \section SSec_BuildModule_HID_MandatoryParams Mandatory Parameters\r
+ *\r
+ *  <table>\r
+ *   <tr>\r
+ *    <td><tt>MCU</tt></td>\r
+ *    <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td>\r
+ *   </tr>\r
+ *   <tr>\r
+ *    <td><tt>TARGET</tt></td>\r
+ *    <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td>\r
+ *   </tr>\r
+ *  </table>\r
+ *\r
+ *  \section SSec_BuildModule_HID_OptionalParams Optional Parameters\r
+ *\r
+ *  <table>\r
+ *   <tr>\r
+ *    <td><i>None</i></td>\r
+ *   </tr>\r
+ *  </table>\r
+ *\r
+ *  \section SSec_BuildModule_HID_ProvidedVariables Module Provided Variables\r
+ *\r
+ *  <table>\r
+ *   <tr>\r
+ *    <td><i>None</i></td>\r
+ *   </tr>\r
+ *  </table> \r
+ *\r
+ *  \section SSec_BuildModule_HID_ProvidedMacros Module Provided Macros\r
+ *\r
+ *  <table>\r
+ *   <tr>\r
+ *    <td><i>None</i></td>\r
+ *   </tr>\r
+ *  </table>\r
+ */\r
\r
  /** \page Page_BuildModule_SOURCES The SOURCES build module\r
  *\r
  *  The SOURCES LUFA build system module, providing variables listing the various LUFA source files\r
  *\r
  *  To use this module in your application makefile, add the following code:\r
  *  \code\r
- *  include $(LUFA_PATH)/Build/lufa.sources.in\r
+ *  include $(LUFA_PATH)/Build/lufa_sources.mk\r
  *  \endcode\r
  *\r
  *  \section SSec_BuildModule_SOURCES_Requirements Requirements\r
  *   </tr>\r
  *  </table>\r
  *\r
- *  \section SSec_BuildModule_SOURCES_ProvideVariables Module Provided Variables\r
+ *  \section SSec_BuildModule_SOURCES_ProvidedVariables Module Provided Variables\r
  *\r
  *  <table>\r
  *   <tr>\r