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