summaryrefslogtreecommitdiffstats
path: root/documentation/adt-manual
diff options
context:
space:
mode:
authorNicolas Dechesne <nicolas.dechesne@linaro.org>2020-10-05 16:30:32 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-10-06 13:56:17 +0100
commit43d07a285181e64c30d98d10ff93ef50391efe59 (patch)
tree78918fc94d55d44d35e1e3e61c7a6fccc28bca24 /documentation/adt-manual
parent1fd9c4b2c0ae927df29f7a0d34c3e595bcf48e89 (diff)
downloadpoky-43d07a285181e64c30d98d10ff93ef50391efe59.tar.gz
sphinx: remove DocBook files
The Yocto Project documentation was migrated to Sphinx. Let's remove the deprecated DocBook files. (From yocto-docs rev: 28fb0e63b2fbfd6426b00498bf2682bb53fdd862) Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/adt-manual')
-rw-r--r--documentation/adt-manual/adt-command.xml266
-rw-r--r--documentation/adt-manual/adt-intro.xml181
-rw-r--r--documentation/adt-manual/adt-manual-customization.xsl28
-rw-r--r--documentation/adt-manual/adt-manual-eclipse-customization.xsl37
-rw-r--r--documentation/adt-manual/adt-manual-intro.xml34
-rw-r--r--documentation/adt-manual/adt-manual.xml141
-rw-r--r--documentation/adt-manual/adt-package.xml103
-rw-r--r--documentation/adt-manual/adt-prepare.xml1000
-rw-r--r--documentation/adt-manual/adt-style.css986
9 files changed, 0 insertions, 2776 deletions
diff --git a/documentation/adt-manual/adt-command.xml b/documentation/adt-manual/adt-command.xml
deleted file mode 100644
index b88c0ac682..0000000000
--- a/documentation/adt-manual/adt-command.xml
+++ /dev/null
@@ -1,266 +0,0 @@
1<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
5
6<chapter id='using-the-command-line'>
7<title>Using the Command Line</title>
8
9 <para>
10 Recall that earlier the manual discussed how to use an existing toolchain
11 tarball that had been installed into the default installation
12 directory, <filename>/opt/poky/&DISTRO;</filename>, which is outside of the
13 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
14 (see the section "<link linkend='using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball)</link>".
15 And, that sourcing your architecture-specific environment setup script
16 initializes a suitable cross-toolchain development environment.
17 </para>
18
19 <para>
20 During this setup, locations for the compiler, QEMU scripts, QEMU binary,
21 a special version of <filename>pkgconfig</filename> and other useful
22 utilities are added to the <filename>PATH</filename> variable.
23 Also, variables to assist
24 <filename>pkgconfig</filename> and <filename>autotools</filename>
25 are also defined so that, for example, <filename>configure.sh</filename>
26 can find pre-generated test results for tests that need target hardware
27 on which to run.
28 You can see the
29 "<link linkend='setting-up-the-cross-development-environment'>Setting Up the Cross-Development Environment</link>"
30 section for the list of cross-toolchain environment variables
31 established by the script.
32 </para>
33
34 <para>
35 Collectively, these conditions allow you to easily use the toolchain
36 outside of the OpenEmbedded build environment on both Autotools-based
37 projects and Makefile-based projects.
38 This chapter provides information for both these types of projects.
39 </para>
40
41
42<section id='autotools-based-projects'>
43<title>Autotools-Based Projects</title>
44
45 <para>
46 Once you have a suitable cross-toolchain installed, it is very easy to
47 develop a project outside of the OpenEmbedded build system.
48 This section presents a simple "Helloworld" example that shows how
49 to set up, compile, and run the project.
50 </para>
51
52 <section id='creating-and-running-a-project-based-on-gnu-autotools'>
53 <title>Creating and Running a Project Based on GNU Autotools</title>
54
55 <para>
56 Follow these steps to create a simple Autotools-based project:
57 <orderedlist>
58 <listitem><para><emphasis>Create your directory:</emphasis>
59 Create a clean directory for your project and then make
60 that directory your working location:
61 <literallayout class='monospaced'>
62 $ mkdir $HOME/helloworld
63 $ cd $HOME/helloworld
64 </literallayout></para></listitem>
65 <listitem><para><emphasis>Populate the directory:</emphasis>
66 Create <filename>hello.c</filename>, <filename>Makefile.am</filename>,
67 and <filename>configure.in</filename> files as follows:
68 <itemizedlist>
69 <listitem><para>For <filename>hello.c</filename>, include
70 these lines:
71 <literallayout class='monospaced'>
72 #include &lt;stdio.h&gt;
73
74 main()
75 {
76 printf("Hello World!\n");
77 }
78 </literallayout></para></listitem>
79 <listitem><para>For <filename>Makefile.am</filename>,
80 include these lines:
81 <literallayout class='monospaced'>
82 bin_PROGRAMS = hello
83 hello_SOURCES = hello.c
84 </literallayout></para></listitem>
85 <listitem><para>For <filename>configure.in</filename>,
86 include these lines:
87 <literallayout class='monospaced'>
88 AC_INIT(hello.c)
89 AM_INIT_AUTOMAKE(hello,0.1)
90 AC_PROG_CC
91 AC_PROG_INSTALL
92 AC_OUTPUT(Makefile)
93 </literallayout></para></listitem>
94 </itemizedlist></para></listitem>
95 <listitem><para><emphasis>Source the cross-toolchain
96 environment setup file:</emphasis>
97 Installation of the cross-toolchain creates a cross-toolchain
98 environment setup script in the directory that the ADT
99 was installed.
100 Before you can use the tools to develop your project, you must
101 source this setup script.
102 The script begins with the string "environment-setup" and contains
103 the machine architecture, which is followed by the string
104 "poky-linux".
105 Here is an example that sources a script from the
106 default ADT installation directory that uses the
107 32-bit Intel x86 Architecture and the
108 &DISTRO_NAME; Yocto Project release:
109 <literallayout class='monospaced'>
110 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
111 </literallayout></para></listitem>
112 <listitem><para><emphasis>Generate the local aclocal.m4
113 files and create the configure script:</emphasis>
114 The following GNU Autotools generate the local
115 <filename>aclocal.m4</filename> files and create the
116 configure script:
117 <literallayout class='monospaced'>
118 $ aclocal
119 $ autoconf
120 </literallayout></para></listitem>
121 <listitem><para><emphasis>Generate files needed by GNU
122 coding standards:</emphasis>
123 GNU coding standards require certain files in order for the
124 project to be compliant.
125 This command creates those files:
126 <literallayout class='monospaced'>
127 $ touch NEWS README AUTHORS ChangeLog
128 </literallayout></para></listitem>
129 <listitem><para><emphasis>Generate the configure
130 file:</emphasis>
131 This command generates the <filename>configure</filename>:
132 <literallayout class='monospaced'>
133 $ automake -a
134 </literallayout></para></listitem>
135 <listitem><para><emphasis>Cross-compile the project:</emphasis>
136 This command compiles the project using the cross-compiler.
137 The
138 <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink>
139 environment variable provides the minimal arguments for
140 GNU configure:
141 <literallayout class='monospaced'>
142 $ ./configure ${CONFIGURE_FLAGS}
143 </literallayout></para></listitem>
144 <listitem><para><emphasis>Make and install the project:</emphasis>
145 These two commands generate and install the project into the
146 destination directory:
147 <literallayout class='monospaced'>
148 $ make
149 $ make install DESTDIR=./tmp
150 </literallayout></para></listitem>
151 <listitem><para><emphasis>Verify the installation:</emphasis>
152 This command is a simple way to verify the installation
153 of your project.
154 Running the command prints the architecture on which
155 the binary file can run.
156 This architecture should be the same architecture that
157 the installed cross-toolchain supports.
158 <literallayout class='monospaced'>
159 $ file ./tmp/usr/local/bin/hello
160 </literallayout></para></listitem>
161 <listitem><para><emphasis>Execute your project:</emphasis>
162 To execute the project in the shell, simply enter the name.
163 You could also copy the binary to the actual target hardware
164 and run the project there as well:
165 <literallayout class='monospaced'>
166 $ ./hello
167 </literallayout>
168 As expected, the project displays the "Hello World!" message.
169 </para></listitem>
170 </orderedlist>
171 </para>
172 </section>
173
174 <section id='passing-host-options'>
175 <title>Passing Host Options</title>
176
177 <para>
178 For an Autotools-based project, you can use the cross-toolchain by just
179 passing the appropriate host option to <filename>configure.sh</filename>.
180 The host option you use is derived from the name of the environment setup
181 script found in the directory in which you installed the cross-toolchain.
182 For example, the host option for an ARM-based target that uses the GNU EABI
183 is <filename>armv5te-poky-linux-gnueabi</filename>.
184 You will notice that the name of the script is
185 <filename>environment-setup-armv5te-poky-linux-gnueabi</filename>.
186 Thus, the following command works to update your project and
187 rebuild it using the appropriate cross-toolchain tools:
188 <literallayout class='monospaced'>
189 $ ./configure --host=armv5te-poky-linux-gnueabi \
190 --with-libtool-sysroot=<replaceable>sysroot_dir</replaceable>
191 </literallayout>
192 <note>
193 If the <filename>configure</filename> script results in problems recognizing the
194 <filename>--with-libtool-sysroot=</filename><replaceable>sysroot-dir</replaceable> option,
195 regenerate the script to enable the support by doing the following and then
196 run the script again:
197 <literallayout class='monospaced'>
198 $ libtoolize --automake
199 $ aclocal -I ${OECORE_NATIVE_SYSROOT}/usr/share/aclocal \
200 [-I <replaceable>dir_containing_your_project-specific_m4_macros</replaceable>]
201 $ autoconf
202 $ autoheader
203 $ automake -a
204 </literallayout>
205 </note>
206 </para>
207 </section>
208</section>
209
210<section id='makefile-based-projects'>
211<title>Makefile-Based Projects</title>
212
213 <para>
214 For Makefile-based projects, the cross-toolchain environment variables
215 established by running the cross-toolchain environment setup script
216 are subject to general <filename>make</filename> rules.
217 </para>
218
219 <para>
220 To illustrate this, consider the following four cross-toolchain
221 environment variables:
222 <literallayout class='monospaced'>
223 <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'>CC</ulink>=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
224 <ulink url='&YOCTO_DOCS_REF_URL;#var-LD'>LD</ulink>=i586-poky-linux-ld --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
225 <ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'>CFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
226 <ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'>CXXFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
227 </literallayout>
228 Now, consider the following three cases:
229 <itemizedlist>
230 <listitem><para><emphasis>Case 1 - No Variables Set in the <filename>Makefile</filename>:</emphasis>
231 Because these variables are not specifically set in the
232 <filename>Makefile</filename>, the variables retain their
233 values based on the environment.
234 </para></listitem>
235 <listitem><para><emphasis>Case 2 - Variables Set in the <filename>Makefile</filename>:</emphasis>
236 Specifically setting variables in the
237 <filename>Makefile</filename> during the build results in the
238 environment settings of the variables being overwritten.
239 </para></listitem>
240 <listitem><para><emphasis>Case 3 - Variables Set when the <filename>Makefile</filename> is Executed from the Command Line:</emphasis>
241 Executing the <filename>Makefile</filename> from the command
242 line results in the variables being overwritten with
243 command-line content regardless of what is being set in the
244 <filename>Makefile</filename>.
245 In this case, environment variables are not considered unless
246 you use the "-e" flag during the build:
247 <literallayout class='monospaced'>
248 $ make -e <replaceable>file</replaceable>
249 </literallayout>
250 If you use this flag, then the environment values of the
251 variables override any variables specifically set in the
252 <filename>Makefile</filename>.
253 </para></listitem>
254 </itemizedlist>
255 <note>
256 For the list of variables set up by the cross-toolchain environment
257 setup script, see the
258 "<link linkend='setting-up-the-cross-development-environment'>Setting Up the Cross-Development Environment</link>"
259 section.
260 </note>
261 </para>
262</section>
263</chapter>
264<!--
265vim: expandtab tw=80 ts=4
266-->
diff --git a/documentation/adt-manual/adt-intro.xml b/documentation/adt-manual/adt-intro.xml
deleted file mode 100644
index eb75763db3..0000000000
--- a/documentation/adt-manual/adt-intro.xml
+++ /dev/null
@@ -1,181 +0,0 @@
1<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
5
6<chapter id='adt-intro'>
7 <title>The Application Development Toolkit (ADT)</title>
8
9 <para>
10 Part of the Yocto Project development solution is an Application Development
11 Toolkit (ADT).
12 The ADT provides you with a custom-built, cross-development
13 platform suited for developing a user-targeted product application.
14 </para>
15
16 <para>
17 Fundamentally, the ADT consists of the following:
18 <itemizedlist>
19 <listitem><para>An architecture-specific cross-toolchain and matching
20 sysroot both built by the
21 <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
22 The toolchain and sysroot are based on a
23 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
24 configuration and extensions,
25 which allows you to cross-develop on the host machine for the target hardware.
26 </para></listitem>
27 <listitem><para>The Eclipse IDE Yocto Plug-in.</para></listitem>
28 <listitem><para>The Quick EMUlator (QEMU), which lets you simulate target hardware.
29 </para></listitem>
30 <listitem><para>Various user-space tools that greatly enhance your application
31 development experience.</para></listitem>
32 </itemizedlist>
33 </para>
34
35 <section id='the-cross-development-toolchain'>
36 <title>The Cross-Development Toolchain</title>
37
38 <para>
39 The
40 <ulink url='&YOCTO_DOCS_DEV_URL;#cross-development-toolchain'>Cross-Development Toolchain</ulink>
41 consists of a cross-compiler, cross-linker, and cross-debugger
42 that are used to develop user-space applications for targeted
43 hardware.
44 This toolchain is created either by running the ADT Installer
45 script, a toolchain installer script, or through a
46 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
47 that is based on your Metadata configuration or extension for
48 your targeted device.
49 The cross-toolchain works with a matching target sysroot.
50 </para>
51 </section>
52
53 <section id='sysroot'>
54 <title>Sysroot</title>
55
56 <para>
57 The matching target sysroot contains needed headers and libraries for generating
58 binaries that run on the target architecture.
59 The sysroot is based on the target root filesystem image that is built by
60 the OpenEmbedded build system and uses the same Metadata configuration
61 used to build the cross-toolchain.
62 </para>
63 </section>
64
65 <section id='eclipse-overview'>
66 <title>Eclipse Yocto Plug-in</title>
67
68 <para>
69 The Eclipse IDE is a popular development environment and it fully supports
70 development using the Yocto Project.
71 When you install and configure the Eclipse Yocto Project Plug-in into
72 the Eclipse IDE, you maximize your Yocto Project experience.
73 Installing and configuring the Plug-in results in an environment that
74 has extensions specifically designed to let you more easily develop software.
75 These extensions allow for cross-compilation, deployment, and execution of
76 your output into a QEMU emulation session.
77 You can also perform cross-debugging and profiling.
78 The environment also supports a suite of tools that allows you to perform
79 remote profiling, tracing, collection of power data, collection of
80 latency data, and collection of performance data.
81 </para>
82
83 <para>
84 For information about the application development workflow that uses the Eclipse
85 IDE and for a detailed example of how to install and configure the Eclipse
86 Yocto Project Plug-in, see the
87 "<ulink url='&YOCTO_DOCS_DEV_URL;#adt-eclipse'>Working Within Eclipse</ulink>" section
88 of the Yocto Project Development Manual.
89 </para>
90 </section>
91
92 <section id='the-qemu-emulator'>
93 <title>The QEMU Emulator</title>
94
95 <para>
96 The QEMU emulator allows you to simulate your hardware while running your
97 application or image.
98 QEMU is made available a number of ways:
99 <itemizedlist>
100 <listitem><para>
101 If you use the ADT Installer script to install ADT, you can
102 specify whether or not to install QEMU.
103 </para></listitem>
104 <listitem><para>
105 If you have cloned the <filename>poky</filename> Git
106 repository to create a
107 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
108 and you have sourced the environment setup script, QEMU is
109 installed and automatically available.
110 </para></listitem>
111 <listitem><para>
112 If you have downloaded a Yocto Project release and unpacked
113 it to create a
114 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
115 and you have sourced the environment setup script, QEMU is
116 installed and automatically available.
117 </para></listitem>
118 <listitem><para>
119 If you have installed the cross-toolchain tarball and you
120 have sourced the toolchain's setup environment script, QEMU
121 is also installed and automatically available.
122 </para></listitem>
123 </itemizedlist>
124 </para>
125 </section>
126
127 <section id='user-space-tools'>
128 <title>User-Space Tools</title>
129
130 <para>
131 User-space tools are included as part of the Yocto Project.
132 You will find these tools helpful during development.
133 The tools include LatencyTOP, PowerTOP, OProfile, Perf, SystemTap, and Lttng-ust.
134 These tools are common development tools for the Linux platform.
135 <itemizedlist>
136 <listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP focuses on latency
137 that causes skips in audio,
138 stutters in your desktop experience, or situations that overload your server
139 even when you have plenty of CPU power left.
140 </para></listitem>
141 <listitem><para><emphasis>PowerTOP:</emphasis> Helps you determine what
142 software is using the most power.
143 You can find out more about PowerTOP at
144 <ulink url='https://01.org/powertop/'></ulink>.</para></listitem>
145 <listitem><para><emphasis>OProfile:</emphasis> A system-wide profiler for Linux
146 systems that is capable of profiling all running code at low overhead.
147 You can find out more about OProfile at
148 <ulink url='http://oprofile.sourceforge.net/about/'></ulink>.
149 For examples on how to setup and use this tool, see the
150 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
151 section in the Yocto Project Profiling and Tracing Manual.
152 </para></listitem>
153 <listitem><para><emphasis>Perf:</emphasis> Performance counters for Linux used
154 to keep track of certain types of hardware and software events.
155 For more information on these types of counters see
156 <ulink url='https://perf.wiki.kernel.org/'></ulink>.
157 For examples on how to setup and use this tool, see the
158 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
159 section in the Yocto Project Profiling and Tracing Manual.
160 </para></listitem>
161 <listitem><para><emphasis>SystemTap:</emphasis> A free software infrastructure
162 that simplifies information gathering about a running Linux system.
163 This information helps you diagnose performance or functional problems.
164 SystemTap is not available as a user-space tool through the Eclipse IDE Yocto Plug-in.
165 See <ulink url='http://sourceware.org/systemtap'></ulink> for more information
166 on SystemTap.
167 For examples on how to setup and use this tool, see the
168 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap'>SystemTap</ulink>"
169 section in the Yocto Project Profiling and Tracing Manual.</para></listitem>
170 <listitem><para><emphasis>Lttng-ust:</emphasis> A User-space Tracer designed to
171 provide detailed information on user-space activity.
172 See <ulink url='http://lttng.org/ust'></ulink> for more information on Lttng-ust.
173 </para></listitem>
174 </itemizedlist>
175 </para>
176 </section>
177
178</chapter>
179<!--
180vim: expandtab tw=80 ts=4
181-->
diff --git a/documentation/adt-manual/adt-manual-customization.xsl b/documentation/adt-manual/adt-manual-customization.xsl
deleted file mode 100644
index 551f7e9e94..0000000000
--- a/documentation/adt-manual/adt-manual-customization.xsl
+++ /dev/null
@@ -1,28 +0,0 @@
1<?xml version='1.0'?>
2<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
3<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
4
5 <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
6
7<!--
8
9 <xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
10
11 <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
12
13-->
14
15 <xsl:include href="../template/permalinks.xsl"/>
16 <xsl:include href="../template/section.title.xsl"/>
17 <xsl:include href="../template/component.title.xsl"/>
18 <xsl:include href="../template/division.title.xsl"/>
19 <xsl:include href="../template/formal.object.heading.xsl"/>
20
21 <xsl:param name="html.stylesheet" select="'adt-style.css'" />
22 <xsl:param name="chapter.autolabel" select="1" />
23 <xsl:param name="appendix.autolabel" select="A" />
24 <xsl:param name="section.autolabel" select="1" />
25 <xsl:param name="section.label.includes.component.label" select="1" />
26 <xsl:param name="generate.id.attributes" select="1" />
27
28</xsl:stylesheet>
diff --git a/documentation/adt-manual/adt-manual-eclipse-customization.xsl b/documentation/adt-manual/adt-manual-eclipse-customization.xsl
deleted file mode 100644
index 3d536d5473..0000000000
--- a/documentation/adt-manual/adt-manual-eclipse-customization.xsl
+++ /dev/null
@@ -1,37 +0,0 @@
1<?xml version='1.0'?>
2<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
3
4<xsl:stylesheet
5 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6 xmlns="http://www.w3.org/1999/xhtml"
7 xmlns:fo="http://www.w3.org/1999/XSL/Format"
8 version="1.0">
9
10 <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
11
12<!--
13
14 <xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
15
16 <xsl:import
17 href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
18
19-->
20
21 <xsl:param name="chunker.output.indent" select="'yes'"/>
22 <xsl:param name="chunk.quietly" select="1"/>
23 <xsl:param name="chunk.first.sections" select="1"/>
24 <xsl:param name="chunk.section.depth" select="10"/>
25 <xsl:param name="use.id.as.filename" select="1"/>
26 <xsl:param name="ulink.target" select="'_self'" />
27 <xsl:param name="base.dir" select="'html/adt-manual/'"/>
28 <xsl:param name="html.stylesheet" select="'../book.css'"/>
29 <xsl:param name="eclipse.manifest" select="0"/>
30 <xsl:param name="create.plugin.xml" select="0"/>
31 <xsl:param name="suppress.navigation" select="1"/>
32 <xsl:param name="generate.index" select="0"/>
33 <xsl:param name="chapter.autolabel" select="1" />
34 <xsl:param name="appendix.autolabel" select="1" />
35 <xsl:param name="section.autolabel" select="1" />
36 <xsl:param name="section.label.includes.component.label" select="1" />
37</xsl:stylesheet>
diff --git a/documentation/adt-manual/adt-manual-intro.xml b/documentation/adt-manual/adt-manual-intro.xml
deleted file mode 100644
index b7a25a54bd..0000000000
--- a/documentation/adt-manual/adt-manual-intro.xml
+++ /dev/null
@@ -1,34 +0,0 @@
1<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
5
6<chapter id='adt-manual-intro'>
7<title>Introduction</title>
8
9 <para>
10 Welcome to the Yocto Project Application Developer's Guide.
11 This manual provides information that lets you begin developing applications
12 using the Yocto Project.
13 </para>
14
15 <para>
16 The Yocto Project provides an application development environment based on
17 an Application Development Toolkit (ADT) and the availability of stand-alone
18 cross-development toolchains and other tools.
19 This manual describes the ADT and how you can configure and install it,
20 how to access and use the cross-development toolchains, how to
21 customize the development packages installation,
22 how to use command-line development for both Autotools-based and
23 Makefile-based projects, and an introduction to the
24 <trademark class='trade'>Eclipse</trademark> IDE Yocto Plug-in.
25 <note>
26 The ADT is distribution-neutral and does not require the Yocto
27 Project reference distribution, which is called Poky.
28 This manual, however, uses examples that use the Poky distribution.
29 </note>
30 </para>
31</chapter>
32<!--
33vim: expandtab tw=80 ts=4
34-->
diff --git a/documentation/adt-manual/adt-manual.xml b/documentation/adt-manual/adt-manual.xml
deleted file mode 100644
index 13202cc0de..0000000000
--- a/documentation/adt-manual/adt-manual.xml
+++ /dev/null
@@ -1,141 +0,0 @@
1<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
5
6<book id='adt-manual' lang='en'
7 xmlns:xi="http://www.w3.org/2003/XInclude"
8 xmlns="http://docbook.org/ns/docbook"
9 >
10 <bookinfo>
11
12 <mediaobject>
13 <imageobject>
14 <imagedata fileref='figures/adt-title.png'
15 format='SVG'
16 align='left' scalefit='1' width='100%'/>
17 </imageobject>
18 </mediaobject>
19
20 <title>
21 Yocto Project Application Developer's Guide
22 </title>
23
24 <authorgroup>
25 <author>
26 <firstname>Jessica</firstname> <surname>Zhang</surname>
27 <affiliation>
28 <orgname>Intel Corporation</orgname>
29 </affiliation>
30 <email>jessica.zhang@intel.com</email>
31 </author>
32 </authorgroup>
33
34 <revhistory>
35 <revision>
36 <revnumber>1.0</revnumber>
37 <date>6 April 2011</date>
38 <revremark>Released with the Yocto Project 1.0 Release.</revremark>
39 </revision>
40 <revision>
41 <revnumber>1.0.1</revnumber>
42 <date>23 May 2011</date>
43 <revremark>Released with the Yocto Project 1.0.1 Release.</revremark>
44 </revision>
45 <revision>
46 <revnumber>1.1</revnumber>
47 <date>6 October 2011</date>
48 <revremark>Released with the Yocto Project 1.1 Release.</revremark>
49 </revision>
50 <revision>
51 <revnumber>1.2</revnumber>
52 <date>April 2012</date>
53 <revremark>Released with the Yocto Project 1.2 Release.</revremark>
54 </revision>
55 <revision>
56 <revnumber>1.3</revnumber>
57 <date>October 2012</date>
58 <revremark>Released with the Yocto Project 1.3 Release.</revremark>
59 </revision>
60 <revision>
61 <revnumber>1.4</revnumber>
62 <date>April 2013</date>
63 <revremark>Released with the Yocto Project 1.4 Release.</revremark>
64 </revision>
65 <revision>
66 <revnumber>1.5</revnumber>
67 <date>October 2013</date>
68 <revremark>Released with the Yocto Project 1.5 Release.</revremark>
69 </revision>
70 <revision>
71 <revnumber>1.5.1</revnumber>
72 <date>January 2014</date>
73 <revremark>Released with the Yocto Project 1.5.1 Release.</revremark>
74 </revision>
75 <revision>
76 <revnumber>1.6</revnumber>
77 <date>April 2014</date>
78 <revremark>Released with the Yocto Project 1.6 Release.</revremark>
79 </revision>
80 <revision>
81 <revnumber>1.7</revnumber>
82 <date>October 2014</date>
83 <revremark>Released with the Yocto Project 1.7 Release.</revremark>
84 </revision>
85 <revision>
86 <revnumber>1.8</revnumber>
87 <date>April 2015</date>
88 <revremark>Released with the Yocto Project 1.8 Release.</revremark>
89 </revision>
90 <revision>
91 <revnumber>2.0</revnumber>
92 <date>October 2015</date>
93 <revremark>Released with the Yocto Project 2.0 Release.</revremark>
94 </revision>
95 <revision>
96 <revnumber>2.1</revnumber>
97 <date>Sometime in 2016</date>
98 <revremark>Released with the future Yocto Project 2.1 Release.</revremark>
99 </revision>
100 </revhistory>
101
102 <copyright>
103 <year>&COPYRIGHT_YEAR;</year>
104 <holder>Linux Foundation</holder>
105 </copyright>
106
107 <legalnotice>
108 <para>
109 Permission is granted to copy, distribute and/or modify this document under
110 the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
111 </para>
112 <note>
113 For the latest version of this manual associated with this
114 Yocto Project release, see the
115 <ulink url='&YOCTO_DOCS_ADT_URL;'>Yocto Project Application Developer's Guide</ulink>
116 from the Yocto Project website.
117 </note>
118
119 </legalnotice>
120
121 </bookinfo>
122
123 <xi:include href="adt-manual-intro.xml"/>
124
125 <xi:include href="adt-intro.xml"/>
126
127 <xi:include href="adt-prepare.xml"/>
128
129 <xi:include href="adt-package.xml"/>
130
131 <xi:include href="adt-command.xml"/>
132
133<!-- <index id='index'>
134 <title>Index</title>
135 </index>
136-->
137
138</book>
139<!--
140vim: expandtab tw=80 ts=4
141-->
diff --git a/documentation/adt-manual/adt-package.xml b/documentation/adt-manual/adt-package.xml
deleted file mode 100644
index eaed0447b6..0000000000
--- a/documentation/adt-manual/adt-package.xml
+++ /dev/null
@@ -1,103 +0,0 @@
1<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
5
6<chapter id='adt-package'>
7<title>Optionally Customizing the Development Packages Installation</title>
8
9 <para>
10 Because the Yocto Project is suited for embedded Linux development, it is
11 likely that you will need to customize your development packages installation.
12 For example, if you are developing a minimal image, then you might not need
13 certain packages (e.g. graphics support packages).
14 Thus, you would like to be able to remove those packages from your target sysroot.
15 </para>
16
17<section id='package-management-systems'>
18 <title>Package Management Systems</title>
19
20 <para>
21 The OpenEmbedded build system supports the generation of sysroot files using
22 three different Package Management Systems (PMS):
23 <itemizedlist>
24 <listitem><para><emphasis>OPKG:</emphasis> A less well known PMS whose use
25 originated in the OpenEmbedded and OpenWrt embedded Linux projects.
26 This PMS works with files packaged in an <filename>.ipk</filename> format.
27 See <ulink url='http://en.wikipedia.org/wiki/Opkg'></ulink> for more
28 information about OPKG.</para></listitem>
29 <listitem><para><emphasis>RPM:</emphasis> A more widely known PMS intended for GNU/Linux
30 distributions.
31 This PMS works with files packaged in an <filename>.rpm</filename> format.
32 The build system currently installs through this PMS by default.
33 See <ulink url='http://en.wikipedia.org/wiki/RPM_Package_Manager'></ulink>
34 for more information about RPM.</para></listitem>
35 <listitem><para><emphasis>Debian:</emphasis> The PMS for Debian-based systems
36 is built on many PMS tools.
37 The lower-level PMS tool <filename>dpkg</filename> forms the base of the Debian PMS.
38 For information on dpkg see
39 <ulink url='http://en.wikipedia.org/wiki/Dpkg'></ulink>.</para></listitem>
40 </itemizedlist>
41 </para>
42</section>
43
44<section id='configuring-the-pms'>
45 <title>Configuring the PMS</title>
46
47 <para>
48 Whichever PMS you are using, you need to be sure that the
49 <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink>
50 variable in the <filename>conf/local.conf</filename>
51 file is set to reflect that system.
52 The first value you choose for the variable specifies the package file format for the root
53 filesystem at sysroot.
54 Additional values specify additional formats for convenience or testing.
55 See the <filename>conf/local.conf</filename> configuration file for
56 details.
57 </para>
58
59 <note>
60 For build performance information related to the PMS, see the
61 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'><filename>package.bbclass</filename></ulink>"
62 section in the Yocto Project Reference Manual.
63 </note>
64
65 <para>
66 As an example, consider a scenario where you are using OPKG and you want to add
67 the <filename>libglade</filename> package to the target sysroot.
68 </para>
69
70 <para>
71 First, you should generate the IPK file for the
72 <filename>libglade</filename> package and add it
73 into a working <filename>opkg</filename> repository.
74 Use these commands:
75 <literallayout class='monospaced'>
76 $ bitbake libglade
77 $ bitbake package-index
78 </literallayout>
79 </para>
80
81 <para>
82 Next, source the cross-toolchain environment setup script found in the
83 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
84 Follow that by setting up the installation destination to point to your
85 sysroot as <replaceable>sysroot_dir</replaceable>.
86 Finally, have an OPKG configuration file <replaceable>conf_file</replaceable>
87 that corresponds to the <filename>opkg</filename> repository you have just created.
88 The following command forms should now work:
89 <literallayout class='monospaced'>
90 $ opkg-cl –f <replaceable>conf_file</replaceable> -o <replaceable>sysroot_dir</replaceable> update
91 $ opkg-cl –f <replaceable>cconf_file</replaceable> -o <replaceable>sysroot_dir</replaceable> \
92 --force-overwrite install libglade
93 $ opkg-cl –f <replaceable>cconf_file</replaceable> -o <replaceable>sysroot_dir</replaceable> \
94 --force-overwrite install libglade-dbg
95 $ opkg-cl –f <replaceable>conf_file&gt; -o </replaceable>sysroot_dir&gt; \
96 --force-overwrite install libglade-dev
97 </literallayout>
98 </para>
99</section>
100</chapter>
101<!--
102vim: expandtab tw=80 ts=4
103-->
diff --git a/documentation/adt-manual/adt-prepare.xml b/documentation/adt-manual/adt-prepare.xml
deleted file mode 100644
index 2dc9843259..0000000000
--- a/documentation/adt-manual/adt-prepare.xml
+++ /dev/null
@@ -1,1000 +0,0 @@
1<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
5
6<chapter id='adt-prepare'>
7
8<title>Preparing for Application Development</title>
9
10<para>
11 In order to develop applications, you need set up your host development system.
12 Several ways exist that allow you to install cross-development tools, QEMU, the
13 Eclipse Yocto Plug-in, and other tools.
14 This chapter describes how to prepare for application development.
15</para>
16
17<section id='installing-the-adt'>
18 <title>Installing the ADT and Toolchains</title>
19
20 <para>
21 The following list describes installation methods that set up varying
22 degrees of tool availability on your system.
23 Regardless of the installation method you choose,
24 you must <filename>source</filename> the cross-toolchain
25 environment setup script, which establishes several key
26 environment variables, before you use a toolchain.
27 See the
28 "<link linkend='setting-up-the-cross-development-environment'>Setting Up the Cross-Development Environment</link>"
29 section for more information.
30 </para>
31
32 <note>
33 <para>
34 Avoid mixing installation methods when installing toolchains for
35 different architectures.
36 For example, avoid using the ADT Installer to install some
37 toolchains and then hand-installing cross-development toolchains
38 by running the toolchain installer for different architectures.
39 Mixing installation methods can result in situations where the
40 ADT Installer becomes unreliable and might not install the
41 toolchain.
42 </para>
43
44 <para>
45 If you must mix installation methods, you might avoid problems by
46 deleting <filename>/var/lib/opkg</filename>, thus purging the
47 <filename>opkg</filename> package metadata.
48 </para>
49 </note>
50
51 <para>
52 <itemizedlist>
53 <listitem><para><emphasis>Use the ADT installer script:</emphasis>
54 This method is the recommended way to install the ADT because it
55 automates much of the process for you.
56 For example, you can configure the installation to install the QEMU emulator
57 and the user-space NFS, specify which root filesystem profiles to download,
58 and define the target sysroot location.</para></listitem>
59 <listitem><para><emphasis>Use an existing toolchain:</emphasis>
60 Using this method, you select and download an architecture-specific
61 toolchain installer and then run the script to hand-install the toolchain.
62 If you use this method, you just get the cross-toolchain and QEMU - you do not
63 get any of the other mentioned benefits had you run the ADT Installer script.</para></listitem>
64 <listitem><para><emphasis>Use the toolchain from within the Build Directory:</emphasis>
65 If you already have a
66 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
67 you can build the cross-toolchain within the directory.
68 However, like the previous method mentioned, you only get the cross-toolchain and QEMU - you
69 do not get any of the other benefits without taking separate steps.</para></listitem>
70 </itemizedlist>
71 </para>
72
73 <section id='using-the-adt-installer'>
74 <title>Using the ADT Installer</title>
75
76 <para>
77 To run the ADT Installer, you need to get the ADT Installer tarball, be sure
78 you have the necessary host development packages that support the ADT Installer,
79 and then run the ADT Installer Script.
80 </para>
81
82 <para>
83 For a list of the host packages needed to support ADT installation and use, see the
84 "ADT Installer Extras" lists in the
85 "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>" section
86 of the Yocto Project Reference Manual.
87 </para>
88
89 <section id='getting-the-adt-installer-tarball'>
90 <title>Getting the ADT Installer Tarball</title>
91
92 <para>
93 The ADT Installer is contained in the ADT Installer tarball.
94 You can get the tarball using either of these methods:
95 <itemizedlist>
96 <listitem><para><emphasis>Download the Tarball:</emphasis>
97 You can download the tarball from
98 <ulink url='&YOCTO_ADTINSTALLER_DL_URL;'></ulink> into
99 any directory.</para></listitem>
100 <listitem><para><emphasis>Build the Tarball:</emphasis>
101 You can use
102 <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>
103 to generate the tarball inside an existing
104 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
105 </para>
106 <para>If you use BitBake to generate the ADT Installer
107 tarball, you must <filename>source</filename> the
108 environment setup script
109 (<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
110 or
111 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
112 located in the Source Directory before running the
113 <filename>bitbake</filename> command that creates the
114 tarball.</para>
115 <para>The following example commands establish
116 the
117 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
118 check out the current release branch, set up the
119 build environment while also creating the default
120 Build Directory, and run the
121 <filename>bitbake</filename> command that results in the
122 tarball
123 <filename>poky/build/tmp/deploy/sdk/adt_installer.tar.bz2</filename>:
124 <note>
125 Before using BitBake to build the ADT tarball, be
126 sure to make sure your
127 <filename>local.conf</filename> file is properly
128 configured.
129 See the
130 "<ulink url='&YOCTO_DOCS_REF_URL;#user-configuration'>User Configuration</ulink>"
131 section in the Yocto Project Reference Manual for
132 general configuration information.
133 </note>
134 <literallayout class='monospaced'>
135 $ cd ~
136 $ git clone git://git.yoctoproject.org/poky
137 $ cd poky
138 $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
139 $ source &OE_INIT_FILE;
140 $ bitbake adt-installer
141 </literallayout></para></listitem>
142 </itemizedlist>
143 </para>
144 </section>
145
146 <section id='configuring-and-running-the-adt-installer-script'>
147 <title>Configuring and Running the ADT Installer Script</title>
148
149 <para>
150 Before running the ADT Installer script, you need to unpack the tarball.
151 You can unpack the tarball in any directory you wish.
152 For example, this command copies the ADT Installer tarball from where
153 it was built into the home directory and then unpacks the tarball into
154 a top-level directory named <filename>adt-installer</filename>:
155 <literallayout class='monospaced'>
156 $ cd ~
157 $ cp poky/build/tmp/deploy/sdk/adt_installer.tar.bz2 $HOME
158 $ tar -xjf adt_installer.tar.bz2
159 </literallayout>
160 Unpacking it creates the directory <filename>adt-installer</filename>,
161 which contains the ADT Installer script (<filename>adt_installer</filename>)
162 and its configuration file (<filename>adt_installer.conf</filename>).
163 </para>
164
165 <para>
166 Before you run the script, however, you should examine the ADT Installer configuration
167 file and be sure you are going to get what you want.
168 Your configurations determine which kernel and filesystem image are downloaded.
169 </para>
170
171 <para>
172 The following list describes the configurations you can define for the ADT Installer.
173 For configuration values and restrictions, see the comments in
174 the <filename>adt-installer.conf</filename> file:
175
176 <itemizedlist>
177 <listitem><para><filename>YOCTOADT_REPO</filename>: This area
178 includes the IPKG-based packages and the root filesystem upon which
179 the installation is based.
180 If you want to set up your own IPKG repository pointed to by
181 <filename>YOCTOADT_REPO</filename>, you need to be sure that the
182 directory structure follows the same layout as the reference directory
183 set up at <ulink url='http://adtrepo.yoctoproject.org'></ulink>.
184 Also, your repository needs to be accessible through HTTP.</para></listitem>
185 <listitem><para><filename>YOCTOADT_TARGETS</filename>: The machine
186 target architectures for which you want to set up cross-development
187 environments.</para></listitem>
188 <listitem><para><filename>YOCTOADT_QEMU</filename>: Indicates whether
189 or not to install the emulator QEMU.</para></listitem>
190 <listitem><para><filename>YOCTOADT_NFS_UTIL</filename>: Indicates whether
191 or not to install user-mode NFS.
192 If you plan to use the Eclipse IDE Yocto plug-in against QEMU,
193 you should install NFS.
194 <note>To boot QEMU images using our userspace NFS server, you need
195 to be running <filename>portmap</filename> or <filename>rpcbind</filename>.
196 If you are running <filename>rpcbind</filename>, you will also need to add the
197 <filename>-i</filename> option when <filename>rpcbind</filename> starts up.
198 Please make sure you understand the security implications of doing this.
199 You might also have to modify your firewall settings to allow
200 NFS booting to work.</note></para></listitem>
201 <listitem><para><filename>YOCTOADT_ROOTFS_</filename><replaceable>arch</replaceable>: The root
202 filesystem images you want to download from the
203 <filename>YOCTOADT_IPKG_REPO</filename> repository.</para></listitem>
204 <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_IMAGE_</filename><replaceable>arch</replaceable>: The
205 particular root filesystem used to extract and create the target sysroot.
206 The value of this variable must have been specified with
207 <filename>YOCTOADT_ROOTFS_</filename><replaceable>arch</replaceable>.
208 For example, if you downloaded both <filename>minimal</filename> and
209 <filename>sato-sdk</filename> images by setting
210 <filename>YOCTOADT_ROOTFS_</filename><replaceable>arch</replaceable>
211 to "minimal sato-sdk", then <filename>YOCTOADT_ROOTFS_</filename><replaceable>arch</replaceable>
212 must be set to either "minimal" or "sato-sdk".
213 </para></listitem>
214 <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_LOC_</filename><replaceable>arch</replaceable>: The
215 location on the development host where the target sysroot is created.
216 </para></listitem>
217 </itemizedlist>
218 </para>
219
220 <para>
221 After you have configured the <filename>adt_installer.conf</filename> file,
222 run the installer using the following command:
223 <literallayout class='monospaced'>
224 $ cd adt-installer
225 $ ./adt_installer
226 </literallayout>
227 Once the installer begins to run, you are asked to enter the
228 location for cross-toolchain installation.
229 The default location is
230 <filename>/opt/poky/</filename><replaceable>release</replaceable>.
231 After either accepting the default location or selecting your
232 own location, you are prompted to run the installation script
233 interactively or in silent mode.
234 If you want to closely monitor the installation,
235 choose "I" for interactive mode rather than "S" for silent mode.
236 Follow the prompts from the script to complete the installation.
237 </para>
238
239 <para>
240 Once the installation completes, the ADT, which includes the
241 cross-toolchain, is installed in the selected installation
242 directory.
243 You will notice environment setup files for the cross-toolchain
244 in the installation directory, and image tarballs in the
245 <filename>adt-installer</filename> directory according to your
246 installer configurations, and the target sysroot located
247 according to the
248 <filename>YOCTOADT_TARGET_SYSROOT_LOC_</filename><replaceable>arch</replaceable>
249 variable also in your configuration file.
250 </para>
251 </section>
252 </section>
253
254 <section id='using-an-existing-toolchain-tarball'>
255 <title>Using a Cross-Toolchain Tarball</title>
256
257 <para>
258 If you want to simply install a cross-toolchain by hand, you can
259 do so by running the toolchain installer.
260 The installer includes the pre-built cross-toolchain, the
261 <filename>runqemu</filename> script, and support files.
262 If you use this method to install the cross-toolchain, you
263 might still need to install the target sysroot by installing and
264 extracting it separately.
265 For information on how to install the sysroot, see the
266 "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" section.
267 </para>
268
269 <para>
270 Follow these steps:
271 <orderedlist>
272 <listitem><para><emphasis>Get your toolchain installer using one of the following methods:</emphasis>
273 <itemizedlist>
274 <listitem><para>Go to
275 <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>
276 and find the folder that matches your host
277 development system (i.e. <filename>i686</filename>
278 for 32-bit machines or <filename>x86_64</filename>
279 for 64-bit machines).</para>
280 <para>Go into that folder and download the toolchain
281 installer whose name includes the appropriate target
282 architecture.
283 The toolchains provided by the Yocto Project
284 are based off of the
285 <filename>core-image-sato</filename> image and
286 contain libraries appropriate for developing
287 against that image.
288 For example, if your host development system is a
289 64-bit x86 system and you are going to use
290 your cross-toolchain for a 32-bit x86
291 target, go into the <filename>x86_64</filename>
292 folder and download the following installer:
293 <literallayout class='monospaced'>
294 poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
295 </literallayout></para></listitem>
296 <listitem><para>Build your own toolchain installer.
297 For cases where you cannot use an installer
298 from the download area, you can build your own as
299 described in the
300 "<link linkend='optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</link>"
301 section.</para></listitem>
302 </itemizedlist></para></listitem>
303 <listitem><para><emphasis>Once you have the installer, run it to install the toolchain:</emphasis>
304 <note>
305 You must change the permissions on the toolchain
306 installer script so that it is executable.
307 </note></para>
308 <para>The following command shows how to run the installer
309 given a toolchain tarball for a 64-bit x86 development host
310 system and a 32-bit x86 target architecture.
311 The example assumes the toolchain installer is located
312 in <filename>~/Downloads/</filename>.
313 <literallayout class='monospaced'>
314 $ ~/Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
315 </literallayout>
316 The first thing the installer prompts you for is the
317 directory into which you want to install the toolchain.
318 The default directory used is
319 <filename>/opt/poky/&DISTRO;</filename>.
320 If you do not have write permissions for the directory
321 into which you are installing the toolchain, the
322 toolchain installer notifies you and exits.
323 Be sure you have write permissions in the directory and
324 run the installer again.</para>
325 <para>When the script finishes, the cross-toolchain is
326 installed.
327 You will notice environment setup files for the
328 cross-toolchain in the installation directory.
329 </para></listitem>
330 </orderedlist>
331 </para>
332 </section>
333
334 <section id='using-the-toolchain-from-within-the-build-tree'>
335 <title>Using BitBake and the Build Directory</title>
336
337 <para>
338 A final way of making the cross-toolchain available is to use BitBake
339 to generate the toolchain within an existing
340 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
341 This method does not install the toolchain into the default
342 <filename>/opt</filename> directory.
343 As with the previous method, if you need to install the target sysroot, you must
344 do that separately as well.
345 </para>
346
347 <para>
348 Follow these steps to generate the toolchain into the Build Directory:
349 <orderedlist>
350 <listitem><para><emphasis>Set up the Build Environment:</emphasis>
351 Source the OpenEmbedded build environment setup
352 script (i.e.
353 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
354 or
355 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
356 located in the
357 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
358 </para></listitem>
359 <listitem><para><emphasis>Check your Local Configuration File:</emphasis>
360 At this point, you should be sure that the
361 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> variable
362 in the <filename>local.conf</filename> file found in the
363 <filename>conf</filename> directory of the Build Directory
364 is set for the target architecture.
365 Comments within the <filename>local.conf</filename> file
366 list the values you can use for the
367 <filename>MACHINE</filename> variable.
368 If you do not change the <filename>MACHINE</filename>
369 variable, the OpenEmbedded build system uses
370 <filename>qemux86</filename> as the default target
371 machine when building the cross-toolchain.
372 <note>
373 You can populate the Build Directory with the
374 cross-toolchains for more than a single architecture.
375 You just need to edit the <filename>MACHINE</filename>
376 variable in the <filename>local.conf</filename> file and
377 re-run the <filename>bitbake</filename> command.
378 </note></para></listitem>
379 <listitem><para><emphasis>Make Sure Your Layers are Enabled:</emphasis>
380 Examine the <filename>conf/bblayers.conf</filename> file
381 and make sure that you have enabled all the compatible
382 layers for your target machine.
383 The OpenEmbedded build system needs to be aware of each
384 layer you want included when building images and
385 cross-toolchains.
386 For information on how to enable a layer, see the
387 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-your-layer'>Enabling Your Layer</ulink>"
388 section in the Yocto Project Development Manual.
389 </para></listitem>
390 <listitem><para><emphasis>Generate the Cross-Toolchain:</emphasis>
391 Run <filename>bitbake meta-ide-support</filename> to
392 complete the cross-toolchain generation.
393 Once the <filename>bitbake</filename> command finishes,
394 the cross-toolchain is
395 generated and populated within the Build Directory.
396 You will notice environment setup files for the
397 cross-toolchain that contain the string
398 "<filename>environment-setup</filename>" in the
399 Build Directory's <filename>tmp</filename> folder.</para>
400 <para>Be aware that when you use this method to install the
401 toolchain, you still need to separately extract and install
402 the sysroot filesystem.
403 For information on how to do this, see the
404 "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" section.
405 </para></listitem>
406 </orderedlist>
407 </para>
408 </section>
409</section>
410
411<section id='setting-up-the-cross-development-environment'>
412 <title>Setting Up the Cross-Development Environment</title>
413
414 <para>
415 Before you can develop using the cross-toolchain, you need to set up the
416 cross-development environment by sourcing the toolchain's environment setup script.
417 If you used the ADT Installer or hand-installed cross-toolchain,
418 then you can find this script in the directory you chose for installation.
419 For this release, the default installation directory is
420 <filename>&YOCTO_ADTPATH_DIR;</filename>.
421 If you installed the toolchain in the
422 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
423 you can find the environment setup
424 script for the toolchain in the Build Directory's <filename>tmp</filename> directory.
425 </para>
426
427 <para>
428 Be sure to run the environment setup script that matches the
429 architecture for which you are developing.
430 Environment setup scripts begin with the string
431 "<filename>environment-setup</filename>" and include as part of their
432 name the architecture.
433 For example, the toolchain environment setup script for a 64-bit
434 IA-based architecture installed in the default installation directory
435 would be the following:
436 <literallayout class='monospaced'>
437 &YOCTO_ADTPATH_DIR;/environment-setup-x86_64-poky-linux
438 </literallayout>
439 When you run the setup script, many environment variables are
440 defined:
441 <literallayout class='monospaced'>
442 <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKTARGETSYSROOT'><filename>SDKTARGETSYSROOT</filename></ulink> - The path to the sysroot used for cross-compilation
443 <ulink url='&YOCTO_DOCS_REF_URL;#var-PKG_CONFIG_PATH'><filename>PKG_CONFIG_PATH</filename></ulink> - The path to the target pkg-config files
444 <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIG_SITE'><filename>CONFIG_SITE</filename></ulink> - A GNU autoconf site file preconfigured for the target
445 <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink> - The minimal command and arguments to run the C compiler
446 <ulink url='&YOCTO_DOCS_REF_URL;#var-CXX'><filename>CXX</filename></ulink> - The minimal command and arguments to run the C++ compiler
447 <ulink url='&YOCTO_DOCS_REF_URL;#var-CPP'><filename>CPP</filename></ulink> - The minimal command and arguments to run the C preprocessor
448 <ulink url='&YOCTO_DOCS_REF_URL;#var-AS'><filename>AS</filename></ulink> - The minimal command and arguments to run the assembler
449 <ulink url='&YOCTO_DOCS_REF_URL;#var-LD'><filename>LD</filename></ulink> - The minimal command and arguments to run the linker
450 <ulink url='&YOCTO_DOCS_REF_URL;#var-GDB'><filename>GDB</filename></ulink> - The minimal command and arguments to run the GNU Debugger
451 <ulink url='&YOCTO_DOCS_REF_URL;#var-STRIP'><filename>STRIP</filename></ulink> - The minimal command and arguments to run 'strip', which strips symbols
452 <ulink url='&YOCTO_DOCS_REF_URL;#var-RANLIB'><filename>RANLIB</filename></ulink> - The minimal command and arguments to run 'ranlib'
453 <ulink url='&YOCTO_DOCS_REF_URL;#var-OBJCOPY'><filename>OBJCOPY</filename></ulink> - The minimal command and arguments to run 'objcopy'
454 <ulink url='&YOCTO_DOCS_REF_URL;#var-OBJDUMP'><filename>OBJDUMP</filename></ulink> - The minimal command and arguments to run 'objdump'
455 <ulink url='&YOCTO_DOCS_REF_URL;#var-AR'><filename>AR</filename></ulink> - The minimal command and arguments to run 'ar'
456 <ulink url='&YOCTO_DOCS_REF_URL;#var-NM'><filename>NM</filename></ulink> - The minimal command and arguments to run 'nm'
457 <ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></ulink> - The toolchain binary prefix for the target tools
458 <ulink url='&YOCTO_DOCS_REF_URL;#var-CROSS_COMPILE'><filename>CROSS_COMPILE</filename></ulink> - The toolchain binary prefix for the target tools
459 <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink> - The minimal arguments for GNU configure
460 <ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'><filename>CFLAGS</filename></ulink> - Suggested C flags
461 <ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'><filename>CXXFLAGS</filename></ulink> - Suggested C++ flags
462 <ulink url='&YOCTO_DOCS_REF_URL;#var-LDFLAGS'><filename>LDFLAGS</filename></ulink> - Suggested linker flags when you use CC to link
463 <ulink url='&YOCTO_DOCS_REF_URL;#var-CPPFLAGS'><filename>CPPFLAGS</filename></ulink> - Suggested preprocessor flags
464 </literallayout>
465 </para>
466</section>
467
468<section id='securing-kernel-and-filesystem-images'>
469 <title>Securing Kernel and Filesystem Images</title>
470
471 <para>
472 You will need to have a kernel and filesystem image to boot using your
473 hardware or the QEMU emulator.
474 Furthermore, if you plan on booting your image using NFS or you want to use the root filesystem
475 as the target sysroot, you need to extract the root filesystem.
476 </para>
477
478 <section id='getting-the-images'>
479 <title>Getting the Images</title>
480
481 <para>
482 To get the kernel and filesystem images, you either have to build them or download
483 pre-built versions.
484 For an example of how to build these images, see the
485 "<ulink url='&YOCTO_DOCS_QS_URL;#qs-buiding-images'>Buiding Images</ulink>"
486 section of the Yocto Project Quick Start.
487 For an example of downloading pre-build versions, see the
488 "<link linkend='using-pre-built'>Example Using Pre-Built Binaries and QEMU</link>"
489 section.
490 </para>
491
492 <para>
493 The Yocto Project ships basic kernel and filesystem images for several
494 architectures (<filename>x86</filename>, <filename>x86-64</filename>,
495 <filename>mips</filename>, <filename>powerpc</filename>, and <filename>arm</filename>)
496 that you can use unaltered in the QEMU emulator.
497 These kernel images reside in the release
498 area - <ulink url='&YOCTO_MACHINES_DL_URL;'></ulink>
499 and are ideal for experimentation using Yocto Project.
500 For information on the image types you can build using the OpenEmbedded build system,
501 see the
502 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
503 chapter in the Yocto Project Reference Manual.
504 </para>
505
506 <para>
507 If you are planning on developing against your image and you are not
508 building or using one of the Yocto Project development images
509 (e.g. <filename>core-image-*-dev</filename>), you must be sure to
510 include the development packages as part of your image recipe.
511 </para>
512
513 <para>
514 If you plan on remotely deploying and debugging your
515 application from within the Eclipse IDE, you must have an image
516 that contains the Yocto Target Communication Framework (TCF) agent
517 (<filename>tcf-agent</filename>).
518 You can do this by including the <filename>eclipse-debug</filename>
519 image feature.
520 <note>
521 See the
522 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-features-image'>Image Features</ulink>"
523 section in the Yocto Project Reference Manual for information on
524 image features.
525 </note>
526 To include the <filename>eclipse-debug</filename> image feature,
527 modify your <filename>local.conf</filename> file in the
528 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
529 so that the
530 <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink>
531 variable includes the "eclipse-debug" feature.
532 After modifying the configuration file, you can rebuild the image.
533 Once the image is rebuilt, the <filename>tcf-agent</filename>
534 will be included in the image and is launched automatically after
535 the boot.
536 </para>
537 </section>
538
539 <section id='extracting-the-root-filesystem'>
540 <title>Extracting the Root Filesystem</title>
541
542 <para>
543 If you install your toolchain by hand or build it using BitBake and
544 you need a root filesystem, you need to extract it separately.
545 If you use the ADT Installer to install the ADT, the root
546 filesystem is automatically extracted and installed.
547 </para>
548
549 <para>
550 Here are some cases where you need to extract the root filesystem:
551 <itemizedlist>
552 <listitem><para>You want to boot the image using NFS.
553 </para></listitem>
554 <listitem><para>You want to use the root filesystem as the
555 target sysroot.
556 For example, the Eclipse IDE environment with the Eclipse
557 Yocto Plug-in installed allows you to use QEMU to boot
558 under NFS.</para></listitem>
559 <listitem><para>You want to develop your target application
560 using the root filesystem as the target sysroot.
561 </para></listitem>
562 </itemizedlist>
563 </para>
564
565 <para>
566 To extract the root filesystem, first <filename>source</filename>
567 the cross-development environment setup script to establish
568 necessary environment variables.
569 If you built the toolchain in the Build Directory, you will find
570 the toolchain environment script in the
571 <filename>tmp</filename> directory.
572 If you installed the toolchain by hand, the environment setup
573 script is located in <filename>/opt/poky/&DISTRO;</filename>.
574 </para>
575
576 <para>
577 After sourcing the environment script, use the
578 <filename>runqemu-extract-sdk</filename> command and provide the
579 filesystem image.
580 </para>
581
582 <para>
583 Following is an example.
584 The second command sets up the environment.
585 In this case, the setup script is located in the
586 <filename>/opt/poky/&DISTRO;</filename> directory.
587 The third command extracts the root filesystem from a previously
588 built filesystem that is located in the
589 <filename>~/Downloads</filename> directory.
590 Furthermore, this command extracts the root filesystem into the
591 <filename>qemux86-sato</filename> directory:
592 <literallayout class='monospaced'>
593 $ cd ~
594 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
595 $ runqemu-extract-sdk \
596 ~/Downloads/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 \
597 $HOME/qemux86-sato
598 </literallayout>
599 You could now point to the target sysroot at
600 <filename>qemux86-sato</filename>.
601 </para>
602 </section>
603</section>
604
605<section id='optionally-building-a-toolchain-installer'>
606 <title>Optionally Building a Toolchain Installer</title>
607
608 <para>
609 As an alternative to locating and downloading a toolchain installer,
610 you can build the toolchain installer if you have a
611 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
612 <note>
613 Although not the preferred method, it is also possible to use
614 <filename>bitbake meta-toolchain</filename> to build the toolchain
615 installer.
616 If you do use this method, you must separately install and extract
617 the target sysroot.
618 For information on how to install the sysroot, see the
619 "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
620 section.
621 </note>
622 </para>
623
624 <para>
625 To build the toolchain installer and populate the SDK image, use the
626 following command:
627 <literallayout class='monospaced'>
628 $ bitbake <replaceable>image</replaceable> -c populate_sdk
629 </literallayout>
630 The command results in a toolchain installer that contains the sysroot
631 that matches your target root filesystem.
632 </para>
633
634 <para>
635 Another powerful feature is that the toolchain is completely
636 self-contained.
637 The binaries are linked against their own copy of
638 <filename>libc</filename>, which results in no dependencies
639 on the target system.
640 To achieve this, the pointer to the dynamic loader is
641 configured at install time since that path cannot be dynamically
642 altered.
643 This is the reason for a wrapper around the
644 <filename>populate_sdk</filename> archive.
645 </para>
646
647 <para>
648 Another feature is that only one set of cross-canadian toolchain
649 binaries are produced per architecture.
650 This feature takes advantage of the fact that the target hardware can
651 be passed to <filename>gcc</filename> as a set of compiler options.
652 Those options are set up by the environment script and contained in
653 variables such as
654 <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink>
655 and
656 <ulink url='&YOCTO_DOCS_REF_URL;#var-LD'><filename>LD</filename></ulink>.
657 This reduces the space needed for the tools.
658 Understand, however, that a sysroot is still needed for every target
659 since those binaries are target-specific.
660 </para>
661
662 <para>
663 Remember, before using any BitBake command, you
664 must source the build environment setup script
665 (i.e.
666 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
667 or
668 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
669 located in the Source Directory and you must make sure your
670 <filename>conf/local.conf</filename> variables are correct.
671 In particular, you need to be sure the
672 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
673 variable matches the architecture for which you are building and that
674 the
675 <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKMACHINE'><filename>SDKMACHINE</filename></ulink>
676 variable is correctly set if you are building a toolchain designed to
677 run on an architecture that differs from your current development host
678 machine (i.e. the build machine).
679 </para>
680
681 <para>
682 When the <filename>bitbake</filename> command completes, the toolchain
683 installer will be in
684 <filename>tmp/deploy/sdk</filename> in the Build Directory.
685 <note>
686 By default, this toolchain does not build static binaries.
687 If you want to use the toolchain to build these types of libraries,
688 you need to be sure your image has the appropriate static
689 development libraries.
690 Use the
691 <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></ulink>
692 variable inside your <filename>local.conf</filename> file to
693 install the appropriate library packages.
694 Following is an example using <filename>glibc</filename> static
695 development libraries:
696 <literallayout class='monospaced'>
697 IMAGE_INSTALL_append = " glibc-staticdev"
698 </literallayout>
699 </note>
700 </para>
701</section>
702
703<section id='optionally-using-an-external-toolchain'>
704 <title>Optionally Using an External Toolchain</title>
705
706 <para>
707 You might want to use an external toolchain as part of your
708 development.
709 If this is the case, the fundamental steps you need to accomplish
710 are as follows:
711 <itemizedlist>
712 <listitem><para>
713 Understand where the installed toolchain resides.
714 For cases where you need to build the external toolchain, you
715 would need to take separate steps to build and install the
716 toolchain.
717 </para></listitem>
718 <listitem><para>
719 Make sure you add the layer that contains the toolchain to
720 your <filename>bblayers.conf</filename> file through the
721 <ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'><filename>BBLAYERS</filename></ulink>
722 variable.
723 </para></listitem>
724 <listitem><para>
725 Set the
726 <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTERNAL_TOOLCHAIN'><filename>EXTERNAL_TOOLCHAIN</filename></ulink>
727 variable in your <filename>local.conf</filename> file
728 to the location in which you installed the toolchain.
729 </para></listitem>
730 </itemizedlist>
731 A good example of an external toolchain used with the Yocto Project
732 is <trademark class='registered'>Mentor Graphics</trademark>
733 Sourcery G++ Toolchain.
734 You can see information on how to use that particular layer in the
735 <filename>README</filename> file at
736 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
737 You can find further information by reading about the
738 <ulink url='&YOCTO_DOCS_REF_URL;#var-TCMODE'><filename>TCMODE</filename></ulink>
739 variable in the Yocto Project Reference Manual's variable glossary.
740 </para>
741</section>
742
743 <section id='using-pre-built'>
744 <title>Example Using Pre-Built Binaries and QEMU</title>
745
746 <para>
747 If hardware, libraries and services are stable, you can get started by using a pre-built binary
748 of the filesystem image, kernel, and toolchain and run it using the QEMU emulator.
749 This scenario is useful for developing application software.
750 </para>
751
752 <mediaobject>
753 <imageobject>
754 <imagedata fileref="figures/using-a-pre-built-image.png" format="PNG" align='center' scalefit='1'/>
755 </imageobject>
756 <caption>
757 <para>Using a Pre-Built Image</para>
758 </caption>
759 </mediaobject>
760
761 <para>
762 For this scenario, you need to do several things:
763 </para>
764
765 <itemizedlist>
766 <listitem><para>Install the appropriate stand-alone toolchain tarball.</para></listitem>
767 <listitem><para>Download the pre-built image that will boot with QEMU.
768 You need to be sure to get the QEMU image that matches your target machine's
769 architecture (e.g. x86, ARM, etc.).</para></listitem>
770 <listitem><para>Download the filesystem image for your target machine's architecture.
771 </para></listitem>
772 <listitem><para>Set up the environment to emulate the hardware and then start the QEMU emulator.
773 </para></listitem>
774 </itemizedlist>
775
776 <section id='installing-the-toolchain'>
777 <title>Installing the Toolchain</title>
778
779 <para>
780 You can download a tarball installer, which includes the
781 pre-built toolchain, the <filename>runqemu</filename>
782 script, and support files from the appropriate directory under
783 <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
784 Toolchains are available for 32-bit and 64-bit x86 development
785 systems from the <filename>i686</filename> and
786 <filename>x86_64</filename> directories, respectively.
787 The toolchains the Yocto Project provides are based off the
788 <filename>core-image-sato</filename> image and contain
789 libraries appropriate for developing against that image.
790 Each type of development system supports five or more target
791 architectures.
792 </para>
793
794 <para>
795 The names of the tarball installer scripts are such that a
796 string representing the host system appears first in the
797 filename and then is immediately followed by a string
798 representing the target architecture.
799 </para>
800
801 <literallayout class='monospaced'>
802 poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-<replaceable>release_version</replaceable>.sh
803
804 Where:
805 <replaceable>host_system</replaceable> is a string representing your development system:
806
807 i686 or x86_64.
808
809 <replaceable>image_type</replaceable> is a string representing the image you wish to
810 develop a Software Development Toolkit (SDK) for use against.
811 The Yocto Project builds toolchain installers using the
812 following BitBake command:
813
814 bitbake core-image-sato -c populate_sdk
815
816 <replaceable>arch</replaceable> is a string representing the tuned target architecture:
817
818 i586, x86_64, powerpc, mips, armv7a or armv5te
819
820 <replaceable>release_version</replaceable> is a string representing the release number of the
821 Yocto Project:
822
823 &DISTRO;, &DISTRO;+snapshot
824 </literallayout>
825
826 <para>
827 For example, the following toolchain installer is for a 64-bit
828 development host system and a i586-tuned target architecture
829 based off the SDK for <filename>core-image-sato</filename>:
830 <literallayout class='monospaced'>
831 poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
832 </literallayout>
833 </para>
834
835 <para>
836 Toolchains are self-contained and by default are installed into
837 <filename>/opt/poky</filename>.
838 However, when you run the toolchain installer, you can choose an
839 installation directory.
840 </para>
841
842 <para>
843 The following command shows how to run the installer given a toolchain tarball
844 for a 64-bit x86 development host system and a 32-bit x86 target architecture.
845 You must change the permissions on the toolchain
846 installer script so that it is executable.
847 </para>
848
849 <para>
850 The example assumes the toolchain installer is located in <filename>~/Downloads/</filename>.
851 <note>
852 If you do not have write permissions for the directory into which you are installing
853 the toolchain, the toolchain installer notifies you and exits.
854 Be sure you have write permissions in the directory and run the installer again.
855 </note>
856 </para>
857
858 <para>
859 <literallayout class='monospaced'>
860 $ ~/Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
861 </literallayout>
862 </para>
863
864 <para>
865 For more information on how to install tarballs, see the
866 "<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
867 "<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Build Directory</ulink>" sections in the Yocto Project Application Developer's Guide.
868 </para>
869 </section>
870
871 <section id='downloading-the-pre-built-linux-kernel'>
872 <title>Downloading the Pre-Built Linux Kernel</title>
873
874 <para>
875 You can download the pre-built Linux kernel suitable for running in the QEMU emulator from
876 <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
877 Be sure to use the kernel that matches the architecture you want to simulate.
878 Download areas exist for the five supported machine architectures:
879 <filename>qemuarm</filename>, <filename>qemumips</filename>, <filename>qemuppc</filename>,
880 <filename>qemux86</filename>, and <filename>qemux86-64</filename>.
881 </para>
882
883 <para>
884 Most kernel files have one of the following forms:
885 <literallayout class='monospaced'>
886 *zImage-qemu<replaceable>arch</replaceable>.bin
887 vmlinux-qemu<replaceable>arch</replaceable>.bin
888
889 Where:
890 <replaceable>arch</replaceable> is a string representing the target architecture:
891 x86, x86-64, ppc, mips, or arm.
892 </literallayout>
893 </para>
894
895 <para>
896 You can learn more about downloading a Yocto Project kernel in the
897 "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Yocto Project Kernel</ulink>"
898 bulleted item in the Yocto Project Development Manual.
899 </para>
900 </section>
901
902 <section id='downloading-the-filesystem'>
903 <title>Downloading the Filesystem</title>
904
905 <para>
906 You can also download the filesystem image suitable for your target architecture from
907 <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
908 Again, be sure to use the filesystem that matches the architecture you want
909 to simulate.
910 </para>
911
912 <para>
913 The filesystem image has two tarball forms: <filename>ext3</filename> and
914 <filename>tar</filename>.
915 You must use the <filename>ext3</filename> form when booting an image using the
916 QEMU emulator.
917 The <filename>tar</filename> form can be flattened out in your host development system
918 and used for build purposes with the Yocto Project.
919 <literallayout class='monospaced'>
920 core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.ext3
921 core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.tar.bz2
922
923 Where:
924 <replaceable>profile</replaceable> is the filesystem image's profile:
925 lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato,
926 sato-dev, or sato-sdk. For information on these types of image
927 profiles, see the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
928 chapter in the Yocto Project Reference Manual.
929
930 <replaceable>arch</replaceable> is a string representing the target architecture:
931 x86, x86-64, ppc, mips, or arm.
932 </literallayout>
933 </para>
934 </section>
935
936 <section id='setting-up-the-environment-and-starting-the-qemu-emulator'>
937 <title>Setting Up the Environment and Starting the QEMU Emulator</title>
938
939 <para>
940 Before you start the QEMU emulator, you need to set up the emulation environment.
941 The following command form sets up the emulation environment.
942 <literallayout class='monospaced'>
943 $ source &YOCTO_ADTPATH_DIR;/environment-setup-<replaceable>arch</replaceable>-poky-linux-<replaceable>if</replaceable>
944
945 Where:
946 <replaceable>arch</replaceable> is a string representing the target architecture:
947 i586, x86_64, ppc603e, mips, or armv5te.
948
949 <replaceable>if</replaceable> is a string representing an embedded application binary interface.
950 Not all setup scripts include this string.
951 </literallayout>
952 </para>
953
954 <para>
955 Finally, this command form invokes the QEMU emulator
956 <literallayout class='monospaced'>
957 $ runqemu <replaceable>qemuarch</replaceable> <replaceable>kernel-image</replaceable> <replaceable>filesystem-image</replaceable>
958
959 Where:
960 <replaceable>qemuarch</replaceable> is a string representing the target architecture: qemux86, qemux86-64,
961 qemuppc, qemumips, or qemuarm.
962
963 <replaceable>kernel-image</replaceable> is the architecture-specific kernel image.
964
965 <replaceable>filesystem-image</replaceable> is the .ext3 filesystem image.
966
967 </literallayout>
968 </para>
969
970 <para>
971 Continuing with the example, the following two commands setup the emulation
972 environment and launch QEMU.
973 This example assumes the root filesystem (<filename>.ext3</filename> file) and
974 the pre-built kernel image file both reside in your home directory.
975 The kernel and filesystem are for a 32-bit target architecture.
976 <literallayout class='monospaced'>
977 $ cd $HOME
978 $ source &YOCTO_ADTPATH_DIR;/environment-setup-i586-poky-linux
979 $ runqemu qemux86 bzImage-qemux86.bin \
980 core-image-sato-qemux86.ext3
981 </literallayout>
982 </para>
983
984 <para>
985 The environment in which QEMU launches varies depending on the filesystem image and on the
986 target architecture.
987 For example, if you source the environment for the ARM target
988 architecture and then boot the minimal QEMU image, the emulator comes up in a new
989 shell in command-line mode.
990 However, if you boot the SDK image, QEMU comes up with a GUI.
991 <note>Booting the PPC image results in QEMU launching in the same shell in
992 command-line mode.</note>
993 </para>
994 </section>
995</section>
996
997</chapter>
998<!--
999vim: expandtab tw=80 ts=4
1000-->
diff --git a/documentation/adt-manual/adt-style.css b/documentation/adt-manual/adt-style.css
deleted file mode 100644
index 9d6221ae51..0000000000
--- a/documentation/adt-manual/adt-style.css
+++ /dev/null
@@ -1,986 +0,0 @@
1/*
2 SPDX-License-Identifier: CC-BY-2.0-UK
3
4 Generic XHTML / DocBook XHTML CSS Stylesheet.
5
6 Browser wrangling and typographic design by
7 Oyvind Kolas / pippin@gimp.org
8
9 Customised for Poky by
10 Matthew Allum / mallum@o-hand.com
11
12 Thanks to:
13 Liam R. E. Quin
14 William Skaggs
15 Jakub Steiner
16
17 Structure
18 ---------
19
20 The stylesheet is divided into the following sections:
21
22 Positioning
23 Margins, paddings, width, font-size, clearing.
24 Decorations
25 Borders, style
26 Colors
27 Colors
28 Graphics
29 Graphical backgrounds
30 Nasty IE tweaks
31 Workarounds needed to make it work in internet explorer,
32 currently makes the stylesheet non validating, but up until
33 this point it is validating.
34 Mozilla extensions
35 Transparency for footer
36 Rounded corners on boxes
37
38*/
39
40
41 /*************** /
42 / Positioning /
43/ ***************/
44
45body {
46 font-family: Verdana, Sans, sans-serif;
47
48 min-width: 640px;
49 width: 80%;
50 margin: 0em auto;
51 padding: 2em 5em 5em 5em;
52 color: #333;
53}
54
55h1,h2,h3,h4,h5,h6,h7 {
56 font-family: Arial, Sans;
57 color: #00557D;
58 clear: both;
59}
60
61h1 {
62 font-size: 2em;
63 text-align: left;
64 padding: 0em 0em 0em 0em;
65 margin: 2em 0em 0em 0em;
66}
67
68h2.subtitle {
69 margin: 0.10em 0em 3.0em 0em;
70 padding: 0em 0em 0em 0em;
71 font-size: 1.8em;
72 padding-left: 20%;
73 font-weight: normal;
74 font-style: italic;
75}
76
77h2 {
78 margin: 2em 0em 0.66em 0em;
79 padding: 0.5em 0em 0em 0em;
80 font-size: 1.5em;
81 font-weight: bold;
82}
83
84h3.subtitle {
85 margin: 0em 0em 1em 0em;
86 padding: 0em 0em 0em 0em;
87 font-size: 142.14%;
88 text-align: right;
89}
90
91h3 {
92 margin: 1em 0em 0.5em 0em;
93 padding: 1em 0em 0em 0em;
94 font-size: 140%;
95 font-weight: bold;
96}
97
98h4 {
99 margin: 1em 0em 0.5em 0em;
100 padding: 1em 0em 0em 0em;
101 font-size: 120%;
102 font-weight: bold;
103}
104
105h5 {
106 margin: 1em 0em 0.5em 0em;
107 padding: 1em 0em 0em 0em;
108 font-size: 110%;
109 font-weight: bold;
110}
111
112h6 {
113 margin: 1em 0em 0em 0em;
114 padding: 1em 0em 0em 0em;
115 font-size: 110%;
116 font-weight: bold;
117}
118
119.authorgroup {
120 background-color: transparent;
121 background-repeat: no-repeat;
122 padding-top: 256px;
123 background-image: url("figures/adt-title.png");
124 background-position: left top;
125 margin-top: -256px;
126 padding-right: 50px;
127 margin-left: 0px;
128 text-align: right;
129 width: 740px;
130}
131
132h3.author {
133 margin: 0em 0me 0em 0em;
134 padding: 0em 0em 0em 0em;
135 font-weight: normal;
136 font-size: 100%;
137 color: #333;
138 clear: both;
139}
140
141.author tt.email {
142 font-size: 66%;
143}
144
145.titlepage hr {
146 width: 0em;
147 clear: both;
148}
149
150.revhistory {
151 padding-top: 2em;
152 clear: both;
153}
154
155.toc,
156.list-of-tables,
157.list-of-examples,
158.list-of-figures {
159 padding: 1.33em 0em 2.5em 0em;
160 color: #00557D;
161}
162
163.toc p,
164.list-of-tables p,
165.list-of-figures p,
166.list-of-examples p {
167 padding: 0em 0em 0em 0em;
168 padding: 0em 0em 0.3em;
169 margin: 1.5em 0em 0em 0em;
170}
171
172.toc p b,
173.list-of-tables p b,
174.list-of-figures p b,
175.list-of-examples p b{
176 font-size: 100.0%;
177 font-weight: bold;
178}
179
180.toc dl,
181.list-of-tables dl,
182.list-of-figures dl,
183.list-of-examples dl {
184 margin: 0em 0em 0.5em 0em;
185 padding: 0em 0em 0em 0em;
186}
187
188.toc dt {
189 margin: 0em 0em 0em 0em;
190 padding: 0em 0em 0em 0em;
191}
192
193.toc dd {
194 margin: 0em 0em 0em 2.6em;
195 padding: 0em 0em 0em 0em;
196}
197
198div.glossary dl,
199div.variablelist dl {
200}
201
202.glossary dl dt,
203.variablelist dl dt,
204.variablelist dl dt span.term {
205 font-weight: normal;
206 width: 20em;
207 text-align: right;
208}
209
210.variablelist dl dt {
211 margin-top: 0.5em;
212}
213
214.glossary dl dd,
215.variablelist dl dd {
216 margin-top: -1em;
217 margin-left: 25.5em;
218}
219
220.glossary dd p,
221.variablelist dd p {
222 margin-top: 0em;
223 margin-bottom: 1em;
224}
225
226
227div.calloutlist table td {
228 padding: 0em 0em 0em 0em;
229 margin: 0em 0em 0em 0em;
230}
231
232div.calloutlist table td p {
233 margin-top: 0em;
234 margin-bottom: 1em;
235}
236
237div p.copyright {
238 text-align: left;
239}
240
241div.legalnotice p.legalnotice-title {
242 margin-bottom: 0em;
243}
244
245p {
246 line-height: 1.5em;
247 margin-top: 0em;
248
249}
250
251dl {
252 padding-top: 0em;
253}
254
255hr {
256 border: solid 1px;
257}
258
259
260.mediaobject,
261.mediaobjectco {
262 text-align: center;
263}
264
265img {
266 border: none;
267}
268
269ul {
270 padding: 0em 0em 0em 1.5em;
271}
272
273ul li {
274 padding: 0em 0em 0em 0em;
275}
276
277ul li p {
278 text-align: left;
279}
280
281table {
282 width :100%;
283}
284
285th {
286 padding: 0.25em;
287 text-align: left;
288 font-weight: normal;
289 vertical-align: top;
290}
291
292td {
293 padding: 0.25em;
294 vertical-align: top;
295}
296
297p a[id] {
298 margin: 0px;
299 padding: 0px;
300 display: inline;
301 background-image: none;
302}
303
304a {
305 text-decoration: underline;
306 color: #444;
307}
308
309pre {
310 overflow: auto;
311}
312
313a:hover {
314 text-decoration: underline;
315 /*font-weight: bold;*/
316}
317
318/* This style defines how the permalink character
319 appears by itself and when hovered over with
320 the mouse. */
321
322[alt='Permalink'] { color: #eee; }
323[alt='Permalink']:hover { color: black; }
324
325
326div.informalfigure,
327div.informalexample,
328div.informaltable,
329div.figure,
330div.table,
331div.example {
332 margin: 1em 0em;
333 padding: 1em;
334 page-break-inside: avoid;
335}
336
337
338div.informalfigure p.title b,
339div.informalexample p.title b,
340div.informaltable p.title b,
341div.figure p.title b,
342div.example p.title b,
343div.table p.title b{
344 padding-top: 0em;
345 margin-top: 0em;
346 font-size: 100%;
347 font-weight: normal;
348}
349
350.mediaobject .caption,
351.mediaobject .caption p {
352 text-align: center;
353 font-size: 80%;
354 padding-top: 0.5em;
355 padding-bottom: 0.5em;
356}
357
358.epigraph {
359 padding-left: 55%;
360 margin-bottom: 1em;
361}
362
363.epigraph p {
364 text-align: left;
365}
366
367.epigraph .quote {
368 font-style: italic;
369}
370.epigraph .attribution {
371 font-style: normal;
372 text-align: right;
373}
374
375span.application {
376 font-style: italic;
377}
378
379.programlisting {
380 font-family: monospace;
381 font-size: 80%;
382 white-space: pre;
383 margin: 1.33em 0em;
384 padding: 1.33em;
385}
386
387.tip,
388.warning,
389.caution,
390.note {
391 margin-top: 1em;
392 margin-bottom: 1em;
393
394}
395
396/* force full width of table within div */
397.tip table,
398.warning table,
399.caution table,
400.note table {
401 border: none;
402 width: 100%;
403}
404
405
406.tip table th,
407.warning table th,
408.caution table th,
409.note table th {
410 padding: 0.8em 0.0em 0.0em 0.0em;
411 margin : 0em 0em 0em 0em;
412}
413
414.tip p,
415.warning p,
416.caution p,
417.note p {
418 margin-top: 0.5em;
419 margin-bottom: 0.5em;
420 padding-right: 1em;
421 text-align: left;
422}
423
424.acronym {
425 text-transform: uppercase;
426}
427
428b.keycap,
429.keycap {
430 padding: 0.09em 0.3em;
431 margin: 0em;
432}
433
434.itemizedlist li {
435 clear: none;
436}
437
438.filename {
439 font-size: medium;
440 font-family: Courier, monospace;
441}
442
443
444div.navheader, div.heading{
445 position: absolute;
446 left: 0em;
447 top: 0em;
448 width: 100%;
449 background-color: #cdf;
450 width: 100%;
451}
452
453div.navfooter, div.footing{
454 position: fixed;
455 left: 0em;
456 bottom: 0em;
457 background-color: #eee;
458 width: 100%;
459}
460
461
462div.navheader td,
463div.navfooter td {
464 font-size: 66%;
465}
466
467div.navheader table th {
468 /*font-family: Georgia, Times, serif;*/
469 /*font-size: x-large;*/
470 font-size: 80%;
471}
472
473div.navheader table {
474 border-left: 0em;
475 border-right: 0em;
476 border-top: 0em;
477 width: 100%;
478}
479
480div.navfooter table {
481 border-left: 0em;
482 border-right: 0em;
483 border-bottom: 0em;
484 width: 100%;
485}
486
487div.navheader table td a,
488div.navfooter table td a {
489 color: #777;
490 text-decoration: none;
491}
492
493/* normal text in the footer */
494div.navfooter table td {
495 color: black;
496}
497
498div.navheader table td a:visited,
499div.navfooter table td a:visited {
500 color: #444;
501}
502
503
504/* links in header and footer */
505div.navheader table td a:hover,
506div.navfooter table td a:hover {
507 text-decoration: underline;
508 background-color: transparent;
509 color: #33a;
510}
511
512div.navheader hr,
513div.navfooter hr {
514 display: none;
515}
516
517
518.qandaset tr.question td p {
519 margin: 0em 0em 1em 0em;
520 padding: 0em 0em 0em 0em;
521}
522
523.qandaset tr.answer td p {
524 margin: 0em 0em 1em 0em;
525 padding: 0em 0em 0em 0em;
526}
527.answer td {
528 padding-bottom: 1.5em;
529}
530
531.emphasis {
532 font-weight: bold;
533}
534
535
536 /************* /
537 / decorations /
538/ *************/
539
540.titlepage {
541}
542
543.part .title {
544}
545
546.subtitle {
547 border: none;
548}
549
550/*
551h1 {
552 border: none;
553}
554
555h2 {
556 border-top: solid 0.2em;
557 border-bottom: solid 0.06em;
558}
559
560h3 {
561 border-top: 0em;
562 border-bottom: solid 0.06em;
563}
564
565h4 {
566 border: 0em;
567 border-bottom: solid 0.06em;
568}
569
570h5 {
571 border: 0em;
572}
573*/
574
575.programlisting {
576 border: solid 1px;
577}
578
579div.figure,
580div.table,
581div.informalfigure,
582div.informaltable,
583div.informalexample,
584div.example {
585 border: 1px solid;
586}
587
588
589
590.tip,
591.warning,
592.caution,
593.note {
594 border: 1px solid;
595}
596
597.tip table th,
598.warning table th,
599.caution table th,
600.note table th {
601 border-bottom: 1px solid;
602}
603
604.question td {
605 border-top: 1px solid black;
606}
607
608.answer {
609}
610
611
612b.keycap,
613.keycap {
614 border: 1px solid;
615}
616
617
618div.navheader, div.heading{
619 border-bottom: 1px solid;
620}
621
622
623div.navfooter, div.footing{
624 border-top: 1px solid;
625}
626
627 /********* /
628 / colors /
629/ *********/
630
631body {
632 color: #333;
633 background: white;
634}
635
636a {
637 background: transparent;
638}
639
640a:hover {
641 background-color: #dedede;
642}
643
644
645h1,
646h2,
647h3,
648h4,
649h5,
650h6,
651h7,
652h8 {
653 background-color: transparent;
654}
655
656hr {
657 border-color: #aaa;
658}
659
660
661.tip, .warning, .caution, .note {
662 border-color: #fff;
663}
664
665
666.tip table th,
667.warning table th,
668.caution table th,
669.note table th {
670 border-bottom-color: #fff;
671}
672
673
674.warning {
675 background-color: #f0f0f2;
676}
677
678.caution {
679 background-color: #f0f0f2;
680}
681
682.tip {
683 background-color: #f0f0f2;
684}
685
686.note {
687 background-color: #f0f0f2;
688}
689
690.glossary dl dt,
691.variablelist dl dt,
692.variablelist dl dt span.term {
693 color: #044;
694}
695
696div.figure,
697div.table,
698div.example,
699div.informalfigure,
700div.informaltable,
701div.informalexample {
702 border-color: #aaa;
703}
704
705pre.programlisting {
706 color: black;
707 background-color: #fff;
708 border-color: #aaa;
709 border-width: 2px;
710}
711
712.guimenu,
713.guilabel,
714.guimenuitem {
715 background-color: #eee;
716}
717
718
719b.keycap,
720.keycap {
721 background-color: #eee;
722 border-color: #999;
723}
724
725
726div.navheader {
727 border-color: black;
728}
729
730
731div.navfooter {
732 border-color: black;
733}
734
735
736 /*********** /
737 / graphics /
738/ ***********/
739
740/*
741body {
742 background-image: url("images/body_bg.jpg");
743 background-attachment: fixed;
744}
745
746.navheader,
747.note,
748.tip {
749 background-image: url("images/note_bg.jpg");
750 background-attachment: fixed;
751}
752
753.warning,
754.caution {
755 background-image: url("images/warning_bg.jpg");
756 background-attachment: fixed;
757}
758
759.figure,
760.informalfigure,
761.example,
762.informalexample,
763.table,
764.informaltable {
765 background-image: url("images/figure_bg.jpg");
766 background-attachment: fixed;
767}
768
769*/
770h1,
771h2,
772h3,
773h4,
774h5,
775h6,
776h7{
777}
778
779/*
780Example of how to stick an image as part of the title.
781
782div.article .titlepage .title
783{
784 background-image: url("figures/white-on-black.png");
785 background-position: center;
786 background-repeat: repeat-x;
787}
788*/
789
790div.preface .titlepage .title,
791div.colophon .title,
792div.chapter .titlepage .title,
793div.article .titlepage .title
794{
795}
796
797div.section div.section .titlepage .title,
798div.sect2 .titlepage .title {
799 background: none;
800}
801
802
803h1.title {
804 background-color: transparent;
805 background-repeat: no-repeat;
806 height: 256px;
807 text-indent: -9000px;
808 overflow:hidden;
809}
810
811h2.subtitle {
812 background-color: transparent;
813 text-indent: -9000px;
814 overflow:hidden;
815 width: 0px;
816 display: none;
817}
818
819 /*************************************** /
820 / pippin.gimp.org specific alterations /
821/ ***************************************/
822
823/*
824div.heading, div.navheader {
825 color: #777;
826 font-size: 80%;
827 padding: 0;
828 margin: 0;
829 text-align: left;
830 position: absolute;
831 top: 0px;
832 left: 0px;
833 width: 100%;
834 height: 50px;
835 background: url('/gfx/heading_bg.png') transparent;
836 background-repeat: repeat-x;
837 background-attachment: fixed;
838 border: none;
839}
840
841div.heading a {
842 color: #444;
843}
844
845div.footing, div.navfooter {
846 border: none;
847 color: #ddd;
848 font-size: 80%;
849 text-align:right;
850
851 width: 100%;
852 padding-top: 10px;
853 position: absolute;
854 bottom: 0px;
855 left: 0px;
856
857 background: url('/gfx/footing_bg.png') transparent;
858}
859*/
860
861
862
863 /****************** /
864 / nasty ie tweaks /
865/ ******************/
866
867/*
868div.heading, div.navheader {
869 width:expression(document.body.clientWidth + "px");
870}
871
872div.footing, div.navfooter {
873 width:expression(document.body.clientWidth + "px");
874 margin-left:expression("-5em");
875}
876body {
877 padding:expression("4em 5em 0em 5em");
878}
879*/
880
881 /**************************************** /
882 / mozilla vendor specific css extensions /
883/ ****************************************/
884/*
885div.navfooter, div.footing{
886 -moz-opacity: 0.8em;
887}
888
889div.figure,
890div.table,
891div.informalfigure,
892div.informaltable,
893div.informalexample,
894div.example,
895.tip,
896.warning,
897.caution,
898.note {
899 -moz-border-radius: 0.5em;
900}
901
902b.keycap,
903.keycap {
904 -moz-border-radius: 0.3em;
905}
906*/
907
908table tr td table tr td {
909 display: none;
910}
911
912
913hr {
914 display: none;
915}
916
917table {
918 border: 0em;
919}
920
921 .photo {
922 float: right;
923 margin-left: 1.5em;
924 margin-bottom: 1.5em;
925 margin-top: 0em;
926 max-width: 17em;
927 border: 1px solid gray;
928 padding: 3px;
929 background: white;
930}
931 .seperator {
932 padding-top: 2em;
933 clear: both;
934 }
935
936 #validators {
937 margin-top: 5em;
938 text-align: right;
939 color: #777;
940 }
941 @media print {
942 body {
943 font-size: 8pt;
944 }
945 .noprint {
946 display: none;
947 }
948 }
949
950
951.tip,
952.note {
953 background: #f0f0f2;
954 color: #333;
955 padding: 20px;
956 margin: 20px;
957}
958
959.tip h3,
960.note h3 {
961 padding: 0em;
962 margin: 0em;
963 font-size: 2em;
964 font-weight: bold;
965 color: #333;
966}
967
968.tip a,
969.note a {
970 color: #333;
971 text-decoration: underline;
972}
973
974.footnote {
975 font-size: small;
976 color: #333;
977}
978
979/* Changes the announcement text */
980.tip h3,
981.warning h3,
982.caution h3,
983.note h3 {
984 font-size:large;
985 color: #00557D;
986}