1
0
tmk_keyboard/protocol/lufa/LUFA-git/LUFA/DoxygenPages/ExportingLibrary.txt
tmk f6d56675f9 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
2015-05-13 11:13:10 +09:00

113 lines
6.0 KiB
Plaintext

/** \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_ExportingLibrary Exporting the Library for IDE Use
*
* While LUFA was designed to allow for easy compilation in a makefile driven environment,
* it is possible to export the library into a form suitable for drop-in use inside of an
* IDE.
*
* \note <b>LUFA is also available as a native Atmel Studio 6.1 extension</b>, which integrates LUFA into
* Atmel Studio including all demos and projects. If you are running Atmel Studio 6.1 or later, the
* below instructions are not required; download and install the native LUFA extension from the
* <a href="http://gallery.atmel.com">Atmel Gallery</a> instead.
*
* \section Sec_LibraryExport Exporting the Library
* An export of the library is at its most basic, a direct copy of the main "LUFA" source folder from the
* root download folder; this contains the library core which can be re-used within external projects.
* However, as many IDEs attempt to automatically compile all included source files, it is necessary to
* exclude some directories and files from the library core export to allow for easier integration into
* an IDE project.
*
* \subsection SSec_ManualExport Manual Export
* To manually export the library core, copy over the main LUFA library folder from the LUFA root directory,
* renaming as desired. Within the library core folder, the following directories should be removed or
* excluded from your IDE import:
* - Documentation/
* - DoxygenPages/
* - CodeTemplates/
* - StudioIntegration/
*
* If required, files from the CodeTemplates/ subdirectory may be copied to your IDE project as needed.
*
* The resulting copy of the library may then be imported into your chosen IDE according to the instructions
* shown in \ref Sec_LibraryImport.
*
* \subsection SSec_AutomaticExport Automatic Export
* If desired, the steps indicated in \ref SSec_ManualExport may be automatically performed, by running the
* command <b><code>make export_tar</code></b> from the command line. This will generate two .tar files in the
* current directory, named <code>LUFA_YYMMDD.tar</code> and <code>LUFA_YYMMDD_Code_Templates.tar</code> (where
* "YYMMDD" is the version of the library being exported). The first archive contains the exported LUFA core
* with the non-required files removed, while the second contains an archived copy of the code template files
* for the current LUFA version.
*
* The resulting archived copy of the library may then be extracted to your chosen IDE project source directory
* and imported according to the instructions shown in \ref Sec_LibraryImport.
*
* \section Sec_LibraryImport Importing the Library
* An exported copy of the library may be imported wholesale into an IDE project, if the instructions detailed
* in \ref Sec_LibraryExport are followed.
*
* Specific instructions for importing an exported version of LUFA into various IDEs are listed below.
*
* \subsection SSec_AS56_Import Importing into AVRStudio 5.x/Atmel Studio 6.0
* To import LUFA into a new or existing project, the following steps must be followed.
*
* \subsubsection SSSec_AS56_Import_Step1 Copy over the exported library
* Copy over the exported library archive created via the steps listed in \ref Sec_LibraryExport to your AS5/AS6
* project directory.
*
* \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png
*
* \subsubsection SSSec_AS56_Import_Step2 Extract exported library
* Extract out the contents of the archive to a new folder. This may be any name you wish, however keep in mind
* that this name will need to be referenced within your user application under most circumstances. It is
* suggested that this folder be named "LUFA", or "LUFA" followed by the version string for easy reference.
*
* \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png
*
* \subsubsection SSSec_AS56_Import_Step3 Add the library files
* Open your AVRStudio 5/Atmel Studio 6 project. From the "Solution Explorer" pane, click the "Show All Files"
* button on the toolbar to display ghosted icons of files and folders located in the project source directory
* that are not currently added to the project.
*
* \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png
*
* Right-click the ghosted version of the extracted LUFA export folder in the Solution Explorer pane, and
* choose the "Add to Project" option from the context menu. This will add the entire LUFA source tree to the
* current project.
*
* \subsubsection SSSec_AS56_Import_Step4 Open Project Toolchain Properties
* In the Solution Explorer pane, click the project node, and press the "Properties" button in the toolbar to
* open the Project Properties window. This window allows you to configure the various project global compiler,
* assembler and linker options.
*
* \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png
*
* Click the "Toolchain" tab on the left side of the Project Properties window.
*
* \subsubsection SSSec_AS56_Import_Step5 Configure Project Toolchain Properties
*
* In the GNU C Compiler section, open the "Symbols" page. Click the "Add Item" button to the top-right of the
* "Defined Symbols" section to add new symbols.
*
* At a minimum, you will need to define the following symbols (for more information on these symbols, see
* \ref Page_ConfiguringApps):
* - ARCH
* - F_CPU
* - F_USB
* - BOARD
* \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png
*
* Next, open the GNU C Compiler section's "Optimization" page. Ensure that the option to prepare functions for
* garbage collection is enabled.
* \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png
*
* Finally, in the GNU C Linker section, open the "Optimization" page. Ensure that the option to garbage collect
* unused sections is selected.
* \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png
*/