summaryrefslogtreecommitdiffstats
path: root/documentation/poky-ref-manual
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/poky-ref-manual')
-rw-r--r--documentation/poky-ref-manual/ref-classes.xml376
1 files changed, 191 insertions, 185 deletions
diff --git a/documentation/poky-ref-manual/ref-classes.xml b/documentation/poky-ref-manual/ref-classes.xml
index 8eb94c268b..d054df1204 100644
--- a/documentation/poky-ref-manual/ref-classes.xml
+++ b/documentation/poky-ref-manual/ref-classes.xml
@@ -6,21 +6,21 @@
6 6
7<para> 7<para>
8 Class files are used to abstract common functionality and share it amongst multiple 8 Class files are used to abstract common functionality and share it amongst multiple
9 <filename>.bb</filename> files. Any metadata usually found in a 9 <filename>.bb</filename> files.
10 <filename>.bb</filename> file can also be placed in a class 10 Any metadata usually found in a <filename>.bb</filename> file can also be placed in a class
11 file. Class files are identified by the extension 11 file.
12 <filename>.bbclass</filename> and are usually placed 12 Class files are identified by the extension <filename>.bbclass</filename> and are usually placed
13 in a <filename>classes/</filename> directory beneath the 13 in a <filename>classes/</filename> directory beneath the
14 <filename>meta*/</filename> directory or the directory pointed 14 <filename>meta*/</filename> directory found in the Yocto Project file's area
15 by BUILDDIR (e.g. <filename>build/</filename>)in the same way as 15 Class files can also be pointed to by BUILDDIR (e.g. <filename>build/</filename>)in the same way as
16 <filename>.conf</filename> files in the <filename 16 <filename>.conf</filename> files in the <filename>conf</filename> directory.
17 class="directory">conf</filename> directory. Class files are searched for 17 Class files are searched for in <filename>BBPATH</filename>
18 in BBPATH in the same was as <filename>.conf</filename> files too. 18 using the same method by which <filename>.conf</filename> files are searched.
19</para> 19</para>
20 20
21<para> 21<para>
22 In most cases inheriting the class is enough to enable its features, although 22 In most cases inheriting the class is enough to enable its features, although
23 for some classes you may need to set variables and/or override some of the 23 for some classes you might need to set variables or override some of the
24 default behaviour. 24 default behaviour.
25</para> 25</para>
26 26
@@ -29,13 +29,14 @@
29 29
30 <para> 30 <para>
31 The base class is special in that every <filename>.bb</filename> 31 The base class is special in that every <filename>.bb</filename>
32 file inherits it automatically. It contains definitions of standard basic 32 file inherits it automatically.
33 This class contains definitions for standard basic
33 tasks such as fetching, unpacking, configuring (empty by default), compiling 34 tasks such as fetching, unpacking, configuring (empty by default), compiling
34 (runs any Makefile present), installing (empty by default) and packaging 35 (runs any <filename>Makefile</filename> present), installing (empty by default) and packaging
35 (empty by default). These are often overridden or extended by other classes 36 (empty by default).
36 such as <filename>autotools.bbclass</filename> or 37 These classes are often overridden or extended by other classes
37 <filename>package.bbclass</filename>. The class also contains some commonly 38 such as <filename>autotools.bbclass</filename> or <filename>package.bbclass</filename>.
38 used functions such as <filename>oe_runmake</filename>. 39 The class also contains some commonly used functions such as <filename>oe_runmake</filename>.
39 </para> 40 </para>
40</section> 41</section>
41 42
@@ -43,84 +44,71 @@
43 <title>Autotooled Packages - <filename>autotools.bbclass</filename></title> 44 <title>Autotooled Packages - <filename>autotools.bbclass</filename></title>
44 45
45 <para> 46 <para>
46 Autotools (autoconf, automake, libtool) bring standardization. 47 Autotools (<filename>autoconf</filename>, <filename>automake</filename>,
48 and <filename>libtool</filename>) bring standardization.
47 This class defines a set of tasks (configure, compile etc.) that 49 This class defines a set of tasks (configure, compile etc.) that
48 work for all autotooled packages. 50 work for all Autotooled packages.
49 It should usually be enough to define a few standard variables as documented in the 51 It should usually be enough to define a few standard variables as documented in the
50 <link linkend='usingpoky-extend-addpkg-autotools'>simple autotools 52 <link linkend='usingpoky-extend-addpkg-autotools'>Autotooled Package</link> section
51 example</link> section and then simply "inherit autotools". 53 and then simply <filename>inherit autotools</filename>.
52 This class can also work with software that emulates autotools. 54 This class can also work with software that emulates Autotools.
53 </para> 55 </para>
54 56
55 <para> 57 <para>
56 It's useful to have some idea of how the tasks defined by this class work 58 It's useful to have some idea of how the tasks defined by this class work
57 and what they do behind the scenes. 59 and what they do behind the scenes.
60 <itemizedlist>
61 <listitem><para><filename>do_configure</filename> &dash; regenerates the
62 configure script (using <filename>autoreconf</filename>) and then launches it
63 with a standard set of arguments used during cross-compilation.
64 You can pass additional parameters to <filename>configure</filename> through the
65 <filename><link linkend='var-EXTRA_OECONF'>EXTRA_OECONF</link></filename> variable.
66 </para></listitem>
67 <listitem><para><filename>do_compile</filename> &dash; runs <filename>make</filename> with
68 arguments that specify the compiler and linker.
69 You can pass additional arguments through
70 the <filename><link linkend='var-EXTRA_OEMAKE'>EXTRA_OEMAKE</link></filename> variable.
71 </para></listitem>
72 <listitem><para><filename>do_install</filename> &dash; runs <filename>make install</filename>
73 and passes a DESTDIR option, which takes its value from the standard
74 <filename><link linkend='var-DESTDIR'>DESTDIR</link></filename> variable.
75 </para></listitem>
76 </itemizedlist>
58 </para> 77 </para>
59
60 <itemizedlist>
61 <listitem>
62 <para>
63 <filename>do_configure</filename> &dash; regenerates the configure script (using autoreconf)
64 and then launches it with a standard set of arguments used during
65 cross-compilation.
66 You can pass additional parameters to
67 <filename>configure</filename> through the
68 <glossterm><link linkend='var-EXTRA_OECONF'>EXTRA_OECONF</link></glossterm> variable.
69 </para>
70 </listitem>
71 <listitem>
72 <para>
73 <filename>do_compile</filename> &dash; runs <filename>make</filename> with
74 arguments that specify the compiler and linker.
75 You can pass additional arguments through
76 the <glossterm><link linkend='var-EXTRA_OEMAKE'>EXTRA_OEMAKE</link>
77 </glossterm> variable.
78 </para>
79 </listitem>
80 <listitem>
81 <para>
82 <filename>do_install</filename> &dash; runs <filename>make install</filename>
83 and passes a <filename>DESTDIR</filename>
84 option, which takes its value from the standard
85 <glossterm><link linkend='var-DESTDIR'>DESTDIR</link></glossterm> variable.
86 </para>
87 </listitem>
88 </itemizedlist>
89
90</section> 78</section>
91 79
92<section id='ref-classes-update-alternatives'> 80<section id='ref-classes-update-alternatives'>
93 <title>Alternatives - <filename>update-alternatives.bbclass</filename></title> 81 <title>Alternatives - <filename>update-alternatives.bbclass</filename></title>
94 82
95 <para> 83 <para>
96 Several programs can fulfill the same or similar function and 84 Several programs can fulfill the same or similar function and be installed with the same name.
97 be installed with the same name. 85 For example, the <filename>ar</filename> command is available from the
98 For example, the <filename>ar</filename> 86 <filename>busybox</filename>, <filename>binutils</filename> and
99 command is available from the "busybox", "binutils" and "elfutils" packages. 87 <filename>elfutils</filename> packages.
100 The <filename>update-alternatives.bbclass</filename> class handles renaming the 88 The <filename>update-alternatives.bbclass</filename> class handles renaming the
101 binaries so that multiple packages can be installed without conflicts. 89 binaries so that multiple packages can be installed without conflicts.
102 The <filename>ar</filename> command still works regardless of which packages are installed 90 The <filename>ar</filename> command still works regardless of which packages are installed
103 or subsequently removed. 91 or subsequently removed.
104 The class renames the conflicting binary in each package 92 The class renames the conflicting binary in each package and symlinks the highest
105 and symlinks the highest priority binary during installation or removal 93 priority binary during installation or removal of packages.
106 of packages.
107 </para> 94 </para>
108 <para> 95 <para>
109 Four variables control this class: 96 Four variables control this class:
97 <itemizedlist>
98 <listitem><para><filename>ALTERNATIVE_NAME</filename> &dash; The name of the
99 binary that is replaced (<filename>ar</filename> in this example).</para></listitem>
100 <listitem><para><filename>ALTERNATIVE_LINK</filename> &dash; The path to
101 the resulting binary (<filename>/bin/ar</filename> in this example).</para></listitem>
102 <listitem><para><filename>ALTERNATIVE_PATH</filename> &dash; The path to the
103 real binary (<filename>/usr/bin/ar.binutils</filename> in this example).</para></listitem>
104 <listitem><para><filename>ALTERNATIVE_PRIORITY</filename> &dash; The priority of
105 the binary.
106 The version with the most features should have the highest priority.</para></listitem>
107 </itemizedlist>
110 </para> 108 </para>
111 <itemizedlist> 109
112 <listitem><para><filename>ALTERNATIVE_NAME</filename> &dash; The name of the
113 binary that is replaced (<filename>ar</filename> in this example).</para></listitem>
114 <listitem><para><filename>ALTERNATIVE_LINK</filename> &dash; The path to
115 the resulting binary (<filename>/bin/ar</filename> in this example).</para></listitem>
116 <listitem><para><filename>ALTERNATIVE_PATH</filename> &dash; The path to the
117 real binary (<filename>/usr/bin/ar.binutils</filename> in this example).</para></listitem>
118 <listitem><para><filename>ALTERNATIVE_PRIORITY</filename> &dash; The priority of
119 the binary.
120 The version with the most features should have the highest priority.</para></listitem>
121 </itemizedlist>
122 <para> 110 <para>
123 Currently, only one binary per package is supported. 111 Currently, the Yocto Project supports only one binary per package.
124 </para> 112 </para>
125</section> 113</section>
126 114
@@ -128,14 +116,15 @@
128 <title>Initscripts - <filename>update-rc.d.bbclass</filename></title> 116 <title>Initscripts - <filename>update-rc.d.bbclass</filename></title>
129 117
130 <para> 118 <para>
131 This class uses update-rc.d to safely install an initscript on behalf of 119 This class uses <filename>update-rc.d</filename> to safely install an
132 the package. Details such as making sure the initscript is stopped before 120 initialization script on behalf of the package.
133 a package is removed and started when the package is installed are taken 121 The Yocto Project takes care of details such as making sure the script is stopped before
134 care of. Three variables control this class, 122 a package is removed and started when the package is installed.
135 <link linkend='var-INITSCRIPT_PACKAGES'>INITSCRIPT_PACKAGES</link>, 123 Three variables control this class:
136 <link linkend='var-INITSCRIPT_NAME'>INITSCRIPT_NAME</link> and 124 <filename><link linkend='var-INITSCRIPT_PACKAGES'>INITSCRIPT_PACKAGES</link></filename>,
137 <link linkend='var-INITSCRIPT_PARAMS'>INITSCRIPT_PARAMS</link>. See the 125 <filename><link linkend='var-INITSCRIPT_NAME'>INITSCRIPT_NAME</link></filename> and
138 links for details. 126 <filename><link linkend='var-INITSCRIPT_PARAMS'>INITSCRIPT_PARAMS</link></filename>.
127 See the variable links for details.
139 </para> 128 </para>
140</section> 129</section>
141 130
@@ -143,17 +132,17 @@
143 <title>Binary config scripts - <filename>binconfig.bbclass</filename></title> 132 <title>Binary config scripts - <filename>binconfig.bbclass</filename></title>
144 133
145 <para> 134 <para>
146 Before pkg-config had become widespread, libraries shipped shell 135 Before <filename>pkg-config</filename> had become widespread, libraries shipped shell
147 scripts to give information about the libraries and include paths needed 136 scripts to give information about the libraries and include paths needed
148 to build software (usually named 'LIBNAME-config'). This class assists 137 to build software (usually named <filename>LIBNAME-config</filename>).
149 any recipe using such scripts. 138 This class assists any recipe using such scripts.
150 </para> 139 </para>
151 140
152 <para> 141 <para>
153 During staging Bitbake installs such scripts into the <filename 142 During staging, Bitbake installs such scripts into the
154 class="directory">sysroots/</filename> directory. It also changes all 143 <filename>sysroots/</filename> directory.
155 paths to point into the <filename>sysroots/</filename> 144 BitBake also changes all paths to point into the <filename>sysroots/</filename>
156 directory so all builds which use the script will use the correct 145 directory so all builds that use the script will use the correct
157 directories for the cross compiling layout. 146 directories for the cross compiling layout.
158 </para> 147 </para>
159</section> 148</section>
@@ -163,8 +152,8 @@
163 152
164 <para> 153 <para>
165 This class renames packages so that they follow the Debian naming 154 This class renames packages so that they follow the Debian naming
166 policy, i.e. 'glibc' becomes 'libc6' and 'glibc-devel' becomes 155 policy (i.e. <filename>glibc</filename> becomes <filename>libc6</filename>
167 'libc6-dev'. 156 and <filename>glibc-devel</filename> becomes <filename>libc6-dev</filename>.
168 </para> 157 </para>
169</section> 158</section>
170 159
@@ -172,15 +161,15 @@
172 <title>Pkg-config - <filename>pkgconfig.bbclass</filename></title> 161 <title>Pkg-config - <filename>pkgconfig.bbclass</filename></title>
173 162
174 <para> 163 <para>
175 Pkg-config brought standardisation and this class aims to make its 164 <filename>pkg-config</filename> brought standardization and this class aims to make its
176 integration smooth for all libraries which make use of it. 165 integration smooth for all libraries that make use of it.
177 </para> 166 </para>
178 167
179 <para> 168 <para>
180 During staging Bitbake installs pkg-config data into the <filename 169 During staging, Bitbake installs <filename>pkg-config</filename> data into the
181 class="directory">sysroots/</filename> directory. By making use of 170 <filename>sysroots/</filename> directory.
182 sysroot functionality within pkgconfig this class no longer has to 171 By making use of sysroot functionality within <filename>pkg-config</filename>,
183 manipulate the files. 172 this class no longer has to manipulate the files.
184 </para> 173 </para>
185</section> 174</section>
186 175
@@ -188,126 +177,131 @@
188 <title>Distribution of sources - <filename>src_distribute_local.bbclass</filename></title> 177 <title>Distribution of sources - <filename>src_distribute_local.bbclass</filename></title>
189 178
190 <para> 179 <para>
191 Many software licenses require providing the sources for compiled 180 Many software licenses require that source files be provided along with the binaries.
192 binaries. To simplify this process two classes were created: 181 To simplify this process, two classes were created:
193 <filename>src_distribute.bbclass</filename> and 182 <filename>src_distribute.bbclass</filename> and
194 <filename>src_distribute_local.bbclass</filename>. 183 <filename>src_distribute_local.bbclass</filename>.
195 </para> 184 </para>
196 185
197 <para> 186 <para>
198 Result of their work are <filename>tmp/deploy/source/</filename> 187 The results of these classes are <filename>tmp/deploy/source/</filename>
199 subdirs with sources sorted by <glossterm><link linkend='var-LICENSE'>LICENSE</link> 188 subdirs with sources sorted by
200 </glossterm> field. If recipe lists few licenses (or has entries like "Bitstream Vera") source archive is put in each 189 <filename><link linkend='var-LICENSE'>LICENSE</link></filename> field.
201 license dir. 190 If recipes list few licenses (or have entries like "Bitstream Vera"),
191 the source archive is placed in each license directory.
202 </para> 192 </para>
203 193
204 <para> 194 <para>
205 Src_distribute_local class has three modes of operating: 195 This class operates using three modes:
196 <itemizedlist>
197 <listitem><para><emphasis>copy:</emphasis> Copies the files to the
198 distribute directory.</para></listitem>
199 <listitem><para><emphasis>symlink:</emphasis> Symlinks the files to the
200 distribute directory.</para></listitem>
201 <listitem><para><emphasis>move+symlink:</emphasis> Moves the files into
202 the distribute directory and then symlinks them back.</para></listitem>
203 </itemizedlist>
206 </para> 204 </para>
207
208 <itemizedlist>
209 <listitem><para>copy - copies the files to the distribute dir</para></listitem>
210 <listitem><para>symlink - symlinks the files to the distribute dir</para></listitem>
211 <listitem><para>move+symlink - moves the files into distribute dir, and symlinks them back</para></listitem>
212 </itemizedlist>
213</section> 205</section>
214 206
215<section id='ref-classes-perl'> 207<section id='ref-classes-perl'>
216 <title>Perl modules - <filename>cpan.bbclass</filename></title> 208 <title>Perl modules - <filename>cpan.bbclass</filename></title>
217 209
218 <para> 210 <para>
219 Recipes for Perl modules are simple - usually needs only 211 Recipes for Perl modules are simple.
220 pointing to source archive and inheriting of proper bbclass. 212 These recipes usually only need to point to the source's archive and then inherit the
221 Building is split into two methods dependly on method used by 213 proper <filename>.bbclass</filename> file.
222 module authors. 214 Building is split into two methods dependling on which method the module authors used.
223 </para> 215 </para>
224 216
225 <para> 217 <para>
226 Modules which use old Makefile.PL based build system require 218 Modules that use old <filename>Makefile.PL</filename>-based build system require
227 using of <filename>cpan.bbclass</filename> in their recipes. 219 <filename>cpan.bbclass</filename> in their recipes.
228 </para> 220 </para>
229 221
230 <para> 222 <para>
231 Modules which use Build.PL based build system require 223 Modules that use <filename>Build.PL</filename>-based build system require
232 using of <filename>cpan_build.bbclass</filename> in their recipes. 224 using <filename>cpan_build.bbclass</filename> in their recipes.
233 </para> 225 </para>
234
235</section> 226</section>
236 227
237<section id='ref-classes-distutils'> 228<section id='ref-classes-distutils'>
238 <title>Python extensions - <filename>distutils.bbclass</filename></title> 229 <title>Python extensions - <filename>distutils.bbclass</filename></title>
239 230
240 <para> 231 <para>
241 Recipes for Python extensions are simple - they usually only 232 Recipes for Python extensions are simple.
242 require pointing to the source archive and inheriting the proper 233 These recipes usually only need to point to the source's archive and then inherit
243 bbclasses. 234 the proper <filename>.bbclass</filename> file.
244 Building is split into two methods depending on the build method 235 Building is split into two methods dependling on which method the module authors used.
245 used by the module authors.
246 </para> 236 </para>
247 237
248 <para> 238 <para>
249 Extensions which use autotools based build system require use 239 Extensions that use an Autotools-based build system require Autotools and
250 of autotools and distutils-base bbclasses in their recipes. 240 <filename>distutils</filename>-based <filename>.bbclasse</filename> files in their recipes.
251 </para> 241 </para>
252 242
253 <para> 243 <para>
254 Extensions which use distutils build system require use 244 Extensions that use <filename>distutils</filename>-based build systems require
255 of <filename>distutils.bbclass</filename> in their recipes. 245 <filename>distutils.bbclass</filename> in their recipes.
256 </para> 246 </para>
257
258</section> 247</section>
259 248
260<section id='ref-classes-devshell'> 249<section id='ref-classes-devshell'>
261 <title>Developer Shell - <filename>devshell.bbclass</filename></title> 250 <title>Developer Shell - <filename>devshell.bbclass</filename></title>
262 251
263 <para> 252 <para>
264 This class adds the devshell task. Its usually up to distribution policy 253 This class adds the <filename>devshell</filename> task.
265 to include this class (Poky does). See the <link 254 Distribution policy dictates whether to include this class as the Yocto Project does.
266 linkend='platdev-appdev-devshell'>developing with 'devshell' section</link> 255 See the <link
256 linkend='platdev-appdev-devshell'>Development Within a Development Shell</link> section
267 for more information about using devshell. 257 for more information about using devshell.
268 </para> 258 </para>
269
270</section> 259</section>
271 260
272<section id='ref-classes-package'> 261<section id='ref-classes-package'>
273 <title>Packaging - <filename>package*.bbclass</filename></title> 262 <title>Packaging - <filename>package*.bbclass</filename></title>
274 263
275 <para> 264 <para>
276 The packaging classes add support for generating packages from a builds 265 The packaging classes add support for generating packages from a build's
277 output. The core generic functionality is in 266 output.
278 <filename>package.bbclass</filename>, code specific to particular package 267 The core generic functionality is in <filename>package.bbclass</filename>.
279 types is contained in various sub classes such as 268 The code specific
280 <filename>package_deb.bbclass</filename>, <filename>package_ipk.bbclass</filename> 269 to particular package types is contained in various sub-classes such as
281 and <filename>package_rpm.bbclass</filename>. Most users will 270 <filename>package_deb.bbclass</filename>, <filename>package_ipk.bbclass</filename>,
282 want one or more of these classes and this is controlled by the <glossterm> 271 and <filename>package_rpm.bbclass</filename>.
283 <link linkend='var-PACKAGE_CLASSES'>PACKAGE_CLASSES</link></glossterm> 272 Most users will want one or more of these classes.
284 variable. The first class listed in this variable will be used for image 273 You can control the list of resulting package formats by using the
285 generation. Since images are generated from packages a packaging class is 274 <filename><link linkend='var-PACKAGE_CLASSES'>PACKAGE_CLASSES</link></filename>
275 variable.
276 The first class listed in this variable is be used for image generation.
277 Since images are generated from packages, a packaging class is
286 needed to enable image generation. 278 needed to enable image generation.
287 </para> 279 </para>
288
289</section> 280</section>
290 281
291<section id='ref-classes-kernel'> 282<section id='ref-classes-kernel'>
292 <title>Building kernels - <filename>kernel.bbclass</filename></title> 283 <title>Building kernels - <filename>kernel.bbclass</filename></title>
293 284
294 <para> 285 <para>
295 This class handles building of Linux kernels and the class contains code to know how to build both 2.4 and 2.6 kernel trees. All needed headers are 286 This class handles building Linux kernels.
296 staged into <glossterm><link 287 The class contains code to build all kernel trees.
297 linkend='var-STAGING_KERNEL_DIR'>STAGING_KERNEL_DIR</link></glossterm> 288 All needed headers are staged into the
298 directory to allow building of out-of-tree modules using <filename>module.bbclass</filename>. 289 <filename><link linkend='var-STAGING_KERNEL_DIR'>STAGING_KERNEL_DIR</link></filename>
290 directory to allow out-of-tree module builds using <filename>module.bbclass</filename>.
299 </para> 291 </para>
292
300 <para> 293 <para>
301 This means that each kernel module built is packaged separately and inter-module dependencies are 294 This means that each built kernel module is packaged separately and inter-module
302 created by parsing the <filename>modinfo</filename> output. If all modules are 295 dependencies are created by parsing the <filename>modinfo</filename> output.
303 required then installing the "kernel-modules" package will install all 296 If all modules are required, then installing the <filename>kernel-modules</filename>
304 packages with modules and various other kernel packages such as "kernel-vmlinux". 297 package installs all packages with modules and various other kernel packages
298 such as <filename>kernel-vmlinux</filename>.
305 </para> 299 </para>
306 300
307 <para> 301 <para>
308 Various other classes are used by the kernel and module classes internally including 302 Various other classes are used by the kernel and module classes internally including
309 <filename>kernel-arch.bbclass</filename>, <filename>module_strip.bbclass</filename>, 303 <filename>kernel-arch.bbclass</filename>, <filename>module_strip.bbclass</filename>,
310 <filename>module-base.bbclass</filename> and <filename>linux-kernel-base.bbclass</filename>. 304 <filename>module-base.bbclass</filename>, and <filename>linux-kernel-base.bbclass</filename>.
311 </para> 305 </para>
312</section> 306</section>
313 307
@@ -315,18 +309,20 @@
315 <title>Creating images - <filename>image.bbclass</filename> and <filename>rootfs*.bbclass</filename></title> 309 <title>Creating images - <filename>image.bbclass</filename> and <filename>rootfs*.bbclass</filename></title>
316 310
317 <para> 311 <para>
318 Those classes add support for creating images in many formats. First the 312 These classes add support for creating images in several formats.
319 rootfs is created from packages by one of the <filename>rootfs_*.bbclass</filename> 313 First, the root filesystem is created from packages using
320 files (depending on package format used) and then image is created. 314 one of the <filename>rootfs_*.bbclass</filename>
315 files (depending on the package format used) and then the image is created.
316 </para>
321 317
322 The <glossterm><link 318 <para>
323 linkend='var-IMAGE_FSTYPES'>IMAGE_FSTYPES</link></glossterm> 319 The <filename><link linkend='var-IMAGE_FSTYPES'>IMAGE_FSTYPES</link></filename>
324 variable controls which types of image to generate. 320 variable controls the types of images to generate.
325 321 </para>
326 The list of packages to install into the image is controlled by the 322
327 <glossterm><link 323 <para>
328 linkend='var-IMAGE_INSTALL'>IMAGE_INSTALL</link></glossterm> 324 The <filename><link linkend='var-IMAGE_INSTALL'>IMAGE_INSTALL</link></filename>
329 variable. 325 variable controls the list of packages to install into the image.
330 </para> 326 </para>
331</section> 327</section>
332 328
@@ -334,11 +330,12 @@
334 <title>Host System sanity checks - <filename>sanity.bbclass</filename></title> 330 <title>Host System sanity checks - <filename>sanity.bbclass</filename></title>
335 331
336 <para> 332 <para>
337 This class checks prerequisite software is present to 333 This class checks to see if prerequisite software is present so that
338 notify the users of potential problems that will affect their build. It 334 users can be notified of potential problems that might affect their build.
339 also performs basic checks of the user configuration from local.conf to 335 The class also performs basic user configuration checks from
340 prevent common mistakes resulting in build failures. It's usually up to 336 the <filename>local.conf</filename> configuration file to
341 distribution policy whether to include this class (Poky does). 337 prevent common mistakes that cause build failures.
338 Distribution policy usually whether to include this class as the Yocto Project does.
342 </para> 339 </para>
343</section> 340</section>
344 341
@@ -346,11 +343,11 @@
346 <title>Generated output quality assurance checks - <filename>insane.bbclass</filename></title> 343 <title>Generated output quality assurance checks - <filename>insane.bbclass</filename></title>
347 344
348 <para> 345 <para>
349 This class adds a step to package generation which sanity checks the 346 This class adds a step to the package generation process that sanity checks the
350 packages generated by Poky. There are an ever increasing range of checks 347 packages generated by the Yocto Project.
351 it performs, checking for common problems which break builds/packages/images, 348 An ever-increasing range of checks are performed that check for
352 see the bbclass file for more information. It's usually up to distribution 349 common problems that break builds.
353 policy whether to include this class (Poky does). 350 Distribution policy usually dictates whether to include this class as the Yocto Project does.
354 </para> 351 </para>
355</section> 352</section>
356 353
@@ -358,23 +355,28 @@
358 <title>Autotools configuration data cache - <filename>siteinfo.bbclass</filename></title> 355 <title>Autotools configuration data cache - <filename>siteinfo.bbclass</filename></title>
359 356
360 <para> 357 <para>
361 Autotools can require tests which have to execute on the target hardware. 358 Autotools can require tests that must execute on the target hardware.
362 Since this isn't possible in general when cross compiling, siteinfo is 359 Since this is not possible in general when cross compiling, site information is
363 used to provide cached test results so these tests can be skipped over but 360 used to provide cached test results so these tests can be skipped over but
364 the correct values used. The <link linkend='structure-meta-site'>meta/site directory</link> 361 still make the correct values available.
365 contains test results sorted into different categories like architecture, endianess and 362 The <filename><link linkend='structure-meta-site'>meta/site directory</link></filename>
366 the libc used. Siteinfo provides a list of files containing data relevant to 363 contains test results sorted into different categories such as architecture, endianess, and
367 the current build in the <glossterm><link linkend='var-CONFIG_SITE'>CONFIG_SITE 364 the libc used.
368 </link></glossterm> variable which autotools will automatically pick up. 365 Site information provides a list of files containing data relevant to
366 the current build in the
367 <filename><link linkend='var-CONFIG_SITE'>CONFIG_SITE</link></filename> variable
368 that Autotools automatically picks up.
369 </para> 369 </para>
370
370 <para> 371 <para>
371 The class also provides variables like <glossterm><link 372 The class also provides variables like
372 linkend='var-SITEINFO_ENDIANESS'>SITEINFO_ENDIANESS</link></glossterm> 373 <filename><link linkend='var-SITEINFO_ENDIANESS'>SITEINFO_ENDIANESS</link></filename>
373 and <glossterm><link linkend='var-SITEINFO_BITS'>SITEINFO_BITS</link> 374 and <filename><link linkend='var-SITEINFO_BITS'>SITEINFO_BITS</link></filename>
374 </glossterm> which can be used elsewhere in the metadata. 375 that can be used elsewhere in the metadata.
375 </para> 376 </para>
377
376 <para> 378 <para>
377 This class is included from <filename>base.bbclass</filename> and is hence always active. 379 Because this class is included from <filename>base.bbclass</filename>, it is always active.
378 </para> 380 </para>
379</section> 381</section>
380 382
@@ -382,8 +384,12 @@
382 <title>Other Classes</title> 384 <title>Other Classes</title>
383 385
384 <para> 386 <para>
385 Only the most useful/important classes are covered here but there are 387 Thus far, this appendix has discussed only the most useful and important
386 others, see the <filename>meta/classes</filename> directory for the rest. 388 classes.
389 However, other classes exist within the <filename>meta/classes</filename> directory
390 in the Yocto Project file's directory structure.
391 You can examine the <filename>.bbclass</filename> files directly for more
392 information.
387 </para> 393 </para>
388</section> 394</section>
389 395