blob: 4c4fc227174636bedc815d0709612a4de9fe0e26 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!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<!-- Dummy chapter -->
6<chapter id='ref-variables-glos'>
7
8<title>Variables Glossary</title>
9
10<para>
11 This chapter lists common variables used in the OpenEmbedded build system and gives an overview
12 of their function and contents.
13</para>
14
15<glossary id='ref-variables-glossary'>
16
17
18 <para>
19 <link linkend='var-ABIEXTENSION'>A</link>
20 <link linkend='var-B'>B</link>
21 <link linkend='var-CACHE'>C</link>
22 <link linkend='var-D'>D</link>
23 <link linkend='var-EFI_PROVIDER'>E</link>
24 <link linkend='var-FEATURE_PACKAGES'>F</link>
25 <link linkend='var-GDB'>G</link>
26 <link linkend='var-HOMEPAGE'>H</link>
27 <link linkend='var-ICECC_DISABLED'>I</link>
28<!-- <link linkend='var-glossary-j'>J</link> -->
29 <link linkend='var-KARCH'>K</link>
30 <link linkend='var-LABELS'>L</link>
31 <link linkend='var-MACHINE'>M</link>
32<!-- <link linkend='var-glossary-n'>N</link> -->
33 <link linkend='var-OBJCOPY'>O</link>
34 <link linkend='var-P'>P</link>
35 <link linkend='var-QMAKE_PROFILES'>Q</link>
36 <link linkend='var-RANLIB'>R</link>
37 <link linkend='var-S'>S</link>
38 <link linkend='var-T'>T</link>
39 <link linkend='var-UBOOT_CONFIG'>U</link>
40<!-- <link linkend='var-glossary-v'>V</link> -->
41 <link linkend='var-WARN_QA'>W</link>
42 <link linkend='var-XSERVER'>X</link>
43<!-- <link linkend='var-glossary-y'>Y</link> -->
44<!-- <link linkend='var-glossary-z'>Z</link>-->
45 </para>
46
47 <glossdiv id='var-glossary-a'><title>A</title>
48
49 <glossentry id='var-ABIEXTENSION'><glossterm>ABIEXTENSION</glossterm>
50 <info>
51 ABIEXTENSION[doc] = "Extension to the Application Binary Interface (ABI) field of the GNU canonical architecture name (e.g. "eabi")."
52 </info>
53 <glossdef>
54 <para role="glossdeffirst">
55<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
56 Extension to the Application Binary Interface (ABI)
57 field of the GNU canonical architecture name
58 (e.g. "eabi").
59 </para>
60
61 <para>
62 ABI extensions are set in the machine include files.
63 For example, the
64 <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>
65 file sets the following extension:
66 <literallayout class='monospaced'>
67 ABIEXTENSION = "eabi"
68 </literallayout>
69 </para>
70 </glossdef>
71 </glossentry>
72
73 <glossentry id='var-ALLOW_EMPTY'><glossterm>ALLOW_EMPTY</glossterm>
74 <info>
75 ALLOW_EMPTY[doc] = "Specifies if an output package should still be produced if it is empty."
76 </info>
77 <glossdef>
78 <para role="glossdeffirst">
79<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
80 Specifies if an output package should still be produced if it is empty.
81 By default, BitBake does not produce empty packages.
82 This default behavior can cause issues when there is an
83 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> or
84 some other hard runtime requirement on the existence of the package.
85 </para>
86
87 <para>
88 Like all package-controlling variables, you must always use them in
89 conjunction with a package name override, as in:
90 <literallayout class='monospaced'>
91 ALLOW_EMPTY_${PN} = "1"
92 ALLOW_EMPTY_${PN}-dev = "1"
93 ALLOW_EMPTY_${PN}-staticdev = "1"
94 </literallayout>
95 </para>
96 </glossdef>
97 </glossentry>
98
99 <glossentry id='var-ALTERNATIVE'><glossterm>ALTERNATIVE</glossterm>
100 <info>
101 ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
102 </info>
103 <glossdef>
104 <para role="glossdeffirst">
105<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
106 Lists commands in a package that need an alternative
107 binary naming scheme.
108 Sometimes the same command is provided in multiple packages.
109 When this occurs, the OpenEmbedded build system needs to
110 use the alternatives system to create a different binary
111 naming scheme so the commands can co-exist.
112 </para>
113
114 <para>
115 To use the variable, list out the package's commands
116 that also exist as part of another package.
117 For example, if the <filename>busybox</filename> package
118 has four commands that also exist as part of another
119 package, you identify them as follows:
120 <literallayout class='monospaced'>
121 ALTERNATIVE_busybox = "sh sed test bracket"
122 </literallayout>
123 For more information on the alternatives system, see the
124 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
125 section.
126 </para>
127 </glossdef>
128 </glossentry>
129
130 <glossentry id='var-ALTERNATIVE_LINK_NAME'><glossterm>ALTERNATIVE_LINK_NAME</glossterm>
131 <info>
132 ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
133 </info>
134 <glossdef>
135 <para role="glossdeffirst">
136<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
137 Used by the alternatives system to map duplicated commands
138 to actual locations.
139 For example, if the <filename>bracket</filename> command
140 provided by the <filename>busybox</filename> package is
141 duplicated through another package, you must use the
142 <filename>ALTERNATIVE_LINK_NAME</filename> variable to
143 specify the actual location:
144 <literallayout class='monospaced'>
145 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
146 </literallayout>
147 </para>
148
149 <para>
150 In this example, the binary for the
151 <filename>bracket</filename> command (i.e.
152 <filename>[</filename>) from the
153 <filename>busybox</filename> package resides in
154 <filename>/usr/bin/</filename>.
155 <note>
156 If <filename>ALTERNATIVE_LINK_NAME</filename> is not
157 defined, it defaults to
158 <filename>${bindir}/<replaceable>name</replaceable></filename>.
159 </note>
160 </para>
161
162 <para>
163 For more information on the alternatives system, see the
164 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
165 section.
166 </para>
167 </glossdef>
168 </glossentry>
169
170 <glossentry id='var-ALTERNATIVE_PRIORITY'><glossterm>ALTERNATIVE_PRIORITY</glossterm>
171 <info>
172 ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
173 </info>
174 <glossdef>
175 <para role="glossdeffirst">
176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
177 Used by the alternatives system to create default
178 priorities for duplicated commands.
179 You can use the variable to create a single default
180 regardless of the command name or package, a default for
181 specific duplicated commands regardless of the package, or
182 a default for specific commands tied to particular packages.
183 Here are the available syntax forms:
184 <literallayout class='monospaced'>
185 ALTERNATIVE_PRIORITY = "<replaceable>priority</replaceable>"
186 ALTERNATIVE_PRIORITY[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
187 ALTERNATIVE_PRIORITY_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
188 </literallayout>
189 </para>
190
191 <para>
192 For more information on the alternatives system, see the
193 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
194 section.
195 </para>
196 </glossdef>
197 </glossentry>
198
199 <glossentry id='var-ALTERNATIVE_TARGET'><glossterm>ALTERNATIVE_TARGET</glossterm>
200 <info>
201 ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
202 </info>
203 <glossdef>
204 <para role="glossdeffirst">
205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
206 Used by the alternatives system to create default link
207 locations for duplicated commands.
208 You can use the variable to create a single default
209 location for all duplicated commands regardless of the
210 command name or package, a default for
211 specific duplicated commands regardless of the package, or
212 a default for specific commands tied to particular packages.
213 Here are the available syntax forms:
214 <literallayout class='monospaced'>
215 ALTERNATIVE_TARGET = "<replaceable>target</replaceable>"
216 ALTERNATIVE_TARGET[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
217 ALTERNATIVE_TARGET_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
218 </literallayout>
219 <note>
220 <para>
221 If <filename>ALTERNATIVE_TARGET</filename> is not
222 defined, it inherits the value from the
223 <link linkend='var-ALTERNATIVE_LINK_NAME'><filename>ALTERNATIVE_LINK_NAME</filename></link>
224 variable.
225 </para>
226
227 <para>
228 If <filename>ALTERNATIVE_LINK_NAME</filename> and
229 <filename>ALTERNATIVE_TARGET</filename> are the
230 same, the target for
231 <filename>ALTERNATIVE_TARGET</filename>
232 has "<filename>.{BPN}</filename>" appended to it.
233 </para>
234
235 <para>
236 Finally, if the file referenced has not been
237 renamed, the alternatives system will rename it to
238 avoid the need to rename alternative files in the
239 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
240 task while
241 retaining support for the command if necessary.
242 </para>
243 </note>
244 </para>
245
246 <para>
247 For more information on the alternatives system, see the
248 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
249 section.
250 </para>
251 </glossdef>
252 </glossentry>
253
254 <glossentry id='var-APPEND'><glossterm>APPEND</glossterm>
255 <info>
256 APPEND[doc] = "An override list of append strings for each LABEL."
257 </info>
258 <glossdef>
259 <para role="glossdeffirst">
260<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
261 An override list of append strings for each
262 <link linkend='var-LABELS'><filename>LABEL</filename></link>.
263 </para>
264
265 <para>
266 See the
267 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
268 class for more information on how this variable is used.
269 </para>
270 </glossdef>
271 </glossentry>
272
273 <glossentry id='var-AR'><glossterm>AR</glossterm>
274 <info>
275 AR[doc] = "Minimal command and arguments to run 'ar'."
276 </info>
277 <glossdef>
278 <para role="glossdeffirst">
279<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
280 The minimal command and arguments used to run
281 <filename>ar</filename>.
282 </para>
283 </glossdef>
284 </glossentry>
285
286 <glossentry id='var-ARCHIVER_MODE'><glossterm>ARCHIVER_MODE</glossterm>
287 <info>
288 ARCHIVER_MODE[doc] = "Controls archive creation used when releasing source files."
289 </info>
290 <glossdef>
291 <para role="glossdeffirst">
292<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
293 When used with the
294 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
295 class, determines the type of information used to create
296 a released archive.
297 You can use this variable to create archives of patched
298 source, original source, configured source, and so forth
299 by employing the following variable flags (varflags):
300 <literallayout class='monospaced'>
301 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source
302 # files.
303
304 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is
305 # the default.
306
307 ARCHIVER_MODE[src] = "configured" # Uses configured source files.
308
309 ARCHIVER_MODE[diff] = "1" # Uses patches between do_unpack and
310 # do_patch.
311
312 ARCHIVER_MODE[diff-exclude] ?= "<replaceable>file</replaceable> <replaceable>file</replaceable> ..." # Lists files and directories to
313 # exclude from diff.
314
315 ARCHIVER_MODE[dumpdata] = "1" # Uses environment data.
316
317 ARCHIVER_MODE[recipe] = "1" # Uses recipe and include files.
318
319 ARCHIVER_MODE[srpm] = "1" # Uses RPM package files.
320 </literallayout>
321 For information on how the variable works, see the
322 <filename>meta/classes/archiver.bbclass</filename> file
323 in the
324 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
325 </para>
326 </glossdef>
327 </glossentry>
328
329 <glossentry id='var-AS'><glossterm>AS</glossterm>
330 <info>
331 AS[doc] = "Minimal command and arguments to run the assembler."
332 </info>
333 <glossdef>
334 <para role="glossdeffirst">
335<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
336 The minimal command and arguments used to run the
337 assembler.
338 </para>
339 </glossdef>
340 </glossentry>
341
342 <glossentry id='var-ASSUME_PROVIDED'><glossterm>ASSUME_PROVIDED</glossterm>
343 <info>
344 ASSUME_PROVIDED[doc] = "Lists recipe names (PN values) BitBake does not attempt to build."
345 </info>
346 <glossdef>
347 <para role="glossdeffirst">
348<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
349 Lists recipe names
350 (<link linkend='var-PN'><filename>PN</filename></link>
351 values) BitBake does not attempt to build.
352 Instead, BitBake assumes these recipes have already been
353 built.
354 </para>
355
356 <para>
357 In OpenEmbedded Core, <filename>ASSUME_PROVIDED</filename>
358 mostly specifies native tools that should not be built.
359 An example is <filename>git-native</filename>, which when
360 specified, allows for the Git binary from the host to be
361 used rather than building <filename>git-native</filename>.
362 </para>
363 </glossdef>
364 </glossentry>
365
366 <glossentry id='var-ASSUME_SHLIBS'><glossterm>ASSUME_SHLIBS</glossterm>
367 <info>
368 ASSUME_SHLIBS[doc] = Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system."
369 </info>
370 <glossdef>
371 <para role="glossdeffirst">
372<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
373 Provides additional <filename>shlibs</filename> provider
374 mapping information, which adds to or overwrites the
375 information provided automatically by the system.
376 Separate multiple entries using spaces.
377 </para>
378
379 <para>
380 As an example, use the following form to add an
381 <filename>shlib</filename> provider of
382 <replaceable>shlibname</replaceable> in
383 <replaceable>packagename</replaceable> with the optional
384 <replaceable>version</replaceable>:
385 <literallayout class='monospaced'>
386 <replaceable>shlibname:packagename</replaceable>[_<replaceable>version</replaceable>]
387 </literallayout>
388 </para>
389
390 <para>
391 Here is an example that adds a shared library named
392 <filename>libEGL.so.1</filename> as being provided by
393 the <filename>libegl-implementation</filename> package:
394 <literallayout class='monospaced'>
395 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
396 </literallayout>
397 </para>
398 </glossdef>
399 </glossentry>
400
401 <glossentry id='var-AUTHOR'><glossterm>AUTHOR</glossterm>
402 <info>
403 AUTHOR[doc] = "Email address used to contact the original author or authors in order to send patches and forward bugs."
404 </info>
405 <glossdef>
406 <para role="glossdeffirst">
407<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
408 The email address used to contact the original author
409 or authors in order to send patches and forward bugs.
410 </para>
411 </glossdef>
412 </glossentry>
413
414 <glossentry id='var-AUTO_LIBNAME_PKGS'><glossterm>AUTO_LIBNAME_PKGS</glossterm>
415 <info>
416 AUTO_LIBNAME_PKGS[doc] = "Specifies which packages should be checked for libraries and renamed according to Debian library package naming."
417 </info>
418 <glossdef>
419 <para role="glossdeffirst">
420<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
421 When the
422 <link linkend='ref-classes-debian'><filename>debian</filename></link>
423 class is inherited, which is the default behavior,
424 <filename>AUTO_LIBNAME_PKGS</filename> specifies which
425 packages should be checked for libraries and renamed
426 according to Debian library package naming.
427 </para>
428
429 <para>
430 The default value is "${PACKAGES}", which causes the
431 debian class to act on all packages that are
432 explicitly generated by the recipe.
433 </para>
434 </glossdef>
435 </glossentry>
436
437 <glossentry id='var-AUTO_SYSLINUXMENU'><glossterm>AUTO_SYSLINUXMENU</glossterm>
438 <info>
439 AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
440 </info>
441 <glossdef>
442 <para role="glossdeffirst">
443<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
444 Enables creating an automatic menu for the syslinux
445 bootloader.
446 You must set this variable in your recipe.
447 The
448 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
449 class checks this variable.
450 </para>
451 </glossdef>
452 </glossentry>
453
454 <glossentry id='var-AUTOREV'><glossterm>AUTOREV</glossterm>
455 <info>
456 AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
457 </info>
458 <glossdef>
459 <para role="glossdeffirst">
460<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
461 When
462 <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
463 is set to the value of this variable, it specifies to use
464 the latest source revision in the repository.
465 Here is an example:
466 <literallayout class='monospaced'>
467 SRCREV = "${AUTOREV}"
468 </literallayout>
469 </para>
470
471 <para>
472 If you use the previous statement to retrieve the latest
473 version of software, you need to be sure
474 <link linkend='var-PV'><filename>PV</filename></link>
475 contains
476 <filename>${</filename><link linkend='var-SRCPV'><filename>SRCPV</filename></link><filename>}</filename>.
477 For example, suppose you have a kernel recipe that
478 inherits the
479 <link linkend='ref-classes-kernel'>kernel</link> class
480 and you use the previous statement.
481 In this example, <filename>${SRCPV}</filename> does not
482 automatically get into <filename>PV</filename>.
483 Consequently, you need to change <filename>PV</filename>
484 in your recipe so that it does contain
485 <filename>${SRCPV}</filename>.
486 </para>
487 </glossdef>
488 </glossentry>
489
490 <glossentry id='var-AVAILTUNES'><glossterm>AVAILTUNES</glossterm>
491 <info>
492 AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system."
493 </info>
494 <glossdef>
495 <para role="glossdeffirst">
496<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
497 The list of defined CPU and Application Binary Interface
498 (ABI) tunings (i.e. "tunes") available for use by the
499 OpenEmbedded build system.
500 </para>
501
502 <para>
503 The list simply presents the tunes that are available.
504 Not all tunes may be compatible with a particular
505 machine configuration, or with each other in a
506 <ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Multilib</ulink>
507 configuration.
508 </para>
509
510 <para>
511 To add a tune to the list, be sure to append it with
512 spaces using the "+=" BitBake operator.
513 Do not simply replace the list by using the "=" operator.
514 See the
515 "<ulink url='&YOCTO_DOCS_BB_URL;#basic-syntax'>Basic Syntax</ulink>"
516 section in the BitBake User Manual for more information.
517 </para>
518 </glossdef>
519 </glossentry>
520
521 </glossdiv>
522
523 <glossdiv id='var-glossary-b'><title>B</title>
524
525 <glossentry id='var-B'><glossterm>B</glossterm>
526 <info>
527 B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
528 </info>
529 <glossdef>
530 <para role="glossdeffirst">
531<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
532 The directory within the
533 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
534 in which the OpenEmbedded build system places generated
535 objects during a recipe's build process.
536 By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
537 directory, which is defined as:
538 <literallayout class='monospaced'>
539 S = "${WORKDIR}/${BP}/"
540 </literallayout>
541 </para>
542
543 <para>
544 You can separate the (<filename>S</filename>) directory
545 and the directory pointed to by the <filename>B</filename>
546 variable.
547 Most Autotools-based recipes support separating these
548 directories.
549 The build system defaults to using separate directories for
550 <filename>gcc</filename> and some kernel recipes.
551 </para>
552 </glossdef>
553 </glossentry>
554
555 <glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
556 <info>
557 BAD_RECOMMENDATIONS[doc] = "A list of packages not to install despite being recommended by a recipe. Support for this variable exists only when using the IPK packaging backend."
558 </info>
559 <glossdef>
560 <para role="glossdeffirst">
561<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
562 Lists "recommended-only" packages to not install.
563 Recommended-only packages are packages installed only
564 through the
565 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
566 variable.
567 You can prevent any of these "recommended" packages from
568 being installed by listing them with the
569 <filename>BAD_RECOMMENDATIONS</filename> variable:
570 <literallayout class='monospaced'>
571 BAD_RECOMMENDATIONS = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
572 </literallayout>
573 </para>
574
575 <para>
576 You can set this variable globally in your
577 <filename>local.conf</filename> file or you can attach it to
578 a specific image recipe by using the recipe name override:
579 <literallayout class='monospaced'>
580 BAD_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
581 </literallayout>
582 </para>
583
584 <para>
585 It is important to realize that if you choose to not install
586 packages using this variable and some other packages are
587 dependent on them (i.e. listed in a recipe's
588 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
589 variable), the OpenEmbedded build system ignores your
590 request and will install the packages to avoid dependency
591 errors.
592 </para>
593
594 <para>
595 Support for this variable exists only when using the
596 IPK and RPM packaging backend.
597 Support does not exist for DEB.
598 </para>
599
600 <para>
601 See the
602 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
603 and the
604 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
605 variables for related information.
606 </para>
607 </glossdef>
608 </glossentry>
609
610 <glossentry id='var-BASE_LIB'><glossterm>BASE_LIB</glossterm>
611 <info>
612 BASE_LIB[doc] = "The library directory name for the CPU or Application Binary Interface (ABI) tune."
613 </info>
614 <glossdef>
615 <para role="glossdeffirst">
616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
617 The library directory name for the CPU or Application
618 Binary Interface (ABI) tune.
619 The <filename>BASE_LIB</filename> applies only in the
620 Multilib context.
621 See the
622 "<ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Combining Multiple Versions of Library Files into One Image</ulink>"
623 section in the Yocto Project Development Manual for
624 information on Multilib.
625 </para>
626
627 <para>
628 The <filename>BASE_LIB</filename> variable is defined in
629 the machine include files in the
630 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
631 If Multilib is not being used, the value defaults to "lib".
632 </para>
633 </glossdef>
634 </glossentry>
635
636 <glossentry id='var-BASE_WORKDIR'><glossterm>BASE_WORKDIR</glossterm>
637 <info>
638 BASE_WORKDIR[doc] = "Points to the base of the work directory for all recipes."
639 </info>
640 <glossdef>
641 <para role="glossdeffirst">
642<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
643 Points to the base of the work directory for all recipes.
644 The default value is "${TMPDIR}/work".
645 </para>
646 </glossdef>
647 </glossentry>
648
649 <glossentry id='var-BB_ALLOWED_NETWORKS'><glossterm>BB_ALLOWED_NETWORKS</glossterm>
650 <info>
651 BB_ALLOWED_NETWORKS[doc] = "A list of hosts that the fetcher is allowed to use to obtain the required source code."
652 </info>
653 <glossdef>
654 <para>
655 Specifies a space-delimited list of hosts that the fetcher
656 is allowed to use to obtain the required source code.
657 Following are considerations surrounding this variable:
658 <itemizedlist>
659 <listitem><para>
660 This host list is only used if
661 <filename>BB_NO_NETWORK</filename> is either not
662 set or set to "0".
663 </para></listitem>
664 <listitem><para>
665 Limited support for wildcard matching against the
666 beginning of host names exists.
667 For example, the following setting matches
668 <filename>git.gnu.org</filename>,
669 <filename>ftp.gnu.org</filename>, and
670 <filename>foo.git.gnu.org</filename>.
671 <literallayout class='monospaced'>
672 BB_ALLOWED_NETWORKS = "*.gnu.org"
673 </literallayout>
674 </para></listitem>
675 <listitem><para>
676 Mirrors not in the host list are skipped and
677 logged in debug.
678 </para></listitem>
679 <listitem><para>
680 Attempts to access networks not in the host list
681 cause a failure.
682 </para></listitem>
683 </itemizedlist>
684 Using <filename>BB_ALLOWED_NETWORKS</filename> in
685 conjunction with
686 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
687 is very useful.
688 Adding the host you want to use to
689 <filename>PREMIRRORS</filename> results in the source code
690 being fetched from an allowed location and avoids raising
691 an error when a host that is not allowed is in a
692 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
693 statement.
694 This is because the fetcher does not attempt to use the
695 host listed in <filename>SRC_URI</filename> after a
696 successful fetch from the
697 <filename>PREMIRRORS</filename> occurs.
698 </para>
699 </glossdef>
700 </glossentry>
701
702 <glossentry id='var-BB_DANGLINGAPPENDS_WARNONLY'><glossterm>BB_DANGLINGAPPENDS_WARNONLY</glossterm>
703 <info>
704 BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
705 </info>
706 <glossdef>
707 <para role="glossdeffirst">
708<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
709 Defines how BitBake handles situations where an append
710 file (<filename>.bbappend</filename>) has no
711 corresponding recipe file (<filename>.bb</filename>).
712 This condition often occurs when layers get out of sync
713 (e.g. <filename>oe-core</filename> bumps a
714 recipe version and the old recipe no longer exists and the
715 other layer has not been updated to the new version
716 of the recipe yet).
717 </para>
718
719 <para>
720 The default fatal behavior is safest because it is
721 the sane reaction given something is out of sync.
722 It is important to realize when your changes are no longer
723 being applied.
724 </para>
725
726 <para>
727 You can change the default behavior by setting this
728 variable to "1", "yes", or "true"
729 in your <filename>local.conf</filename> file, which is
730 located in the
731 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
732 Here is an example:
733 <literallayout class='monospaced'>
734 BB_DANGLINGAPPENDS_WARNONLY = "1"
735 </literallayout>
736 </para>
737 </glossdef>
738 </glossentry>
739
740 <glossentry id='var-BB_DISKMON_DIRS'><glossterm>BB_DISKMON_DIRS</glossterm>
741 <info>
742 BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
743 </info>
744 <glossdef>
745 <para role="glossdeffirst">
746<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
747 Monitors disk space and available inodes during the build
748 and allows you to control the build based on these
749 parameters.
750 </para>
751
752 <para>
753 Disk space monitoring is disabled by default.
754 To enable monitoring, add the <filename>BB_DISKMON_DIRS</filename>
755 variable to your <filename>conf/local.conf</filename> file found in the
756 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
757 Use the following form:
758 <literallayout class='monospaced'>
759 BB_DISKMON_DIRS = "<replaceable>action</replaceable>,<replaceable>dir</replaceable>,<replaceable>threshold</replaceable> [...]"
760
761 where:
762
763 <replaceable>action</replaceable> is:
764 ABORT: Immediately abort the build when
765 a threshold is broken.
766 STOPTASKS: Stop the build after the currently
767 executing tasks have finished when
768 a threshold is broken.
769 WARN: Issue a warning but continue the
770 build when a threshold is broken.
771 Subsequent warnings are issued as
772 defined by the
773 <link linkend='var-BB_DISKMON_WARNINTERVAL'>BB_DISKMON_WARNINTERVAL</link> variable,
774 which must be defined in the
775 conf/local.conf file.
776
777 <replaceable>dir</replaceable> is:
778 Any directory you choose. You can specify one or
779 more directories to monitor by separating the
780 groupings with a space. If two directories are
781 on the same device, only the first directory
782 is monitored.
783
784 <replaceable>threshold</replaceable> is:
785 Either the minimum available disk space,
786 the minimum number of free inodes, or
787 both. You must specify at least one. To
788 omit one or the other, simply omit the value.
789 Specify the threshold using G, M, K for Gbytes,
790 Mbytes, and Kbytes, respectively. If you do
791 not specify G, M, or K, Kbytes is assumed by
792 default. Do not use GB, MB, or KB.
793 </literallayout>
794 </para>
795
796 <para>
797 Here are some examples:
798 <literallayout class='monospaced'>
799 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
800 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
801 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
802 </literallayout>
803 The first example works only if you also provide
804 the <link linkend='var-BB_DISKMON_WARNINTERVAL'><filename>BB_DISKMON_WARNINTERVAL</filename></link> variable
805 in the <filename>conf/local.conf</filename>.
806 This example causes the build system to immediately
807 abort when either the disk space in <filename>${TMPDIR}</filename> drops
808 below 1 Gbyte or the available free inodes drops below
809 100 Kbytes.
810 Because two directories are provided with the variable, the
811 build system also issue a
812 warning when the disk space in the
813 <filename>${SSTATE_DIR}</filename> directory drops
814 below 1 Gbyte or the number of free inodes drops
815 below 100 Kbytes.
816 Subsequent warnings are issued during intervals as
817 defined by the <filename>BB_DISKMON_WARNINTERVAL</filename>
818 variable.
819 </para>
820
821 <para>
822 The second example stops the build after all currently
823 executing tasks complete when the minimum disk space
824 in the <filename>${<link linkend='var-TMPDIR'>TMPDIR</link>}</filename>
825 directory drops below 1 Gbyte.
826 No disk monitoring occurs for the free inodes in this case.
827 </para>
828
829 <para>
830 The final example immediately aborts the build when the
831 number of free inodes in the <filename>${TMPDIR}</filename> directory
832 drops below 100 Kbytes.
833 No disk space monitoring for the directory itself occurs
834 in this case.
835 </para>
836 </glossdef>
837 </glossentry>
838
839 <glossentry id='var-BB_DISKMON_WARNINTERVAL'><glossterm>BB_DISKMON_WARNINTERVAL</glossterm>
840 <info>
841 BB_DISKMON_WARNINTERVAL[doc] = "Defines the disk space and free inode warning intervals. To set these intervals, define the variable in the conf/local.conf file in the Build Directory."
842 </info>
843 <glossdef>
844 <para role="glossdeffirst">
845<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
846 Defines the disk space and free inode warning intervals.
847 To set these intervals, define the variable in your
848 <filename>conf/local.conf</filename> file in the
849 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
850 </para>
851
852 <para>
853 If you are going to use the
854 <filename>BB_DISKMON_WARNINTERVAL</filename> variable, you must
855 also use the
856 <link linkend='var-BB_DISKMON_DIRS'><filename>BB_DISKMON_DIRS</filename></link> variable
857 and define its action as "WARN".
858 During the build, subsequent warnings are issued each time
859 disk space or number of free inodes further reduces by
860 the respective interval.
861 </para>
862
863 <para>
864 If you do not provide a <filename>BB_DISKMON_WARNINTERVAL</filename>
865 variable and you do use <filename>BB_DISKMON_DIRS</filename> with
866 the "WARN" action, the disk monitoring interval defaults to
867 the following:
868 <literallayout class='monospaced'>
869 BB_DISKMON_WARNINTERVAL = "50M,5K"
870 </literallayout>
871 </para>
872
873 <para>
874 When specifying the variable in your configuration file,
875 use the following form:
876 <literallayout class='monospaced'>
877 BB_DISKMON_WARNINTERVAL = "<replaceable>disk_space_interval</replaceable>,<replaceable>disk_inode_interval</replaceable>"
878
879 where:
880
881 <replaceable>disk_space_interval</replaceable> is:
882 An interval of memory expressed in either
883 G, M, or K for Gbytes, Mbytes, or Kbytes,
884 respectively. You cannot use GB, MB, or KB.
885
886 <replaceable>disk_inode_interval</replaceable> is:
887 An interval of free inodes expressed in either
888 G, M, or K for Gbytes, Mbytes, or Kbytes,
889 respectively. You cannot use GB, MB, or KB.
890 </literallayout>
891 </para>
892
893 <para>
894 Here is an example:
895 <literallayout class='monospaced'>
896 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
897 BB_DISKMON_WARNINTERVAL = "50M,5K"
898 </literallayout>
899 These variables cause the OpenEmbedded build system to
900 issue subsequent warnings each time the available
901 disk space further reduces by 50 Mbytes or the number
902 of free inodes further reduces by 5 Kbytes in the
903 <filename>${SSTATE_DIR}</filename> directory.
904 Subsequent warnings based on the interval occur each time
905 a respective interval is reached beyond the initial warning
906 (i.e. 1 Gbytes and 100 Kbytes).
907 </para>
908 </glossdef>
909 </glossentry>
910
911 <glossentry id='var-BB_GENERATE_MIRROR_TARBALLS'><glossterm>BB_GENERATE_MIRROR_TARBALLS</glossterm>
912 <info>
913 BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the Git repositories to be placed in the DL_DIR directory."
914 </info>
915 <glossdef>
916 <para role="glossdeffirst">
917<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
918 Causes tarballs of the Git repositories, including the
919 Git metadata, to be placed in the
920 <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
921 directory.
922 </para>
923
924 <para>
925 For performance reasons, creating and placing tarballs of
926 the Git repositories is not the default action by the
927 OpenEmbedded build system.
928 <literallayout class='monospaced'>
929 BB_GENERATE_MIRROR_TARBALLS = "1"
930 </literallayout>
931 Set this variable in your <filename>local.conf</filename>
932 file in the
933 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
934 </para>
935 </glossdef>
936 </glossentry>
937
938 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
939 <info>
940 BB_NUMBER_THREADS[doc] = "The maximum number of tasks BitBake should run in parallel at any one time. This variable is automatically configured to be equal to the number of build system cores."
941 </info>
942 <glossdef>
943 <para role="glossdeffirst">
944<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
945 The maximum number of tasks BitBake should run in parallel
946 at any one time.
947 The OpenEmbedded build system automatically configures
948 this variable to be equal to the number of cores on the
949 build system.
950 For example, a system with a dual core processor that
951 also uses hyper-threading causes the
952 <filename>BB_NUMBER_THREADS</filename> variable to default
953 to "4".
954 </para>
955
956 <para>
957 For single socket systems (i.e. one CPU), you should not
958 have to override this variable to gain optimal parallelism
959 during builds.
960 However, if you have very large systems that employ
961 multiple physical CPUs, you might want to make sure the
962 <filename>BB_NUMBER_THREADS</filename> variable is not
963 set higher than "20".
964 </para>
965
966 <para>
967 For more information on speeding up builds, see the
968 "<link linkend='speeding-up-the-build'>Speeding Up the Build</link>"
969 section.
970 </para>
971 </glossdef>
972 </glossentry>
973
974 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
975 <info>
976 BBCLASSEXTEND[doc] = "Allows you to extend a recipe so that it builds variants of the software. Common variants for recipes are 'native', 'cross', 'nativesdk' and multilibs."
977 </info>
978 <glossdef>
979 <para role="glossdeffirst">
980<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
981 Allows you to extend a recipe so that it builds variants of the software.
982 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
983 which is a copy of Quilt built to run on the build system;
984 "crosses" such as <filename>gcc-cross</filename>,
985 which is a compiler built to run on the build machine but produces binaries
986 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
987 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
988 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
989 </para>
990
991 <para>
992 To build a different variant of the recipe with a minimal amount of code, it usually
993 is as simple as adding the following to your recipe:
994 <literallayout class='monospaced'>
995 BBCLASSEXTEND =+ "native nativesdk"
996 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
997 </literallayout>
998 </para>
999 </glossdef>
1000 </glossentry>
1001
1002 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1003 <info>
1004 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1005 </info>
1006 <glossdef>
1007 <para role="glossdeffirst">
1008<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1009 Lists the names of configured layers.
1010 These names are used to find the other <filename>BBFILE_*</filename>
1011 variables.
1012 Typically, each layer will append its name to this variable in its
1013 <filename>conf/layer.conf</filename> file.
1014 </para>
1015 </glossdef>
1016 </glossentry>
1017
1018 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1019 <info>
1020 BBFILE_PATTERN[doc] = "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer."
1021 </info>
1022 <glossdef>
1023 <para role="glossdeffirst">
1024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1025 Variable that expands to match files from
1026 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1027 in a particular layer.
1028 This variable is used in the <filename>conf/layer.conf</filename> file and must
1029 be suffixed with the name of the specific layer (e.g.
1030 <filename>BBFILE_PATTERN_emenlow</filename>).
1031 </para>
1032 </glossdef>
1033 </glossentry>
1034
1035 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1036 <info>
1037 BBFILE_PRIORITY[doc] = "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe."
1038 </info>
1039 <glossdef>
1040 <para role="glossdeffirst">
1041<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1042 Assigns the priority for recipe files in each layer.
1043 </para>
1044
1045 <para>
1046 This variable is useful in situations where the same recipe appears in
1047 more than one layer.
1048 Setting this variable allows you to prioritize a
1049 layer against other layers that contain the same recipe - effectively
1050 letting you control the precedence for the multiple layers.
1051 The precedence established through this variable stands regardless of a
1052 recipe's version
1053 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1054 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1055 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1056 lower precedence.
1057 </para>
1058
1059 <para>
1060 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1061 precedence.
1062 For example, the value 6 has a higher precedence than the value 5.
1063 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1064 dependencies (see the
1065 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1066 more information.
1067 The default priority, if unspecified
1068 for a layer with no dependencies, is the lowest defined priority + 1
1069 (or 1 if no priorities are defined).
1070 </para>
1071 <tip>
1072 You can use the command <filename>bitbake-layers show-layers</filename> to list
1073 all configured layers along with their priorities.
1074 </tip>
1075 </glossdef>
1076 </glossentry>
1077
1078 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1079 <info>
1080 BBFILES[doc] = "List of recipe files used by BitBake to build software."
1081 </info>
1082 <glossdef>
1083 <para role="glossdeffirst">
1084<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1085 List of recipe files used by BitBake to build software.
1086 </para>
1087 </glossdef>
1088 </glossentry>
1089
1090 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1091 <info>
1092 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1093 </info>
1094 <glossdef>
1095 <para role="glossdeffirst">
1096<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1097 Variable that controls how BitBake displays logs on build failure.
1098 </para>
1099 </glossdef>
1100 </glossentry>
1101
1102 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1103 <info>
1104 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1105 </info>
1106 <glossdef>
1107 <para role="glossdeffirst">
1108<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1109 If
1110 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1111 is set, specifies the maximum number of lines from the
1112 task log file to print when reporting a failed task.
1113 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1114 the entire log is printed.
1115 </para>
1116 </glossdef>
1117 </glossentry>
1118
1119 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1120 <info>
1121 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1122 </info>
1123 <glossdef>
1124 <para role="glossdeffirst">
1125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1126 Lists the layers to enable during the build.
1127 This variable is defined in the <filename>bblayers.conf</filename> configuration
1128 file in the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
1129 Here is an example:
1130 <literallayout class='monospaced'>
1131 BBLAYERS = " \
1132 /home/scottrif/poky/meta \
1133 /home/scottrif/poky/meta-yocto \
1134 /home/scottrif/poky/meta-yocto-bsp \
1135 /home/scottrif/poky/meta-mykernel \
1136 "
1137
1138 BBLAYERS_NON_REMOVABLE ?= " \
1139 /home/scottrif/poky/meta \
1140 /home/scottrif/poky/meta-yocto \
1141 "
1142 </literallayout>
1143 <note>
1144 The
1145 <link linkend='var-BBLAYERS_NON_REMOVABLE'><filename>BBLAYERS_NON_REMOVABLE</filename></link>
1146 variable exists only for
1147 <ulink url='https://www.yoctoproject.org/tools-resources/projects/hob'>Hob</ulink>.
1148 The OpenEmbedded build system does not use this
1149 variable.
1150 </note>
1151 </para>
1152
1153 <para>
1154 This example enables four layers, one of which is a custom, user-defined layer
1155 named <filename>meta-mykernel</filename>.
1156 </para>
1157 </glossdef>
1158 </glossentry>
1159
1160 <glossentry id='var-BBLAYERS_NON_REMOVABLE'><glossterm>BBLAYERS_NON_REMOVABLE</glossterm>
1161 <info>
1162 BBLAYERS_NON_REMOVABLE[doc] = "Lists core layers that cannot be removed from the bblayers.conf file."
1163 </info>
1164 <glossdef>
1165 <para role="glossdeffirst">
1166<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1167 Lists core layers that cannot be removed from the
1168 <filename>bblayers.conf</filename> file during a build
1169 using the
1170 <ulink url='https://www.yoctoproject.org/tools-resources/projects/hob'>Hob</ulink>.
1171 <note>
1172 When building an image outside of Hob, the OpenEmbedded
1173 build system ignores this variable.
1174 </note>
1175 </para>
1176
1177 <para>
1178 In order for BitBake to build your image using Hob, your
1179 <filename>bblayers.conf</filename> file must include the
1180 <filename>meta</filename> and <filename>meta-yocto</filename>
1181 core layers.
1182 Here is an example that shows these two layers listed in
1183 the <filename>BBLAYERS_NON_REMOVABLE</filename> statement:
1184 <literallayout class='monospaced'>
1185 BBLAYERS = " \
1186 /home/scottrif/poky/meta \
1187 /home/scottrif/poky/meta-yocto \
1188 /home/scottrif/poky/meta-yocto-bsp \
1189 /home/scottrif/poky/meta-mykernel \
1190 "
1191
1192 BBLAYERS_NON_REMOVABLE ?= " \
1193 /home/scottrif/poky/meta \
1194 /home/scottrif/poky/meta-yocto \
1195 "
1196 </literallayout>
1197 </para>
1198 </glossdef>
1199 </glossentry>
1200
1201 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1202 <info>
1203 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files. Use the BBMASK variable from within conf/local.conf."
1204 </info>
1205 <glossdef>
1206 <para role="glossdeffirst">
1207<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1208 Prevents BitBake from processing recipes and recipe
1209 append files.
1210 Use the <filename>BBMASK</filename> variable from within the
1211 <filename>conf/local.conf</filename> file found
1212 in the
1213 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
1214 </para>
1215
1216 <para>
1217 You can use the <filename>BBMASK</filename> variable
1218 to "hide" these <filename>.bb</filename> and
1219 <filename>.bbappend</filename> files.
1220 BitBake ignores any recipe or recipe append files that
1221 match the expression.
1222 It is as if BitBake does not see them at all.
1223 Consequently, matching files are not parsed or otherwise
1224 used by BitBake.</para>
1225 <para>
1226 The value you provide is passed to Python's regular
1227 expression compiler.
1228 The expression is compared against the full paths to
1229 the files.
1230 For complete syntax information, see Python's
1231 documentation at
1232 <ulink url='http://docs.python.org/release/2.3/lib/re-syntax.html'></ulink>.
1233 </para>
1234
1235 <para>
1236 The following example uses a complete regular expression
1237 to tell BitBake to ignore all recipe and recipe append
1238 files in the <filename>meta-ti/recipes-misc/</filename>
1239 directory:
1240 <literallayout class='monospaced'>
1241 BBMASK = "meta-ti/recipes-misc/"
1242 </literallayout>
1243 If you want to mask out multiple directories or recipes,
1244 use the vertical bar to separate the regular expression
1245 fragments.
1246 This next example masks out multiple directories and
1247 individual recipes:
1248 <literallayout class='monospaced'>
1249 BBMASK = "meta-ti/recipes-misc/|meta-ti/recipes-ti/packagegroup/"
1250 BBMASK .= "|.*meta-oe/recipes-support/"
1251 BBMASK .= "|.*openldap"
1252 BBMASK .= "|.*opencv"
1253 BBMASK .= "|.*lzma"
1254 </literallayout>
1255 Notice how the vertical bar is used to append the fragments.
1256 <note>
1257 When specifying a directory name, use the trailing
1258 slash character to ensure you match just that directory
1259 name.
1260 </note>
1261 </para>
1262 </glossdef>
1263 </glossentry>
1264
1265 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1266 <info>
1267 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1268 </info>
1269 <glossdef>
1270 <para role="glossdeffirst">
1271<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1272 Used by BitBake to locate
1273 <filename>.bbclass</filename> and configuration files.
1274 This variable is analogous to the
1275 <filename>PATH</filename> variable.
1276 <note>
1277 If you run BitBake from a directory outside of the
1278 <ulink url='&YOCTO_DOCS_DEV_URL;build-directory'>Build Directory</ulink>,
1279 you must be sure to set
1280 <filename>BBPATH</filename> to point to the
1281 Build Directory.
1282 Set the variable as you would any environment variable
1283 and then run BitBake:
1284 <literallayout class='monospaced'>
1285 $ BBPATH = "<replaceable>build_directory</replaceable>"
1286 $ export BBPATH
1287 $ bitbake <replaceable>target</replaceable>
1288 </literallayout>
1289 </note>
1290 </para>
1291 </glossdef>
1292 </glossentry>
1293
1294 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1295 <info>
1296 BBSERVER[doc] = "Points to the server that runs memory-resident BitBake."
1297 </info>
1298 <glossdef>
1299 <para role="glossdeffirst">
1300<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1301 Points to the server that runs memory-resident BitBake.
1302 This variable is set by the
1303 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>
1304 setup script and should not be hand-edited.
1305 The variable is only used when you employ memory-resident
1306 BitBake.
1307 The setup script exports the value as follows:
1308 <literallayout class='monospaced'>
1309 export BBSERVER=localhost:$port
1310 </literallayout>
1311 </para>
1312
1313 <para>
1314 For more information on how the
1315 <filename>BBSERVER</filename> is used, see the
1316 <filename>oe-init-build-env-memres</filename> script, which
1317 is located in the
1318 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
1319 </para>
1320 </glossdef>
1321 </glossentry>
1322
1323 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1324 <info>
1325 BINCONFIG[doc] = "When inheriting the binconfig-disabled class, this variable specifies binary configuration scripts to disable in favor of using pkg-config to query the information."
1326 </info>
1327 <glossdef>
1328 <para role="glossdeffirst">
1329<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1330 When inheriting the
1331 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1332 class, this variable specifies binary configuration
1333 scripts to disable in favor of using
1334 <filename>pkg-config</filename> to query the information.
1335 The <filename>binconfig-disabled</filename> class will
1336 modify the specified scripts to return an error so that
1337 calls to them can be easily found and replaced.
1338 </para>
1339
1340 <para>
1341 To add multiple scripts, separate them by spaces.
1342 Here is an example from the <filename>libpng</filename>
1343 recipe:
1344 <literallayout class='monospaced'>
1345 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1346 </literallayout>
1347 </para>
1348 </glossdef>
1349 </glossentry>
1350
1351 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1352 <info>
1353 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1354 </info>
1355 <glossdef>
1356 <para role="glossdeffirst">
1357<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1358 When inheriting the
1359 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1360 class, this variable specifies a wildcard for
1361 configuration scripts that need editing.
1362 The scripts are edited to correct any paths that have been
1363 set up during compilation so that they are correct for
1364 use when installed into the sysroot and called by the
1365 build processes of other recipes.
1366 </para>
1367
1368 <para>
1369 For more information on how this variable works, see
1370 <filename>meta/classes/binconfig.bbclass</filename> in the
1371 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
1372 You can also find general information on the class in the
1373 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1374 section.
1375 </para>
1376 </glossdef>
1377 </glossentry>
1378
1379 <glossentry id='var-BP'><glossterm>BP</glossterm>
1380 <info>
1381 BP[doc] = "The base recipe name and version but without any special recipe name suffix (i.e. -native, lib64-, and so forth). BP is comprised of ${BPN}-${PV}"
1382 </info>
1383 <glossdef>
1384 <para role="glossdeffirst">
1385<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1386 The base recipe name and version but without any special
1387 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1388 and so forth).
1389 <filename>BP</filename> is comprised of the following:
1390 <literallayout class="monospaced">
1391 ${BPN}-${PV}
1392 </literallayout>
1393 </para>
1394 </glossdef>
1395 </glossentry>
1396
1397 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1398 <info>
1399 BPN[doc] = "The bare name of the recipe. This variable is a version of the PN variable but removes common suffixes and prefixes."
1400 </info>
1401 <glossdef>
1402 <para role="glossdeffirst">
1403<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1404 The bare name of the recipe.
1405 This variable is a version of the <link linkend='var-PN'><filename>PN</filename></link> variable
1406 but removes common suffixes such as "-native" and "-cross" as well
1407 as removes common prefixes such as multilib's "lib64-" and "lib32-".
1408 The exact list of suffixes removed is specified by the
1409 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link> variable.
1410 The exact list of prefixes removed is specified by the
1411 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link> variable.
1412 Prefixes are removed for <filename>multilib</filename>
1413 and <filename>nativesdk</filename> cases.
1414 </para>
1415 </glossdef>
1416 </glossentry>
1417
1418 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1419 <info>
1420 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1421 </info>
1422 <glossdef>
1423 <para role="glossdeffirst">
1424<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1425 Specifies a URL for an upstream bug tracking website for
1426 a recipe.
1427 The OpenEmbedded build system does not use this variable.
1428 Rather, the variable is a useful pointer in case a bug
1429 in the software being built needs to be manually reported.
1430 </para>
1431 </glossdef>
1432 </glossentry>
1433
1434 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1435 <info>
1436 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1437 </info>
1438 <glossdef>
1439 <para role="glossdeffirst">
1440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1441 Specifies the architecture of the build host
1442 (e.g. <filename>i686</filename>).
1443 The OpenEmbedded build system sets the value of
1444 <filename>BUILD_ARCH</filename> from the machine name
1445 reported by the <filename>uname</filename> command.
1446 </para>
1447 </glossdef>
1448 </glossentry>
1449
1450 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1451 <info>
1452 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1453 </info>
1454 <glossdef>
1455 <para role="glossdeffirst">
1456<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1457 Specifies the flags to pass to the C compiler when building
1458 for the build host.
1459 When building in the <filename>-native</filename> context,
1460 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1461 is set to the value of this variable by default.
1462 </para>
1463 </glossdef>
1464 </glossentry>
1465
1466 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1467 <info>
1468 BUILD_CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers) when building for the build host."
1469 </info>
1470 <glossdef>
1471 <para role="glossdeffirst">
1472<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1473 Specifies the flags to pass to the C pre-processor
1474 (i.e. to both the C and the C++ compilers) when building
1475 for the build host.
1476 When building in the <filename>native</filename> context,
1477 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1478 is set to the value of this variable by default.
1479 </para>
1480 </glossdef>
1481 </glossentry>
1482
1483 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1484 <info>
1485 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1486 </info>
1487 <glossdef>
1488 <para role="glossdeffirst">
1489<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1490 Specifies the flags to pass to the C++ compiler when
1491 building for the build host.
1492 When building in the <filename>native</filename> context,
1493 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1494 is set to the value of this variable by default.
1495 </para>
1496 </glossdef>
1497 </glossentry>
1498
1499 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1500 <info>
1501 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1502 </info>
1503 <glossdef>
1504 <para role="glossdeffirst">
1505<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1506 Specifies the flags to pass to the linker when building
1507 for the build host.
1508 When building in the <filename>-native</filename> context,
1509 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1510 is set to the value of this variable by default.
1511 </para>
1512 </glossdef>
1513 </glossentry>
1514
1515 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1516 <info>
1517 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1518 </info>
1519 <glossdef>
1520 <para role="glossdeffirst">
1521<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1522 Specifies the optimization flags passed to the C compiler
1523 when building for the build host or the SDK.
1524 The flags are passed through the
1525 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1526 and
1527 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1528 default values.
1529 </para>
1530
1531 <para>
1532 The default value of the
1533 <filename>BUILD_OPTIMIZATION</filename> variable is
1534 "-O2 -pipe".
1535 </para>
1536 </glossdef>
1537 </glossentry>
1538
1539 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1540 <info>
1541 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1542 </info>
1543 <glossdef>
1544 <para role="glossdeffirst">
1545<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1546 Specifies the operating system in use on the build
1547 host (e.g. "linux").
1548 The OpenEmbedded build system sets the value of
1549 <filename>BUILD_OS</filename> from the OS reported by
1550 the <filename>uname</filename> command - the first word,
1551 converted to lower-case characters.
1552 </para>
1553 </glossdef>
1554 </glossentry>
1555
1556 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1557 <info>
1558 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1559 </info>
1560 <glossdef>
1561 <para role="glossdeffirst">
1562<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1563 The toolchain binary prefix used for native recipes.
1564 The OpenEmbedded build system uses the
1565 <filename>BUILD_PREFIX</filename> value to set the
1566 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
1567 when building for native recipes.
1568 </para>
1569 </glossdef>
1570 </glossentry>
1571
1572 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1573 <info>
1574 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1575 </info>
1576 <glossdef>
1577 <para role="glossdeffirst">
1578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1579 Specifies the system, including the architecture and
1580 the operating system, to use when building for the build
1581 host (i.e. when building <filename>native</filename>
1582 recipes).
1583 </para>
1584
1585 <para>
1586 The OpenEmbedded build system automatically sets this
1587 variable based on
1588 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1589 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1590 and
1591 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1592 You do not need to set the <filename>BUILD_SYS</filename>
1593 variable yourself.
1594 </para>
1595 </glossdef>
1596 </glossentry>
1597
1598 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1599 <info>
1600 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1601 </info>
1602 <glossdef>
1603 <para role="glossdeffirst">
1604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1605 Specifies the vendor name to use when building for the
1606 build host.
1607 The default value is an empty string ("").
1608 </para>
1609 </glossdef>
1610 </glossentry>
1611
1612 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1613 <info>
1614 BUILDDIR[doc] = "Points to the location of the Build Directory."
1615 </info>
1616 <glossdef>
1617 <para role="glossdeffirst">
1618<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1619 Points to the location of the
1620 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
1621 You can define this directory indirectly through the
1622 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
1623 and
1624 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>
1625 scripts by passing in a Build Directory path when you run
1626 the scripts.
1627 If you run the scripts and do not provide a Build Directory
1628 path, the <filename>BUILDDIR</filename> defaults to
1629 <filename>build</filename> in the current directory.
1630 </para>
1631 </glossdef>
1632 </glossentry>
1633
1634 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1635 <info>
1636 BUILDHISTORY_COMMIT[doc] = "When inheriting the buildhistory class, this variable specifies whether or not to commit the build history output in a local Git repository."
1637 </info>
1638 <glossdef>
1639 <para role="glossdeffirst">
1640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1641 When inheriting the
1642 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1643 class, this variable specifies whether or not to commit the
1644 build history output in a local Git repository.
1645 If set to "1", this local repository will be maintained
1646 automatically by the
1647 <filename>buildhistory</filename>
1648 class and a commit will be created on every
1649 build for changes to each top-level subdirectory of the
1650 build history output (images, packages, and sdk).
1651 If you want to track changes to build history over
1652 time, you should set this value to "1".
1653 </para>
1654
1655 <para>
1656 By default, the <filename>buildhistory</filename> class
1657 does not commit the build history output in a local
1658 Git repository:
1659 <literallayout class='monospaced'>
1660 BUILDHISTORY_COMMIT ?= "0"
1661 </literallayout>
1662 </para>
1663 </glossdef>
1664 </glossentry>
1665
1666 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1667 <info>
1668 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1669 </info>
1670 <glossdef>
1671 <para role="glossdeffirst">
1672<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1673 When inheriting the
1674 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1675 class, this variable specifies the author to use for each
1676 Git commit.
1677 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1678 variable to work, the
1679 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1680 variable must be set to "1".
1681 </para>
1682
1683 <para>
1684 Git requires that the value you provide for the
1685 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
1686 takes the form of "name &lt;email@host&gt;".
1687 Providing an email address or host that is not valid does
1688 not produce an error.
1689 </para>
1690
1691 <para>
1692 By default, the <filename>buildhistory</filename> class
1693 sets the variable as follows:
1694 <literallayout class='monospaced'>
1695 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1696 </literallayout>
1697 </para>
1698 </glossdef>
1699 </glossentry>
1700
1701 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1702 <info>
1703 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1704 </info>
1705 <glossdef>
1706 <para role="glossdeffirst">
1707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1708 When inheriting the
1709 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1710 class, this variable specifies the directory in which
1711 build history information is kept.
1712 For more information on how the variable works, see the
1713 <filename>buildhistory.class</filename>.
1714 </para>
1715
1716 <para>
1717 By default, the <filename>buildhistory</filename> class
1718 sets the directory as follows:
1719 <literallayout class='monospaced'>
1720 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1721 </literallayout>
1722 </para>
1723 </glossdef>
1724 </glossentry>
1725
1726 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1727 <info>
1728 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1729 </info>
1730 <glossdef>
1731 <para role="glossdeffirst">
1732<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1733 When inheriting the
1734 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1735 class, this variable specifies the build history features
1736 to be enabled.
1737 For more information on how build history works, see the
1738 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
1739 section.
1740 </para>
1741
1742 <para>
1743 You can specify three features in the form of a
1744 space-separated list:
1745 <itemizedlist>
1746 <listitem><para><emphasis>image:</emphasis>
1747 Analysis of the contents of images, which
1748 includes the list of installed packages among other
1749 things.
1750 </para></listitem>
1751 <listitem><para><emphasis>package:</emphasis>
1752 Analysis of the contents of individual packages.
1753 </para></listitem>
1754 <listitem><para><emphasis>sdk:</emphasis>
1755 Analysis of the contents of the software
1756 development kit (SDK).
1757 </para></listitem>
1758 </itemizedlist>
1759 </para>
1760
1761 <para>
1762 By default, the <filename>buildhistory</filename> class
1763 enables all three features:
1764 <literallayout class='monospaced'>
1765 BUILDHISTORY_FEATURES ?= "image package sdk"
1766 </literallayout>
1767 </para>
1768 </glossdef>
1769 </glossentry>
1770
1771 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
1772 <info>
1773 BUILDHISTORY_IMAGE_FILES[doc] = "When inheriting the buildhistory class, this variable specifies a list of paths to files copied from the image contents into the build history directory under an "image-files" directory in the directory for the image, so that you can track the contents of each file."
1774 </info>
1775 <glossdef>
1776 <para role="glossdeffirst">
1777<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1778 When inheriting the
1779 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1780 class, this variable specifies a list of paths to files
1781 copied from the
1782 image contents into the build history directory under
1783 an "image-files" directory in the directory for
1784 the image, so that you can track the contents of each file.
1785 The default is to copy <filename>/etc/passwd</filename>
1786 and <filename>/etc/group</filename>, which allows you to
1787 monitor for changes in user and group entries.
1788 You can modify the list to include any file.
1789 Specifying an invalid path does not produce an error.
1790 Consequently, you can include files that might
1791 not always be present.
1792 </para>
1793
1794 <para>
1795 By default, the <filename>buildhistory</filename> class
1796 provides paths to the following files:
1797 <literallayout class='monospaced'>
1798 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1799 </literallayout>
1800 </para>
1801 </glossdef>
1802 </glossentry>
1803
1804 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
1805 <info>
1806 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
1807 </info>
1808 <glossdef>
1809 <para role="glossdeffirst">
1810<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1811 When inheriting the
1812 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1813 class, this variable optionally specifies a remote
1814 repository to which build history pushes Git changes.
1815 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
1816 to work,
1817 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1818 must be set to "1".
1819 </para>
1820
1821 <para>
1822 The repository should correspond to a remote
1823 address that specifies a repository as understood by
1824 Git, or alternatively to a remote name that you have
1825 set up manually using <filename>git remote</filename>
1826 within the local repository.
1827 </para>
1828
1829 <para>
1830 By default, the <filename>buildhistory</filename> class
1831 sets the variable as follows:
1832 <literallayout class='monospaced'>
1833 BUILDHISTORY_PUSH_REPO ?= ""
1834 </literallayout>
1835 </para>
1836 </glossdef>
1837 </glossentry>
1838
1839 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
1840 <info>
1841 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
1842 </info>
1843 <glossdef>
1844 <para role="glossdeffirst">
1845<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1846 Specifies the flags to pass to the C compiler when building
1847 for the SDK.
1848 When building in the <filename>nativesdk</filename>
1849 context,
1850 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1851 is set to the value of this variable by default.
1852 </para>
1853 </glossdef>
1854 </glossentry>
1855
1856 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
1857 <info>
1858 BUILDSDK_CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers) when building for the SDK."
1859 </info>
1860 <glossdef>
1861 <para role="glossdeffirst">
1862<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1863 Specifies the flags to pass to the C pre-processor
1864 (i.e. to both the C and the C++ compilers) when building
1865 for the SDK.
1866 When building in the <filename>nativesdk</filename>
1867 context,
1868 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1869 is set to the value of this variable by default.
1870 </para>
1871 </glossdef>
1872 </glossentry>
1873
1874 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
1875 <info>
1876 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
1877 </info>
1878 <glossdef>
1879 <para role="glossdeffirst">
1880<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1881 Specifies the flags to pass to the C++ compiler when
1882 building for the SDK.
1883 When building in the <filename>nativesdk</filename>
1884 context,
1885 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1886 is set to the value of this variable by default.
1887 </para>
1888 </glossdef>
1889 </glossentry>
1890
1891 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
1892 <info>
1893 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
1894 </info>
1895 <glossdef>
1896 <para role="glossdeffirst">
1897<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1898 Specifies the flags to pass to the linker when building
1899 for the SDK.
1900 When building in the <filename>nativesdk-</filename>
1901 context,
1902 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1903 is set to the value of this variable by default.
1904 </para>
1905 </glossdef>
1906 </glossentry>
1907
1908 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
1909 <info>
1910 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
1911 </info>
1912 <glossdef>
1913 <para role="glossdeffirst">
1914<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1915 Points to the location of the directory that holds build
1916 statistics when you use and enable the
1917 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
1918 class.
1919 The <filename>BUILDSTATS_BASE</filename> directory defaults
1920 to
1921 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
1922 </para>
1923 </glossdef>
1924 </glossentry>
1925
1926 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
1927 <info>
1928 BUSYBOX_SPLIT_SUID[doc] = "For the BusyBox recipe, specifies whether to split the output executable file into two parts: one for features that require setuid root, and one for the remaining features."
1929 </info>
1930 <glossdef>
1931 <para role="glossdeffirst">
1932<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1933 For the BusyBox recipe, specifies whether to split the
1934 output executable file into two parts: one for features
1935 that require <filename>setuid root</filename>, and one for
1936 the remaining features (i.e. those that do not require
1937 <filename>setuid root</filename>).
1938 </para>
1939
1940 <para>
1941 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
1942 defaults to "1", which results in a single output
1943 executable file.
1944 Set the variable to "0" to split the output file.
1945 </para>
1946 </glossdef>
1947 </glossentry>
1948
1949 </glossdiv>
1950
1951 <glossdiv id='var-glossary-c'><title>C</title>
1952
1953 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
1954 <info>
1955 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
1956 </info>
1957 <glossdef>
1958 <para role="glossdeffirst">
1959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1960 Specifies the directory BitBake uses to store a cache
1961 of the
1962 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
1963 so it does not need to be parsed every time BitBake is
1964 started.
1965 </para>
1966 </glossdef>
1967 </glossentry>
1968
1969 <glossentry id='var-CC'><glossterm>CC</glossterm>
1970 <info>
1971 CC[doc] = "Minimum command and arguments to run the C compiler."
1972 </info>
1973 <glossdef>
1974 <para role="glossdeffirst">
1975<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1976 The minimal command and arguments used to run the C
1977 compiler.
1978 </para>
1979 </glossdef>
1980 </glossentry>
1981
1982 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
1983 <info>
1984 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
1985 </info>
1986 <glossdef>
1987 <para role="glossdeffirst">
1988<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1989 Specifies the flags to pass to the C compiler.
1990 This variable is exported to an environment
1991 variable and thus made visible to the software being
1992 built during the compilation step.
1993 </para>
1994
1995 <para>
1996 Default initialization for <filename>CFLAGS</filename>
1997 varies depending on what is being built:
1998 <itemizedlist>
1999 <listitem><para>
2000 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2001 when building for the target
2002 </para></listitem>
2003 <listitem><para>
2004 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2005 when building for the build host (i.e.
2006 <filename>-native</filename>)
2007 </para></listitem>
2008 <listitem><para>
2009 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2010 when building for an SDK (i.e.
2011 <filename>nativesdk-</filename>)
2012 </para></listitem>
2013 </itemizedlist>
2014 </para>
2015 </glossdef>
2016 </glossentry>
2017
2018 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2019 <info>
2020 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2021 </info>
2022 <glossdef>
2023 <para role="glossdeffirst">
2024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2025 An internal variable specifying the special class override
2026 that should currently apply (e.g. "class-target",
2027 "class-native", and so forth).
2028 The classes that use this variable set it to
2029 appropriate values.
2030 </para>
2031
2032 <para>
2033 You do not normally directly interact with this variable.
2034 The value for the <filename>CLASSOVERRIDE</filename>
2035 variable goes into
2036 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
2037 and then can be used as an override.
2038 Here is an example where "python-native" is added to
2039 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
2040 only when building for the native case:
2041 <literallayout class='monospaced'>
2042 DEPENDS_append_class-native = " python-native"
2043 </literallayout>
2044 </para>
2045 </glossdef>
2046 </glossentry>
2047
2048 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2049 <info>
2050 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2051 </info>
2052 <glossdef>
2053 <para role="glossdeffirst">
2054<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2055 If set to "1" within a recipe,
2056 <filename>CLEANBROKEN</filename> specifies that
2057 the <filename>make clean</filename> command does
2058 not work for the software being built.
2059 Consequently, the OpenEmbedded build system will not try
2060 to run <filename>make clean</filename> during the
2061 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2062 task, which is the default behavior.
2063 </para>
2064 </glossdef>
2065 </glossentry>
2066
2067 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2068 <info>
2069 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2070 </info>
2071 <glossdef>
2072 <para role="glossdeffirst">
2073<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2074 Provides a list of hardware features that are enabled in
2075 both
2076 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2077 and
2078 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2079 This select list of features contains features that make
2080 sense to be controlled both at the machine and distribution
2081 configuration level.
2082 For example, the "bluetooth" feature requires hardware
2083 support but should also be optional at the distribution
2084 level, in case the hardware supports Bluetooth but you
2085 do not ever intend to use it.
2086 </para>
2087
2088 <para>
2089 For more information, see the
2090 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2091 and <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
2092 variables.
2093 </para>
2094 </glossdef>
2095 </glossentry>
2096
2097 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2098 <info>
2099 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2100 </info>
2101 <glossdef>
2102 <para role="glossdeffirst">
2103<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2104 Points to <filename>meta/files/common-licenses</filename>
2105 in the
2106 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
2107 which is where generic license files reside.
2108 </para>
2109 </glossdef>
2110 </glossentry>
2111
2112 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2113 <info>
2114 COMPATIBLE_HOST[doc] = "A regular expression that resolves to one or more hosts (when the recipe is native) or one or more targets (when the recipe is non-native) with which a recipe is compatible."
2115 </info>
2116 <glossdef>
2117 <para role="glossdeffirst">
2118<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2119 A regular expression that resolves to one or more hosts
2120 (when the recipe is native) or one or more targets (when
2121 the recipe is non-native) with which a recipe is compatible.
2122 The regular expression is matched against
2123 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2124 You can use the variable to stop recipes from being built
2125 for classes of systems with which the recipes are not
2126 compatible.
2127 Stopping these builds is particularly useful with kernels.
2128 The variable also helps to increase parsing speed
2129 since the build system skips parsing recipes not
2130 compatible with the current system.
2131 </para>
2132 </glossdef>
2133 </glossentry>
2134
2135 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2136 <info>
2137 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2138 </info>
2139 <glossdef>
2140 <para role="glossdeffirst">
2141<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2142 A regular expression that resolves to one or more
2143 target machines with which a recipe is compatible.
2144 The regular expression is matched against
2145 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2146 You can use the variable to stop recipes from being built
2147 for machines with which the recipes are not compatible.
2148 Stopping these builds is particularly useful with kernels.
2149 The variable also helps to increase parsing speed
2150 since the build system skips parsing recipes not
2151 compatible with the current machine.
2152 </para>
2153 </glossdef>
2154 </glossentry>
2155
2156 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2157 <info>
2158 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2159 </info>
2160 <glossdef>
2161 <para role="glossdeffirst">
2162<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2163 Defines wildcards to match when installing a list of
2164 complementary packages for all the packages explicitly
2165 (or implicitly) installed in an image.
2166 The resulting list of complementary packages is associated
2167 with an item that can be added to
2168 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2169 An example usage of this is the "dev-pkgs" item that when
2170 added to <filename>IMAGE_FEATURES</filename> will
2171 install -dev packages (containing headers and other
2172 development files) for every package in the image.
2173 </para>
2174
2175 <para>
2176 To add a new feature item pointing to a wildcard, use a
2177 variable flag to specify the feature item name and
2178 use the value to specify the wildcard.
2179 Here is an example:
2180 <literallayout class='monospaced'>
2181 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2182 </literallayout>
2183 </para>
2184 </glossdef>
2185 </glossentry>
2186
2187 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2188 <info>
2189 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2190 </info>
2191 <glossdef>
2192 <para role="glossdeffirst">
2193<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2194 Tracks the version of the local configuration file
2195 (i.e. <filename>local.conf</filename>).
2196 The value for <filename>CONF_VERSION</filename>
2197 increments each time <filename>build/conf/</filename>
2198 compatibility changes.
2199 </para>
2200 </glossdef>
2201 </glossentry>
2202
2203 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2204 <info>
2205 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2206 </info>
2207 <glossdef>
2208 <para role="glossdeffirst">
2209<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2210 Identifies editable or configurable files that are part of a package.
2211 If the Package Management System (PMS) is being used to update
2212 packages on the target system, it is possible that
2213 configuration files you have changed after the original installation
2214 and that you now want to remain unchanged are overwritten.
2215 In other words, editable files might exist in the package that you do not
2216 want reset as part of the package update process.
2217 You can use the <filename>CONFFILES</filename> variable to list the files in the
2218 package that you wish to prevent the PMS from overwriting during this update process.
2219 </para>
2220
2221 <para>
2222 To use the <filename>CONFFILES</filename> variable, provide a package name
2223 override that identifies the resulting package.
2224 Then, provide a space-separated list of files.
2225 Here is an example:
2226 <literallayout class='monospaced'>
2227 CONFFILES_${PN} += "${sysconfdir}/file1 \
2228 ${sysconfdir}/file2 ${sysconfdir}/file3"
2229 </literallayout>
2230 </para>
2231
2232 <para>
2233 A relationship exists between the <filename>CONFFILES</filename> and
2234 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2235 The files listed within <filename>CONFFILES</filename> must be a subset of
2236 the files listed within <filename>FILES</filename>.
2237 Because the configuration files you provide with <filename>CONFFILES</filename>
2238 are simply being identified so that the PMS will not overwrite them,
2239 it makes sense that
2240 the files must already be included as part of the package through the
2241 <filename>FILES</filename> variable.
2242 </para>
2243
2244 <note>
2245 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2246 it is good practice to use appropriate path variables.
2247 For example, <filename>${sysconfdir}</filename> rather than
2248 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2249 than <filename>/usr/bin</filename>.
2250 You can find a list of these variables at the top of the
2251 <filename>meta/conf/bitbake.conf</filename> file in the
2252 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
2253 </note>
2254 </glossdef>
2255 </glossentry>
2256
2257 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2258 <info>
2259 CONFIG_INITRAMFS_SOURCE[doc] = "Identifies the initial RAM disk (initramfs) source files. The OpenEmbedded build system receives and uses this kernel Kconfig variable as an environment variable."
2260 </info>
2261 <glossdef>
2262 <para role="glossdeffirst">
2263<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2264 Identifies the initial RAM disk (initramfs) source files.
2265 The OpenEmbedded build system receives and uses
2266 this kernel Kconfig variable as an environment variable.
2267 By default, the variable is set to null ("").
2268 </para>
2269
2270 <para>
2271 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2272 either a single cpio archive with a
2273 <filename>.cpio</filename> suffix or a
2274 space-separated list of directories and files for building
2275 the initramfs image.
2276 A cpio archive should contain a filesystem archive
2277 to be used as an initramfs image.
2278 Directories should contain a filesystem layout to be
2279 included in the initramfs image.
2280 Files should contain entries according to the format
2281 described by the
2282 <filename>usr/gen_init_cpio</filename> program in the
2283 kernel tree.
2284 </para>
2285
2286 <para>
2287 If you specify multiple directories and files, the
2288 initramfs image will be the aggregate of all of them.
2289 </para>
2290 </glossdef>
2291 </glossentry>
2292
2293 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2294 <info>
2295 CONFIG_SITE[doc] = "A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running configure."
2296 </info>
2297 <glossdef>
2298 <para role="glossdeffirst">
2299<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2300 A list of files that contains <filename>autoconf</filename> test results relevant
2301 to the current build.
2302 This variable is used by the Autotools utilities when running
2303 <filename>configure</filename>.
2304 </para>
2305 </glossdef>
2306 </glossentry>
2307
2308 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2309 <info>
2310 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2311 </info>
2312 <glossdef>
2313 <para role="glossdeffirst">
2314<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2315 The minimal arguments for GNU configure.
2316 </para>
2317 </glossdef>
2318 </glossentry>
2319
2320 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2321 <info>
2322 CONFLICT_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that would be in conflict should the recipe be built."
2323 </info>
2324 <glossdef>
2325 <para role="glossdeffirst">
2326<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2327 When inheriting the
2328 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2329 class, this
2330 variable identifies distribution features that would
2331 be in conflict should the recipe
2332 be built.
2333 In other words, if the
2334 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2335 lists a feature that also appears in
2336 <filename>DISTRO_FEATURES</filename> within the
2337 current configuration, an error occurs and the
2338 build stops.
2339 </para>
2340 </glossdef>
2341 </glossentry>
2342
2343 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2344 <info>
2345 COPY_LIC_DIRS[doc] = "If set to "1" along with the COPY_LIC_MANIFEST variable, the OpenEmbedded build system copies into the image the license files, which are located in /usr/share/common-licenses, for each package."
2346 </info>
2347 <glossdef>
2348 <para role="glossdeffirst">
2349<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2350 If set to "1" along with the
2351 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2352 variable, the OpenEmbedded build system copies
2353 into the image the license files, which are located in
2354 <filename>/usr/share/common-licenses</filename>,
2355 for each package.
2356 The license files are placed
2357 in directories within the image itself.
2358 </para>
2359 </glossdef>
2360 </glossentry>
2361
2362 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2363 <info>
2364 COPY_LIC_MANIFEST[doc] = "If set to "1", the OpenEmbedded build system copies the license manifest for the image to /usr/share/common-licenses/license.manifest within the image itself."
2365 </info>
2366 <glossdef>
2367 <para role="glossdeffirst">
2368<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2369 If set to "1", the OpenEmbedded build system copies
2370 the license manifest for the image to
2371 <filename>/usr/share/common-licenses/license.manifest</filename>
2372 within the image itself.
2373 </para>
2374 </glossdef>
2375 </glossentry>
2376
2377 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2378 <info>
2379 CORE_IMAGE_EXTRA_INSTALL[doc] = "Specifies the list of packages to be added to the image. You should only set this variable in the conf/local.conf file in the Build Directory."
2380 </info>
2381 <glossdef>
2382 <para role="glossdeffirst">
2383<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2384 Specifies the list of packages to be added to the image.
2385 You should only set this variable in the
2386 <filename>local.conf</filename> configuration file found
2387 in the
2388 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
2389 </para>
2390
2391 <para>
2392 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2393 </para>
2394 </glossdef>
2395 </glossentry>
2396
2397 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2398 <info>
2399 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded Core Metadata layer (i.e. meta)."
2400 </info>
2401 <glossdef>
2402 <para role="glossdeffirst">
2403<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2404 Specifies the parent directory of the OpenEmbedded
2405 Core Metadata layer (i.e. <filename>meta</filename>).
2406 </para>
2407
2408 <para>
2409 It is an important distinction that
2410 <filename>COREBASE</filename> points to the parent of this
2411 layer and not the layer itself.
2412 Consider an example where you have cloned the Poky Git
2413 repository and retained the <filename>poky</filename>
2414 name for your local copy of the repository.
2415 In this case, <filename>COREBASE</filename> points to
2416 the <filename>poky</filename> folder because it is the
2417 parent directory of the <filename>poky/meta</filename>
2418 layer.
2419 </para>
2420 </glossdef>
2421 </glossentry>
2422
2423 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2424 <info>
2425 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2426 </info>
2427 <glossdef>
2428 <para role="glossdeffirst">
2429<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2430 The minimal command and arguments used to run the C
2431 preprocessor.
2432 </para>
2433 </glossdef>
2434 </glossentry>
2435
2436 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2437 <info>
2438 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2439 </info>
2440 <glossdef>
2441 <para role="glossdeffirst">
2442<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2443 Specifies the flags to pass to the C pre-processor
2444 (i.e. to both the C and the C++ compilers).
2445 This variable is exported to an environment
2446 variable and thus made visible to the software being
2447 built during the compilation step.
2448 </para>
2449
2450 <para>
2451 Default initialization for <filename>CPPFLAGS</filename>
2452 varies depending on what is being built:
2453 <itemizedlist>
2454 <listitem><para>
2455 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2456 when building for the target
2457 </para></listitem>
2458 <listitem><para>
2459 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2460 when building for the build host (i.e.
2461 <filename>-native</filename>)
2462 </para></listitem>
2463 <listitem><para>
2464 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2465 when building for an SDK (i.e.
2466 <filename>nativesdk-</filename>)
2467 </para></listitem>
2468 </itemizedlist>
2469 </para>
2470 </glossdef>
2471 </glossentry>
2472
2473 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2474 <info>
2475 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2476 </info>
2477 <glossdef>
2478 <para role="glossdeffirst">
2479<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2480 The toolchain binary prefix for the target tools.
2481 The <filename>CROSS_COMPILE</filename> variable is the
2482 same as the
2483 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2484 variable.
2485 <note>
2486 The OpenEmbedded build system sets the
2487 <filename>CROSS_COMPILE</filename> variable only in
2488 certain contexts (e.g. when building for kernel
2489 and kernel module recipes).
2490 </note>
2491 </para>
2492 </glossdef>
2493 </glossentry>
2494
2495 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2496 <info>
2497 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2498 </info>
2499 <glossdef>
2500 <para role="glossdeffirst">
2501<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2502 The directory in which files checked out under the
2503 CVS system are stored.
2504 </para>
2505 </glossdef>
2506 </glossentry>
2507
2508 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2509 <info>
2510 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2511 </info>
2512 <glossdef>
2513 <para role="glossdeffirst">
2514<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2515 The minimal command and arguments used to run the C++
2516 compiler.
2517 </para>
2518 </glossdef>
2519 </glossentry>
2520
2521 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
2522 <info>
2523 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
2524 </info>
2525 <glossdef>
2526 <para role="glossdeffirst">
2527<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2528 Specifies the flags to pass to the C++ compiler.
2529 This variable is exported to an environment
2530 variable and thus made visible to the software being
2531 built during the compilation step.
2532 </para>
2533
2534 <para>
2535 Default initialization for <filename>CXXFLAGS</filename>
2536 varies depending on what is being built:
2537 <itemizedlist>
2538 <listitem><para>
2539 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
2540 when building for the target
2541 </para></listitem>
2542 <listitem><para>
2543 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
2544 when building for the build host (i.e.
2545 <filename>-native</filename>)
2546 </para></listitem>
2547 <listitem><para>
2548 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
2549 when building for an SDK (i.e.
2550 <filename>nativesdk</filename>)
2551 </para></listitem>
2552 </itemizedlist>
2553 </para>
2554 </glossdef>
2555 </glossentry>
2556
2557 </glossdiv>
2558
2559 <glossdiv id='var-glossary-d'><title>D</title>
2560
2561 <glossentry id='var-D'><glossterm>D</glossterm>
2562 <info>
2563 D[doc] = "The destination directory."
2564 </info>
2565 <glossdef>
2566 <para role="glossdeffirst">
2567<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2568 The destination directory.
2569 The location in the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
2570 where components are installed by the
2571 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
2572 task.
2573 This location defaults to:
2574 <literallayout class='monospaced'>
2575 ${WORKDIR}/image
2576 </literallayout>
2577 </para>
2578 </glossdef>
2579 </glossentry>
2580
2581 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
2582 <info>
2583 DATE[doc] = "The date the build was started using YMD format."
2584 </info>
2585 <glossdef>
2586 <para role="glossdeffirst">
2587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2588 The date the build was started.
2589 Dates appear using the year, month, and day (YMD) format
2590 (e.g. "20150209" for February 9th, 2015).
2591 </para>
2592 </glossdef>
2593 </glossentry>
2594
2595 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
2596 <info>
2597 DATETIME[doc] = "The date and time the build was started."
2598 </info>
2599 <glossdef>
2600 <para role="glossdeffirst">
2601<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2602 The date and time on which the current build started.
2603 The format is suitable for timestamps.
2604 </para>
2605 </glossdef>
2606 </glossentry>
2607
2608 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
2609 <info>
2610 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
2611 </info>
2612 <glossdef>
2613 <para role="glossdeffirst">
2614<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2615 When the
2616 <link linkend='ref-classes-debian'><filename>debian</filename></link>
2617 class is inherited, which is the default behavior,
2618 <filename>DEBIAN_NOAUTONAME</filename> specifies a
2619 particular package should not be renamed according to
2620 Debian library package naming.
2621 You must use the package name as an override when you
2622 set this variable.
2623 Here is an example from the <filename>fontconfig</filename>
2624 recipe:
2625 <literallayout class='monospaced'>
2626 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
2627 </literallayout>
2628 </para>
2629 </glossdef>
2630 </glossentry>
2631
2632 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
2633 <info>
2634 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
2635 </info>
2636 <glossdef>
2637 <para role="glossdeffirst">
2638<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2639 When the
2640 <link linkend='ref-classes-debian'><filename>debian</filename></link>
2641 class is inherited, which is the default behavior,
2642 <filename>DEBIANNAME</filename> allows you to override the
2643 library name for an individual package.
2644 Overriding the library name in these cases is rare.
2645 You must use the package name as an override when you
2646 set this variable.
2647 Here is an example from the <filename>dbus</filename>
2648 recipe:
2649 <literallayout class='monospaced'>
2650 DEBIANNAME_${PN} = "dbus-1"
2651 </literallayout>
2652 </para>
2653 </glossdef>
2654 </glossentry>
2655
2656 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
2657 <info>
2658 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
2659 </info>
2660 <glossdef>
2661 <para role="glossdeffirst">
2662<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2663 Specifies to build packages with debugging information.
2664 This influences the value of the
2665 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
2666 variable.
2667 </para>
2668 </glossdef>
2669 </glossentry>
2670
2671 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
2672 <info>
2673 DEBUG_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-O -fno-omit-frame-pointer -g'."
2674 </info>
2675 <glossdef>
2676 <para role="glossdeffirst">
2677<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2678 The options to pass in
2679 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
2680 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
2681 a system for debugging.
2682 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
2683 </para>
2684 </glossdef>
2685 </glossentry>
2686
2687 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
2688 <info>
2689 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
2690 </info>
2691 <glossdef>
2692 <para role="glossdeffirst">
2693<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2694 Specifies a weak bias for recipe selection priority.
2695 </para>
2696
2697 <para>
2698 The most common usage of this is variable is to set
2699 it to "-1" within a recipe for a development version of a
2700 piece of software.
2701 Using the variable in this way causes the stable version
2702 of the recipe to build by default in the absence of
2703 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
2704 being used to build the development version.
2705 </para>
2706
2707 <note>
2708 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
2709 is weak and is overridden by
2710 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
2711 if that variable is different between two layers
2712 that contain different versions of the same recipe.
2713 </note>
2714 </glossdef>
2715 </glossentry>
2716
2717 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
2718 <info>
2719 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
2720 </info>
2721 <glossdef>
2722 <para role="glossdeffirst">
2723<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2724 The default CPU and Application Binary Interface (ABI)
2725 tunings (i.e. the "tune") used by the OpenEmbedded build
2726 system.
2727 The <filename>DEFAULTTUNE</filename> helps define
2728 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
2729 </para>
2730
2731 <para>
2732 The default tune is either implicitly or explicitly set
2733 by the machine
2734 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
2735 However, you can override the setting using available tunes
2736 as defined with
2737 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
2738 </para>
2739 </glossdef>
2740 </glossentry>
2741
2742 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
2743 <info>
2744 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
2745 </info>
2746 <glossdef>
2747 <para role="glossdeffirst">
2748<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2749 Lists a recipe's build-time dependencies
2750 (i.e. other recipe files).
2751 The system ensures that all the dependencies listed
2752 have been built and have their contents in the appropriate
2753 sysroots before the recipe's configure task is executed.
2754 </para>
2755
2756 <para>
2757 Consider this simple example for two recipes named "a" and
2758 "b" that produce similarly named packages.
2759 In this example, the <filename>DEPENDS</filename>
2760 statement appears in the "a" recipe:
2761 <literallayout class='monospaced'>
2762 DEPENDS = "b"
2763 </literallayout>
2764 Here, the dependency is such that the
2765 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2766 task for recipe "a" depends on the
2767 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
2768 task of recipe "b".
2769 This means anything that recipe "b" puts into sysroot
2770 is available when recipe "a" is configuring itself.
2771 </para>
2772
2773 <para>
2774 For information on runtime dependencies, see the
2775 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
2776 variable.
2777 </para>
2778 </glossdef>
2779 </glossentry>
2780
2781 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
2782 <info>
2783 DEPLOY_DIR[doc] = "Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system."
2784 </info>
2785 <glossdef>
2786 <para role="glossdeffirst">
2787<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2788 Points to the general area that the OpenEmbedded build
2789 system uses to place images, packages, SDKs and other output
2790 files that are ready to be used outside of the build system.
2791 By default, this directory resides within the
2792 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
2793 as <filename>${TMPDIR}/deploy</filename>.
2794 </para>
2795
2796 <para>
2797 For more information on the structure of the Build
2798 Directory, see
2799 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
2800 section.
2801 For more detail on the contents of the
2802 <filename>deploy</filename> directory, see the
2803 "<link linkend='images-dev-environment'>Images</link>",
2804 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>",
2805 and
2806 "<link linkend='sdk-dev-environment'>Application Development SDK</link>"
2807 sections.
2808 </para>
2809 </glossdef>
2810 </glossentry>
2811
2812 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
2813 <info>
2814 DEPLOY_DIR_DEB[doc] = "Points to a Debian-specific area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system."
2815 </info>
2816 <glossdef>
2817 <para role="glossdeffirst">
2818<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2819 Points to the area that the OpenEmbedded build system uses
2820 to place Debian packages that are ready to be used outside
2821 of the build system.
2822 This variable applies only when
2823 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2824 contains "package_deb".
2825 </para>
2826
2827 <para>
2828 The BitBake configuration file initially defines the
2829 <filename>DEPLOY_DIR_DEB</filename> variable as a
2830 sub-folder of
2831 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2832 <literallayout class='monospaced'>
2833 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
2834 </literallayout>
2835 </para>
2836
2837 <para>
2838 The
2839 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
2840 class uses the
2841 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
2842 the
2843 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
2844 task writes Debian packages into the appropriate folder.
2845 For more information on how packaging works, see the
2846 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2847 section.
2848 </para>
2849 </glossdef>
2850 </glossentry>
2851
2852 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
2853 <info>
2854 DEPLOY_DIR_IMAGE[doc] = "Points to the area that the OpenEmbedded build system uses to place images and other associated output files that are ready to be deployed onto the target machine."
2855 </info>
2856 <glossdef>
2857 <para role="glossdeffirst">
2858<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2859 Points to the area that the OpenEmbedded build system uses
2860 to place images and other associated output files that are
2861 ready to be deployed onto the target machine.
2862 The directory is machine-specific as it contains the
2863 <filename>${MACHINE}</filename> name.
2864 By default, this directory resides within the
2865 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
2866 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
2867 </para>
2868
2869 <para>
2870 For more information on the structure of the Build
2871 Directory, see
2872 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
2873 section.
2874 For more detail on the contents of the
2875 <filename>deploy</filename> directory, see the
2876 "<link linkend='images-dev-environment'>Images</link>" and
2877 "<link linkend='sdk-dev-environment'>Application Development SDK</link>"
2878 sections.
2879 </para>
2880 </glossdef>
2881 </glossentry>
2882
2883 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
2884 <info>
2885 DEPLOY_DIR_IPK[doc] = "Points to a IPK-specific area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system."
2886 </info>
2887 <glossdef>
2888 <para role="glossdeffirst">
2889<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2890 Points to the area that the OpenEmbedded build system uses
2891 to place IPK packages that are ready to be used outside of
2892 the build system.
2893 This variable applies only when
2894 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2895 contains "package_ipk".
2896 </para>
2897
2898 <para>
2899 The BitBake configuration file initially defines this
2900 variable as a sub-folder of
2901 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2902 <literallayout class='monospaced'>
2903 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
2904 </literallayout>
2905 </para>
2906
2907 <para>
2908 The
2909 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
2910 class uses the
2911 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
2912 the
2913 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
2914 task writes IPK packages into the appropriate folder.
2915 For more information on how packaging works, see the
2916 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2917 section.
2918 </para>
2919 </glossdef>
2920 </glossentry>
2921
2922 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
2923 <info>
2924 DEPLOY_DIR_RPM[doc] = "Points to a RPM-specific area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system."
2925 </info>
2926 <glossdef>
2927 <para role="glossdeffirst">
2928<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2929 Points to the area that the OpenEmbedded build system uses
2930 to place RPM packages that are ready to be used outside
2931 of the build system.
2932 This variable applies only when
2933 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2934 contains "package_rpm".
2935 </para>
2936
2937 <para>
2938 The BitBake configuration file initially defines this
2939 variable as a sub-folder of
2940 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2941 <literallayout class='monospaced'>
2942 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
2943 </literallayout>
2944 </para>
2945
2946 <para>
2947 The
2948 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
2949 class uses the
2950 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
2951 the
2952 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
2953 task writes RPM packages into the appropriate folder.
2954 For more information on how packaging works, see the
2955 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2956 section.
2957 </para>
2958 </glossdef>
2959 </glossentry>
2960
2961 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
2962 <info>
2963 DEPLOY_DIR_TAR[doc] = "Points to a tarball area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system."
2964 </info>
2965 <glossdef>
2966 <para role="glossdeffirst">
2967<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2968 Points to the area that the OpenEmbedded build system uses
2969 to place tarballs that are ready to be used outside of
2970 the build system.
2971 This variable applies only when
2972 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2973 contains "package_tar".
2974 </para>
2975
2976 <para>
2977 The BitBake configuration file initially defines this
2978 variable as a sub-folder of
2979 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2980 <literallayout class='monospaced'>
2981 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
2982 </literallayout>
2983 </para>
2984
2985 <para>
2986 The
2987 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
2988 class uses the
2989 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
2990 the
2991 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
2992 task writes TAR packages into the appropriate folder.
2993 For more information on how packaging works, see the
2994 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2995 section.
2996 </para>
2997 </glossdef>
2998 </glossentry>
2999
3000 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3001 <info>
3002 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3003 </info>
3004 <glossdef>
3005 <para role="glossdeffirst">
3006<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3007 When inheriting the
3008 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3009 class, the <filename>DEPLOYDIR</filename> points to a
3010 temporary work area for deployed files that is set in the
3011 <filename>deploy</filename> class as follows:
3012 <literallayout class='monospaced'>
3013 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3014 </literallayout>
3015 </para>
3016
3017 <para>
3018 Recipes inheriting the <filename>deploy</filename> class
3019 should copy files to be deployed into
3020 <filename>DEPLOYDIR</filename>, and the class will take
3021 care of copying them into
3022 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3023 afterwards.
3024 </para>
3025 </glossdef>
3026 </glossentry>
3027
3028 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3029 <info>
3030 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3031 </info>
3032 <glossdef>
3033 <para role="glossdeffirst">
3034<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3035 The package description used by package managers.
3036 If not set, <filename>DESCRIPTION</filename> takes
3037 the value of the
3038 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3039 variable.
3040 </para>
3041 </glossdef>
3042 </glossentry>
3043
3044 <glossentry id='var-DISK_SIGNATURE'><glossterm>DISK_SIGNATURE</glossterm>
3045 <info>
3046 DISK_SIGNATURE[doc] = "A 32-bit MBR disk signature used by directdisk images."
3047 </info>
3048 <glossdef>
3049 <para role="glossdeffirst">
3050<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3051 A 32-bit MBR disk signature used by
3052 <filename>directdisk</filename> images.
3053 </para>
3054
3055 <para>
3056 By default, the signature is set to an automatically
3057 generated random value that allows the OpenEmbedded
3058 build system to create a boot loader.
3059 You can override the signature in the image recipe
3060 by setting <filename>DISK_SIGNATURE</filename> to an
3061 8-digit hex string.
3062 You might want to override
3063 <filename>DISK_SIGNATURE</filename> if you want the disk
3064 signature to remain constant between image builds.
3065 </para>
3066
3067 <para>
3068 When using Linux 3.8 or later, you can use
3069 <filename>DISK_SIGNATURE</filename> to specify the root
3070 by UUID to allow the kernel to locate the root device
3071 even if the device name changes due to differences in
3072 hardware configuration.
3073 By default, <filename>SYSLINUX_ROOT</filename> is set
3074 as follows:
3075 <literallayout class='monospaced'>
3076 SYSLINUX_ROOT = "root=/dev/sda2"
3077 </literallayout>
3078 However, you can change this to locate the root device
3079 using the disk signature instead:
3080 <literallayout class='monospaced'>
3081 SYSLINUX_ROOT = "root=PARTUUID=${DISK_SIGNATURE}-02"
3082 </literallayout>
3083 </para>
3084
3085 <para>
3086 As previously mentioned, it is possible to set the
3087 <filename>DISK_SIGNATURE</filename> variable in your
3088 <filename>local.conf</filename> file to a fixed
3089 value if you do not want <filename>syslinux.cfg</filename>
3090 changing for each build.
3091 You might find this useful when you want to upgrade the
3092 root filesystem on a device without having to recreate or
3093 modify the master boot record.
3094 </para>
3095 </glossdef>
3096 </glossentry>
3097
3098 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3099 <info>
3100 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3101 </info>
3102 <glossdef>
3103 <para role="glossdeffirst">
3104<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3105 The short name of the distribution.
3106 This variable corresponds to a distribution
3107 configuration file whose root name is the same as the
3108 variable's argument and whose filename extension is
3109 <filename>.conf</filename>.
3110 For example, the distribution configuration file for the
3111 Poky distribution is named <filename>poky.conf</filename>
3112 and resides in the
3113 <filename>meta-yocto/conf/distro</filename> directory of
3114 the
3115 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
3116 </para>
3117
3118 <para>
3119 Within that <filename>poky.conf</filename> file, the
3120 <filename>DISTRO</filename> variable is set as follows:
3121 <literallayout class='monospaced'>
3122 DISTRO = "poky"
3123 </literallayout>
3124 </para>
3125
3126 <para>
3127 Distribution configuration files are located in a
3128 <filename>conf/distro</filename> directory within the
3129 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
3130 that contains the distribution configuration.
3131 The value for <filename>DISTRO</filename> must not contain
3132 spaces, and is typically all lower-case.
3133 <note>
3134 If the <filename>DISTRO</filename> variable is blank, a set
3135 of default configurations are used, which are specified
3136 within
3137 <filename>meta/conf/distro/defaultsetup.conf</filename>
3138 also in the Source Directory.
3139 </note>
3140 </para>
3141 </glossdef>
3142 </glossentry>
3143
3144 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3145 <info>
3146 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3147 </info>
3148 <glossdef>
3149 <para role="glossdeffirst">
3150<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3151 Specifies a codename for the distribution being built.
3152 </para>
3153 </glossdef>
3154 </glossentry>
3155
3156 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3157 <info>
3158 DISTRO_EXTRA_RDEPENDS[doc] = "Specifies a list of distro-specific packages to add to all images. The variable only applies to the images that include packagegroup-base."
3159 </info>
3160 <glossdef>
3161 <para role="glossdeffirst">
3162<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3163 Specifies a list of distro-specific packages to add to all images.
3164 This variable takes affect through
3165 <filename>packagegroup-base</filename> so the
3166 variable only really applies to the more full-featured
3167 images that include <filename>packagegroup-base</filename>.
3168 You can use this variable to keep distro policy out of
3169 generic images.
3170 As with all other distro variables, you set this variable
3171 in the distro <filename>.conf</filename> file.
3172 </para>
3173 </glossdef>
3174 </glossentry>
3175
3176 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3177 <info>
3178 DISTRO_EXTRA_RRECOMMENDS[doc] = "Specifies a list of distro-specific packages to add to all images if the packages exist. The list of packages are automatically installed but you can remove them."
3179 </info>
3180 <glossdef>
3181 <para role="glossdeffirst">
3182<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3183 Specifies a list of distro-specific packages to add to all images
3184 if the packages exist.
3185 The packages might not exist or be empty (e.g. kernel modules).
3186 The list of packages are automatically installed but you can
3187 remove them.
3188 </para>
3189 </glossdef>
3190 </glossentry>
3191
3192 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3193 <info>
3194 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3195 </info>
3196 <glossdef>
3197 <para role="glossdeffirst">
3198<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3199 The software support you want in your distribution for
3200 various features.
3201 You define your distribution features in the distribution
3202 configuration file.
3203 </para>
3204
3205 <para>
3206 In most cases, the presence or absence of a feature in
3207 <filename>DISTRO_FEATURES</filename> is translated to the
3208 appropriate option supplied to the configure script
3209 during the
3210 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3211 task for recipes that optionally support the feature.
3212 For example, specifying "x11" in
3213 <filename>DISTRO_FEATURES</filename>, causes
3214 every piece of software built for the target that can
3215 optionally support X11 to have its X11 support enabled.
3216 </para>
3217
3218 <para>
3219 Two more examples are Bluetooth and NFS support.
3220 For a more complete list of features that ships with the
3221 Yocto Project and that you can provide with this variable,
3222 see the
3223 "<link linkend='ref-features-distro'>Distro Features</link>"
3224 section.
3225 </para>
3226 </glossdef>
3227 </glossentry>
3228
3229 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3230 <info>
3231 DISTRO_FEATURES_BACKFILL[doc] = "Features to be added to DISTRO_FEATURES if not also present in DISTRO_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and it is not intended to be user-configurable."
3232 </info>
3233 <glossdef>
3234 <para role="glossdeffirst">
3235<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3236 Features to be added to
3237 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3238 if not also present in
3239 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3240 </para>
3241
3242 <para>
3243 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3244 It is not intended to be user-configurable.
3245 It is best to just reference the variable to see which distro features are
3246 being backfilled for all distro configurations.
3247 See the <link linkend='ref-features-backfill'>Feature backfilling</link> section for
3248 more information.
3249 </para>
3250 </glossdef>
3251 </glossentry>
3252
3253 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3254 <info>
3255 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3256 </info>
3257 <glossdef>
3258 <para role="glossdeffirst">
3259<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3260 Features from
3261 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3262 that should not be backfilled (i.e. added to
3263 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3264 during the build.
3265 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3266 more information.
3267 </para>
3268 </glossdef>
3269 </glossentry>
3270
3271 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3272 <info>
3273 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3274 </info>
3275 <glossdef>
3276 <para role="glossdeffirst">
3277<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3278 A convenience variable that gives you the default
3279 list of distro features with the exception of any
3280 features specific to the C library
3281 (<filename>libc</filename>).
3282 </para>
3283
3284 <para>
3285 When creating a custom distribution, you might find it
3286 useful to be able to reuse the default
3287 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3288 options without the need to write out the full set.
3289 Here is an example that uses
3290 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3291 custom distro configuration file:
3292 <literallayout class='monospaced'>
3293 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} myfeature"
3294 </literallayout>
3295 </para>
3296 </glossdef>
3297 </glossentry>
3298
3299 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3300 <info>
3301 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3302 </info>
3303 <glossdef>
3304 <para role="glossdeffirst">
3305<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3306 A convenience variable that specifies the list of distro
3307 features that are specific to the C library
3308 (<filename>libc</filename>).
3309 Typically, these features are prefixed with "libc-" and
3310 control which features are enabled at during the build
3311 within the C library itself.
3312 </para>
3313 </glossdef>
3314 </glossentry>
3315
3316 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3317 <info>
3318 DISTRO_NAME[doc] = "The long name of the distribution."
3319 </info>
3320 <glossdef>
3321 <para role="glossdeffirst">
3322<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3323 The long name of the distribution.
3324 </para>
3325 </glossdef>
3326 </glossentry>
3327
3328 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3329 <info>
3330 DISTRO_VERSION[doc] = "The version of the distribution."
3331 </info>
3332 <glossdef>
3333 <para role="glossdeffirst">
3334<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3335 The version of the distribution.
3336 </para>
3337 </glossdef>
3338 </glossentry>
3339
3340 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3341 <info>
3342 DISTROOVERRIDES[doc] = "Lists overrides specific to the current distribution. By default, the variable list includes the value of the DISTRO variable."
3343 </info>
3344 <glossdef>
3345 <para role="glossdeffirst">
3346<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3347 This variable lists overrides specific to the current
3348 distribution.
3349 By default, the variable list includes the value of the
3350 <filename><link linkend='var-DISTRO'>DISTRO</link></filename>
3351 variable.
3352 You can extend the variable to apply any variable overrides
3353 you want as part of the distribution and are not
3354 already in <filename>OVERRIDES</filename> through
3355 some other means.
3356 </para>
3357 </glossdef>
3358 </glossentry>
3359
3360 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
3361 <info>
3362 DL_DIR[doc] = "The central download directory used by the build process to store downloads. By default, the directory is 'downloads' in the Build Directory."
3363 </info>
3364 <glossdef>
3365 <para role="glossdeffirst">
3366<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3367 The central download directory used by the build process to
3368 store downloads.
3369 By default, <filename>DL_DIR</filename> gets files
3370 suitable for mirroring for everything except Git
3371 repositories.
3372 If you want tarballs of Git repositories, use the
3373 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
3374 variable.
3375 </para>
3376
3377 <para>
3378 You can set this directory by defining the
3379 <filename>DL_DIR</filename> variable in the
3380 <filename>conf/local.conf</filename> file.
3381 This directory is self-maintaining and you should not have
3382 to touch it.
3383 By default, the directory is <filename>downloads</filename>
3384 in the
3385 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
3386 <literallayout class='monospaced'>
3387 #DL_DIR ?= "${TOPDIR}/downloads"
3388 </literallayout>
3389 To specify a different download directory, simply remove
3390 the comment from the line and provide your directory.
3391 </para>
3392
3393 <para>
3394 During a first build, the system downloads many different
3395 source code tarballs from various upstream projects.
3396 Downloading can take a while, particularly if your network
3397 connection is slow.
3398 Tarballs are all stored in the directory defined by
3399 <filename>DL_DIR</filename> and the build system looks there
3400 first to find source tarballs.
3401 <note>
3402 When wiping and rebuilding, you can preserve this
3403 directory to speed up this part of subsequent
3404 builds.
3405 </note>
3406 </para>
3407
3408 <para>
3409 You can safely share this directory between multiple builds
3410 on the same development machine.
3411 For additional information on how the build process gets
3412 source files when working behind a firewall or proxy server,
3413 see this specific question in the
3414 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
3415 chapter.
3416 </para>
3417 </glossdef>
3418 </glossentry>
3419
3420 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
3421 <info>
3422 DOC_COMPRESS[doc] = "When inheriting the compress_doc class, this variable sets the compression policy used when the OpenEmbedded build system compresses man pages and info pages."
3423 </info>
3424 <glossdef>
3425 <para role="glossdeffirst">
3426<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3427 When inheriting the
3428 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
3429 class, this variable sets the compression policy used when
3430 the OpenEmbedded build system compresses man pages and info
3431 pages.
3432 By default, the compression method used is gz (gzip).
3433 Other policies available are xz and bz2.
3434 </para>
3435
3436 <para>
3437 For information on policies and on how to use this
3438 variable, see the comments in the
3439 <filename>meta/classes/compress_doc.bbclass</filename> file.
3440 </para>
3441 </glossdef>
3442 </glossentry>
3443
3444 </glossdiv>
3445
3446 <glossdiv id='var-glossary-e'><title>E</title>
3447
3448 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
3449 <info>
3450 EFI_PROVIDER[doc] = "When building bootable images (i.e. where hddimg or vmdk is in IMAGE_FSTYPES), the EFI_PROVIDER variable specifies the EFI bootloader to use."
3451 </info>
3452 <glossdef>
3453 <para role="glossdeffirst">
3454<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3455 When building bootable images (i.e. where
3456 <filename>hddimg</filename> or <filename>vmdk</filename>
3457 is in
3458 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
3459 the <filename>EFI_PROVIDER</filename> variable specifies
3460 the EFI bootloader to use.
3461 The default is "grub-efi", but "gummiboot" can be used
3462 instead.
3463 </para>
3464
3465 <para>
3466 See the
3467 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
3468 class for more information.
3469 </para>
3470 </glossdef>
3471 </glossentry>
3472
3473 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
3474 <info>
3475 ENABLE_BINARY_LOCALE_GENERATION[doc] = "Controls which locales for glibc are generated during the build. The variable is useful if the target device has 64Mbytes of RAM or less."
3476 </info>
3477 <glossdef>
3478 <para role="glossdeffirst">
3479<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3480 Variable that controls which locales for
3481 <filename>glibc</filename> are generated during the
3482 build (useful if the target device has 64Mbytes
3483 of RAM or less).
3484 </para>
3485 </glossdef>
3486 </glossentry>
3487
3488 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
3489 <info>
3490 ERR_REPORT_DIR[doc] = "When used with the report-error class, specifies the path used for storing the debug files created by the error reporting tool, which allows you to submit build errors you encounter to a central database."
3491 </info>
3492 <glossdef>
3493 <para role="glossdeffirst">
3494<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3495 When used with the
3496 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
3497 class, specifies the path used for storing the debug files
3498 created by the
3499 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
3500 which allows you to submit build errors you encounter to a
3501 central database.
3502 By default, the value of this variable is
3503 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
3504 </para>
3505
3506 <para>
3507 You can set <filename>ERR_REPORT_DIR</filename> to the path
3508 you want the error reporting tool to store the debug files
3509 as follows in your <filename>local.conf</filename> file:
3510 <literallayout class='monospaced'>
3511 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
3512 </literallayout>
3513 </para>
3514 </glossdef>
3515 </glossentry>
3516
3517 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
3518 <info>
3519 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
3520 </info>
3521 <glossdef>
3522 <para role="glossdeffirst">
3523<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3524 Specifies the quality assurance checks whose failures are
3525 reported as errors by the OpenEmbedded build system.
3526 You set this variable in your distribution configuration
3527 file.
3528 For a list of the checks you can control with this variable,
3529 see the
3530 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
3531 section.
3532 </para>
3533 </glossdef>
3534 </glossentry>
3535
3536 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
3537 <info>
3538 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
3539 </info>
3540 <glossdef>
3541 <para role="glossdeffirst">
3542<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3543 Directs BitBake to exclude a recipe from world builds (i.e.
3544 <filename>bitbake world</filename>).
3545 During world builds, BitBake locates, parses and builds all
3546 recipes found in every layer exposed in the
3547 <filename>bblayers.conf</filename> configuration file.
3548 </para>
3549
3550 <para>
3551 To exclude a recipe from a world build using this variable,
3552 set the variable to "1" in the recipe.
3553 </para>
3554
3555 <note>
3556 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
3557 may still be built during a world build in order to satisfy
3558 dependencies of other recipes.
3559 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
3560 only ensures that the recipe is not explicitly added
3561 to the list of build targets in a world build.
3562 </note>
3563 </glossdef>
3564 </glossentry>
3565
3566 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
3567 <info>
3568 EXTENDPE[doc] = "Used with file and pathnames to create a prefix for a recipe's version based on the recipe's PE value. If PE is set and greater than zero for a recipe, EXTENDPE becomes that value."
3569 </info>
3570 <glossdef>
3571 <para role="glossdeffirst">
3572<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3573 Used with file and pathnames to create a prefix for a recipe's
3574 version based on the recipe's
3575 <link linkend='var-PE'><filename>PE</filename></link> value.
3576 If <filename>PE</filename> is set and greater than zero for a recipe,
3577 <filename>EXTENDPE</filename> becomes that value (e.g if
3578 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
3579 becomes "1_").
3580 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
3581 zero, <filename>EXTENDPE</filename> becomes "".</para>
3582 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
3583 variable for an example.
3584 </para>
3585 </glossdef>
3586 </glossentry>
3587
3588 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
3589 <info>
3590 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
3591 </info>
3592 <glossdef>
3593 <para role="glossdeffirst">
3594<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3595 The full package version specification as it appears on the
3596 final packages produced by a recipe.
3597 The variable's value is normally used to fix a runtime
3598 dependency to the exact same version of another package
3599 in the same recipe:
3600 <literallayout class='monospaced'>
3601 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
3602 </literallayout>
3603 </para>
3604
3605 <para>
3606 The dependency relationships are intended to force the
3607 package manager to upgrade these types of packages in
3608 lock-step.
3609 </para>
3610 </glossdef>
3611 </glossentry>
3612
3613 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
3614 <info>
3615 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
3616 </info>
3617 <glossdef>
3618 <para role="glossdeffirst">
3619<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3620 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
3621 variable indicates that these tools are not in the
3622 source tree.
3623 </para>
3624
3625 <para>
3626 When kernel tools are available in the tree, they are
3627 preferred over any externally installed tools.
3628 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
3629 variable tells the OpenEmbedded build system to prefer
3630 the installed external tools.
3631 See the
3632 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
3633 class in <filename>meta/classes</filename> to see how
3634 the variable is used.
3635 </para>
3636 </glossdef>
3637 </glossentry>
3638
3639 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
3640 <info>
3641 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
3642 </info>
3643 <glossdef>
3644 <para role="glossdeffirst">
3645<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3646 When inheriting the
3647 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
3648 class, this variable points to the source tree, which is
3649 outside of the OpenEmbedded build system.
3650 When set, this variable sets the
3651 <link linkend='var-S'><filename>S</filename></link>
3652 variable, which is what the OpenEmbedded build system uses
3653 to locate unpacked recipe source code.
3654 </para>
3655
3656 <para>
3657 For more information on
3658 <filename>externalsrc.bbclass</filename>, see the
3659 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
3660 section.
3661 You can also find information on how to use this variable
3662 in the
3663 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
3664 section in the Yocto Project Development Manual.
3665 </para>
3666 </glossdef>
3667 </glossentry>
3668
3669 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
3670 <info>
3671 EXTERNALSRC_BUILD[doc] = "If externalsrc.bbclass is inherited, this variable points to the directory in which the recipe's source code is built, which is outside of the OpenEmbedded build system."
3672 </info>
3673 <glossdef>
3674 <para role="glossdeffirst">
3675<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3676 When inheriting the
3677 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
3678 class, this variable points to the directory in which the
3679 recipe's source code is built, which is outside of the
3680 OpenEmbedded build system.
3681 When set, this variable sets the
3682 <link linkend='var-B'><filename>B</filename></link>
3683 variable, which is what the OpenEmbedded build system uses
3684 to locate the Build Directory.
3685 </para>
3686
3687 <para>
3688 For more information on
3689 <filename>externalsrc.bbclass</filename>, see the
3690 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
3691 section.
3692 You can also find information on how to use this variable
3693 in the
3694 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
3695 section in the Yocto Project Development Manual.
3696 </para>
3697 </glossdef>
3698 </glossentry>
3699
3700 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
3701 <info>
3702 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
3703 </info>
3704 <glossdef>
3705 <para role="glossdeffirst">
3706<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3707 For recipes inheriting the
3708 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
3709 class, you can use <filename>EXTRA_AUTORECONF</filename> to
3710 specify extra options to pass to the
3711 <filename>autoreconf</filename> command that is
3712 executed during the
3713 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3714 task.
3715 </para>
3716
3717 <para>
3718 The default value is "--exclude=autopoint".
3719 </para>
3720 </glossdef>
3721 </glossentry>
3722
3723 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
3724 <info>
3725 EXTRA_IMAGE_FEATURES[doc] = "The list of additional features to include in an image. Configure this variable in the conf/local.conf file in the Build Directory."
3726 </info>
3727 <glossdef>
3728 <para role="glossdeffirst">
3729<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3730 A list of additional features to include in an image.
3731 When listing more than one feature, separate them with
3732 a space.
3733 </para>
3734
3735 <para>
3736 Typically, you configure this variable in your
3737 <filename>local.conf</filename> file, which is found in the
3738 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
3739 Although you can use this variable from within a recipe,
3740 best practices dictate that you do not.
3741 <note>
3742 To enable primary features from within the image
3743 recipe, use the
3744 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
3745 variable.
3746 </note>
3747 </para>
3748
3749 <para>
3750 Here are some examples of features you can add:
3751 <literallayout class='monospaced'>
3752"dbg-pkgs" - Adds -dbg packages for all installed packages
3753 including symbol information for debugging and
3754 profiling.
3755
3756"debug-tweaks" - Makes an image suitable for debugging.
3757 For example, allows root logins without
3758 passwords and enables post-installation
3759 logging. See the 'allow-empty-password'
3760 and 'post-install-logging' features in
3761 the "<link linkend='ref-features-image'>Image Features</link>" section for
3762 more information.
3763
3764"dev-pkgs" - Adds -dev packages for all installed packages.
3765 This is useful if you want to develop against
3766 the libraries in the image.
3767
3768"read-only-rootfs" - Creates an image whose root
3769 filesystem is read-only. See the
3770 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
3771 section in the Yocto Project
3772 Development Manual for more
3773 information
3774
3775"tools-debug" - Adds debugging tools such as gdb and
3776 strace.
3777
3778"tools-profile" - Adds profiling tools such as oprofile,
3779 exmap, lttng and valgrind (x86 only).
3780
3781"tools-sdk" - Adds development tools such as gcc, make,
3782 pkgconfig and so forth.
3783
3784"tools-testapps" - Adds useful testing tools such as
3785 ts_print, aplay, arecord and so
3786 forth.
3787
3788 </literallayout>
3789 </para>
3790
3791 <para>
3792 For a complete list of image features that ships with the
3793 Yocto Project, see the
3794 "<link linkend="ref-features-image">Image Features</link>"
3795 section.
3796 </para>
3797
3798 <para>
3799 For an example that shows how to customize your image by
3800 using this variable, see the
3801 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-extend-customimage-imagefeatures'>Customizing Images Using Custom <filename>IMAGE_FEATURES</filename> and <filename>EXTRA_IMAGE_FEATURES</filename></ulink>"
3802 section in the Yocto Project Development Manual.
3803 </para>
3804 </glossdef>
3805 </glossentry>
3806
3807 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
3808 <info>
3809 EXTRA_IMAGECMD[doc] = "Specifies additional options for the image creation command that has been specified in IMAGE_CMD. When setting this variable, you should use an override for the associated type."
3810 </info>
3811 <glossdef>
3812 <para role="glossdeffirst">
3813<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3814 Specifies additional options for the image
3815 creation command that has been specified in
3816 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
3817 When setting this variable, you should
3818 use an override for the associated type.
3819 Here is an example:
3820 <literallayout class='monospaced'>
3821 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
3822 </literallayout>
3823 </para>
3824 </glossdef>
3825 </glossentry>
3826
3827 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
3828 <info>
3829 EXTRA_IMAGEDEPENDS[doc] = "A list of recipes to build that do not provide packages for installing into the root filesystem. Use this variable to list recipes that are required to build the final image, but not needed in the root filesystem."
3830 </info>
3831 <glossdef>
3832 <para role="glossdeffirst">
3833<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3834 A list of recipes to build that do not provide packages
3835 for installing into the root filesystem.
3836 </para>
3837
3838 <para>
3839 Sometimes a recipe is required to build the final image but is not
3840 needed in the root filesystem.
3841 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
3842 list these recipes and thus specify the dependencies.
3843 A typical example is a required bootloader in a machine configuration.
3844 </para>
3845
3846 <note>
3847 To add packages to the root filesystem, see the various
3848 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
3849 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
3850 variables.
3851 </note>
3852 </glossdef>
3853 </glossentry>
3854
3855 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
3856 <info>
3857 EXTRA_OECMAKE[doc] = "Additional cmake options."
3858 </info>
3859 <glossdef>
3860 <para role="glossdeffirst">
3861<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3862 Additional <filename>cmake</filename> options.
3863 </para>
3864 </glossdef>
3865 </glossentry>
3866
3867 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
3868 <info>
3869 EXTRA_OECONF[doc] = "Additional configure script options."
3870 </info>
3871 <glossdef>
3872 <para role="glossdeffirst">
3873<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3874 Additional <filename>configure</filename> script options.
3875 </para>
3876 </glossdef>
3877 </glossentry>
3878
3879 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
3880 <info>
3881 EXTRA_OEMAKE[doc] = "Additional GNU make options."
3882 </info>
3883 <glossdef>
3884 <para role="glossdeffirst">
3885<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3886 Additional GNU <filename>make</filename> options.
3887 </para>
3888 </glossdef>
3889 </glossentry>
3890
3891 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
3892 <info>
3893 EXTRA_OESCONS[doc] = "When a recipe inherits the scons class, this variable specifies additional configuration options you want to pass to the scons command line."
3894 </info>
3895 <glossdef>
3896 <para role="glossdeffirst">
3897<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3898 When inheriting the
3899 <link linkend='ref-classes-scons'><filename>scons</filename></link>
3900 class, this variable specifies additional configuration
3901 options you want to pass to the
3902 <filename>scons</filename> command line.
3903 </para>
3904 </glossdef>
3905 </glossentry>
3906
3907 <glossentry id='var-EXTRA_QMAKEVARS_POST'><glossterm>EXTRA_QMAKEVARS_POST</glossterm>
3908 <info>
3909 EXTRA_QMAKEVARS_POST[doc] = "Configuration variables or options you want to pass to qmake when the arguments need to be after the .pro file list on the command line."
3910 </info>
3911 <glossdef>
3912 <para role="glossdeffirst">
3913<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3914 Configuration variables or options you want to pass to
3915 <filename>qmake</filename>.
3916 Use this variable when the arguments need to be after the
3917 <filename>.pro</filename> file list on the command line.
3918 </para>
3919
3920 <para>
3921 This variable is used with recipes that inherit the
3922 <link linkend='ref-classes-qmake*'><filename>qmake_base</filename></link>
3923 class or other classes that inherit
3924 <filename>qmake_base</filename>.
3925 </para>
3926 </glossdef>
3927 </glossentry>
3928
3929 <glossentry id='var-EXTRA_QMAKEVARS_PRE'><glossterm>EXTRA_QMAKEVARS_PRE</glossterm>
3930 <info>
3931 EXTRA_QMAKEVARS_PRE[doc] = "Configuration variables or options you want to pass to qmake when the arguments need to be before the .pro file list on the command line."
3932 </info>
3933 <glossdef>
3934 <para role="glossdeffirst">
3935<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3936 Configuration variables or options you want to pass to
3937 <filename>qmake</filename>.
3938 Use this variable when the arguments need to be before the
3939 <filename>.pro</filename> file list on the command line.
3940 </para>
3941
3942 <para>
3943 This variable is used with recipes that inherit the
3944 <link linkend='ref-classes-qmake*'><filename>qmake_base</filename></link>
3945 class or other classes that inherit
3946 <filename>qmake_base</filename>.
3947 </para>
3948 </glossdef>
3949 </glossentry>
3950
3951 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
3952 <info>
3953 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
3954 </info>
3955 <glossdef>
3956 <para role="glossdeffirst">
3957<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3958 When inheriting the
3959 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
3960 class, this variable provides image level user and group
3961 operations.
3962 This is a more global method of providing user and group
3963 configuration as compared to using the
3964 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
3965 class, which ties user and group configurations to a
3966 specific recipe.
3967 </para>
3968
3969 <para>
3970 The set list of commands you can configure using the
3971 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
3972 <filename>extrausers</filename> class.
3973 These commands map to the normal Unix commands of the same
3974 names:
3975 <literallayout class='monospaced'>
3976 # EXTRA_USERS_PARAMS = "\
3977 # useradd -p '' tester; \
3978 # groupadd developers; \
3979 # userdel nobody; \
3980 # groupdel -g video; \
3981 # groupmod -g 1020 developers; \
3982 # usermod -s /bin/sh tester; \
3983 # "
3984 </literallayout>
3985 </para>
3986 </glossdef>
3987 </glossentry>
3988
3989 </glossdiv>
3990
3991 <glossdiv id='var-glossary-f'><title>F</title>
3992
3993 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
3994 <info>
3995 FEATURE_PACKAGES[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES. When setting the value, FEATURE_PACKAGES should have the name of the feature item as an override."
3996 </info>
3997 <glossdef>
3998 <para role="glossdeffirst">
3999<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4000 Defines one or more packages to include in an image when
4001 a specific item is included in
4002 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4003 When setting the value, <filename>FEATURE_PACKAGES</filename>
4004 should have the name of the feature item as an override.
4005 Here is an example:
4006 <literallayout class='monospaced'>
4007 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4008 </literallayout>
4009 </para>
4010
4011 <para>
4012 In this example, if "widget" were added to
4013 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4014 <replaceable>package2</replaceable> would be included in the image.
4015 <note>
4016 Packages installed by features defined through
4017 <filename>FEATURE_PACKAGES</filename> are often package
4018 groups.
4019 While similarly named, you should not confuse the
4020 <filename>FEATURE_PACKAGES</filename> variable with
4021 package groups, which are discussed elsewhere in the
4022 documentation.
4023 </note>
4024 </para>
4025 </glossdef>
4026 </glossentry>
4027
4028 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4029 <info>
4030 FEED_DEPLOYDIR_BASE_URI[doc] = "Allow to serve ipk deploy directory as an ad hoc feed (bogofeed). Set to base URL of the directory as exported by HTTP. Set of ad hoc feed configs will be generated in the image."
4031 </info>
4032 <glossdef>
4033 <para role="glossdeffirst">
4034<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4035 Points to the base URL of the server and location within
4036 the document-root that provides the metadata and
4037 packages required by OPKG to support runtime package
4038 management of IPK packages.
4039 You set this variable in your
4040 <filename>local.conf</filename> file.
4041 </para>
4042
4043 <para>
4044 Consider the following example:
4045 <literallayout class='monospaced'>
4046 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4047 </literallayout>
4048 This example assumes you are serving your packages over
4049 HTTP and your databases are located in a directory
4050 named <filename>BOARD-dir</filename>, which is underneath
4051 your HTTP server's document-root.
4052 In this case, the OpenEmbedded build system generates a set
4053 of configuration files for you in your target that work
4054 with the feed.
4055 </para>
4056 </glossdef>
4057 </glossentry>
4058
4059 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4060 <info>
4061 FILES[doc] = "The list of directories or files that are placed in packages."
4062 </info>
4063 <glossdef>
4064 <para role="glossdeffirst">
4065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4066 The list of directories or files that are placed in packages.
4067 </para>
4068
4069 <para>
4070 To use the <filename>FILES</filename> variable, provide a
4071 package name override that identifies the resulting package.
4072 Then, provide a space-separated list of files or paths
4073 that identify the files you want included as part of the
4074 resulting package.
4075 Here is an example:
4076 <literallayout class='monospaced'>
4077 FILES_${PN} += "${bindir}/mydir1/ ${bindir}/mydir2/myfile"
4078 </literallayout>
4079 </para>
4080
4081 <note>
4082 When specifying paths as part of the
4083 <filename>FILES</filename> variable, it is good practice
4084 to use appropriate path variables.
4085 For example, use <filename>${sysconfdir}</filename> rather
4086 than <filename>/etc</filename>, or
4087 <filename>${bindir}</filename> rather than
4088 <filename>/usr/bin</filename>.
4089 You can find a list of these variables at the top of the
4090 <filename>meta/conf/bitbake.conf</filename> file in the
4091 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
4092 </note>
4093
4094 <para>
4095 If some of the files you provide with the
4096 <filename>FILES</filename> variable are editable and you
4097 know they should not be overwritten during the package
4098 update process by the Package Management System (PMS), you
4099 can identify these files so that the PMS will not
4100 overwrite them.
4101 See the
4102 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4103 variable for information on how to identify these files to
4104 the PMS.
4105 </para>
4106
4107 </glossdef>
4108 </glossentry>
4109
4110 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4111 <info>
4112 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4113 </info>
4114 <glossdef>
4115 <para role="glossdeffirst">
4116<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4117 Defines the file specification to match
4118 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4119 In other words, <filename>FILES_SOLIBSDEV</filename>
4120 defines the full path name of the development symbolic link
4121 (symlink) for shared libraries on the target platform.
4122 </para>
4123
4124 <para>
4125 The following statement from the
4126 <filename>bitbake.conf</filename> shows how it is set:
4127 <literallayout class='monospaced'>
4128 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4129 </literallayout>
4130 </para>
4131 </glossdef>
4132 </glossentry>
4133
4134 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4135 <info>
4136 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4137 </info>
4138 <glossdef>
4139 <para role="glossdeffirst">
4140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4141 Extends the search path the OpenEmbedded build system uses
4142 when looking for files and patches as it processes recipes
4143 and append files.
4144 The default directories BitBake uses when it processes
4145 recipes are initially defined by the
4146 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4147 variable.
4148 You can extend <filename>FILESPATH</filename> variable
4149 by using <filename>FILESEXTRAPATHS</filename>.
4150 </para>
4151
4152 <para>
4153 Best practices dictate that you accomplish this by using
4154 <filename>FILESEXTRAPATHS</filename> from within a
4155 <filename>.bbappend</filename> file and that you prepend
4156 paths as follows:
4157 <literallayout class='monospaced'>
4158 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4159 </literallayout>
4160 In the above example, the build system first looks for files
4161 in a directory that has the same name as the corresponding
4162 append file.
4163 <note>
4164 <para>When extending <filename>FILESEXTRAPATHS</filename>,
4165 be sure to use the immediate expansion
4166 (<filename>:=</filename>) operator.
4167 Immediate expansion makes sure that BitBake evaluates
4168 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4169 at the time the directive is encountered rather than at
4170 some later time when expansion might result in a
4171 directory that does not contain the files you need.
4172 </para>
4173 <para>Also, include the trailing separating colon
4174 character if you are prepending.
4175 The trailing colon character is necessary because you
4176 are directing BitBake to extend the path by prepending
4177 directories to the search path.</para>
4178 </note>
4179 Here is another common use:
4180 <literallayout class='monospaced'>
4181 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4182 </literallayout>
4183 In this example, the build system extends the
4184 <filename>FILESPATH</filename> variable to include a
4185 directory named <filename>files</filename> that is in the
4186 same directory as the corresponding append file.
4187 </para>
4188
4189 <para>
4190 Here is a final example that specifically adds three paths:
4191 <literallayout class='monospaced'>
4192 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4193 </literallayout>
4194 </para>
4195
4196 <para>
4197 By prepending paths in <filename>.bbappend</filename>
4198 files, you allow multiple append files that reside in
4199 different layers but are used for the same recipe to
4200 correctly extend the path.
4201 </para>
4202 </glossdef>
4203 </glossentry>
4204
4205 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4206 <info>
4207 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4208 </info>
4209 <glossdef>
4210 <para role="glossdeffirst">
4211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4212 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4213 used by the OpenEmbedded build system for creating
4214 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
4215 You can find more information on how overrides are handled
4216 in the
4217 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake Manual</ulink>.
4218 </para>
4219
4220 <para>
4221 By default, the <filename>FILESOVERRIDES</filename>
4222 variable is defined as:
4223 <literallayout class='monospaced'>
4224 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4225 </literallayout>
4226
4227 <note>
4228 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4229 variable.
4230 The values match up with expected overrides and are
4231 used in an expected manner by the build system.
4232 </note>
4233 </para>
4234 </glossdef>
4235 </glossentry>
4236
4237 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4238 <info>
4239 FILESPATH[doc] = "The default set of directories the OpenEmbedded build system uses when searching for patches and files. It is defined in the base.bbclass class found in meta/classes in the Source Directory. Do not hand-edit the FILESPATH variable."
4240 </info>
4241 <glossdef>
4242 <para role="glossdeffirst">
4243<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4244 The default set of directories the OpenEmbedded build system
4245 uses when searching for patches and files.
4246 During the build process, BitBake searches each directory in
4247 <filename>FILESPATH</filename> in the specified order when
4248 looking for files and patches specified by each
4249 <filename>file://</filename> URI in a recipe.
4250 </para>
4251
4252 <para>
4253 The default value for the <filename>FILESPATH</filename>
4254 variable is defined in the <filename>base.bbclass</filename>
4255 class found in <filename>meta/classes</filename> in the
4256 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
4257 <literallayout class='monospaced'>
4258 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4259 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4260 </literallayout>
4261 <note>
4262 Do not hand-edit the <filename>FILESPATH</filename>
4263 variable.
4264 If you want the build system to look in directories
4265 other than the defaults, extend the
4266 <filename>FILESPATH</filename> variable by using the
4267 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4268 variable.
4269 </note>
4270 Be aware that the default <filename>FILESPATH</filename>
4271 directories do not map to directories in custom layers
4272 where append files (<filename>.bbappend</filename>)
4273 are used.
4274 If you want the build system to find patches or files
4275 that reside with your append files, you need to extend
4276 the <filename>FILESPATH</filename> variable by using
4277 the
4278 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4279 variable.
4280 </para>
4281 </glossdef>
4282 </glossentry>
4283
4284 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
4285 <info>
4286 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
4287 </info>
4288 <glossdef>
4289 <para role="glossdeffirst">
4290<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4291 Allows you to define your own file permissions settings table as part of
4292 your configuration for the packaging process.
4293 For example, suppose you need a consistent set of custom permissions for
4294 a set of groups and users across an entire work project.
4295 It is best to do this in the packages themselves but this is not always
4296 possible.
4297 </para>
4298
4299 <para>
4300 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
4301 is located in the <filename>meta/files</filename> folder in the
4302 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
4303 If you create your own file permissions setting table, you should place it in your
4304 layer or the distro's layer.
4305 </para>
4306
4307 <para>
4308 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
4309 <filename>conf/local.conf</filename> file, which is found in the
4310 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, to
4311 point to your custom <filename>fs-perms.txt</filename>.
4312 You can specify more than a single file permissions setting table.
4313 The paths you specify to these files must be defined within the
4314 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
4315 </para>
4316
4317 <para>
4318 For guidance on how to create your own file permissions settings table file,
4319 examine the existing <filename>fs-perms.txt</filename>.
4320 </para>
4321 </glossdef>
4322 </glossentry>
4323
4324 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
4325 <info>
4326 FONT_EXTRA_RDEPENDS[doc] = "When a recipe inherits the fontcache class, this variable specifies runtime dependencies for font packages. This variable defaults to 'fontconfig-utils'."
4327 </info>
4328 <glossdef>
4329 <para role="glossdeffirst">
4330<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4331 When inheriting the
4332 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4333 class, this variable specifies the runtime dependencies
4334 for font packages.
4335 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
4336 is set to "fontconfig-utils".
4337 </para>
4338 </glossdef>
4339 </glossentry>
4340
4341 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
4342 <info>
4343 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
4344 </info>
4345 <glossdef>
4346 <para role="glossdeffirst">
4347<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4348 When inheriting the
4349 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4350 class, this variable identifies packages containing font
4351 files that need to be cached by Fontconfig.
4352 By default, the <filename>fontcache</filename> class assumes
4353 that fonts are in the recipe's main package
4354 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
4355 Use this variable if fonts you need are in a package
4356 other than that main package.
4357 </para>
4358 </glossdef>
4359 </glossentry>
4360
4361 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
4362 <info>
4363 FULL_OPTIMIZATION[doc]= "The options to pass in TARGET_CFLAGS and CFLAGS when compiling an optimized system. This variable defaults to '-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2'."
4364 </info>
4365 <glossdef>
4366 <para role="glossdeffirst">
4367<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4368 The options to pass in
4369 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
4370 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
4371 when compiling an optimized system.
4372 This variable defaults to
4373 "-O2 -pipe ${DEBUG_FLAGS}".
4374 </para>
4375 </glossdef>
4376 </glossentry>
4377 </glossdiv>
4378
4379 <glossdiv id='var-glossary-g'><title>G</title>
4380
4381 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
4382 <info>
4383 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
4384 </info>
4385 <glossdef>
4386 <para role="glossdeffirst">
4387<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4388 The minimal command and arguments to run the GNU Debugger.
4389 </para>
4390 </glossdef>
4391 </glossentry>
4392
4393 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
4394 <info>
4395 GITDIR[doc] = "The directory where Git clones will be stored."
4396 </info>
4397 <glossdef>
4398 <para role="glossdeffirst">
4399<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4400 The directory in which a local copy of a Git repository
4401 is stored when it is cloned.
4402 </para>
4403 </glossdef>
4404 </glossentry>
4405
4406 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
4407 <info>
4408 GLIBC_GENERATE_LOCALES[doc]= "Specifies the list of GLIBC locales to generate should you not wish generate all LIBC locals, which can be time consuming."
4409 </info>
4410 <glossdef>
4411 <para role="glossdeffirst">
4412<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4413 Specifies the list of GLIBC locales to generate should you
4414 not wish generate all LIBC locals, which can be time
4415 consuming.
4416 <note>
4417 If you specifically remove the locale
4418 <filename>en_US.UTF-8</filename>, you must set
4419 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
4420 appropriately.
4421 </note>
4422 </para>
4423
4424 <para>
4425 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
4426 in your <filename>local.conf</filename> file.
4427 By default, all locales are generated.
4428 <literallayout class='monospaced'>
4429 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
4430 </literallayout>
4431 </para>
4432 </glossdef>
4433 </glossentry>
4434
4435 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
4436 <info>
4437 GROUPADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupadd command if you wish to add a group to the system when the package is installed."
4438 </info>
4439 <glossdef>
4440 <para role="glossdeffirst">
4441<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4442 When inheriting the
4443 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4444 class, this variable
4445 specifies for a package what parameters should be passed
4446 to the <filename>groupadd</filename> command
4447 if you wish to add a group to the system when the package
4448 is installed.
4449 </para>
4450
4451 <para>
4452 Here is an example from the <filename>dbus</filename>
4453 recipe:
4454 <literallayout class='monospaced'>
4455 GROUPADD_PARAM_${PN} = "-r netdev"
4456 </literallayout>
4457 For information on the standard Linux shell command
4458 <filename>groupadd</filename>, see
4459 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
4460 </para>
4461 </glossdef>
4462 </glossentry>
4463
4464 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
4465 <info>
4466 GROUPMEMS_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupmems command if you wish to modify the members of a group when the package is installed."
4467 </info>
4468 <glossdef>
4469 <para role="glossdeffirst">
4470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4471 When inheriting the
4472 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4473 class, this variable
4474 specifies for a package what parameters should be passed
4475 to the <filename>groupmems</filename> command
4476 if you wish to modify the members of a group when the
4477 package is installed.
4478 </para>
4479
4480 <para>
4481 For information on the standard Linux shell command
4482 <filename>groupmems</filename>, see
4483 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
4484 </para>
4485 </glossdef>
4486 </glossentry>
4487
4488 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
4489 <info>
4490 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
4491 </info>
4492 <glossdef>
4493 <para role="glossdeffirst">
4494<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4495 Configures the GNU GRand Unified Bootloader (GRUB) to have
4496 graphics and serial in the boot menu.
4497 Set this variable to "1" in your
4498 <filename>local.conf</filename> or distribution
4499 configuration file to enable graphics and serial
4500 in the menu.
4501 </para>
4502
4503 <para>
4504 See the
4505 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4506 class for more information on how this variable is used.
4507 </para>
4508 </glossdef>
4509 </glossentry>
4510
4511 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
4512 <info>
4513 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
4514 </info>
4515 <glossdef>
4516 <para role="glossdeffirst">
4517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4518 Additional options to add to the GNU GRand Unified
4519 Bootloader (GRUB) configuration.
4520 Use a semi-colon character (<filename>;</filename>) to
4521 separate multiple options.
4522 </para>
4523
4524 <para>
4525 The <filename>GRUB_OPTS</filename> variable is optional.
4526 See the
4527 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4528 class for more information on how this variable is used.
4529 </para>
4530 </glossdef>
4531 </glossentry>
4532
4533 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
4534 <info>
4535 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
4536 </info>
4537 <glossdef>
4538 <para role="glossdeffirst">
4539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4540 Specifies the timeout before executing the default
4541 <filename>LABEL</filename> in the GNU GRand Unified
4542 Bootloader (GRUB).
4543 </para>
4544
4545 <para>
4546 The <filename>GRUB_TIMEOUT</filename> variable is optional.
4547 See the
4548 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4549 class for more information on how this variable is used.
4550 </para>
4551 </glossdef>
4552 </glossentry>
4553
4554 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
4555 <info>
4556 GTKIMMODULES_PACKAGES[doc] = "For recipes that inherit the gtk-immodules-cache class, this variable specifies the packages that contain the GTK+ input method modules being installed when the modules are in packages other than the main package."
4557 </info>
4558 <glossdef>
4559 <para role="glossdeffirst">
4560<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4561 When inheriting the
4562 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
4563 class, this variable specifies the packages that contain the
4564 GTK+ input method modules being installed when the modules
4565 are in packages other than the main package.
4566 </para>
4567 </glossdef>
4568 </glossentry>
4569
4570 <glossentry id='var-GUMMIBOOT_CFG'><glossterm>GUMMIBOOT_CFG</glossterm>
4571 <info>
4572 GUMMIBOOT_CFG[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_CFG variable specifies the configuration file that should be used."
4573 </info>
4574 <glossdef>
4575 <para role="glossdeffirst">
4576<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4577 When
4578 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4579 is set to "gummiboot", the
4580 <filename>GUMMIBOOT_CFG</filename> variable specifies the
4581 configuration file that should be used.
4582 By default, the
4583 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4584 class sets the <filename>GUMMIBOOT_CFG</filename> as
4585 follows:
4586 <literallayout class='monospaced'>
4587 GUMMIBOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
4588 </literallayout>
4589 </para>
4590
4591 <para>
4592 For information on Gummiboot, see the
4593 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4594 </para>
4595 </glossdef>
4596 </glossentry>
4597
4598 <glossentry id='var-GUMMIBOOT_ENTRIES'><glossterm>GUMMIBOOT_ENTRIES</glossterm>
4599 <info>
4600 GUMMIBOOT_ENTRIES[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_ENTRIES variable specifies a list of entry files (*.conf) to be installed containing one boot entry per file."
4601 </info>
4602 <glossdef>
4603 <para role="glossdeffirst">
4604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4605 When
4606 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4607 is set to "gummiboot", the
4608 <filename>GUMMIBOOT_ENTRIES</filename> variable specifies
4609 a list of entry files
4610 (<filename>*.conf</filename>) to be installed
4611 containing one boot entry per file.
4612 By default, the
4613 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4614 class sets the <filename>GUMMIBOOT_ENTRIES</filename> as
4615 follows:
4616 <literallayout class='monospaced'>
4617 GUMMIBOOT_ENTRIES ?= ""
4618 </literallayout>
4619 </para>
4620
4621 <para>
4622 For information on Gummiboot, see the
4623 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4624 </para>
4625 </glossdef>
4626 </glossentry>
4627
4628 <glossentry id='var-GUMMIBOOT_TIMEOUT'><glossterm>GUMMIBOOT_TIMEOUT</glossterm>
4629 <info>
4630 GUMMIBOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
4631 </info>
4632 <glossdef>
4633 <para role="glossdeffirst">
4634<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4635 When
4636 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4637 is set to "gummiboot", the
4638 <filename>GUMMIBOOT_TIMEOUT</filename> variable specifies
4639 the boot menu timeout in seconds.
4640 By default, the
4641 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4642 class sets the <filename>GUMMIBOOT_TIMEOUT</filename> as
4643 follows:
4644 <literallayout class='monospaced'>
4645 GUMMIBOOT_TIMEOUT ?= "10"
4646 </literallayout>
4647 </para>
4648
4649 <para>
4650 For information on Gummiboot, see the
4651 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4652 </para>
4653 </glossdef>
4654 </glossentry>
4655
4656 </glossdiv>
4657
4658 <glossdiv id='var-glossary-h'><title>H</title>
4659
4660 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
4661 <info>
4662 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
4663 </info>
4664 <glossdef>
4665 <para role="glossdeffirst">
4666<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4667 Website where more information about the software the recipe is building
4668 can be found.
4669 </para>
4670 </glossdef>
4671 </glossentry>
4672
4673 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
4674 <info>
4675 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
4676
4677 </info>
4678 <glossdef>
4679 <para role="glossdeffirst">
4680<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4681 The name of the target architecture, which is normally
4682 the same as
4683 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
4684 The OpenEmbedded build system supports many
4685 architectures.
4686 Here is an example list of architectures supported.
4687 This list is by no means complete as the architecture
4688 is configurable:
4689 <literallayout class='monospaced'>
4690 arm
4691 i586
4692 x86_64
4693 powerpc
4694 powerpc64
4695 mips
4696 mipsel
4697 </literallayout>
4698 </para>
4699 </glossdef>
4700 </glossentry>
4701
4702 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
4703 <info>
4704 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
4705 </info>
4706 <glossdef>
4707 <para role="glossdeffirst">
4708<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4709 Specifies architecture-specific compiler flags that are
4710 passed to the C compiler.
4711 </para>
4712
4713 <para>
4714 Default initialization for <filename>HOST_CC_ARCH</filename>
4715 varies depending on what is being built:
4716 <itemizedlist>
4717 <listitem><para>
4718 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
4719 when building for the target
4720 </para></listitem>
4721 <listitem><para>
4722 <filename>BUILD_CC_ARCH</filename>
4723 when building for the build host (i.e.
4724 <filename>native</filename>)
4725 </para></listitem>
4726 <listitem><para>
4727 <filename>BUILDSDK_CC_ARCH</filename>
4728 when building for an SDK (i.e.
4729 <filename>nativesdk</filename>)
4730 </para></listitem>
4731 </itemizedlist>
4732 </para>
4733 </glossdef>
4734 </glossentry>
4735
4736 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
4737 <info>
4738 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
4739 </info>
4740 <glossdef>
4741 <para role="glossdeffirst">
4742<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4743 Specifies the name of the target operating system, which
4744 is normally the same as the
4745 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
4746 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
4747 to "linux-uclibc" for <filename>uclibc</filename>.
4748 For ARM/EABI targets, there are also "linux-gnueabi" and
4749 "linux-uclibc-gnueabi" values possible.
4750 </para>
4751 </glossdef>
4752 </glossentry>
4753
4754 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
4755 <info>
4756 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
4757 </info>
4758 <glossdef>
4759 <para role="glossdeffirst">
4760<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4761 Specifies the prefix for the cross-compile toolchain.
4762 <filename>HOST_PREFIX</filename> is normally the same as
4763 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
4764 </para>
4765 </glossdef>
4766 </glossentry>
4767
4768 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
4769 <info>
4770 HOST_SYS[doc] = "Specifies the system, including the architecture and the operating system, for with the build is occurring in the context of the current recipe."
4771 </info>
4772 <glossdef>
4773 <para role="glossdeffirst">
4774<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4775 Specifies the system, including the architecture and the
4776 operating system, for which the build is occurring
4777 in the context of the current recipe.
4778 </para>
4779
4780 <para>
4781 The OpenEmbedded build system automatically sets this
4782 variable based on
4783 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
4784 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
4785 and
4786 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
4787 variables.
4788 <note>
4789 You do not need to set the variable yourself.
4790 </note>
4791 </para>
4792
4793 <para>
4794 Consider these two examples:
4795 <itemizedlist>
4796 <listitem><para>Given a native recipe on a 32-bit
4797 x86 machine running Linux, the value is
4798 "i686-linux".
4799 </para></listitem>
4800 <listitem><para>Given a recipe being built for a
4801 little-endian MIPS target running Linux,
4802 the value might be "mipsel-linux".
4803 </para></listitem>
4804 </itemizedlist>
4805 </para>
4806 </glossdef>
4807 </glossentry>
4808
4809 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
4810 <info>
4811 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
4812 </info>
4813 <glossdef>
4814 <para role="glossdeffirst">
4815<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4816 Specifies the name of the vendor.
4817 <filename>HOST_VENDOR</filename> is normally the same as
4818 <link linkend='var-TARGET_PREFIX'><filename>TARGET_VENDOR</filename></link>.
4819 </para>
4820 </glossdef>
4821 </glossentry>
4822
4823 </glossdiv>
4824
4825 <glossdiv id='var-glossary-i'><title>I</title>
4826
4827 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
4828 <info>
4829 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
4830 </info>
4831 <glossdef>
4832 <para role="glossdeffirst">
4833<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4834 Disables or enables the <filename>icecc</filename>
4835 (Icecream) function.
4836 For more information on this function and best practices
4837 for using this variable, see the
4838 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
4839 section.
4840 </para>
4841
4842 <para>
4843 Setting this variable to "1" in your
4844 <filename>local.conf</filename> disables the function:
4845 <literallayout class='monospaced'>
4846 ICECC_DISABLED ??= "1"
4847 </literallayout>
4848 To enable the function, set the variable as follows:
4849 <literallayout class='monospaced'>
4850 ICECC_DISABLED = ""
4851 </literallayout>
4852 </para>
4853 </glossdef>
4854 </glossentry>
4855
4856 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
4857 <info>
4858 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
4859 </info>
4860 <glossdef>
4861 <para role="glossdeffirst">
4862<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4863 Points to the <filename>icecc-create-env</filename> script
4864 that you provide.
4865 This variable is used by the
4866 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4867 class.
4868 You set this variable in your
4869 <filename>local.conf</filename> file.
4870 </para>
4871
4872 <para>
4873 If you do not point to a script that you provide, the
4874 OpenEmbedded build system uses the default script provided
4875 by the <filename>icecc-create-env.bb</filename> recipe,
4876 which is a modified version and not the one that comes with
4877 <filename>icecc</filename>.
4878 </para>
4879 </glossdef>
4880 </glossentry>
4881
4882 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
4883 <info>
4884 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
4885 </info>
4886 <glossdef>
4887 <para role="glossdeffirst">
4888<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4889 Extra options passed to the <filename>make</filename>
4890 command during the
4891 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
4892 task that specify parallel compilation.
4893 This variable usually takes the form of
4894 "-j <replaceable>x</replaceable>", where
4895 <replaceable>x</replaceable> represents the maximum
4896 number of parallel threads <filename>make</filename> can
4897 run.
4898 <note>
4899 The options passed affect builds on all enabled
4900 machines on the network, which are machines running the
4901 <filename>iceccd</filename> daemon.
4902 </note>
4903 </para>
4904
4905 <para>
4906 If your enabled machines support multiple cores,
4907 coming up with the maximum number of parallel threads
4908 that gives you the best performance could take some
4909 experimentation since machine speed, network lag,
4910 available memory, and existing machine loads can all
4911 affect build time.
4912 Consequently, unlike the
4913 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4914 variable, there is no rule-of-thumb for setting
4915 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
4916 optimal performance.
4917 </para>
4918
4919 <para>
4920 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
4921 the build system does not use it (i.e. the system does
4922 not detect and assign the number of cores as is done with
4923 <filename>PARALLEL_MAKE</filename>).
4924 </para>
4925 </glossdef>
4926 </glossentry>
4927
4928 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
4929 <info>
4930 ICECC_PATH[doc] = "The location of the icecc binary."
4931 </info>
4932 <glossdef>
4933 <para role="glossdeffirst">
4934<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4935 The location of the <filename>icecc</filename> binary.
4936 You can set this variable in your
4937 <filename>local.conf</filename> file.
4938 If your <filename>local.conf</filename> file does not define
4939 this variable, the
4940 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4941 class attempts to define it by locating
4942 <filename>icecc</filename> using <filename>which</filename>.
4943 </para>
4944 </glossdef>
4945 </glossentry>
4946
4947 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
4948 <info>
4949 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
4950 </info>
4951 <glossdef>
4952 <para role="glossdeffirst">
4953<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4954 Identifies user classes that you do not want the
4955 Icecream distributed compile support to consider.
4956 This variable is used by the
4957 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4958 class.
4959 You set this variable in your
4960 <filename>local.conf</filename> file.
4961 </para>
4962
4963 <para>
4964 When you list classes using this variable, you are
4965 "blacklisting" them from distributed compilation across
4966 remote hosts.
4967 Any classes you list will be distributed and compiled
4968 locally.
4969 </para>
4970 </glossdef>
4971 </glossentry>
4972
4973 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
4974 <info>
4975 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
4976 </info>
4977 <glossdef>
4978 <para role="glossdeffirst">
4979<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4980 Identifies user recipes that you do not want the
4981 Icecream distributed compile support to consider.
4982 This variable is used by the
4983 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4984 class.
4985 You set this variable in your
4986 <filename>local.conf</filename> file.
4987 </para>
4988
4989 <para>
4990 When you list packages using this variable, you are
4991 "blacklisting" them from distributed compilation across
4992 remote hosts.
4993 Any packages you list will be distributed and compiled
4994 locally.
4995 </para>
4996 </glossdef>
4997 </glossentry>
4998
4999 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5000 <info>
5001 ICECC_USER_PACKAGE_WL[doc] = "Identifies user recipes that use an empty PARALLEL_MAKE variable that you want to force remote distributed compilation on using the Icecream distributed compile support."
5002 </info>
5003 <glossdef>
5004 <para role="glossdeffirst">
5005<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5006 Identifies user recipes that use an empty
5007 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5008 variable that you want to force remote distributed
5009 compilation on using the Icecream distributed compile
5010 support.
5011 This variable is used by the
5012 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5013 class.
5014 You set this variable in your
5015 <filename>local.conf</filename> file.
5016 </para>
5017 </glossdef>
5018 </glossentry>
5019
5020 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5021 <info>
5022 IMAGE_BASENAME[doc] = "The base name of image output files."
5023 </info>
5024 <glossdef>
5025 <para role="glossdeffirst">
5026<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5027 The base name of image output files.
5028 This variable defaults to the recipe name
5029 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5030 </para>
5031 </glossdef>
5032 </glossentry>
5033
5034 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5035 <info>
5036 IMAGE_BOOT_FILES[doc] = "Whitespace separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition. Entries will be installed under a same name as the source file. To change the destination file name, pass a desired name after a semicolon (eg. u-boot.img;uboot)."
5037 </info>
5038 <glossdef>
5039 <para role="glossdeffirst">
5040<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5041 A space-separated list of files installed into the
5042 boot partition when preparing an image using the
5043 <filename>wic</filename> tool with the
5044 <filename>bootimg-partition</filename> source
5045 plugin.
5046 By default, the files are installed under
5047 the same name as the source files.
5048 To change the installed name, separate it from the
5049 original name with a semi-colon (;).
5050 Source files need to be located in
5051 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5052 Here are two examples:
5053
5054 <literallayout class="monospaced">
5055 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5056 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5057 </literallayout>
5058 </para>
5059
5060 <para>
5061 Alternatively, source files can be picked up using
5062 a glob pattern.
5063 In this case, the destination file
5064 will have the same name as the base name of the source file
5065 path.
5066 To install files into a directory within the
5067 target location, pass its name after a semi-colon
5068 (;).
5069 Here are two examples:
5070 <literallayout class="monospaced">
5071 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5072 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5073 </literallayout>
5074 The first example installs all files from
5075 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5076 into the root of the target partition.
5077 The second example installs the same files into a
5078 <filename>boot</filename> directory within the
5079 target partition.
5080 </para>
5081 </glossdef>
5082 </glossentry>
5083
5084 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5085 <info>
5086 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5087 </info>
5088 <glossdef>
5089 <para role="glossdeffirst">
5090<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5091 A list of classes that all images should inherit.
5092 You typically use this variable to specify the list of
5093 classes that register the different types of images
5094 the OpenEmbedded build system creates.
5095 </para>
5096
5097 <para>
5098 The default value for <filename>IMAGE_CLASSES</filename> is
5099 <filename>image_types</filename>.
5100 You can set this variable in your
5101 <filename>local.conf</filename> or in a distribution
5102 configuration file.
5103 </para>
5104
5105 <para>
5106 For more information, see
5107 <filename>meta/classes/image_types.bbclass</filename> in the
5108 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
5109 </para>
5110 </glossdef>
5111 </glossentry>
5112
5113 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5114 <info>
5115 IMAGE_CMD[doc] = "Specifies the command to create the image file for a specific image type, which corresponds to the value set set in IMAGE_FSTYPES, (e.g. ext3, btrfs, and so forth)."
5116 </info>
5117 <glossdef>
5118 <para role="glossdeffirst">
5119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5120 Specifies the command to create the image file for a
5121 specific image type, which corresponds to the value set
5122 set in
5123 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5124 (e.g. <filename>ext3</filename>,
5125 <filename>btrfs</filename>, and so forth).
5126 When setting this variable, you should use
5127 an override for the associated type.
5128 Here is an example:
5129 <literallayout class='monospaced'>
5130 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5131 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5132 ${EXTRA_IMAGECMD}"
5133 </literallayout>
5134 </para>
5135
5136 <para>
5137 You typically do not need to set this variable unless
5138 you are adding support for a new image type.
5139 For more examples on how to set this variable, see the
5140 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5141 class file, which is
5142 <filename>meta/classes/image_types.bbclass</filename>.
5143 </para>
5144 </glossdef>
5145 </glossentry>
5146
5147 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5148 <info>
5149 IMAGE_DEVICE_TABLES[doc] = "Specifies one or more files that contain custom device tables that are passed to the makedevs command as part of creating an image."
5150 </info>
5151 <glossdef>
5152 <para role="glossdeffirst">
5153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5154 Specifies one or more files that contain custom device
5155 tables that are passed to the
5156 <filename>makedevs</filename> command as part of creating
5157 an image.
5158 These files list basic device nodes that should be
5159 created under <filename>/dev</filename> within the image.
5160 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5161 <filename>files/device_table-minimal.txt</filename> is
5162 used, which is located by
5163 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5164 For details on how you should write device table files,
5165 see <filename>meta/files/device_table-minimal.txt</filename>
5166 as an example.
5167 </para>
5168 </glossdef>
5169 </glossentry>
5170
5171 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5172 <info>
5173 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5174 </info>
5175 <glossdef>
5176 <para role="glossdeffirst">
5177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5178 The primary list of features to include in an image.
5179 Typically, you configure this variable in an image recipe.
5180 Although you can use this variable from your
5181 <filename>local.conf</filename> file, which is found in the
5182 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
5183 best practices dictate that you do not.
5184 <note>
5185 To enable extra features from outside the image recipe,
5186 use the
5187 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5188 </note>
5189 </para>
5190
5191 <para>
5192 For a list of image features that ships with the Yocto
5193 Project, see the
5194 "<link linkend="ref-features-image">Image Features</link>"
5195 section.
5196 </para>
5197
5198 <para>
5199 For an example that shows how to customize your image by
5200 using this variable, see the
5201 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-extend-customimage-imagefeatures'>Customizing Images Using Custom <filename>IMAGE_FEATURES</filename> and <filename>EXTRA_IMAGE_FEATURES</filename></ulink>"
5202 section in the Yocto Project Development Manual.
5203 </para>
5204 </glossdef>
5205 </glossentry>
5206
5207 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5208 <info>
5209 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5210 </info>
5211 <glossdef>
5212 <para role="glossdeffirst">
5213<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5214 Specifies the formats the OpenEmbedded build system uses
5215 during the build when creating the root filesystem.
5216 For example, setting <filename>IMAGE_FSTYPES</filename>
5217 as follows causes the build system to create root
5218 filesystems using two formats: <filename>.ext3</filename>
5219 and <filename>.tar.bz2</filename>:
5220 <literallayout class='monospaced'>
5221 IMAGE_FSTYPES = "ext3 tar.bz2"
5222 </literallayout>
5223 </para>
5224
5225 <para>
5226 For the complete list of supported image formats from which
5227 you can choose, see
5228 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5229 </para>
5230
5231 <note>
5232 If you add "live" to <filename>IMAGE_FSTYPES</filename>
5233 inside an image recipe, be sure that you do so prior to the
5234 "inherit image" line of the recipe or the live image will
5235 not build.
5236 </note>
5237
5238 <note>
5239 Due to the way this variable is processed, it is not
5240 possible to update its contents using
5241 <filename>_append</filename> or
5242 <filename>_prepend</filename>. To add one or more
5243 additional options to this variable the
5244 <filename>+=</filename> operator must be used.
5245 </note>
5246 </glossdef>
5247 </glossentry>
5248
5249 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
5250 <info>
5251 IMAGE_INSTALL[doc] = "Specifies the packages to install into an image. Image recipes set IMAGE_INSTALL to specify the packages to install into an image through image.bbclass."
5252 </info>
5253 <glossdef>
5254 <para role="glossdeffirst">
5255<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5256 Specifies the packages to install into an image.
5257 The <filename>IMAGE_INSTALL</filename> variable is a
5258 mechanism for an image recipe and you should use it
5259 with care to avoid ordering issues.
5260 <note>
5261 When working with an
5262 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
5263 image, do not use the <filename>IMAGE_INSTALL</filename>
5264 variable to specify packages for installation.
5265 Instead, use the
5266 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
5267 variable, which allows the initial RAM disk (initramfs)
5268 recipe to use a fixed set of packages and not be
5269 affected by <filename>IMAGE_INSTALL</filename>.
5270 </note>
5271 </para>
5272
5273 <para>
5274 Image recipes set <filename>IMAGE_INSTALL</filename>
5275 to specify the packages to install into an image through
5276 <filename>image.bbclass</filename>.
5277 Additionally, "helper" classes exist, such as
5278 <filename>core-image.bbclass</filename>, that can take
5279 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
5280 lists and turn these into auto-generated entries in
5281 <filename>IMAGE_INSTALL</filename> in addition to its
5282 default contents.
5283 </para>
5284
5285 <para>
5286 Using <filename>IMAGE_INSTALL</filename> with the
5287 <filename>+=</filename> operator from the
5288 <filename>/conf/local.conf</filename> file or from within
5289 an image recipe is not recommended as it can cause ordering
5290 issues.
5291 Since <filename>core-image.bbclass</filename> sets
5292 <filename>IMAGE_INSTALL</filename> to a default value using
5293 the <filename>?=</filename> operator, using a
5294 <filename>+=</filename> operation against
5295 <filename>IMAGE_INSTALL</filename> will result in
5296 unexpected behavior when used in
5297 <filename>conf/local.conf</filename>.
5298 Furthermore, the same operation from within an image
5299 recipe may or may not succeed depending on the specific
5300 situation.
5301 In both these cases, the behavior is contrary to how most
5302 users expect the <filename>+=</filename> operator to work.
5303 </para>
5304
5305 <para>
5306 When you use this variable, it is best to use it as follows:
5307 <literallayout class='monospaced'>
5308 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
5309 </literallayout>
5310 Be sure to include the space between the quotation character
5311 and the start of the package name or names.
5312 </para>
5313 </glossdef>
5314 </glossentry>
5315
5316 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
5317 <info>
5318 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
5319 </info>
5320 <glossdef>
5321 <para role="glossdeffirst">
5322<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5323 Specifies the list of locales to install into the image
5324 during the root filesystem construction process.
5325 The OpenEmbedded build system automatically splits locale
5326 files, which are used for localization, into separate
5327 packages.
5328 Setting the <filename>IMAGE_LINGUAS</filename> variable
5329 ensures that any locale packages that correspond to packages
5330 already selected for installation into the image are also
5331 installed.
5332 Here is an example:
5333 <literallayout class='monospaced'>
5334 IMAGE_LINGUAS = "pt-br de-de"
5335 </literallayout>
5336 </para>
5337
5338 <para>
5339 In this example, the build system ensures any Brazilian
5340 Portuguese and German locale files that correspond to
5341 packages in the image are installed (i.e.
5342 <filename>*-locale-pt-br</filename>
5343 and <filename>*-locale-de-de</filename> as well as
5344 <filename>*-locale-pt</filename>
5345 and <filename>*-locale-de</filename>, since some software
5346 packages only provide locale files by language and not by
5347 country-specific language).
5348 </para>
5349
5350 <para>
5351 See the
5352 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
5353 variable for information on generating GLIBC locales.
5354 </para>
5355 </glossdef>
5356 </glossentry>
5357
5358 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
5359 <info>
5360 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
5361 </info>
5362 <glossdef>
5363 <para role="glossdeffirst">
5364<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5365 The manifest file for the image.
5366 This file lists all the installed packages that make up
5367 the image.
5368 The file contains package information on a line-per-package
5369 basis as follows:
5370 <literallayout class='monospaced'>
5371 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
5372 </literallayout>
5373 </para>
5374
5375 <para>
5376 The
5377 <link linkend='ref-classes-image'><filename>image</filename></link>
5378 class defines the manifest file as follows:
5379 <literallayout class='monospaced'>
5380 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
5381 </literallayout>
5382 The location is derived using the
5383 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
5384 and
5385 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
5386 variables.
5387 You can find information on how the image
5388 is created in the
5389 "<link linkend='image-generation-dev-environment'>Image Generation</link>"
5390 section.
5391 </para>
5392 </glossdef>
5393 </glossentry>
5394
5395 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
5396 <info>
5397 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
5398 </info>
5399 <glossdef>
5400 <para role="glossdeffirst">
5401<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5402 The name of the output image files minus the extension.
5403 This variable is derived using the
5404 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
5405 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
5406 and
5407 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
5408 variables:
5409 <literallayout class='monospaced'>
5410 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
5411 </literallayout>
5412 </para>
5413 </glossdef>
5414 </glossentry>
5415
5416 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
5417 <info>
5418 IMAGE_OVERHEAD_FACTOR[doc] = "Defines a multiplier that the build system applies to the initial image size for cases when the multiplier times the returned disk usage value for the image is greater than the sum of IMAGE_ROOTFS_SIZE and IMAGE_ROOTFS_EXTRA_SPACE."
5419 </info>
5420 <glossdef>
5421 <para role="glossdeffirst">
5422<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5423 Defines a multiplier that the build system applies to the initial image
5424 size for cases when the multiplier times the returned disk usage value
5425 for the image is greater than the sum of
5426 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
5427 and
5428 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
5429 The result of the multiplier applied to the initial image size creates
5430 free disk space in the image as overhead.
5431 By default, the build process uses a multiplier of 1.3 for this variable.
5432 This default value results in 30% free disk space added to the image when this
5433 method is used to determine the final generated image size.
5434 You should be aware that post install scripts and the package management
5435 system uses disk space inside this overhead area.
5436 Consequently, the multiplier does not produce an image with
5437 all the theoretical free disk space.
5438 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
5439 for information on how the build system determines the overall image size.
5440 </para>
5441
5442 <para>
5443 The default 30% free disk space typically gives the image enough room to boot
5444 and allows for basic post installs while still leaving a small amount of
5445 free disk space.
5446 If 30% free space is inadequate, you can increase the default value.
5447 For example, the following setting gives you 50% free space added to the image:
5448 <literallayout class='monospaced'>
5449 IMAGE_OVERHEAD_FACTOR = "1.5"
5450 </literallayout>
5451 </para>
5452
5453 <para>
5454 Alternatively, you can ensure a specific amount of free disk space is added
5455 to the image by using the
5456 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
5457 variable.
5458 </para>
5459 </glossdef>
5460 </glossentry>
5461
5462 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
5463 <info>
5464 IMAGE_PKGTYPE[doc] = "Defines the package type (DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
5465 </info>
5466 <glossdef>
5467 <para role="glossdeffirst">
5468<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5469 Defines the package type (DEB, RPM, IPK, or TAR) used
5470 by the OpenEmbedded build system.
5471 The variable is defined appropriately by the
5472 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
5473 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
5474 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
5475 or
5476 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
5477 class.
5478 <note><title>Warning</title>
5479 The <filename>package_tar</filename> class is broken
5480 and is not supported.
5481 It is recommended that you do not use it.
5482 </note>
5483 </para>
5484
5485 <para>
5486 The
5487 <link linkend='ref-classes-populate-sdk-*'><filename>package_sdk_base</filename></link>
5488 and
5489 <link linkend='ref-classes-image'><filename>image</filename></link>
5490 classes use the <filename>IMAGE_PKGTYPE</filename> for
5491 packaging up images and SDKs.
5492 </para>
5493
5494 <para>
5495 You should not set the <filename>IMAGE_PKGTYPE</filename>
5496 manually.
5497 Rather, the variable is set indirectly through the
5498 appropriate
5499 <link linkend='ref-classes-package'><filename>package_*</filename></link>
5500 class using the
5501 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
5502 variable.
5503 The OpenEmbedded build system uses the first package type
5504 (e.g. DEB, RPM, or IPK) that appears with the variable
5505 <note>
5506 Files using the <filename>.tar</filename> format are
5507 never used as a substitute packaging format for DEB,
5508 RPM, and IPK formatted files for your image or SDK.
5509 </note>
5510 </para>
5511 </glossdef>
5512 </glossentry>
5513
5514 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
5515 <info>
5516 IMAGE_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the final image output files."
5517 </info>
5518 <glossdef>
5519 <para role="glossdeffirst">
5520<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5521 Specifies a list of functions to call once the
5522 OpenEmbedded build system has created the final image
5523 output files.
5524 You can specify functions separated by semicolons:
5525 <literallayout class='monospaced'>
5526 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
5527 </literallayout>
5528 </para>
5529
5530 <para>
5531 If you need to pass the root filesystem path to a command
5532 within the function, you can use
5533 <filename>${IMAGE_ROOTFS}</filename>, which points to
5534 the directory that becomes the root filesystem image.
5535 </para>
5536 </glossdef>
5537 </glossentry>
5538
5539 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
5540 <info>
5541 IMAGE_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the final image output files."
5542 </info>
5543 <glossdef>
5544 <para role="glossdeffirst">
5545<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5546 Specifies a list of functions to call before the
5547 OpenEmbedded build system has created the final image
5548 output files.
5549 You can specify functions separated by semicolons:
5550 <literallayout class='monospaced'>
5551 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
5552 </literallayout>
5553 </para>
5554
5555 <para>
5556 If you need to pass the root filesystem path to a command
5557 within the function, you can use
5558 <filename>${IMAGE_ROOTFS}</filename>, which points to
5559 the directory that becomes the root filesystem image.
5560 </para>
5561 </glossdef>
5562 </glossentry>
5563
5564 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
5565 <info>
5566 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
5567 </info>
5568 <glossdef>
5569 <para role="glossdeffirst">
5570<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5571 The location of the root filesystem while it is under
5572 construction (i.e. during the
5573 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
5574 task).
5575 This variable is not configurable.
5576 Do not change it.
5577 </para>
5578 </glossdef>
5579 </glossentry>
5580
5581 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
5582 <info>
5583 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
5584 </info>
5585 <glossdef>
5586 <para role="glossdeffirst">
5587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5588 Specifies the alignment for the output image file in
5589 Kbytes.
5590 If the size of the image is not a multiple of
5591 this value, then the size is rounded up to the nearest
5592 multiple of the value.
5593 The default value is "1".
5594 See
5595 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
5596 for additional information.
5597 </para>
5598 </glossdef>
5599 </glossentry>
5600
5601 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
5602 <info>
5603 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
5604 </info>
5605 <glossdef>
5606 <para role="glossdeffirst">
5607<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5608 Defines additional free disk space created in the image in Kbytes.
5609 By default, this variable is set to "0".
5610 This free disk space is added to the image after the build system determines
5611 the image size as described in
5612 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
5613 </para>
5614
5615 <para>
5616 This variable is particularly useful when you want to ensure that a
5617 specific amount of free disk space is available on a device after an image
5618 is installed and running.
5619 For example, to be sure 5 Gbytes of free disk space is available, set the
5620 variable as follows:
5621 <literallayout class='monospaced'>
5622 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
5623 </literallayout>
5624 </para>
5625
5626 <para>
5627 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
5628 of extra space with the line:
5629 <literallayout class='monospaced'>
5630 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
5631 </literallayout>
5632 </para>
5633 </glossdef>
5634 </glossentry>
5635
5636 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
5637 <info>
5638 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
5639 </info>
5640 <glossdef>
5641 <para role="glossdeffirst">
5642<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5643 Defines the size in Kbytes for the generated image.
5644 The OpenEmbedded build system determines the final size for the generated
5645 image using an algorithm that takes into account the initial disk space used
5646 for the generated image, a requested size for the image, and requested
5647 additional free disk space to be added to the image.
5648 Programatically, the build system determines the final size of the
5649 generated image as follows:
5650 <literallayout class='monospaced'>
5651 if (image-du * overhead) &lt; rootfs-size:
5652 internal-rootfs-size = rootfs-size + xspace
5653 else:
5654 internal-rootfs-size = (image-du * overhead) + xspace
5655
5656 where:
5657
5658 image-du = Returned value of the du command on
5659 the image.
5660
5661 overhead = IMAGE_OVERHEAD_FACTOR
5662
5663 rootfs-size = IMAGE_ROOTFS_SIZE
5664
5665 internal-rootfs-size = Initial root filesystem
5666 size before any modifications.
5667
5668 xspace = IMAGE_ROOTFS_EXTRA_SPACE
5669 </literallayout>
5670 </para>
5671
5672 <para>
5673 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
5674 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
5675 variables for related information.
5676<!-- In the above example, <filename>overhead</filename> is defined by the
5677 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
5678 variable, <filename>xspace</filename> is defined by the
5679 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
5680 variable, and <filename>du</filename> is the results of the disk usage command
5681 on the initially generated image. -->
5682 </para>
5683 </glossdef>
5684 </glossentry>
5685
5686 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
5687 <info>
5688 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
5689 </info>
5690 <glossdef>
5691 <para role="glossdeffirst">
5692<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5693 Specifies a dependency from one image type on another.
5694 Here is an example from the
5695 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
5696 class:
5697 <literallayout class='monospaced'>
5698 IMAGE_TYPEDEP_live = "ext3"
5699 </literallayout>
5700 </para>
5701
5702 <para>
5703 In the previous example, the variable ensures that when
5704 "live" is listed with the
5705 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
5706 variable, the OpenEmbedded build system produces an
5707 <filename>ext3</filename> image first since one of the
5708 components of the live
5709 image is an <filename>ext3</filename>
5710 formatted partition containing the root
5711 filesystem.
5712 </para>
5713 </glossdef>
5714 </glossentry>
5715
5716 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
5717 <info>
5718 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
5719 </info>
5720 <glossdef>
5721 <para role="glossdeffirst">
5722<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5723 Specifies the complete list of supported image types
5724 by default:
5725 <literallayout class='monospaced'>
5726 jffs2
5727 jffs2.sum
5728 cramfs
5729 ext2
5730 ext2.gz
5731 ext2.bz2
5732 ext3
5733 ext3.gz
5734 ext2.lzma
5735 btrfs
5736 live
5737 squashfs
5738 squashfs-xz
5739 ubi
5740 ubifs
5741 tar
5742 tar.gz
5743 tar.bz2
5744 tar.xz
5745 cpio
5746 cpio.gz
5747 cpio.xz
5748 cpio.lzma
5749 vdi
5750 vmdk
5751 elf
5752 </literallayout>
5753 </para>
5754
5755 <para>
5756 For more information about these types of images, see
5757 <filename>meta/classes/image_types*.bbclass</filename>
5758 in the
5759 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
5760 </para>
5761 </glossdef>
5762 </glossentry>
5763
5764 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
5765 <info>
5766 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
5767 </info>
5768 <glossdef>
5769 <para role="glossdeffirst">
5770<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5771 Helps define the recipe revision for recipes that share
5772 a common <filename>include</filename> file.
5773 You can think of this variable as part of the recipe revision
5774 as set from within an include file.
5775 </para>
5776
5777 <para>
5778 Suppose, for example, you have a set of recipes that
5779 are used across several projects.
5780 And, within each of those recipes the revision
5781 (its <link linkend='var-PR'><filename>PR</filename></link>
5782 value) is set accordingly.
5783 In this case, when the revision of those recipes changes,
5784 the burden is on you to find all those recipes and
5785 be sure that they get changed to reflect the updated
5786 version of the recipe.
5787 In this scenario, it can get complicated when recipes
5788 that are used in many places and provide common functionality
5789 are upgraded to a new revision.
5790 </para>
5791
5792 <para>
5793 A more efficient way of dealing with this situation is
5794 to set the <filename>INC_PR</filename> variable inside
5795 the <filename>include</filename> files that the recipes
5796 share and then expand the <filename>INC_PR</filename>
5797 variable within the recipes to help
5798 define the recipe revision.
5799 </para>
5800
5801 <para>
5802 The following provides an example that shows how to use
5803 the <filename>INC_PR</filename> variable
5804 given a common <filename>include</filename> file that
5805 defines the variable.
5806 Once the variable is defined in the
5807 <filename>include</filename> file, you can use the
5808 variable to set the <filename>PR</filename> values in
5809 each recipe.
5810 You will notice that when you set a recipe's
5811 <filename>PR</filename> you can provide more granular
5812 revisioning by appending values to the
5813 <filename>INC_PR</filename> variable:
5814 <literallayout class='monospaced'>
5815recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
5816recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
5817recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
5818recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
5819 </literallayout>
5820 The first line of the example establishes the baseline
5821 revision to be used for all recipes that use the
5822 <filename>include</filename> file.
5823 The remaining lines in the example are from individual
5824 recipes and show how the <filename>PR</filename> value
5825 is set.
5826 </para>
5827 </glossdef>
5828 </glossentry>
5829
5830 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
5831 <info>
5832 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
5833 </info>
5834 <glossdef>
5835 <para role="glossdeffirst">
5836<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5837 Specifies a space-separated list of license names
5838 (as they would appear in
5839 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
5840 that should be excluded from the build.
5841 Recipes that provide no alternatives to listed incompatible
5842 licenses are not built.
5843 Packages that are individually licensed with the specified
5844 incompatible licenses will be deleted.
5845 </para>
5846
5847 <note>
5848 This functionality is only regularly tested using
5849 the following setting:
5850 <literallayout class='monospaced'>
5851 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
5852 </literallayout>
5853 Although you can use other settings, you might be required
5854 to remove dependencies on or provide alternatives to
5855 components that are required to produce a functional system
5856 image.
5857 </note>
5858 </glossdef>
5859 </glossentry>
5860
5861 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
5862 <info>
5863 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
5864 </info>
5865 <glossdef>
5866 <para role="glossdeffirst">
5867<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5868 Prevents the default dependencies, namely the C compiler
5869 and standard C library (libc), from being added to
5870 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
5871 This variable is usually used within recipes that do not
5872 require any compilation using the C compiler.
5873 </para>
5874
5875 <para>
5876 Set the variable to "1" to prevent the default dependencies
5877 from being added.
5878 </para>
5879 </glossdef>
5880 </glossentry>
5881
5882 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
5883 <info>
5884 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
5885 </info>
5886 <glossdef>
5887 <para role="glossdeffirst">
5888<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5889 Prevents the OpenEmbedded build system from splitting
5890 out debug information during packaging.
5891 By default, the build system splits out debugging
5892 information during the
5893 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
5894 task.
5895 For more information on how debug information is split out,
5896 see the
5897 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
5898 variable.
5899 </para>
5900
5901 <para>
5902 To prevent the build system from splitting out
5903 debug information during packaging, set the
5904 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
5905 as follows:
5906 <literallayout class='monospaced'>
5907 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
5908 </literallayout>
5909 </para>
5910 </glossdef>
5911 </glossentry>
5912
5913 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
5914 <info>
5915 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
5916 </info>
5917 <glossdef>
5918 <para role="glossdeffirst">
5919<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5920 If set to "1", causes the build to not strip binaries in resulting packages.
5921 </para>
5922 </glossdef>
5923 </glossentry>
5924
5925 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
5926 <info>
5927 INHERIT[doc] = "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files."
5928 </info>
5929 <glossdef>
5930 <para role="glossdeffirst">
5931<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5932 Causes the named class to be inherited at
5933 this point during parsing.
5934 The variable is only valid in configuration files.
5935 </para>
5936 </glossdef>
5937 </glossentry>
5938
5939 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
5940 <info>
5941 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
5942 </info>
5943 <glossdef>
5944 <para role="glossdeffirst">
5945<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5946 Lists classes that will be inherited at the
5947 distribution level.
5948 It is unlikely that you want to edit this variable.
5949 </para>
5950
5951 <para>
5952 The default value of the variable is set as follows in the
5953 <filename>meta/conf/distro/defaultsetup.conf</filename>
5954 file:
5955 <literallayout class='monospaced'>
5956 INHERIT_DISTRO ?= "debian devshell sstate license"
5957 </literallayout>
5958 </para>
5959 </glossdef>
5960 </glossentry>
5961
5962 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
5963 <info>
5964 INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM disk (initramfs), which is used during boot."
5965 </info>
5966 <glossdef>
5967 <para role="glossdeffirst">
5968<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5969 Defines the format for the output image of an initial
5970 RAM disk (initramfs), which is used during boot.
5971 Supported formats are the same as those supported by the
5972 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
5973 variable.
5974 </para>
5975 </glossdef>
5976 </glossentry>
5977
5978 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
5979 <info>
5980 INITRAMFS_IMAGE[doc] = "Causes the OpenEmbedded build system to build an additional recipe as a dependency to your root filesystem recipe (e.g. core-image-sato)."
5981 </info>
5982 <glossdef>
5983 <para role="glossdeffirst">
5984<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5985 Causes the OpenEmbedded build system to build an additional
5986 recipe as a dependency to your root filesystem recipe
5987 (e.g. <filename>core-image-sato</filename>).
5988 The additional recipe is used to create an initial RAM disk
5989 (initramfs) that might be needed during the initial boot of
5990 the target system to accomplish such things as loading
5991 kernel modules prior to mounting the root file system.
5992 </para>
5993
5994 <para>
5995 When you set the variable, specify the name of the
5996 initramfs you want created.
5997 The following example, which is set in the
5998 <filename>local.conf</filename> configuration file, causes
5999 a separate recipe to be created that results in an
6000 initramfs image named
6001 <filename>core-image-sato-initramfs.bb</filename> to be
6002 created:
6003 <literallayout class='monospaced'>
6004 INITRAMFS_IMAGE = "core-image-minimal-initramfs"
6005 </literallayout>
6006 By default, the
6007 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6008 class sets this variable to a null string as follows:
6009 <literallayout class='monospaced'>
6010 INITRAMFS_IMAGE = ""
6011 </literallayout>
6012 </para>
6013
6014 <para>
6015 See the
6016 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-yocto/conf/local.conf.sample.extended'><filename>local.conf.sample.extended</filename></ulink>
6017 file for additional information.
6018 You can also reference the
6019 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta/classes/kernel.bbclass'><filename>kernel.bbclass</filename></ulink>
6020 file to see how the variable is used.
6021 </para>
6022 </glossdef>
6023 </glossentry>
6024
6025 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6026 <info>
6027 INITRAMFS_IMAGE_BUNDLE[doc] = "Controls whether or not the image recipe specified by INITRAMFS_IMAGE is run through an extra pass during kernel compilation in order to build a single binary that contains both the kernel image and the initial RAM disk (initramfs)."
6028 </info>
6029 <glossdef>
6030 <para role="glossdeffirst">
6031<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6032 Controls whether or not the image recipe specified by
6033 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
6034 is run through an extra pass during kernel compilation
6035 in order to build a single binary that contains both the
6036 kernel image and the initial RAM disk (initramfs).
6037 Using an extra compilation pass ensures that when a kernel
6038 attempts to use an initramfs, it does not encounter
6039 circular dependencies should the initramfs include kernel
6040 modules.
6041 </para>
6042
6043 <para>
6044 The combined binary is deposited into the
6045 <filename>tmp/deploy</filename> directory, which is part
6046 of the
6047 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
6048 </para>
6049
6050 <para>
6051 Setting the variable to "1" in a configuration file causes
6052 the OpenEmbedded build system to make the extra pass during
6053 kernel compilation:
6054 <literallayout class='monospaced'>
6055 INITRAMFS_IMAGE_BUNDLE = "1"
6056 </literallayout>
6057 By default, the
6058 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6059 class sets this variable to a null string as follows:
6060 <literallayout class='monospaced'>
6061 INITRAMFS_IMAGE_BUNDLE = ""
6062 </literallayout>
6063 <note>
6064 You must set the
6065 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6066 a configuration file.
6067 You cannot set the variable in a recipe file.
6068 </note>
6069 See the
6070 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-yocto/conf/local.conf.sample.extended'><filename>local.conf.sample.extended</filename></ulink>
6071 file for additional information.
6072 </para>
6073 </glossdef>
6074 </glossentry>
6075
6076 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6077 <info>
6078 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6079 </info>
6080 <glossdef>
6081 <para role="glossdeffirst">
6082<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6083 Indicates list of filesystem images to concatenate and use
6084 as an initial RAM disk (<filename>initrd</filename>).
6085 </para>
6086
6087 <para>
6088 The <filename>INITRD</filename> variable is an optional
6089 variable used with the
6090 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
6091 class.
6092 </para>
6093 </glossdef>
6094 </glossentry>
6095
6096 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6097 <info>
6098 INITRD_IMAGE[doc] = "When building a "live" bootable image (i.e. when IMAGE_FSTYPES contains "live"), INITRD_IMAGE specifies the image recipe that should be built to provide the initial RAM disk image."
6099 </info>
6100 <glossdef>
6101 <para role="glossdeffirst">
6102<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6103 When building a "live" bootable image (i.e. when
6104 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6105 contains "live"), <filename>INITRD_IMAGE</filename>
6106 specifies the image recipe that should be built
6107 to provide the initial RAM disk image.
6108 The default value is "core-image-minimal-initramfs".
6109 </para>
6110
6111 <para>
6112 See the
6113 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6114 class for more information.
6115 </para>
6116 </glossdef>
6117 </glossentry>
6118
6119 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6120 <info>
6121 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6122 </info>
6123 <glossdef>
6124 <para role="glossdeffirst">
6125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6126 The filename of the initialization script as installed to
6127 <filename>${sysconfdir}/init.d</filename>.
6128 </para>
6129
6130 <para>
6131 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6132 The variable is mandatory.
6133 </para>
6134 </glossdef>
6135 </glossentry>
6136
6137 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
6138 <info>
6139 INITSCRIPT_PACKAGES[doc] = "A list of the packages that contain initscripts. This variable is used in recipes when using update-rc.d.bbclass. The variable is optional and defaults to the PN variable."
6140 </info>
6141 <glossdef>
6142 <para role="glossdeffirst">
6143<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6144 A list of the packages that contain initscripts.
6145 If multiple packages are specified, you need to append the package name
6146 to the other <filename>INITSCRIPT_*</filename> as an override.
6147 </para>
6148
6149 <para>
6150 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6151 The variable is optional and defaults to the
6152 <link linkend='var-PN'><filename>PN</filename></link> variable.
6153 </para>
6154 </glossdef>
6155 </glossentry>
6156
6157 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
6158 <info>
6159 INITSCRIPT_PARAMS[doc] = "Specifies the options to pass to update-rc.d. The variable is mandatory and is used in recipes when using update-rc.d.bbclass."
6160 </info>
6161 <glossdef>
6162 <para role="glossdeffirst">
6163<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6164 Specifies the options to pass to <filename>update-rc.d</filename>.
6165 Here is an example:
6166 <literallayout class='monospaced'>
6167 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
6168 </literallayout>
6169 </para>
6170
6171 <para>
6172 In this example, the script has a runlevel of 99,
6173 starts the script in initlevels 2 and 5, and
6174 stops the script in levels 0, 1 and 6.
6175 </para>
6176
6177 <para>
6178 The variable's default value is "defaults", which is
6179 set in the
6180 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
6181 class.
6182 </para>
6183
6184 <para>
6185 The value in
6186 <filename>INITSCRIPT_PARAMS</filename> is passed through
6187 to the <filename>update-rc.d</filename> command.
6188 For more information on valid parameters, please see the
6189 <filename>update-rc.d</filename> manual page at
6190 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
6191 </para>
6192 </glossdef>
6193 </glossentry>
6194
6195 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
6196 <info>
6197 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
6198 </info>
6199 <glossdef>
6200 <para role="glossdeffirst">
6201<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6202 Specifies the QA checks to skip for a specific package
6203 within a recipe.
6204 For example, to skip the check for symbolic link
6205 <filename>.so</filename> files in the main package of a
6206 recipe, add the following to the recipe.
6207 The package name override must be used, which in this
6208 example is <filename>${PN}</filename>:
6209 <literallayout class='monospaced'>
6210 INSANE_SKIP_${PN} += "dev-so"
6211 </literallayout>
6212 </para>
6213
6214 <para>
6215 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
6216 section for a list of the valid QA checks you can
6217 specify using this variable.
6218 </para>
6219 </glossdef>
6220 </glossentry>
6221
6222 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
6223 <info>
6224 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
6225 </info>
6226 <glossdef>
6227 <para role="glossdeffirst">
6228<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6229 When the IPK backend is in use and package management
6230 is enabled on the target, you can use this variable to
6231 set up <filename>opkg</filename> in the target image
6232 to point to package feeds on a nominated server.
6233 Once the feed is established, you can perform
6234 installations or upgrades using the package manager
6235 at runtime.
6236 </para>
6237 </glossdef>
6238 </glossentry>
6239
6240<!--
6241 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
6242 <glossdef>
6243 <para>
6244 An environment variable that defines the directory where
6245 post installation hooks are installed for the
6246 post install environment.
6247 This variable is fixed as follows:
6248 <literallayout class='monospaced'>
6249 ${WORKDIR}/intercept_scripts
6250 </literallayout>
6251 </para>
6252
6253 <para>
6254 After installation of a target's root filesystem,
6255 post installation scripts, which are essentially bash scripts,
6256 are all executed just a single time.
6257 Limiting execution of these scripts minimizes installation
6258 time that would be lengthened due to certain packages
6259 triggering redundant operations.
6260 For example, consider the installation of font packages
6261 as a common example.
6262 Without limiting the execution of post installation scripts,
6263 all font directories would be rescanned to create the
6264 cache after each individual font package was installed.
6265 </para>
6266
6267 <para>
6268 Do not edit the <filename>INTERCEPT_DIR</filename>
6269 variable.
6270 </para>
6271 </glossdef>
6272 </glossentry>
6273-->
6274
6275 </glossdiv>
6276
6277<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
6278<!-- </glossdiv>-->
6279
6280 <glossdiv id='var-glossary-k'><title>K</title>
6281
6282 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
6283 <info>
6284 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
6285 </info>
6286 <glossdef>
6287 <para role="glossdeffirst">
6288<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6289 Defines the kernel architecture used when assembling
6290 the configuration.
6291 Architectures supported for this release are:
6292 <literallayout class='monospaced'>
6293 powerpc
6294 i386
6295 x86_64
6296 arm
6297 qemu
6298 mips
6299 </literallayout>
6300 </para>
6301
6302 <para>
6303 You define the <filename>KARCH</filename> variable in the
6304 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
6305 </para>
6306 </glossdef>
6307 </glossentry>
6308
6309 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
6310 <info>
6311 KBRANCH[doc] = "A regular expression used by the build process to explicitly identify the kernel branch that is validated, patched and configured during a build."
6312 </info>
6313 <glossdef>
6314 <para role="glossdeffirst">
6315<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6316 A regular expression used by the build process to explicitly
6317 identify the kernel branch that is validated, patched,
6318 and configured during a build.
6319 You must set this variable to ensure the exact kernel
6320 branch you want is being used by the build process.
6321 </para>
6322
6323 <para>
6324 Values for this variable are set in the kernel's recipe
6325 file and the kernel's append file.
6326 For example, if you are using the Yocto Project kernel that
6327 is based on the Linux 3.14 kernel, the kernel recipe file
6328 is the
6329 <filename>meta/recipes-kernel/linux/linux-yocto_3.14.bb</filename>
6330 file.
6331 Following is an example for a kernel recipe file:
6332 <literallayout class='monospaced'>
6333 KBRANCH ?= "standard/base"
6334 </literallayout>
6335 </para>
6336
6337 <para>
6338 This variable is also used from the kernel's append file
6339 to identify the kernel branch specific to a particular
6340 machine or target hardware.
6341 The kernel's append file is located in the BSP layer for
6342 a given machine.
6343 For example, the kernel append file for the Emenlow BSP is in the
6344 <filename>meta-intel</filename> Git repository and is named
6345 <filename>meta-emenlow/recipes-kernel/linux/linux-yocto_3.14.bbappend</filename>.
6346 Here are the related statements from the append file:
6347 <literallayout class='monospaced'>
6348 COMPATIBLE_MACHINE_emenlow-noemgd = "emenlow-noemgd"
6349 KMACHINE_emenlow-noemgd = "emenlow"
6350 KBRANCH_emenlow-noemgd = "standard/base"
6351 KERNEL_FEATURES_append_emenlow-noemgd = " features/drm-gma500/drm-gma500.scc"
6352 </literallayout>
6353 The <filename>KBRANCH</filename> statement identifies
6354 the kernel branch to use when building for the Emenlow
6355 BSP.
6356 </para>
6357 </glossdef>
6358 </glossentry>
6359
6360 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
6361 <info>
6362 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
6363 </info>
6364 <glossdef>
6365 <para role="glossdeffirst">
6366<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6367 When used with the
6368 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
6369 class, specifies an "in-tree" kernel configuration file
6370 for use during a kernel build.
6371 </para>
6372
6373 <para>
6374 Typically, when using a <filename>defconfig</filename> to
6375 configure a kernel during a build, you place the
6376 file in your layer in the same manner as you would
6377 patch files and configuration fragment files (i.e.
6378 "out-of-tree").
6379 However, if you want to use a <filename>defconfig</filename>
6380 file that is part of the kernel tree (i.e. "in-tree"),
6381 you can use the
6382 <filename>KBUILD_DEFCONFIG</filename> variable to point
6383 to the <filename>defconfig</filename> file.
6384 </para>
6385
6386 <para>
6387 To use the variable, set it in the append file for your
6388 kernel recipe using the following form:
6389 <literallayout class='monospaced'>
6390 KBUILD_DEFCONFIG_<link linkend='var-KMACHINE'>KMACHINE</link> ?= <replaceable>defconfig_file</replaceable>
6391 </literallayout>
6392 Here is an example from a "raspberrypi2"
6393 <filename>KMACHINE</filename> build that uses a
6394 <filename>defconfig</filename> file named
6395 "bcm2709_defconfig":
6396 <literallayout class='monospaced'>
6397 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
6398 </literallayout>
6399 As an alternative, you can use the following within your
6400 append file:
6401 <literallayout class='monospaced'>
6402 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
6403 </literallayout>
6404 For more information on how to use the
6405 <filename>KBUILD_DEFCONFIG</filename> variable, see the
6406 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-an-in-tree-defconfig-file'>Using an "In-Tree" <filename>defconfig</filename> File</ulink>"
6407 section.
6408 </para>
6409 </glossdef>
6410 </glossentry>
6411
6412 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
6413 <info>
6414 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
6415 </info>
6416 <glossdef>
6417 <para role="glossdeffirst">
6418<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6419 A list of classes defining kernel image types that the
6420 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6421 class should inherit.
6422 You typically append this variable to enable extended image
6423 types.
6424 An example is the "kernel-fitimage", which enables
6425 fitImage support and resides in
6426 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
6427 You can register custom kernel image types with the
6428 <filename>kernel</filename> class using this variable.
6429 </para>
6430 </glossdef>
6431 </glossentry>
6432
6433 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
6434 <info>
6435 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
6436 </info>
6437 <glossdef>
6438 <para role="glossdeffirst">
6439<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6440 Specifies additional <filename>make</filename>
6441 command-line arguments the OpenEmbedded build system
6442 passes on when compiling the kernel.
6443 </para>
6444 </glossdef>
6445 </glossentry>
6446
6447 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
6448 <info>
6449 KERNEL_FEATURES[doc] = "Includes additional metadata from the Yocto Project kernel Git repository. The metadata you add through this variable includes config fragments and features descriptions."
6450 </info>
6451 <glossdef>
6452 <para role="glossdeffirst">
6453<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6454 Includes additional metadata from the Yocto Project kernel Git repository.
6455 In the OpenEmbedded build system, the default Board Support Packages (BSPs)
6456 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
6457 is provided through
6458 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
6459 and <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link> variables.
6460 You can use the <filename>KERNEL_FEATURES</filename> variable to further
6461 add metadata for all BSPs.
6462 </para>
6463
6464 <para>
6465 The metadata you add through this variable includes config fragments and
6466 features descriptions,
6467 which usually includes patches as well as config fragments.
6468 You typically override the <filename>KERNEL_FEATURES</filename> variable
6469 for a specific machine.
6470 In this way, you can provide validated, but optional, sets of kernel
6471 configurations and features.
6472 </para>
6473
6474 <para>
6475 For example, the following adds <filename>netfilter</filename> to all
6476 the Yocto Project kernels and adds sound support to the <filename>qemux86</filename>
6477 machine:
6478 <literallayout class='monospaced'>
6479 # Add netfilter to all linux-yocto kernels
6480 KERNEL_FEATURES="features/netfilter/netfilter.scc"
6481
6482 # Add sound support to the qemux86 machine
6483 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc"
6484 </literallayout></para>
6485 </glossdef>
6486 </glossentry>
6487
6488 <glossentry id='var-KERNEL_IMAGE_BASE_NAME'><glossterm>KERNEL_IMAGE_BASE_NAME</glossterm>
6489 <info>
6490 KERNEL_IMAGE_BASE_NAME[doc] = "The base name of the kernel image."
6491 </info>
6492 <glossdef>
6493 <para role="glossdeffirst">
6494<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6495 The base name of the kernel image.
6496 This variable is set in the
6497 <link linkend='ref-classes-kernel'>kernel</link> class
6498 as follows:
6499 <literallayout class='monospaced'>
6500 KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
6501 </literallayout>
6502 </para>
6503
6504 <para>
6505 See the
6506 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>,
6507 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
6508 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
6509 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
6510 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6511 and
6512 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6513 variables for additional information.
6514 </para>
6515 </glossdef>
6516 </glossentry>
6517
6518 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
6519 <info>
6520 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
6521 </info>
6522 <glossdef>
6523 <para role="glossdeffirst">
6524<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6525 Specifies the maximum size of the kernel image file in
6526 kilobytes.
6527 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
6528 the size of the kernel image file is checked against
6529 the set value during the
6530 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
6531 task.
6532 The task fails if the kernel image file is larger than
6533 the setting.
6534 </para>
6535
6536 <para>
6537 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
6538 target devices that have a limited amount of space in
6539 which the kernel image must be stored.
6540 </para>
6541
6542 <para>
6543 By default, this variable is not set, which means the
6544 size of the kernel image is not checked.
6545 </para>
6546 </glossdef>
6547 </glossentry>
6548
6549 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
6550 <info>
6551 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
6552 </info>
6553 <glossdef>
6554 <para role="glossdeffirst">
6555<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6556 The type of kernel to build for a device, usually set by the
6557 machine configuration files and defaults to "zImage".
6558 This variable is used
6559 when building the kernel and is passed to <filename>make</filename> as the target to
6560 build.
6561 </para>
6562 </glossdef>
6563 </glossentry>
6564
6565 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
6566 <info>
6567 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
6568 </info>
6569 <glossdef>
6570 <para role="glossdeffirst">
6571<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6572 Lists kernel modules that need to be auto-loaded during
6573 boot.
6574 <note>
6575 This variable replaces the deprecated
6576 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
6577 variable.
6578 </note>
6579 </para>
6580
6581 <para>
6582 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
6583 variable anywhere that it can be
6584 recognized by the kernel recipe or by an out-of-tree kernel
6585 module recipe (e.g. a machine configuration file, a
6586 distribution configuration file, an append file for the
6587 recipe, or the recipe itself).
6588 </para>
6589
6590 <para>
6591 Specify it as follows:
6592 <literallayout class='monospaced'>
6593 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
6594 </literallayout>
6595 </para>
6596
6597 <para>
6598 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
6599 the OpenEmbedded build system to populate the
6600 <filename>/etc/modules-load.d/modname.conf</filename>
6601 file with the list of modules to be auto-loaded on boot.
6602 The modules appear one-per-line in the file.
6603 Here is an example of the most common use case:
6604 <literallayout class='monospaced'>
6605 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
6606 </literallayout>
6607 </para>
6608
6609 <para>
6610 For information on how to populate the
6611 <filename>modname.conf</filename> file with
6612 <filename>modprobe.d</filename> syntax lines, see the
6613 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
6614 variable.
6615 </para>
6616 </glossdef>
6617 </glossentry>
6618
6619 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
6620 <info>
6621 KERNEL_MODULE_PROBECONF[doc] = "Lists kernel modules for which the build system expects to find module_conf_* values that specify configuration for each of the modules."
6622 </info>
6623 <glossdef>
6624 <para role="glossdeffirst">
6625<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6626 Provides a list of modules for which the OpenEmbedded
6627 build system expects to find
6628 <filename>module_conf_</filename><replaceable>modname</replaceable>
6629 values that specify configuration for each of the modules.
6630 For information on how to provide those module
6631 configurations, see the
6632 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
6633 variable.
6634 </para>
6635 </glossdef>
6636 </glossentry>
6637
6638 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
6639 <info>
6640 KERNEL_PATH[doc] = "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module class (module.bbclass)."
6641 </info>
6642 <glossdef>
6643 <para role="glossdeffirst">
6644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6645 The location of the kernel sources.
6646 This variable is set to the value of the
6647 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
6648 within the
6649 <link linkend='ref-classes-module'><filename>module</filename></link>
6650 class.
6651 For information on how this variable is used, see the
6652 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
6653 section.
6654 </para>
6655
6656 <para>
6657 To help maximize compatibility with out-of-tree drivers
6658 used to build modules, the OpenEmbedded build system also
6659 recognizes and uses the
6660 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
6661 variable, which is identical to the
6662 <filename>KERNEL_PATH</filename> variable.
6663 Both variables are common variables used by external
6664 Makefiles to point to the kernel source directory.
6665 </para>
6666 </glossdef>
6667 </glossentry>
6668
6669 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
6670 <info>
6671 KERNEL_SRC[doc] = "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module class (module.bbclass)."
6672 </info>
6673 <glossdef>
6674 <para role="glossdeffirst">
6675<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6676 The location of the kernel sources.
6677 This variable is set to the value of the
6678 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
6679 within the
6680 <link linkend='ref-classes-module'><filename>module</filename></link>
6681 class.
6682 For information on how this variable is used, see the
6683 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
6684 section.
6685 </para>
6686
6687 <para>
6688 To help maximize compatibility with out-of-tree drivers
6689 used to build modules, the OpenEmbedded build system also
6690 recognizes and uses the
6691 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
6692 variable, which is identical to the
6693 <filename>KERNEL_SRC</filename> variable.
6694 Both variables are common variables used by external
6695 Makefiles to point to the kernel source directory.
6696 </para>
6697 </glossdef>
6698 </glossentry>
6699
6700 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
6701 <info>
6702 KFEATURE_DESCRIPTION[doc] = "Provides a short description of a configuration fragment. You use this variable in the .scc file that describes a configuration fragment file."
6703 </info>
6704 <glossdef>
6705 <para role="glossdeffirst">
6706<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6707 Provides a short description of a configuration fragment.
6708 You use this variable in the <filename>.scc</filename>
6709 file that describes a configuration fragment file.
6710 Here is the variable used in a file named
6711 <filename>smp.scc</filename> to describe SMP being
6712 enabled:
6713 <literallayout class='monospaced'>
6714 define KFEATURE_DESCRIPTION "Enable SMP"
6715 </literallayout>
6716 </para>
6717 </glossdef>
6718 </glossentry>
6719
6720 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
6721 <info>
6722 KMACHINE[doc] = "The machine as known by the kernel."
6723 </info>
6724 <glossdef>
6725 <para role="glossdeffirst">
6726<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6727 The machine as known by the kernel.
6728 Sometimes the machine name used by the kernel does not
6729 match the machine name used by the OpenEmbedded build
6730 system.
6731 For example, the machine name that the OpenEmbedded build
6732 system understands as
6733 <filename>core2-32-intel-common</filename> goes by a
6734 different name in the Linux Yocto kernel.
6735 The kernel understands that machine as
6736 <filename>intel-core2-32</filename>.
6737 For cases like these, the <filename>KMACHINE</filename>
6738 variable maps the kernel machine name to the OpenEmbedded
6739 build system machine name.
6740 </para>
6741
6742 <para>
6743 These mappings between different names occur in the
6744 Yocto Linux Kernel's <filename>meta</filename> branch.
6745 As an example take a look in the
6746 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
6747 file:
6748 <literallayout class='monospaced'>
6749 LINUX_VERSION_core2-32-intel-common = "3.19.0"
6750 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
6751 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
6752 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
6753 KMACHINE_core2-32-intel-common = "intel-core2-32"
6754 KBRANCH_core2-32-intel-common = "standard/base"
6755 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
6756 </literallayout>
6757 The <filename>KMACHINE</filename> statement says that
6758 the kernel understands the machine name as
6759 "intel-core2-32".
6760 However, the OpenEmbedded build system understands the
6761 machine as "core2-32-intel-common".
6762 </para>
6763
6764 </glossdef>
6765 </glossentry>
6766
6767 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
6768 <info>
6769 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
6770 </info>
6771 <glossdef>
6772 <para role="glossdeffirst">
6773<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6774 Defines the kernel type to be used in assembling the
6775 configuration.
6776 The linux-yocto recipes define "standard", "tiny",
6777 and "preempt-rt" kernel types.
6778 See the
6779 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
6780 section in the Yocto Project Linux Kernel Development
6781 Manual for more information on kernel types.
6782 </para>
6783
6784 <para>
6785 You define the <filename>KTYPE</filename> variable in the
6786 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
6787 The value you use must match the value used for the
6788 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
6789 value used by the kernel recipe.
6790 </para>
6791 </glossdef>
6792 </glossentry>
6793 </glossdiv>
6794
6795 <glossdiv id='var-glossary-l'><title>L</title>
6796
6797 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
6798 <info>
6799 LABELS[doc] = "Provides a list of targets for automatic configuration."
6800 </info>
6801 <glossdef>
6802 <para role="glossdeffirst">
6803<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6804 Provides a list of targets for automatic configuration.
6805 </para>
6806
6807 <para>
6808 See the
6809 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
6810 class for more information on how this variable is used.
6811 </para>
6812 </glossdef>
6813 </glossentry>
6814
6815 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
6816 <info>
6817 LAYERDEPENDS[doc] = "Lists the layers, separated by spaces, upon which this recipe depends. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer."
6818 </info>
6819 <glossdef>
6820 <para role="glossdeffirst">
6821<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6822 Lists the layers that this recipe depends upon, separated by spaces.
6823 Optionally, you can specify a specific layer version for a dependency
6824 by adding it to the end of the layer name with a colon, (e.g. "anotherlayer:3"
6825 to be compared against
6826 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>
6827 in this case).
6828 An error will be produced if any dependency is missing or
6829 the version numbers do not match exactly (if specified).
6830 This variable is used in the <filename>conf/layer.conf</filename> file
6831 and must be suffixed with the name of the specific layer (e.g.
6832 <filename>LAYERDEPENDS_mylayer</filename>).
6833 </para>
6834 </glossdef>
6835 </glossentry>
6836
6837 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
6838 <info>
6839 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
6840 </info>
6841 <glossdef>
6842 <para role="glossdeffirst">
6843<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6844 When used inside the <filename>layer.conf</filename> configuration
6845 file, this variable provides the path of the current layer.
6846 This variable is not available outside of <filename>layer.conf</filename>
6847 and references are expanded immediately when parsing of the file completes.
6848 </para>
6849 </glossdef>
6850 </glossentry>
6851
6852 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
6853 <info>
6854 LAYERVERSION[doc] = "Optionally specifies the version of a layer as a single number. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer."
6855 </info>
6856 <glossdef>
6857 <para role="glossdeffirst">
6858<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6859 Optionally specifies the version of a layer as a single number.
6860 You can use this within
6861 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
6862 for another layer in order to depend on a specific version
6863 of the layer.
6864 This variable is used in the <filename>conf/layer.conf</filename> file
6865 and must be suffixed with the name of the specific layer (e.g.
6866 <filename>LAYERVERSION_mylayer</filename>).
6867 </para>
6868 </glossdef>
6869 </glossentry>
6870
6871 <glossentry id='var-LD'><glossterm>LD</glossterm>
6872 <info>
6873 LD[doc] = "Minimal command and arguments to run the linker."
6874 </info>
6875 <glossdef>
6876 <para role="glossdeffirst">
6877<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6878 The minimal command and arguments used to run the
6879 linker.
6880 </para>
6881 </glossdef>
6882 </glossentry>
6883
6884 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
6885 <info>
6886 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
6887 </info>
6888 <glossdef>
6889 <para role="glossdeffirst">
6890<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6891 Specifies the flags to pass to the linker.
6892 This variable is exported to an environment
6893 variable and thus made visible to the software being
6894 built during the compilation step.
6895 </para>
6896
6897 <para>
6898 Default initialization for <filename>LDFLAGS</filename>
6899 varies depending on what is being built:
6900 <itemizedlist>
6901 <listitem><para>
6902 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
6903 when building for the target
6904 </para></listitem>
6905 <listitem><para>
6906 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
6907 when building for the build host (i.e.
6908 <filename>-native</filename>)
6909 </para></listitem>
6910 <listitem><para>
6911 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
6912 when building for an SDK (i.e.
6913 <filename>nativesdk-</filename>)
6914 </para></listitem>
6915 </itemizedlist>
6916 </para>
6917 </glossdef>
6918 </glossentry>
6919
6920 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
6921 <info>
6922 LEAD_SONAME[doc] = "Specifies the lead (or primary) compiled library file (.so) that the debian class applies its naming policy to given a recipe that packages multiple libraries."
6923 </info>
6924 <glossdef>
6925 <para role="glossdeffirst">
6926<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6927 Specifies the lead (or primary) compiled library file
6928 (<filename>.so</filename>) that the
6929 <link linkend='ref-classes-debian'><filename>debian</filename></link>
6930 class applies its naming policy to given a recipe that
6931 packages multiple libraries.
6932 </para>
6933
6934 <para>
6935 This variable works in conjunction with the
6936 <filename>debian</filename> class.
6937 </para>
6938 </glossdef>
6939 </glossentry>
6940
6941 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
6942 <info>
6943 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
6944 </info>
6945 <glossdef>
6946 <para role="glossdeffirst">
6947<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6948 Checksums of the license text in the recipe source code.
6949 </para>
6950
6951 <para>
6952 This variable tracks changes in license text of the source
6953 code files.
6954 If the license text is changed, it will trigger a build
6955 failure, which gives the developer an opportunity to review any
6956 license change.
6957 </para>
6958
6959 <para>
6960 This variable must be defined for all recipes (unless
6961 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
6962 is set to "CLOSED").</para>
6963 <para>For more information, see the
6964 "<link linkend='usingpoky-configuring-LIC_FILES_CHKSUM'>
6965 Tracking License Changes</link>" section.
6966 </para>
6967 </glossdef>
6968 </glossentry>
6969
6970 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
6971 <info>
6972 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
6973 </info>
6974 <glossdef>
6975 <para role="glossdeffirst">
6976<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6977 The list of source licenses for the recipe.
6978 Follow these rules:
6979 <itemizedlist>
6980 <listitem><para>Do not use spaces within individual
6981 license names.</para></listitem>
6982 <listitem><para>Separate license names using
6983 | (pipe) when there is a choice between licenses.
6984 </para></listitem>
6985 <listitem><para>Separate license names using
6986 &amp; (ampersand) when multiple licenses exist
6987 that cover different parts of the source.
6988 </para></listitem>
6989 <listitem><para>You can use spaces between license
6990 names.</para></listitem>
6991 <listitem><para>For standard licenses, use the names
6992 of the files in
6993 <filename>meta/files/common-licenses/</filename>
6994 or the
6995 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
6996 flag names defined in
6997 <filename>meta/conf/licenses.conf</filename>.
6998 </para></listitem>
6999 </itemizedlist>
7000 </para>
7001
7002 <para>
7003 Here are some examples:
7004 <literallayout class='monospaced'>
7005 LICENSE = "LGPLv2.1 | GPLv3"
7006 LICENSE = "MPL-1 &amp; LGPLv2.1"
7007 LICENSE = "GPLv2+"
7008 </literallayout>
7009 The first example is from the recipes for Qt, which the user
7010 may choose to distribute under either the LGPL version
7011 2.1 or GPL version 3.
7012 The second example is from Cairo where two licenses cover
7013 different parts of the source code.
7014 The final example is from <filename>sysstat</filename>,
7015 which presents a single license.
7016 </para>
7017
7018 <para>
7019 You can also specify licenses on a per-package basis to
7020 handle situations where components of the output have
7021 different licenses.
7022 For example, a piece of software whose code is
7023 licensed under GPLv2 but has accompanying documentation
7024 licensed under the GNU Free Documentation License 1.2 could
7025 be specified as follows:
7026 <literallayout class='monospaced'>
7027 LICENSE = "GFDL-1.2 &amp; GPLv2"
7028 LICENSE_${PN} = "GPLv2"
7029 LICENSE_${PN}-doc = "GFDL-1.2"
7030 </literallayout>
7031 </para>
7032 </glossdef>
7033 </glossentry>
7034
7035 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
7036 <info>
7037 LICENSE_FLAGS[doc] = "Specifies additional flags for a recipe you must whitelist through LICENSE_FLAGS_WHITELIST in order to allow the recipe to be built."
7038 </info>
7039 <glossdef>
7040 <para role="glossdeffirst">
7041<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7042 Specifies additional flags for a recipe you must
7043 whitelist through
7044 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
7045 in order to allow the recipe to be built.
7046 When providing multiple flags, separate them with
7047 spaces.
7048 </para>
7049
7050 <para>
7051 This value is independent of
7052 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7053 and is typically used to mark recipes that might
7054 require additional licenses in order to be used in a
7055 commercial product.
7056 For more information, see the
7057 "<link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7058 section.
7059 </para>
7060 </glossdef>
7061 </glossentry>
7062
7063 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
7064 <info>
7065 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
7066 </info>
7067 <glossdef>
7068 <para role="glossdeffirst">
7069<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7070 Lists license flags that when specified in
7071 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
7072 within a recipe should not prevent that recipe from being
7073 built.
7074 This practice is otherwise known as "whitelisting"
7075 license flags.
7076 For more information, see the
7077 <link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7078 section.
7079 </para>
7080 </glossdef>
7081 </glossentry>
7082
7083 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
7084 <info>
7085 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
7086 </info>
7087 <glossdef>
7088 <para role="glossdeffirst">
7089<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7090 Path to additional licenses used during the build.
7091 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
7092 to define the directory that holds common license text used during the build.
7093 The <filename>LICENSE_PATH</filename> variable allows you to extend that
7094 location to other areas that have additional licenses:
7095 <literallayout class='monospaced'>
7096 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
7097 </literallayout>
7098 </para>
7099 </glossdef>
7100 </glossentry>
7101
7102 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
7103 <info>
7104 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7105 </info>
7106 <glossdef>
7107 <para role="glossdeffirst">
7108<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7109 Defines the kernel type to be used in assembling the
7110 configuration.
7111 The linux-yocto recipes define "standard", "tiny", and
7112 "preempt-rt" kernel types.
7113 See the
7114 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7115 section in the Yocto Project Linux Kernel Development
7116 Manual for more information on kernel types.
7117 </para>
7118
7119 <para>
7120 If you do not specify a
7121 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
7122 "standard".
7123 Together with
7124 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
7125 the <filename>LINUX_KERNEL_TYPE</filename> variable
7126 defines the search
7127 arguments used by the kernel tools to find the appropriate
7128 description within the kernel
7129 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
7130 with which to build out the sources and configuration.
7131 </para>
7132 </glossdef>
7133 </glossentry>
7134
7135 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
7136 <info>
7137 LINUX_VERSION[doc] = "The Linux version from kernel.org on which the Linux kernel image being built using the OpenEmbedded build system is based. You define this variable in the kernel recipe."
7138 </info>
7139 <glossdef>
7140 <para role="glossdeffirst">
7141<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7142 The Linux version from <filename>kernel.org</filename>
7143 on which the Linux kernel image being built using the
7144 OpenEmbedded build system is based.
7145 You define this variable in the kernel recipe.
7146 For example, the <filename>linux-yocto-3.4.bb</filename>
7147 kernel recipe found in
7148 <filename>meta/recipes-kernel/linux</filename>
7149 defines the variables as follows:
7150 <literallayout class='monospaced'>
7151 LINUX_VERSION ?= "3.4.24"
7152 </literallayout>
7153 </para>
7154
7155 <para>
7156 The <filename>LINUX_VERSION</filename> variable is used to
7157 define <link linkend='var-PV'><filename>PV</filename></link>
7158 for the recipe:
7159 <literallayout class='monospaced'>
7160 PV = "${LINUX_VERSION}+git${SRCPV}"
7161 </literallayout>
7162 </para>
7163 </glossdef>
7164 </glossentry>
7165
7166 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
7167 <info>
7168 LINUX_VERSION_EXTENSION[doc] = "A string extension compiled into the version string of the Linux kernel built with the OpenEmbedded build system. You define this variable in the kernel recipe."
7169 </info>
7170 <glossdef>
7171 <para role="glossdeffirst">
7172<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7173 A string extension compiled into the version
7174 string of the Linux kernel built with the OpenEmbedded
7175 build system.
7176 You define this variable in the kernel recipe.
7177 For example, the linux-yocto kernel recipes all define
7178 the variable as follows:
7179 <literallayout class='monospaced'>
7180 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
7181 </literallayout>
7182 </para>
7183
7184 <para>
7185 Defining this variable essentially sets the
7186 Linux kernel configuration item
7187 <filename>CONFIG_LOCALVERSION</filename>, which is visible
7188 through the <filename>uname</filename> command.
7189 Here is an example that shows the extension assuming it
7190 was set as previously shown:
7191 <literallayout class='monospaced'>
7192 $ uname -r
7193 3.7.0-rc8-custom
7194 </literallayout>
7195 </para>
7196 </glossdef>
7197 </glossentry>
7198
7199 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
7200 <info>
7201 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
7202 </info>
7203 <glossdef>
7204 <para role="glossdeffirst">
7205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7206 Specifies the directory to which the OpenEmbedded build
7207 system writes overall log files.
7208 The default directory is <filename>${TMPDIR}/log</filename>.
7209 </para>
7210
7211 <para>
7212 For the directory containing logs specific to each task,
7213 see the <link linkend='var-T'><filename>T</filename></link>
7214 variable.
7215 </para>
7216 </glossdef>
7217 </glossentry>
7218
7219 </glossdiv>
7220
7221 <glossdiv id='var-glossary-m'><title>M</title>
7222
7223 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
7224 <info>
7225 MACHINE[doc] = "Specifies the target device for which the image is built. You define MACHINE in the conf/local.conf file in the Build Directory."
7226 </info>
7227 <glossdef>
7228 <para role="glossdeffirst">
7229<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7230 Specifies the target device for which the image is built.
7231 You define <filename>MACHINE</filename> in the
7232 <filename>local.conf</filename> file found in the
7233 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
7234 By default, <filename>MACHINE</filename> is set to
7235 "qemux86", which is an x86-based architecture machine to
7236 be emulated using QEMU:
7237 <literallayout class='monospaced'>
7238 MACHINE ?= "qemux86"
7239 </literallayout>
7240 </para>
7241
7242 <para>
7243 The variable corresponds to a machine configuration file of the
7244 same name, through which machine-specific configurations are set.
7245 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
7246 exists the corresponding <filename>qemux86.conf</filename> machine
7247 configuration file, which can be found in the
7248 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
7249 in <filename>meta/conf/machine</filename>.
7250 </para>
7251
7252 <para>
7253 The list of machines supported by the Yocto Project as
7254 shipped include the following:
7255 <literallayout class='monospaced'>
7256 MACHINE ?= "qemuarm"
7257 MACHINE ?= "qemuarm64"
7258 MACHINE ?= "qemumips"
7259 MACHINE ?= "qemumips64"
7260 MACHINE ?= "qemuppc"
7261 MACHINE ?= "qemux86"
7262 MACHINE ?= "qemux86-64"
7263 MACHINE ?= "genericx86"
7264 MACHINE ?= "genericx86-64"
7265 MACHINE ?= "beaglebone"
7266 MACHINE ?= "mpc8315e-rdb"
7267 MACHINE ?= "edgerouter"
7268 </literallayout>
7269 The last five are Yocto Project reference hardware boards, which
7270 are provided in the <filename>meta-yocto-bsp</filename> layer.
7271 <note>Adding additional Board Support Package (BSP) layers
7272 to your configuration adds new possible settings for
7273 <filename>MACHINE</filename>.
7274 </note>
7275 </para>
7276 </glossdef>
7277 </glossentry>
7278
7279 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
7280 <info>
7281 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
7282 </info>
7283 <glossdef>
7284 <para role="glossdeffirst">
7285<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7286 Specifies the name of the machine-specific architecture.
7287 This variable is set automatically from
7288 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7289 or
7290 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
7291 You should not hand-edit the
7292 <filename>MACHINE_ARCH</filename> variable.
7293 </para>
7294 </glossdef>
7295 </glossentry>
7296
7297 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
7298 <info>
7299 MACHINE_ESSENTIAL_EXTRA_RDEPENDS[doc] = "A list of required machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot."
7300 </info>
7301 <glossdef>
7302 <para role="glossdeffirst">
7303<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7304 A list of required machine-specific packages to install as part of
7305 the image being built.
7306 The build process depends on these packages being present.
7307 Furthermore, because this is a "machine essential" variable, the list of
7308 packages are essential for the machine to boot.
7309 The impact of this variable affects images based on
7310 <filename>packagegroup-core-boot</filename>,
7311 including the <filename>core-image-minimal</filename> image.
7312 </para>
7313
7314 <para>
7315 This variable is similar to the
7316 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
7317 variable with the exception that the image being built has a build
7318 dependency on the variable's list of packages.
7319 In other words, the image will not build if a file in this list is not found.
7320 </para>
7321
7322 <para>
7323 As an example, suppose the machine for which you are building requires
7324 <filename>example-init</filename> to be run during boot to initialize the hardware.
7325 In this case, you would use the following in the machine's
7326 <filename>.conf</filename> configuration file:
7327 <literallayout class='monospaced'>
7328 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
7329 </literallayout>
7330 </para>
7331 </glossdef>
7332 </glossentry>
7333
7334 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
7335 <info>
7336 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS[doc] = "A list of recommended machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot."
7337 </info>
7338 <glossdef>
7339 <para role="glossdeffirst">
7340<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7341 A list of recommended machine-specific packages to install as part of
7342 the image being built.
7343 The build process does not depend on these packages being present.
7344 However, because this is a "machine essential" variable, the list of
7345 packages are essential for the machine to boot.
7346 The impact of this variable affects images based on
7347 <filename>packagegroup-core-boot</filename>,
7348 including the <filename>core-image-minimal</filename> image.
7349 </para>
7350
7351 <para>
7352 This variable is similar to the
7353 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
7354 variable with the exception that the image being built does not have a build
7355 dependency on the variable's list of packages.
7356 In other words, the image will still build if a package in this list is not found.
7357 Typically, this variable is used to handle essential kernel modules, whose
7358 functionality may be selected to be built into the kernel rather than as a module,
7359 in which case a package will not be produced.
7360 </para>
7361
7362 <para>
7363 Consider an example where you have a custom kernel where a specific touchscreen
7364 driver is required for the machine to be usable.
7365 However, the driver can be built as a module or
7366 into the kernel depending on the kernel configuration.
7367 If the driver is built as a module, you want it to be installed.
7368 But, when the driver is built into the kernel, you still want the
7369 build to succeed.
7370 This variable sets up a "recommends" relationship so that in the latter case,
7371 the build will not fail due to the missing package.
7372 To accomplish this, assuming the package for the module was called
7373 <filename>kernel-module-ab123</filename>, you would use the
7374 following in the machine's <filename>.conf</filename> configuration
7375 file:
7376 <literallayout class='monospaced'>
7377 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
7378 </literallayout>
7379 </para>
7380
7381 <para>
7382 Some examples of these machine essentials are flash, screen, keyboard, mouse,
7383 or touchscreen drivers (depending on the machine).
7384 </para>
7385 </glossdef>
7386 </glossentry>
7387
7388 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
7389 <info>
7390 MACHINE_EXTRA_RDEPENDS[doc] = "A list of machine-specific packages to install as part of the image being built that are not essential for the machine to boot. However, the build process for more fully-featured images depends on the packages being present."
7391 </info>
7392 <glossdef>
7393 <para role="glossdeffirst">
7394<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7395 A list of machine-specific packages to install as part of the
7396 image being built that are not essential for the machine to boot.
7397 However, the build process for more fully-featured images
7398 depends on the packages being present.
7399 </para>
7400
7401 <para>
7402 This variable affects all images based on
7403 <filename>packagegroup-base</filename>, which does not include the
7404 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
7405 images.
7406 </para>
7407
7408 <para>
7409 The variable is similar to the
7410 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
7411 variable with the exception that the image being built has a build
7412 dependency on the variable's list of packages.
7413 In other words, the image will not build if a file in this list is not found.
7414 </para>
7415
7416 <para>
7417 An example is a machine that has WiFi capability but is not
7418 essential for the machine to boot the image.
7419 However, if you are building a more fully-featured image, you want to enable
7420 the WiFi.
7421 The package containing the firmware for the WiFi hardware is always
7422 expected to exist, so it is acceptable for the build process to depend upon
7423 finding the package.
7424 In this case, assuming the package for the firmware was called
7425 <filename>wifidriver-firmware</filename>, you would use the following in the
7426 <filename>.conf</filename> file for the machine:
7427 <literallayout class='monospaced'>
7428 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
7429 </literallayout>
7430 </para>
7431 </glossdef>
7432 </glossentry>
7433
7434 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
7435 <info>
7436 MACHINE_EXTRA_RRECOMMENDS[doc] = "A list of machine-specific packages to install as part of the image being built that are not essential for booting the machine. The image being built has no build dependencies on the packages in this list."
7437 </info>
7438 <glossdef>
7439 <para role="glossdeffirst">
7440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7441 A list of machine-specific packages to install as part of the
7442 image being built that are not essential for booting the machine.
7443 The image being built has no build dependency on this list of packages.
7444 </para>
7445
7446 <para>
7447 This variable affects only images based on
7448 <filename>packagegroup-base</filename>, which does not include the
7449 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
7450 images.
7451 </para>
7452
7453 <para>
7454 This variable is similar to the
7455 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
7456 variable with the exception that the image being built does not have a build
7457 dependency on the variable's list of packages.
7458 In other words, the image will build if a file in this list is not found.
7459 </para>
7460
7461 <para>
7462 An example is a machine that has WiFi capability but is not essential
7463 For the machine to boot the image.
7464 However, if you are building a more fully-featured image, you want to enable
7465 WiFi.
7466 In this case, the package containing the WiFi kernel module will not be produced
7467 if the WiFi driver is built into the kernel, in which case you still want the
7468 build to succeed instead of failing as a result of the package not being found.
7469 To accomplish this, assuming the package for the module was called
7470 <filename>kernel-module-examplewifi</filename>, you would use the
7471 following in the <filename>.conf</filename> file for the machine:
7472 <literallayout class='monospaced'>
7473 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
7474 </literallayout>
7475 </para>
7476 </glossdef>
7477 </glossentry>
7478
7479 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
7480 <info>
7481 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
7482 </info>
7483 <glossdef>
7484 <para role="glossdeffirst">
7485<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7486 Specifies the list of hardware features the
7487 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
7488 of supporting.
7489 For related information on enabling features, see the
7490 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
7491 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
7492 and
7493 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
7494 variables.
7495 </para>
7496
7497 <para>
7498 For a list of hardware features supported by the Yocto
7499 Project as shipped, see the
7500 "<link linkend='ref-features-machine'>Machine Features</link>"
7501 section.
7502 </para>
7503 </glossdef>
7504 </glossentry>
7505
7506 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
7507 <info>
7508 MACHINE_FEATURES_BACKFILL[doc] = "Features to be added to MACHINE_FEATURES if not also present in MACHINE_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and is not intended to be user-configurable."
7509 </info>
7510 <glossdef>
7511 <para role="glossdeffirst">
7512<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7513 Features to be added to
7514 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
7515 if not also present in
7516 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
7517 </para>
7518
7519 <para>
7520 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
7521 It is not intended to be user-configurable.
7522 It is best to just reference the variable to see which machine features are
7523 being backfilled for all machine configurations.
7524 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
7525 more information.
7526 </para>
7527 </glossdef>
7528 </glossentry>
7529
7530 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
7531 <info>
7532 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
7533 </info>
7534 <glossdef>
7535 <para role="glossdeffirst">
7536<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7537 Features from
7538 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
7539 that should not be backfilled (i.e. added to
7540 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
7541 during the build.
7542 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
7543 more information.
7544 </para>
7545 </glossdef>
7546 </glossentry>
7547
7548 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
7549 <info>
7550 MACHINEOVERRIDES[doc] = "Lists overrides specific to the current machine. By default, this list includes the value of MACHINE."
7551 </info>
7552 <glossdef>
7553 <para role="glossdeffirst">
7554<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7555 Lists overrides specific to the current machine.
7556 By default, this list includes the value
7557 of <filename><link linkend='var-MACHINE'>MACHINE</link></filename>.
7558 You can extend the list to apply variable overrides for
7559 classes of machines.
7560 For example, all QEMU emulated machines (e.g. qemuarm,
7561 qemux86, and so forth) include a common file named
7562 <filename>meta/conf/machine/include/qemu.inc</filename>
7563 that prepends <filename>MACHINEOVERRIDES</filename> with
7564 the following variable override:
7565 <literallayout class='monospaced'>
7566 MACHINEOVERRIDES =. "qemuall:"
7567 </literallayout>
7568 </para>
7569
7570 <para>
7571 Applying an override like <filename>qemuall</filename>
7572 affects all QEMU emulated machines elsewhere.
7573 Here is an example from the
7574 <filename>connman-conf</filename> recipe:
7575 <literallayout class='monospaced'>
7576 SRC_URI_append_qemuall = "file://wired.config \
7577 file://wired-setup \
7578 "
7579 </literallayout>
7580 </para>
7581 </glossdef>
7582 </glossentry>
7583
7584 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
7585 <info>
7586 MAINTAINER[doc] = "The email address of the distribution maintainer."
7587 </info>
7588 <glossdef>
7589 <para role="glossdeffirst">
7590<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7591 The email address of the distribution maintainer.
7592 </para>
7593 </glossdef>
7594 </glossentry>
7595
7596 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
7597 <info>
7598 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
7599 </info>
7600 <glossdef>
7601 <para role="glossdeffirst">
7602<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7603 Specifies additional paths from which the OpenEmbedded
7604 build system gets source code.
7605 When the build system searches for source code, it first
7606 tries the local download directory.
7607 If that location fails, the build system tries locations
7608 defined by
7609 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
7610 the upstream source, and then locations specified by
7611 <filename>MIRRORS</filename> in that order.
7612 </para>
7613
7614 <para>
7615 Assuming your distribution
7616 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
7617 is "poky", the default value for
7618 <filename>MIRRORS</filename> is defined in the
7619 <filename>conf/distro/poky.conf</filename> file in the
7620 <filename>meta-yocto</filename> Git repository.
7621 </para>
7622 </glossdef>
7623 </glossentry>
7624
7625 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
7626 <info>
7627 MLPREFIX[doc] = "Specifies a prefix has been added to PN to create a special version of a recipe or package, such as a Multilib version."
7628 </info>
7629 <glossdef>
7630 <para role="glossdeffirst">
7631<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7632 Specifies a prefix has been added to
7633 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
7634 of a recipe or package, such as a Multilib version.
7635 The variable is used in places where the prefix needs to be
7636 added to or removed from a the name (e.g. the
7637 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
7638 <filename>MLPREFIX</filename> gets set when a prefix has been
7639 added to <filename>PN</filename>.
7640 </para>
7641 </glossdef>
7642 </glossentry>
7643
7644 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
7645 <info>
7646 module_autoload[doc] = "This variable has been replaced by the KERNEL_MODULE_AUTOLOAD variable. You should replace all occurrences of module_autoload with additions to KERNEL_MODULE_AUTOLOAD."
7647 </info>
7648 <glossdef>
7649 <para role="glossdeffirst">
7650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7651 This variable has been replaced by the
7652 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
7653 You should replace all occurrences of
7654 <filename>module_autoload</filename> with additions to
7655 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
7656 <literallayout class='monospaced'>
7657 module_autoload_rfcomm = "rfcomm"
7658 </literallayout>
7659 </para>
7660
7661 <para>
7662 should now be replaced with:
7663 <literallayout class='monospaced'>
7664 KERNEL_MODULE_AUTOLOAD += "rfcomm"
7665 </literallayout>
7666 See the
7667 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7668 variable for more information.
7669 </para>
7670 </glossdef>
7671 </glossentry>
7672
7673 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
7674 <info>
7675 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
7676 </info>
7677 <glossdef>
7678 <para role="glossdeffirst">
7679<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7680 Specifies
7681 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
7682 syntax lines for inclusion in the
7683 <filename>/etc/modprobe.d/modname.conf</filename> file.
7684 </para>
7685
7686 <para>
7687 You can use this variable anywhere that it can be
7688 recognized by the kernel recipe or out-of-tree kernel
7689 module recipe (e.g. a machine configuration file, a
7690 distribution configuration file, an append file for the
7691 recipe, or the recipe itself).
7692 If you use this variable, you must also be sure to list
7693 the module name in the
7694 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7695 variable.
7696 </para>
7697
7698 <para>
7699 Here is the general syntax:
7700 <literallayout class='monospaced'>
7701 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
7702 </literallayout>
7703 You must use the kernel module name override.
7704 </para>
7705
7706 <para>
7707 Run <filename>man modprobe.d</filename> in the shell to
7708 find out more information on the exact syntax
7709 you want to provide with <filename>module_conf</filename>.
7710 </para>
7711
7712 <para>
7713 Including <filename>module_conf</filename> causes the
7714 OpenEmbedded build system to populate the
7715 <filename>/etc/modprobe.d/modname.conf</filename>
7716 file with <filename>modprobe.d</filename> syntax lines.
7717 Here is an example that adds the options
7718 <filename>arg1</filename> and <filename>arg2</filename>
7719 to a module named <filename>mymodule</filename>:
7720 <literallayout class='monospaced'>
7721 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
7722 </literallayout>
7723 </para>
7724
7725 <para>
7726 For information on how to specify kernel modules to
7727 auto-load on boot, see the
7728 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7729 variable.
7730 </para>
7731 </glossdef>
7732 </glossentry>
7733
7734 <glossentry id='var-MODULE_IMAGE_BASE_NAME'><glossterm>MODULE_IMAGE_BASE_NAME</glossterm>
7735 <info>
7736 MODULE_IMAGE_BASE_NAME[doc] = "The base name of the kernel modules tarball."
7737 </info>
7738 <glossdef>
7739 <para role="glossdeffirst">
7740<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7741 The base name of the kernel modules tarball.
7742 This variable is set in the
7743 <link linkend='ref-classes-kernel'>kernel</link> class
7744 as follows:
7745 <literallayout class='monospaced'>
7746 MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
7747 </literallayout>
7748 </para>
7749
7750 <para>
7751 See the
7752 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7753 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7754 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7755 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
7756 and
7757 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
7758 variables for additional information.
7759 </para>
7760 </glossdef>
7761 </glossentry>
7762
7763 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
7764 <info>
7765 MODULE_TARBALL_DEPLOY[doc] = "Controls creation of the modules-*.tgz file. Set this variable to "0" to disable creation of this file, which contains all of the kernel modules resulting from a kernel build."
7766 </info>
7767 <glossdef>
7768 <para role="glossdeffirst">
7769<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7770 Controls creation of the <filename>modules-*.tgz</filename>
7771 file.
7772 Set this variable to "0" to disable creation of this
7773 file, which contains all of the kernel modules resulting
7774 from a kernel build.
7775 </para>
7776 </glossdef>
7777 </glossentry>
7778
7779 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
7780 <info>
7781 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
7782 </info>
7783 <glossdef>
7784 <para role="glossdeffirst">
7785<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7786 Separates files for different machines such that you can build
7787 for multiple target machines using the same output directories.
7788 See the <link linkend='var-STAMP'><filename>STAMP</filename></link> variable
7789 for an example.
7790 </para>
7791 </glossdef>
7792 </glossentry>
7793
7794 </glossdiv>
7795
7796 <glossdiv id='var-glossary-n'><title>N</title>
7797
7798 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
7799 <info>
7800 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
7801 </info>
7802 <glossdef>
7803 <para role="glossdeffirst">
7804<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7805 A string identifying the host distribution.
7806 Strings consist of the host distributor ID
7807 followed by the release, as reported by the
7808 <filename>lsb_release</filename> tool
7809 or as read from <filename>/etc/lsb-release</filename>.
7810 For example, when running a build on Ubuntu 12.10, the value
7811 is "Ubuntu-12.10".
7812 If this information is unable to be determined, the value
7813 resolves to "Unknown".
7814 </para>
7815
7816 <para>
7817 This variable is used by default to isolate native shared
7818 state packages for different distributions (e.g. to avoid
7819 problems with <filename>glibc</filename> version
7820 incompatibilities).
7821 Additionally, the variable is checked against
7822 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
7823 if that variable is set.
7824 </para>
7825 </glossdef>
7826 </glossentry>
7827
7828 <glossentry id='var-NM'><glossterm>NM</glossterm>
7829 <info>
7830 NM[doc] = "Minimal command and arguments to run 'nm'."
7831 </info>
7832 <glossdef>
7833 <para role="glossdeffirst">
7834<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7835 The minimal command and arguments to run
7836 <filename>nm</filename>.
7837 </para>
7838 </glossdef>
7839 </glossentry>
7840
7841 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
7842 <info>
7843 NO_RECOMMENDATIONS[doc] = "When set to '1', no recommended packages will be installed. Realize that some recommended packages might be required for certain system functionality, such as kernel-modules. It is up to the user to add packages to IMAGE_INSTALL as needed."
7844 </info>
7845 <glossdef>
7846 <para role="glossdeffirst">
7847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7848 Prevents installation of all "recommended-only" packages.
7849 Recommended-only packages are packages installed only
7850 through the
7851 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
7852 variable).
7853 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
7854 to "1" turns this feature on:
7855 <literallayout class='monospaced'>
7856 NO_RECOMMENDATIONS = "1"
7857 </literallayout>
7858 </para>
7859
7860 <para>
7861 You can set this variable globally in your
7862 <filename>local.conf</filename> file or you can attach it to
7863 a specific image recipe by using the recipe name override:
7864 <literallayout class='monospaced'>
7865 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
7866 </literallayout>
7867 </para>
7868
7869 <para>
7870 It is important to realize that if you choose to not install
7871 packages using this variable and some other packages are
7872 dependent on them (i.e. listed in a recipe's
7873 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
7874 variable), the OpenEmbedded build system ignores your
7875 request and will install the packages to avoid dependency
7876 errors.
7877 <note>
7878 Some recommended packages might be required for certain
7879 system functionality, such as kernel modules.
7880 It is up to you to add packages with the
7881 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
7882 variable.
7883 </note>
7884 </para>
7885
7886 <para>
7887 Support for this variable exists only when using the
7888 IPK and RPM packaging backend.
7889 Support does not exist for DEB.
7890 </para>
7891
7892 <para>
7893 See the
7894 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
7895 and the
7896 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
7897 variables for related information.
7898 </para>
7899 </glossdef>
7900 </glossentry>
7901
7902 <glossentry id='var-NOHDD'><glossterm>NOHDD</glossterm>
7903 <info>
7904 NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
7905 </info>
7906 <glossdef>
7907 <para role="glossdeffirst">
7908<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7909 Causes the OpenEmbedded build system to skip building the
7910 <filename>.hddimg</filename> image.
7911 The <filename>NOHDD</filename> variable is used with the
7912 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
7913 class.
7914 Set the variable to "1" to prevent the
7915 <filename>.hddimg</filename> image from being built.
7916 </para>
7917 </glossdef>
7918 </glossentry>
7919
7920 <glossentry id='var-NOISO'><glossterm>NOISO</glossterm>
7921 <info>
7922 NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
7923 </info>
7924 <glossdef>
7925 <para role="glossdeffirst">
7926<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7927 Causes the OpenEmbedded build system to skip building the
7928 ISO image.
7929 The <filename>NOISO</filename> variable is used with the
7930 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
7931 class.
7932 Set the variable to "1" to prevent the ISO image from
7933 being built.
7934 To enable building an ISO image, set the variable to "0".
7935 </para>
7936 </glossdef>
7937 </glossentry>
7938
7939 </glossdiv>
7940
7941 <glossdiv id='var-glossary-o'><title>O</title>
7942
7943 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
7944 <info>
7945 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
7946 </info>
7947 <glossdef>
7948 <para role="glossdeffirst">
7949<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7950 The minimal command and arguments to run
7951 <filename>objcopy</filename>.
7952 </para>
7953 </glossdef>
7954 </glossentry>
7955
7956 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
7957 <info>
7958 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
7959 </info>
7960 <glossdef>
7961 <para role="glossdeffirst">
7962<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7963 The minimal command and arguments to run
7964 <filename>objdump</filename>.
7965 </para>
7966 </glossdef>
7967 </glossentry>
7968
7969 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
7970 <info>
7971 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
7972 </info>
7973 <glossdef>
7974 <para role="glossdeffirst">
7975<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7976 When inheriting the
7977 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
7978 class, this variable
7979 specifies additional arguments passed to the "sed" command.
7980 The sed command alters any paths in configuration scripts
7981 that have been set up during compilation.
7982 Inheriting this class results in all paths in these scripts
7983 being changed to point into the
7984 <filename>sysroots/</filename> directory so that all builds
7985 that use the script will use the correct directories
7986 for the cross compiling layout.
7987 </para>
7988
7989 <para>
7990 See the <filename>meta/classes/binconfig.bbclass</filename>
7991 in the
7992 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
7993 for details on how this class applies these additional
7994 sed command arguments.
7995 For general information on the
7996 <filename>binconfig.bbclass</filename> class, see the
7997 "<link linkend='ref-classes-binconfig'>Binary Configuration Scripts - <filename>binconfig.bbclass</filename></link>"
7998 section.
7999 </para>
8000 </glossdef>
8001 </glossentry>
8002
8003 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
8004 <info>
8005 OE_IMPORTS[doc] = "An internal variable used to tell the OpenEmbedded build system what Python modules to import for every Python function run by the system."
8006 </info>
8007 <glossdef>
8008 <para role="glossdeffirst">
8009<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8010 An internal variable used to tell the OpenEmbedded build
8011 system what Python modules to import for every Python
8012 function run by the system.
8013 </para>
8014
8015 <note>
8016 Do not set this variable.
8017 It is for internal use only.
8018 </note>
8019 </glossdef>
8020 </glossentry>
8021
8022 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
8023 <info>
8024 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
8025 </info>
8026 <glossdef>
8027 <para role="glossdeffirst">
8028<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8029 Controls how the OpenEmbedded build system spawns
8030 interactive terminals on the host development system
8031 (e.g. using the BitBake command with the
8032 <filename>-c devshell</filename> command-line option).
8033 For more information, see the
8034 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
8035 in the Yocto Project Development Manual.
8036 </para>
8037
8038 <para>
8039 You can use the following values for the
8040 <filename>OE_TERMINAL</filename> variable:
8041 <literallayout class='monospaced'>
8042 auto
8043 gnome
8044 xfce
8045 rxvt
8046 screen
8047 konsole
8048 none
8049 </literallayout>
8050 </para>
8051 </glossdef>
8052 </glossentry>
8053
8054 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
8055 <info>
8056 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
8057 </info>
8058 <glossdef>
8059 <para role="glossdeffirst">
8060<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8061 The directory from which the top-level build environment
8062 setup script is sourced.
8063 The Yocto Project makes two top-level build environment
8064 setup scripts available:
8065 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
8066 and
8067 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>.
8068 When you run one of these scripts, the
8069 <filename>OEROOT</filename> variable resolves to the
8070 directory that contains the script.
8071 </para>
8072
8073 <para>
8074 For additional information on how this variable is used,
8075 see the initialization scripts.
8076 </para>
8077 </glossdef>
8078 </glossentry>
8079
8080 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
8081 <info>
8082 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
8083 </info>
8084 <glossdef>
8085 <para role="glossdeffirst">
8086<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8087 Declares the oldest version of the Linux kernel that the
8088 produced binaries must support.
8089 This variable is passed into the build of the Embedded
8090 GNU C Library (<filename>glibc</filename>).
8091 </para>
8092
8093 <para>
8094 The default for this variable comes from the
8095 <filename>meta/conf/bitbake.conf</filename> configuration
8096 file.
8097 You can override this default by setting the variable
8098 in a custom distribution configuration file.
8099 </para>
8100 </glossdef>
8101 </glossentry>
8102
8103 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
8104 <info>
8105 OVERRIDES[doc] = "BitBake uses OVERRIDES to control what variables are overridden after BitBake parses recipes and configuration files."
8106 </info>
8107 <glossdef>
8108 <para role="glossdeffirst">
8109<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8110 BitBake uses <filename>OVERRIDES</filename> to control
8111 what variables are overridden after BitBake parses
8112 recipes and configuration files.
8113 You can find more information on how overrides are handled
8114 in the
8115 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
8116 section of the BitBake User Manual.
8117 </para>
8118 </glossdef>
8119 </glossentry>
8120 </glossdiv>
8121
8122 <glossdiv id='var-glossary-p'><title>P</title>
8123
8124 <glossentry id='var-P'><glossterm>P</glossterm>
8125 <info>
8126 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
8127 </info>
8128 <glossdef>
8129 <para role="glossdeffirst">
8130<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8131 The recipe name and version.
8132 <filename>P</filename> is comprised of the following:
8133 <literallayout class='monospaced'>
8134 ${PN}-${PV}
8135 </literallayout>
8136 </para>
8137 </glossdef>
8138 </glossentry>
8139
8140 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
8141 <info>
8142 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
8143 </info>
8144 <glossdef>
8145 <para role="glossdeffirst">
8146<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8147 The architecture of the resulting package or packages.
8148 </para>
8149
8150 <para>
8151 By default, the value of this variable is set to
8152 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
8153 when building for the target,
8154 <filename>BUILD_ARCH</filename> when building for the
8155 build host and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
8156 for the SDK.
8157 However, if your recipe's output packages are built
8158 specific to the target machine rather than general for
8159 the architecture of the machine, you should set
8160 <filename>PACKAGE_ARCH</filename> to the value of
8161 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
8162 in the recipe as follows:
8163 <literallayout class='monospaced'>
8164 PACKAGE_ARCH = "${MACHINE_ARCH}"
8165 </literallayout>
8166 </para>
8167 </glossdef>
8168 </glossentry>
8169
8170 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
8171 <info>
8172 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
8173 </info>
8174 <glossdef>
8175 <para role="glossdeffirst">
8176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8177 Specifies a list of architectures compatible with
8178 the target machine.
8179 This variable is set automatically and should not
8180 normally be hand-edited.
8181 Entries are separated using spaces and listed in order
8182 of priority.
8183 The default value for
8184 <filename>PACKAGE_ARCHS</filename> is "all any noarch
8185 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
8186 </para>
8187 </glossdef>
8188 </glossentry>
8189
8190 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
8191 <info>
8192 PACKAGE_BEFORE_PN[doc] = "Enables easily adding packages to PACKAGES before ${PN} so that the packages can pick up files that would normally be included in the default package."
8193 </info>
8194 <glossdef>
8195 <para role="glossdeffirst">
8196<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8197 Enables easily adding packages to
8198 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
8199 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
8200 so that those added packages can pick up files that would normally be
8201 included in the default package.
8202 </para>
8203 </glossdef>
8204 </glossentry>
8205
8206 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
8207 <info>
8208 PACKAGE_CLASSES[doc] = "This variable specifies the package manager to use when packaging data. It is set in the conf/local.conf file in the Build Directory."
8209 </info>
8210 <glossdef>
8211 <para role="glossdeffirst">
8212<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8213 This variable, which is set in the
8214 <filename>local.conf</filename> configuration file found in
8215 the <filename>conf</filename> folder of the
8216 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
8217 specifies the package manager the OpenEmbedded build system
8218 uses when packaging data.
8219 </para>
8220
8221 <para>
8222 You can provide one or more of the following arguments for
8223 the variable:
8224 <literallayout class='monospaced'>
8225 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
8226 </literallayout>
8227 <note><title>Warning</title>
8228 While it is a legal option, the
8229 <filename>package_tar</filename> class is broken
8230 and is not supported.
8231 It is recommended that you do not use it.
8232 </note>
8233 The build system uses only the first argument in the list
8234 as the package manager when creating your image or SDK.
8235 However, packages will be created using any additional
8236 packaging classes you specify.
8237 For example, if you use the following in your
8238 <filename>local.conf</filename> file:
8239 <literallayout class='monospaced'>
8240 PACKAGE_CLASSES ?= "package_ipk"
8241 </literallayout>
8242 The OpenEmbedded build system uses the IPK package manager
8243 to create your image or SDK.
8244 </para>
8245
8246 <para>
8247 For information on packaging and build performance effects
8248 as a result of the package manager in use, see the
8249 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
8250 section.
8251 </para>
8252 </glossdef>
8253 </glossentry>
8254
8255 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
8256 <info>
8257 PACKAGE_DEBUG_SPLIT_STYLE[doc] = "Determines how to split up the binary and debug information when creating *-dbg packages to be used with the GNU Project Debugger (GDB)."
8258 </info>
8259 <glossdef>
8260 <para role="glossdeffirst">
8261<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8262 Determines how to split up the binary and debug information
8263 when creating <filename>*-dbg</filename> packages to be
8264 used with the GNU Project Debugger (GDB).
8265 </para>
8266
8267 <para>
8268 With the
8269 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
8270 you can control where debug information, which can include
8271 or exclude source files, is stored:
8272 <itemizedlist>
8273 <listitem><para>
8274 ".debug": Debug symbol files are placed next
8275 to the binary in a <filename>.debug</filename>
8276 directory on the target.
8277 For example, if a binary is installed into
8278 <filename>/bin</filename>, the corresponding debug
8279 symbol files are installed in
8280 <filename>/bin/.debug</filename>.
8281 Source files are placed in
8282 <filename>/usr/src/debug</filename>.
8283 This is the default behavior.
8284 </para></listitem>
8285 <listitem><para>
8286 "debug-file-directory": Debug symbol files are
8287 placed under <filename>/usr/lib/debug</filename>
8288 on the target, and separated by the path from where
8289 the binary is installed.
8290 For example, if a binary is installed in
8291 <filename>/bin</filename>, the corresponding debug
8292 symbols are installed in
8293 <filename>/usr/lib/debug/bin</filename>.
8294 Source files are placed in
8295 <filename>/usr/src/debug</filename>.
8296 </para></listitem>
8297 <listitem><para>
8298 "debug-without-src": The same behavior as
8299 ".debug" previously described with the exception
8300 that no source files are installed.
8301 </para></listitem>.
8302 </itemizedlist>
8303 </para>
8304
8305 <para>
8306 You can find out more about debugging using GDB by reading
8307 the
8308 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-gdb-remotedebug'>Debugging With the GNU Project Debugger (GDB) Remotely</ulink>"
8309 section in the Yocto Project Development Manual.
8310 </para>
8311 </glossdef>
8312 </glossentry>
8313
8314 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
8315 <info>
8316 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
8317 </info>
8318 <glossdef>
8319 <para role="glossdeffirst">
8320<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8321 Lists packages that should not be installed into an image.
8322 For example:
8323 <literallayout class='monospaced'>
8324 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
8325 </literallayout>
8326 </para>
8327
8328 <para>
8329 You can set this variable globally in your
8330 <filename>local.conf</filename> file or you can attach it to
8331 a specific image recipe by using the recipe name override:
8332 <literallayout class='monospaced'>
8333 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
8334 </literallayout>
8335 </para>
8336
8337 <para>
8338 If you choose to not install
8339 a package using this variable and some other package is
8340 dependent on it (i.e. listed in a recipe's
8341 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
8342 variable), the OpenEmbedded build system generates a fatal
8343 installation error.
8344 Because the build system halts the process with a fatal
8345 error, you can use the variable with an iterative
8346 development process to remove specific components from a
8347 system.
8348 </para>
8349
8350 <para>
8351 Support for this variable exists only when using the
8352 IPK and RPM packaging backend.
8353 Support does not exist for DEB.
8354 </para>
8355
8356 <para>
8357 See the
8358 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
8359 and the
8360 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
8361 variables for related information.
8362 </para>
8363 </glossdef>
8364 </glossentry>
8365
8366 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
8367 <info>
8368 PACKAGE_EXTRA_ARCHS[doc] = "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors."
8369 </info>
8370 <glossdef>
8371 <para role="glossdeffirst">
8372<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8373 Specifies the list of architectures compatible with the device CPU.
8374 This variable is useful when you build for several different devices that use
8375 miscellaneous processors such as XScale and ARM926-EJS.
8376 </para>
8377 </glossdef>
8378 </glossentry>
8379
8380 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
8381 <info>
8382 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
8383 </info>
8384 <glossdef>
8385 <para role="glossdeffirst">
8386<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8387 The <filename>PACKAGE_GROUP</filename> variable has been
8388 renamed to
8389 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
8390 See the variable description for
8391 <filename>FEATURE_PACKAGES</filename> for information.
8392 </para>
8393
8394 <para>
8395 If if you use the <filename>PACKAGE_GROUP</filename>
8396 variable, the OpenEmbedded build system issues a warning
8397 message.
8398 </para>
8399 </glossdef>
8400 </glossentry>
8401
8402 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
8403 <info>
8404 PACKAGE_INSTALL[doc] = "List of the packages to be installed into the image. The variable is generally not user-defined and uses IMAGE_INSTALL as part of the list."
8405 </info>
8406 <glossdef>
8407 <para role="glossdeffirst">
8408<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8409 The final list of packages passed to the package manager
8410 for installation into the image.
8411 </para>
8412
8413 <para>
8414 Because the package manager controls actual installation
8415 of all packages, the list of packages passed using
8416 <filename>PACKAGE_INSTALL</filename> is not the final list
8417 of packages that are actually installed.
8418 This variable is internal to the image construction
8419 code.
8420 Consequently, in general, you should use the
8421 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
8422 variable to specify packages for installation.
8423 The exception to this is when working with
8424 the
8425 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
8426 image.
8427 When working with an initial RAM disk (initramfs)
8428 image, use the <filename>PACKAGE_INSTALL</filename>
8429 variable.
8430 </para>
8431 </glossdef>
8432 </glossentry>
8433
8434 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
8435 <info>
8436 PACKAGE_INSTALL_ATTEMPTONLY[doc] = "List of packages attempted to be installed when creating an image. If a listed package fails to install, the build system does not generate an error. This variable is generally not user-defined."
8437 </info>
8438 <glossdef>
8439 <para role="glossdeffirst">
8440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8441 Specifies a list of packages the OpenEmbedded build
8442 system attempts to install when creating an image.
8443 If a listed package fails to install, the build system
8444 does not generate an error.
8445 This variable is generally not user-defined.
8446 </para>
8447 </glossdef>
8448 </glossentry>
8449
8450 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
8451 <info>
8452 PACKAGE_PREPROCESS_FUNCS[doc] = "Specifies a list of functions run to pre-process the PKGD directory prior to splitting the files out to individual packages."
8453 </info>
8454 <glossdef>
8455 <para role="glossdeffirst">
8456<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8457 Specifies a list of functions run to pre-process the
8458 <link linkend='var-PKGD'><filename>PKGD</filename></link>
8459 directory prior to splitting the files out to individual
8460 packages.
8461 </para>
8462 </glossdef>
8463 </glossentry>
8464
8465 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
8466 <info>
8467 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
8468 </info>
8469 <glossdef>
8470 <para role="glossdeffirst">
8471<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8472 This variable provides a means of enabling or disabling
8473 features of a recipe on a per-recipe basis.
8474 <filename>PACKAGECONFIG</filename> blocks are defined
8475 in recipes when you specify features and then arguments
8476 that define feature behaviors.
8477 Here is the basic block structure:
8478 <literallayout class='monospaced'>
8479 PACKAGECONFIG ??= "f1 f2 f3 ..."
8480 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1"
8481 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2"
8482 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3"
8483 </literallayout>
8484 </para>
8485
8486 <para>
8487 The <filename>PACKAGECONFIG</filename>
8488 variable itself specifies a space-separated list of the
8489 features to enable.
8490 Following the features, you can determine the behavior of
8491 each feature by providing up to four order-dependent
8492 arguments, which are separated by commas.
8493 You can omit any argument you like but must retain the
8494 separating commas.
8495 The order is important and specifies the following:
8496 <orderedlist>
8497 <listitem><para>Extra arguments
8498 that should be added to the configure script
8499 argument list
8500 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>)
8501 if the feature is enabled.</para></listitem>
8502 <listitem><para>Extra arguments
8503 that should be added to <filename>EXTRA_OECONF</filename>
8504 if the feature is disabled.
8505 </para></listitem>
8506 <listitem><para>Additional build dependencies
8507 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
8508 that should be added if the feature is enabled.
8509 </para></listitem>
8510 <listitem><para>Additional runtime dependencies
8511 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
8512 that should be added if the feature is enabled.
8513 </para></listitem>
8514 </orderedlist>
8515 </para>
8516
8517 <para>
8518 Consider the following
8519 <filename>PACKAGECONFIG</filename> block taken from the
8520 <filename>librsvg</filename> recipe.
8521 In this example the feature is <filename>croco</filename>,
8522 which has three arguments that determine the feature's
8523 behavior.
8524 <literallayout class='monospaced'>
8525 PACKAGECONFIG ??= "croco"
8526 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
8527 </literallayout>
8528 The <filename>--with-croco</filename> and
8529 <filename>libcroco</filename> arguments apply only if
8530 the feature is enabled.
8531 In this case, <filename>--with-croco</filename> is
8532 added to the configure script argument list and
8533 <filename>libcroco</filename> is added to
8534 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
8535 On the other hand, if the feature is disabled say through
8536 a <filename>.bbappend</filename> file in another layer, then
8537 the second argument <filename>--without-croco</filename> is
8538 added to the configure script rather than
8539 <filename>--with-croco</filename>.
8540 </para>
8541
8542 <para>
8543 The basic <filename>PACKAGECONFIG</filename> structure
8544 previously described holds true regardless of whether you
8545 are creating a block or changing a block.
8546 When creating a block, use the structure inside your
8547 recipe.
8548 </para>
8549
8550 <para>
8551 If you want to change an existing
8552 <filename>PACKAGECONFIG</filename> block, you can do so
8553 one of two ways:
8554 <itemizedlist>
8555 <listitem><para><emphasis>Append file:</emphasis>
8556 Create an append file named
8557 <replaceable>recipename</replaceable><filename>.bbappend</filename>
8558 in your layer and override the value of
8559 <filename>PACKAGECONFIG</filename>.
8560 You can either completely override the variable:
8561 <literallayout class='monospaced'>
8562 PACKAGECONFIG="f4 f5"
8563 </literallayout>
8564 Or, you can just append the variable:
8565 <literallayout class='monospaced'>
8566 PACKAGECONFIG_append = " f4"
8567 </literallayout></para></listitem>
8568 <listitem><para><emphasis>Configuration file:</emphasis>
8569 This method is identical to changing the block
8570 through an append file except you edit your
8571 <filename>local.conf</filename> or
8572 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
8573 As with append files previously described,
8574 you can either completely override the variable:
8575 <literallayout class='monospaced'>
8576 PACKAGECONFIG_pn-<replaceable>recipename</replaceable>="f4 f5"
8577 </literallayout>
8578 Or, you can just amend the variable:
8579 <literallayout class='monospaced'>
8580 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
8581 </literallayout></para></listitem>
8582 </itemizedlist>
8583 </para>
8584 </glossdef>
8585 </glossentry>
8586
8587 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
8588 <info>
8589 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
8590 </info>
8591 <glossdef>
8592 <para role="glossdeffirst">
8593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8594 For recipes inheriting the
8595 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
8596 class, setting
8597 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
8598 "1" specifies that the normal complementary packages
8599 (i.e. <filename>-dev</filename>,
8600 <filename>-dbg</filename>, and so forth) should not be
8601 automatically created by the
8602 <filename>packagegroup</filename> recipe, which is the
8603 default behavior.
8604 </para>
8605 </glossdef>
8606 </glossentry>
8607
8608 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
8609 <info>
8610 PACKAGES[doc] = "The list of packages to be created from the recipe."
8611 </info>
8612 <glossdef>
8613 <para role="glossdeffirst">
8614<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8615 The list of packages to be created from the recipe.
8616 The default value is the following:
8617 <literallayout class='monospaced'>
8618 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
8619 </literallayout>
8620 </para>
8621 </glossdef>
8622 </glossentry>
8623
8624 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
8625 <info>
8626 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
8627 </info>
8628 <glossdef>
8629 <para role="glossdeffirst">
8630<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8631 A promise that your recipe satisfies runtime dependencies
8632 for optional modules that are found in other recipes.
8633 <filename>PACKAGES_DYNAMIC</filename>
8634 does not actually satisfy the dependencies, it only states that
8635 they should be satisfied.
8636 For example, if a hard, runtime dependency
8637 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
8638 of another package is satisfied
8639 at build time through the <filename>PACKAGES_DYNAMIC</filename>
8640 variable, but a package with the module name is never actually
8641 produced, then the other package will be broken.
8642 Thus, if you attempt to include that package in an image,
8643 you will get a dependency failure from the packaging system
8644 during the
8645 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
8646 task.
8647 </para>
8648
8649 <para>
8650 Typically, if there is a chance that such a situation can
8651 occur and the package that is not created is valid
8652 without the dependency being satisfied, then you should use
8653 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
8654 (a soft runtime dependency) instead of
8655 <filename>RDEPENDS</filename>.
8656 </para>
8657
8658 <para>
8659 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
8660 variable when you are splitting packages, see the
8661 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
8662 in the Yocto Project Development Manual.
8663 </para>
8664 </glossdef>
8665 </glossentry>
8666
8667 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
8668 <info>
8669 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
8670 </info>
8671 <glossdef>
8672 <para role="glossdeffirst">
8673<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8674 Specifies a list of functions run to perform additional
8675 splitting of files into individual packages.
8676 Recipes can either prepend to this variable or prepend
8677 to the <filename>populate_packages</filename> function
8678 in order to perform additional package splitting.
8679 In either case, the function should set
8680 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
8681 <link linkend='var-FILES'><filename>FILES</filename></link>,
8682 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
8683 and other packaging variables appropriately in order to
8684 perform the desired splitting.
8685 </para>
8686 </glossdef>
8687 </glossentry>
8688
8689 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
8690 <info>
8691 PARALLEL_MAKE[doc] = "Specifies extra options that are passed to the make command during the compile tasks. This variable is usually in the form -j x, where x represents the maximum number of parallel threads make can run."
8692 </info>
8693 <glossdef>
8694 <para role="glossdeffirst">
8695<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8696 Extra options passed to the <filename>make</filename>
8697 command during the
8698 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
8699 task in order to specify parallel compilation on the local
8700 build host.
8701 This variable is usually in the form "-j <replaceable>x</replaceable>",
8702 where <replaceable>x</replaceable> represents the maximum
8703 number of parallel threads <filename>make</filename> can
8704 run.
8705 </para>
8706
8707 <para>
8708 By default, the OpenEmbedded build system automatically
8709 sets this variable to be equal to the number of cores the
8710 build system uses.
8711 <note>
8712 If the software being built experiences dependency
8713 issues during the <filename>do_compile</filename>
8714 task that result in race conditions, you can clear
8715 the <filename>PARALLEL_MAKE</filename> variable within
8716 the recipe as a workaround.
8717 For information on addressing race conditions, see the
8718 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
8719 section in the Yocto Project Development Manual.
8720 </note>
8721 For single socket systems (i.e. one CPU), you should not
8722 have to override this variable to gain optimal parallelism
8723 during builds.
8724 However, if you have very large systems that employ
8725 multiple physical CPUs, you might want to make sure the
8726 <filename>PARALLEL_MAKE</filename> variable is not
8727 set higher than "-j 20".
8728 </para>
8729
8730 <para>
8731 For more information on speeding up builds, see the
8732 "<link linkend='speeding-up-the-build'>Speeding Up the Build</link>"
8733 section.
8734 </para>
8735 </glossdef>
8736 </glossentry>
8737
8738 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
8739 <info>
8740 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
8741 </info>
8742 <glossdef>
8743 <para role="glossdeffirst">
8744<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8745 Extra options passed to the
8746 <filename>make install</filename> command during the
8747 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
8748 task in order to specify parallel installation.
8749 This variable defaults to the value of
8750 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
8751 <note>
8752 If the software being built experiences dependency
8753 issues during the
8754 <filename>do_install</filename> task that result in
8755 race conditions, you can clear the
8756 <filename>PARALLEL_MAKEINST</filename> variable within
8757 the recipe as a workaround.
8758 For information on addressing race conditions, see the
8759 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
8760 section in the Yocto Project Development Manual.
8761 </note>
8762 </para>
8763 </glossdef>
8764 </glossentry>
8765
8766 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
8767 <info>
8768 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
8769 </info>
8770 <glossdef>
8771 <para role="glossdeffirst">
8772<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8773 Determines the action to take when a patch fails.
8774 You can set this variable to one of two values: "noop" and
8775 "user".
8776 </para>
8777
8778 <para>
8779 The default value of "noop" causes the build to simply fail
8780 when the OpenEmbedded build system cannot successfully
8781 apply a patch.
8782 Setting the value to "user" causes the build system to
8783 launch a shell and places you in the right location so that
8784 you can manually resolve the conflicts.
8785 </para>
8786
8787 <para>
8788 Set this variable in your
8789 <filename>local.conf</filename> file.
8790 </para>
8791 </glossdef>
8792 </glossentry>
8793
8794 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
8795 <info>
8796 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
8797 </info>
8798 <glossdef>
8799 <para role="glossdeffirst">
8800<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8801 Specifies the utility used to apply patches for a recipe
8802 during the
8803 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
8804 task.
8805 You can specify one of three utilities: "patch", "quilt", or
8806 "git".
8807 The default utility used is "quilt" except for the
8808 quilt-native recipe itself.
8809 Because the quilt tool is not available at the
8810 time quilt-native is being patched, it uses "patch".
8811 </para>
8812
8813 <para>
8814 If you wish to use an alternative patching tool, set the
8815 variable in the recipe using one of the following:
8816 <literallayout class='monospaced'>
8817 PATCHTOOL = "patch"
8818 PATCHTOOL = "quilt"
8819 PATCHTOOL = "git"
8820 </literallayout>
8821 </para>
8822 </glossdef>
8823 </glossentry>
8824
8825 <glossentry id='var-PE'><glossterm>PE</glossterm>
8826 <info>
8827 PE[doc] = "The epoch of the recipe. The default value is '0'. The field is used to make upgrades possible when the versioning scheme changes in some backwards incompatible way."
8828 </info>
8829 <glossdef>
8830 <para role="glossdeffirst">
8831<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8832 The epoch of the recipe.
8833 By default, this variable is unset.
8834 The variable is used to make upgrades possible when the
8835 versioning scheme changes in some backwards incompatible
8836 way.
8837 </para>
8838 </glossdef>
8839 </glossentry>
8840
8841 <glossentry id='var-PF'><glossterm>PF</glossterm>
8842 <info>
8843 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
8844 </info>
8845 <glossdef>
8846 <para role="glossdeffirst">
8847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8848 Specifies the recipe or package name and includes all version and revision
8849 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
8850 <filename>bash-4.2-r1/</filename>).
8851 This variable is comprised of the following:
8852 <literallayout class='monospaced'>
8853 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
8854 </literallayout>
8855 </para>
8856 </glossdef>
8857 </glossentry>
8858
8859 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
8860 <info>
8861 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
8862 </info>
8863 <glossdef>
8864 <para role="glossdeffirst">
8865<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8866 When inheriting the
8867 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
8868 class, this variable identifies packages that contain
8869 the pixbuf loaders used with
8870 <filename>gdk-pixbuf</filename>.
8871 By default, the <filename>pixbufcache</filename> class
8872 assumes that the loaders are in the recipe's main package
8873 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
8874 Use this variable if the loaders you need are in a package
8875 other than that main package.
8876 </para>
8877 </glossdef>
8878 </glossentry>
8879
8880 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
8881 <info>
8882 PKG[doc] = "The name of the resulting package created by the OpenEmbedded build system. When you use this variable, you must use a package name override."
8883 </info>
8884 <glossdef>
8885 <para role="glossdeffirst">
8886<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8887 The name of the resulting package created by the
8888 OpenEmbedded build system.
8889 <note>
8890 When using the <filename>PKG</filename> variable, you
8891 must use a package name override.
8892 </note>
8893 </para>
8894
8895 <para>
8896 For example, when the
8897 <link linkend='ref-classes-debian'><filename>debian</filename></link>
8898 class renames the output package, it does so by setting
8899 <filename>PKG_<replaceable>packagename</replaceable></filename>.
8900 </para>
8901 </glossdef>
8902 </glossentry>
8903
8904 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
8905 <info>
8906 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
8907 </info>
8908 <glossdef>
8909 <para role="glossdeffirst">
8910<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8911 The path to <filename>pkg-config</filename> files for the
8912 current build context.
8913 <filename>pkg-config</filename> reads this variable
8914 from the environment.
8915 </para>
8916 </glossdef>
8917 </glossentry>
8918
8919 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
8920 <info>
8921 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
8922 </info>
8923 <glossdef>
8924 <para role="glossdeffirst">
8925<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8926 Points to the destination directory for files to be
8927 packaged before they are split into individual packages.
8928 This directory defaults to the following:
8929 <literallayout class='monospaced'>
8930 ${WORKDIR}/package
8931 </literallayout>
8932 </para>
8933
8934 <para>
8935 Do not change this default.
8936 </para>
8937 </glossdef>
8938 </glossentry>
8939
8940 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
8941 <info>
8942 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
8943 </info>
8944 <glossdef>
8945 <para role="glossdeffirst">
8946<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8947 Points to a shared, global-state directory that holds data
8948 generated during the packaging process.
8949 During the packaging process, the
8950 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
8951 task packages data for each recipe and installs it into
8952 this temporary, shared area.
8953 This directory defaults to the following:
8954 <literallayout class='monospaced'>
8955 ${STAGING_DIR_HOST}/pkgdata
8956 </literallayout>
8957 </para>
8958
8959 <para>
8960 Do not change this default.
8961 </para>
8962 </glossdef>
8963 </glossentry>
8964
8965 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
8966 <info>
8967 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
8968 </info>
8969 <glossdef>
8970 <para role="glossdeffirst">
8971<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8972 Points to the parent directory for files to be packaged
8973 after they have been split into individual packages.
8974 This directory defaults to the following:
8975 <literallayout class='monospaced'>
8976 ${WORKDIR}/packages-split
8977 </literallayout>
8978 </para>
8979
8980 <para>
8981 Under this directory, the build system creates
8982 directories for each package specified in
8983 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
8984 Do not change this default.
8985 </para>
8986 </glossdef>
8987 </glossentry>
8988
8989 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
8990 <info>
8991 PKGDESTWORK[doc] = "Points to a temporary work area used by the do_package task to write output from the do_packagedata task."
8992 </info>
8993 <glossdef>
8994 <para role="glossdeffirst">
8995<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8996 Points to a temporary work area used by the
8997 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
8998 task to write output from the
8999 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
9000 task.
9001 The <filename>PKGDESTWORK</filename> location defaults to
9002 the following:
9003 <literallayout class='monospaced'>
9004 ${WORKDIR}/pkgdata
9005 </literallayout>
9006 </para>
9007
9008 <para>
9009 The <filename>do_packagedata</filename> task then packages
9010 the data in the temporary work area and installs it into a
9011 shared directory pointed to by
9012 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>.
9013 </para>
9014
9015 <para>
9016 Do not change this default.
9017 </para>
9018 </glossdef>
9019 </glossentry>
9020
9021 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
9022 <info>
9023 PKGE[doc] = "The epoch of the output package built by the OpenEmbedded build system."
9024 </info>
9025 <glossdef>
9026 <para role="glossdeffirst">
9027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9028 The epoch of the output package built by the
9029 OpenEmbedded build system.
9030 By default, <filename>PKGE</filename> is set to
9031 <link linkend='var-PE'><filename>PE</filename></link>.
9032 </para>
9033 </glossdef>
9034 </glossentry>
9035
9036 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
9037 <info>
9038 PKGR[doc] = "The revision of the output package built by the OpenEmbedded build system."
9039 </info>
9040 <glossdef>
9041 <para role="glossdeffirst">
9042<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9043 The revision of the output package built by the
9044 OpenEmbedded build system.
9045 By default, <filename>PKGR</filename> is set to
9046 <link linkend='var-PR'><filename>PR</filename></link>.
9047 </para>
9048 </glossdef>
9049 </glossentry>
9050
9051 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
9052 <info>
9053 PKGV[doc] = "The version of the output package built by the OpenEmbedded build system."
9054 </info>
9055 <glossdef>
9056 <para role="glossdeffirst">
9057<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9058 The version of the output package built by the
9059 OpenEmbedded build system.
9060 By default, <filename>PKGV</filename> is set to
9061 <link linkend='var-PV'><filename>PV</filename></link>.
9062 </para>
9063 </glossdef>
9064 </glossentry>
9065
9066 <glossentry id='var-PN'><glossterm>PN</glossterm>
9067 <info>
9068 PN[doc] = "PN refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package. It refers to a package name in the context of a file created or produced by the OpenEmbedded build system."
9069 </info>
9070 <glossdef>
9071 <para role="glossdeffirst">
9072<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9073 This variable can have two separate functions depending on the context: a recipe
9074 name or a resulting package name.
9075 </para>
9076
9077 <para>
9078 <filename>PN</filename> refers to a recipe name in the context of a file used
9079 by the OpenEmbedded build system as input to create a package.
9080 The name is normally extracted from the recipe file name.
9081 For example, if the recipe is named
9082 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
9083 will be "expat".
9084 </para>
9085
9086 <para>
9087 The variable refers to a package name in the context of a file created or produced by the
9088 OpenEmbedded build system.
9089 </para>
9090
9091 <para>
9092 If applicable, the <filename>PN</filename> variable also contains any special
9093 suffix or prefix.
9094 For example, using <filename>bash</filename> to build packages for the native
9095 machine, <filename>PN</filename> is <filename>bash-native</filename>.
9096 Using <filename>bash</filename> to build packages for the target and for Multilib,
9097 <filename>PN</filename> would be <filename>bash</filename> and
9098 <filename>lib64-bash</filename>, respectively.
9099 </para>
9100 </glossdef>
9101 </glossentry>
9102
9103 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
9104 <info>
9105 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
9106 </info>
9107 <glossdef>
9108 <para role="glossdeffirst">
9109<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9110 Lists recipes you do not want the OpenEmbedded build system
9111 to build.
9112 This variable works in conjunction with the
9113 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
9114 class, which the recipe must inherit globally.
9115 </para>
9116
9117 <para>
9118 To prevent a recipe from being built, inherit the class
9119 globally and use the variable in your
9120 <filename>local.conf</filename> file.
9121 Here is an example that prevents
9122 <filename>myrecipe</filename> from being built:
9123 <literallayout class='monospaced'>
9124 INHERIT += "blacklist"
9125 PNBLACKLIST[myrecipe] = "Not supported by our organization."
9126 </literallayout>
9127 </para>
9128 </glossdef>
9129 </glossentry>
9130
9131 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
9132 <info>
9133 POPULATE_SDK_POST_HOST_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created host part of the SDK."
9134 </info>
9135 <glossdef>
9136 <para role="glossdeffirst">
9137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9138 Specifies a list of functions to call once the
9139 OpenEmbedded build system has created the host part of
9140 the SDK.
9141 You can specify functions separated by semicolons:
9142 <literallayout class='monospaced'>
9143 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
9144 </literallayout>
9145 </para>
9146
9147 <para>
9148 If you need to pass the SDK path to a command
9149 within a function, you can use
9150 <filename>${SDK_DIR}</filename>, which points to
9151 the parent directory used by the OpenEmbedded build
9152 system when creating SDK output.
9153 See the
9154 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
9155 variable for more information.
9156 </para>
9157 </glossdef>
9158 </glossentry>
9159
9160 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
9161 <info>
9162 POPULATE_SDK_POST_TARGET_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created target part of the SDK."
9163 </info>
9164 <glossdef>
9165 <para role="glossdeffirst">
9166<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9167 Specifies a list of functions to call once the
9168 OpenEmbedded build system has created the target part of
9169 the SDK.
9170 You can specify functions separated by semicolons:
9171 <literallayout class='monospaced'>
9172 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
9173 </literallayout>
9174 </para>
9175
9176 <para>
9177 If you need to pass the SDK path to a command
9178 within a function, you can use
9179 <filename>${SDK_DIR}</filename>, which points to
9180 the parent directory used by the OpenEmbedded build
9181 system when creating SDK output.
9182 See the
9183 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
9184 variable for more information.
9185 </para>
9186 </glossdef>
9187 </glossentry>
9188
9189 <glossentry id='var-PR'><glossterm>PR</glossterm>
9190 <info>
9191 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
9192 </info>
9193 <glossdef>
9194 <para role="glossdeffirst">
9195<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9196 The revision of the recipe.
9197 The default value for this variable is "r0".
9198 </para>
9199 </glossdef>
9200 </glossentry>
9201
9202 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
9203 <info>
9204 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
9205 </info>
9206 <glossdef>
9207 <para role="glossdeffirst">
9208<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9209 If multiple recipes provide an item, this variable
9210 determines which recipe should be given preference.
9211 You should always suffix the variable with the name of the
9212 provided item, and you should set it to the
9213 <link linkend='var-PN'><filename>PN</filename></link>
9214 of the recipe to which you want to give precedence.
9215 Some examples:
9216 <literallayout class='monospaced'>
9217 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
9218 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
9219 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
9220 </literallayout>
9221 </para>
9222 </glossdef>
9223 </glossentry>
9224
9225 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
9226 <info>
9227 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
9228 </info>
9229 <glossdef>
9230 <para role="glossdeffirst">
9231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9232 If there are multiple versions of recipes available, this
9233 variable determines which recipe should be given preference.
9234 You must always suffix the variable with the
9235 <link linkend='var-PN'><filename>PN</filename></link>
9236 you want to select, and you should set the
9237 <link linkend='var-PV'><filename>PV</filename></link>
9238 accordingly for precedence.
9239 You can use the "<filename>%</filename>" character as a
9240 wildcard to match any number of characters, which can be
9241 useful when specifying versions that contain long revision
9242 numbers that could potentially change.
9243 Here are two examples:
9244 <literallayout class='monospaced'>
9245 PREFERRED_VERSION_python = "2.7.3"
9246 PREFERRED_VERSION_linux-yocto = "3.19%"
9247 </literallayout>
9248 </para>
9249 </glossdef>
9250 </glossentry>
9251
9252 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
9253 <info>
9254 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
9255 </info>
9256 <glossdef>
9257 <para role="glossdeffirst">
9258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9259 Specifies additional paths from which the OpenEmbedded
9260 build system gets source code.
9261 When the build system searches for source code, it first
9262 tries the local download directory.
9263 If that location fails, the build system tries locations
9264 defined by <filename>PREMIRRORS</filename>, the upstream
9265 source, and then locations specified by
9266 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
9267 in that order.
9268 </para>
9269
9270 <para>
9271 Assuming your distribution
9272 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
9273 is "poky", the default value for
9274 <filename>PREMIRRORS</filename> is defined in the
9275 <filename>conf/distro/poky.conf</filename> file in the
9276 <filename>meta-yocto</filename> Git repository.
9277 </para>
9278
9279 <para>
9280 Typically, you could add a specific server for the
9281 build system to attempt before any others by adding
9282 something like the following to the
9283 <filename>local.conf</filename> configuration file in the
9284 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
9285 <literallayout class='monospaced'>
9286 PREMIRRORS_prepend = "\
9287 git://.*/.* http://www.yoctoproject.org/sources/ \n \
9288 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
9289 http://.*/.* http://www.yoctoproject.org/sources/ \n \
9290 https://.*/.* http://www.yoctoproject.org/sources/ \n"
9291 </literallayout>
9292 These changes cause the build system to intercept
9293 Git, FTP, HTTP, and HTTPS requests and direct them to
9294 the <filename>http://</filename> sources mirror.
9295 You can use <filename>file://</filename> URLs to point
9296 to local directories or network shares as well.
9297 </para>
9298 </glossdef>
9299 </glossentry>
9300
9301 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
9302 <info>
9303 PRIORITY[doc] = "Indicates the importance of a package. The default value is 'optional'. Other standard values are 'required', 'standard' and 'extra'."
9304 </info>
9305 <glossdef>
9306 <para role="glossdeffirst">
9307<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9308 Indicates the importance of a package.
9309 </para>
9310
9311 <para>
9312 <filename>PRIORITY</filename> is considered to be part of
9313 the distribution policy because the importance of any given
9314 recipe depends on the purpose for which the distribution
9315 is being produced.
9316 Thus, <filename>PRIORITY</filename> is not normally set
9317 within recipes.
9318 </para>
9319
9320 <para>
9321 You can set <filename>PRIORITY</filename> to "required",
9322 "standard", "extra", and "optional", which is the default.
9323 </para>
9324 </glossdef>
9325 </glossentry>
9326
9327 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
9328 <info>
9329 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
9330 </info>
9331 <glossdef>
9332 <para role="glossdeffirst">
9333<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9334 Specifies libraries installed within a recipe that
9335 should be ignored by the OpenEmbedded build system's
9336 shared library resolver.
9337 This variable is typically used when software being
9338 built by a recipe has its own private versions of a
9339 library normally provided by another recipe.
9340 In this case, you would not want the package containing
9341 the private libraries to be set as a dependency on other
9342 unrelated packages that should instead depend on the
9343 package providing the standard version of the library.
9344 </para>
9345
9346 <para>
9347 Libraries specified in this variable should be specified
9348 by their file name.
9349 For example, from the Firefox recipe in meta-browser:
9350 <literallayout class='monospaced'>
9351 PRIVATE_LIBS = "libmozjs.so \
9352 libxpcom.so \
9353 libnspr4.so \
9354 libxul.so \
9355 libmozalloc.so \
9356 libplc4.so \
9357 libplds4.so"
9358 </literallayout>
9359 </para>
9360 </glossdef>
9361 </glossentry>
9362
9363 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
9364 <info>
9365 PROVIDES[doc] = "A list of aliases that a recipe also provides. These aliases are useful for satisfying dependencies of other recipes during the build as specified by DEPENDS."
9366 </info>
9367 <glossdef>
9368 <para role="glossdeffirst">
9369<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9370 A list of aliases by which a particular recipe can be
9371 known.
9372 By default, a recipe's own
9373 <filename><link linkend='var-PN'>PN</link></filename>
9374 is implicitly already in its <filename>PROVIDES</filename>
9375 list.
9376 If a recipe uses <filename>PROVIDES</filename>, the
9377 additional aliases are synonyms for the recipe and can
9378 be useful satisfying dependencies of other recipes during
9379 the build as specified by
9380 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
9381 </para>
9382
9383 <para>
9384 Consider the following example
9385 <filename>PROVIDES</filename> statement from a recipe
9386 file <filename>libav_0.8.11.bb</filename>:
9387 <literallayout class='monospaced'>
9388 PROVIDES += "libpostproc"
9389 </literallayout>
9390 The <filename>PROVIDES</filename> statement results in
9391 the "libav" recipe also being known as "libpostproc".
9392 </para>
9393 </glossdef>
9394 </glossentry>
9395
9396 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
9397 <info>
9398 PRSERV_HOST[doc] = "The network based PR service host and port."
9399 </info>
9400 <glossdef>
9401 <para role="glossdeffirst">
9402<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9403 The network based
9404 <link linkend='var-PR'><filename>PR</filename></link>
9405 service host and port.
9406 </para>
9407
9408 <para>
9409 The <filename>conf/local.conf.sample.extended</filename>
9410 configuration file in the
9411 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
9412 shows how the <filename>PRSERV_HOST</filename> variable is
9413 set:
9414 <literallayout class='monospaced'>
9415 PRSERV_HOST = "localhost:0"
9416 </literallayout>
9417 You must set the variable if you want to automatically
9418 start a local
9419 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
9420 You can set <filename>PRSERV_HOST</filename> to other
9421 values to use a remote PR service.
9422 </para>
9423 </glossdef>
9424 </glossentry>
9425
9426 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
9427 <info>
9428 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
9429 </info>
9430 <glossdef>
9431 <para role="glossdeffirst">
9432<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9433 Specifies whether or not
9434 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
9435 (ptest) functionality is enabled when building a recipe.
9436 You should not set this variable directly.
9437 Enabling and disabling building Package Tests
9438 at build time should be done by adding "ptest" to (or
9439 removing it from)
9440 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
9441 </para>
9442 </glossdef>
9443 </glossentry>
9444
9445 <glossentry id='var-PV'><glossterm>PV</glossterm>
9446 <info>
9447 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
9448 </info>
9449 <glossdef>
9450 <para role="glossdeffirst">
9451<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9452 The version of the recipe.
9453 The version is normally extracted from the recipe filename.
9454 For example, if the recipe is named
9455 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PV</filename>
9456 will be "2.0.1".
9457 <filename>PV</filename> is generally not overridden within
9458 a recipe unless it is building an unstable (i.e. development) version from a source code repository
9459 (e.g. Git or Subversion).
9460 </para>
9461 </glossdef>
9462 </glossentry>
9463
9464 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
9465 <info>
9466 PYTHON_ABI[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, denotes the Application Binary Interface (ABI) currently in use for Python."
9467 </info>
9468 <glossdef>
9469 <para role="glossdeffirst">
9470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9471 When used by recipes that inherit the
9472 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
9473 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
9474 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
9475 or
9476 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
9477 classes, denotes the Application Binary Interface (ABI)
9478 currently in use for Python.
9479 By default, the ABI is "m".
9480 You do not have to set this variable as the OpenEmbedded
9481 build system sets it for you.
9482 </para>
9483
9484 <para>
9485 The OpenEmbedded build system uses the ABI to construct
9486 directory names used when installing the Python headers
9487 and libraries in sysroot
9488 (e.g. <filename>.../python3.3m/...</filename>).
9489 </para>
9490
9491 <para>
9492 Recipes that inherit the
9493 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>
9494 class during cross-builds also use this variable to
9495 locate the headers and libraries of the appropriate Python
9496 that the extension is targeting.
9497 </para>
9498 </glossdef>
9499 </glossentry>
9500
9501 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
9502 <info>
9503 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
9504 </info>
9505 <glossdef>
9506 <para role="glossdeffirst">
9507<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9508 When used by recipes that inherit the
9509 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
9510 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
9511 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
9512 or
9513 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
9514 classes, specifies the major Python version being built.
9515 For Python 2.x, <filename>PYTHON_PN</filename> would
9516 be "python2". For Python 3.x, the variable would be
9517 "python3".
9518 You do not have to set this variable as the
9519 OpenEmbedded build system automatically sets it for you.
9520 </para>
9521
9522 <para>
9523 The variable allows recipes to use common infrastructure
9524 such as the following:
9525 <literallayout class='monospaced'>
9526 DEPENDS += "${PYTHON_PN}-native"
9527 </literallayout>
9528 In the previous example, the version of the dependency
9529 is <filename>PYTHON_PN</filename>.
9530 </para>
9531 </glossdef>
9532 </glossentry>
9533
9534 </glossdiv>
9535
9536 <glossdiv id='var-glossary-q'><title>Q</title>
9537
9538 <glossentry id='var-QMAKE_PROFILES'><glossterm>QMAKE_PROFILES</glossterm>
9539 <info>
9540 QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for use with qmake."
9541 </info>
9542 <glossdef>
9543 <para role="glossdeffirst">
9544<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9545 Specifies your own subset of <filename>.pro</filename>
9546 files to be built for use with
9547 <filename>qmake</filename>.
9548 If you do not set this variable, all
9549 <filename>.pro</filename> files in the directory pointed to
9550 by <link linkend='var-S'><filename>S</filename></link>
9551 will be built by default.
9552 </para>
9553
9554 <para>
9555 This variable is used with recipes that inherit the
9556 <link linkend='ref-classes-qmake*'><filename>qmake_base</filename></link>
9557 class or other classes that inherit
9558 <filename>qmake_base</filename>.
9559 </para>
9560 </glossdef>
9561 </glossentry>
9562
9563 </glossdiv>
9564
9565 <glossdiv id='var-glossary-r'><title>R</title>
9566
9567 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
9568 <info>
9569 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
9570 </info>
9571 <glossdef>
9572 <para role="glossdeffirst">
9573<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9574 The minimal command and arguments to run
9575 <filename>ranlib</filename>.
9576 </para>
9577 </glossdef>
9578 </glossentry>
9579
9580 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
9581 <info>
9582 RCONFLICTS[doc] = "The list of packages that conflict with another package. Note that the package will not be installed if the conflicting packages are not first removed."
9583 </info>
9584 <glossdef>
9585 <para role="glossdeffirst">
9586<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9587 The list of packages that conflict with packages.
9588 Note that packages will not be installed if conflicting
9589 packages are not first removed.
9590 </para>
9591
9592 <para>
9593 Like all package-controlling variables, you must always use
9594 them in conjunction with a package name override.
9595 Here is an example:
9596 <literallayout class='monospaced'>
9597 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
9598 </literallayout>
9599 </para>
9600
9601 <para>
9602 BitBake, which the OpenEmbedded build system uses, supports
9603 specifying versioned dependencies.
9604 Although the syntax varies depending on the packaging
9605 format, BitBake hides these differences from you.
9606 Here is the general syntax to specify versions with
9607 the <filename>RCONFLICTS</filename> variable:
9608 <literallayout class='monospaced'>
9609 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
9610 </literallayout>
9611 For <filename>operator</filename>, you can specify the
9612 following:
9613 <literallayout class='monospaced'>
9614 =
9615 &lt;
9616 &gt;
9617 &lt;=
9618 &gt;=
9619 </literallayout>
9620 For example, the following sets up a dependency on version
9621 1.2 or greater of the package <filename>foo</filename>:
9622 <literallayout class='monospaced'>
9623 RCONFLICTS_${PN} = "foo (>= 1.2)"
9624 </literallayout>
9625 </para>
9626 </glossdef>
9627 </glossentry>
9628
9629 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
9630 <info>
9631 RDEPENDS[doc] = "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN)."
9632 </info>
9633 <glossdef>
9634 <para role="glossdeffirst">
9635<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9636 Lists a package's runtime dependencies (i.e. other packages)
9637 that must be installed in order for the built package to run
9638 correctly.
9639 If a package in this list cannot be found during the build,
9640 you will get a build error.
9641 </para>
9642
9643 <para>
9644 When you use the <filename>RDEPENDS</filename> variable
9645 in a recipe, you are essentially stating that the recipe's
9646 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
9647 task depends on the existence of a specific package.
9648 Consider this simple example for two recipes named "a" and
9649 "b" that produce similarly named IPK packages.
9650 In this example, the <filename>RDEPENDS</filename>
9651 statement appears in the "a" recipe:
9652 <literallayout class='monospaced'>
9653 RDEPENDS_${PN} = "b"
9654 </literallayout>
9655 Here, the dependency is such that the
9656 <filename>do_build</filename> task for recipe "a" depends
9657 on the
9658 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
9659 task of recipe "b".
9660 This means the package file for "b" must be available when
9661 the output for recipe "a" has been completely built.
9662 More importantly, package "a" will be marked as depending
9663 on package "b" in a manner that is understood by the
9664 package manager.
9665 </para>
9666
9667 <para>
9668 The names of the packages you list within
9669 <filename>RDEPENDS</filename> must be the names of other
9670 packages - they cannot be recipe names.
9671 Although package names and recipe names usually match,
9672 the important point here is that you are
9673 providing package names within the
9674 <filename>RDEPENDS</filename> variable.
9675 For an example of the default list of packages created from
9676 a recipe, see the
9677 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
9678 variable.
9679 </para>
9680
9681 <para>
9682 Because the <filename>RDEPENDS</filename> variable applies
9683 to packages being built, you should always use the variable
9684 in a form with an attached package name.
9685 For example, suppose you are building a development package
9686 that depends on the <filename>perl</filename> package.
9687 In this case, you would use the following
9688 <filename>RDEPENDS</filename> statement:
9689 <literallayout class='monospaced'>
9690 RDEPENDS_${PN}-dev += "perl"
9691 </literallayout>
9692 In the example, the development package depends on
9693 the <filename>perl</filename> package.
9694 Thus, the <filename>RDEPENDS</filename> variable has the
9695 <filename>${PN}-dev</filename> package name as part of the
9696 variable.
9697 </para>
9698
9699 <para>
9700 The package name you attach to the
9701 <filename>RDEPENDS</filename> variable must appear
9702 as it would in the <filename>PACKAGES</filename>
9703 namespace before any renaming of the output package by
9704 classes like
9705 <link linkend='ref-classes-debian'><filename>debian</filename></link>.
9706 </para>
9707
9708 <para>
9709 In many cases you do not need to explicitly add
9710 runtime dependencies using
9711 <filename>RDEPENDS</filename> since some automatic
9712 handling occurs:
9713 <itemizedlist>
9714 <listitem><para><emphasis><filename>shlibdeps</filename></emphasis>: If
9715 a runtime package contains a shared library
9716 (<filename>.so</filename>), the build
9717 processes the library in order to determine other
9718 libraries to which it is dynamically linked.
9719 The build process adds these libraries to
9720 <filename>RDEPENDS</filename> when creating the runtime
9721 package.</para></listitem>
9722 <listitem><para><emphasis><filename>pcdeps</filename></emphasis>: If
9723 the package ships a <filename>pkg-config</filename>
9724 information file, the build process uses this file
9725 to add items to the <filename>RDEPENDS</filename>
9726 variable to create the runtime packages.
9727 </para></listitem>
9728 </itemizedlist>
9729 </para>
9730
9731 <para>
9732 BitBake, which the OpenEmbedded build system uses, supports
9733 specifying versioned dependencies.
9734 Although the syntax varies depending on the packaging
9735 format, BitBake hides these differences from you.
9736 Here is the general syntax to specify versions with
9737 the <filename>RDEPENDS</filename> variable:
9738 <literallayout class='monospaced'>
9739 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
9740 </literallayout>
9741 For <filename>operator</filename>, you can specify the
9742 following:
9743 <literallayout class='monospaced'>
9744 =
9745 &lt;
9746 &gt;
9747 &lt;=
9748 &gt;=
9749 </literallayout>
9750 For example, the following sets up a dependency on version
9751 1.2 or greater of the package <filename>foo</filename>:
9752 <literallayout class='monospaced'>
9753 RDEPENDS_${PN} = "foo (>= 1.2)"
9754 </literallayout>
9755 </para>
9756
9757 <para>
9758 For information on build-time dependencies, see the
9759 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
9760 variable.
9761 </para>
9762 </glossdef>
9763 </glossentry>
9764
9765 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
9766 <info>
9767 REQUIRED_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe."
9768 </info>
9769 <glossdef>
9770 <para role="glossdeffirst">
9771<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9772 When inheriting the
9773 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
9774 class, this
9775 variable identifies distribution features that must
9776 exist in the current configuration in order for the
9777 OpenEmbedded build system to build the recipe.
9778 In other words, if the
9779 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
9780 lists a feature that does not appear in
9781 <filename>DISTRO_FEATURES</filename> within the
9782 current configuration, an error occurs and the
9783 build stops.
9784 </para>
9785 </glossdef>
9786 </glossentry>
9787
9788 <glossentry id='var-RM_OLD_IMAGE'><glossterm>RM_OLD_IMAGE</glossterm>
9789 <info>
9790 RM_OLD_IMAGE[doc] = "Reclaims disk space by removing previously built versions of the same image from the images directory pointed to by the DEPLOY_DIR variable."
9791 </info>
9792 <glossdef>
9793 <para role="glossdeffirst">
9794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9795 Reclaims disk space by removing previously built
9796 versions of the same image from the
9797 <filename>images</filename> directory pointed to by the
9798 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
9799 variable.
9800 </para>
9801
9802 <para>
9803 Set this variable to "1" in your
9804 <filename>local.conf</filename> file to remove these
9805 images.
9806 </para>
9807 </glossdef>
9808 </glossentry>
9809
9810 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
9811 <info>
9812 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
9813 </info>
9814 <glossdef>
9815 <para role="glossdeffirst">
9816<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9817 With <filename>rm_work</filename> enabled, this
9818 variable specifies a list of recipes whose work directories
9819 should not be removed.
9820 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
9821 section for more details.
9822 </para>
9823 </glossdef>
9824 </glossentry>
9825
9826 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
9827 <info>
9828 ROOT_HOME[doc] = "Defines the root home directory."
9829 </info>
9830 <glossdef>
9831 <para role="glossdeffirst">
9832<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9833 Defines the root home directory.
9834 By default, this directory is set as follows in the
9835 BitBake configuration file:
9836 <literallayout class='monospaced'>
9837 ROOT_HOME ??= "/home/root"
9838 </literallayout>
9839 <note>
9840 This default value is likely used because some
9841 embedded solutions prefer to have a read-only root
9842 filesystem and prefer to keep writeable data in one
9843 place.
9844 </note>
9845 </para>
9846
9847 <para>
9848 You can override the default by setting the variable
9849 in any layer or in the <filename>local.conf</filename> file.
9850 Because the default is set using a "weak" assignment
9851 (i.e. "??="), you can use either of the following forms
9852 to define your override:
9853 <literallayout class='monospaced'>
9854 ROOT_HOME = "/root"
9855 ROOT_HOME ?= "/root"
9856 </literallayout>
9857 These override examples use <filename>/root</filename>,
9858 which is probably the most commonly used override.
9859 </para>
9860 </glossdef>
9861 </glossentry>
9862
9863 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
9864 <info>
9865 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
9866 </info>
9867 <glossdef>
9868 <para role="glossdeffirst">
9869<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9870 Indicates a filesystem image to include as the root
9871 filesystem.
9872 </para>
9873
9874 <para>
9875 The <filename>ROOTFS</filename> variable is an optional
9876 variable used with the
9877 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
9878 class.
9879 </para>
9880 </glossdef>
9881 </glossentry>
9882
9883 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
9884 <info>
9885 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
9886 </info>
9887 <glossdef>
9888 <para role="glossdeffirst">
9889<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9890 Specifies a list of functions to call after the
9891 OpenEmbedded build system has installed packages.
9892 You can specify functions separated by semicolons:
9893 <literallayout class='monospaced'>
9894 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
9895 </literallayout>
9896 </para>
9897
9898 <para>
9899 If you need to pass the root filesystem path to a command
9900 within a function, you can use
9901 <filename>${IMAGE_ROOTFS}</filename>, which points to
9902 the directory that becomes the root filesystem image.
9903 See the
9904 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
9905 variable for more information.
9906 </para>
9907 </glossdef>
9908 </glossentry>
9909
9910 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
9911 <info>
9912 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
9913 </info>
9914 <glossdef>
9915 <para role="glossdeffirst">
9916<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9917 Specifies a list of functions to call once the
9918 OpenEmbedded build system has created the root filesystem.
9919 You can specify functions separated by semicolons:
9920 <literallayout class='monospaced'>
9921 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
9922 </literallayout>
9923 </para>
9924
9925 <para>
9926 If you need to pass the root filesystem path to a command
9927 within a function, you can use
9928 <filename>${IMAGE_ROOTFS}</filename>, which points to
9929 the directory that becomes the root filesystem image.
9930 See the
9931 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
9932 variable for more information.
9933 </para>
9934 </glossdef>
9935 </glossentry>
9936
9937 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
9938 <info>
9939 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
9940 </info>
9941 <glossdef>
9942 <para role="glossdeffirst">
9943<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9944 Specifies a list of functions to call after the
9945 OpenEmbedded build system has removed unnecessary
9946 packages.
9947 When runtime package management is disabled in the
9948 image, several packages are removed including
9949 <filename>base-passwd</filename>,
9950 <filename>shadow</filename>, and
9951 <filename>update-alternatives</filename>.
9952 You can specify functions separated by semicolons:
9953 <literallayout class='monospaced'>
9954 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
9955 </literallayout>
9956 </para>
9957
9958 <para>
9959 If you need to pass the root filesystem path to a command
9960 within a function, you can use
9961 <filename>${IMAGE_ROOTFS}</filename>, which points to
9962 the directory that becomes the root filesystem image.
9963 See the
9964 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
9965 variable for more information.
9966 </para>
9967 </glossdef>
9968 </glossentry>
9969
9970 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
9971 <info>
9972 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
9973 </info>
9974 <glossdef>
9975 <para role="glossdeffirst">
9976<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9977 Specifies a list of functions to call before the
9978 OpenEmbedded build system has created the root filesystem.
9979 You can specify functions separated by semicolons:
9980 <literallayout class='monospaced'>
9981 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
9982 </literallayout>
9983 </para>
9984
9985 <para>
9986 If you need to pass the root filesystem path to a command
9987 within a function, you can use
9988 <filename>${IMAGE_ROOTFS}</filename>, which points to
9989 the directory that becomes the root filesystem image.
9990 See the
9991 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
9992 variable for more information.
9993 </para>
9994 </glossdef>
9995 </glossentry>
9996
9997 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
9998 <info>
9999 RPROVIDES[doc] = "A list of package name aliases that a package also provides. These aliases are useful for satisfying runtime dependencies of other packages both during the build and on the target."
10000 </info>
10001 <glossdef>
10002 <para role="glossdeffirst">
10003<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10004 A list of package name aliases that a package also provides.
10005 These aliases are useful for satisfying runtime dependencies
10006 of other packages both during the build and on the target
10007 (as specified by
10008 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
10009 <note>
10010 A package's own name is implicitly already in its
10011 <filename>RPROVIDES</filename> list.
10012 </note>
10013 </para>
10014
10015 <para>
10016 As with all package-controlling variables, you must always
10017 use the variable in conjunction with a package name override.
10018 Here is an example:
10019 <literallayout class='monospaced'>
10020 RPROVIDES_${PN} = "widget-abi-2"
10021 </literallayout>
10022 </para>
10023 </glossdef>
10024 </glossentry>
10025
10026 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
10027 <info>
10028 RRECOMMENDS[doc] = "A list of packages that extends the usability of a package being built. The package being built does not depend on this list of packages in order to successfully build, but needs them for the extended usability."
10029 </info>
10030 <glossdef>
10031 <para role="glossdeffirst">
10032<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10033 A list of packages that extends the usability of a package
10034 being built.
10035 The package being built does not depend on this list of
10036 packages in order to successfully build, but rather
10037 uses them for extended usability.
10038 To specify runtime dependencies for packages, see the
10039 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
10040 variable.
10041 </para>
10042
10043 <para>
10044 The package manager will automatically install the
10045 <filename>RRECOMMENDS</filename> list of packages when
10046 installing the built package.
10047 However, you can prevent listed packages from being
10048 installed by using the
10049 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
10050 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
10051 and
10052 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
10053 variables.
10054 </para>
10055
10056 <para>
10057 Packages specified in
10058 <filename>RRECOMMENDS</filename> need not actually be
10059 produced.
10060 However, a recipe must exist that provides each package,
10061 either through the
10062 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
10063 or
10064 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
10065 variables or the
10066 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
10067 variable, or an error will occur during the build.
10068 If such a recipe does exist and the package is not produced,
10069 the build continues without error.
10070 </para>
10071
10072 <para>
10073 Because the <filename>RRECOMMENDS</filename> variable
10074 applies to packages being built, you should always attach
10075 an override to the variable to specify the particular
10076 package whose usability is being extended.
10077 For example, suppose you are building a development package
10078 that is extended to support wireless functionality.
10079 In this case, you would use the following:
10080 <literallayout class='monospaced'>
10081 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
10082 </literallayout>
10083 In the example, the package name
10084 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
10085 must appear as it would in the
10086 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
10087 namespace before any renaming of the output package by
10088 classes such as <filename>debian.bbclass</filename>.
10089 </para>
10090
10091 <para>
10092 BitBake, which the OpenEmbedded build system uses, supports
10093 specifying versioned recommends.
10094 Although the syntax varies depending on the packaging
10095 format, BitBake hides these differences from you.
10096 Here is the general syntax to specify versions with
10097 the <filename>RRECOMMENDS</filename> variable:
10098 <literallayout class='monospaced'>
10099 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10100 </literallayout>
10101 For <filename>operator</filename>, you can specify the
10102 following:
10103 <literallayout class='monospaced'>
10104 =
10105 &lt;
10106 &gt;
10107 &lt;=
10108 &gt;=
10109 </literallayout>
10110 For example, the following sets up a recommend on version
10111 1.2 or greater of the package <filename>foo</filename>:
10112 <literallayout class='monospaced'>
10113 RRECOMMENDS_${PN} = "foo (>= 1.2)"
10114 </literallayout>
10115 </para>
10116 </glossdef>
10117 </glossentry>
10118
10119 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
10120 <info>
10121 RREPLACES[doc] = "A list of packages replaced by a package. The package manager uses this variable to determine which package should be installed to replace other package(s) during an upgrade."
10122 </info>
10123 <glossdef>
10124 <para role="glossdeffirst">
10125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10126 A list of packages replaced by a package.
10127 The package manager uses this variable to determine which
10128 package should be installed to replace other package(s)
10129 during an upgrade.
10130 In order to also have the other package(s) removed at the
10131 same time, you must add the name of the other
10132 package to the
10133 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
10134 </para>
10135
10136 <para>
10137 As with all package-controlling variables, you must use
10138 this variable in conjunction with a package name
10139 override.
10140 Here is an example:
10141 <literallayout class='monospaced'>
10142 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
10143 </literallayout>
10144 </para>
10145
10146 <para>
10147 BitBake, which the OpenEmbedded build system uses, supports
10148 specifying versioned replacements.
10149 Although the syntax varies depending on the packaging
10150 format, BitBake hides these differences from you.
10151 Here is the general syntax to specify versions with
10152 the <filename>RREPLACES</filename> variable:
10153 <literallayout class='monospaced'>
10154 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10155 </literallayout>
10156 For <filename>operator</filename>, you can specify the
10157 following:
10158 <literallayout class='monospaced'>
10159 =
10160 &lt;
10161 &gt;
10162 &lt;=
10163 &gt;=
10164 </literallayout>
10165 For example, the following sets up a replacement using
10166 version 1.2 or greater of the package
10167 <filename>foo</filename>:
10168 <literallayout class='monospaced'>
10169 RREPLACES_${PN} = "foo (>= 1.2)"
10170 </literallayout>
10171 </para>
10172 </glossdef>
10173 </glossentry>
10174
10175 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
10176 <info>
10177 RSUGGESTS[doc] = "A list of additional packages that you can suggest for installation by the package manager at the time a package is installed. Not all package managers support this functionality."
10178 </info>
10179 <glossdef>
10180 <para role="glossdeffirst">
10181<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10182 A list of additional packages that you can suggest for
10183 installation by the package manager at the time a package
10184 is installed.
10185 Not all package managers support this functionality.
10186 </para>
10187
10188 <para>
10189 As with all package-controlling variables, you must always
10190 use this variable in conjunction with a package name
10191 override.
10192 Here is an example:
10193 <literallayout class='monospaced'>
10194 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
10195 </literallayout>
10196 </para>
10197 </glossdef>
10198 </glossentry>
10199
10200 </glossdiv>
10201
10202 <glossdiv id='var-glossary-s'><title>S</title>
10203
10204 <glossentry id='var-S'><glossterm>S</glossterm>
10205 <info>
10206 S[doc] = "The location in the Build Directory where unpacked package source code resides."
10207 </info>
10208 <glossdef>
10209 <para role="glossdeffirst">
10210<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10211 The location in the
10212 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
10213 where unpacked recipe source code resides.
10214 This location is within the work directory
10215 (<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>),
10216 which is not static.
10217 The unpacked source location depends on the recipe name
10218 (<filename><link linkend='var-PN'>PN</link></filename>) and
10219 recipe version
10220 (<filename><link linkend='var-PV'>PV</link></filename>) as
10221 follows:
10222 <literallayout class='monospaced'>
10223 ${WORKDIR}/${PN}-${PV}
10224 </literallayout>
10225 </para>
10226
10227 <para>
10228 As an example, assume a
10229 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
10230 top-level folder named <filename>poky</filename> and a
10231 default Build Directory at <filename>poky/build</filename>.
10232 In this case, the work directory the build system uses
10233 to keep the unpacked recipe for <filename>db</filename>
10234 is the following:
10235 <literallayout class='monospaced'>
10236 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
10237 </literallayout>
10238 </para>
10239 </glossdef>
10240 </glossentry>
10241
10242 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
10243 <info>
10244 SANITY_REQUIRED_UTILITIES[doc] = "Specifies a list of command-line utilities that should be checked for during the initial sanity checking process when running BitBake."
10245 </info>
10246 <glossdef>
10247 <para role="glossdeffirst">
10248<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10249 Specifies a list of command-line utilities that should be
10250 checked for during the initial sanity checking process when
10251 running BitBake.
10252 If any of the utilities are not installed on the build host,
10253 then BitBake immediately exits with an error.
10254 </para>
10255 </glossdef>
10256 </glossentry>
10257
10258 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
10259 <info>
10260 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
10261 </info>
10262 <glossdef>
10263 <para role="glossdeffirst">
10264<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10265 A list of the host distribution identifiers that the
10266 build system has been tested against.
10267 Identifiers consist of the host distributor ID
10268 followed by the release,
10269 as reported by the <filename>lsb_release</filename> tool
10270 or as read from <filename>/etc/lsb-release</filename>.
10271 Separate the list items with explicit newline
10272 characters (<filename>\n</filename>).
10273 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
10274 and the current value of
10275 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
10276 does not appear in the list, then the build system reports
10277 a warning that indicates the current host distribution has
10278 not been tested as a build host.
10279 </para>
10280 </glossdef>
10281 </glossentry>
10282
10283 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
10284 <info>
10285 SDK_ARCH[doc] = "The target architecture for the SDK."
10286 </info>
10287 <glossdef>
10288 <para role="glossdeffirst">
10289<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10290 The target architecture for the SDK.
10291 Typically, you do not directly set this variable.
10292 Instead, use
10293 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
10294 </para>
10295 </glossdef>
10296 </glossentry>
10297
10298 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
10299 <info>
10300 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
10301 </info>
10302 <glossdef>
10303 <para role="glossdeffirst">
10304<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10305 The directory set up and used by the
10306 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
10307 to which the SDK is deployed.
10308 The <filename>populate_sdk_base</filename> class defines
10309 <filename>SDK_DEPLOY</filename> as follows:
10310 <literallayout class='monospaced'>
10311 SDK_DEPLOY = "${<link linkend='var-TMPDIR'>TMPDIR</link>}/deploy/sdk"
10312 </literallayout>
10313 </para>
10314 </glossdef>
10315 </glossentry>
10316
10317 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
10318 <info>
10319 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
10320 </info>
10321 <glossdef>
10322 <para role="glossdeffirst">
10323<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10324 The parent directory used by the OpenEmbedded build system
10325 when creating SDK output.
10326 The
10327 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10328 class defines the variable as follows:
10329 <literallayout class='monospaced'>
10330 SDK_DIR = "${<link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>}/sdk"
10331 </literallayout>
10332 <note>
10333 The <filename>SDK_DIR</filename> directory is a
10334 temporary directory as it is part of
10335 <filename>WORKDIR</filename>.
10336 The final output directory is
10337 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
10338 </note>
10339 </para>
10340 </glossdef>
10341 </glossentry>
10342
10343 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
10344 <info>
10345 SDK_HOST_MANIFEST[doc] = "The manifest file for the host part of the SDK. This file lists all the installed packages that make up the host part of the SDK."
10346 </info>
10347 <glossdef>
10348 <para role="glossdeffirst">
10349<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10350 The manifest file for the host part of the SDK.
10351 This file lists all the installed packages that make up
10352 the host part of SDK.
10353 The file contains package information on a line-per-package
10354 basis as follows:
10355 <literallayout class='monospaced'>
10356 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
10357 </literallayout>
10358 </para>
10359
10360 <para>
10361 The
10362 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10363 class defines the manifest file as follows:
10364 <literallayout class='monospaced'>
10365 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
10366 </literallayout>
10367 The location is derived using the
10368 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
10369 and
10370 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
10371 variables.
10372 </para>
10373 </glossdef>
10374 </glossentry>
10375
10376 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
10377 <info>
10378 SDK_NAME[doc] = "The base name for SDK output files."
10379 </info>
10380 <glossdef>
10381 <para role="glossdeffirst">
10382<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10383 The base name for SDK output files.
10384 The name is derived from the
10385 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
10386 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
10387 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
10388 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
10389 and
10390 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
10391 variables:
10392 <literallayout class='monospaced'>
10393 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
10394 </literallayout>
10395 </para>
10396 </glossdef>
10397 </glossentry>
10398
10399 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
10400 <info>
10401 SDK_OS[doc] = "The operating system for which the SDK will be built."
10402 </info>
10403 <glossdef>
10404 <para role="glossdeffirst">
10405<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10406 Specifies the operating system for which the SDK
10407 will be built.
10408 The default value is the value of
10409 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
10410 </para>
10411 </glossdef>
10412 </glossentry>
10413
10414 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
10415 <info>
10416 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
10417 </info>
10418 <glossdef>
10419 <para role="glossdeffirst">
10420<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10421 The location used by the OpenEmbedded build system when
10422 creating SDK output.
10423 The
10424 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10425 class defines the variable as follows:
10426 <literallayout class='monospaced'>
10427 SDK_OUTPUT = "${<link linkend='var-SDK_DIR'>SDK_DIR</link>}/image"
10428 </literallayout>
10429 <note>
10430 The <filename>SDK_OUTPUT</filename> directory is a
10431 temporary directory as it is part of
10432 <filename>WORKDIR</filename> by way of
10433 <filename>SDK_DIR</filename>.
10434 The final output directory is
10435 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
10436 </note>
10437 </para>
10438 </glossdef>
10439 </glossentry>
10440
10441 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
10442 <info>
10443 SDK_PACKAGE_ARCHS[doc] = "Specifies a list of architectures compatible with the SDK machine. This variable is set automatically and should not normally be hand-edited."
10444 </info>
10445 <glossdef>
10446 <para role="glossdeffirst">
10447<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10448 Specifies a list of architectures compatible with
10449 the SDK machine.
10450 This variable is set automatically and should not
10451 normally be hand-edited.
10452 Entries are separated using spaces and listed in order
10453 of priority.
10454 The default value for
10455 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
10456 ${SDK_ARCH}-${SDKPKGSUFFIX}".
10457 </para>
10458 </glossdef>
10459 </glossentry>
10460
10461 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
10462 <info>
10463 SDK_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the SDK."
10464 </info>
10465 <glossdef>
10466 <para role="glossdeffirst">
10467<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10468 Specifies a list of functions to call once the
10469 OpenEmbedded build system has created the SDK.
10470 You can specify functions separated by semicolons:
10471 <literallayout class='monospaced'>
10472 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
10473 </literallayout>
10474 </para>
10475
10476 <para>
10477 If you need to pass an SDK path to a command within a
10478 function, you can use
10479 <filename>${SDK_DIR}</filename>, which points to
10480 the parent directory used by the OpenEmbedded build system
10481 when creating SDK output.
10482 See the
10483 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10484 variable for more information.
10485 </para>
10486 </glossdef>
10487 </glossentry>
10488
10489 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
10490 <info>
10491 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
10492 </info>
10493 <glossdef>
10494 <para role="glossdeffirst">
10495<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10496 The toolchain binary prefix used for nativesdk recipes.
10497 The OpenEmbedded build system uses the
10498 <filename>SDK_PREFIX</filename> value to set the
10499 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
10500 when building <filename>nativesdk</filename> recipes.
10501 The default value is "${SDK_SYS}-".
10502 </para>
10503 </glossdef>
10504 </glossentry>
10505
10506 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
10507 <info>
10508 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
10509 </info>
10510 <glossdef>
10511 <para role="glossdeffirst">
10512<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10513 Specifies the system, including the architecture and the
10514 operating system, for which the SDK will be built.
10515 </para>
10516
10517 <para>
10518 The OpenEmbedded build system automatically sets this
10519 variable based on
10520 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
10521 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
10522 and
10523 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
10524 You do not need to set the <filename>SDK_SYS</filename>
10525 variable yourself.
10526 </para>
10527 </glossdef>
10528 </glossentry>
10529
10530 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
10531 <info>
10532 SDK_TARGET_MANIFEST[doc] = "The manifest file for the target part of the SDK. This file lists all the installed packages that make up the target part of the SDK."
10533 </info>
10534 <glossdef>
10535 <para role="glossdeffirst">
10536<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10537 The manifest file for the target part of the SDK.
10538 This file lists all the installed packages that make up
10539 the target part of the SDK.
10540 The file contains package information on a line-per-package
10541 basis as follows:
10542 <literallayout class='monospaced'>
10543 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
10544 </literallayout>
10545 </para>
10546
10547 <para>
10548 The
10549 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10550 class defines the manifest file as follows:
10551 <literallayout class='monospaced'>
10552 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
10553 </literallayout>
10554 The location is derived using the
10555 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
10556 and
10557 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
10558 variables.
10559 </para>
10560 </glossdef>
10561 </glossentry>
10562
10563 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
10564 <info>
10565 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
10566 </info>
10567 <glossdef>
10568 <para role="glossdeffirst">
10569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10570 Specifies the name of the SDK vendor.
10571 </para>
10572 </glossdef>
10573 </glossentry>
10574
10575 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
10576 <info>
10577 SDK_VERSION[doc] = "Specifies the version for the SDK."
10578 </info>
10579 <glossdef>
10580 <para role="glossdeffirst">
10581<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10582 Specifies the version of the SDK.
10583 The distribution configuration file (e.g.
10584 <filename>/meta-yocto/conf/distro/poky.conf</filename>)
10585 defines the <filename>SDK_VERSION</filename> as follows:
10586 <literallayout class='monospaced'>
10587 SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
10588 </literallayout>
10589 </para>
10590
10591 <para>
10592 For additional information, see the
10593 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
10594 and
10595 <link linkend='var-DATE'><filename>DATE</filename></link>
10596 variables.
10597 </para>
10598 </glossdef>
10599 </glossentry>
10600
10601 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
10602 <info>
10603 SDKIMAGE_FEATURES[doc] = "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command 'bitbake -c populate_sdk imagename'."
10604 </info>
10605 <glossdef>
10606 <para role="glossdeffirst">
10607<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10608 Equivalent to
10609 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
10610 However, this variable applies to the SDK generated from an
10611 image using the following command:
10612 <literallayout class='monospaced'>
10613 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
10614 </literallayout>
10615 </para>
10616 </glossdef>
10617 </glossentry>
10618
10619 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
10620 <info>
10621 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items."
10622 </info>
10623 <glossdef>
10624 <para role="glossdeffirst">
10625<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10626 The machine for which the Application Development Toolkit
10627 (ADT) or SDK is built.
10628 In other words, the SDK or ADT is built such that it
10629 runs on the target you specify with the
10630 <filename>SDKMACHINE</filename> value.
10631 The value points to a corresponding
10632 <filename>.conf</filename> file under
10633 <filename>conf/machine-sdk/</filename>.
10634 </para>
10635
10636 <para>
10637 You can use "i686" and "x86_64" as possible values
10638 for this variable. The variable defaults to "i686"
10639 and is set in the local.conf file in the Build Directory.
10640 <literallayout class='monospaced'>
10641 SDKMACHINE ?= "i686"
10642 </literallayout>
10643 <note>
10644 You cannot set the <filename>SDKMACHINE</filename>
10645 variable in your distribution configuration file.
10646 If you do, the configuration will not take affect.
10647 </note>
10648 </para>
10649 </glossdef>
10650 </glossentry>
10651
10652 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
10653 <info>
10654 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
10655 </info>
10656 <glossdef>
10657 <para role="glossdeffirst">
10658<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10659 Defines the path offered to the user for installation
10660 of the SDK that is generated by the OpenEmbedded build
10661 system.
10662 The path appears as the default location for installing
10663 the SDK when you run the SDK's installation script.
10664 You can override the offered path when you run the
10665 script.
10666 </para>
10667 </glossdef>
10668 </glossentry>
10669
10670 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
10671 <info>
10672 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
10673 </info>
10674 <glossdef>
10675 <para role="glossdeffirst">
10676<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10677 The full path to the sysroot used for cross-compilation
10678 within an SDK as it will be when installed into the
10679 default
10680 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
10681 </para>
10682 </glossdef>
10683 </glossentry>
10684
10685 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
10686 <info>
10687 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
10688 </info>
10689 <glossdef>
10690 <para role="glossdeffirst">
10691<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10692 The section in which packages should be categorized.
10693 Package management utilities can make use of this variable.
10694 </para>
10695 </glossdef>
10696 </glossentry>
10697
10698 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
10699 <info>
10700 SELECTED_OPTIMIZATION[doc] = "The variable takes the value of FULL_OPTIMIZATION unless DEBUG_BUILD = '1'. In this case, the value of DEBUG_OPTIMIZATION is used."
10701 </info>
10702 <glossdef>
10703 <para role="glossdeffirst">
10704<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10705 Specifies the optimization flags passed to the C compiler
10706 when building for the target.
10707 The flags are passed through the default value of the
10708 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
10709 variable.
10710 </para>
10711
10712 <para>
10713 The <filename>SELECTED_OPTIMIZATION</filename> variable
10714 takes the value of
10715 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
10716 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
10717 If that is the case, the value of
10718 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
10719 </para>
10720 </glossdef>
10721 </glossentry>
10722
10723 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
10724 <info>
10725 SERIAL_CONSOLE[doc] = "The speed and device for the serial port used to attach the serial console. This variable is given to the kernel as the 'console' parameter. After booting occurs, getty is started on that port so remote login is possible."
10726 </info>
10727 <glossdef>
10728 <para role="glossdeffirst">
10729<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10730 Defines a serial console (TTY) to enable using getty.
10731 Provide a value that specifies the baud rate followed by
10732 the TTY device name separated by a space.
10733 You cannot specify more than one TTY device:
10734 <literallayout class='monospaced'>
10735 SERIAL_CONSOLE = "115200 ttyS0"
10736 </literallayout>
10737 <note>
10738 The <filename>SERIAL_CONSOLE</filename> variable
10739 is deprecated.
10740 Please use the
10741 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
10742 variable.
10743 </note>
10744 </para>
10745 </glossdef>
10746 </glossentry>
10747
10748 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
10749 <info>
10750 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
10751 </info>
10752 <glossdef>
10753 <para role="glossdeffirst">
10754<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10755 Defines the serial consoles (TTYs) to enable using getty.
10756 Provide a value that specifies the baud rate followed by
10757 the TTY device name separated by a semicolon.
10758 Use spaces to separate multiple devices:
10759 <literallayout class='monospaced'>
10760 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
10761 </literallayout>
10762 </para>
10763 </glossdef>
10764 </glossentry>
10765
10766 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
10767 <info>
10768 SERIAL_CONSOLES_CHECK[doc] = "Similar to SERIAL_CONSOLES except the device is checked for existence before attempting to enable it. Supported only by SysVinit."
10769 </info>
10770 <glossdef>
10771 <para role="glossdeffirst">
10772<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10773 Similar to
10774 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
10775 except the device is checked for existence before attempting
10776 to enable it.
10777 This variable is currently only supported with SysVinit
10778 (i.e. not with systemd).
10779 </para>
10780 </glossdef>
10781 </glossentry>
10782
10783 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
10784 <info>
10785 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS[doc] = "A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe."
10786 </info>
10787 <glossdef>
10788 <para role="glossdeffirst">
10789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10790 A list of recipe dependencies that should not be used to
10791 determine signatures of tasks from one recipe when they
10792 depend on tasks from another recipe.
10793 For example:
10794 <literallayout class='monospaced'>
10795 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
10796 </literallayout>
10797 </para>
10798
10799 <para>
10800 In this example, <filename>intone</filename> depends on
10801 <filename>mplayer2</filename>.
10802 </para>
10803
10804 <para>
10805 Use of this variable is one mechanism to remove dependencies
10806 that affect task signatures and thus force rebuilds when a
10807 recipe changes.
10808 <note><title>Caution</title>
10809 If you add an inappropriate dependency for a recipe
10810 relationship, the software might break during
10811 runtime if the interface of the second recipe was
10812 changed after the first recipe had been built.
10813 </note>
10814 </para>
10815 </glossdef>
10816 </glossentry>
10817
10818 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
10819 <info>
10820 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
10821 </info>
10822 <glossdef>
10823 <para role="glossdeffirst">
10824<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10825 A list of recipes that are completely stable and will
10826 never change.
10827 The ABI for the recipes in the list are presented by
10828 output from the tasks run to build the recipe.
10829 Use of this variable is one way to remove dependencies from
10830 one recipe on another that affect task signatures and
10831 thus force rebuilds when the recipe changes.
10832 <note><title>Caution</title>
10833 If you add an inappropriate variable to this list,
10834 the software might break at runtime if the
10835 interface of the recipe was changed after the other
10836 had been built.
10837 </note>
10838 </para>
10839 </glossdef>
10840 </glossentry>
10841
10842 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
10843 <info>
10844 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
10845 </info>
10846 <glossdef>
10847 <para role="glossdeffirst">
10848<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10849 Specifies the number of bits for the target system CPU.
10850 The value should be either "32" or "64".
10851 </para>
10852 </glossdef>
10853 </glossentry>
10854
10855 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
10856 <info>
10857 SITEINFO_ENDIANNESS[doc] = "Specifies the endian byte order of the target system. The value should be either 'le' for 'little-endian' or 'be' for 'big-endian'."
10858 </info>
10859 <glossdef>
10860 <para role="glossdeffirst">
10861<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10862 Specifies the endian byte order of the target system.
10863 The value should be either "le" for little-endian or "be" for big-endian.
10864 </para>
10865 </glossdef>
10866 </glossentry>
10867
10868 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
10869 <info>
10870 SOC_FAMILY[doc] = "Groups together machines based upon the same family of SOC (System On Chip). You typically set this variable in a common .inc file that you include in the configuration files of all the machines."
10871 </info>
10872 <glossdef>
10873 <para role="glossdeffirst">
10874<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10875 Groups together machines based upon the same family
10876 of SOC (System On Chip).
10877 You typically set this variable in a common
10878 <filename>.inc</filename> file that you include in the
10879 configuration files of all the machines.
10880 <note>
10881 You must include
10882 <filename>conf/machine/include/soc-family.inc</filename>
10883 for this variable to appear in
10884 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
10885 </note>
10886 </para>
10887 </glossdef>
10888 </glossentry>
10889
10890 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
10891 <info>
10892 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
10893 </info>
10894 <glossdef>
10895 <para role="glossdeffirst">
10896<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10897 Defines the suffix for shared libraries used on the
10898 target platform.
10899 By default, this suffix is ".so.*" for all Linux-based
10900 systems and is defined in the
10901 <filename>meta/conf/bitbake.conf</filename> configuration
10902 file.
10903 </para>
10904
10905 <para>
10906 You will see this variable referenced in the default values
10907 of <filename>FILES_${PN}</filename>.
10908 </para>
10909 </glossdef>
10910 </glossentry>
10911
10912 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
10913 <info>
10914 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
10915 </info>
10916 <glossdef>
10917 <para role="glossdeffirst">
10918<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10919 Defines the suffix for the development symbolic link
10920 (symlink) for shared libraries on the target platform.
10921 By default, this suffix is ".so" for Linux-based
10922 systems and is defined in the
10923 <filename>meta/conf/bitbake.conf</filename> configuration
10924 file.
10925 </para>
10926
10927 <para>
10928 You will see this variable referenced in the default values
10929 of <filename>FILES_${PN}-dev</filename>.
10930 </para>
10931 </glossdef>
10932 </glossentry>
10933
10934 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
10935 <info>
10936 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
10937 </info>
10938 <glossdef>
10939 <para role="glossdeffirst">
10940<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10941 When you are fetching files to create a mirror of sources
10942 (i.e. creating a source mirror), setting
10943 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
10944 <filename>local.conf</filename> configuration file ensures
10945 the source for all recipes are fetched regardless of
10946 whether or not a recipe is compatible with the
10947 configuration.
10948 A recipe is considered incompatible with the currently
10949 configured machine when either or both the
10950 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
10951 variable and
10952 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
10953 variables specify compatibility with a machine other
10954 than that of the current machine or host.
10955 <note><title>Warning</title>
10956 Do not set the
10957 <filename>SOURCE_MIRROR_FETCH</filename> variable
10958 unless you are creating a source mirror.
10959 In other words, do not set the variable during a
10960 normal build.
10961 </note>
10962 </para>
10963 </glossdef>
10964 </glossentry>
10965
10966 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
10967 <info>
10968 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
10969 </info>
10970 <glossdef>
10971 <para role="glossdeffirst">
10972<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10973 Defines your own
10974 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
10975 from which to first fetch source before attempting to fetch
10976 from the upstream specified in
10977 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
10978 </para>
10979
10980 <para>
10981 To use this variable, you must globally inherit the
10982 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
10983 class and then provide the URL to your mirrors.
10984 Here is the general syntax:
10985 <literallayout class='monospaced'>
10986 INHERIT += "own-mirrors"
10987 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
10988 </literallayout>
10989 <note>
10990 You can specify only a single URL in
10991 <filename>SOURCE_MIRROR_URL</filename>.
10992 </note>
10993 </para>
10994 </glossdef>
10995 </glossentry>
10996
10997 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
10998 <info>
10999 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
11000 </info>
11001 <glossdef>
11002 <para role="glossdeffirst">
11003<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11004 Maps commonly used license names to their SPDX counterparts
11005 found in <filename>meta/files/common-licenses/</filename>.
11006 For the default <filename>SPDXLICENSEMAP</filename>
11007 mappings, see the
11008 <filename>meta/conf/licenses.conf</filename> file.
11009 </para>
11010
11011 <para>
11012 For additional information, see the
11013 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
11014 variable.
11015 </para>
11016 </glossdef>
11017 </glossentry>
11018
11019 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
11020 <info>
11021 SPECIAL_PKGSUFFIX[doc] = "A list of prefixes for PN used by the OpenEmbedded build system to create variants of recipes or packages. The list specifies the prefixes to strip off during certain circumstances such as the generation of the BPN variable."
11022 </info>
11023 <glossdef>
11024 <para role="glossdeffirst">
11025<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11026 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
11027 OpenEmbedded build system to create variants of recipes or packages.
11028 The list specifies the prefixes to strip off during certain circumstances
11029 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
11030 </para>
11031 </glossdef>
11032 </glossentry>
11033
11034 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
11035 <info>
11036 SRC_URI[doc] = "The list of source files - local or remote. This variable tells the OpenEmbedded build system what bits to pull in for the build and how to pull them in."
11037 </info>
11038 <glossdef>
11039 <para role="glossdeffirst">
11040<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11041 The list of source files - local or remote.
11042 This variable tells the OpenEmbedded build system which bits
11043 to pull in for the build and how to pull them in.
11044 For example, if the recipe or append file only needs to
11045 fetch a tarball from the Internet, the recipe or
11046 append file uses a single <filename>SRC_URI</filename>
11047 entry.
11048 On the other hand, if the recipe or append file needs to
11049 fetch a tarball, apply two patches, and include a custom
11050 file, the recipe or append file would include four
11051 instances of the variable.
11052 </para>
11053
11054 <para>
11055 The following list explains the available URI protocols:
11056 <itemizedlist>
11057 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
11058 Fetches files, which are usually files shipped with
11059 the
11060 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>,
11061 from the local machine.
11062 The path is relative to the
11063 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
11064 variable.
11065 Thus, the build system searches, in order, from the
11066 following directories, which are assumed to be a
11067 subdirectories of the directory in which the
11068 recipe file (<filename>.bb</filename>) or
11069 append file (<filename>.bbappend</filename>)
11070 resides:
11071 <itemizedlist>
11072 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
11073 The base recipe name without any special
11074 suffix or version numbers.
11075 </para></listitem>
11076 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
11077 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
11078 The base recipe name and version but without
11079 any special package name suffix.
11080 </para></listitem>
11081 <listitem><para><emphasis>files -</emphasis>
11082 Files within a directory, which is named
11083 <filename>files</filename> and is also
11084 alongside the recipe or append file.
11085 </para></listitem>
11086 </itemizedlist>
11087 <note>
11088 If you want the build system to pick up files
11089 specified through a
11090 <filename>SRC_URI</filename>
11091 statement from your append file, you need to be
11092 sure to extend the
11093 <filename>FILESPATH</filename>
11094 variable by also using the
11095 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
11096 variable from within your append file.
11097 </note>
11098 </para></listitem>
11099 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
11100 Bazaar revision control repository.</para></listitem>
11101 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
11102 Git revision control repository.</para></listitem>
11103 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
11104 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
11105 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
11106 a repo (Git) repository.</para></listitem>
11107 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
11108 Fetches files from a ClearCase repository.
11109 </para></listitem>
11110 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
11111 the Internet using <filename>http</filename>.</para></listitem>
11112 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
11113 from the Internet using <filename>https</filename>.</para></listitem>
11114 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
11115 from the Internet using <filename>ftp</filename>.</para></listitem>
11116 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
11117 a CVS revision control repository.</para></listitem>
11118 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
11119 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
11120 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
11121 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
11122 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
11123 a secure shell.</para></listitem>
11124 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
11125 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
11126 </itemizedlist>
11127 </para>
11128
11129 <para>
11130 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
11131 Here are standard options:
11132 <itemizedlist>
11133 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
11134 the patch or not.
11135 The default action is to apply the patch.</para></listitem>
11136 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
11137 striplevel to use when applying the patch.
11138 The default level is 1.</para></listitem>
11139 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
11140 the directory in which the patch should be applied.
11141 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
11142 </para></listitem>
11143 </itemizedlist>
11144 </para>
11145
11146 <para>
11147 Here are options specific to recipes building code from a revision control system:
11148 <itemizedlist>
11149 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
11150 Apply the patch only if
11151 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
11152 is equal to or greater than <filename>mindate</filename>.
11153 </para></listitem>
11154 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
11155 Apply the patch only if <filename>SRCDATE</filename>
11156 is not later than <filename>mindate</filename>.
11157 </para></listitem>
11158 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
11159 Apply the patch only if <filename>SRCREV</filename>
11160 is equal to or greater than <filename>minrev</filename>.
11161 </para></listitem>
11162 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
11163 Apply the patch only if <filename>SRCREV</filename>
11164 is not later than <filename>maxrev</filename>.
11165 </para></listitem>
11166 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
11167 Apply the patch only if <filename>SRCREV</filename>
11168 is equal to <filename>rev</filename>.
11169 </para></listitem>
11170 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
11171 Apply the patch only if <filename>SRCREV</filename>
11172 is not equal to <filename>rev</filename>.
11173 </para></listitem>
11174 </itemizedlist>
11175 </para>
11176
11177 <para>
11178 Here are some additional options worth mentioning:
11179 <itemizedlist>
11180 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
11181 whether or not to unpack the file if it is an archive.
11182 The default action is to unpack the file.</para></listitem>
11183 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
11184 (or extracts its contents) into the specified
11185 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>.
11186 This option is useful for unusual tarballs or other archives that
11187 do not have their files already in a subdirectory within the archive.
11188 </para></listitem>
11189 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
11190 name to be used for association with <filename>SRC_URI</filename> checksums
11191 when you have more than one file specified in <filename>SRC_URI</filename>.
11192 </para></listitem>
11193 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
11194 the filename used when storing the downloaded file.</para></listitem>
11195 </itemizedlist>
11196 </para>
11197 </glossdef>
11198 </glossentry>
11199
11200 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
11201 <info>
11202 SRC_URI_OVERRIDES_PACKAGE_ARCH[doc] = "By default, the OpenEmbedded build system automatically detects whether SRC_URI contains files that are machine-specific. If so, the build system automatically changes PACKAGE_ARCH. Setting this variable to '0' disables this behavior."
11203 </info>
11204 <glossdef>
11205 <para role="glossdeffirst">
11206<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11207 By default, the OpenEmbedded build system automatically detects whether
11208 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
11209 contains files that are machine-specific.
11210 If so, the build system automatically changes
11211 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
11212 Setting this variable to "0" disables this behavior.
11213 </para>
11214 </glossdef>
11215 </glossentry>
11216
11217 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
11218 <info>
11219 SRCDATE[doc] = "The date of the source code used to build the package. This variable applies only if the source was fetched from a Source Code Manager (SCM)."
11220 </info>
11221 <glossdef>
11222 <para role="glossdeffirst">
11223<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11224 The date of the source code used to build the package.
11225 This variable applies only if the source was fetched from a Source Code Manager (SCM).
11226 </para>
11227 </glossdef>
11228 </glossentry>
11229
11230 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
11231 <info>
11232 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
11233 </info>
11234 <glossdef>
11235 <para role="glossdeffirst">
11236<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11237 Returns the version string of the current package.
11238 This string is used to help define the value of
11239 <link linkend='var-PV'><filename>PV</filename></link>.
11240 </para>
11241
11242 <para>
11243 The <filename>SRCPV</filename> variable is defined in the
11244 <filename>meta/conf/bitbake.conf</filename> configuration
11245 file in the
11246 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
11247 as follows:
11248 <literallayout class='monospaced'>
11249 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
11250 </literallayout>
11251 </para>
11252
11253 <para>
11254 Recipes that need to define <filename>PV</filename> do so
11255 with the help of the <filename>SRCPV</filename>.
11256 For example, the <filename>ofono</filename> recipe
11257 (<filename>ofono_git.bb</filename>) located in
11258 <filename>meta/recipes-connectivity</filename> in the
11259 Source Directory defines <filename>PV</filename> as
11260 follows:
11261 <literallayout class='monospaced'>
11262 PV = "0.12-git${SRCPV}"
11263 </literallayout>
11264 </para>
11265 </glossdef>
11266 </glossentry>
11267
11268 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
11269 <info>
11270 SRCREV[doc] = "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial and Bazaar only."
11271 </info>
11272 <glossdef>
11273 <para role="glossdeffirst">
11274<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11275 The revision of the source code used to build the package.
11276 This variable applies to Subversion, Git, Mercurial and
11277 Bazaar only.
11278 Note that if you want to build a fixed revision and you
11279 want to avoid performing a query on the remote repository
11280 every time BitBake parses your recipe, you should specify
11281 a <filename>SRCREV</filename> that is a
11282 full revision identifier and not just a tag.
11283 </para>
11284
11285 <note>
11286 For information on limitations when inheriting the latest
11287 revision of software using <filename>SRCREV</filename>,
11288 see the
11289 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
11290 variable description.
11291 </note>
11292 </glossdef>
11293 </glossentry>
11294
11295 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
11296 <info>
11297 SSTATE_DIR[doc] = "The directory for the shared state cache."
11298 </info>
11299 <glossdef>
11300 <para role="glossdeffirst">
11301<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11302 The directory for the shared state cache.
11303 </para>
11304 </glossdef>
11305 </glossentry>
11306
11307 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
11308 <info>
11309 SSTATE_MIRROR_ALLOW_NETWORK[doc] = "If set to "1", allows fetches from mirrors that are specified in SSTATE_MIRRORS to work even when fetching from the network has been disabled by setting BB_NO_NETWORK to "1"."
11310 </info>
11311 <glossdef>
11312 <para role="glossdeffirst">
11313<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11314 If set to "1", allows fetches from
11315 mirrors that are specified in
11316 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
11317 to work even when fetching from the network has been
11318 disabled by setting <filename>BB_NO_NETWORK</filename>
11319 to "1".
11320 Using the
11321 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
11322 variable is useful if you have set
11323 <filename>SSTATE_MIRRORS</filename> to point to an
11324 internal server for your shared state cache, but
11325 you want to disable any other fetching from the network.
11326 </para>
11327 </glossdef>
11328 </glossentry>
11329
11330 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
11331 <info>
11332 SSTATE_MIRRORS[doc] = "Configures the OpenEmbedded build system to search other mirror locations for prebuilt cache data objects before building out the data. You can specify a filesystem directory or a remote URL such as HTTP or FTP."
11333 </info>
11334 <glossdef>
11335 <para role="glossdeffirst">
11336<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11337 Configures the OpenEmbedded build system to search other
11338 mirror locations for prebuilt cache data objects before
11339 building out the data.
11340 This variable works like fetcher
11341 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
11342 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
11343 and points to the cache locations to check for the shared
11344 objects.
11345 </para>
11346
11347 <para>
11348 You can specify a filesystem directory or a remote URL such
11349 as HTTP or FTP.
11350 The locations you specify need to contain the shared state
11351 cache (sstate-cache) results from previous builds.
11352 The sstate-cache you point to can also be from builds on
11353 other machines.
11354 </para>
11355
11356 <para>
11357 If a mirror uses the same structure as
11358 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
11359 you need to add
11360 "PATH" at the end as shown in the examples below.
11361 The build system substitutes the correct path within the
11362 directory structure.
11363 <literallayout class='monospaced'>
11364 SSTATE_MIRRORS ?= "\
11365 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH \n \
11366 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
11367 </literallayout>
11368 </para>
11369 </glossdef>
11370 </glossentry>
11371
11372 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
11373 <info>
11374 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
11375 </info>
11376 <glossdef>
11377 <para role="glossdeffirst">
11378<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11379 Specifies the path to the <filename>/lib</filename>
11380 subdirectory of the sysroot directory for the
11381 build host.
11382 </para>
11383 </glossdef>
11384 </glossentry>
11385
11386 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
11387 <info>
11388 STAGING_BASELIBDIR[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the target for which the current recipe is being built (STAGING_DIR_HOST)."
11389 </info>
11390 <glossdef>
11391 <para role="glossdeffirst">
11392<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11393 Specifies the path to the <filename>/lib</filename>
11394 subdirectory of the sysroot directory for the target
11395 for which the current recipe is being built
11396 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11397 </para>
11398 </glossdef>
11399 </glossentry>
11400
11401 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
11402 <info>
11403 STAGING_BINDIR[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the target for which the current recipe is being built (STAGING_DIR_HOST)."
11404 </info>
11405 <glossdef>
11406 <para role="glossdeffirst">
11407<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11408 Specifies the path to the
11409 <filename>/usr/bin</filename> subdirectory of the
11410 sysroot directory for the target for which the current
11411 recipe is being built
11412 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11413 </para>
11414 </glossdef>
11415 </glossentry>
11416
11417 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
11418 <info>
11419 STAGING_BINDIR_CROSS[doc] = "Specifies the path to the directory containing binary configuration scripts. These scripts provide configuration information for other software that wants to make use of libraries or include files provided by the software associated with the script."
11420 </info>
11421 <glossdef>
11422 <para role="glossdeffirst">
11423<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11424 Specifies the path to the directory containing binary
11425 configuration scripts.
11426 These scripts provide configuration information for
11427 other software that wants to make use of libraries or
11428 include files provided by the software associated with
11429 the script.
11430 <note>
11431 This style of build configuration has been largely
11432 replaced by <filename>pkg-config</filename>.
11433 Consequently, if <filename>pkg-config</filename>
11434 is supported by the library to which you are linking,
11435 it is recommended you use
11436 <filename>pkg-config</filename> instead of a
11437 provided configuration script.
11438 </note>
11439 </para>
11440 </glossdef>
11441 </glossentry>
11442
11443 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
11444 <info>
11445 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
11446 </info>
11447 <glossdef>
11448 <para role="glossdeffirst">
11449<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11450 Specifies the path to the
11451 <filename>/usr/bin</filename> subdirectory of the
11452 sysroot directory for the build host.
11453 </para>
11454 </glossdef>
11455 </glossentry>
11456
11457 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
11458 <info>
11459 STAGING_DATADIR[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the target for which the current recipe is being built (STAGING_DIR_HOST)."
11460 </info>
11461 <glossdef>
11462 <para role="glossdeffirst">
11463<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11464 Specifies the path to the <filename>/usr/share</filename>
11465 subdirectory of the sysroot directory for the target
11466 for which the current recipe is being built
11467 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11468 </para>
11469 </glossdef>
11470 </glossentry>
11471
11472 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
11473 <info>
11474 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
11475 </info>
11476 <glossdef>
11477 <para role="glossdeffirst">
11478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11479 Specifies the path to the <filename>/usr/share</filename>
11480 subdirectory of the sysroot directory for the build host.
11481 </para>
11482 </glossdef>
11483 </glossentry>
11484
11485 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
11486 <info>
11487 STAGING_DIR[doc] = "Specifies the path to the top-level sysroots directory (i.e. ${TMPDIR}/sysroots)."
11488 </info>
11489 <glossdef>
11490 <para role="glossdeffirst">
11491<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11492 Specifies the path to the top-level sysroots directory
11493 (i.e.
11494 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots</filename>).
11495 <note>
11496 Recipes should never write files directly under
11497 this directory because the OpenEmbedded build system
11498 manages the directory automatically.
11499 Instead, files should be installed to
11500 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
11501 within your recipe's
11502 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
11503 task and then the OpenEmbedded build system will
11504 stage a subset of those files into the sysroot.
11505 </note>
11506 </para>
11507 </glossdef>
11508 </glossentry>
11509
11510 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
11511 <info>
11512 STAGING_DIR_HOST[doc] = "Specifies the path to the primary sysroot directory for which the target is being built."
11513 </info>
11514 <glossdef>
11515 <para role="glossdeffirst">
11516<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11517 Specifies the path to the primary sysroot directory for
11518 which the target is being built.
11519 Depending on the type of recipe and the build target, the
11520 recipe's value is as follows:
11521 <itemizedlist>
11522 <listitem><para>For recipes building for the target
11523 machine, the value is "${STAGING_DIR}/${MACHINE}".
11524 </para></listitem>
11525 <listitem><para>For <filename>native</filename>
11526 recipes building
11527 for the build host, the value is empty given the
11528 assumption that when building for the build host,
11529 the build host's own directories should be used.
11530 </para></listitem>
11531 <listitem><para>For <filename>nativesdk</filename>
11532 recipes that build for the SDK, the value is
11533 "${STAGING_DIR}/${MULTIMACH_HOST_SYS}".
11534 </para></listitem>
11535 </itemizedlist>
11536 </para>
11537 </glossdef>
11538 </glossentry>
11539
11540 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
11541 <info>
11542 STAGING_DIR_NATIVE[doc] = "Specifies the path to the sysroot directory for the build host."
11543 </info>
11544 <glossdef>
11545 <para role="glossdeffirst">
11546<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11547 Specifies the path to the sysroot directory for the
11548 build host.
11549 </para>
11550 </glossdef>
11551 </glossentry>
11552
11553 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
11554 <info>
11555 STAGING_DIR_TARGET[doc] = "Specifies the path to the sysroot directory for the target for which the current recipe is being built."
11556 </info>
11557 <glossdef>
11558 <para role="glossdeffirst">
11559<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11560 Specifies the path to the sysroot directory for the
11561 target for which the current recipe is being built.
11562 In most cases, this path is the
11563 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
11564 </para>
11565
11566 <para>
11567 Some recipes build binaries that can run on the target
11568 system but those binaries in turn generate code for
11569 another different system (e.g. cross-canadian recipes).
11570 Using terminology from GNU, the primary system is referred
11571 to as the "HOST" and the secondary, or different, system is
11572 referred to as the "TARGET".
11573 Thus, the binaries run on the "HOST" system and
11574 and generate binaries for the "TARGET" system.
11575 <filename>STAGING_DIR_TARGET</filename> points to the
11576 sysroot used for the "TARGET" system.
11577 </para>
11578 </glossdef>
11579 </glossentry>
11580
11581 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
11582 <info>
11583 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
11584 </info>
11585 <glossdef>
11586 <para role="glossdeffirst">
11587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11588 Specifies the path to the <filename>/etc</filename>
11589 subdirectory of the sysroot directory for the
11590 build host.
11591 </para>
11592 </glossdef>
11593 </glossentry>
11594
11595 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
11596 <info>
11597 STAGING_EXECPREFIXDIR[doc] = "Specifies the path to the /usr subdirectory of the sysroot directory for the target for which the current recipe is being built (STAGING_DIR_HOST)."
11598 </info>
11599 <glossdef>
11600 <para role="glossdeffirst">
11601<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11602 Specifies the path to the <filename>/usr</filename>
11603 subdirectory of the sysroot directory for the target
11604 for which the current recipe is being built
11605 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11606 </para>
11607 </glossdef>
11608 </glossentry>
11609
11610 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
11611 <info>
11612 STAGING_INCDIR[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the target for which the current recipe being built (STAGING_DIR_HOST)."
11613 </info>
11614 <glossdef>
11615 <para role="glossdeffirst">
11616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11617 Specifies the path to the
11618 <filename>/usr/include</filename> subdirectory of the
11619 sysroot directory for the target for which the current
11620 recipe being built
11621 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11622 </para>
11623 </glossdef>
11624 </glossentry>
11625
11626 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
11627 <info>
11628 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
11629 </info>
11630 <glossdef>
11631 <para role="glossdeffirst">
11632<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11633 Specifies the path to the <filename>/usr/include</filename>
11634 subdirectory of the sysroot directory for the build host.
11635 </para>
11636 </glossdef>
11637 </glossentry>
11638
11639 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
11640 <info>
11641 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
11642 </info>
11643 <glossdef>
11644 <para role="glossdeffirst">
11645<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11646 The directory with kernel headers that are required to build out-of-tree
11647 modules.
11648 </para>
11649 </glossdef>
11650 </glossentry>
11651
11652 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
11653 <info>
11654 STAGING_LIBDIR[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the target for which the current recipe is being built (STAGING_DIR_HOST)."
11655 </info>
11656 <glossdef>
11657 <para role="glossdeffirst">
11658<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11659 Specifies the path to the <filename>/usr/lib</filename>
11660 subdirectory of the sysroot directory for the target for
11661 which the current recipe is being built
11662 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11663 </para>
11664 </glossdef>
11665 </glossentry>
11666
11667 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
11668 <info>
11669 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
11670 </info>
11671 <glossdef>
11672 <para role="glossdeffirst">
11673<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11674 Specifies the path to the <filename>/usr/lib</filename>
11675 subdirectory of the sysroot directory for the build host.
11676 </para>
11677 </glossdef>
11678 </glossentry>
11679
11680 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
11681 <info>
11682 STAMP[doc] = "Specifies the base path used to create recipe stamp files. The path to an actual stamp file is constructed by evaluating this string and then appending additional information."
11683 </info>
11684 <glossdef>
11685 <para role="glossdeffirst">
11686<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11687 Specifies the base path used to create recipe stamp files.
11688 The path to an actual stamp file is constructed by evaluating this
11689 string and then appending additional information.
11690 Currently, the default assignment for <filename>STAMP</filename>
11691 as set in the <filename>meta/conf/bitbake.conf</filename> file
11692 is:
11693 <literallayout class='monospaced'>
11694 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
11695 </literallayout>
11696 </para>
11697
11698 <para>
11699 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
11700 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
11701 <link linkend='var-PN'><filename>PN</filename></link>,
11702 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
11703 <link linkend='var-PV'><filename>PV</filename></link>, and
11704 <link linkend='var-PR'><filename>PR</filename></link> for related variable
11705 information.
11706 </para>
11707 </glossdef>
11708 </glossentry>
11709
11710 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
11711 <info>
11712 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
11713 </info>
11714 <glossdef>
11715 <para role="glossdeffirst">
11716<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11717 Specifies the base directory in which the OpenEmbedded
11718 build system places stamps.
11719 The default directory is
11720 <filename>${TMPDIR}/stamps</filename>.
11721 </para>
11722 </glossdef>
11723 </glossentry>
11724
11725 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
11726 <info>
11727 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
11728 </info>
11729 <glossdef>
11730 <para role="glossdeffirst">
11731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11732 The minimal command and arguments to run
11733 <filename>strip</filename>, which is used to strip
11734 symbols.
11735 </para>
11736 </glossdef>
11737 </glossentry>
11738
11739 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
11740 <info>
11741 SUMMARY[doc] = "The short (80 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe."
11742 </info>
11743 <glossdef>
11744 <para role="glossdeffirst">
11745<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11746 The short (72 characters or less) summary of the binary package for packaging
11747 systems such as <filename>opkg</filename>, <filename>rpm</filename> or
11748 <filename>dpkg</filename>.
11749 By default, <filename>SUMMARY</filename> is used to define
11750 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
11751 variable if <filename>DESCRIPTION</filename> is not set
11752 in the recipe.
11753 </para>
11754 </glossdef>
11755 </glossentry>
11756
11757 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
11758 <info>
11759 SVNDIR[doc] = "The directory where Subversion checkouts will be stored."
11760 </info>
11761 <glossdef>
11762 <para role="glossdeffirst">
11763<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11764 The directory in which files checked out of a Subversion
11765 system are stored.
11766 </para>
11767 </glossdef>
11768 </glossentry>
11769
11770 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
11771 <info>
11772 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
11773 </info>
11774 <glossdef>
11775 <para role="glossdeffirst">
11776<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11777 Specifies the kernel boot default console.
11778 If you want to use a console other than the default,
11779 set this variable in your recipe as follows where "X" is
11780 the console number you want to use:
11781 <literallayout class='monospaced'>
11782 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
11783 </literallayout>
11784 </para>
11785
11786 <para>
11787 The
11788 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
11789 class initially sets this variable to null but then checks
11790 for a value later.
11791 </para>
11792 </glossdef>
11793 </glossentry>
11794
11795 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
11796 <info>
11797 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
11798 </info>
11799 <glossdef>
11800 <para role="glossdeffirst">
11801<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11802 Lists additional options to add to the syslinux file.
11803 You need to set this variable in your recipe.
11804 If you want to list multiple options, separate the options
11805 with a semicolon character (<filename>;</filename>).
11806 </para>
11807
11808 <para>
11809 The
11810 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
11811 class uses this variable to create a set of options.
11812 </para>
11813 </glossdef>
11814 </glossentry>
11815
11816 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
11817 <info>
11818 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
11819 </info>
11820 <glossdef>
11821 <para role="glossdeffirst">
11822<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11823 Specifies the alternate serial port or turns it off.
11824 To turn off serial, set this variable to an empty string
11825 in your recipe.
11826 The variable's default value is set in the
11827 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
11828 as follows:
11829 <literallayout class='monospaced'>
11830 SYSLINUX_SERIAL ?= "0 115200"
11831 </literallayout>
11832 </para>
11833
11834 <para>
11835 The class checks for and uses the variable as needed.
11836 </para>
11837 </glossdef>
11838 </glossentry>
11839
11840 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
11841 <info>
11842 SYSLINUX_SPLASH[doc] = "An .LSS file used as the background for the VGA boot menu when you are using the boot menu."
11843 </info>
11844 <glossdef>
11845 <para role="glossdeffirst">
11846<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11847 An <filename>.LSS</filename> file used as the background
11848 for the VGA boot menu when you are using the boot menu.
11849 You need to set this variable in your recipe.
11850 </para>
11851
11852 <para>
11853 The
11854 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
11855 class checks for this variable and if found, the
11856 OpenEmbedded build system installs the splash screen.
11857 </para>
11858 </glossdef>
11859 </glossentry>
11860
11861 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
11862 <info>
11863 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
11864 </info>
11865 <glossdef>
11866 <para role="glossdeffirst">
11867<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11868 Specifies the alternate console=tty... kernel boot argument.
11869 The variable's default value is set in the
11870 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
11871 as follows:
11872 <literallayout class='monospaced'>
11873 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
11874 </literallayout>
11875 </para>
11876
11877 <para>
11878 The class checks for and uses the variable as needed.
11879 </para>
11880 </glossdef>
11881 </glossentry>
11882
11883 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
11884 <info>
11885 SYSROOT_PREPROCESS_FUNCS[doc] = "A list of functions to execute after files are staged into the sysroot. These functions are usually used to apply additional processing on the staged files, or to stage additional files."
11886 </info>
11887 <glossdef>
11888 <para role="glossdeffirst">
11889<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11890 A list of functions to execute after files are staged into
11891 the sysroot.
11892 These functions are usually used to apply additional
11893 processing on the staged files, or to stage additional
11894 files.
11895 </para>
11896 </glossdef>
11897 </glossentry>
11898
11899 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
11900 <info>
11901 SYSTEMD_AUTO_ENABLE[doc] = "For recipes that inherit the systemd class, this variable specifies whether the service you have specified in SYSTEMD_SERVICE should be started automatically or not."
11902 </info>
11903 <glossdef>
11904 <para role="glossdeffirst">
11905<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11906 When inheriting the
11907 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
11908 class, this variable specifies whether the service you have
11909 specified in
11910 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
11911 should be started automatically or not.
11912 By default, the service is enabled to automatically start
11913 at boot time.
11914 The default setting is in the
11915 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
11916 class as follows:
11917 <literallayout class='monospaced'>
11918 SYSTEMD_AUTO_ENABLE ??= "enable"
11919 </literallayout>
11920 </para>
11921
11922 <para>
11923 You can disable the service by setting the variable to
11924 "disable".
11925 </para>
11926 </glossdef>
11927 </glossentry>
11928
11929 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
11930 <info>
11931 SYSTEMD_PACKAGES[doc] = "For recipes that inherit the systemd class, this variable locates the systemd unit files when they are not found in the main recipe's package."
11932 </info>
11933 <glossdef>
11934 <para role="glossdeffirst">
11935<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11936 When inheriting the
11937 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
11938 class, this variable locates the systemd unit files when
11939 they are not found in the main recipe's package.
11940 By default, the
11941 <filename>SYSTEMD_PACKAGES</filename> variable is set
11942 such that the systemd unit files are assumed to reside in
11943 the recipes main package:
11944 <literallayout class='monospaced'>
11945 SYSTEMD_PACKAGES ?= "${PN}"
11946 </literallayout>
11947 </para>
11948
11949 <para>
11950 If these unit files are not in this recipe's main
11951 package, you need to use
11952 <filename>SYSTEMD_PACKAGES</filename> to list the package
11953 or packages in which the build system can find the systemd
11954 unit files.
11955 </para>
11956 </glossdef>
11957 </glossentry>
11958
11959 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
11960 <info>
11961 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
11962 </info>
11963 <glossdef>
11964 <para role="glossdeffirst">
11965<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11966 When inheriting the
11967 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
11968 class, this variable specifies the systemd service name for
11969 a package.
11970 </para>
11971
11972 <para>
11973 When you specify this file in your recipe, use a package
11974 name override to indicate the package to which the value
11975 applies.
11976 Here is an example from the connman recipe:
11977 <literallayout class='monospaced'>
11978 SYSTEMD_SERVICE_${PN} = "connman.service"
11979 </literallayout>
11980 </para>
11981 </glossdef>
11982 </glossentry>
11983
11984 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
11985 <info>
11986 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should be running a getty, the default is '1'."
11987 </info>
11988 <glossdef>
11989 <para role="glossdeffirst">
11990<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11991 When using
11992 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
11993 specifies a space-separated list of the virtual terminals
11994 that should be running a
11995 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
11996 (allowing login), assuming
11997 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
11998 is not set to "0".
11999 </para>
12000
12001 <para>
12002 The default value for
12003 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
12004 (i.e. only run a getty on the first virtual terminal).
12005 </para>
12006 </glossdef>
12007 </glossentry>
12008
12009 </glossdiv>
12010
12011 <glossdiv id='var-glossary-t'><title>T</title>
12012
12013 <glossentry id='var-T'><glossterm>T</glossterm>
12014 <info>
12015 T[doc] = "This variable points to a directory were BitBake places temporary files, which consist mostly of task logs and scripts, when building a particular recipe."
12016 </info>
12017 <glossdef>
12018 <para role="glossdeffirst">
12019<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12020 This variable points to a directory were BitBake places
12021 temporary files, which consist mostly of task logs and
12022 scripts, when building a particular recipe.
12023 The variable is typically set as follows:
12024 <literallayout class='monospaced'>
12025 T = "${WORKDIR}/temp"
12026 </literallayout>
12027 </para>
12028
12029 <para>
12030 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12031 is the directory into which BitBake unpacks and builds the
12032 recipe.
12033 The default <filename>bitbake.conf</filename> file sets this variable.</para>
12034 <para>The <filename>T</filename> variable is not to be confused with
12035 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
12036 which points to the root of the directory tree where BitBake
12037 places the output of an entire build.
12038 </para>
12039 </glossdef>
12040 </glossentry>
12041
12042 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
12043 <info>
12044 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
12045 </info>
12046 <glossdef>
12047 <para role="glossdeffirst">
12048<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12049 The target machine's architecture.
12050 The OpenEmbedded build system supports many
12051 architectures.
12052 Here is an example list of architectures supported.
12053 This list is by no means complete as the architecture
12054 is configurable:
12055 <literallayout class='monospaced'>
12056 arm
12057 i586
12058 x86_64
12059 powerpc
12060 powerpc64
12061 mips
12062 mipsel
12063 </literallayout>
12064 </para>
12065
12066 <para>
12067 For additional information on machine architectures, see
12068 the
12069 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
12070 variable.
12071 </para>
12072 </glossdef>
12073 </glossentry>
12074
12075 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
12076 <info>
12077 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
12078 </info>
12079 <glossdef>
12080 <para role="glossdeffirst">
12081<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12082 Specifies architecture-specific assembler flags for the
12083 target system.
12084 <filename>TARGET_AS_ARCH</filename> is initialized from
12085 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
12086 by default in the BitBake configuration file
12087 (<filename>meta/conf/bitbake.conf</filename>):
12088 <literallayout class='monospaced'>
12089 TARGET_AS_ARCH = "${TUNE_ASARGS}"
12090 </literallayout>
12091 </para>
12092 </glossdef>
12093 </glossentry>
12094
12095 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
12096 <info>
12097 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
12098 </info>
12099 <glossdef>
12100 <para role="glossdeffirst">
12101<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12102 Specifies architecture-specific C compiler flags for the
12103 target system.
12104 <filename>TARGET_CC_ARCH</filename> is initialized from
12105 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
12106 by default.
12107 <note>
12108 It is a common workaround to append
12109 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12110 to <filename>TARGET_CC_ARCH</filename>
12111 in recipes that build software for the target that
12112 would not otherwise respect the exported
12113 <filename>LDFLAGS</filename> variable.
12114 </note>
12115 </para>
12116 </glossdef>
12117 </glossentry>
12118
12119 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
12120 <info>
12121 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
12122 </info>
12123 <glossdef>
12124 <para role="glossdeffirst">
12125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12126 This is a specific kernel compiler flag for a CPU or
12127 Application Binary Interface (ABI) tune.
12128 The flag is used rarely and only for cases where a
12129 userspace
12130 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
12131 is not compatible with the kernel compilation.
12132 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
12133 allows the kernel (and associated modules) to use a
12134 different configuration.
12135 See the
12136 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
12137 file in the
12138 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
12139 for an example.
12140 </para>
12141 </glossdef>
12142 </glossentry>
12143
12144 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
12145 <info>
12146 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
12147 </info>
12148 <glossdef>
12149 <para role="glossdeffirst">
12150<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12151 Specifies the flags to pass to the C compiler when building
12152 for the target.
12153 When building in the target context,
12154 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
12155 is set to the value of this variable by default.
12156 </para>
12157
12158 <para>
12159 Additionally, the SDK's environment setup script sets
12160 the
12161 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
12162 variable in the environment to the
12163 <filename>TARGET_CFLAGS</filename> value so that
12164 executables built using the SDK also have the flags
12165 applied.
12166 </para>
12167 </glossdef>
12168 </glossentry>
12169
12170 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
12171 <info>
12172 TARGET_CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers) when building for the target."
12173 </info>
12174 <glossdef>
12175 <para role="glossdeffirst">
12176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12177 Specifies the flags to pass to the C pre-processor
12178 (i.e. to both the C and the C++ compilers) when building
12179 for the target.
12180 When building in the target context,
12181 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
12182 is set to the value of this variable by default.
12183 </para>
12184
12185 <para>
12186 Additionally, the SDK's environment setup script sets
12187 the
12188 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
12189 variable in the environment to the
12190 <filename>TARGET_CPPFLAGS</filename> value so that
12191 executables built using the SDK also have the flags
12192 applied.
12193 </para>
12194 </glossdef>
12195 </glossentry>
12196
12197 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
12198 <info>
12199 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
12200 </info>
12201 <glossdef>
12202 <para role="glossdeffirst">
12203<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12204 Specifies the flags to pass to the C++ compiler when
12205 building for the target.
12206 When building in the target context,
12207 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
12208 is set to the value of this variable by default.
12209 </para>
12210
12211 <para>
12212 Additionally, the SDK's environment setup script sets
12213 the
12214 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
12215 variable in the environment to the
12216 <filename>TARGET_CXXFLAGS</filename> value so that
12217 executables built using the SDK also have the flags
12218 applied.
12219 </para>
12220 </glossdef>
12221 </glossentry>
12222
12223 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
12224 <info>
12225 TARGET_FPU[doc] = "Specifies the method for handling FPU code. For FPU-less targets, which include most ARM CPUs, the variable must be set to 'soft'. If not, the kernel emulation gets used, which results in a performance penalty."
12226 </info>
12227 <glossdef>
12228 <para role="glossdeffirst">
12229<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12230 Specifies the method for handling FPU code.
12231 For FPU-less targets, which include most ARM CPUs, the variable must be
12232 set to "soft".
12233 If not, the kernel emulation gets used, which results in a performance penalty.
12234 </para>
12235 </glossdef>
12236 </glossentry>
12237
12238 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
12239 <info>
12240 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
12241 </info>
12242 <glossdef>
12243 <para role="glossdeffirst">
12244<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12245 Specifies architecture-specific linker flags for the
12246 target system.
12247 <filename>TARGET_LD_ARCH</filename> is initialized from
12248 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
12249 by default in the BitBake configuration file
12250 (<filename>meta/conf/bitbake.conf</filename>):
12251 <literallayout class='monospaced'>
12252 TARGET_LD_ARCH = "${TUNE_LDARGS}"
12253 </literallayout>
12254 </para>
12255 </glossdef>
12256 </glossentry>
12257
12258 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
12259 <info>
12260 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
12261 </info>
12262 <glossdef>
12263 <para role="glossdeffirst">
12264<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12265 Specifies the flags to pass to the linker when building
12266 for the target.
12267 When building in the target context,
12268 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12269 is set to the value of this variable by default.
12270 </para>
12271
12272 <para>
12273 Additionally, the SDK's environment setup script sets
12274 the
12275 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12276 variable in the environment to the
12277 <filename>TARGET_LDFLAGS</filename> value so that
12278 executables built using the SDK also have the flags
12279 applied.
12280 </para>
12281 </glossdef>
12282 </glossentry>
12283
12284 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
12285 <info>
12286 TARGET_OS[doc] = "Specifies the target's operating system."
12287 </info>
12288 <glossdef>
12289 <para role="glossdeffirst">
12290<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12291 Specifies the target's operating system.
12292 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
12293 to "linux-uclibc" for <filename>uclibc</filename>.
12294 For ARM/EABI targets, there are also "linux-gnueabi" and
12295 "linux-uclibc-gnueabi" values possible.
12296 </para>
12297 </glossdef>
12298 </glossentry>
12299
12300 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
12301 <info>
12302 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
12303 </info>
12304 <glossdef>
12305 <para role="glossdeffirst">
12306<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12307 Specifies the prefix used for the toolchain binary target
12308 tools.
12309 </para>
12310
12311 <para>
12312 Depending on the type of recipe and the build target,
12313 <filename>TARGET_PREFIX</filename> is set as follows:
12314 <itemizedlist>
12315 <listitem><para>
12316 For recipes building for the target machine,
12317 the value is
12318 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
12319 </para></listitem>
12320 <listitem><para>
12321 For <filename>native</filename> recipes, the build
12322 system sets the variable to the value of
12323 <filename>BUILD_PREFIX</filename>.
12324 </para></listitem>
12325 <listitem><para>
12326 For <filename>nativesdk</filename> recipes, the
12327 build system sets the variable to the value of
12328 <filename>SDK_PREFIX</filename>.
12329 </para></listitem>
12330 </itemizedlist>
12331 </para>
12332 </glossdef>
12333 </glossentry>
12334
12335 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
12336 <info>
12337 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
12338 </info>
12339 <glossdef>
12340 <para role="glossdeffirst">
12341<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12342 Specifies the system, including the architecture and the
12343 operating system, for which the build is occurring in
12344 the context of the current recipe.
12345 </para>
12346
12347 <para>
12348 The OpenEmbedded build system automatically sets this
12349 variable based on
12350 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
12351 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
12352 and
12353 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
12354 variables.
12355 <note>
12356 You do not need to set the
12357 <filename>TARGET_SYS</filename> variable yourself.
12358 </note>
12359 </para>
12360
12361 <para>
12362 Consider these two examples:
12363 <itemizedlist>
12364 <listitem><para>
12365 Given a <filename>native</filename> recipe on a
12366 32-bit, x86 machine running Linux, the value is
12367 "i686-linux".
12368 </para></listitem>
12369 <listitem><para>
12370 Given a recipe being built for a little-endian,
12371 MIPS target running Linux, the value might be
12372 "mipsel-linux".
12373 </para></listitem>
12374 </itemizedlist>
12375 </para>
12376 </glossdef>
12377 </glossentry>
12378
12379 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
12380 <info>
12381 TARGET_VENDOR[doc] = "The name of the target vendor."
12382 </info>
12383 <glossdef>
12384 <para role="glossdeffirst">
12385<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12386 Specifies the name of the target vendor.
12387 </para>
12388 </glossdef>
12389 </glossentry>
12390
12391 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
12392 <info>
12393 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
12394 </info>
12395 <glossdef>
12396 <para role="glossdeffirst">
12397<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12398 Specifies a suffix to be appended onto the
12399 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
12400 value.
12401 The suffix identifies the <filename>libc</filename> variant
12402 for building.
12403 When you are building for multiple variants with the same
12404 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
12405 this mechanism ensures that output for different
12406 <filename>libc</filename> variants is kept separate to
12407 avoid potential conflicts.
12408 </para>
12409
12410 <para>
12411 In the <filename>defaultsetup.conf</filename> file, the
12412 default value of <filename>TCLIBCAPPEND</filename> is
12413 "-${TCLIBC}".
12414 However, distros such as poky, which normally only support
12415 one <filename>libc</filename> variant, set
12416 <filename>TCLIBCAPPEND</filename> to "" in their distro
12417 configuration file resulting in no suffix being applied.
12418 </para>
12419 </glossdef>
12420 </glossentry>
12421
12422 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
12423 <info>
12424 TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc' or 'uclibc'."
12425 </info>
12426 <glossdef>
12427 <para role="glossdeffirst">
12428<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12429 Specifies the GNU standard C library (<filename>libc</filename>)
12430 variant to use during the build process.
12431 This variable replaces <filename>POKYLIBC</filename>, which is no longer
12432 supported.
12433 </para>
12434
12435 <para>
12436 You can select "glibc" or "uclibc".
12437 </para>
12438 </glossdef>
12439 </glossentry>
12440
12441 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
12442 <info>
12443 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
12444 </info>
12445 <glossdef>
12446 <para role="glossdeffirst">
12447<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12448 Specifies the toolchain selector.
12449 <filename>TCMODE</filename> controls the characteristics
12450 of the generated packages and images by telling the
12451 OpenEmbedded build system which toolchain profile to use.
12452 By default, the OpenEmbedded build system builds its own
12453 internal toolchain.
12454 The variable's default value is "default", which uses
12455 that internal toolchain.
12456 <note>
12457 If <filename>TCMODE</filename> is set to a value
12458 other than "default", then it is your responsibility
12459 to ensure that the toolchain is compatible with the
12460 default toolchain.
12461 Using older or newer versions of these components
12462 might cause build problems.
12463 See the
12464 <ulink url='&YOCTO_RELEASE_NOTES;'>Release Notes</ulink>
12465 for the specific components with which the toolchain
12466 must be compatible.
12467 </note>
12468 </para>
12469
12470 <para>
12471 The <filename>TCMODE</filename> variable is similar to
12472 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12473 which controls the variant of the GNU standard C library
12474 (<filename>libc</filename>) used during the build process:
12475 <filename>glibc</filename> or <filename>uclibc</filename>.
12476 </para>
12477
12478 <para>
12479 With additional layers, it is possible to use a pre-compiled
12480 external toolchain.
12481 One example is the Sourcery G++ Toolchain.
12482 The support for this toolchain resides in the separate
12483 <trademark class='registered'>Mentor Graphics</trademark>
12484 <filename>meta-sourcery</filename> layer at
12485 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
12486 </para>
12487
12488 <para>
12489 The layer's <filename>README</filename> file contains
12490 information on how to use the Sourcery G++ Toolchain as
12491 an external toolchain.
12492 In summary, you must be sure to add the layer to your
12493 <filename>bblayers.conf</filename> file in front of the
12494 <filename>meta</filename> layer and then set the
12495 <filename>EXTERNAL_TOOLCHAIN</filename>
12496 variable in your <filename>local.conf</filename> file
12497 to the location in which you installed the toolchain.
12498 </para>
12499
12500 <para>
12501 The fundamentals used for this example apply to any
12502 external toolchain.
12503 You can use <filename>meta-sourcery</filename> as a
12504 template for adding support for other external toolchains.
12505 </para>
12506 </glossdef>
12507 </glossentry>
12508
12509 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
12510 <info>
12511 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
12512 </info>
12513 <glossdef>
12514 <para role="glossdeffirst">
12515<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12516 The location the OpenEmbedded build system uses to export
12517 tests when the
12518 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
12519 variable is set to "1".
12520 </para>
12521
12522 <para>
12523 The <filename>TEST_EXPORT_DIR</filename> variable defaults
12524 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
12525 </para>
12526 </glossdef>
12527 </glossentry>
12528
12529 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
12530 <info>
12531 TEST_EXPORT_ONLY[doc] = "Specifies to export the tests only. Set this variable to "1" if you do not want to run the tests but you want them to be exported in a manner that you to run them outside of the build system."
12532 </info>
12533 <glossdef>
12534 <para role="glossdeffirst">
12535<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12536 Specifies to export the tests only.
12537 Set this variable to "1" if you do not want to run the
12538 tests but you want them to be exported in a manner that
12539 you to run them outside of the build system.
12540 </para>
12541 </glossdef>
12542 </glossentry>
12543
12544 <glossentry id='var-TEST_IMAGE'><glossterm>TEST_IMAGE</glossterm>
12545 <info>
12546 TEST_IMAGE[doc] = "Enables test booting of virtual machine images under the QEMU emulator after any root filesystems are created and runs tests against those images."
12547 </info>
12548 <glossdef>
12549 <para role="glossdeffirst">
12550<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12551 Automatically runs the series of automated tests for
12552 images when an image is successfully built.
12553 </para>
12554
12555 <para>
12556 These tests are written in Python making use of the
12557 <filename>unittest</filename> module, and the majority of
12558 them run commands on the target system over
12559 <filename>ssh</filename>.
12560 You can set this variable to "1" in your
12561 <filename>local.conf</filename> file in the
12562 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
12563 to have the OpenEmbedded build system automatically run
12564 these tests after an image successfully builds:
12565 <literallayout class='monospaced'>
12566 TEST_IMAGE = "1"
12567 </literallayout>
12568 For more information on enabling, running, and writing
12569 these tests, see the
12570 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
12571 section in the Yocto Project Development Manual and the
12572 "<link linkend='ref-classes-testimage'><filename>testimage.bbclass</filename></link>"
12573 section.
12574 </para>
12575 </glossdef>
12576 </glossentry>
12577
12578 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
12579 <info>
12580 TEST_LOG_DIR[doc] = "Holds the SSH log and the boot log for QEMU machines. The <filename>TEST_LOG_DIR</filename> variable defaults to "${WORKDIR}/testimage"."
12581 </info>
12582 <glossdef>
12583 <para role="glossdeffirst">
12584<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12585 Holds the SSH log and the boot log for QEMU machines.
12586 The <filename>TEST_LOG_DIR</filename> variable defaults
12587 to <filename>"${WORKDIR}/testimage"</filename>.
12588 <note>
12589 Actual test results reside in the task log
12590 (<filename>log.do_testimage</filename>), which is in
12591 the <filename>${WORKDIR}/temp/</filename> directory.
12592 </note>
12593 </para>
12594 </glossdef>
12595 </glossentry>
12596
12597 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
12598 <info>
12599 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
12600 </info>
12601 <glossdef>
12602 <para role="glossdeffirst">
12603<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12604 For automated hardware testing, specifies the command to
12605 use to control the power of the target machine under test.
12606 Typically, this command would point to a script that
12607 performs the appropriate action (e.g. interacting
12608 with a web-enabled power strip).
12609 The specified command should expect to receive as the last
12610 argument "off", "on" or "cycle" specifying to power off,
12611 on, or cycle (power off and then power on) the device,
12612 respectively.
12613 </para>
12614 </glossdef>
12615 </glossentry>
12616
12617 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
12618 <info>
12619 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
12620 </info>
12621 <glossdef>
12622 <para role="glossdeffirst">
12623<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12624 For automated hardware testing, specifies additional
12625 arguments to pass through to the command specified in
12626 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
12627 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
12628 is optional.
12629 You can use it if you wish, for example, to separate the
12630 machine-specific and non-machine-specific parts of the
12631 arguments.
12632 </para>
12633 </glossdef>
12634 </glossentry>
12635
12636 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
12637 <info>
12638 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
12639 </info>
12640 <glossdef>
12641 <para role="glossdeffirst">
12642<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12643 The time in seconds allowed for an image to boot before
12644 automated runtime tests begin to run against an
12645 image.
12646 The default timeout period to allow the boot process to
12647 reach the login prompt is 500 seconds.
12648 You can specify a different value in the
12649 <filename>local.conf</filename> file.
12650 </para>
12651
12652 <para>
12653 For more information on testing images, see the
12654 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
12655 section in the Yocto Project Development Manual.
12656 </para>
12657 </glossdef>
12658 </glossentry>
12659
12660 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
12661 <info>
12662 TEST_SERIALCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to connect to the serial console of the target machine under test."
12663 </info>
12664 <glossdef>
12665 <para role="glossdeffirst">
12666<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12667 For automated hardware testing, specifies the command
12668 to use to connect to the serial console of the target
12669 machine under test.
12670 This command simply needs to connect to the serial console
12671 and forward that connection to standard input and output
12672 as any normal terminal program does.
12673 </para>
12674
12675 <para>
12676 For example, to use the Picocom terminal program on
12677 serial device <filename>/dev/ttyUSB0</filename> at
12678 115200bps, you would set the variable as follows:
12679 <literallayout class='monospaced'>
12680 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
12681 </literallayout>
12682 </para>
12683 </glossdef>
12684 </glossentry>
12685
12686 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
12687 <info>
12688 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
12689 </info>
12690 <glossdef>
12691 <para role="glossdeffirst">
12692<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12693 For automated hardware testing, specifies additional
12694 arguments to pass through to the command specified in
12695 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
12696 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
12697 is optional.
12698 You can use it if you wish, for example, to separate the
12699 machine-specific and non-machine-specific parts of the
12700 command.
12701 </para>
12702 </glossdef>
12703 </glossentry>
12704
12705 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
12706 <info>
12707 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
12708 </info>
12709 <glossdef>
12710 <para role="glossdeffirst">
12711<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12712 The IP address of the build machine (host machine).
12713 This IP address is usually automatically detected.
12714 However, if detection fails, this variable needs to be set
12715 to the IP address of the build machine (i.e. where
12716 the build is taking place).
12717 <note>
12718 The <filename>TEST_SERVER_IP</filename> variable
12719 is only used for a small number of tests such as
12720 the "smart" test suite, which needs to download
12721 packages from <filename>DEPLOY_DIR/rpm</filename>.
12722 </note>
12723 </para>
12724 </glossdef>
12725 </glossentry>
12726
12727 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
12728 <info>
12729 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
12730 </info>
12731 <glossdef>
12732 <para role="glossdeffirst">
12733<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12734 Specifies the target controller to use when running tests
12735 against a test image.
12736 The default controller to use is "qemu":
12737 <literallayout class='monospaced'>
12738 TEST_TARGET = "qemu"
12739 </literallayout>
12740 </para>
12741
12742 <para>
12743 A target controller is a class that defines how an
12744 image gets deployed on a target and how a target is started.
12745 A layer can extend the controllers by adding a module
12746 in the layer's <filename>/lib/oeqa/controllers</filename>
12747 directory and by inheriting the
12748 <filename>BaseTarget</filename> class, which is an abstract
12749 class that cannot be used as a value of
12750 <filename>TEST_TARGET</filename>.
12751 </para>
12752
12753 <para>
12754 You can provide the following arguments with
12755 <filename>TEST_TARGET</filename>:
12756 <itemizedlist>
12757 <listitem><para><emphasis>"qemu" and "QemuTarget":</emphasis>
12758 Boots a QEMU image and runs the tests.
12759 See the
12760 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
12761 section in the Yocto Project Development Manual for
12762 more information.
12763 </para></listitem>
12764 <listitem><para><emphasis>"simpleremote" and "SimpleRemoteTarget":</emphasis>
12765 Runs the tests on target hardware that is already
12766 up and running.
12767 The hardware can be on the network or it can be
12768 a device running an image on QEMU.
12769 You must also set
12770 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
12771 when you use "simpleremote" or "SimpleRemoteTarget".
12772 <note>
12773 This argument is defined in
12774 <filename>meta/lib/oeqa/targetcontrol.py</filename>.
12775 The small caps names are kept for compatibility
12776 reasons.
12777 </note>
12778 </para></listitem>
12779 <listitem><para><emphasis>"GummibootTarget":</emphasis>
12780 Automatically deploys and runs tests on an
12781 EFI-enabled machine that has a master image
12782 installed.
12783 <note>
12784 This argument is defined in
12785 <filename>meta/lib/oeqa/controllers/masterimage.py</filename>.
12786 </note>
12787 </para></listitem>
12788 </itemizedlist>
12789 </para>
12790
12791 <para>
12792 For information on running tests on hardware, see the
12793 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
12794 section in the Yocto Project Development Manual.
12795 </para>
12796 </glossdef>
12797 </glossentry>
12798
12799 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
12800 <info>
12801 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
12802 </info>
12803 <glossdef>
12804 <para role="glossdeffirst">
12805<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12806 The IP address of your hardware under test.
12807 The <filename>TEST_TARGET_IP</filename> variable has no
12808 effect when
12809 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
12810 is set to "qemu".
12811 </para>
12812
12813 <para>
12814 When you specify the IP address, you can also include a
12815 port.
12816 Here is an example:
12817 <literallayout class='monospaced'>
12818 TEST_TARGET_IP = "192.168.1.4:2201"
12819 </literallayout>
12820 Specifying a port is useful when SSH is started on a
12821 non-standard port or in cases when your hardware under test
12822 is behind a firewall or network that is not directly
12823 accessible from your host and you need to do port address
12824 translation.
12825 </para>
12826 </glossdef>
12827 </glossentry>
12828
12829 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
12830 <info>
12831 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
12832 </info>
12833 <glossdef>
12834 <para role="glossdeffirst">
12835<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12836 An ordered list of tests (modules) to run against
12837 an image when performing automated runtime testing.
12838 </para>
12839
12840 <para>
12841 The OpenEmbedded build system provides a core set of tests
12842 that can be used against images.
12843 <note>
12844 Currently, there is only support for running these tests
12845 under QEMU.
12846 </note>
12847 Tests include <filename>ping</filename>,
12848 <filename>ssh</filename>, <filename>df</filename> among
12849 others.
12850 You can add your own tests to the list of tests by
12851 appending <filename>TEST_SUITES</filename> as follows:
12852 <literallayout class='monospaced'>
12853 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
12854 </literallayout>
12855 Alternatively, you can provide the "auto" option to
12856 have all applicable tests run against the image.
12857 <literallayout class='monospaced'>
12858 TEST_SUITES_append = " auto"
12859 </literallayout>
12860 Using this option causes the build system to automatically
12861 run tests that are applicable to the image.
12862 Tests that are not applicable are skipped.
12863 </para>
12864
12865 <para>
12866 The order in which tests are run is important.
12867 Tests that depend on another test must appear later in the
12868 list than the test on which they depend.
12869 For example, if you append the list of tests with two
12870 tests (<filename>test_A</filename> and
12871 <filename>test_B</filename>) where
12872 <filename>test_B</filename> is dependent on
12873 <filename>test_A</filename>, then you must order the tests
12874 as follows:
12875 <literallayout class='monospaced'>
12876 TEST_SUITES = " test_A test_B"
12877 </literallayout>
12878 </para>
12879
12880 <para>
12881 For more information on testing images, see the
12882 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
12883 section in the Yocto Project Development Manual.
12884 </para>
12885 </glossdef>
12886 </glossentry>
12887
12888 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
12889 <info>
12890 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
12891 </info>
12892 <glossdef>
12893 <para role="glossdeffirst">
12894<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12895 The directory in which the file BitBake is currently
12896 parsing is located.
12897 Do not manually set this variable.
12898 </para>
12899 </glossdef>
12900 </glossentry>
12901
12902 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
12903 <info>
12904 TIME[doc] = "The time the build was started using HMS format."
12905 </info>
12906 <glossdef>
12907 <para role="glossdeffirst">
12908<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12909 The time the build was started.
12910 Times appear using the hour, minute, and second (HMS)
12911 format (e.g. "140159" for one minute and fifty-nine
12912 seconds past 1400 hours).
12913 </para>
12914 </glossdef>
12915 </glossentry>
12916
12917 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
12918 <info>
12919 TMPDIR[doc] = "The temporary directory the OpenEmbedded build system uses when it does its work building images. By default, the TMPDIR variable is named tmp within the Build Directory."
12920 </info>
12921 <glossdef>
12922 <para role="glossdeffirst">
12923<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12924 This variable is the base directory the OpenEmbedded
12925 build system uses for all build output and intermediate
12926 files (other than the shared state cache).
12927 By default, the <filename>TMPDIR</filename> variable points
12928 to <filename>tmp</filename> within the
12929 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
12930 </para>
12931
12932 <para>
12933 If you want to establish this directory in a location other
12934 than the default, you can uncomment and edit the following
12935 statement in the
12936 <filename>conf/local.conf</filename> file in the
12937 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
12938 <literallayout class='monospaced'>
12939 #TMPDIR = "${TOPDIR}/tmp"
12940 </literallayout>
12941 An example use for this scenario is to set
12942 <filename>TMPDIR</filename> to a local disk, which does
12943 not use NFS, while having the Build Directory use NFS.
12944 </para>
12945
12946 <para>
12947 The filesystem used by <filename>TMPDIR</filename> must
12948 have standard filesystem semantics (i.e. mixed-case files
12949 are unique, POSIX file locking, and persistent inodes).
12950 Due to various issues with NFS and bugs in some
12951 implementations, NFS does not meet this minimum
12952 requirement.
12953 Consequently, <filename>TMPDIR</filename> cannot be on
12954 NFS.
12955 </para>
12956 </glossdef>
12957 </glossentry>
12958
12959 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
12960 <info>
12961 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
12962 </info>
12963 <glossdef>
12964 <para role="glossdeffirst">
12965<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12966 This variable lists packages the OpenEmbedded build system
12967 uses when building an SDK, which contains a
12968 cross-development environment.
12969 The packages specified by this variable are part of the
12970 toolchain set that runs on the
12971 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
12972 and each package should usually have the prefix
12973 "nativesdk-".
12974 When building an SDK using
12975 <filename>bitbake -c populate_sdk &lt;imagename&gt;</filename>,
12976 a default list of packages is set in this variable, but
12977 you can add additional packages to the list.
12978 </para>
12979
12980 <para>
12981 For background information on cross-development toolchains
12982 in the Yocto Project development environment, see the
12983 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
12984 section.
12985 For information on setting up a cross-development
12986 environment, see the
12987 "<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>"
12988 section in the Yocto Project Application Developer's Guide.
12989 </para>
12990 </glossdef>
12991 </glossentry>
12992
12993 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
12994 <info>
12995 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
12996 </info>
12997 <glossdef>
12998 <para role="glossdeffirst">
12999<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13000 This variable defines the name used for the toolchain
13001 output.
13002 The
13003 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
13004 class sets the
13005 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
13006 follows:
13007 <literallayout class='monospaced'>
13008 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
13009 </literallayout>
13010 See the
13011 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
13012 and
13013 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
13014 variables for additional information.
13015 </para>
13016 </glossdef>
13017 </glossentry>
13018
13019 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
13020 <info>
13021 TOOLCHAIN_TARGET_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when it creates the target part of an SDK, which includes libraries and headers."
13022 </info>
13023 <glossdef>
13024 <para role="glossdeffirst">
13025<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13026 This variable lists packages the OpenEmbedded build system
13027 uses when it creates the target part of an SDK
13028 (i.e. the part built for the target hardware), which
13029 includes libraries and headers.
13030 </para>
13031
13032 <para>
13033 For background information on cross-development toolchains
13034 in the Yocto Project development environment, see the
13035 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
13036 section.
13037 For information on setting up a cross-development
13038 environment, see the
13039 "<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>"
13040 section in the Yocto Project Application Developer's Guide.
13041 </para>
13042 </glossdef>
13043 </glossentry>
13044
13045 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
13046 <info>
13047 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
13048 </info>
13049 <glossdef>
13050 <para role="glossdeffirst">
13051<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13052 The top-level
13053 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
13054 BitBake automatically sets this variable when you
13055 initialize your build environment using either
13056 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
13057 or
13058 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>.
13059 </para>
13060 </glossdef>
13061 </glossentry>
13062
13063 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
13064 <info>
13065 TRANSLATED_TARGET_ARCH[doc] = "A sanitized version of TARGET_ARCH. This variable is used where the architecture is needed in a value where underscores are not allowed."
13066 </info>
13067 <glossdef>
13068 <para role="glossdeffirst">
13069<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13070 A sanitized version of
13071 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
13072 This variable is used where the architecture is needed in
13073 a value where underscores are not allowed, for example
13074 within package filenames.
13075 In this case, dash characters replace any underscore
13076 characters used in TARGET_ARCH.
13077 </para>
13078
13079 <para>
13080 Do not edit this variable.
13081 </para>
13082 </glossdef>
13083 </glossentry>
13084
13085 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
13086 <info>
13087 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
13088 </info>
13089 <glossdef>
13090 <para role="glossdeffirst">
13091<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13092 The GNU canonical architecture for a specific architecture
13093 (i.e. <filename>arm</filename>,
13094 <filename>armeb</filename>,
13095 <filename>mips</filename>,
13096 <filename>mips64</filename>, and so forth).
13097 BitBake uses this value to setup configuration.
13098 </para>
13099
13100 <para>
13101 <filename>TUNE_ARCH</filename> definitions are specific to
13102 a given architecture.
13103 The definitions can be a single static definition, or
13104 can be dynamically adjusted.
13105 You can see details for a given CPU family by looking at
13106 the architecture's <filename>README</filename> file.
13107 For example, the
13108 <filename>meta/conf/machine/include/mips/README</filename>
13109 file in the
13110 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
13111 provides information for <filename>TUNE_ARCH</filename>
13112 specific to the <filename>mips</filename> architecture.
13113 </para>
13114
13115 <para>
13116 <filename>TUNE_ARCH</filename> is tied closely to
13117 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
13118 which defines the target machine's architecture.
13119 The BitBake configuration file
13120 (<filename>meta/conf/bitbake.conf</filename>) sets
13121 <filename>TARGET_ARCH</filename> as follows:
13122 <literallayout class='monospaced'>
13123 TARGET_ARCH = "${TUNE_ARCH}"
13124 </literallayout>
13125 </para>
13126
13127 <para>
13128 The following list, which is by no means complete since
13129 architectures are configurable, shows supported machine
13130 architectures:
13131 <literallayout class='monospaced'>
13132 arm
13133 i586
13134 x86_64
13135 powerpc
13136 powerpc64
13137 mips
13138 mipsel
13139 </literallayout>
13140 </para>
13141 </glossdef>
13142 </glossentry>
13143
13144 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
13145 <info>
13146 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
13147 </info>
13148 <glossdef>
13149 <para role="glossdeffirst">
13150<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13151 Specifies architecture-specific assembler flags for
13152 the target system.
13153 The set of flags is based on the selected tune features.
13154 <filename>TUNE_ASARGS</filename> is set using
13155 the tune include files, which are typically under
13156 <filename>meta/conf/machine/include/</filename> and are
13157 influenced through
13158 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13159 For example, the
13160 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
13161 file defines the flags for the x86 architecture as follows:
13162 <literallayout class='monospaced'>
13163 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
13164 </literallayout>
13165 <note>
13166 Board Support Packages (BSPs) select the tune.
13167 The selected tune, in turn, affects the tune variables
13168 themselves (i.e. the tune can supply its own
13169 set of flags).
13170 </note>
13171 </para>
13172 </glossdef>
13173 </glossentry>
13174
13175 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
13176 <info>
13177 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
13178 </info>
13179 <glossdef>
13180 <para role="glossdeffirst">
13181<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13182 Specifies architecture-specific C compiler flags for
13183 the target system.
13184 The set of flags is based on the selected tune features.
13185 <filename>TUNE_CCARGS</filename> is set using
13186 the tune include files, which are typically under
13187 <filename>meta/conf/machine/include/</filename> and are
13188 influenced through
13189 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13190 <note>
13191 Board Support Packages (BSPs) select the tune.
13192 The selected tune, in turn, affects the tune variables
13193 themselves (i.e. the tune can supply its own
13194 set of flags).
13195 </note>
13196 </para>
13197 </glossdef>
13198 </glossentry>
13199
13200 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
13201 <info>
13202 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
13203 </info>
13204 <glossdef>
13205 <para role="glossdeffirst">
13206<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13207 Specifies architecture-specific linker flags for
13208 the target system.
13209 The set of flags is based on the selected tune features.
13210 <filename>TUNE_LDARGS</filename> is set using
13211 the tune include files, which are typically under
13212 <filename>meta/conf/machine/include/</filename> and are
13213 influenced through
13214 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13215 For example, the
13216 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
13217 file defines the flags for the x86 architecture as follows:
13218 <literallayout class='monospaced'>
13219 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
13220 </literallayout>
13221 <note>
13222 Board Support Packages (BSPs) select the tune.
13223 The selected tune, in turn, affects the tune variables
13224 themselves (i.e. the tune can supply its own
13225 set of flags).
13226 </note>
13227 </para>
13228 </glossdef>
13229 </glossentry>
13230
13231 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
13232 <info>
13233 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
13234 </info>
13235 <glossdef>
13236 <para role="glossdeffirst">
13237<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13238 Features used to "tune" a compiler for optimal use
13239 given a specific processor.
13240 The features are defined within the tune files and allow
13241 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
13242 dynamically generated based on the features.
13243 </para>
13244
13245 <para>
13246 The OpenEmbedded build system verifies the features
13247 to be sure they are not conflicting and that they are
13248 supported.
13249 </para>
13250
13251 <para>
13252 The BitBake configuration file
13253 (<filename>meta/conf/bitbake.conf</filename>) defines
13254 <filename>TUNE_FEATURES</filename> as follows:
13255 <literallayout class='monospaced'>
13256 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
13257 </literallayout>
13258 See the
13259 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
13260 variable for more information.
13261 </para>
13262 </glossdef>
13263 </glossentry>
13264
13265 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
13266 <info>
13267 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
13268 </info>
13269 <glossdef>
13270 <para role="glossdeffirst">
13271<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13272 The package architecture understood by the packaging
13273 system to define the architecture, ABI, and tuning of
13274 output packages.
13275 The specific tune is defined using the "_tune" override
13276 as follows:
13277 <literallayout class='monospaced'>
13278 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
13279 </literallayout>
13280 </para>
13281
13282 <para>
13283 These tune-specific package architectures are defined in
13284 the machine include files.
13285 Here is an example of the "core2-32" tuning as used
13286 in the
13287 <filename>meta/conf/machine/include/tune-core2.inc</filename>
13288 file:
13289 <literallayout class='monospaced'>
13290 TUNE_PKGARCH_tune-core2-32 = "core2-32"
13291 </literallayout>
13292 </para>
13293 </glossdef>
13294 </glossentry>
13295
13296 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
13297 <info>
13298 TUNEABI[doc] = "An underlying ABI used by a particular tuning in a given toolchain layer. This feature allows providers using prebuilt libraries to check compatibility of a tuning against their selection of libraries."
13299 </info>
13300 <glossdef>
13301 <para role="glossdeffirst">
13302<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13303 An underlying Application Binary Interface (ABI) used by
13304 a particular tuning in a given toolchain layer.
13305 Providers that use prebuilt libraries can use the
13306 <filename>TUNEABI</filename>,
13307 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
13308 and
13309 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
13310 variables to check compatibility of tunings against their
13311 selection of libraries.
13312 </para>
13313
13314 <para>
13315 If <filename>TUNEABI</filename> is undefined, then every
13316 tuning is allowed.
13317 See the
13318 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13319 class to see how the variable is used.
13320 </para>
13321 </glossdef>
13322 </glossentry>
13323
13324 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
13325 <info>
13326 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
13327 </info>
13328 <glossdef>
13329 <para role="glossdeffirst">
13330<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13331 If set, the OpenEmbedded system ignores the
13332 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
13333 variable.
13334 Providers that use prebuilt libraries can use the
13335 <filename>TUNEABI_OVERRIDE</filename>,
13336 <filename>TUNEABI_WHITELIST</filename>,
13337 and
13338 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
13339 variables to check compatibility of a tuning against their
13340 selection of libraries.
13341 </para>
13342
13343 <para>
13344 See the
13345 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13346 class to see how the variable is used.
13347 </para>
13348 </glossdef>
13349 </glossentry>
13350
13351 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
13352 <info>
13353 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
13354 </info>
13355 <glossdef>
13356 <para role="glossdeffirst">
13357<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13358 A whitelist of permissible
13359 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
13360 values.
13361 If <filename>TUNEABI_WHITELIST</filename> is not set,
13362 all tunes are allowed.
13363 Providers that use prebuilt libraries can use the
13364 <filename>TUNEABI_WHITELIST</filename>,
13365 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
13366 and <filename>TUNEABI</filename> variables to check
13367 compatibility of a tuning against their selection of
13368 libraries.
13369 </para>
13370
13371 <para>
13372 See the
13373 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13374 class to see how the variable is used.
13375 </para>
13376 </glossdef>
13377 </glossentry>
13378
13379 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
13380 <info>
13381 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
13382 </info>
13383 <glossdef>
13384 <para role="glossdeffirst">
13385<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13386 Specifies CPU or Application Binary Interface (ABI)
13387 tuning features that conflict with <replaceable>feature</replaceable>.
13388 </para>
13389
13390 <para>
13391 Known tuning conflicts are specified in the machine include
13392 files in the
13393 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
13394 Here is an example from the
13395 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
13396 include file that lists the "o32" and "n64" features as
13397 conflicting with the "n32" feature:
13398 <literallayout class='monospaced'>
13399 TUNECONFLICTS[n32] = "o32 n64"
13400 </literallayout>
13401 </para>
13402 </glossdef>
13403 </glossentry>
13404
13405 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
13406 <info>
13407 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
13408 </info>
13409 <glossdef>
13410 <para role="glossdeffirst">
13411<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13412 Specifies a valid CPU or Application Binary Interface (ABI)
13413 tuning feature.
13414 The specified feature is stored as a flag.
13415 Valid features are specified in the machine include files
13416 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
13417 Here is an example from that file:
13418 <literallayout class='monospaced'>
13419 TUNEVALID[bigendian] = "Enable big-endian mode."
13420 </literallayout>
13421 </para>
13422
13423 <para>
13424 See the machine include files in the
13425 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
13426 for these features.
13427 </para>
13428 </glossdef>
13429 </glossentry>
13430
13431 </glossdiv>
13432
13433 <glossdiv id='var-glossary-u'><title>U</title>
13434
13435 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
13436 <info>
13437 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
13438 </info>
13439 <glossdef>
13440 <para role="glossdeffirst">
13441<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13442 Configures the
13443 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
13444 and can also define
13445 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
13446 for individual cases.
13447 </para>
13448
13449 <para>
13450 Following is an example from the
13451 <filename>meta-fsl-arm</filename> layer.
13452 <literallayout class='monospaced'>
13453 UBOOT_CONFIG ??= "sd"
13454 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
13455 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
13456 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
13457 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
13458 </literallayout>
13459 In this example, "sd" is selected as the configuration
13460 of the possible four for the
13461 <filename>UBOOT_MACHINE</filename>.
13462 The "sd" configuration defines "mx6qsabreauto_config"
13463 as the value for <filename>UBOOT_MACHINE</filename>, while
13464 the "sdcard" specifies the
13465 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
13466 image.
13467 </para>
13468
13469 <para>
13470 For more information on how the
13471 <filename>UBOOT_CONFIG</filename> is handled, see the
13472 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
13473 class.
13474 </para>
13475 </glossdef>
13476 </glossentry>
13477
13478 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
13479 <info>
13480 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
13481 </info>
13482 <glossdef>
13483 <para role="glossdeffirst">
13484<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13485 Specifies the entry point for the U-Boot image.
13486 During U-Boot image creation, the
13487 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
13488 as a command-line parameter to the
13489 <filename>uboot-mkimage</filename> utility.
13490 </para>
13491 </glossdef>
13492 </glossentry>
13493
13494 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
13495 <info>
13496 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
13497 </info>
13498 <glossdef>
13499 <para role="glossdeffirst">
13500<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13501 Specifies the load address for the U-Boot image.
13502 During U-Boot image creation, the
13503 <filename>UBOOT_LOADADDRESS</filename> variable is passed
13504 as a command-line parameter to the
13505 <filename>uboot-mkimage</filename> utility.
13506 </para>
13507 </glossdef>
13508 </glossentry>
13509
13510 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
13511 <info>
13512 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
13513 </info>
13514 <glossdef>
13515 <para role="glossdeffirst">
13516<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13517 Appends a string to the name of the local version of the
13518 U-Boot image.
13519 For example, assuming the version of the U-Boot image
13520 built was "2013.10, the full version string reported by
13521 U-Boot would be "2013.10-yocto" given the following
13522 statement:
13523 <literallayout class='monospaced'>
13524 UBOOT_LOCALVERSION = "-yocto"
13525 </literallayout>
13526 </para>
13527 </glossdef>
13528 </glossentry>
13529
13530 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
13531 <info>
13532 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
13533 </info>
13534 <glossdef>
13535 <para role="glossdeffirst">
13536<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13537 Specifies the value passed on the
13538 <filename>make</filename> command line when building
13539 a U-Boot image.
13540 The value indicates the target platform configuration.
13541 You typically set this variable from the machine
13542 configuration file (i.e.
13543 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
13544 </para>
13545
13546 <para>
13547 Please see the "Selection of Processor Architecture and
13548 Board Type" section in the U-Boot README for valid values
13549 for this variable.
13550 </para>
13551 </glossdef>
13552 </glossentry>
13553
13554 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
13555 <info>
13556 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
13557 </info>
13558 <glossdef>
13559 <para role="glossdeffirst">
13560<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13561 Specifies the target called in the
13562 <filename>Makefile</filename>.
13563 The default target is "all".
13564 </para>
13565 </glossdef>
13566 </glossentry>
13567
13568 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
13569 <info>
13570 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
13571 </info>
13572 <glossdef>
13573 <para role="glossdeffirst">
13574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13575 Points to the generated U-Boot extension.
13576 For example, <filename>u-boot.sb</filename> has a
13577 <filename>.sb</filename> extension.
13578 </para>
13579
13580 <para>
13581 The default U-Boot extension is
13582 <filename>.bin</filename>
13583 </para>
13584 </glossdef>
13585 </glossentry>
13586
13587 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
13588 <info>
13589 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
13590 </info>
13591 <glossdef>
13592 <para role="glossdeffirst">
13593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13594 Specifies the target used for building U-Boot.
13595 The target is passed directly as part of the "make" command
13596 (e.g. SPL and AIS).
13597 If you do not specifically set this variable, the
13598 OpenEmbedded build process passes and uses "all" for the
13599 target during the U-Boot building process.
13600 </para>
13601 </glossdef>
13602 </glossentry>
13603
13604 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
13605 <info>
13606 UNKNOWN_CONFIGURE_WHITELIST[doc] = "Specifies a list of options that, if reported by the configure script as being invalid, should not generate a warning during the do_configure task."
13607 </info>
13608 <glossdef>
13609 <para role="glossdeffirst">
13610<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13611 Specifies a list of options that, if reported by the
13612 configure script as being invalid, should not generate a
13613 warning during the
13614 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
13615 task.
13616 Normally, invalid configure options are simply not passed
13617 to the configure script (e.g. should be removed from
13618 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>).
13619 However, common options, for example, exist that are passed
13620 to all configure scripts at a class level that might not
13621 be valid for some configure scripts.
13622 It follows that no benefit exists in seeing a warning about
13623 these options.
13624 For these cases, the options are added to
13625 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
13626 </para>
13627
13628 <para>
13629 The configure arguments check that uses
13630 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
13631 of the
13632 <link linkend='ref-classes-insane'><filename>insane</filename></link>
13633 class and is only enabled if the recipe inherits the
13634 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
13635 class.
13636 </para>
13637 </glossdef>
13638 </glossentry>
13639
13640 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
13641 <info>
13642 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is to be enabled."
13643 </info>
13644 <glossdef>
13645 <para role="glossdeffirst">
13646<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13647 For recipes inheriting the
13648 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
13649 class, <filename>UPDATERCPN</filename> specifies
13650 the package that contains the initscript that is to be
13651 enabled.
13652 </para>
13653
13654 <para>
13655 The default value is "${PN}".
13656 Given that almost all recipes that install initscripts
13657 package them in the main package for the recipe, you
13658 rarely need to set this variable in individual recipes.
13659 </para>
13660 </glossdef>
13661 </glossentry>
13662
13663 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
13664 <info>
13665 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
13666 </info>
13667 <glossdef>
13668 <para role="glossdeffirst">
13669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13670 Determines if <filename>devtmpfs</filename> is used for
13671 <filename>/dev</filename> population.
13672 The default value used for <filename>USE_DEVFS</filename>
13673 is "1" when no value is specifically set.
13674 Typically, you would set <filename>USE_DEVFS</filename>
13675 to "0" for a statically populated <filename>/dev</filename>
13676 directory.
13677 </para>
13678
13679 <para>
13680 See the
13681 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
13682 section in the Yocto Project Development Manual for
13683 information on how to use this variable.
13684 </para>
13685 </glossdef>
13686 </glossentry>
13687
13688 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
13689 <info>
13690 USE_VT[doc] = "When using SysVinit, determines whether or not to run a getty on any virtual terminals in order to enable logging in through those terminals."
13691 </info>
13692 <glossdef>
13693 <para role="glossdeffirst">
13694<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13695 When using
13696 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
13697 determines whether or not to run a
13698 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
13699 on any virtual terminals in order to enable logging in
13700 through those terminals.
13701 </para>
13702
13703 <para>
13704 The default value used for <filename>USE_VT</filename>
13705 is "1" when no default value is specifically set.
13706 Typically, you would set <filename>USE_VT</filename>
13707 to "0" in the machine configuration file for machines
13708 that do not have a graphical display attached and
13709 therefore do not need virtual terminal functionality.
13710 </para>
13711 </glossdef>
13712 </glossentry>
13713
13714 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
13715 <info>
13716 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
13717 </info>
13718 <glossdef>
13719 <para role="glossdeffirst">
13720<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13721 A list of classes to globally inherit.
13722 These classes are used by the OpenEmbedded build system
13723 to enable extra features (e.g.
13724 <filename>buildstats</filename>,
13725 <filename>image-mklibs</filename>, and so forth).
13726 </para>
13727
13728 <para>
13729 The default list is set in your
13730 <filename>local.conf</filename> file:
13731 <literallayout class='monospaced'>
13732 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
13733 </literallayout>
13734 For more information, see
13735 <filename>meta-yocto/conf/local.conf.sample</filename> in
13736 the
13737 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
13738 </para>
13739 </glossdef>
13740 </glossentry>
13741
13742 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
13743 <info>
13744 USERADD_ERROR_DYNAMIC[doc] = "Forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in files/passwd and files/group files."
13745 </info>
13746 <glossdef>
13747 <para role="glossdeffirst">
13748<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13749 Forces the OpenEmbedded build system to produce an error
13750 if the user identification (<filename>uid</filename>) and
13751 group identification (<filename>gid</filename>) values
13752 are not defined in <filename>files/passwd</filename>
13753 and <filename>files/group</filename> files.
13754 </para>
13755
13756 <para>
13757 The default behavior for the build system is to dynamically
13758 apply <filename>uid</filename> and
13759 <filename>gid</filename> values.
13760 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
13761 variable is by default not set.
13762 If you plan on using statically assigned
13763 <filename>gid</filename> and <filename>uid</filename>
13764 values, you should set
13765 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
13766 your <filename>local.conf</filename> file as
13767 follows:
13768 <literallayout class='monospaced'>
13769 USERADD_ERROR_DYNAMIC = "1"
13770 </literallayout>
13771 Overriding the default behavior implies you are going to
13772 also take steps to set static <filename>uid</filename> and
13773 <filename>gid</filename> values through use of the
13774 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
13775 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
13776 and
13777 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
13778 variables.
13779 </para>
13780 </glossdef>
13781 </glossentry>
13782
13783 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
13784 <info>
13785 USERADD_GID_TABLES[doc] = "Specifies a password file to use for obtaining static group identification (gid) values when the OpenEmbedded build system adds a group to the system during package installation."
13786 </info>
13787 <glossdef>
13788 <para role="glossdeffirst">
13789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13790 Specifies a password file to use for obtaining static
13791 group identification (<filename>gid</filename>) values
13792 when the OpenEmbedded build system adds a group to the
13793 system during package installation.
13794 </para>
13795
13796 <para>
13797 When applying static group identification
13798 (<filename>gid</filename>) values, the OpenEmbedded build
13799 system looks in
13800 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
13801 for a <filename>files/group</filename> file and then applies
13802 those <filename>uid</filename> values.
13803 Set the variable as follows in your
13804 <filename>local.conf</filename> file:
13805 <literallayout class='monospaced'>
13806 USERADD_GID_TABLES = "files/group"
13807 </literallayout>
13808 </para>
13809
13810 <note>
13811 Setting the
13812 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
13813 variable to "useradd-staticids" causes the build system
13814 to use static <filename>gid</filename> values.
13815 </note>
13816 </glossdef>
13817 </glossentry>
13818
13819 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
13820 <info>
13821 USERADD_PACKAGES[doc] = "When a recipe inherits the useradd class, this variable specifies the individual packages within the recipe that require users and/or groups to be added."
13822 </info>
13823 <glossdef>
13824 <para role="glossdeffirst">
13825<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13826 When inheriting the
13827 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
13828 class, this variable
13829 specifies the individual packages within the recipe that
13830 require users and/or groups to be added.
13831 </para>
13832
13833 <para>
13834 You must set this variable if the recipe inherits the
13835 class.
13836 For example, the following enables adding a user for the
13837 main package in a recipe:
13838 <literallayout class='monospaced'>
13839 USERADD_PACKAGES = "${PN}"
13840 </literallayout>
13841 <note>
13842 If follows that if you are going to use the
13843 <filename>USERADD_PACKAGES</filename> variable,
13844 you need to set one or more of the
13845 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
13846 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
13847 or
13848 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
13849 variables.
13850 </note>
13851 </para>
13852
13853 </glossdef>
13854 </glossentry>
13855
13856 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
13857 <info>
13858 USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed."
13859 </info>
13860 <glossdef>
13861 <para role="glossdeffirst">
13862<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13863 When inheriting the
13864 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
13865 class, this variable
13866 specifies for a package what parameters should be passed
13867 to the <filename>useradd</filename> command
13868 if you wish to add a user to the system when the package
13869 is installed.
13870 </para>
13871
13872 <para>
13873 Here is an example from the <filename>dbus</filename>
13874 recipe:
13875 <literallayout class='monospaced'>
13876 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
13877 --no-create-home --shell /bin/false \
13878 --user-group messagebus"
13879 </literallayout>
13880 For information on the standard Linux shell command
13881 <filename>useradd</filename>, see
13882 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
13883 </para>
13884 </glossdef>
13885 </glossentry>
13886
13887 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
13888 <info>
13889 USERADD_UID_TABLES[doc] = "Specifies a password file to use for obtaining static user identification (uid) values when the OpenEmbedded build system adds a user to the system during package installation."
13890 </info>
13891 <glossdef>
13892 <para role="glossdeffirst">
13893<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13894 Specifies a password file to use for obtaining static
13895 user identification (<filename>uid</filename>) values
13896 when the OpenEmbedded build system adds a user to the
13897 system during package installation.
13898 </para>
13899
13900 <para>
13901 When applying static user identification
13902 (<filename>uid</filename>) values, the OpenEmbedded build
13903 system looks in
13904 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
13905 for a <filename>files/passwd</filename> file and then applies
13906 those <filename>uid</filename> values.
13907 Set the variable as follows in your
13908 <filename>local.conf</filename> file:
13909 <literallayout class='monospaced'>
13910 USERADD_UID_TABLES = "files/passwd"
13911 </literallayout>
13912 </para>
13913
13914 <note>
13915 Setting the
13916 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
13917 variable to "useradd-staticids" causes the build system
13918 to use static <filename>uid</filename> values.
13919 </note>
13920 </glossdef>
13921 </glossentry>
13922
13923 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
13924 <info>
13925 USERADDEXTENSION[doc] = "When set to "useradd-staticids", causes the OpenEmbedded build system to base all user and group additions on a static passwd and group files found in BBPATH."
13926 </info>
13927 <glossdef>
13928 <para role="glossdeffirst">
13929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13930 When set to "useradd-staticids", causes the
13931 OpenEmbedded build system to base all user and group
13932 additions on a static
13933 <filename>passwd</filename> and
13934 <filename>group</filename> files found in
13935 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
13936 </para>
13937
13938 <para>
13939 To use static user identification (<filename>uid</filename>)
13940 and group identification (<filename>gid</filename>)
13941 values, set the variable
13942 as follows in your <filename>local.conf</filename> file:
13943 <literallayout class='monospaced'>
13944 USERADDEXTENSION = "useradd-staticids"
13945 </literallayout>
13946 <note>
13947 Setting this variable to use static
13948 <filename>uid</filename> and <filename>gid</filename>
13949 values causes the OpenEmbedded build system to employ
13950 the
13951 <link linkend='ref-classes-useradd-staticids'><filename>useradd-staticids</filename></link>
13952 class.
13953 </note>
13954 </para>
13955
13956 <para>
13957 If you use static <filename>uid</filename> and
13958 <filename>gid</filename> information, you must also
13959 specify the <filename>files/passwd</filename> and
13960 <filename>files/group</filename> files by setting the
13961 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
13962 and
13963 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
13964 variables.
13965 Additionally, you should also set the
13966 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
13967 variable.
13968 </para>
13969 </glossdef>
13970 </glossentry>
13971
13972 </glossdiv>
13973
13974<!-- <glossdiv id='var-glossary-v'><title>V</title>-->
13975<!-- </glossdiv>-->
13976
13977 <glossdiv id='var-glossary-w'><title>W</title>
13978
13979 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
13980 <info>
13981 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
13982 </info>
13983 <glossdef>
13984 <para role="glossdeffirst">
13985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13986 Specifies the quality assurance checks whose failures are
13987 reported as warnings by the OpenEmbedded build system.
13988 You set this variable in your distribution configuration
13989 file.
13990 For a list of the checks you can control with this variable,
13991 see the
13992 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
13993 section.
13994 </para>
13995 </glossdef>
13996 </glossentry>
13997
13998 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
13999 <info>
14000 WORKDIR[doc] = "The pathname of the working directory in which the OpenEmbedded build system builds a recipe. This directory is located within the TMPDIR directory structure and changes as different packages are built."
14001 </info>
14002 <glossdef>
14003 <para role="glossdeffirst">
14004<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14005 The pathname of the work directory in which the OpenEmbedded
14006 build system builds a recipe.
14007 This directory is located within the
14008 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14009 directory structure and is specific to the recipe being
14010 built and the system for which it is being built.
14011 </para>
14012
14013 <para>
14014 The <filename>WORKDIR</filename> directory is defined as
14015 follows:
14016 <literallayout class='monospaced'>
14017 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
14018 </literallayout>
14019 The actual directory depends on several things:
14020 <itemizedlist>
14021 <listitem><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>:
14022 The top-level build output directory</listitem>
14023 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
14024 The target system identifier</listitem>
14025 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
14026 The recipe name</listitem>
14027 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
14028 The epoch - (if
14029 <link linkend='var-PE'><filename>PE</filename></link>
14030 is not specified, which is usually the case for most
14031 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
14032 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
14033 The recipe version</listitem>
14034 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
14035 The recipe revision</listitem>
14036 </itemizedlist>
14037 </para>
14038
14039 <para>
14040 As an example, assume a Source Directory top-level folder
14041 name <filename>poky</filename>, a default Build Directory at
14042 <filename>poky/build</filename>, and a
14043 <filename>qemux86-poky-linux</filename> machine target
14044 system.
14045 Furthermore, suppose your recipe is named
14046 <filename>foo_1.3.0-r0.bb</filename>.
14047 In this case, the work directory the build system uses to
14048 build the package would be as follows:
14049 <literallayout class='monospaced'>
14050 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
14051 </literallayout>
14052 </para>
14053 </glossdef>
14054 </glossentry>
14055
14056 </glossdiv>
14057
14058 <glossdiv id='var-glossary-x'><title>X</title>
14059
14060 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
14061 <info>
14062 XSERVER[doc] = "Specifies the packages that should be installed
14063 to provide an X server and drivers for the current machine."
14064 </info>
14065 <glossdef>
14066 <para role="glossdeffirst">
14067<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14068 Specifies the packages that should be installed to
14069 provide an X server and drivers for the current machine,
14070 assuming your image directly includes
14071 <filename>packagegroup-core-x11-xserver</filename> or,
14072 perhaps indirectly, includes "x11-base" in
14073 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
14074 </para>
14075
14076 <para>
14077 The default value of <filename>XSERVER</filename>, if not
14078 specified in the machine configuration, is
14079 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
14080 </para>
14081 </glossdef>
14082 </glossentry>
14083
14084 </glossdiv>
14085
14086<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
14087<!-- </glossdiv>-->
14088
14089<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
14090<!-- </glossdiv>-->
14091
14092</glossary>
14093</chapter>
14094<!--
14095vim: expandtab tw=80 ts=4
14096-->