summaryrefslogtreecommitdiffstats
path: root/documentation/sdk-manual/sdk-intro.xml
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2016-09-19 16:45:26 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-28 15:02:32 +0100
commitfe8d57543313cd6ef79141ed374ac4f708f4e810 (patch)
treef75ba6bf5c207d2a6260dc6f45f76a4ce7903e6d /documentation/sdk-manual/sdk-intro.xml
parented6a5495a19b7f2bc0f9ae35027b27f2bb973576 (diff)
downloadpoky-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.xml124
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>