]> git.gir.st - tmk_keyboard.git/blob - tmk_core/protocol/lufa/LUFA-git/LUFA/DoxygenPages/ExportingLibrary.txt
Merge commit 'f6d56675f9f981c5464f0ca7a1fbb0162154e8c5'
[tmk_keyboard.git] / tmk_core / protocol / lufa / LUFA-git / LUFA / DoxygenPages / ExportingLibrary.txt
1 /** \file
2 *
3 * This file contains special DoxyGen information for the generation of the main page and other special
4 * documentation pages. It is not a project source file.
5 */
6
7 /** \page Page_ExportingLibrary Exporting the Library for IDE Use
8 *
9 * While LUFA was designed to allow for easy compilation in a makefile driven environment,
10 * it is possible to export the library into a form suitable for drop-in use inside of an
11 * IDE.
12 *
13 * \note <b>LUFA is also available as a native Atmel Studio 6.1 extension</b>, which integrates LUFA into
14 * Atmel Studio including all demos and projects. If you are running Atmel Studio 6.1 or later, the
15 * below instructions are not required; download and install the native LUFA extension from the
16 * <a href="http://gallery.atmel.com">Atmel Gallery</a> instead.
17 *
18 * \section Sec_LibraryExport Exporting the Library
19 * An export of the library is at its most basic, a direct copy of the main "LUFA" source folder from the
20 * root download folder; this contains the library core which can be re-used within external projects.
21 * However, as many IDEs attempt to automatically compile all included source files, it is necessary to
22 * exclude some directories and files from the library core export to allow for easier integration into
23 * an IDE project.
24 *
25 * \subsection SSec_ManualExport Manual Export
26 * To manually export the library core, copy over the main LUFA library folder from the LUFA root directory,
27 * renaming as desired. Within the library core folder, the following directories should be removed or
28 * excluded from your IDE import:
29 * - Documentation/
30 * - DoxygenPages/
31 * - CodeTemplates/
32 * - StudioIntegration/
33 *
34 * If required, files from the CodeTemplates/ subdirectory may be copied to your IDE project as needed.
35 *
36 * The resulting copy of the library may then be imported into your chosen IDE according to the instructions
37 * shown in \ref Sec_LibraryImport.
38 *
39 * \subsection SSec_AutomaticExport Automatic Export
40 * If desired, the steps indicated in \ref SSec_ManualExport may be automatically performed, by running the
41 * command <b><code>make export_tar</code></b> from the command line. This will generate two .tar files in the
42 * current directory, named <code>LUFA_YYMMDD.tar</code> and <code>LUFA_YYMMDD_Code_Templates.tar</code> (where
43 * "YYMMDD" is the version of the library being exported). The first archive contains the exported LUFA core
44 * with the non-required files removed, while the second contains an archived copy of the code template files
45 * for the current LUFA version.
46 *
47 * The resulting archived copy of the library may then be extracted to your chosen IDE project source directory
48 * and imported according to the instructions shown in \ref Sec_LibraryImport.
49 *
50 * \section Sec_LibraryImport Importing the Library
51 * An exported copy of the library may be imported wholesale into an IDE project, if the instructions detailed
52 * in \ref Sec_LibraryExport are followed.
53 *
54 * Specific instructions for importing an exported version of LUFA into various IDEs are listed below.
55 *
56 * \subsection SSec_AS56_Import Importing into AVRStudio 5.x/Atmel Studio 6.0
57 * To import LUFA into a new or existing project, the following steps must be followed.
58 *
59 * \subsubsection SSSec_AS56_Import_Step1 Copy over the exported library
60 * Copy over the exported library archive created via the steps listed in \ref Sec_LibraryExport to your AS5/AS6
61 * project directory.
62 *
63 * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png
64 *
65 * \subsubsection SSSec_AS56_Import_Step2 Extract exported library
66 * Extract out the contents of the archive to a new folder. This may be any name you wish, however keep in mind
67 * that this name will need to be referenced within your user application under most circumstances. It is
68 * suggested that this folder be named "LUFA", or "LUFA" followed by the version string for easy reference.
69 *
70 * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png
71 *
72 * \subsubsection SSSec_AS56_Import_Step3 Add the library files
73 * Open your AVRStudio 5/Atmel Studio 6 project. From the "Solution Explorer" pane, click the "Show All Files"
74 * button on the toolbar to display ghosted icons of files and folders located in the project source directory
75 * that are not currently added to the project.
76 *
77 * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png
78 *
79 * Right-click the ghosted version of the extracted LUFA export folder in the Solution Explorer pane, and
80 * choose the "Add to Project" option from the context menu. This will add the entire LUFA source tree to the
81 * current project.
82 *
83 * \subsubsection SSSec_AS56_Import_Step4 Open Project Toolchain Properties
84 * In the Solution Explorer pane, click the project node, and press the "Properties" button in the toolbar to
85 * open the Project Properties window. This window allows you to configure the various project global compiler,
86 * assembler and linker options.
87 *
88 * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png
89 *
90 * Click the "Toolchain" tab on the left side of the Project Properties window.
91 *
92 * \subsubsection SSSec_AS56_Import_Step5 Configure Project Toolchain Properties
93 *
94 * In the GNU C Compiler section, open the "Symbols" page. Click the "Add Item" button to the top-right of the
95 * "Defined Symbols" section to add new symbols.
96 *
97 * At a minimum, you will need to define the following symbols (for more information on these symbols, see
98 * \ref Page_ConfiguringApps):
99 * - ARCH
100 * - F_CPU
101 * - F_USB
102 * - BOARD
103 * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png
104 *
105 * Next, open the GNU C Compiler section's "Optimization" page. Ensure that the option to prepare functions for
106 * garbage collection is enabled.
107 * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png
108 *
109 * Finally, in the GNU C Linker section, open the "Optimization" page. Ensure that the option to garbage collect
110 * unused sections is selected.
111 * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png
112 */
Imprint / Impressum