diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2016-09-19 16:45:26 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-09-28 15:02:32 +0100 |
commit | fe8d57543313cd6ef79141ed374ac4f708f4e810 (patch) | |
tree | f75ba6bf5c207d2a6260dc6f45f76a4ce7903e6d /documentation/sdk-manual/sdk-intro.xml | |
parent | ed6a5495a19b7f2bc0f9ae35027b27f2bb973576 (diff) | |
download | poky-fe8d57543313cd6ef79141ed374ac4f708f4e810.tar.gz |
sdk-manual: New Projet chapter added and other fixes
I extracted the sections on Makefile, Autotools, and Eclipse into
their own new chapter. Seemed to make sense as they are projet
types for both standard and extensible SDK types. Also, swapped
the order of appearance from standard first to extensible first.
This swapping caused a bit of rewriting.
(From yocto-docs rev: 138a4d5576123da800a8fd8d99462a138ceeb743)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/sdk-manual/sdk-intro.xml')
-rw-r--r-- | documentation/sdk-manual/sdk-intro.xml | 124 |
1 files changed, 103 insertions, 21 deletions
diff --git a/documentation/sdk-manual/sdk-intro.xml b/documentation/sdk-manual/sdk-intro.xml index 0995f79a93..e0f51e1cf1 100644 --- a/documentation/sdk-manual/sdk-intro.xml +++ b/documentation/sdk-manual/sdk-intro.xml | |||
@@ -12,25 +12,24 @@ | |||
12 | Welcome to the Yocto Project Software Development Kit (SDK) | 12 | Welcome to the Yocto Project Software Development Kit (SDK) |
13 | Developer's Guide. | 13 | Developer's Guide. |
14 | This manual provides information that explains how to use both the | 14 | This manual provides information that explains how to use both the |
15 | standard Yocto Project SDK and an extensible SDK to develop | 15 | Yocto Project extensible and standard SDKs to develop |
16 | applications and images using the Yocto Project. | 16 | applications and images. |
17 | Additionally, the manual also provides information on how to use | 17 | Additionally, the manual also provides information on how to use |
18 | the popular <trademark class='trade'>Eclipse</trademark> IDE as part | 18 | the popular <trademark class='trade'>Eclipse</trademark> IDE as part |
19 | of your application development workflow within the SDK environment. | 19 | of your application development workflow within the SDK environment. |
20 | <note> | ||
21 | Prior to the 2.0 Release of the Yocto Project, application | ||
22 | development was primarily accomplished through the use of the | ||
23 | Application Development Toolkit (ADT) and the availability | ||
24 | of stand-alone cross-development toolchains and other tools. | ||
25 | With the 2.1 Release of the Yocto Project, application development | ||
26 | has transitioned to within a tool-rich extensible SDK and the more | ||
27 | traditional standard SDK. | ||
28 | </note> | ||
20 | </para> | 29 | </para> |
21 | 30 | ||
22 | <para> | 31 | <para> |
23 | Prior to the 2.0 Release of the Yocto Project, application | 32 | All SDKs consist of the following: |
24 | development was primarily accomplished through the use of the | ||
25 | Application Development Toolkit (ADT) and the availability | ||
26 | of stand-alone cross-development toolchains and other tools. | ||
27 | With the 2.1 Release of the Yocto Project, application development | ||
28 | has transitioned to within a more traditional SDK and extensible | ||
29 | SDK. | ||
30 | </para> | ||
31 | |||
32 | <para> | ||
33 | A standard SDK consists of the following: | ||
34 | <itemizedlist> | 33 | <itemizedlist> |
35 | <listitem><para><emphasis>Cross-Development Toolchain</emphasis>: | 34 | <listitem><para><emphasis>Cross-Development Toolchain</emphasis>: |
36 | This toolchain contains a compiler, debugger, and various | 35 | This toolchain contains a compiler, debugger, and various |
@@ -46,19 +45,19 @@ | |||
46 | preparing for SDK use. | 45 | preparing for SDK use. |
47 | </para></listitem> | 46 | </para></listitem> |
48 | </itemizedlist> | 47 | </itemizedlist> |
49 | You can use the standard SDK to independently develop and test code | ||
50 | that is destined to run on some target machine. | ||
51 | </para> | 48 | </para> |
52 | 49 | ||
53 | <para> | 50 | <para> |
54 | An extensible SDK consists of everything that the standard SDK has plus | 51 | Additionally an extensible SDK has tools that allow you to easily add |
55 | tools that allow you to easily add new applications and libraries to | 52 | new applications and libraries to an image, modify the source of an |
56 | an image, modify the source of an existing component, test changes on | 53 | existing component, test changes on the target hardware, and easily |
57 | the target hardware, and easily integrate an application into the | 54 | integrate an application into the |
58 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>. | 55 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>. |
59 | </para> | 56 | </para> |
60 | 57 | ||
61 | <para> | 58 | <para> |
59 | You can use an SDK to independently develop and test code | ||
60 | that is destined to run on some target machine. | ||
62 | SDKs are completely self-contained. | 61 | SDKs are completely self-contained. |
63 | The binaries are linked against their own copy of | 62 | The binaries are linked against their own copy of |
64 | <filename>libc</filename>, which results in no dependencies | 63 | <filename>libc</filename>, which results in no dependencies |
@@ -73,7 +72,7 @@ | |||
73 | 72 | ||
74 | <para> | 73 | <para> |
75 | Another feature for the SDKs is that only one set of cross-compiler | 74 | Another feature for the SDKs is that only one set of cross-compiler |
76 | toolchain binaries are produced per architecture. | 75 | toolchain binaries are produced for any given architecture. |
77 | This feature takes advantage of the fact that the target hardware can | 76 | This feature takes advantage of the fact that the target hardware can |
78 | be passed to <filename>gcc</filename> as a set of compiler options. | 77 | be passed to <filename>gcc</filename> as a set of compiler options. |
79 | Those options are set up by the environment script and contained in | 78 | Those options are set up by the environment script and contained in |
@@ -98,6 +97,8 @@ | |||
98 | configuration and extensions, | 97 | configuration and extensions, |
99 | which allows you to cross-develop on the host machine for the | 98 | which allows you to cross-develop on the host machine for the |
100 | target hardware. | 99 | target hardware. |
100 | Additionally, the extensible SDK contains the | ||
101 | <filename>devtool</filename> functionality. | ||
101 | </para></listitem> | 102 | </para></listitem> |
102 | <listitem><para>The Quick EMUlator (QEMU), which lets you simulate | 103 | <listitem><para>The Quick EMUlator (QEMU), which lets you simulate |
103 | target hardware. | 104 | target hardware. |
@@ -122,6 +123,85 @@ | |||
122 | </itemizedlist> | 123 | </itemizedlist> |
123 | </para> | 124 | </para> |
124 | 125 | ||
126 | <para> | ||
127 | In summary, the extensible and standard SDK share many features. | ||
128 | However, the extensible SDK has powerful development tools to help you | ||
129 | more quickly develop applications. | ||
130 | Following is a table that summarizes the primary differences between | ||
131 | the standard and extensible SDK types when considering which to | ||
132 | build: | ||
133 | <informaltable frame='none'> | ||
134 | <tgroup cols='3' align='left' colsep='1' rowsep='1'> | ||
135 | <colspec colname='c1' colwidth='1*'/> | ||
136 | <colspec colname='c2' colwidth='1*'/> | ||
137 | <colspec colname='c3' colwidth='1*'/> | ||
138 | <thead> | ||
139 | <row> | ||
140 | <entry align="left"><emphasis>Feature</emphasis></entry> | ||
141 | <entry align="left"><emphasis>Standard SDK</emphasis></entry> | ||
142 | <entry align="left"><emphasis>Extensible SDK</emphasis></entry> | ||
143 | </row> | ||
144 | </thead> | ||
145 | <tbody> | ||
146 | <row> | ||
147 | <entry align="left">Toolchain</entry> | ||
148 | <entry align="left">Yes</entry> | ||
149 | <entry align="left">Yes*</entry> | ||
150 | </row> | ||
151 | <row> | ||
152 | <entry align="left">Debugger</entry> | ||
153 | <entry align="left">Yes</entry> | ||
154 | <entry align="left">Yes*</entry> | ||
155 | </row> | ||
156 | <row> | ||
157 | <entry align="left">Size</entry> | ||
158 | <entry align="left">100+ MBytes</entry> | ||
159 | <entry align="left">1+ GBytes (or 300+ MBytes for minimal w/toolchain)</entry> | ||
160 | </row> | ||
161 | <row> | ||
162 | <entry align="left"><filename>devtool</filename></entry> | ||
163 | <entry align="left">No</entry> | ||
164 | <entry align="left">Yes</entry> | ||
165 | </row> | ||
166 | <row> | ||
167 | <entry align="left">Build Images</entry> | ||
168 | <entry align="left">No</entry> | ||
169 | <entry align="left">Yes</entry> | ||
170 | </row> | ||
171 | <row> | ||
172 | <entry align="left">Updateable</entry> | ||
173 | <entry align="left">No</entry> | ||
174 | <entry align="left">Yes</entry> | ||
175 | </row> | ||
176 | <row> | ||
177 | <entry align="left">Managed Sysroot**</entry> | ||
178 | <entry align="left">No</entry> | ||
179 | <entry align="left">Yes</entry> | ||
180 | </row> | ||
181 | <row> | ||
182 | <entry align="left">Installed Packages</entry> | ||
183 | <entry align="left">No***</entry> | ||
184 | <entry align="left">Yes****</entry> | ||
185 | </row> | ||
186 | <row> | ||
187 | <entry align="left">Construction</entry> | ||
188 | <entry align="left">Packages</entry> | ||
189 | <entry align="left">Shared State</entry> | ||
190 | </row> | ||
191 | </tbody> | ||
192 | </tgroup> | ||
193 | </informaltable> | ||
194 | <literallayout class='monospaced'> | ||
195 | * Extensible SDK will contain the toolchain and debugger if <ulink url='&YOCTO_DOCS_REF_URL;#var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></ulink> is "full" or <ulink url='&YOCTO_DOCS_REF_URL;#var-SDK_INCLUDE_TOOLCHAIN'><filename>SDK_INCLUDE_TOOLCHAIN</filename></ulink> is "1", which is the default. | ||
196 | |||
197 | ** Sysroot is managed through use of <filename>devtool</filename>. Thus, it is less likely that you will corrupt your SDK sysroot when you try to add additional libraries. | ||
198 | |||
199 | *** Runtime package management can be added to the standard SDK but it is not supported by default. | ||
200 | |||
201 | **** You must build and make the shared state available to extensible SDK users for "packages" you want to enable users to install. | ||
202 | </literallayout> | ||
203 | </para> | ||
204 | |||
125 | <section id='the-cross-development-toolchain'> | 205 | <section id='the-cross-development-toolchain'> |
126 | <title>The Cross-Development Toolchain</title> | 206 | <title>The Cross-Development Toolchain</title> |
127 | 207 | ||
@@ -131,6 +211,8 @@ | |||
131 | consists of a cross-compiler, cross-linker, and cross-debugger | 211 | consists of a cross-compiler, cross-linker, and cross-debugger |
132 | that are used to develop user-space applications for targeted | 212 | that are used to develop user-space applications for targeted |
133 | hardware. | 213 | hardware. |
214 | Additionally, for an extensible SDK, the toolchain also has | ||
215 | built-in <filename>devtool</filename> functionality. | ||
134 | This toolchain is created by running a toolchain installer script | 216 | This toolchain is created by running a toolchain installer script |
135 | or through a | 217 | or through a |
136 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | 218 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> |
@@ -258,7 +340,7 @@ | |||
258 | For information on how to install the SDK, see the | 340 | For information on how to install the SDK, see the |
259 | "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>" | 341 | "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>" |
260 | section.</para></listitem> | 342 | section.</para></listitem> |
261 | <listitem><para><emphasis>Download the Target Image:</emphasis> | 343 | <listitem><para><emphasis>Download or Build the Target Image:</emphasis> |
262 | The Yocto Project supports several target architectures | 344 | The Yocto Project supports several target architectures |
263 | and has many pre-built kernel images and root filesystem | 345 | and has many pre-built kernel images and root filesystem |
264 | images.</para> | 346 | images.</para> |