|  | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | 
|  | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" | 
|  | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > | 
|  |  | 
|  | <chapter id='sdk-using-the-standard-sdk'> | 
|  | <title>Using the Standard SDK</title> | 
|  |  | 
|  | <para> | 
|  | This chapter describes the standard SDK and how to install it. | 
|  | Information includes unique installation and setup aspects for the | 
|  | standard SDK. | 
|  | <note> | 
|  | For a side-by-side comparison of main features supported for a | 
|  | standard SDK as compared to an extensible SDK, see the | 
|  | "<link linkend='sdk-manual-intro'>Introduction</link>" | 
|  | section. | 
|  | </note> | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | You can use a standard SDK to work on Makefile, Autotools, and | 
|  | <trademark class='trade'>Eclipse</trademark>-based projects. | 
|  | See the | 
|  | "<link linkend='sdk-working-projects'>Using the SDK Toolchain Directly</link>" | 
|  | chapter for more information. | 
|  | </para> | 
|  |  | 
|  | <section id='sdk-standard-sdk-intro'> | 
|  | <title>Why use the Standard SDK and What is in It?</title> | 
|  |  | 
|  | <para> | 
|  | The Standard SDK provides a cross-development toolchain and | 
|  | libraries tailored to the contents of a specific image. | 
|  | You would use the Standard SDK if you want a more traditional | 
|  | toolchain experience as compared to the extensible SDK, which | 
|  | provides an internal build system and the | 
|  | <filename>devtool</filename> functionality. | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | The installed Standard SDK consists of several files and | 
|  | directories. | 
|  | Basically, it contains an SDK environment setup script, some | 
|  | configuration files, and host and target root filesystems to | 
|  | support usage. | 
|  | You can see the directory structure in the | 
|  | "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>" | 
|  | section. | 
|  | </para> | 
|  | </section> | 
|  |  | 
|  | <section id='sdk-installing-the-sdk'> | 
|  | <title>Installing the SDK</title> | 
|  |  | 
|  | <para> | 
|  | The first thing you need to do is install the SDK on your | 
|  | <ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>Build Host</ulink> | 
|  | by running the <filename>*.sh</filename> installation script. | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | You can download a tarball installer, which includes the | 
|  | pre-built toolchain, the <filename>runqemu</filename> | 
|  | script, and support files from the appropriate | 
|  | <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'>toolchain</ulink> | 
|  | directory within the Index of Releases. | 
|  | Toolchains are available for several 32-bit and 64-bit | 
|  | architectures with the <filename>x86_64</filename> directories, | 
|  | respectively. | 
|  | The toolchains the Yocto Project provides are based off the | 
|  | <filename>core-image-sato</filename> and | 
|  | <filename>core-image-minimal</filename> images and contain | 
|  | libraries appropriate for developing against that image. | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | The names of the tarball installer scripts are such that a | 
|  | string representing the host system appears first in the | 
|  | filename and then is immediately followed by a string | 
|  | representing the target architecture. | 
|  | <literallayout class='monospaced'> | 
|  | poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-<replaceable>release_version</replaceable>.sh | 
|  |  | 
|  | Where: | 
|  | <replaceable>host_system</replaceable> is a string representing your development system: | 
|  |  | 
|  | i686 or x86_64. | 
|  |  | 
|  | <replaceable>image_type</replaceable> is the image for which the SDK was built: | 
|  |  | 
|  | core-image-minimal or core-image-sato. | 
|  |  | 
|  | <replaceable>arch</replaceable> is a string representing the tuned target architecture: | 
|  |  | 
|  | aarch64, armv5e, core2-64, i586, mips32r2, mips64, ppc7400, or cortexa8hf-neon. | 
|  |  | 
|  | <replaceable>release_version</replaceable> is a string representing the release number of the Yocto Project: | 
|  |  | 
|  | &DISTRO;, &DISTRO;+snapshot | 
|  | </literallayout> | 
|  | 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 class='monospaced'> | 
|  | poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh | 
|  | </literallayout> | 
|  | <note> | 
|  | As an alternative to downloading an SDK, you can 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. | 
|  | Another helpful resource for building an installer is the | 
|  | <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink> | 
|  | wiki page. | 
|  | This wiki page focuses on development when using the Eclipse | 
|  | IDE. | 
|  | </note> | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | The SDK and toolchains are self-contained and by default are | 
|  | installed into the <filename>poky_sdk</filename> folder in your | 
|  | home directory. | 
|  | You can choose to install the extensible SDK in any location when | 
|  | you run the installer. | 
|  | However, because files need to be written under that directory | 
|  | during the normal course of operation, the location you choose | 
|  | for installation must be writable for whichever | 
|  | users need to use the SDK. | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | 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 SDK installer is located in | 
|  | <filename>~/Downloads/</filename> and has execution rights. | 
|  | <note> | 
|  | If you do not have write permissions for the directory | 
|  | into which you are installing the SDK, the installer | 
|  | notifies you and exits. | 
|  | For that case, set up the proper permissions in the directory | 
|  | and run the installer again. | 
|  | </note> | 
|  | <literallayout class='monospaced'> | 
|  | $ ./Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh | 
|  | Poky (Yocto Project Reference Distro) SDK installer version &DISTRO; | 
|  | =============================================================== | 
|  | Enter target directory for SDK (default: /opt/poky/&DISTRO;): | 
|  | You are about to install the SDK to "/opt/poky/&DISTRO;". Proceed[Y/n]? Y | 
|  | Extracting SDK........................................ ..............................done | 
|  | Setting it up...done | 
|  | SDK has been successfully set up and is ready to be used. | 
|  | Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. | 
|  | $ . /opt/poky/&DISTRO;/environment-setup-i586-poky-linux | 
|  | </literallayout> | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | Again, reference the | 
|  | "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>" | 
|  | section for more details on the resulting directory structure of | 
|  | the installed SDK. | 
|  | </para> | 
|  | </section> | 
|  |  | 
|  | <section id='sdk-running-the-sdk-environment-setup-script'> | 
|  | <title>Running the SDK Environment Setup Script</title> | 
|  |  | 
|  | <para> | 
|  | Once you have the SDK installed, you must run the SDK environment | 
|  | setup script before you can actually use the SDK. | 
|  | This setup script resides in the directory you chose when you | 
|  | installed the SDK, which is either the default | 
|  | <filename>/opt/poky/&DISTRO;</filename> directory or the directory | 
|  | you chose during installation. | 
|  | </para> | 
|  |  | 
|  | <para> | 
|  | Before running the script, be sure it is the one that matches the | 
|  | architecture for which you are developing. | 
|  | Environment setup scripts begin with the string | 
|  | "<filename>environment-setup</filename>" and include as part of | 
|  | their name the tuned target architecture. | 
|  | As an example, the following commands set the working directory | 
|  | to where the SDK was installed and then source the environment | 
|  | setup script. | 
|  | In this example, the setup script is for an IA-based | 
|  | target machine using i586 tuning: | 
|  | <literallayout class='monospaced'> | 
|  | $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux | 
|  | </literallayout> | 
|  | When you run the setup script, the same environment variables are | 
|  | defined as are when you run the setup script for an extensible SDK. | 
|  | See the | 
|  | "<link linkend='sdk-running-the-extensible-sdk-environment-setup-script'>Running the Extensible SDK Environment Setup Script</link>" | 
|  | section for more information. | 
|  | </para> | 
|  | </section> | 
|  | </chapter> | 
|  | <!-- | 
|  | vim: expandtab tw=80 ts=4 | 
|  | --> |