summaryrefslogtreecommitdiffstats
path: root/documentation/adt-manual
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
commit972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch)
tree97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /documentation/adt-manual
downloadpoky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
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.xsl19
-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.xml135
-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.css984
-rw-r--r--documentation/adt-manual/figures/adt-title.pngbin0 -> 13498 bytes
10 files changed, 2373 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..164b1efbff
--- /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=<replaceable>sysroot-dir</replaceable>
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=</filename><replaceable>sysroot-dir</replaceable> 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 <replaceable>dir_containing_your_project-specific_m4_macros</replaceable>]
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..f08087d93f
--- /dev/null
+++ b/documentation/adt-manual/adt-manual-customization.xsl
@@ -0,0 +1,19 @@
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/1.76.1/xhtml/docbook.xsl" />
5
6 <xsl:include href="../template/permalinks.xsl"/>
7 <xsl:include href="../template/section.title.xsl"/>
8 <xsl:include href="../template/component.title.xsl"/>
9 <xsl:include href="../template/division.title.xsl"/>
10 <xsl:include href="../template/formal.object.heading.xsl"/>
11
12 <xsl:param name="html.stylesheet" select="'adt-style.css'" />
13 <xsl:param name="chapter.autolabel" select="1" />
14 <xsl:param name="appendix.autolabel" select="A" />
15 <xsl:param name="section.autolabel" select="1" />
16 <xsl:param name="section.label.includes.component.label" select="1" />
17 <xsl:param name="generate.id.attributes" select="1" />
18
19</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..57ca64ed17
--- /dev/null
+++ b/documentation/adt-manual/adt-manual.xml
@@ -0,0 +1,135 @@
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 <revision>
80 <revnumber>1.7</revnumber>
81 <date>October 2014</date>
82 <revremark>Released with the Yocto Project 1.7 Release.</revremark>
83 </revision>
84 <revision>
85 <revnumber>1.7.1</revnumber>
86 <date>January 2015</date>
87 <revremark>Released with the Yocto Project 1.7.1 Release.</revremark>
88 </revision>
89 <revision>
90 <revnumber>1.7.2</revnumber>
91 <date>June 2015</date>
92 <revremark>Released with the Yocto Project 1.7.2 Release.</revremark>
93 </revision>
94 </revhistory>
95
96 <copyright>
97 <year>&COPYRIGHT_YEAR;</year>
98 <holder>Linux Foundation</holder>
99 </copyright>
100
101 <legalnotice>
102 <para>
103 Permission is granted to copy, distribute and/or modify this document under
104 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.
105 </para>
106 <note>
107 For the latest version of this manual associated with this
108 Yocto Project release, see the
109 <ulink url='&YOCTO_DOCS_ADT_URL;'>Yocto Project Application Developer's Guide</ulink>
110 from the Yocto Project website.
111 </note>
112
113 </legalnotice>
114
115 </bookinfo>
116
117 <xi:include href="adt-manual-intro.xml"/>
118
119 <xi:include href="adt-intro.xml"/>
120
121 <xi:include href="adt-prepare.xml"/>
122
123 <xi:include href="adt-package.xml"/>
124
125 <xi:include href="adt-command.xml"/>
126
127<!-- <index id='index'>
128 <title>Index</title>
129 </index>
130-->
131
132</book>
133<!--
134vim: expandtab tw=80 ts=4
135-->
diff --git a/documentation/adt-manual/adt-package.xml b/documentation/adt-manual/adt-package.xml
new file mode 100644
index 0000000000..5c3196ea91
--- /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 <replaceable>sysroot_dir</replaceable>.
84 Finally, have an OPKG configuration file <replaceable>conf_file</replaceable>
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 <replaceable>conf_file</replaceable> -o <replaceable>sysroot_dir</replaceable> update
89 $ opkg-cl –f <replaceable>cconf_file</replaceable> -o <replaceable>sysroot_dir</replaceable> \
90 --force-overwrite install libglade
91 $ opkg-cl –f <replaceable>cconf_file</replaceable> -o <replaceable>sysroot_dir</replaceable> \
92 --force-overwrite install libglade-dbg
93 $ opkg-cl –f <replaceable>conf_file&gt; -o </replaceable>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..3810568730
--- /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_</filename><replaceable>arch</replaceable>: 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_</filename><replaceable>arch</replaceable>: 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_</filename><replaceable>arch</replaceable>.
193 For example, if you downloaded both <filename>minimal</filename> and
194 <filename>sato-sdk</filename> images by setting
195 <filename>YOCTOADT_ROOTFS_</filename><replaceable>arch</replaceable>
196 to "minimal sato-sdk", then <filename>YOCTOADT_ROOTFS_</filename><replaceable>arch</replaceable>
197 must be set to either "minimal" or "sato-sdk".
198 </para></listitem>
199 <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_LOC_</filename><replaceable>arch</replaceable>: 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/</filename><replaceable>release</replaceable>.
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_</filename><replaceable>arch</replaceable>
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-glibc-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-glibc-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</filename> <replaceable>image</replaceable> <filename>-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>glibc</filename> static
660 development libraries:
661 <literallayout class='monospaced'>
662 IMAGE_INSTALL_append = " glibc-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..d722ad4b7f
--- /dev/null
+++ b/documentation/adt-manual/adt-style.css
@@ -0,0 +1,984 @@
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/* This style defines how the permalink character
317 appears by itself and when hovered over with
318 the mouse. */
319
320[alt='Permalink'] { color: #eee; }
321[alt='Permalink']:hover { color: black; }
322
323
324div.informalfigure,
325div.informalexample,
326div.informaltable,
327div.figure,
328div.table,
329div.example {
330 margin: 1em 0em;
331 padding: 1em;
332 page-break-inside: avoid;
333}
334
335
336div.informalfigure p.title b,
337div.informalexample p.title b,
338div.informaltable p.title b,
339div.figure p.title b,
340div.example p.title b,
341div.table p.title b{
342 padding-top: 0em;
343 margin-top: 0em;
344 font-size: 100%;
345 font-weight: normal;
346}
347
348.mediaobject .caption,
349.mediaobject .caption p {
350 text-align: center;
351 font-size: 80%;
352 padding-top: 0.5em;
353 padding-bottom: 0.5em;
354}
355
356.epigraph {
357 padding-left: 55%;
358 margin-bottom: 1em;
359}
360
361.epigraph p {
362 text-align: left;
363}
364
365.epigraph .quote {
366 font-style: italic;
367}
368.epigraph .attribution {
369 font-style: normal;
370 text-align: right;
371}
372
373span.application {
374 font-style: italic;
375}
376
377.programlisting {
378 font-family: monospace;
379 font-size: 80%;
380 white-space: pre;
381 margin: 1.33em 0em;
382 padding: 1.33em;
383}
384
385.tip,
386.warning,
387.caution,
388.note {
389 margin-top: 1em;
390 margin-bottom: 1em;
391
392}
393
394/* force full width of table within div */
395.tip table,
396.warning table,
397.caution table,
398.note table {
399 border: none;
400 width: 100%;
401}
402
403
404.tip table th,
405.warning table th,
406.caution table th,
407.note table th {
408 padding: 0.8em 0.0em 0.0em 0.0em;
409 margin : 0em 0em 0em 0em;
410}
411
412.tip p,
413.warning p,
414.caution p,
415.note p {
416 margin-top: 0.5em;
417 margin-bottom: 0.5em;
418 padding-right: 1em;
419 text-align: left;
420}
421
422.acronym {
423 text-transform: uppercase;
424}
425
426b.keycap,
427.keycap {
428 padding: 0.09em 0.3em;
429 margin: 0em;
430}
431
432.itemizedlist li {
433 clear: none;
434}
435
436.filename {
437 font-size: medium;
438 font-family: Courier, monospace;
439}
440
441
442div.navheader, div.heading{
443 position: absolute;
444 left: 0em;
445 top: 0em;
446 width: 100%;
447 background-color: #cdf;
448 width: 100%;
449}
450
451div.navfooter, div.footing{
452 position: fixed;
453 left: 0em;
454 bottom: 0em;
455 background-color: #eee;
456 width: 100%;
457}
458
459
460div.navheader td,
461div.navfooter td {
462 font-size: 66%;
463}
464
465div.navheader table th {
466 /*font-family: Georgia, Times, serif;*/
467 /*font-size: x-large;*/
468 font-size: 80%;
469}
470
471div.navheader table {
472 border-left: 0em;
473 border-right: 0em;
474 border-top: 0em;
475 width: 100%;
476}
477
478div.navfooter table {
479 border-left: 0em;
480 border-right: 0em;
481 border-bottom: 0em;
482 width: 100%;
483}
484
485div.navheader table td a,
486div.navfooter table td a {
487 color: #777;
488 text-decoration: none;
489}
490
491/* normal text in the footer */
492div.navfooter table td {
493 color: black;
494}
495
496div.navheader table td a:visited,
497div.navfooter table td a:visited {
498 color: #444;
499}
500
501
502/* links in header and footer */
503div.navheader table td a:hover,
504div.navfooter table td a:hover {
505 text-decoration: underline;
506 background-color: transparent;
507 color: #33a;
508}
509
510div.navheader hr,
511div.navfooter hr {
512 display: none;
513}
514
515
516.qandaset tr.question td p {
517 margin: 0em 0em 1em 0em;
518 padding: 0em 0em 0em 0em;
519}
520
521.qandaset tr.answer td p {
522 margin: 0em 0em 1em 0em;
523 padding: 0em 0em 0em 0em;
524}
525.answer td {
526 padding-bottom: 1.5em;
527}
528
529.emphasis {
530 font-weight: bold;
531}
532
533
534 /************* /
535 / decorations /
536/ *************/
537
538.titlepage {
539}
540
541.part .title {
542}
543
544.subtitle {
545 border: none;
546}
547
548/*
549h1 {
550 border: none;
551}
552
553h2 {
554 border-top: solid 0.2em;
555 border-bottom: solid 0.06em;
556}
557
558h3 {
559 border-top: 0em;
560 border-bottom: solid 0.06em;
561}
562
563h4 {
564 border: 0em;
565 border-bottom: solid 0.06em;
566}
567
568h5 {
569 border: 0em;
570}
571*/
572
573.programlisting {
574 border: solid 1px;
575}
576
577div.figure,
578div.table,
579div.informalfigure,
580div.informaltable,
581div.informalexample,
582div.example {
583 border: 1px solid;
584}
585
586
587
588.tip,
589.warning,
590.caution,
591.note {
592 border: 1px solid;
593}
594
595.tip table th,
596.warning table th,
597.caution table th,
598.note table th {
599 border-bottom: 1px solid;
600}
601
602.question td {
603 border-top: 1px solid black;
604}
605
606.answer {
607}
608
609
610b.keycap,
611.keycap {
612 border: 1px solid;
613}
614
615
616div.navheader, div.heading{
617 border-bottom: 1px solid;
618}
619
620
621div.navfooter, div.footing{
622 border-top: 1px solid;
623}
624
625 /********* /
626 / colors /
627/ *********/
628
629body {
630 color: #333;
631 background: white;
632}
633
634a {
635 background: transparent;
636}
637
638a:hover {
639 background-color: #dedede;
640}
641
642
643h1,
644h2,
645h3,
646h4,
647h5,
648h6,
649h7,
650h8 {
651 background-color: transparent;
652}
653
654hr {
655 border-color: #aaa;
656}
657
658
659.tip, .warning, .caution, .note {
660 border-color: #fff;
661}
662
663
664.tip table th,
665.warning table th,
666.caution table th,
667.note table th {
668 border-bottom-color: #fff;
669}
670
671
672.warning {
673 background-color: #f0f0f2;
674}
675
676.caution {
677 background-color: #f0f0f2;
678}
679
680.tip {
681 background-color: #f0f0f2;
682}
683
684.note {
685 background-color: #f0f0f2;
686}
687
688.glossary dl dt,
689.variablelist dl dt,
690.variablelist dl dt span.term {
691 color: #044;
692}
693
694div.figure,
695div.table,
696div.example,
697div.informalfigure,
698div.informaltable,
699div.informalexample {
700 border-color: #aaa;
701}
702
703pre.programlisting {
704 color: black;
705 background-color: #fff;
706 border-color: #aaa;
707 border-width: 2px;
708}
709
710.guimenu,
711.guilabel,
712.guimenuitem {
713 background-color: #eee;
714}
715
716
717b.keycap,
718.keycap {
719 background-color: #eee;
720 border-color: #999;
721}
722
723
724div.navheader {
725 border-color: black;
726}
727
728
729div.navfooter {
730 border-color: black;
731}
732
733
734 /*********** /
735 / graphics /
736/ ***********/
737
738/*
739body {
740 background-image: url("images/body_bg.jpg");
741 background-attachment: fixed;
742}
743
744.navheader,
745.note,
746.tip {
747 background-image: url("images/note_bg.jpg");
748 background-attachment: fixed;
749}
750
751.warning,
752.caution {
753 background-image: url("images/warning_bg.jpg");
754 background-attachment: fixed;
755}
756
757.figure,
758.informalfigure,
759.example,
760.informalexample,
761.table,
762.informaltable {
763 background-image: url("images/figure_bg.jpg");
764 background-attachment: fixed;
765}
766
767*/
768h1,
769h2,
770h3,
771h4,
772h5,
773h6,
774h7{
775}
776
777/*
778Example of how to stick an image as part of the title.
779
780div.article .titlepage .title
781{
782 background-image: url("figures/white-on-black.png");
783 background-position: center;
784 background-repeat: repeat-x;
785}
786*/
787
788div.preface .titlepage .title,
789div.colophon .title,
790div.chapter .titlepage .title,
791div.article .titlepage .title
792{
793}
794
795div.section div.section .titlepage .title,
796div.sect2 .titlepage .title {
797 background: none;
798}
799
800
801h1.title {
802 background-color: transparent;
803 background-repeat: no-repeat;
804 height: 256px;
805 text-indent: -9000px;
806 overflow:hidden;
807}
808
809h2.subtitle {
810 background-color: transparent;
811 text-indent: -9000px;
812 overflow:hidden;
813 width: 0px;
814 display: none;
815}
816
817 /*************************************** /
818 / pippin.gimp.org specific alterations /
819/ ***************************************/
820
821/*
822div.heading, div.navheader {
823 color: #777;
824 font-size: 80%;
825 padding: 0;
826 margin: 0;
827 text-align: left;
828 position: absolute;
829 top: 0px;
830 left: 0px;
831 width: 100%;
832 height: 50px;
833 background: url('/gfx/heading_bg.png') transparent;
834 background-repeat: repeat-x;
835 background-attachment: fixed;
836 border: none;
837}
838
839div.heading a {
840 color: #444;
841}
842
843div.footing, div.navfooter {
844 border: none;
845 color: #ddd;
846 font-size: 80%;
847 text-align:right;
848
849 width: 100%;
850 padding-top: 10px;
851 position: absolute;
852 bottom: 0px;
853 left: 0px;
854
855 background: url('/gfx/footing_bg.png') transparent;
856}
857*/
858
859
860
861 /****************** /
862 / nasty ie tweaks /
863/ ******************/
864
865/*
866div.heading, div.navheader {
867 width:expression(document.body.clientWidth + "px");
868}
869
870div.footing, div.navfooter {
871 width:expression(document.body.clientWidth + "px");
872 margin-left:expression("-5em");
873}
874body {
875 padding:expression("4em 5em 0em 5em");
876}
877*/
878
879 /**************************************** /
880 / mozilla vendor specific css extensions /
881/ ****************************************/
882/*
883div.navfooter, div.footing{
884 -moz-opacity: 0.8em;
885}
886
887div.figure,
888div.table,
889div.informalfigure,
890div.informaltable,
891div.informalexample,
892div.example,
893.tip,
894.warning,
895.caution,
896.note {
897 -moz-border-radius: 0.5em;
898}
899
900b.keycap,
901.keycap {
902 -moz-border-radius: 0.3em;
903}
904*/
905
906table tr td table tr td {
907 display: none;
908}
909
910
911hr {
912 display: none;
913}
914
915table {
916 border: 0em;
917}
918
919 .photo {
920 float: right;
921 margin-left: 1.5em;
922 margin-bottom: 1.5em;
923 margin-top: 0em;
924 max-width: 17em;
925 border: 1px solid gray;
926 padding: 3px;
927 background: white;
928}
929 .seperator {
930 padding-top: 2em;
931 clear: both;
932 }
933
934 #validators {
935 margin-top: 5em;
936 text-align: right;
937 color: #777;
938 }
939 @media print {
940 body {
941 font-size: 8pt;
942 }
943 .noprint {
944 display: none;
945 }
946 }
947
948
949.tip,
950.note {
951 background: #f0f0f2;
952 color: #333;
953 padding: 20px;
954 margin: 20px;
955}
956
957.tip h3,
958.note h3 {
959 padding: 0em;
960 margin: 0em;
961 font-size: 2em;
962 font-weight: bold;
963 color: #333;
964}
965
966.tip a,
967.note a {
968 color: #333;
969 text-decoration: underline;
970}
971
972.footnote {
973 font-size: small;
974 color: #333;
975}
976
977/* Changes the announcement text */
978.tip h3,
979.warning h3,
980.caution h3,
981.note h3 {
982 font-size:large;
983 color: #00557D;
984}
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