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.xml195
-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.xml113
-rw-r--r--documentation/adt-manual/adt-package.xml101
-rw-r--r--documentation/adt-manual/adt-prepare.xml646
-rw-r--r--documentation/adt-manual/adt-style.css979
-rw-r--r--documentation/adt-manual/figures/adt-title.pngbin0 -> 13498 bytes
9 files changed, 2296 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..0ed3396ef5
--- /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 <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..a92828515d
--- /dev/null
+++ b/documentation/adt-manual/adt-intro.xml
@@ -0,0 +1,195 @@
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>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
31<section id='adt-intro-section'>
32 <title>The Application Development Toolkit (ADT)</title>
33
34 <para>
35 Part of the Yocto Project development solution is an Application Development
36 Toolkit (ADT).
37 The ADT provides you with a custom-built, cross-development
38 platform suited for developing a user-targeted product application.
39 </para>
40
41 <para>
42 Fundamentally, the ADT consists of the following:
43 <itemizedlist>
44 <listitem><para>An architecture-specific cross-toolchain and matching
45 sysroot both built by the OpenEmbedded build system.
46 The toolchain and sysroot are based on a
47 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
48 configuration and extensions,
49 which allows you to cross-develop on the host machine for the target hardware.
50 </para></listitem>
51 <listitem><para>The Eclipse IDE Yocto Plug-in.</para></listitem>
52 <listitem><para>The Quick EMUlator (QEMU), which lets you simulate target hardware.
53 </para></listitem>
54 <listitem><para>Various user-space tools that greatly enhance your application
55 development experience.</para></listitem>
56 </itemizedlist>
57 </para>
58
59 <section id='the-cross-development-toolchain'>
60 <title>The Cross-Development Toolchain</title>
61
62 <para>
63 The
64 <ulink url='&YOCTO_DOCS_DEV_URL;#cross-development-toolchain'>Cross-Development Toolchain</ulink>
65 consists of a cross-compiler, cross-linker, and cross-debugger
66 that are used to develop user-space applications for targeted
67 hardware.
68 This toolchain is created either by running the ADT Installer
69 script, a toolchain installer script, or through a
70 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
71 that is based on your Metadata configuration or extension for
72 your targeted device.
73 The cross-toolchain works with a matching target sysroot.
74 </para>
75 </section>
76
77 <section id='sysroot'>
78 <title>Sysroot</title>
79
80 <para>
81 The matching target sysroot contains needed headers and libraries for generating
82 binaries that run on the target architecture.
83 The sysroot is based on the target root filesystem image that is built by
84 the OpenEmbedded build system and uses the same Metadata configuration
85 used to build the cross-toolchain.
86 </para>
87 </section>
88
89 <section id='eclipse-overview'>
90 <title>Eclipse Yocto Plug-in</title>
91
92 <para>
93 The Eclipse IDE is a popular development environment and it fully supports
94 development using the Yocto Project.
95 When you install and configure the Eclipse Yocto Project Plug-in into
96 the Eclipse IDE, you maximize your Yocto Project experience.
97 Installing and configuring the Plug-in results in an environment that
98 has extensions specifically designed to let you more easily develop software.
99 These extensions allow for cross-compilation, deployment, and execution of
100 your output into a QEMU emulation session.
101 You can also perform cross-debugging and profiling.
102 The environment also supports a suite of tools that allows you to perform
103 remote profiling, tracing, collection of power data, collection of
104 latency data, and collection of performance data.
105 </para>
106
107 <para>
108 For information about the application development workflow that uses the Eclipse
109 IDE and for a detailed example of how to install and configure the Eclipse
110 Yocto Project Plug-in, see the
111 "<ulink url='&YOCTO_DOCS_DEV_URL;#adt-eclipse'>Working Within Eclipse</ulink>" section
112 of the Yocto Project Development Manual.
113 </para>
114 </section>
115
116 <section id='the-qemu-emulator'>
117 <title>The QEMU Emulator</title>
118
119 <para>
120 The QEMU emulator allows you to simulate your hardware while running your
121 application or image.
122 QEMU is made available a number of ways:
123 <itemizedlist>
124 <listitem><para>If you use the ADT Installer script to install ADT, you can
125 specify whether or not to install QEMU.</para></listitem>
126 <listitem><para>If you have downloaded a Yocto Project release and unpacked
127 it to create a
128 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> and
129 you have sourced
130 the environment setup script, QEMU is installed and automatically
131 available.</para></listitem>
132 <listitem><para>If you have installed the cross-toolchain
133 tarball and you have sourced the toolchain's setup environment script, QEMU
134 is also installed and automatically available.</para></listitem>
135 </itemizedlist>
136 </para>
137 </section>
138
139 <section id='user-space-tools'>
140 <title>User-Space Tools</title>
141
142 <para>
143 User-space tools are included as part of the distribution.
144 You will find these tools helpful during development.
145 The tools include LatencyTOP, PowerTOP, OProfile, Perf, SystemTap, and Lttng-ust.
146 These tools are common development tools for the Linux platform.
147 <itemizedlist>
148 <listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP focuses on latency
149 that causes skips in audio,
150 stutters in your desktop experience, or situations that overload your server
151 even when you have plenty of CPU power left.
152 </para></listitem>
153 <listitem><para><emphasis>PowerTOP:</emphasis> Helps you determine what
154 software is using the most power.
155 You can find out more about PowerTOP at
156 <ulink url='https://01.org/powertop/'></ulink>.</para></listitem>
157 <listitem><para><emphasis>OProfile:</emphasis> A system-wide profiler for Linux
158 systems that is capable of profiling all running code at low overhead.
159 You can find out more about OProfile at
160 <ulink url='http://oprofile.sourceforge.net/about/'></ulink>.
161 For examples on how to setup and use this tool, see the
162 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
163 section in the Yocto Project Profiling and Tracing Manual.
164 </para></listitem>
165 <listitem><para><emphasis>Perf:</emphasis> Performance counters for Linux used
166 to keep track of certain types of hardware and software events.
167 For more information on these types of counters see
168 <ulink url='https://perf.wiki.kernel.org/'></ulink> and click
169 on “Perf tools.”
170 For examples on how to setup and use this tool, see the
171 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
172 section in the Yocto Project Profiling and Tracing Manual.
173 </para></listitem>
174 <listitem><para><emphasis>SystemTap:</emphasis> A free software infrastructure
175 that simplifies information gathering about a running Linux system.
176 This information helps you diagnose performance or functional problems.
177 SystemTap is not available as a user-space tool through the Eclipse IDE Yocto Plug-in.
178 See <ulink url='http://sourceware.org/systemtap'></ulink> for more information
179 on SystemTap.
180 For examples on how to setup and use this tool, see the
181 "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap'>SystemTap</ulink>"
182 section in the Yocto Project Profiling and Tracing Manual.</para></listitem>
183 <listitem><para><emphasis>Lttng-ust:</emphasis> A User-space Tracer designed to
184 provide detailed information on user-space activity.
185 See <ulink url='http://lttng.org/ust'></ulink> for more information on Lttng-ust.
186 </para></listitem>
187 </itemizedlist>
188 </para>
189 </section>
190</section>
191
192</chapter>
193<!--
194vim: expandtab tw=80 ts=4
195-->
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.xml b/documentation/adt-manual/adt-manual.xml
new file mode 100644
index 0000000000..9ac54d35d0
--- /dev/null
+++ b/documentation/adt-manual/adt-manual.xml
@@ -0,0 +1,113 @@
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>Sometime in 2013</date>
72 <revremark>Released with the Yocto Project 1.5.1 Release.</revremark>
73 </revision>
74 </revhistory>
75
76 <copyright>
77 <year>&COPYRIGHT_YEAR;</year>
78 <holder>Linux Foundation</holder>
79 </copyright>
80
81 <legalnotice>
82 <para>
83 Permission is granted to copy, distribute and/or modify this document under
84 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.
85 </para>
86 <note>
87 For the latest version of this manual associated with this
88 Yocto Project release, see the
89 <ulink url='&YOCTO_DOCS_ADT_URL;'>Yocto Project Application Developer's Guide</ulink>
90 from the Yocto Project website.
91 </note>
92
93 </legalnotice>
94
95 </bookinfo>
96
97 <xi:include href="adt-intro.xml"/>
98
99 <xi:include href="adt-prepare.xml"/>
100
101 <xi:include href="adt-package.xml"/>
102
103 <xi:include href="adt-command.xml"/>
104
105<!-- <index id='index'>
106 <title>Index</title>
107 </index>
108-->
109
110</book>
111<!--
112vim: expandtab tw=80 ts=4
113-->
diff --git a/documentation/adt-manual/adt-package.xml b/documentation/adt-manual/adt-package.xml
new file mode 100644
index 0000000000..48edf0aef5
--- /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'>Packaging - <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 <filename>ipk</filename> 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..02416b3cda
--- /dev/null
+++ b/documentation/adt-manual/adt-prepare.xml
@@ -0,0 +1,646 @@
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 BitBake to generate the tarball inside an
91 existing
92 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
93 </para>
94 <para>If you use BitBake to generate the ADT Installer
95 tarball, you must <filename>source</filename> the
96 environment setup script
97 (<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
98 or
99 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
100 located in the Source Directory before running the
101 BitBake command that creates the tarball.</para>
102 <para>The following example commands establish
103 the
104 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
105 check out the current release branch, set up the
106 build environment while also creating the default
107 Build Directory, and run the BitBake command that
108 results in the tarball
109 <filename>~/yocto-project/build/tmp/deploy/sdk/adt_installer.tar.bz2</filename>:
110 <note>
111 Before using BitBake to build the ADT tarball, be
112 sure to make sure your
113 <filename>local.conf</filename> file is properly
114 configured.
115 </note>
116 <literallayout class='monospaced'>
117 $ cd ~
118 $ git clone git://git.yoctoproject.org/poky
119 $ cd poky
120 $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
121 $ source &OE_INIT_FILE;
122 $ bitbake adt-installer
123 </literallayout></para></listitem>
124 </itemizedlist>
125 </para>
126 </section>
127
128 <section id='configuring-and-running-the-adt-installer-script'>
129 <title>Configuring and Running the ADT Installer Script</title>
130
131 <para>
132 Before running the ADT Installer script, you need to unpack the tarball.
133 You can unpack the tarball in any directory you wish.
134 For example, this command copies the ADT Installer tarball from where
135 it was built into the home directory and then unpacks the tarball into
136 a top-level directory named <filename>adt-installer</filename>:
137 <literallayout class='monospaced'>
138 $ cd ~
139 $ cp ~/poky/build/tmp/deploy/sdk/adt_installer.tar.bz2 $HOME
140 $ tar -xjf adt_installer.tar.bz2
141 </literallayout>
142 Unpacking it creates the directory <filename>adt-installer</filename>,
143 which contains the ADT Installer script (<filename>adt_installer</filename>)
144 and its configuration file (<filename>adt_installer.conf</filename>).
145 </para>
146
147 <para>
148 Before you run the script, however, you should examine the ADT Installer configuration
149 file and be sure you are going to get what you want.
150 Your configurations determine which kernel and filesystem image are downloaded.
151 </para>
152
153 <para>
154 The following list describes the configurations you can define for the ADT Installer.
155 For configuration values and restrictions, see the comments in
156 the <filename>adt-installer.conf</filename> file:
157
158 <itemizedlist>
159 <listitem><para><filename>YOCTOADT_REPO</filename>: This area
160 includes the IPKG-based packages and the root filesystem upon which
161 the installation is based.
162 If you want to set up your own IPKG repository pointed to by
163 <filename>YOCTOADT_REPO</filename>, you need to be sure that the
164 directory structure follows the same layout as the reference directory
165 set up at <ulink url='http://adtrepo.yoctoproject.org'></ulink>.
166 Also, your repository needs to be accessible through HTTP.</para></listitem>
167 <listitem><para><filename>YOCTOADT_TARGETS</filename>: The machine
168 target architectures for which you want to set up cross-development
169 environments.</para></listitem>
170 <listitem><para><filename>YOCTOADT_QEMU</filename>: Indicates whether
171 or not to install the emulator QEMU.</para></listitem>
172 <listitem><para><filename>YOCTOADT_NFS_UTIL</filename>: Indicates whether
173 or not to install user-mode NFS.
174 If you plan to use the Eclipse IDE Yocto plug-in against QEMU,
175 you should install NFS.
176 <note>To boot QEMU images using our userspace NFS server, you need
177 to be running <filename>portmap</filename> or <filename>rpcbind</filename>.
178 If you are running <filename>rpcbind</filename>, you will also need to add the
179 <filename>-i</filename> option when <filename>rpcbind</filename> starts up.
180 Please make sure you understand the security implications of doing this.
181 You might also have to modify your firewall settings to allow
182 NFS booting to work.</note></para></listitem>
183 <listitem><para><filename>YOCTOADT_ROOTFS_&lt;arch&gt;</filename>: The root
184 filesystem images you want to download from the
185 <filename>YOCTOADT_IPKG_REPO</filename> repository.</para></listitem>
186 <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_IMAGE_&lt;arch&gt;</filename>: The
187 particular root filesystem used to extract and create the target sysroot.
188 The value of this variable must have been specified with
189 <filename>YOCTOADT_ROOTFS_&lt;arch&gt;</filename>.
190 For example, if you downloaded both <filename>minimal</filename> and
191 <filename>sato-sdk</filename> images by setting
192 <filename>YOCTOADT_ROOTFS_&lt;arch&gt;</filename>
193 to "minimal sato-sdk", then <filename>YOCTOADT_ROOTFS_&lt;arch&gt;</filename>
194 must be set to either <filename>minimal</filename> or
195 <filename>sato-sdk</filename>.</para></listitem>
196 <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_LOC_&lt;arch&gt;</filename>: The
197 location on the development host where the target sysroot is created.
198 </para></listitem>
199 </itemizedlist>
200 </para>
201
202 <para>
203 After you have configured the <filename>adt_installer.conf</filename> file,
204 run the installer using the following command.
205 Be sure that you are not trying to use cross-compilation tools.
206 When you run the installer, the environment must use a
207 host <filename>gcc</filename>:
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>Get your toolchain installer using one of the
258 following methods:
259 <itemizedlist>
260 <listitem><para>Go to
261 <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>
262 and find the folder that matches your host
263 development system (i.e. <filename>i686</filename>
264 for 32-bit machines or <filename>x86_64</filename>
265 for 64-bit machines).</para>
266 <para>Go into that folder and download the toolchain
267 installer whose name includes the appropriate target
268 architecture.
269 The toolchains provided by the Yocto Project
270 are based off of the
271 <filename>core-image-sato</filename> image and
272 contain libraries appropriate for developing
273 against that image.
274 For example, if your host development system is a
275 64-bit x86 system and you are going to use
276 your cross-toolchain for a 32-bit x86
277 target, go into the <filename>x86_64</filename>
278 folder and download the following installer:
279 <literallayout class='monospaced'>
280 poky-eglibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
281 </literallayout></para></listitem>
282 <listitem><para>Build your own toolchain installer.
283 For cases where you cannot use an installer
284 from the download area, you can build your own as
285 described in the
286 "<link linkend='optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</link>"
287 section.</para></listitem>
288 </itemizedlist></para></listitem>
289 <listitem><para>Once you have the installer, run it to install
290 the toolchain.
291 <note>
292 You must change the permissions on the toolchain
293 installer script so that it is executable.
294 </note></para>
295 <para>The following command shows how to run the installer
296 given a toolchain tarball for a 64-bit x86 development host
297 system and a 32-bit x86 target architecture.
298 The example assumes the toolchain installer is located
299 in <filename>~/Downloads/</filename>.
300 <literallayout class='monospaced'>
301 $ ~/Downloads/poky-eglibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
302 </literallayout>
303 The first thing the installer prompts you for is the
304 directory into which you want to install the toolchain.
305 The default directory used is
306 <filename>opt/poky/&DISTRO;</filename>.
307 If you do not have write permissions for the directory
308 into which you are installing the toolchain, the
309 toolchain installer notifies you and exits.
310 Be sure you have write permissions in the directory and
311 run the installer again.</para>
312 <para>When the script finishes, the cross-toolchain is
313 installed.
314 You will notice environment setup files for the
315 cross-toolchain in the installation directory.
316 </para></listitem>
317 </orderedlist>
318 </para>
319 </section>
320
321 <section id='using-the-toolchain-from-within-the-build-tree'>
322 <title>Using BitBake and the Build Directory</title>
323
324 <para>
325 A final way of making the cross-toolchain available is to use BitBake
326 to generate the toolchain within an existing
327 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
328 This method does not install the toolchain into the default
329 <filename>/opt</filename> directory.
330 As with the previous method, if you need to install the target sysroot, you must
331 do that separately as well.
332 </para>
333
334 <para>
335 Follow these steps to generate the toolchain into the Build Directory:
336 <orderedlist>
337 <listitem><para><emphasis>Set up the Build Environment:</emphasis>
338 Source the OpenEmbedded build environment setup
339 script (i.e.
340 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
341 or
342 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
343 located in the
344 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
345 </para></listitem>
346 <listitem><para><emphasis>Check your Local Configuration File:</emphasis>
347 At this point, you should be sure that the
348 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> variable
349 in the <filename>local.conf</filename> file found in the
350 <filename>conf</filename> directory of the Build Directory
351 is set for the target architecture.
352 Comments within the <filename>local.conf</filename> file
353 list the values you can use for the
354 <filename>MACHINE</filename> variable.
355 <note>
356 You can populate the Build Directory with the
357 cross-toolchains for more than a single architecture.
358 You just need to edit the <filename>MACHINE</filename>
359 variable in the <filename>local.conf</filename> file and
360 re-run the BitBake command.
361 </note></para></listitem>
362 <listitem><para><emphasis>Generate the Cross-Toolchain:</emphasis>
363 Run <filename>bitbake meta-ide-support</filename> to
364 complete the cross-toolchain generation.
365 Once the BitBake command finishes, the cross-toolchain is
366 generated and populated within the Build Directory.
367 You will notice environment setup files for the
368 cross-toolchain that contain the string
369 "<filename>environment-setup</filename>" in the
370 Build Directory's <filename>tmp</filename> folder.</para>
371 <para>Be aware that when you use this method to install the
372 toolchain, you still need to separately extract and install
373 the sysroot filesystem.
374 For information on how to do this, see the
375 "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" section.
376 </para></listitem>
377 </orderedlist>
378 </para>
379 </section>
380</section>
381
382<section id='setting-up-the-cross-development-environment'>
383 <title>Setting Up the Cross-Development Environment</title>
384
385 <para>
386 Before you can develop using the cross-toolchain, you need to set up the
387 cross-development environment by sourcing the toolchain's environment setup script.
388 If you used the ADT Installer or hand-installed cross-toolchain,
389 then you can find this script in the directory you chose for installation.
390 The default installation directory is the <filename>&YOCTO_ADTPATH_DIR;</filename>
391 directory.
392 If you installed the toolchain in the
393 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
394 you can find the environment setup
395 script for the toolchain in the Build Directory's <filename>tmp</filename> directory.
396 </para>
397
398 <para>
399 Be sure to run the environment setup script that matches the
400 architecture for which you are developing.
401 Environment setup scripts begin with the string
402 "<filename>environment-setup</filename>" and include as part of their
403 name the architecture.
404 For example, the toolchain environment setup script for a 64-bit
405 IA-based architecture installed in the default installation directory
406 would be the following:
407 <literallayout class='monospaced'>
408 &YOCTO_ADTPATH_DIR;/environment-setup-x86_64-poky-linux
409 </literallayout>
410 </para>
411</section>
412
413<section id='securing-kernel-and-filesystem-images'>
414 <title>Securing Kernel and Filesystem Images</title>
415
416 <para>
417 You will need to have a kernel and filesystem image to boot using your
418 hardware or the QEMU emulator.
419 Furthermore, if you plan on booting your image using NFS or you want to use the root filesystem
420 as the target sysroot, you need to extract the root filesystem.
421 </para>
422
423 <section id='getting-the-images'>
424 <title>Getting the Images</title>
425
426 <para>
427 To get the kernel and filesystem images, you either have to build them or download
428 pre-built versions.
429 You can find examples for both these situations in the
430 "<ulink url='&YOCTO_DOCS_QS_URL;#test-run'>A Quick Test Run</ulink>" section of
431 the Yocto Project Quick Start.
432 </para>
433
434 <para>
435 The Yocto Project ships basic kernel and filesystem images for several
436 architectures (<filename>x86</filename>, <filename>x86-64</filename>,
437 <filename>mips</filename>, <filename>powerpc</filename>, and <filename>arm</filename>)
438 that you can use unaltered in the QEMU emulator.
439 These kernel images reside in the release
440 area - <ulink url='&YOCTO_MACHINES_DL_URL;'></ulink>
441 and are ideal for experimentation using Yocto Project.
442 For information on the image types you can build using the OpenEmbedded build system,
443 see the
444 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in
445 the Yocto Project Reference Manual.
446 </para>
447
448 <para>
449 If you are planning on developing against your image and you are not
450 building or using one of the Yocto Project development images
451 (e.g. <filename>core-image-*-dev</filename>), you must be sure to
452 include the development packages as part of your image recipe.
453 </para>
454
455 <para>
456 Furthermore, if you plan on remotely deploying and debugging your
457 application from within the
458 Eclipse IDE, you must have an image that contains the Yocto Target Communication
459 Framework (TCF) agent (<filename>tcf-agent</filename>).
460 By default, the Yocto Project provides only one type of pre-built
461 image that contains the <filename>tcf-agent</filename>.
462 And, those images are SDK (e.g.<filename>core-image-sato-sdk</filename>).
463 </para>
464
465 <para>
466 If you want to use a different image type that contains the <filename>tcf-agent</filename>,
467 you can do so one of two ways:
468 <itemizedlist>
469 <listitem><para>Modify the <filename>conf/local.conf</filename> configuration in
470 the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
471 and then rebuild the image.
472 With this method, you need to modify the
473 <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink>
474 variable to have the value of "tools-debug" before rebuilding the image.
475 Once the image is rebuilt, the <filename>tcf-agent</filename> will be included
476 in the image and is launched automatically after the boot.</para></listitem>
477 <listitem><para>Manually build the <filename>tcf-agent</filename>.
478 To build the agent, follow these steps:
479 <orderedlist>
480 <listitem><para>Be sure the ADT is installed as described in the
481 "<link linkend='installing-the-adt'>Installing the ADT and Toolchains</link>" section.
482 </para></listitem>
483 <listitem><para>Set up the cross-development environment as described in the
484 "<link linkend='setting-up-the-cross-development-environment'>Setting
485 Up the Cross-Development Environment</link>" section.</para></listitem>
486 <listitem><para>Get the <filename>tcf-agent</filename> source code using
487 the following commands:
488 <literallayout class='monospaced'>
489 $ git clone http://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent.git
490 $ cd org.eclipse.tcf.agent/agent
491 </literallayout></para></listitem>
492 <listitem><para>Locate the
493 <filename>Makefile.inc</filename> file inside the
494 <filename>agent</filename> folder and modify it
495 for the cross-compilation environment by setting the
496 <filename>OPSYS</filename> and
497 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
498 variables according to your target.
499 </para></listitem>
500 <listitem><para>Use the cross-development tools to build the
501 <filename>tcf-agent</filename>.
502 Before you "Make" the file, be sure your cross-tools are set up first.
503 See the "<link linkend='makefile-based-projects'>Makefile-Based Projects</link>"
504 section for information on how to make sure the cross-tools are set up
505 correctly.</para>
506 <para>If the build is successful, the <filename>tcf-agent</filename> output will
507 be <filename>obj/$(OPSYS)/$(MACHINE)/Debug/agent</filename>.</para></listitem>
508 <listitem><para>Deploy the agent into the image's root filesystem.</para></listitem>
509 </orderedlist>
510 </para></listitem>
511 </itemizedlist>
512 </para>
513 </section>
514
515 <section id='extracting-the-root-filesystem'>
516 <title>Extracting the Root Filesystem</title>
517
518 <para>
519 If you install your toolchain by hand or build it using BitBake and
520 you need a root filesystem, you need to extract it separately.
521 If you use the ADT Installer to install the ADT, the root
522 filesystem is automatically extracted and installed.
523 </para>
524
525 <para>
526 Here are some cases where you need to extract the root filesystem:
527 <itemizedlist>
528 <listitem><para>You want to boot the image using NFS.
529 </para></listitem>
530 <listitem><para>You want to use the root filesystem as the
531 target sysroot.
532 For example, the Eclipse IDE environment with the Eclipse
533 Yocto Plug-in installed allows you to use QEMU to boot
534 under NFS.</para></listitem>
535 <listitem><para>You want to develop your target application
536 using the root filesystem as the target sysroot.
537 </para></listitem>
538 </itemizedlist>
539 </para>
540
541 <para>
542 To extract the root filesystem, first <filename>source</filename>
543 the cross-development environment setup script.
544 If you built the toolchain in the Build Directory, you will find
545 the toolchain environment script in the
546 <filename>tmp</filename> directory.
547 If you installed the toolchain by hand, the environment setup
548 script is located in <filename>opt/poky/&DISTRO;</filename>.
549 </para>
550
551 <para>
552 After sourcing the environment script, use the
553 <filename>runqemu-extract-sdk</filename> command and provide the
554 filesystem image.
555 </para>
556
557 <para>
558 Following is an example.
559 The second command sets up the environment.
560 In this case, the setup script is located in the
561 <filename>/opt/poky/&DISTRO;</filename> directory.
562 The third command extracts the root filesystem from a previously
563 built filesystem that is located in the
564 <filename>~/Downloads</filename> directory.
565 Furthermore, this command extracts the root filesystem into the
566 <filename>$HOME/qemux86-sato</filename> directory:
567 <literallayout class='monospaced'>
568 $ cd ~
569 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
570 $ runqemu-extract-sdk \
571 ~Downloads/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 \
572 $HOME/qemux86-sato
573 </literallayout>
574 You could now point to the target sysroot at
575 <filename>$HOME/qemux86-sato</filename>.
576 </para>
577 </section>
578</section>
579
580<section id='optionally-building-a-toolchain-installer'>
581 <title>Optionally Building a Toolchain Installer</title>
582
583 <para>
584 As an alternative to locating and downloading a toolchain installer,
585 you can build the toolchain installer one of two ways if you have a
586 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
587 <itemizedlist>
588 <listitem><para>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.</para></listitem>
594 <listitem><para>Use
595 <filename>bitbake image -c populate_sdk</filename>.
596 This method has significant advantages over the previous method
597 because it results in a toolchain installer that contains the
598 sysroot that matches your target root filesystem.
599 </para></listitem>
600 </itemizedlist>
601 </para>
602
603 <para>
604 Remember, before using any BitBake command, you
605 must source the build environment setup script
606 (i.e.
607 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
608 or
609 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
610 located in the Source Directory and you must make sure your
611 <filename>conf/local.conf</filename> variables are correct.
612 In particular, you need to be sure the
613 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
614 variable matches the architecture for which you are building and that
615 the
616 <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKMACHINE'><filename>SDKMACHINE</filename></ulink>
617 variable is correctly set if you are building a toolchain designed to
618 run on an architecture that differs from your current development host
619 machine (i.e. the build machine).
620 </para>
621
622 <para>
623 When the BitBake command completes, the toolchain installer will be in
624 <filename>tmp/deploy/sdk</filename> in the Build Directory.
625 <note>
626 By default, this toolchain does not build static binaries.
627 If you want to use the toolchain to build these types of libraries,
628 you need to be sure your image has the appropriate static
629 development libraries.
630 Use the
631 <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></ulink>
632 variable inside your <filename>local.conf</filename> file to
633 install the appropriate library packages.
634 Following is an example using <filename>eglibc</filename> static
635 development libraries:
636 <literallayout class='monospaced'>
637 IMAGE_INSTALL_append = " eglibc-staticdev"
638 </literallayout>
639 </note>
640 </para>
641</section>
642
643</chapter>
644<!--
645vim: expandtab tw=80 ts=4
646-->
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