<para>
The remainder of this section presents these workflows.
- <note>
- See the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-devtool-reference'><filename>devtool</filename> Quick Reference</ulink>"
- in the Yocto Project Reference Manual for more a
- <filename>devtool</filename> reference.
- </note>
+ See the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-devtool-reference'><filename>devtool</filename> Quick Reference</ulink>"
+ in the Yocto Project Reference Manual for a
+ <filename>devtool</filename> quick reference.
</para>
<section id='use-devtool-to-integrate-new-code'>
<emphasis>Finish Your Work With the Recipe</emphasis>:
The <filename>devtool finish</filename> command creates
any patches corresponding to commits in the local
- Git repository, updates the recipe to point to them
- (or creates a <filename>.bbappend</filename> file to do
- so, depending on the specified destination layer), and
- then resets the recipe so that the recipe is built normally
- rather than from the workspace.
+ Git repository, moves the new recipe to a more permanent
+ layer, and then resets the recipe so that the recipe is
+ built normally rather than from the workspace.
+ If you specify a destination layer that is the same as
+ the original source, then the old version of the
+ recipe and associated files will be removed prior to
+ adding the new version.
<literallayout class='monospaced'>
$ devtool finish <replaceable>recipe layer</replaceable>
</literallayout>
You can use existing, pre-built toolchains by locating and running
an SDK installer script that ships with the Yocto Project.
Using this method, you select and download an architecture-specific
- toolchain installer and then run the script to hand-install the
+ SDK installer and then run the script to hand-install the
toolchain.
</para>
(i.e. <filename>i686</filename> for 32-bit machines or
<filename>x86_64</filename> for 64-bit machines).</para>
- <para>Go into that folder and download the toolchain installer
+ <para>Go into that folder and download the SDK installer
whose name includes the appropriate target architecture.
The toolchains provided by the Yocto Project are based off of
the <filename>core-image-sato</filename> image and contain
<title>Building an SDK Installer</title>
<para>
- As an alternative to locating and downloading a toolchain installer,
- you can build the toolchain installer assuming you have first sourced
+ As an alternative to locating and downloading a SDK installer,
+ you can build the SDK installer assuming you have first sourced
the environment setup script.
See the
"<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
</para>
<para>
- To build the toolchain installer for a standard SDK and populate
+ To build the SDK installer for a standard SDK and populate
the SDK image, use the following command:
<literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk
<literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk_ext
</literallayout>
- These commands result in a toolchain installer that contains the sysroot
+ These commands result in a SDK installer that contains the sysroot
that matches your target root filesystem.
</para>
<para>
- When the <filename>bitbake</filename> command completes, the toolchain
+ When the <filename>bitbake</filename> command completes, the SDK
installer will be in
<filename>tmp/deploy/sdk</filename> in the Build Directory.
<note><title>Notes</title>
</para>
<para>
- You can use an extensible SDK to work on Makefile, Autotools, and
+ In addition to the functionality available through
+ <filename>devtool</filename>, you can alternatively make use of
+ the toolchain directly to work on Makefile, Autotools, and
Eclipse-based projects.
See the
- "<link linkend='sdk-working-projects'>Working with Different Types of Projects</link>"
+ "<link linkend='sdk-working-projects'>Using the SDK Toolchain Directly</link>"
chapter for more information.
</para>
&DISTRO;, &DISTRO;+snapshot
</literallayout>
- For example, the following toolchain installer is for a 64-bit
+ For example, the following SDK installer is for a 64-bit
development host system and a i586-tuned target architecture
based off the SDK for <filename>core-image-sato</filename> and
using the current &DISTRO; snapshot:
</literallayout>
<note>
As an alternative to downloading an SDK, you can build the
- toolchain installer.
+ SDK installer.
For information on building the installer, see the
"<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
section.
The following command shows how to run the installer given a
toolchain tarball for a 64-bit x86 development host system and
a 64-bit x86 target architecture.
- The example assumes the toolchain installer is located in
+ The example assumes the SDK installer is located in
<filename>~/Downloads/</filename>.
<note>
If you do not have write permissions for the directory
called <filename>devtool</filename>.
This tool provides a number of features that help
you build, test and package software within the extensible SDK, and
- optionally integrate it into an image built by the OpenEmbedded build
- system.
+ optionally integrate it into an image built by the OpenEmbedded
+ build system.
</para>
<para>
- The <filename>devtool</filename> command line is organized similarly
- to
+ The <filename>devtool</filename> command line is organized
+ similarly to
<ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> in that it has a
number of sub-commands for each function.
You can run <filename>devtool --help</filename> to see all the
commands.
- <note>
- See the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-devtool-reference'><filename>devtool</filename> Quick Reference</ulink>"
- in the Yocto Project Reference Manual for more a
- <filename>devtool</filename> reference.
- </note>
+ See the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-devtool-reference'><filename>devtool</filename> Quick Reference</ulink>"
+ in the Yocto Project Reference Manual for a
+ <filename>devtool</filename> quick reference.
</para>
<para>
- Two <filename>devtool</filename> subcommands that provide
+ Three <filename>devtool</filename> subcommands that provide
entry-points into development are:
<itemizedlist>
- <listitem><para><emphasis><filename>devtool add</filename></emphasis>:
+ <listitem><para>
+ <emphasis><filename>devtool add</filename></emphasis>:
Assists in adding new software to be built.
</para></listitem>
- <listitem><para><emphasis><filename>devtool modify</filename></emphasis>:
+ <listitem><para>
+ <emphasis><filename>devtool modify</filename></emphasis>:
Sets up an environment to enable you to modify the source of
an existing component.
</para></listitem>
+ <listitem><para>
+ <emphasis><filename>devtool upgrade</filename></emphasis>:
+ Updates an existing recipe so that you can build it for
+ an updated set of source files.
+ </para></listitem>
</itemizedlist>
As with the OpenEmbedded build system, "recipes" represent software
packages within <filename>devtool</filename>.
<emphasis>Finish Your Work With the Recipe</emphasis>:
The <filename>devtool finish</filename> command creates
any patches corresponding to commits in the local
- Git repository, updates the recipe to point to them
- (or creates a <filename>.bbappend</filename> file to do
- so, depending on the specified destination layer), and
- then resets the recipe so that the recipe is built normally
- rather than from the workspace.
+ Git repository, moves the new recipe to a more permanent
+ layer, and then resets the recipe so that the recipe is
+ built normally rather than from the workspace.
+ If you specify a destination layer that is the same as
+ the original source, then the old version of the
+ recipe and associated files will be removed prior to
+ adding the new version.
<literallayout class='monospaced'>
$ devtool finish <replaceable>recipe layer</replaceable>
</literallayout>
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
+ This toolchain is created by running a SDK installer script
or through a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
that is based on your Metadata configuration or extension for
&DISTRO;, &DISTRO;+snapshot
</literallayout>
- For example, the following toolchain installer is for a 64-bit
+ For example, the following SDK installer is for a 64-bit
development host system and a i586-tuned target architecture
based off the SDK for <filename>core-image-sato</filename> and
using the current &DISTRO; snapshot:
</literallayout>
<note>
As an alternative to downloading an SDK, you can build the
- toolchain installer.
+ SDK installer.
For information on building the installer, see the
"<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
section.
However, when you run the SDK installer, you can choose an
installation directory.
<note>
- You must change the permissions on the toolchain
+ You must change the permissions on the SDK
installer script so that it is executable:
<literallayout class='monospaced'>
$ chmod +x poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
The following command shows how to run the installer given a
toolchain tarball for a 64-bit x86 development host system and
a 32-bit x86 target architecture.
- The example assumes the toolchain installer is located in
+ The example assumes the SDK installer is located in
<filename>~/Downloads/</filename>.
<note>
If you do not have write permissions for the directory
<chapter id='sdk-working-projects'>
- <title>Working with Different Types of Projects</title>
+ <title>Using the SDK Toolchain Directly</title>
<para>
- You can use extensible and standard SDKs when working with Makefile,
+ You can use the SDK toolchain directly with Makefile,
Autotools, and <trademark class='trade'>Eclipse</trademark> based
projects.
This chapter covers information specific to each of these types of
section for installation information.
<note>
As an alternative to downloading an SDK, you can
- build the toolchain installer.
+ build the SDK installer.
For information on building the installer, see the
"<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
section.