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>
This commit is contained in:
Scott Rifenbark 2016-09-19 16:45:26 -07:00 committed by Richard Purdie
parent ed6a5495a1
commit fe8d575433
5 changed files with 3236 additions and 2858 deletions

File diff suppressed because it is too large Load Diff

View File

@ -12,25 +12,24 @@
Welcome to the Yocto Project Software Development Kit (SDK)
Developer's Guide.
This manual provides information that explains how to use both the
standard Yocto Project SDK and an extensible SDK to develop
applications and images using the Yocto Project.
Yocto Project extensible and standard SDKs to develop
applications and images.
Additionally, the manual also provides information on how to use
the popular <trademark class='trade'>Eclipse</trademark> IDE as part
of your application development workflow within the SDK environment.
<note>
Prior to the 2.0 Release of the Yocto Project, application
development was primarily accomplished through the use of the
Application Development Toolkit (ADT) and the availability
of stand-alone cross-development toolchains and other tools.
With the 2.1 Release of the Yocto Project, application development
has transitioned to within a tool-rich extensible SDK and the more
traditional standard SDK.
</note>
</para>
<para>
Prior to the 2.0 Release of the Yocto Project, application
development was primarily accomplished through the use of the
Application Development Toolkit (ADT) and the availability
of stand-alone cross-development toolchains and other tools.
With the 2.1 Release of the Yocto Project, application development
has transitioned to within a more traditional SDK and extensible
SDK.
</para>
<para>
A standard SDK consists of the following:
All SDKs consist of the following:
<itemizedlist>
<listitem><para><emphasis>Cross-Development Toolchain</emphasis>:
This toolchain contains a compiler, debugger, and various
@ -46,19 +45,19 @@
preparing for SDK use.
</para></listitem>
</itemizedlist>
You can use the standard SDK to independently develop and test code
that is destined to run on some target machine.
</para>
<para>
An extensible SDK consists of everything that the standard SDK has plus
tools that allow you to easily add new applications and libraries to
an image, modify the source of an existing component, test changes on
the target hardware, and easily integrate an application into the
Additionally an extensible SDK has tools that allow you to easily add
new applications and libraries to an image, modify the source of an
existing component, test changes on the target hardware, and easily
integrate an application into the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
</para>
<para>
You can use an SDK to independently develop and test code
that is destined to run on some target machine.
SDKs are completely self-contained.
The binaries are linked against their own copy of
<filename>libc</filename>, which results in no dependencies
@ -73,7 +72,7 @@
<para>
Another feature for the SDKs is that only one set of cross-compiler
toolchain binaries are produced per architecture.
toolchain binaries are produced for any given architecture.
This feature takes advantage of the fact that the target hardware can
be passed to <filename>gcc</filename> as a set of compiler options.
Those options are set up by the environment script and contained in
@ -98,6 +97,8 @@
configuration and extensions,
which allows you to cross-develop on the host machine for the
target hardware.
Additionally, the extensible SDK contains the
<filename>devtool</filename> functionality.
</para></listitem>
<listitem><para>The Quick EMUlator (QEMU), which lets you simulate
target hardware.
@ -122,6 +123,85 @@
</itemizedlist>
</para>
<para>
In summary, the extensible and standard SDK share many features.
However, the extensible SDK has powerful development tools to help you
more quickly develop applications.
Following is a table that summarizes the primary differences between
the standard and extensible SDK types when considering which to
build:
<informaltable frame='none'>
<tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname='c1' colwidth='1*'/>
<colspec colname='c2' colwidth='1*'/>
<colspec colname='c3' colwidth='1*'/>
<thead>
<row>
<entry align="left"><emphasis>Feature</emphasis></entry>
<entry align="left"><emphasis>Standard SDK</emphasis></entry>
<entry align="left"><emphasis>Extensible SDK</emphasis></entry>
</row>
</thead>
<tbody>
<row>
<entry align="left">Toolchain</entry>
<entry align="left">Yes</entry>
<entry align="left">Yes*</entry>
</row>
<row>
<entry align="left">Debugger</entry>
<entry align="left">Yes</entry>
<entry align="left">Yes*</entry>
</row>
<row>
<entry align="left">Size</entry>
<entry align="left">100+ MBytes</entry>
<entry align="left">1+ GBytes (or 300+ MBytes for minimal w/toolchain)</entry>
</row>
<row>
<entry align="left"><filename>devtool</filename></entry>
<entry align="left">No</entry>
<entry align="left">Yes</entry>
</row>
<row>
<entry align="left">Build Images</entry>
<entry align="left">No</entry>
<entry align="left">Yes</entry>
</row>
<row>
<entry align="left">Updateable</entry>
<entry align="left">No</entry>
<entry align="left">Yes</entry>
</row>
<row>
<entry align="left">Managed Sysroot**</entry>
<entry align="left">No</entry>
<entry align="left">Yes</entry>
</row>
<row>
<entry align="left">Installed Packages</entry>
<entry align="left">No***</entry>
<entry align="left">Yes****</entry>
</row>
<row>
<entry align="left">Construction</entry>
<entry align="left">Packages</entry>
<entry align="left">Shared State</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<literallayout class='monospaced'>
* 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.
** 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.
*** Runtime package management can be added to the standard SDK but it is not supported by default.
**** You must build and make the shared state available to extensible SDK users for "packages" you want to enable users to install.
</literallayout>
</para>
<section id='the-cross-development-toolchain'>
<title>The Cross-Development Toolchain</title>
@ -131,6 +211,8 @@
consists of a cross-compiler, cross-linker, and cross-debugger
that are used to develop user-space applications for targeted
hardware.
Additionally, for an extensible SDK, the toolchain also has
built-in <filename>devtool</filename> functionality.
This toolchain is created by running a toolchain installer script
or through a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
@ -258,7 +340,7 @@
For information on how to install the SDK, see the
"<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
section.</para></listitem>
<listitem><para><emphasis>Download the Target Image:</emphasis>
<listitem><para><emphasis>Download or Build the Target Image:</emphasis>
The Yocto Project supports several target architectures
and has many pre-built kernel images and root filesystem
images.</para>

View File

@ -66,9 +66,11 @@
<xi:include href="sdk-intro.xml"/>
<xi:include href="sdk-extensible.xml"/>
<xi:include href="sdk-using.xml"/>
<xi:include href="sdk-extensible.xml"/>
<xi:include href="sdk-working-projects.xml"/>
<xi:include href="sdk-appendix-obtain.xml"/>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff