blob: 0b2c426b68a12153b47a6402f9f45fbaf6268fd1 [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
Patrick Williamsf1e5d692016-03-30 15:21:19 -05003536 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
3537 <info>
3538 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
3539 </info>
3540 <glossdef>
3541 <para role="glossdeffirst">
3542<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3543 Triggers the OpenEmbedded build system's shared libraries
3544 resolver to exclude an entire package when scanning for
3545 shared libraries.
3546 <note>
3547 The shared libraries resolver's functionality results
3548 in part from the internal function
3549 <filename>package_do_shlibs</filename>, which is part of
3550 the
3551 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
3552 task.
3553 You should be aware that the shared libraries resolver
3554 might implicitly define some dependencies between
3555 packages.
3556 </note>
3557 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
3558 similar to the
3559 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
3560 variable, which excludes a package's particular libraries
3561 only and not the whole package.
3562 </para>
3563
3564 <para>
3565 Use the
3566 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
3567 setting it to "1" for a particular package:
3568 <literallayout class='monospaced'>
3569 EXCLUDE_FROM_SHLIBS = "1"
3570 </literallayout>
3571 </para>
3572 </glossdef>
3573 </glossentry>
3574
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003575 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
3576 <info>
3577 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
3578 </info>
3579 <glossdef>
3580 <para role="glossdeffirst">
3581<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3582 Directs BitBake to exclude a recipe from world builds (i.e.
3583 <filename>bitbake world</filename>).
3584 During world builds, BitBake locates, parses and builds all
3585 recipes found in every layer exposed in the
3586 <filename>bblayers.conf</filename> configuration file.
3587 </para>
3588
3589 <para>
3590 To exclude a recipe from a world build using this variable,
3591 set the variable to "1" in the recipe.
3592 </para>
3593
3594 <note>
3595 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
3596 may still be built during a world build in order to satisfy
3597 dependencies of other recipes.
3598 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
3599 only ensures that the recipe is not explicitly added
3600 to the list of build targets in a world build.
3601 </note>
3602 </glossdef>
3603 </glossentry>
3604
3605 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
3606 <info>
3607 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."
3608 </info>
3609 <glossdef>
3610 <para role="glossdeffirst">
3611<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3612 Used with file and pathnames to create a prefix for a recipe's
3613 version based on the recipe's
3614 <link linkend='var-PE'><filename>PE</filename></link> value.
3615 If <filename>PE</filename> is set and greater than zero for a recipe,
3616 <filename>EXTENDPE</filename> becomes that value (e.g if
3617 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
3618 becomes "1_").
3619 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
3620 zero, <filename>EXTENDPE</filename> becomes "".</para>
3621 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
3622 variable for an example.
3623 </para>
3624 </glossdef>
3625 </glossentry>
3626
3627 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
3628 <info>
3629 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
3630 </info>
3631 <glossdef>
3632 <para role="glossdeffirst">
3633<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3634 The full package version specification as it appears on the
3635 final packages produced by a recipe.
3636 The variable's value is normally used to fix a runtime
3637 dependency to the exact same version of another package
3638 in the same recipe:
3639 <literallayout class='monospaced'>
3640 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
3641 </literallayout>
3642 </para>
3643
3644 <para>
3645 The dependency relationships are intended to force the
3646 package manager to upgrade these types of packages in
3647 lock-step.
3648 </para>
3649 </glossdef>
3650 </glossentry>
3651
3652 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
3653 <info>
3654 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
3655 </info>
3656 <glossdef>
3657 <para role="glossdeffirst">
3658<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3659 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
3660 variable indicates that these tools are not in the
3661 source tree.
3662 </para>
3663
3664 <para>
3665 When kernel tools are available in the tree, they are
3666 preferred over any externally installed tools.
3667 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
3668 variable tells the OpenEmbedded build system to prefer
3669 the installed external tools.
3670 See the
3671 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
3672 class in <filename>meta/classes</filename> to see how
3673 the variable is used.
3674 </para>
3675 </glossdef>
3676 </glossentry>
3677
3678 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
3679 <info>
3680 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
3681 </info>
3682 <glossdef>
3683 <para role="glossdeffirst">
3684<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3685 When inheriting the
3686 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
3687 class, this variable points to the source tree, which is
3688 outside of the OpenEmbedded build system.
3689 When set, this variable sets the
3690 <link linkend='var-S'><filename>S</filename></link>
3691 variable, which is what the OpenEmbedded build system uses
3692 to locate unpacked recipe source code.
3693 </para>
3694
3695 <para>
3696 For more information on
3697 <filename>externalsrc.bbclass</filename>, see the
3698 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
3699 section.
3700 You can also find information on how to use this variable
3701 in the
3702 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
3703 section in the Yocto Project Development Manual.
3704 </para>
3705 </glossdef>
3706 </glossentry>
3707
3708 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
3709 <info>
3710 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."
3711 </info>
3712 <glossdef>
3713 <para role="glossdeffirst">
3714<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3715 When inheriting the
3716 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
3717 class, this variable points to the directory in which the
3718 recipe's source code is built, which is outside of the
3719 OpenEmbedded build system.
3720 When set, this variable sets the
3721 <link linkend='var-B'><filename>B</filename></link>
3722 variable, which is what the OpenEmbedded build system uses
3723 to locate the Build Directory.
3724 </para>
3725
3726 <para>
3727 For more information on
3728 <filename>externalsrc.bbclass</filename>, see the
3729 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
3730 section.
3731 You can also find information on how to use this variable
3732 in the
3733 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
3734 section in the Yocto Project Development Manual.
3735 </para>
3736 </glossdef>
3737 </glossentry>
3738
3739 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
3740 <info>
3741 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
3742 </info>
3743 <glossdef>
3744 <para role="glossdeffirst">
3745<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3746 For recipes inheriting the
3747 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
3748 class, you can use <filename>EXTRA_AUTORECONF</filename> to
3749 specify extra options to pass to the
3750 <filename>autoreconf</filename> command that is
3751 executed during the
3752 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3753 task.
3754 </para>
3755
3756 <para>
3757 The default value is "--exclude=autopoint".
3758 </para>
3759 </glossdef>
3760 </glossentry>
3761
3762 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
3763 <info>
3764 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."
3765 </info>
3766 <glossdef>
3767 <para role="glossdeffirst">
3768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3769 A list of additional features to include in an image.
3770 When listing more than one feature, separate them with
3771 a space.
3772 </para>
3773
3774 <para>
3775 Typically, you configure this variable in your
3776 <filename>local.conf</filename> file, which is found in the
3777 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
3778 Although you can use this variable from within a recipe,
3779 best practices dictate that you do not.
3780 <note>
3781 To enable primary features from within the image
3782 recipe, use the
3783 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
3784 variable.
3785 </note>
3786 </para>
3787
3788 <para>
3789 Here are some examples of features you can add:
3790 <literallayout class='monospaced'>
3791"dbg-pkgs" - Adds -dbg packages for all installed packages
3792 including symbol information for debugging and
3793 profiling.
3794
3795"debug-tweaks" - Makes an image suitable for debugging.
3796 For example, allows root logins without
3797 passwords and enables post-installation
3798 logging. See the 'allow-empty-password'
3799 and 'post-install-logging' features in
3800 the "<link linkend='ref-features-image'>Image Features</link>" section for
3801 more information.
3802
3803"dev-pkgs" - Adds -dev packages for all installed packages.
3804 This is useful if you want to develop against
3805 the libraries in the image.
3806
3807"read-only-rootfs" - Creates an image whose root
3808 filesystem is read-only. See the
3809 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
3810 section in the Yocto Project
3811 Development Manual for more
3812 information
3813
3814"tools-debug" - Adds debugging tools such as gdb and
3815 strace.
3816
3817"tools-profile" - Adds profiling tools such as oprofile,
3818 exmap, lttng and valgrind (x86 only).
3819
3820"tools-sdk" - Adds development tools such as gcc, make,
3821 pkgconfig and so forth.
3822
3823"tools-testapps" - Adds useful testing tools such as
3824 ts_print, aplay, arecord and so
3825 forth.
3826
3827 </literallayout>
3828 </para>
3829
3830 <para>
3831 For a complete list of image features that ships with the
3832 Yocto Project, see the
3833 "<link linkend="ref-features-image">Image Features</link>"
3834 section.
3835 </para>
3836
3837 <para>
3838 For an example that shows how to customize your image by
3839 using this variable, see the
3840 "<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>"
3841 section in the Yocto Project Development Manual.
3842 </para>
3843 </glossdef>
3844 </glossentry>
3845
3846 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
3847 <info>
3848 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."
3849 </info>
3850 <glossdef>
3851 <para role="glossdeffirst">
3852<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3853 Specifies additional options for the image
3854 creation command that has been specified in
3855 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
3856 When setting this variable, you should
3857 use an override for the associated type.
3858 Here is an example:
3859 <literallayout class='monospaced'>
3860 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
3861 </literallayout>
3862 </para>
3863 </glossdef>
3864 </glossentry>
3865
3866 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
3867 <info>
3868 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."
3869 </info>
3870 <glossdef>
3871 <para role="glossdeffirst">
3872<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3873 A list of recipes to build that do not provide packages
3874 for installing into the root filesystem.
3875 </para>
3876
3877 <para>
3878 Sometimes a recipe is required to build the final image but is not
3879 needed in the root filesystem.
3880 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
3881 list these recipes and thus specify the dependencies.
3882 A typical example is a required bootloader in a machine configuration.
3883 </para>
3884
3885 <note>
3886 To add packages to the root filesystem, see the various
3887 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
3888 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
3889 variables.
3890 </note>
3891 </glossdef>
3892 </glossentry>
3893
3894 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
3895 <info>
3896 EXTRA_OECMAKE[doc] = "Additional cmake options."
3897 </info>
3898 <glossdef>
3899 <para role="glossdeffirst">
3900<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3901 Additional <filename>cmake</filename> options.
3902 </para>
3903 </glossdef>
3904 </glossentry>
3905
3906 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
3907 <info>
3908 EXTRA_OECONF[doc] = "Additional configure script options."
3909 </info>
3910 <glossdef>
3911 <para role="glossdeffirst">
3912<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3913 Additional <filename>configure</filename> script options.
3914 </para>
3915 </glossdef>
3916 </glossentry>
3917
3918 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
3919 <info>
3920 EXTRA_OEMAKE[doc] = "Additional GNU make options."
3921 </info>
3922 <glossdef>
3923 <para role="glossdeffirst">
3924<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3925 Additional GNU <filename>make</filename> options.
3926 </para>
3927 </glossdef>
3928 </glossentry>
3929
3930 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
3931 <info>
3932 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."
3933 </info>
3934 <glossdef>
3935 <para role="glossdeffirst">
3936<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3937 When inheriting the
3938 <link linkend='ref-classes-scons'><filename>scons</filename></link>
3939 class, this variable specifies additional configuration
3940 options you want to pass to the
3941 <filename>scons</filename> command line.
3942 </para>
3943 </glossdef>
3944 </glossentry>
3945
3946 <glossentry id='var-EXTRA_QMAKEVARS_POST'><glossterm>EXTRA_QMAKEVARS_POST</glossterm>
3947 <info>
3948 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."
3949 </info>
3950 <glossdef>
3951 <para role="glossdeffirst">
3952<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3953 Configuration variables or options you want to pass to
3954 <filename>qmake</filename>.
3955 Use this variable when the arguments need to be after the
3956 <filename>.pro</filename> file list on the command line.
3957 </para>
3958
3959 <para>
3960 This variable is used with recipes that inherit the
3961 <link linkend='ref-classes-qmake*'><filename>qmake_base</filename></link>
3962 class or other classes that inherit
3963 <filename>qmake_base</filename>.
3964 </para>
3965 </glossdef>
3966 </glossentry>
3967
3968 <glossentry id='var-EXTRA_QMAKEVARS_PRE'><glossterm>EXTRA_QMAKEVARS_PRE</glossterm>
3969 <info>
3970 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."
3971 </info>
3972 <glossdef>
3973 <para role="glossdeffirst">
3974<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3975 Configuration variables or options you want to pass to
3976 <filename>qmake</filename>.
3977 Use this variable when the arguments need to be before the
3978 <filename>.pro</filename> file list on the command line.
3979 </para>
3980
3981 <para>
3982 This variable is used with recipes that inherit the
3983 <link linkend='ref-classes-qmake*'><filename>qmake_base</filename></link>
3984 class or other classes that inherit
3985 <filename>qmake_base</filename>.
3986 </para>
3987 </glossdef>
3988 </glossentry>
3989
3990 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
3991 <info>
3992 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
3993 </info>
3994 <glossdef>
3995 <para role="glossdeffirst">
3996<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3997 When inheriting the
3998 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
3999 class, this variable provides image level user and group
4000 operations.
4001 This is a more global method of providing user and group
4002 configuration as compared to using the
4003 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4004 class, which ties user and group configurations to a
4005 specific recipe.
4006 </para>
4007
4008 <para>
4009 The set list of commands you can configure using the
4010 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4011 <filename>extrausers</filename> class.
4012 These commands map to the normal Unix commands of the same
4013 names:
4014 <literallayout class='monospaced'>
4015 # EXTRA_USERS_PARAMS = "\
4016 # useradd -p '' tester; \
4017 # groupadd developers; \
4018 # userdel nobody; \
4019 # groupdel -g video; \
4020 # groupmod -g 1020 developers; \
4021 # usermod -s /bin/sh tester; \
4022 # "
4023 </literallayout>
4024 </para>
4025 </glossdef>
4026 </glossentry>
4027
4028 </glossdiv>
4029
4030 <glossdiv id='var-glossary-f'><title>F</title>
4031
4032 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4033 <info>
4034 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."
4035 </info>
4036 <glossdef>
4037 <para role="glossdeffirst">
4038<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4039 Defines one or more packages to include in an image when
4040 a specific item is included in
4041 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4042 When setting the value, <filename>FEATURE_PACKAGES</filename>
4043 should have the name of the feature item as an override.
4044 Here is an example:
4045 <literallayout class='monospaced'>
4046 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4047 </literallayout>
4048 </para>
4049
4050 <para>
4051 In this example, if "widget" were added to
4052 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4053 <replaceable>package2</replaceable> would be included in the image.
4054 <note>
4055 Packages installed by features defined through
4056 <filename>FEATURE_PACKAGES</filename> are often package
4057 groups.
4058 While similarly named, you should not confuse the
4059 <filename>FEATURE_PACKAGES</filename> variable with
4060 package groups, which are discussed elsewhere in the
4061 documentation.
4062 </note>
4063 </para>
4064 </glossdef>
4065 </glossentry>
4066
4067 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4068 <info>
4069 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."
4070 </info>
4071 <glossdef>
4072 <para role="glossdeffirst">
4073<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4074 Points to the base URL of the server and location within
4075 the document-root that provides the metadata and
4076 packages required by OPKG to support runtime package
4077 management of IPK packages.
4078 You set this variable in your
4079 <filename>local.conf</filename> file.
4080 </para>
4081
4082 <para>
4083 Consider the following example:
4084 <literallayout class='monospaced'>
4085 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4086 </literallayout>
4087 This example assumes you are serving your packages over
4088 HTTP and your databases are located in a directory
4089 named <filename>BOARD-dir</filename>, which is underneath
4090 your HTTP server's document-root.
4091 In this case, the OpenEmbedded build system generates a set
4092 of configuration files for you in your target that work
4093 with the feed.
4094 </para>
4095 </glossdef>
4096 </glossentry>
4097
4098 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4099 <info>
4100 FILES[doc] = "The list of directories or files that are placed in packages."
4101 </info>
4102 <glossdef>
4103 <para role="glossdeffirst">
4104<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4105 The list of directories or files that are placed in packages.
4106 </para>
4107
4108 <para>
4109 To use the <filename>FILES</filename> variable, provide a
4110 package name override that identifies the resulting package.
4111 Then, provide a space-separated list of files or paths
4112 that identify the files you want included as part of the
4113 resulting package.
4114 Here is an example:
4115 <literallayout class='monospaced'>
4116 FILES_${PN} += "${bindir}/mydir1/ ${bindir}/mydir2/myfile"
4117 </literallayout>
4118 </para>
4119
4120 <note>
4121 When specifying paths as part of the
4122 <filename>FILES</filename> variable, it is good practice
4123 to use appropriate path variables.
4124 For example, use <filename>${sysconfdir}</filename> rather
4125 than <filename>/etc</filename>, or
4126 <filename>${bindir}</filename> rather than
4127 <filename>/usr/bin</filename>.
4128 You can find a list of these variables at the top of the
4129 <filename>meta/conf/bitbake.conf</filename> file in the
4130 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
4131 </note>
4132
4133 <para>
4134 If some of the files you provide with the
4135 <filename>FILES</filename> variable are editable and you
4136 know they should not be overwritten during the package
4137 update process by the Package Management System (PMS), you
4138 can identify these files so that the PMS will not
4139 overwrite them.
4140 See the
4141 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4142 variable for information on how to identify these files to
4143 the PMS.
4144 </para>
4145
4146 </glossdef>
4147 </glossentry>
4148
4149 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4150 <info>
4151 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4152 </info>
4153 <glossdef>
4154 <para role="glossdeffirst">
4155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4156 Defines the file specification to match
4157 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4158 In other words, <filename>FILES_SOLIBSDEV</filename>
4159 defines the full path name of the development symbolic link
4160 (symlink) for shared libraries on the target platform.
4161 </para>
4162
4163 <para>
4164 The following statement from the
4165 <filename>bitbake.conf</filename> shows how it is set:
4166 <literallayout class='monospaced'>
4167 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4168 </literallayout>
4169 </para>
4170 </glossdef>
4171 </glossentry>
4172
4173 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4174 <info>
4175 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4176 </info>
4177 <glossdef>
4178 <para role="glossdeffirst">
4179<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4180 Extends the search path the OpenEmbedded build system uses
4181 when looking for files and patches as it processes recipes
4182 and append files.
4183 The default directories BitBake uses when it processes
4184 recipes are initially defined by the
4185 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4186 variable.
4187 You can extend <filename>FILESPATH</filename> variable
4188 by using <filename>FILESEXTRAPATHS</filename>.
4189 </para>
4190
4191 <para>
4192 Best practices dictate that you accomplish this by using
4193 <filename>FILESEXTRAPATHS</filename> from within a
4194 <filename>.bbappend</filename> file and that you prepend
4195 paths as follows:
4196 <literallayout class='monospaced'>
4197 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4198 </literallayout>
4199 In the above example, the build system first looks for files
4200 in a directory that has the same name as the corresponding
4201 append file.
4202 <note>
4203 <para>When extending <filename>FILESEXTRAPATHS</filename>,
4204 be sure to use the immediate expansion
4205 (<filename>:=</filename>) operator.
4206 Immediate expansion makes sure that BitBake evaluates
4207 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4208 at the time the directive is encountered rather than at
4209 some later time when expansion might result in a
4210 directory that does not contain the files you need.
4211 </para>
4212 <para>Also, include the trailing separating colon
4213 character if you are prepending.
4214 The trailing colon character is necessary because you
4215 are directing BitBake to extend the path by prepending
4216 directories to the search path.</para>
4217 </note>
4218 Here is another common use:
4219 <literallayout class='monospaced'>
4220 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4221 </literallayout>
4222 In this example, the build system extends the
4223 <filename>FILESPATH</filename> variable to include a
4224 directory named <filename>files</filename> that is in the
4225 same directory as the corresponding append file.
4226 </para>
4227
4228 <para>
4229 Here is a final example that specifically adds three paths:
4230 <literallayout class='monospaced'>
4231 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4232 </literallayout>
4233 </para>
4234
4235 <para>
4236 By prepending paths in <filename>.bbappend</filename>
4237 files, you allow multiple append files that reside in
4238 different layers but are used for the same recipe to
4239 correctly extend the path.
4240 </para>
4241 </glossdef>
4242 </glossentry>
4243
4244 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4245 <info>
4246 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4247 </info>
4248 <glossdef>
4249 <para role="glossdeffirst">
4250<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4251 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4252 used by the OpenEmbedded build system for creating
4253 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
4254 You can find more information on how overrides are handled
4255 in the
4256 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake Manual</ulink>.
4257 </para>
4258
4259 <para>
4260 By default, the <filename>FILESOVERRIDES</filename>
4261 variable is defined as:
4262 <literallayout class='monospaced'>
4263 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4264 </literallayout>
4265
4266 <note>
4267 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4268 variable.
4269 The values match up with expected overrides and are
4270 used in an expected manner by the build system.
4271 </note>
4272 </para>
4273 </glossdef>
4274 </glossentry>
4275
4276 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4277 <info>
4278 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."
4279 </info>
4280 <glossdef>
4281 <para role="glossdeffirst">
4282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4283 The default set of directories the OpenEmbedded build system
4284 uses when searching for patches and files.
4285 During the build process, BitBake searches each directory in
4286 <filename>FILESPATH</filename> in the specified order when
4287 looking for files and patches specified by each
4288 <filename>file://</filename> URI in a recipe.
4289 </para>
4290
4291 <para>
4292 The default value for the <filename>FILESPATH</filename>
4293 variable is defined in the <filename>base.bbclass</filename>
4294 class found in <filename>meta/classes</filename> in the
4295 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
4296 <literallayout class='monospaced'>
4297 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4298 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4299 </literallayout>
4300 <note>
4301 Do not hand-edit the <filename>FILESPATH</filename>
4302 variable.
4303 If you want the build system to look in directories
4304 other than the defaults, extend the
4305 <filename>FILESPATH</filename> variable by using the
4306 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4307 variable.
4308 </note>
4309 Be aware that the default <filename>FILESPATH</filename>
4310 directories do not map to directories in custom layers
4311 where append files (<filename>.bbappend</filename>)
4312 are used.
4313 If you want the build system to find patches or files
4314 that reside with your append files, you need to extend
4315 the <filename>FILESPATH</filename> variable by using
4316 the
4317 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4318 variable.
4319 </para>
4320 </glossdef>
4321 </glossentry>
4322
4323 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
4324 <info>
4325 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
4326 </info>
4327 <glossdef>
4328 <para role="glossdeffirst">
4329<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4330 Allows you to define your own file permissions settings table as part of
4331 your configuration for the packaging process.
4332 For example, suppose you need a consistent set of custom permissions for
4333 a set of groups and users across an entire work project.
4334 It is best to do this in the packages themselves but this is not always
4335 possible.
4336 </para>
4337
4338 <para>
4339 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
4340 is located in the <filename>meta/files</filename> folder in the
4341 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
4342 If you create your own file permissions setting table, you should place it in your
4343 layer or the distro's layer.
4344 </para>
4345
4346 <para>
4347 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
4348 <filename>conf/local.conf</filename> file, which is found in the
4349 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, to
4350 point to your custom <filename>fs-perms.txt</filename>.
4351 You can specify more than a single file permissions setting table.
4352 The paths you specify to these files must be defined within the
4353 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
4354 </para>
4355
4356 <para>
4357 For guidance on how to create your own file permissions settings table file,
4358 examine the existing <filename>fs-perms.txt</filename>.
4359 </para>
4360 </glossdef>
4361 </glossentry>
4362
4363 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
4364 <info>
4365 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'."
4366 </info>
4367 <glossdef>
4368 <para role="glossdeffirst">
4369<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4370 When inheriting the
4371 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4372 class, this variable specifies the runtime dependencies
4373 for font packages.
4374 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
4375 is set to "fontconfig-utils".
4376 </para>
4377 </glossdef>
4378 </glossentry>
4379
4380 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
4381 <info>
4382 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
4383 </info>
4384 <glossdef>
4385 <para role="glossdeffirst">
4386<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4387 When inheriting the
4388 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4389 class, this variable identifies packages containing font
4390 files that need to be cached by Fontconfig.
4391 By default, the <filename>fontcache</filename> class assumes
4392 that fonts are in the recipe's main package
4393 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
4394 Use this variable if fonts you need are in a package
4395 other than that main package.
4396 </para>
4397 </glossdef>
4398 </glossentry>
4399
4400 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
4401 <info>
4402 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'."
4403 </info>
4404 <glossdef>
4405 <para role="glossdeffirst">
4406<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4407 The options to pass in
4408 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
4409 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
4410 when compiling an optimized system.
4411 This variable defaults to
4412 "-O2 -pipe ${DEBUG_FLAGS}".
4413 </para>
4414 </glossdef>
4415 </glossentry>
4416 </glossdiv>
4417
4418 <glossdiv id='var-glossary-g'><title>G</title>
4419
4420 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
4421 <info>
4422 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
4423 </info>
4424 <glossdef>
4425 <para role="glossdeffirst">
4426<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4427 The minimal command and arguments to run the GNU Debugger.
4428 </para>
4429 </glossdef>
4430 </glossentry>
4431
4432 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
4433 <info>
4434 GITDIR[doc] = "The directory where Git clones will be stored."
4435 </info>
4436 <glossdef>
4437 <para role="glossdeffirst">
4438<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4439 The directory in which a local copy of a Git repository
4440 is stored when it is cloned.
4441 </para>
4442 </glossdef>
4443 </glossentry>
4444
4445 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
4446 <info>
4447 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."
4448 </info>
4449 <glossdef>
4450 <para role="glossdeffirst">
4451<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4452 Specifies the list of GLIBC locales to generate should you
4453 not wish generate all LIBC locals, which can be time
4454 consuming.
4455 <note>
4456 If you specifically remove the locale
4457 <filename>en_US.UTF-8</filename>, you must set
4458 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
4459 appropriately.
4460 </note>
4461 </para>
4462
4463 <para>
4464 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
4465 in your <filename>local.conf</filename> file.
4466 By default, all locales are generated.
4467 <literallayout class='monospaced'>
4468 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
4469 </literallayout>
4470 </para>
4471 </glossdef>
4472 </glossentry>
4473
4474 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
4475 <info>
4476 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."
4477 </info>
4478 <glossdef>
4479 <para role="glossdeffirst">
4480<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4481 When inheriting the
4482 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4483 class, this variable
4484 specifies for a package what parameters should be passed
4485 to the <filename>groupadd</filename> command
4486 if you wish to add a group to the system when the package
4487 is installed.
4488 </para>
4489
4490 <para>
4491 Here is an example from the <filename>dbus</filename>
4492 recipe:
4493 <literallayout class='monospaced'>
4494 GROUPADD_PARAM_${PN} = "-r netdev"
4495 </literallayout>
4496 For information on the standard Linux shell command
4497 <filename>groupadd</filename>, see
4498 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
4499 </para>
4500 </glossdef>
4501 </glossentry>
4502
4503 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
4504 <info>
4505 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."
4506 </info>
4507 <glossdef>
4508 <para role="glossdeffirst">
4509<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4510 When inheriting the
4511 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4512 class, this variable
4513 specifies for a package what parameters should be passed
4514 to the <filename>groupmems</filename> command
4515 if you wish to modify the members of a group when the
4516 package is installed.
4517 </para>
4518
4519 <para>
4520 For information on the standard Linux shell command
4521 <filename>groupmems</filename>, see
4522 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
4523 </para>
4524 </glossdef>
4525 </glossentry>
4526
4527 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
4528 <info>
4529 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
4530 </info>
4531 <glossdef>
4532 <para role="glossdeffirst">
4533<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4534 Configures the GNU GRand Unified Bootloader (GRUB) to have
4535 graphics and serial in the boot menu.
4536 Set this variable to "1" in your
4537 <filename>local.conf</filename> or distribution
4538 configuration file to enable graphics and serial
4539 in the menu.
4540 </para>
4541
4542 <para>
4543 See the
4544 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4545 class for more information on how this variable is used.
4546 </para>
4547 </glossdef>
4548 </glossentry>
4549
4550 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
4551 <info>
4552 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
4553 </info>
4554 <glossdef>
4555 <para role="glossdeffirst">
4556<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4557 Additional options to add to the GNU GRand Unified
4558 Bootloader (GRUB) configuration.
4559 Use a semi-colon character (<filename>;</filename>) to
4560 separate multiple options.
4561 </para>
4562
4563 <para>
4564 The <filename>GRUB_OPTS</filename> variable is optional.
4565 See the
4566 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4567 class for more information on how this variable is used.
4568 </para>
4569 </glossdef>
4570 </glossentry>
4571
4572 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
4573 <info>
4574 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
4575 </info>
4576 <glossdef>
4577 <para role="glossdeffirst">
4578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4579 Specifies the timeout before executing the default
4580 <filename>LABEL</filename> in the GNU GRand Unified
4581 Bootloader (GRUB).
4582 </para>
4583
4584 <para>
4585 The <filename>GRUB_TIMEOUT</filename> variable is optional.
4586 See the
4587 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4588 class for more information on how this variable is used.
4589 </para>
4590 </glossdef>
4591 </glossentry>
4592
4593 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
4594 <info>
4595 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."
4596 </info>
4597 <glossdef>
4598 <para role="glossdeffirst">
4599<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4600 When inheriting the
4601 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
4602 class, this variable specifies the packages that contain the
4603 GTK+ input method modules being installed when the modules
4604 are in packages other than the main package.
4605 </para>
4606 </glossdef>
4607 </glossentry>
4608
4609 <glossentry id='var-GUMMIBOOT_CFG'><glossterm>GUMMIBOOT_CFG</glossterm>
4610 <info>
4611 GUMMIBOOT_CFG[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_CFG variable specifies the configuration file that should be used."
4612 </info>
4613 <glossdef>
4614 <para role="glossdeffirst">
4615<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4616 When
4617 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4618 is set to "gummiboot", the
4619 <filename>GUMMIBOOT_CFG</filename> variable specifies the
4620 configuration file that should be used.
4621 By default, the
4622 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4623 class sets the <filename>GUMMIBOOT_CFG</filename> as
4624 follows:
4625 <literallayout class='monospaced'>
4626 GUMMIBOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
4627 </literallayout>
4628 </para>
4629
4630 <para>
4631 For information on Gummiboot, see the
4632 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4633 </para>
4634 </glossdef>
4635 </glossentry>
4636
4637 <glossentry id='var-GUMMIBOOT_ENTRIES'><glossterm>GUMMIBOOT_ENTRIES</glossterm>
4638 <info>
4639 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."
4640 </info>
4641 <glossdef>
4642 <para role="glossdeffirst">
4643<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4644 When
4645 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4646 is set to "gummiboot", the
4647 <filename>GUMMIBOOT_ENTRIES</filename> variable specifies
4648 a list of entry files
4649 (<filename>*.conf</filename>) to be installed
4650 containing one boot entry per file.
4651 By default, the
4652 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4653 class sets the <filename>GUMMIBOOT_ENTRIES</filename> as
4654 follows:
4655 <literallayout class='monospaced'>
4656 GUMMIBOOT_ENTRIES ?= ""
4657 </literallayout>
4658 </para>
4659
4660 <para>
4661 For information on Gummiboot, see the
4662 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4663 </para>
4664 </glossdef>
4665 </glossentry>
4666
4667 <glossentry id='var-GUMMIBOOT_TIMEOUT'><glossterm>GUMMIBOOT_TIMEOUT</glossterm>
4668 <info>
4669 GUMMIBOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
4670 </info>
4671 <glossdef>
4672 <para role="glossdeffirst">
4673<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4674 When
4675 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4676 is set to "gummiboot", the
4677 <filename>GUMMIBOOT_TIMEOUT</filename> variable specifies
4678 the boot menu timeout in seconds.
4679 By default, the
4680 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4681 class sets the <filename>GUMMIBOOT_TIMEOUT</filename> as
4682 follows:
4683 <literallayout class='monospaced'>
4684 GUMMIBOOT_TIMEOUT ?= "10"
4685 </literallayout>
4686 </para>
4687
4688 <para>
4689 For information on Gummiboot, see the
4690 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4691 </para>
4692 </glossdef>
4693 </glossentry>
4694
4695 </glossdiv>
4696
4697 <glossdiv id='var-glossary-h'><title>H</title>
4698
4699 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
4700 <info>
4701 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
4702 </info>
4703 <glossdef>
4704 <para role="glossdeffirst">
4705<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4706 Website where more information about the software the recipe is building
4707 can be found.
4708 </para>
4709 </glossdef>
4710 </glossentry>
4711
4712 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
4713 <info>
4714 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
4715
4716 </info>
4717 <glossdef>
4718 <para role="glossdeffirst">
4719<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4720 The name of the target architecture, which is normally
4721 the same as
4722 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
4723 The OpenEmbedded build system supports many
4724 architectures.
4725 Here is an example list of architectures supported.
4726 This list is by no means complete as the architecture
4727 is configurable:
4728 <literallayout class='monospaced'>
4729 arm
4730 i586
4731 x86_64
4732 powerpc
4733 powerpc64
4734 mips
4735 mipsel
4736 </literallayout>
4737 </para>
4738 </glossdef>
4739 </glossentry>
4740
4741 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
4742 <info>
4743 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
4744 </info>
4745 <glossdef>
4746 <para role="glossdeffirst">
4747<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4748 Specifies architecture-specific compiler flags that are
4749 passed to the C compiler.
4750 </para>
4751
4752 <para>
4753 Default initialization for <filename>HOST_CC_ARCH</filename>
4754 varies depending on what is being built:
4755 <itemizedlist>
4756 <listitem><para>
4757 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
4758 when building for the target
4759 </para></listitem>
4760 <listitem><para>
4761 <filename>BUILD_CC_ARCH</filename>
4762 when building for the build host (i.e.
4763 <filename>native</filename>)
4764 </para></listitem>
4765 <listitem><para>
4766 <filename>BUILDSDK_CC_ARCH</filename>
4767 when building for an SDK (i.e.
4768 <filename>nativesdk</filename>)
4769 </para></listitem>
4770 </itemizedlist>
4771 </para>
4772 </glossdef>
4773 </glossentry>
4774
4775 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
4776 <info>
4777 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
4778 </info>
4779 <glossdef>
4780 <para role="glossdeffirst">
4781<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4782 Specifies the name of the target operating system, which
4783 is normally the same as the
4784 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
4785 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
4786 to "linux-uclibc" for <filename>uclibc</filename>.
4787 For ARM/EABI targets, there are also "linux-gnueabi" and
4788 "linux-uclibc-gnueabi" values possible.
4789 </para>
4790 </glossdef>
4791 </glossentry>
4792
4793 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
4794 <info>
4795 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
4796 </info>
4797 <glossdef>
4798 <para role="glossdeffirst">
4799<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4800 Specifies the prefix for the cross-compile toolchain.
4801 <filename>HOST_PREFIX</filename> is normally the same as
4802 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
4803 </para>
4804 </glossdef>
4805 </glossentry>
4806
4807 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
4808 <info>
4809 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."
4810 </info>
4811 <glossdef>
4812 <para role="glossdeffirst">
4813<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4814 Specifies the system, including the architecture and the
4815 operating system, for which the build is occurring
4816 in the context of the current recipe.
4817 </para>
4818
4819 <para>
4820 The OpenEmbedded build system automatically sets this
4821 variable based on
4822 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
4823 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
4824 and
4825 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
4826 variables.
4827 <note>
4828 You do not need to set the variable yourself.
4829 </note>
4830 </para>
4831
4832 <para>
4833 Consider these two examples:
4834 <itemizedlist>
4835 <listitem><para>Given a native recipe on a 32-bit
4836 x86 machine running Linux, the value is
4837 "i686-linux".
4838 </para></listitem>
4839 <listitem><para>Given a recipe being built for a
4840 little-endian MIPS target running Linux,
4841 the value might be "mipsel-linux".
4842 </para></listitem>
4843 </itemizedlist>
4844 </para>
4845 </glossdef>
4846 </glossentry>
4847
4848 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
4849 <info>
4850 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
4851 </info>
4852 <glossdef>
4853 <para role="glossdeffirst">
4854<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4855 Specifies the name of the vendor.
4856 <filename>HOST_VENDOR</filename> is normally the same as
4857 <link linkend='var-TARGET_PREFIX'><filename>TARGET_VENDOR</filename></link>.
4858 </para>
4859 </glossdef>
4860 </glossentry>
4861
4862 </glossdiv>
4863
4864 <glossdiv id='var-glossary-i'><title>I</title>
4865
4866 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
4867 <info>
4868 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
4869 </info>
4870 <glossdef>
4871 <para role="glossdeffirst">
4872<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4873 Disables or enables the <filename>icecc</filename>
4874 (Icecream) function.
4875 For more information on this function and best practices
4876 for using this variable, see the
4877 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
4878 section.
4879 </para>
4880
4881 <para>
4882 Setting this variable to "1" in your
4883 <filename>local.conf</filename> disables the function:
4884 <literallayout class='monospaced'>
4885 ICECC_DISABLED ??= "1"
4886 </literallayout>
4887 To enable the function, set the variable as follows:
4888 <literallayout class='monospaced'>
4889 ICECC_DISABLED = ""
4890 </literallayout>
4891 </para>
4892 </glossdef>
4893 </glossentry>
4894
4895 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
4896 <info>
4897 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
4898 </info>
4899 <glossdef>
4900 <para role="glossdeffirst">
4901<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4902 Points to the <filename>icecc-create-env</filename> script
4903 that you provide.
4904 This variable is used by the
4905 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4906 class.
4907 You set this variable in your
4908 <filename>local.conf</filename> file.
4909 </para>
4910
4911 <para>
4912 If you do not point to a script that you provide, the
4913 OpenEmbedded build system uses the default script provided
4914 by the <filename>icecc-create-env.bb</filename> recipe,
4915 which is a modified version and not the one that comes with
4916 <filename>icecc</filename>.
4917 </para>
4918 </glossdef>
4919 </glossentry>
4920
4921 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
4922 <info>
4923 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
4924 </info>
4925 <glossdef>
4926 <para role="glossdeffirst">
4927<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4928 Extra options passed to the <filename>make</filename>
4929 command during the
4930 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
4931 task that specify parallel compilation.
4932 This variable usually takes the form of
4933 "-j <replaceable>x</replaceable>", where
4934 <replaceable>x</replaceable> represents the maximum
4935 number of parallel threads <filename>make</filename> can
4936 run.
4937 <note>
4938 The options passed affect builds on all enabled
4939 machines on the network, which are machines running the
4940 <filename>iceccd</filename> daemon.
4941 </note>
4942 </para>
4943
4944 <para>
4945 If your enabled machines support multiple cores,
4946 coming up with the maximum number of parallel threads
4947 that gives you the best performance could take some
4948 experimentation since machine speed, network lag,
4949 available memory, and existing machine loads can all
4950 affect build time.
4951 Consequently, unlike the
4952 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4953 variable, there is no rule-of-thumb for setting
4954 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
4955 optimal performance.
4956 </para>
4957
4958 <para>
4959 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
4960 the build system does not use it (i.e. the system does
4961 not detect and assign the number of cores as is done with
4962 <filename>PARALLEL_MAKE</filename>).
4963 </para>
4964 </glossdef>
4965 </glossentry>
4966
4967 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
4968 <info>
4969 ICECC_PATH[doc] = "The location of the icecc binary."
4970 </info>
4971 <glossdef>
4972 <para role="glossdeffirst">
4973<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4974 The location of the <filename>icecc</filename> binary.
4975 You can set this variable in your
4976 <filename>local.conf</filename> file.
4977 If your <filename>local.conf</filename> file does not define
4978 this variable, the
4979 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4980 class attempts to define it by locating
4981 <filename>icecc</filename> using <filename>which</filename>.
4982 </para>
4983 </glossdef>
4984 </glossentry>
4985
4986 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
4987 <info>
4988 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
4989 </info>
4990 <glossdef>
4991 <para role="glossdeffirst">
4992<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4993 Identifies user classes that you do not want the
4994 Icecream distributed compile support to consider.
4995 This variable is used by the
4996 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4997 class.
4998 You set this variable in your
4999 <filename>local.conf</filename> file.
5000 </para>
5001
5002 <para>
5003 When you list classes using this variable, you are
5004 "blacklisting" them from distributed compilation across
5005 remote hosts.
5006 Any classes you list will be distributed and compiled
5007 locally.
5008 </para>
5009 </glossdef>
5010 </glossentry>
5011
5012 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5013 <info>
5014 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5015 </info>
5016 <glossdef>
5017 <para role="glossdeffirst">
5018<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5019 Identifies user recipes that you do not want the
5020 Icecream distributed compile support to consider.
5021 This variable is used by the
5022 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5023 class.
5024 You set this variable in your
5025 <filename>local.conf</filename> file.
5026 </para>
5027
5028 <para>
5029 When you list packages using this variable, you are
5030 "blacklisting" them from distributed compilation across
5031 remote hosts.
5032 Any packages you list will be distributed and compiled
5033 locally.
5034 </para>
5035 </glossdef>
5036 </glossentry>
5037
5038 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5039 <info>
5040 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."
5041 </info>
5042 <glossdef>
5043 <para role="glossdeffirst">
5044<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5045 Identifies user recipes that use an empty
5046 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5047 variable that you want to force remote distributed
5048 compilation on using the Icecream distributed compile
5049 support.
5050 This variable is used by the
5051 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5052 class.
5053 You set this variable in your
5054 <filename>local.conf</filename> file.
5055 </para>
5056 </glossdef>
5057 </glossentry>
5058
5059 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5060 <info>
5061 IMAGE_BASENAME[doc] = "The base name of image output files."
5062 </info>
5063 <glossdef>
5064 <para role="glossdeffirst">
5065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5066 The base name of image output files.
5067 This variable defaults to the recipe name
5068 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5069 </para>
5070 </glossdef>
5071 </glossentry>
5072
5073 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5074 <info>
5075 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)."
5076 </info>
5077 <glossdef>
5078 <para role="glossdeffirst">
5079<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5080 A space-separated list of files installed into the
5081 boot partition when preparing an image using the
5082 <filename>wic</filename> tool with the
5083 <filename>bootimg-partition</filename> source
5084 plugin.
5085 By default, the files are installed under
5086 the same name as the source files.
5087 To change the installed name, separate it from the
5088 original name with a semi-colon (;).
5089 Source files need to be located in
5090 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5091 Here are two examples:
5092
5093 <literallayout class="monospaced">
5094 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5095 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5096 </literallayout>
5097 </para>
5098
5099 <para>
5100 Alternatively, source files can be picked up using
5101 a glob pattern.
5102 In this case, the destination file
5103 will have the same name as the base name of the source file
5104 path.
5105 To install files into a directory within the
5106 target location, pass its name after a semi-colon
5107 (;).
5108 Here are two examples:
5109 <literallayout class="monospaced">
5110 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5111 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5112 </literallayout>
5113 The first example installs all files from
5114 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5115 into the root of the target partition.
5116 The second example installs the same files into a
5117 <filename>boot</filename> directory within the
5118 target partition.
5119 </para>
5120 </glossdef>
5121 </glossentry>
5122
5123 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5124 <info>
5125 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5126 </info>
5127 <glossdef>
5128 <para role="glossdeffirst">
5129<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5130 A list of classes that all images should inherit.
5131 You typically use this variable to specify the list of
5132 classes that register the different types of images
5133 the OpenEmbedded build system creates.
5134 </para>
5135
5136 <para>
5137 The default value for <filename>IMAGE_CLASSES</filename> is
5138 <filename>image_types</filename>.
5139 You can set this variable in your
5140 <filename>local.conf</filename> or in a distribution
5141 configuration file.
5142 </para>
5143
5144 <para>
5145 For more information, see
5146 <filename>meta/classes/image_types.bbclass</filename> in the
5147 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
5148 </para>
5149 </glossdef>
5150 </glossentry>
5151
5152 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5153 <info>
5154 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)."
5155 </info>
5156 <glossdef>
5157 <para role="glossdeffirst">
5158<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5159 Specifies the command to create the image file for a
5160 specific image type, which corresponds to the value set
5161 set in
5162 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5163 (e.g. <filename>ext3</filename>,
5164 <filename>btrfs</filename>, and so forth).
5165 When setting this variable, you should use
5166 an override for the associated type.
5167 Here is an example:
5168 <literallayout class='monospaced'>
5169 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5170 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5171 ${EXTRA_IMAGECMD}"
5172 </literallayout>
5173 </para>
5174
5175 <para>
5176 You typically do not need to set this variable unless
5177 you are adding support for a new image type.
5178 For more examples on how to set this variable, see the
5179 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5180 class file, which is
5181 <filename>meta/classes/image_types.bbclass</filename>.
5182 </para>
5183 </glossdef>
5184 </glossentry>
5185
5186 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5187 <info>
5188 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."
5189 </info>
5190 <glossdef>
5191 <para role="glossdeffirst">
5192<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5193 Specifies one or more files that contain custom device
5194 tables that are passed to the
5195 <filename>makedevs</filename> command as part of creating
5196 an image.
5197 These files list basic device nodes that should be
5198 created under <filename>/dev</filename> within the image.
5199 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5200 <filename>files/device_table-minimal.txt</filename> is
5201 used, which is located by
5202 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5203 For details on how you should write device table files,
5204 see <filename>meta/files/device_table-minimal.txt</filename>
5205 as an example.
5206 </para>
5207 </glossdef>
5208 </glossentry>
5209
5210 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5211 <info>
5212 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5213 </info>
5214 <glossdef>
5215 <para role="glossdeffirst">
5216<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5217 The primary list of features to include in an image.
5218 Typically, you configure this variable in an image recipe.
5219 Although you can use this variable from your
5220 <filename>local.conf</filename> file, which is found in the
5221 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
5222 best practices dictate that you do not.
5223 <note>
5224 To enable extra features from outside the image recipe,
5225 use the
5226 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5227 </note>
5228 </para>
5229
5230 <para>
5231 For a list of image features that ships with the Yocto
5232 Project, see the
5233 "<link linkend="ref-features-image">Image Features</link>"
5234 section.
5235 </para>
5236
5237 <para>
5238 For an example that shows how to customize your image by
5239 using this variable, see the
5240 "<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>"
5241 section in the Yocto Project Development Manual.
5242 </para>
5243 </glossdef>
5244 </glossentry>
5245
5246 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5247 <info>
5248 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5249 </info>
5250 <glossdef>
5251 <para role="glossdeffirst">
5252<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5253 Specifies the formats the OpenEmbedded build system uses
5254 during the build when creating the root filesystem.
5255 For example, setting <filename>IMAGE_FSTYPES</filename>
5256 as follows causes the build system to create root
5257 filesystems using two formats: <filename>.ext3</filename>
5258 and <filename>.tar.bz2</filename>:
5259 <literallayout class='monospaced'>
5260 IMAGE_FSTYPES = "ext3 tar.bz2"
5261 </literallayout>
5262 </para>
5263
5264 <para>
5265 For the complete list of supported image formats from which
5266 you can choose, see
5267 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5268 </para>
5269
5270 <note>
5271 If you add "live" to <filename>IMAGE_FSTYPES</filename>
5272 inside an image recipe, be sure that you do so prior to the
5273 "inherit image" line of the recipe or the live image will
5274 not build.
5275 </note>
5276
5277 <note>
5278 Due to the way this variable is processed, it is not
5279 possible to update its contents using
5280 <filename>_append</filename> or
5281 <filename>_prepend</filename>. To add one or more
5282 additional options to this variable the
5283 <filename>+=</filename> operator must be used.
5284 </note>
5285 </glossdef>
5286 </glossentry>
5287
5288 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
5289 <info>
5290 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."
5291 </info>
5292 <glossdef>
5293 <para role="glossdeffirst">
5294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5295 Specifies the packages to install into an image.
5296 The <filename>IMAGE_INSTALL</filename> variable is a
5297 mechanism for an image recipe and you should use it
5298 with care to avoid ordering issues.
5299 <note>
5300 When working with an
5301 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
5302 image, do not use the <filename>IMAGE_INSTALL</filename>
5303 variable to specify packages for installation.
5304 Instead, use the
5305 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
5306 variable, which allows the initial RAM disk (initramfs)
5307 recipe to use a fixed set of packages and not be
5308 affected by <filename>IMAGE_INSTALL</filename>.
5309 </note>
5310 </para>
5311
5312 <para>
5313 Image recipes set <filename>IMAGE_INSTALL</filename>
5314 to specify the packages to install into an image through
5315 <filename>image.bbclass</filename>.
5316 Additionally, "helper" classes exist, such as
5317 <filename>core-image.bbclass</filename>, that can take
5318 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
5319 lists and turn these into auto-generated entries in
5320 <filename>IMAGE_INSTALL</filename> in addition to its
5321 default contents.
5322 </para>
5323
5324 <para>
5325 Using <filename>IMAGE_INSTALL</filename> with the
5326 <filename>+=</filename> operator from the
5327 <filename>/conf/local.conf</filename> file or from within
5328 an image recipe is not recommended as it can cause ordering
5329 issues.
5330 Since <filename>core-image.bbclass</filename> sets
5331 <filename>IMAGE_INSTALL</filename> to a default value using
5332 the <filename>?=</filename> operator, using a
5333 <filename>+=</filename> operation against
5334 <filename>IMAGE_INSTALL</filename> will result in
5335 unexpected behavior when used in
5336 <filename>conf/local.conf</filename>.
5337 Furthermore, the same operation from within an image
5338 recipe may or may not succeed depending on the specific
5339 situation.
5340 In both these cases, the behavior is contrary to how most
5341 users expect the <filename>+=</filename> operator to work.
5342 </para>
5343
5344 <para>
5345 When you use this variable, it is best to use it as follows:
5346 <literallayout class='monospaced'>
5347 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
5348 </literallayout>
5349 Be sure to include the space between the quotation character
5350 and the start of the package name or names.
5351 </para>
5352 </glossdef>
5353 </glossentry>
5354
5355 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
5356 <info>
5357 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
5358 </info>
5359 <glossdef>
5360 <para role="glossdeffirst">
5361<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5362 Specifies the list of locales to install into the image
5363 during the root filesystem construction process.
5364 The OpenEmbedded build system automatically splits locale
5365 files, which are used for localization, into separate
5366 packages.
5367 Setting the <filename>IMAGE_LINGUAS</filename> variable
5368 ensures that any locale packages that correspond to packages
5369 already selected for installation into the image are also
5370 installed.
5371 Here is an example:
5372 <literallayout class='monospaced'>
5373 IMAGE_LINGUAS = "pt-br de-de"
5374 </literallayout>
5375 </para>
5376
5377 <para>
5378 In this example, the build system ensures any Brazilian
5379 Portuguese and German locale files that correspond to
5380 packages in the image are installed (i.e.
5381 <filename>*-locale-pt-br</filename>
5382 and <filename>*-locale-de-de</filename> as well as
5383 <filename>*-locale-pt</filename>
5384 and <filename>*-locale-de</filename>, since some software
5385 packages only provide locale files by language and not by
5386 country-specific language).
5387 </para>
5388
5389 <para>
5390 See the
5391 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
5392 variable for information on generating GLIBC locales.
5393 </para>
5394 </glossdef>
5395 </glossentry>
5396
5397 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
5398 <info>
5399 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
5400 </info>
5401 <glossdef>
5402 <para role="glossdeffirst">
5403<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5404 The manifest file for the image.
5405 This file lists all the installed packages that make up
5406 the image.
5407 The file contains package information on a line-per-package
5408 basis as follows:
5409 <literallayout class='monospaced'>
5410 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
5411 </literallayout>
5412 </para>
5413
5414 <para>
5415 The
5416 <link linkend='ref-classes-image'><filename>image</filename></link>
5417 class defines the manifest file as follows:
5418 <literallayout class='monospaced'>
5419 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
5420 </literallayout>
5421 The location is derived using the
5422 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
5423 and
5424 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
5425 variables.
5426 You can find information on how the image
5427 is created in the
5428 "<link linkend='image-generation-dev-environment'>Image Generation</link>"
5429 section.
5430 </para>
5431 </glossdef>
5432 </glossentry>
5433
5434 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
5435 <info>
5436 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
5437 </info>
5438 <glossdef>
5439 <para role="glossdeffirst">
5440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5441 The name of the output image files minus the extension.
5442 This variable is derived using the
5443 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
5444 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
5445 and
5446 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
5447 variables:
5448 <literallayout class='monospaced'>
5449 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
5450 </literallayout>
5451 </para>
5452 </glossdef>
5453 </glossentry>
5454
5455 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
5456 <info>
5457 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."
5458 </info>
5459 <glossdef>
5460 <para role="glossdeffirst">
5461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5462 Defines a multiplier that the build system applies to the initial image
5463 size for cases when the multiplier times the returned disk usage value
5464 for the image is greater than the sum of
5465 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
5466 and
5467 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
5468 The result of the multiplier applied to the initial image size creates
5469 free disk space in the image as overhead.
5470 By default, the build process uses a multiplier of 1.3 for this variable.
5471 This default value results in 30% free disk space added to the image when this
5472 method is used to determine the final generated image size.
5473 You should be aware that post install scripts and the package management
5474 system uses disk space inside this overhead area.
5475 Consequently, the multiplier does not produce an image with
5476 all the theoretical free disk space.
5477 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
5478 for information on how the build system determines the overall image size.
5479 </para>
5480
5481 <para>
5482 The default 30% free disk space typically gives the image enough room to boot
5483 and allows for basic post installs while still leaving a small amount of
5484 free disk space.
5485 If 30% free space is inadequate, you can increase the default value.
5486 For example, the following setting gives you 50% free space added to the image:
5487 <literallayout class='monospaced'>
5488 IMAGE_OVERHEAD_FACTOR = "1.5"
5489 </literallayout>
5490 </para>
5491
5492 <para>
5493 Alternatively, you can ensure a specific amount of free disk space is added
5494 to the image by using the
5495 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
5496 variable.
5497 </para>
5498 </glossdef>
5499 </glossentry>
5500
5501 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
5502 <info>
5503 IMAGE_PKGTYPE[doc] = "Defines the package type (DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
5504 </info>
5505 <glossdef>
5506 <para role="glossdeffirst">
5507<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5508 Defines the package type (DEB, RPM, IPK, or TAR) used
5509 by the OpenEmbedded build system.
5510 The variable is defined appropriately by the
5511 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
5512 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
5513 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
5514 or
5515 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
5516 class.
5517 <note><title>Warning</title>
5518 The <filename>package_tar</filename> class is broken
5519 and is not supported.
5520 It is recommended that you do not use it.
5521 </note>
5522 </para>
5523
5524 <para>
5525 The
5526 <link linkend='ref-classes-populate-sdk-*'><filename>package_sdk_base</filename></link>
5527 and
5528 <link linkend='ref-classes-image'><filename>image</filename></link>
5529 classes use the <filename>IMAGE_PKGTYPE</filename> for
5530 packaging up images and SDKs.
5531 </para>
5532
5533 <para>
5534 You should not set the <filename>IMAGE_PKGTYPE</filename>
5535 manually.
5536 Rather, the variable is set indirectly through the
5537 appropriate
5538 <link linkend='ref-classes-package'><filename>package_*</filename></link>
5539 class using the
5540 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
5541 variable.
5542 The OpenEmbedded build system uses the first package type
5543 (e.g. DEB, RPM, or IPK) that appears with the variable
5544 <note>
5545 Files using the <filename>.tar</filename> format are
5546 never used as a substitute packaging format for DEB,
5547 RPM, and IPK formatted files for your image or SDK.
5548 </note>
5549 </para>
5550 </glossdef>
5551 </glossentry>
5552
5553 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
5554 <info>
5555 IMAGE_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the final image output files."
5556 </info>
5557 <glossdef>
5558 <para role="glossdeffirst">
5559<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5560 Specifies a list of functions to call once the
5561 OpenEmbedded build system has created the final image
5562 output files.
5563 You can specify functions separated by semicolons:
5564 <literallayout class='monospaced'>
5565 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
5566 </literallayout>
5567 </para>
5568
5569 <para>
5570 If you need to pass the root filesystem path to a command
5571 within the function, you can use
5572 <filename>${IMAGE_ROOTFS}</filename>, which points to
5573 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005574 See the
5575 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
5576 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005577 </para>
5578 </glossdef>
5579 </glossentry>
5580
5581 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
5582 <info>
5583 IMAGE_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the final image output files."
5584 </info>
5585 <glossdef>
5586 <para role="glossdeffirst">
5587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5588 Specifies a list of functions to call before the
5589 OpenEmbedded build system has created the final image
5590 output files.
5591 You can specify functions separated by semicolons:
5592 <literallayout class='monospaced'>
5593 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
5594 </literallayout>
5595 </para>
5596
5597 <para>
5598 If you need to pass the root filesystem path to a command
5599 within the function, you can use
5600 <filename>${IMAGE_ROOTFS}</filename>, which points to
5601 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005602 See the
5603 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
5604 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005605 </para>
5606 </glossdef>
5607 </glossentry>
5608
5609 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
5610 <info>
5611 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
5612 </info>
5613 <glossdef>
5614 <para role="glossdeffirst">
5615<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5616 The location of the root filesystem while it is under
5617 construction (i.e. during the
5618 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
5619 task).
5620 This variable is not configurable.
5621 Do not change it.
5622 </para>
5623 </glossdef>
5624 </glossentry>
5625
5626 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
5627 <info>
5628 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
5629 </info>
5630 <glossdef>
5631 <para role="glossdeffirst">
5632<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5633 Specifies the alignment for the output image file in
5634 Kbytes.
5635 If the size of the image is not a multiple of
5636 this value, then the size is rounded up to the nearest
5637 multiple of the value.
5638 The default value is "1".
5639 See
5640 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
5641 for additional information.
5642 </para>
5643 </glossdef>
5644 </glossentry>
5645
5646 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
5647 <info>
5648 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
5649 </info>
5650 <glossdef>
5651 <para role="glossdeffirst">
5652<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5653 Defines additional free disk space created in the image in Kbytes.
5654 By default, this variable is set to "0".
5655 This free disk space is added to the image after the build system determines
5656 the image size as described in
5657 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
5658 </para>
5659
5660 <para>
5661 This variable is particularly useful when you want to ensure that a
5662 specific amount of free disk space is available on a device after an image
5663 is installed and running.
5664 For example, to be sure 5 Gbytes of free disk space is available, set the
5665 variable as follows:
5666 <literallayout class='monospaced'>
5667 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
5668 </literallayout>
5669 </para>
5670
5671 <para>
5672 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
5673 of extra space with the line:
5674 <literallayout class='monospaced'>
5675 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
5676 </literallayout>
5677 </para>
5678 </glossdef>
5679 </glossentry>
5680
5681 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
5682 <info>
5683 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
5684 </info>
5685 <glossdef>
5686 <para role="glossdeffirst">
5687<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5688 Defines the size in Kbytes for the generated image.
5689 The OpenEmbedded build system determines the final size for the generated
5690 image using an algorithm that takes into account the initial disk space used
5691 for the generated image, a requested size for the image, and requested
5692 additional free disk space to be added to the image.
5693 Programatically, the build system determines the final size of the
5694 generated image as follows:
5695 <literallayout class='monospaced'>
5696 if (image-du * overhead) &lt; rootfs-size:
5697 internal-rootfs-size = rootfs-size + xspace
5698 else:
5699 internal-rootfs-size = (image-du * overhead) + xspace
5700
5701 where:
5702
5703 image-du = Returned value of the du command on
5704 the image.
5705
5706 overhead = IMAGE_OVERHEAD_FACTOR
5707
5708 rootfs-size = IMAGE_ROOTFS_SIZE
5709
5710 internal-rootfs-size = Initial root filesystem
5711 size before any modifications.
5712
5713 xspace = IMAGE_ROOTFS_EXTRA_SPACE
5714 </literallayout>
5715 </para>
5716
5717 <para>
5718 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
5719 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
5720 variables for related information.
5721<!-- In the above example, <filename>overhead</filename> is defined by the
5722 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
5723 variable, <filename>xspace</filename> is defined by the
5724 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
5725 variable, and <filename>du</filename> is the results of the disk usage command
5726 on the initially generated image. -->
5727 </para>
5728 </glossdef>
5729 </glossentry>
5730
5731 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
5732 <info>
5733 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
5734 </info>
5735 <glossdef>
5736 <para role="glossdeffirst">
5737<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5738 Specifies a dependency from one image type on another.
5739 Here is an example from the
5740 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
5741 class:
5742 <literallayout class='monospaced'>
5743 IMAGE_TYPEDEP_live = "ext3"
5744 </literallayout>
5745 </para>
5746
5747 <para>
5748 In the previous example, the variable ensures that when
5749 "live" is listed with the
5750 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
5751 variable, the OpenEmbedded build system produces an
5752 <filename>ext3</filename> image first since one of the
5753 components of the live
5754 image is an <filename>ext3</filename>
5755 formatted partition containing the root
5756 filesystem.
5757 </para>
5758 </glossdef>
5759 </glossentry>
5760
5761 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
5762 <info>
5763 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
5764 </info>
5765 <glossdef>
5766 <para role="glossdeffirst">
5767<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5768 Specifies the complete list of supported image types
5769 by default:
5770 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005771 btrfs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005772 cpio
5773 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005774 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005775 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005776 cpio.xz
5777 cramfs
5778 elf
5779 ext2
5780 ext2.bz2
5781 ext2.gz
5782 ext2.lzma
5783 ext3
5784 ext3.gz
5785 ext4
5786 ext4.gz
5787 hdddirect
5788 hddimg
5789 iso
5790 jffs2
5791 jffs2.sum
5792 multiubi
5793 qcow2
5794 squashfs
5795 squashfs-lzo
5796 squashfs-xz
5797 tar
5798 tar.bz2
5799 tar.gz
5800 tar.lz4
5801 tar.xz
5802 ubi
5803 ubifs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005804 vdi
5805 vmdk
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005806 wic
5807 wic.bz2
5808 wic.gz
5809 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005810 </literallayout>
5811 </para>
5812
5813 <para>
5814 For more information about these types of images, see
5815 <filename>meta/classes/image_types*.bbclass</filename>
5816 in the
5817 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
5818 </para>
5819 </glossdef>
5820 </glossentry>
5821
5822 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
5823 <info>
5824 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
5825 </info>
5826 <glossdef>
5827 <para role="glossdeffirst">
5828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5829 Helps define the recipe revision for recipes that share
5830 a common <filename>include</filename> file.
5831 You can think of this variable as part of the recipe revision
5832 as set from within an include file.
5833 </para>
5834
5835 <para>
5836 Suppose, for example, you have a set of recipes that
5837 are used across several projects.
5838 And, within each of those recipes the revision
5839 (its <link linkend='var-PR'><filename>PR</filename></link>
5840 value) is set accordingly.
5841 In this case, when the revision of those recipes changes,
5842 the burden is on you to find all those recipes and
5843 be sure that they get changed to reflect the updated
5844 version of the recipe.
5845 In this scenario, it can get complicated when recipes
5846 that are used in many places and provide common functionality
5847 are upgraded to a new revision.
5848 </para>
5849
5850 <para>
5851 A more efficient way of dealing with this situation is
5852 to set the <filename>INC_PR</filename> variable inside
5853 the <filename>include</filename> files that the recipes
5854 share and then expand the <filename>INC_PR</filename>
5855 variable within the recipes to help
5856 define the recipe revision.
5857 </para>
5858
5859 <para>
5860 The following provides an example that shows how to use
5861 the <filename>INC_PR</filename> variable
5862 given a common <filename>include</filename> file that
5863 defines the variable.
5864 Once the variable is defined in the
5865 <filename>include</filename> file, you can use the
5866 variable to set the <filename>PR</filename> values in
5867 each recipe.
5868 You will notice that when you set a recipe's
5869 <filename>PR</filename> you can provide more granular
5870 revisioning by appending values to the
5871 <filename>INC_PR</filename> variable:
5872 <literallayout class='monospaced'>
5873recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
5874recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
5875recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
5876recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
5877 </literallayout>
5878 The first line of the example establishes the baseline
5879 revision to be used for all recipes that use the
5880 <filename>include</filename> file.
5881 The remaining lines in the example are from individual
5882 recipes and show how the <filename>PR</filename> value
5883 is set.
5884 </para>
5885 </glossdef>
5886 </glossentry>
5887
5888 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
5889 <info>
5890 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
5891 </info>
5892 <glossdef>
5893 <para role="glossdeffirst">
5894<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5895 Specifies a space-separated list of license names
5896 (as they would appear in
5897 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
5898 that should be excluded from the build.
5899 Recipes that provide no alternatives to listed incompatible
5900 licenses are not built.
5901 Packages that are individually licensed with the specified
5902 incompatible licenses will be deleted.
5903 </para>
5904
5905 <note>
5906 This functionality is only regularly tested using
5907 the following setting:
5908 <literallayout class='monospaced'>
5909 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
5910 </literallayout>
5911 Although you can use other settings, you might be required
5912 to remove dependencies on or provide alternatives to
5913 components that are required to produce a functional system
5914 image.
5915 </note>
5916 </glossdef>
5917 </glossentry>
5918
5919 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
5920 <info>
5921 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
5922 </info>
5923 <glossdef>
5924 <para role="glossdeffirst">
5925<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5926 Prevents the default dependencies, namely the C compiler
5927 and standard C library (libc), from being added to
5928 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
5929 This variable is usually used within recipes that do not
5930 require any compilation using the C compiler.
5931 </para>
5932
5933 <para>
5934 Set the variable to "1" to prevent the default dependencies
5935 from being added.
5936 </para>
5937 </glossdef>
5938 </glossentry>
5939
5940 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
5941 <info>
5942 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
5943 </info>
5944 <glossdef>
5945 <para role="glossdeffirst">
5946<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5947 Prevents the OpenEmbedded build system from splitting
5948 out debug information during packaging.
5949 By default, the build system splits out debugging
5950 information during the
5951 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
5952 task.
5953 For more information on how debug information is split out,
5954 see the
5955 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
5956 variable.
5957 </para>
5958
5959 <para>
5960 To prevent the build system from splitting out
5961 debug information during packaging, set the
5962 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
5963 as follows:
5964 <literallayout class='monospaced'>
5965 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
5966 </literallayout>
5967 </para>
5968 </glossdef>
5969 </glossentry>
5970
5971 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
5972 <info>
5973 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
5974 </info>
5975 <glossdef>
5976 <para role="glossdeffirst">
5977<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5978 If set to "1", causes the build to not strip binaries in resulting packages.
5979 </para>
5980 </glossdef>
5981 </glossentry>
5982
5983 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
5984 <info>
5985 INHERIT[doc] = "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files."
5986 </info>
5987 <glossdef>
5988 <para role="glossdeffirst">
5989<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5990 Causes the named class to be inherited at
5991 this point during parsing.
5992 The variable is only valid in configuration files.
5993 </para>
5994 </glossdef>
5995 </glossentry>
5996
5997 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
5998 <info>
5999 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6000 </info>
6001 <glossdef>
6002 <para role="glossdeffirst">
6003<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6004 Lists classes that will be inherited at the
6005 distribution level.
6006 It is unlikely that you want to edit this variable.
6007 </para>
6008
6009 <para>
6010 The default value of the variable is set as follows in the
6011 <filename>meta/conf/distro/defaultsetup.conf</filename>
6012 file:
6013 <literallayout class='monospaced'>
6014 INHERIT_DISTRO ?= "debian devshell sstate license"
6015 </literallayout>
6016 </para>
6017 </glossdef>
6018 </glossentry>
6019
6020 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6021 <info>
6022 INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM disk (initramfs), which is used during boot."
6023 </info>
6024 <glossdef>
6025 <para role="glossdeffirst">
6026<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6027 Defines the format for the output image of an initial
6028 RAM disk (initramfs), which is used during boot.
6029 Supported formats are the same as those supported by the
6030 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6031 variable.
6032 </para>
6033 </glossdef>
6034 </glossentry>
6035
6036 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6037 <info>
6038 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)."
6039 </info>
6040 <glossdef>
6041 <para role="glossdeffirst">
6042<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6043 Causes the OpenEmbedded build system to build an additional
6044 recipe as a dependency to your root filesystem recipe
6045 (e.g. <filename>core-image-sato</filename>).
6046 The additional recipe is used to create an initial RAM disk
6047 (initramfs) that might be needed during the initial boot of
6048 the target system to accomplish such things as loading
6049 kernel modules prior to mounting the root file system.
6050 </para>
6051
6052 <para>
6053 When you set the variable, specify the name of the
6054 initramfs you want created.
6055 The following example, which is set in the
6056 <filename>local.conf</filename> configuration file, causes
6057 a separate recipe to be created that results in an
6058 initramfs image named
6059 <filename>core-image-sato-initramfs.bb</filename> to be
6060 created:
6061 <literallayout class='monospaced'>
6062 INITRAMFS_IMAGE = "core-image-minimal-initramfs"
6063 </literallayout>
6064 By default, the
6065 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6066 class sets this variable to a null string as follows:
6067 <literallayout class='monospaced'>
6068 INITRAMFS_IMAGE = ""
6069 </literallayout>
6070 </para>
6071
6072 <para>
6073 See the
6074 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-yocto/conf/local.conf.sample.extended'><filename>local.conf.sample.extended</filename></ulink>
6075 file for additional information.
6076 You can also reference the
6077 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta/classes/kernel.bbclass'><filename>kernel.bbclass</filename></ulink>
6078 file to see how the variable is used.
6079 </para>
6080 </glossdef>
6081 </glossentry>
6082
6083 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6084 <info>
6085 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)."
6086 </info>
6087 <glossdef>
6088 <para role="glossdeffirst">
6089<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6090 Controls whether or not the image recipe specified by
6091 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
6092 is run through an extra pass during kernel compilation
6093 in order to build a single binary that contains both the
6094 kernel image and the initial RAM disk (initramfs).
6095 Using an extra compilation pass ensures that when a kernel
6096 attempts to use an initramfs, it does not encounter
6097 circular dependencies should the initramfs include kernel
6098 modules.
6099 </para>
6100
6101 <para>
6102 The combined binary is deposited into the
6103 <filename>tmp/deploy</filename> directory, which is part
6104 of the
6105 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
6106 </para>
6107
6108 <para>
6109 Setting the variable to "1" in a configuration file causes
6110 the OpenEmbedded build system to make the extra pass during
6111 kernel compilation:
6112 <literallayout class='monospaced'>
6113 INITRAMFS_IMAGE_BUNDLE = "1"
6114 </literallayout>
6115 By default, the
6116 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6117 class sets this variable to a null string as follows:
6118 <literallayout class='monospaced'>
6119 INITRAMFS_IMAGE_BUNDLE = ""
6120 </literallayout>
6121 <note>
6122 You must set the
6123 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6124 a configuration file.
6125 You cannot set the variable in a recipe file.
6126 </note>
6127 See the
6128 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-yocto/conf/local.conf.sample.extended'><filename>local.conf.sample.extended</filename></ulink>
6129 file for additional information.
6130 </para>
6131 </glossdef>
6132 </glossentry>
6133
6134 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6135 <info>
6136 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6137 </info>
6138 <glossdef>
6139 <para role="glossdeffirst">
6140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6141 Indicates list of filesystem images to concatenate and use
6142 as an initial RAM disk (<filename>initrd</filename>).
6143 </para>
6144
6145 <para>
6146 The <filename>INITRD</filename> variable is an optional
6147 variable used with the
6148 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
6149 class.
6150 </para>
6151 </glossdef>
6152 </glossentry>
6153
6154 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6155 <info>
6156 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."
6157 </info>
6158 <glossdef>
6159 <para role="glossdeffirst">
6160<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6161 When building a "live" bootable image (i.e. when
6162 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6163 contains "live"), <filename>INITRD_IMAGE</filename>
6164 specifies the image recipe that should be built
6165 to provide the initial RAM disk image.
6166 The default value is "core-image-minimal-initramfs".
6167 </para>
6168
6169 <para>
6170 See the
6171 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6172 class for more information.
6173 </para>
6174 </glossdef>
6175 </glossentry>
6176
6177 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6178 <info>
6179 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6180 </info>
6181 <glossdef>
6182 <para role="glossdeffirst">
6183<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6184 The filename of the initialization script as installed to
6185 <filename>${sysconfdir}/init.d</filename>.
6186 </para>
6187
6188 <para>
6189 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6190 The variable is mandatory.
6191 </para>
6192 </glossdef>
6193 </glossentry>
6194
6195 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
6196 <info>
6197 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."
6198 </info>
6199 <glossdef>
6200 <para role="glossdeffirst">
6201<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6202 A list of the packages that contain initscripts.
6203 If multiple packages are specified, you need to append the package name
6204 to the other <filename>INITSCRIPT_*</filename> as an override.
6205 </para>
6206
6207 <para>
6208 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6209 The variable is optional and defaults to the
6210 <link linkend='var-PN'><filename>PN</filename></link> variable.
6211 </para>
6212 </glossdef>
6213 </glossentry>
6214
6215 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
6216 <info>
6217 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."
6218 </info>
6219 <glossdef>
6220 <para role="glossdeffirst">
6221<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6222 Specifies the options to pass to <filename>update-rc.d</filename>.
6223 Here is an example:
6224 <literallayout class='monospaced'>
6225 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
6226 </literallayout>
6227 </para>
6228
6229 <para>
6230 In this example, the script has a runlevel of 99,
6231 starts the script in initlevels 2 and 5, and
6232 stops the script in levels 0, 1 and 6.
6233 </para>
6234
6235 <para>
6236 The variable's default value is "defaults", which is
6237 set in the
6238 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
6239 class.
6240 </para>
6241
6242 <para>
6243 The value in
6244 <filename>INITSCRIPT_PARAMS</filename> is passed through
6245 to the <filename>update-rc.d</filename> command.
6246 For more information on valid parameters, please see the
6247 <filename>update-rc.d</filename> manual page at
6248 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
6249 </para>
6250 </glossdef>
6251 </glossentry>
6252
6253 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
6254 <info>
6255 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
6256 </info>
6257 <glossdef>
6258 <para role="glossdeffirst">
6259<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6260 Specifies the QA checks to skip for a specific package
6261 within a recipe.
6262 For example, to skip the check for symbolic link
6263 <filename>.so</filename> files in the main package of a
6264 recipe, add the following to the recipe.
6265 The package name override must be used, which in this
6266 example is <filename>${PN}</filename>:
6267 <literallayout class='monospaced'>
6268 INSANE_SKIP_${PN} += "dev-so"
6269 </literallayout>
6270 </para>
6271
6272 <para>
6273 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
6274 section for a list of the valid QA checks you can
6275 specify using this variable.
6276 </para>
6277 </glossdef>
6278 </glossentry>
6279
6280 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
6281 <info>
6282 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
6283 </info>
6284 <glossdef>
6285 <para role="glossdeffirst">
6286<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6287 When the IPK backend is in use and package management
6288 is enabled on the target, you can use this variable to
6289 set up <filename>opkg</filename> in the target image
6290 to point to package feeds on a nominated server.
6291 Once the feed is established, you can perform
6292 installations or upgrades using the package manager
6293 at runtime.
6294 </para>
6295 </glossdef>
6296 </glossentry>
6297
6298<!--
6299 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
6300 <glossdef>
6301 <para>
6302 An environment variable that defines the directory where
6303 post installation hooks are installed for the
6304 post install environment.
6305 This variable is fixed as follows:
6306 <literallayout class='monospaced'>
6307 ${WORKDIR}/intercept_scripts
6308 </literallayout>
6309 </para>
6310
6311 <para>
6312 After installation of a target's root filesystem,
6313 post installation scripts, which are essentially bash scripts,
6314 are all executed just a single time.
6315 Limiting execution of these scripts minimizes installation
6316 time that would be lengthened due to certain packages
6317 triggering redundant operations.
6318 For example, consider the installation of font packages
6319 as a common example.
6320 Without limiting the execution of post installation scripts,
6321 all font directories would be rescanned to create the
6322 cache after each individual font package was installed.
6323 </para>
6324
6325 <para>
6326 Do not edit the <filename>INTERCEPT_DIR</filename>
6327 variable.
6328 </para>
6329 </glossdef>
6330 </glossentry>
6331-->
6332
6333 </glossdiv>
6334
6335<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
6336<!-- </glossdiv>-->
6337
6338 <glossdiv id='var-glossary-k'><title>K</title>
6339
6340 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
6341 <info>
6342 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
6343 </info>
6344 <glossdef>
6345 <para role="glossdeffirst">
6346<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6347 Defines the kernel architecture used when assembling
6348 the configuration.
6349 Architectures supported for this release are:
6350 <literallayout class='monospaced'>
6351 powerpc
6352 i386
6353 x86_64
6354 arm
6355 qemu
6356 mips
6357 </literallayout>
6358 </para>
6359
6360 <para>
6361 You define the <filename>KARCH</filename> variable in the
6362 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
6363 </para>
6364 </glossdef>
6365 </glossentry>
6366
6367 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
6368 <info>
6369 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."
6370 </info>
6371 <glossdef>
6372 <para role="glossdeffirst">
6373<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6374 A regular expression used by the build process to explicitly
6375 identify the kernel branch that is validated, patched,
6376 and configured during a build.
6377 You must set this variable to ensure the exact kernel
6378 branch you want is being used by the build process.
6379 </para>
6380
6381 <para>
6382 Values for this variable are set in the kernel's recipe
6383 file and the kernel's append file.
6384 For example, if you are using the Yocto Project kernel that
6385 is based on the Linux 3.14 kernel, the kernel recipe file
6386 is the
6387 <filename>meta/recipes-kernel/linux/linux-yocto_3.14.bb</filename>
6388 file.
6389 Following is an example for a kernel recipe file:
6390 <literallayout class='monospaced'>
6391 KBRANCH ?= "standard/base"
6392 </literallayout>
6393 </para>
6394
6395 <para>
6396 This variable is also used from the kernel's append file
6397 to identify the kernel branch specific to a particular
6398 machine or target hardware.
6399 The kernel's append file is located in the BSP layer for
6400 a given machine.
6401 For example, the kernel append file for the Emenlow BSP is in the
6402 <filename>meta-intel</filename> Git repository and is named
6403 <filename>meta-emenlow/recipes-kernel/linux/linux-yocto_3.14.bbappend</filename>.
6404 Here are the related statements from the append file:
6405 <literallayout class='monospaced'>
6406 COMPATIBLE_MACHINE_emenlow-noemgd = "emenlow-noemgd"
6407 KMACHINE_emenlow-noemgd = "emenlow"
6408 KBRANCH_emenlow-noemgd = "standard/base"
6409 KERNEL_FEATURES_append_emenlow-noemgd = " features/drm-gma500/drm-gma500.scc"
6410 </literallayout>
6411 The <filename>KBRANCH</filename> statement identifies
6412 the kernel branch to use when building for the Emenlow
6413 BSP.
6414 </para>
6415 </glossdef>
6416 </glossentry>
6417
6418 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
6419 <info>
6420 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
6421 </info>
6422 <glossdef>
6423 <para role="glossdeffirst">
6424<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6425 When used with the
6426 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
6427 class, specifies an "in-tree" kernel configuration file
6428 for use during a kernel build.
6429 </para>
6430
6431 <para>
6432 Typically, when using a <filename>defconfig</filename> to
6433 configure a kernel during a build, you place the
6434 file in your layer in the same manner as you would
6435 patch files and configuration fragment files (i.e.
6436 "out-of-tree").
6437 However, if you want to use a <filename>defconfig</filename>
6438 file that is part of the kernel tree (i.e. "in-tree"),
6439 you can use the
6440 <filename>KBUILD_DEFCONFIG</filename> variable to point
6441 to the <filename>defconfig</filename> file.
6442 </para>
6443
6444 <para>
6445 To use the variable, set it in the append file for your
6446 kernel recipe using the following form:
6447 <literallayout class='monospaced'>
6448 KBUILD_DEFCONFIG_<link linkend='var-KMACHINE'>KMACHINE</link> ?= <replaceable>defconfig_file</replaceable>
6449 </literallayout>
6450 Here is an example from a "raspberrypi2"
6451 <filename>KMACHINE</filename> build that uses a
6452 <filename>defconfig</filename> file named
6453 "bcm2709_defconfig":
6454 <literallayout class='monospaced'>
6455 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
6456 </literallayout>
6457 As an alternative, you can use the following within your
6458 append file:
6459 <literallayout class='monospaced'>
6460 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
6461 </literallayout>
6462 For more information on how to use the
6463 <filename>KBUILD_DEFCONFIG</filename> variable, see the
6464 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-an-in-tree-defconfig-file'>Using an "In-Tree" <filename>defconfig</filename> File</ulink>"
6465 section.
6466 </para>
6467 </glossdef>
6468 </glossentry>
6469
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006470 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
6471 <info>
6472 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
6473 </info>
6474 <glossdef>
6475 <para role="glossdeffirst">
6476<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6477 Specifies an alternate kernel image type for creation in
6478 addition to the kernel image type specified using the
6479 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
6480 variable.
6481 </para>
6482 </glossdef>
6483 </glossentry>
6484
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006485 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
6486 <info>
6487 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
6488 </info>
6489 <glossdef>
6490 <para role="glossdeffirst">
6491<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6492 A list of classes defining kernel image types that the
6493 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6494 class should inherit.
6495 You typically append this variable to enable extended image
6496 types.
6497 An example is the "kernel-fitimage", which enables
6498 fitImage support and resides in
6499 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
6500 You can register custom kernel image types with the
6501 <filename>kernel</filename> class using this variable.
6502 </para>
6503 </glossdef>
6504 </glossentry>
6505
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006506 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
6507 <info>
6508 KERNEL_DEVICETREE[doc] = "Specifies the name of the generated Linux kernel device tree (i.e. the <filename>.dtb</filename>) file."
6509 </info>
6510 <glossdef>
6511 <para role="glossdeffirst">
6512<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6513 Specifies the name of the generated Linux kernel device tree
6514 (i.e. the <filename>.dtb</filename>) file.
6515 <note>
6516 Legacy support exists for specifying the full path
6517 to the device tree.
6518 However, providing just the <filename>.dtb</filename>
6519 file is preferred.
6520 </note>
6521 In order to use this variable, you must have the include
6522 files in your kernel recipe:
6523 <literallayout class='monospaced'>
6524 require recipes-kernel/linux/linux-dtb.inc
6525 </literallayout>
6526 or
6527 <literallayout class='monospaced'>
6528 require recipes-kernel/linux/linux-yocto.inc
6529 </literallayout>
6530 </para>
6531 </glossdef>
6532 </glossentry>
6533
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006534 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
6535 <info>
6536 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
6537 </info>
6538 <glossdef>
6539 <para role="glossdeffirst">
6540<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6541 Specifies additional <filename>make</filename>
6542 command-line arguments the OpenEmbedded build system
6543 passes on when compiling the kernel.
6544 </para>
6545 </glossdef>
6546 </glossentry>
6547
6548 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
6549 <info>
6550 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."
6551 </info>
6552 <glossdef>
6553 <para role="glossdeffirst">
6554<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6555 Includes additional metadata from the Yocto Project kernel Git repository.
6556 In the OpenEmbedded build system, the default Board Support Packages (BSPs)
6557 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
6558 is provided through
6559 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
6560 and <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link> variables.
6561 You can use the <filename>KERNEL_FEATURES</filename> variable to further
6562 add metadata for all BSPs.
6563 </para>
6564
6565 <para>
6566 The metadata you add through this variable includes config fragments and
6567 features descriptions,
6568 which usually includes patches as well as config fragments.
6569 You typically override the <filename>KERNEL_FEATURES</filename> variable
6570 for a specific machine.
6571 In this way, you can provide validated, but optional, sets of kernel
6572 configurations and features.
6573 </para>
6574
6575 <para>
6576 For example, the following adds <filename>netfilter</filename> to all
6577 the Yocto Project kernels and adds sound support to the <filename>qemux86</filename>
6578 machine:
6579 <literallayout class='monospaced'>
6580 # Add netfilter to all linux-yocto kernels
6581 KERNEL_FEATURES="features/netfilter/netfilter.scc"
6582
6583 # Add sound support to the qemux86 machine
6584 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc"
6585 </literallayout></para>
6586 </glossdef>
6587 </glossentry>
6588
6589 <glossentry id='var-KERNEL_IMAGE_BASE_NAME'><glossterm>KERNEL_IMAGE_BASE_NAME</glossterm>
6590 <info>
6591 KERNEL_IMAGE_BASE_NAME[doc] = "The base name of the kernel image."
6592 </info>
6593 <glossdef>
6594 <para role="glossdeffirst">
6595<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6596 The base name of the kernel image.
6597 This variable is set in the
6598 <link linkend='ref-classes-kernel'>kernel</link> class
6599 as follows:
6600 <literallayout class='monospaced'>
6601 KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
6602 </literallayout>
6603 </para>
6604
6605 <para>
6606 See the
6607 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>,
6608 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
6609 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
6610 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
6611 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6612 and
6613 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6614 variables for additional information.
6615 </para>
6616 </glossdef>
6617 </glossentry>
6618
6619 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
6620 <info>
6621 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
6622 </info>
6623 <glossdef>
6624 <para role="glossdeffirst">
6625<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6626 Specifies the maximum size of the kernel image file in
6627 kilobytes.
6628 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
6629 the size of the kernel image file is checked against
6630 the set value during the
6631 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
6632 task.
6633 The task fails if the kernel image file is larger than
6634 the setting.
6635 </para>
6636
6637 <para>
6638 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
6639 target devices that have a limited amount of space in
6640 which the kernel image must be stored.
6641 </para>
6642
6643 <para>
6644 By default, this variable is not set, which means the
6645 size of the kernel image is not checked.
6646 </para>
6647 </glossdef>
6648 </glossentry>
6649
6650 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
6651 <info>
6652 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
6653 </info>
6654 <glossdef>
6655 <para role="glossdeffirst">
6656<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6657 The type of kernel to build for a device, usually set by the
6658 machine configuration files and defaults to "zImage".
6659 This variable is used
6660 when building the kernel and is passed to <filename>make</filename> as the target to
6661 build.
6662 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006663
6664 <para>
6665 If you want to build an alternate kernel image type, use the
6666 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
6667 variable.
6668 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006669 </glossdef>
6670 </glossentry>
6671
6672 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
6673 <info>
6674 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
6675 </info>
6676 <glossdef>
6677 <para role="glossdeffirst">
6678<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6679 Lists kernel modules that need to be auto-loaded during
6680 boot.
6681 <note>
6682 This variable replaces the deprecated
6683 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
6684 variable.
6685 </note>
6686 </para>
6687
6688 <para>
6689 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
6690 variable anywhere that it can be
6691 recognized by the kernel recipe or by an out-of-tree kernel
6692 module recipe (e.g. a machine configuration file, a
6693 distribution configuration file, an append file for the
6694 recipe, or the recipe itself).
6695 </para>
6696
6697 <para>
6698 Specify it as follows:
6699 <literallayout class='monospaced'>
6700 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
6701 </literallayout>
6702 </para>
6703
6704 <para>
6705 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
6706 the OpenEmbedded build system to populate the
6707 <filename>/etc/modules-load.d/modname.conf</filename>
6708 file with the list of modules to be auto-loaded on boot.
6709 The modules appear one-per-line in the file.
6710 Here is an example of the most common use case:
6711 <literallayout class='monospaced'>
6712 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
6713 </literallayout>
6714 </para>
6715
6716 <para>
6717 For information on how to populate the
6718 <filename>modname.conf</filename> file with
6719 <filename>modprobe.d</filename> syntax lines, see the
6720 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
6721 variable.
6722 </para>
6723 </glossdef>
6724 </glossentry>
6725
6726 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
6727 <info>
6728 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."
6729 </info>
6730 <glossdef>
6731 <para role="glossdeffirst">
6732<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6733 Provides a list of modules for which the OpenEmbedded
6734 build system expects to find
6735 <filename>module_conf_</filename><replaceable>modname</replaceable>
6736 values that specify configuration for each of the modules.
6737 For information on how to provide those module
6738 configurations, see the
6739 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
6740 variable.
6741 </para>
6742 </glossdef>
6743 </glossentry>
6744
6745 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
6746 <info>
6747 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)."
6748 </info>
6749 <glossdef>
6750 <para role="glossdeffirst">
6751<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6752 The location of the kernel sources.
6753 This variable is set to the value of the
6754 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
6755 within the
6756 <link linkend='ref-classes-module'><filename>module</filename></link>
6757 class.
6758 For information on how this variable is used, see the
6759 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
6760 section.
6761 </para>
6762
6763 <para>
6764 To help maximize compatibility with out-of-tree drivers
6765 used to build modules, the OpenEmbedded build system also
6766 recognizes and uses the
6767 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
6768 variable, which is identical to the
6769 <filename>KERNEL_PATH</filename> variable.
6770 Both variables are common variables used by external
6771 Makefiles to point to the kernel source directory.
6772 </para>
6773 </glossdef>
6774 </glossentry>
6775
6776 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
6777 <info>
6778 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)."
6779 </info>
6780 <glossdef>
6781 <para role="glossdeffirst">
6782<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6783 The location of the kernel sources.
6784 This variable is set to the value of the
6785 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
6786 within the
6787 <link linkend='ref-classes-module'><filename>module</filename></link>
6788 class.
6789 For information on how this variable is used, see the
6790 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
6791 section.
6792 </para>
6793
6794 <para>
6795 To help maximize compatibility with out-of-tree drivers
6796 used to build modules, the OpenEmbedded build system also
6797 recognizes and uses the
6798 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
6799 variable, which is identical to the
6800 <filename>KERNEL_SRC</filename> variable.
6801 Both variables are common variables used by external
6802 Makefiles to point to the kernel source directory.
6803 </para>
6804 </glossdef>
6805 </glossentry>
6806
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006807 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
6808 <info>
6809 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
6810 </info>
6811 <glossdef>
6812 <para role="glossdeffirst">
6813<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6814 Specifies the version of the kernel as extracted from
6815 <filename>version.h</filename> or
6816 <filename>utsrelease.h</filename> within the kernel sources.
6817 Effects of setting this variable do not take affect until
6818 the kernel has been configured.
6819 Consequently, attempting to refer to this variable in
6820 contexts prior to configuration will not work.
6821 </para>
6822 </glossdef>
6823 </glossentry>
6824
6825 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
6826 <info>
6827 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
6828 </info>
6829 <glossdef>
6830 <para role="glossdeffirst">
6831<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6832 Specifies whether the data referenced through
6833 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
6834 is needed or not.
6835 The <filename>KERNELDEPMODDEPEND</filename> does not
6836 control whether or not that data exists,
6837 but simply whether or not it is used.
6838 If you do not need to use the data, set the
6839 <filename>KERNELDEPMODDEPEND</filename> variable in your
6840 <filename>initramfs</filename> recipe.
6841 Setting the variable there when the data is not needed
6842 avoids a potential dependency loop.
6843 </para>
6844 </glossdef>
6845 </glossentry>
6846
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006847 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
6848 <info>
6849 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."
6850 </info>
6851 <glossdef>
6852 <para role="glossdeffirst">
6853<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6854 Provides a short description of a configuration fragment.
6855 You use this variable in the <filename>.scc</filename>
6856 file that describes a configuration fragment file.
6857 Here is the variable used in a file named
6858 <filename>smp.scc</filename> to describe SMP being
6859 enabled:
6860 <literallayout class='monospaced'>
6861 define KFEATURE_DESCRIPTION "Enable SMP"
6862 </literallayout>
6863 </para>
6864 </glossdef>
6865 </glossentry>
6866
6867 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
6868 <info>
6869 KMACHINE[doc] = "The machine as known by the kernel."
6870 </info>
6871 <glossdef>
6872 <para role="glossdeffirst">
6873<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6874 The machine as known by the kernel.
6875 Sometimes the machine name used by the kernel does not
6876 match the machine name used by the OpenEmbedded build
6877 system.
6878 For example, the machine name that the OpenEmbedded build
6879 system understands as
6880 <filename>core2-32-intel-common</filename> goes by a
6881 different name in the Linux Yocto kernel.
6882 The kernel understands that machine as
6883 <filename>intel-core2-32</filename>.
6884 For cases like these, the <filename>KMACHINE</filename>
6885 variable maps the kernel machine name to the OpenEmbedded
6886 build system machine name.
6887 </para>
6888
6889 <para>
6890 These mappings between different names occur in the
6891 Yocto Linux Kernel's <filename>meta</filename> branch.
6892 As an example take a look in the
6893 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
6894 file:
6895 <literallayout class='monospaced'>
6896 LINUX_VERSION_core2-32-intel-common = "3.19.0"
6897 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
6898 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
6899 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
6900 KMACHINE_core2-32-intel-common = "intel-core2-32"
6901 KBRANCH_core2-32-intel-common = "standard/base"
6902 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
6903 </literallayout>
6904 The <filename>KMACHINE</filename> statement says that
6905 the kernel understands the machine name as
6906 "intel-core2-32".
6907 However, the OpenEmbedded build system understands the
6908 machine as "core2-32-intel-common".
6909 </para>
6910
6911 </glossdef>
6912 </glossentry>
6913
6914 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
6915 <info>
6916 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
6917 </info>
6918 <glossdef>
6919 <para role="glossdeffirst">
6920<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6921 Defines the kernel type to be used in assembling the
6922 configuration.
6923 The linux-yocto recipes define "standard", "tiny",
6924 and "preempt-rt" kernel types.
6925 See the
6926 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
6927 section in the Yocto Project Linux Kernel Development
6928 Manual for more information on kernel types.
6929 </para>
6930
6931 <para>
6932 You define the <filename>KTYPE</filename> variable in the
6933 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
6934 The value you use must match the value used for the
6935 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
6936 value used by the kernel recipe.
6937 </para>
6938 </glossdef>
6939 </glossentry>
6940 </glossdiv>
6941
6942 <glossdiv id='var-glossary-l'><title>L</title>
6943
6944 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
6945 <info>
6946 LABELS[doc] = "Provides a list of targets for automatic configuration."
6947 </info>
6948 <glossdef>
6949 <para role="glossdeffirst">
6950<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6951 Provides a list of targets for automatic configuration.
6952 </para>
6953
6954 <para>
6955 See the
6956 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
6957 class for more information on how this variable is used.
6958 </para>
6959 </glossdef>
6960 </glossentry>
6961
6962 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
6963 <info>
6964 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."
6965 </info>
6966 <glossdef>
6967 <para role="glossdeffirst">
6968<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6969 Lists the layers that this recipe depends upon, separated by spaces.
6970 Optionally, you can specify a specific layer version for a dependency
6971 by adding it to the end of the layer name with a colon, (e.g. "anotherlayer:3"
6972 to be compared against
6973 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>
6974 in this case).
6975 An error will be produced if any dependency is missing or
6976 the version numbers do not match exactly (if specified).
6977 This variable is used in the <filename>conf/layer.conf</filename> file
6978 and must be suffixed with the name of the specific layer (e.g.
6979 <filename>LAYERDEPENDS_mylayer</filename>).
6980 </para>
6981 </glossdef>
6982 </glossentry>
6983
6984 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
6985 <info>
6986 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
6987 </info>
6988 <glossdef>
6989 <para role="glossdeffirst">
6990<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6991 When used inside the <filename>layer.conf</filename> configuration
6992 file, this variable provides the path of the current layer.
6993 This variable is not available outside of <filename>layer.conf</filename>
6994 and references are expanded immediately when parsing of the file completes.
6995 </para>
6996 </glossdef>
6997 </glossentry>
6998
6999 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
7000 <info>
7001 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."
7002 </info>
7003 <glossdef>
7004 <para role="glossdeffirst">
7005<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7006 Optionally specifies the version of a layer as a single number.
7007 You can use this within
7008 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
7009 for another layer in order to depend on a specific version
7010 of the layer.
7011 This variable is used in the <filename>conf/layer.conf</filename> file
7012 and must be suffixed with the name of the specific layer (e.g.
7013 <filename>LAYERVERSION_mylayer</filename>).
7014 </para>
7015 </glossdef>
7016 </glossentry>
7017
7018 <glossentry id='var-LD'><glossterm>LD</glossterm>
7019 <info>
7020 LD[doc] = "Minimal command and arguments to run the linker."
7021 </info>
7022 <glossdef>
7023 <para role="glossdeffirst">
7024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7025 The minimal command and arguments used to run the
7026 linker.
7027 </para>
7028 </glossdef>
7029 </glossentry>
7030
7031 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
7032 <info>
7033 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
7034 </info>
7035 <glossdef>
7036 <para role="glossdeffirst">
7037<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7038 Specifies the flags to pass to the linker.
7039 This variable is exported to an environment
7040 variable and thus made visible to the software being
7041 built during the compilation step.
7042 </para>
7043
7044 <para>
7045 Default initialization for <filename>LDFLAGS</filename>
7046 varies depending on what is being built:
7047 <itemizedlist>
7048 <listitem><para>
7049 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
7050 when building for the target
7051 </para></listitem>
7052 <listitem><para>
7053 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
7054 when building for the build host (i.e.
7055 <filename>-native</filename>)
7056 </para></listitem>
7057 <listitem><para>
7058 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
7059 when building for an SDK (i.e.
7060 <filename>nativesdk-</filename>)
7061 </para></listitem>
7062 </itemizedlist>
7063 </para>
7064 </glossdef>
7065 </glossentry>
7066
7067 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
7068 <info>
7069 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."
7070 </info>
7071 <glossdef>
7072 <para role="glossdeffirst">
7073<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7074 Specifies the lead (or primary) compiled library file
7075 (<filename>.so</filename>) that the
7076 <link linkend='ref-classes-debian'><filename>debian</filename></link>
7077 class applies its naming policy to given a recipe that
7078 packages multiple libraries.
7079 </para>
7080
7081 <para>
7082 This variable works in conjunction with the
7083 <filename>debian</filename> class.
7084 </para>
7085 </glossdef>
7086 </glossentry>
7087
7088 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
7089 <info>
7090 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
7091 </info>
7092 <glossdef>
7093 <para role="glossdeffirst">
7094<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7095 Checksums of the license text in the recipe source code.
7096 </para>
7097
7098 <para>
7099 This variable tracks changes in license text of the source
7100 code files.
7101 If the license text is changed, it will trigger a build
7102 failure, which gives the developer an opportunity to review any
7103 license change.
7104 </para>
7105
7106 <para>
7107 This variable must be defined for all recipes (unless
7108 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7109 is set to "CLOSED").</para>
7110 <para>For more information, see the
7111 "<link linkend='usingpoky-configuring-LIC_FILES_CHKSUM'>
7112 Tracking License Changes</link>" section.
7113 </para>
7114 </glossdef>
7115 </glossentry>
7116
7117 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
7118 <info>
7119 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
7120 </info>
7121 <glossdef>
7122 <para role="glossdeffirst">
7123<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7124 The list of source licenses for the recipe.
7125 Follow these rules:
7126 <itemizedlist>
7127 <listitem><para>Do not use spaces within individual
7128 license names.</para></listitem>
7129 <listitem><para>Separate license names using
7130 | (pipe) when there is a choice between licenses.
7131 </para></listitem>
7132 <listitem><para>Separate license names using
7133 &amp; (ampersand) when multiple licenses exist
7134 that cover different parts of the source.
7135 </para></listitem>
7136 <listitem><para>You can use spaces between license
7137 names.</para></listitem>
7138 <listitem><para>For standard licenses, use the names
7139 of the files in
7140 <filename>meta/files/common-licenses/</filename>
7141 or the
7142 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
7143 flag names defined in
7144 <filename>meta/conf/licenses.conf</filename>.
7145 </para></listitem>
7146 </itemizedlist>
7147 </para>
7148
7149 <para>
7150 Here are some examples:
7151 <literallayout class='monospaced'>
7152 LICENSE = "LGPLv2.1 | GPLv3"
7153 LICENSE = "MPL-1 &amp; LGPLv2.1"
7154 LICENSE = "GPLv2+"
7155 </literallayout>
7156 The first example is from the recipes for Qt, which the user
7157 may choose to distribute under either the LGPL version
7158 2.1 or GPL version 3.
7159 The second example is from Cairo where two licenses cover
7160 different parts of the source code.
7161 The final example is from <filename>sysstat</filename>,
7162 which presents a single license.
7163 </para>
7164
7165 <para>
7166 You can also specify licenses on a per-package basis to
7167 handle situations where components of the output have
7168 different licenses.
7169 For example, a piece of software whose code is
7170 licensed under GPLv2 but has accompanying documentation
7171 licensed under the GNU Free Documentation License 1.2 could
7172 be specified as follows:
7173 <literallayout class='monospaced'>
7174 LICENSE = "GFDL-1.2 &amp; GPLv2"
7175 LICENSE_${PN} = "GPLv2"
7176 LICENSE_${PN}-doc = "GFDL-1.2"
7177 </literallayout>
7178 </para>
7179 </glossdef>
7180 </glossentry>
7181
7182 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
7183 <info>
7184 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."
7185 </info>
7186 <glossdef>
7187 <para role="glossdeffirst">
7188<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7189 Specifies additional flags for a recipe you must
7190 whitelist through
7191 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
7192 in order to allow the recipe to be built.
7193 When providing multiple flags, separate them with
7194 spaces.
7195 </para>
7196
7197 <para>
7198 This value is independent of
7199 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7200 and is typically used to mark recipes that might
7201 require additional licenses in order to be used in a
7202 commercial product.
7203 For more information, see the
7204 "<link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7205 section.
7206 </para>
7207 </glossdef>
7208 </glossentry>
7209
7210 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
7211 <info>
7212 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
7213 </info>
7214 <glossdef>
7215 <para role="glossdeffirst">
7216<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7217 Lists license flags that when specified in
7218 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
7219 within a recipe should not prevent that recipe from being
7220 built.
7221 This practice is otherwise known as "whitelisting"
7222 license flags.
7223 For more information, see the
7224 <link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7225 section.
7226 </para>
7227 </glossdef>
7228 </glossentry>
7229
7230 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
7231 <info>
7232 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
7233 </info>
7234 <glossdef>
7235 <para role="glossdeffirst">
7236<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7237 Path to additional licenses used during the build.
7238 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
7239 to define the directory that holds common license text used during the build.
7240 The <filename>LICENSE_PATH</filename> variable allows you to extend that
7241 location to other areas that have additional licenses:
7242 <literallayout class='monospaced'>
7243 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
7244 </literallayout>
7245 </para>
7246 </glossdef>
7247 </glossentry>
7248
7249 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
7250 <info>
7251 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7252 </info>
7253 <glossdef>
7254 <para role="glossdeffirst">
7255<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7256 Defines the kernel type to be used in assembling the
7257 configuration.
7258 The linux-yocto recipes define "standard", "tiny", and
7259 "preempt-rt" kernel types.
7260 See the
7261 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7262 section in the Yocto Project Linux Kernel Development
7263 Manual for more information on kernel types.
7264 </para>
7265
7266 <para>
7267 If you do not specify a
7268 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
7269 "standard".
7270 Together with
7271 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
7272 the <filename>LINUX_KERNEL_TYPE</filename> variable
7273 defines the search
7274 arguments used by the kernel tools to find the appropriate
7275 description within the kernel
7276 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
7277 with which to build out the sources and configuration.
7278 </para>
7279 </glossdef>
7280 </glossentry>
7281
7282 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
7283 <info>
7284 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."
7285 </info>
7286 <glossdef>
7287 <para role="glossdeffirst">
7288<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7289 The Linux version from <filename>kernel.org</filename>
7290 on which the Linux kernel image being built using the
7291 OpenEmbedded build system is based.
7292 You define this variable in the kernel recipe.
7293 For example, the <filename>linux-yocto-3.4.bb</filename>
7294 kernel recipe found in
7295 <filename>meta/recipes-kernel/linux</filename>
7296 defines the variables as follows:
7297 <literallayout class='monospaced'>
7298 LINUX_VERSION ?= "3.4.24"
7299 </literallayout>
7300 </para>
7301
7302 <para>
7303 The <filename>LINUX_VERSION</filename> variable is used to
7304 define <link linkend='var-PV'><filename>PV</filename></link>
7305 for the recipe:
7306 <literallayout class='monospaced'>
7307 PV = "${LINUX_VERSION}+git${SRCPV}"
7308 </literallayout>
7309 </para>
7310 </glossdef>
7311 </glossentry>
7312
7313 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
7314 <info>
7315 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."
7316 </info>
7317 <glossdef>
7318 <para role="glossdeffirst">
7319<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7320 A string extension compiled into the version
7321 string of the Linux kernel built with the OpenEmbedded
7322 build system.
7323 You define this variable in the kernel recipe.
7324 For example, the linux-yocto kernel recipes all define
7325 the variable as follows:
7326 <literallayout class='monospaced'>
7327 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
7328 </literallayout>
7329 </para>
7330
7331 <para>
7332 Defining this variable essentially sets the
7333 Linux kernel configuration item
7334 <filename>CONFIG_LOCALVERSION</filename>, which is visible
7335 through the <filename>uname</filename> command.
7336 Here is an example that shows the extension assuming it
7337 was set as previously shown:
7338 <literallayout class='monospaced'>
7339 $ uname -r
7340 3.7.0-rc8-custom
7341 </literallayout>
7342 </para>
7343 </glossdef>
7344 </glossentry>
7345
7346 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
7347 <info>
7348 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
7349 </info>
7350 <glossdef>
7351 <para role="glossdeffirst">
7352<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7353 Specifies the directory to which the OpenEmbedded build
7354 system writes overall log files.
7355 The default directory is <filename>${TMPDIR}/log</filename>.
7356 </para>
7357
7358 <para>
7359 For the directory containing logs specific to each task,
7360 see the <link linkend='var-T'><filename>T</filename></link>
7361 variable.
7362 </para>
7363 </glossdef>
7364 </glossentry>
7365
7366 </glossdiv>
7367
7368 <glossdiv id='var-glossary-m'><title>M</title>
7369
7370 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
7371 <info>
7372 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."
7373 </info>
7374 <glossdef>
7375 <para role="glossdeffirst">
7376<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7377 Specifies the target device for which the image is built.
7378 You define <filename>MACHINE</filename> in the
7379 <filename>local.conf</filename> file found in the
7380 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
7381 By default, <filename>MACHINE</filename> is set to
7382 "qemux86", which is an x86-based architecture machine to
7383 be emulated using QEMU:
7384 <literallayout class='monospaced'>
7385 MACHINE ?= "qemux86"
7386 </literallayout>
7387 </para>
7388
7389 <para>
7390 The variable corresponds to a machine configuration file of the
7391 same name, through which machine-specific configurations are set.
7392 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
7393 exists the corresponding <filename>qemux86.conf</filename> machine
7394 configuration file, which can be found in the
7395 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
7396 in <filename>meta/conf/machine</filename>.
7397 </para>
7398
7399 <para>
7400 The list of machines supported by the Yocto Project as
7401 shipped include the following:
7402 <literallayout class='monospaced'>
7403 MACHINE ?= "qemuarm"
7404 MACHINE ?= "qemuarm64"
7405 MACHINE ?= "qemumips"
7406 MACHINE ?= "qemumips64"
7407 MACHINE ?= "qemuppc"
7408 MACHINE ?= "qemux86"
7409 MACHINE ?= "qemux86-64"
7410 MACHINE ?= "genericx86"
7411 MACHINE ?= "genericx86-64"
7412 MACHINE ?= "beaglebone"
7413 MACHINE ?= "mpc8315e-rdb"
7414 MACHINE ?= "edgerouter"
7415 </literallayout>
7416 The last five are Yocto Project reference hardware boards, which
7417 are provided in the <filename>meta-yocto-bsp</filename> layer.
7418 <note>Adding additional Board Support Package (BSP) layers
7419 to your configuration adds new possible settings for
7420 <filename>MACHINE</filename>.
7421 </note>
7422 </para>
7423 </glossdef>
7424 </glossentry>
7425
7426 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
7427 <info>
7428 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
7429 </info>
7430 <glossdef>
7431 <para role="glossdeffirst">
7432<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7433 Specifies the name of the machine-specific architecture.
7434 This variable is set automatically from
7435 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7436 or
7437 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
7438 You should not hand-edit the
7439 <filename>MACHINE_ARCH</filename> variable.
7440 </para>
7441 </glossdef>
7442 </glossentry>
7443
7444 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
7445 <info>
7446 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."
7447 </info>
7448 <glossdef>
7449 <para role="glossdeffirst">
7450<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7451 A list of required machine-specific packages to install as part of
7452 the image being built.
7453 The build process depends on these packages being present.
7454 Furthermore, because this is a "machine essential" variable, the list of
7455 packages are essential for the machine to boot.
7456 The impact of this variable affects images based on
7457 <filename>packagegroup-core-boot</filename>,
7458 including the <filename>core-image-minimal</filename> image.
7459 </para>
7460
7461 <para>
7462 This variable is similar to the
7463 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
7464 variable with the exception that the image being built has a build
7465 dependency on the variable's list of packages.
7466 In other words, the image will not build if a file in this list is not found.
7467 </para>
7468
7469 <para>
7470 As an example, suppose the machine for which you are building requires
7471 <filename>example-init</filename> to be run during boot to initialize the hardware.
7472 In this case, you would use the following in the machine's
7473 <filename>.conf</filename> configuration file:
7474 <literallayout class='monospaced'>
7475 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
7476 </literallayout>
7477 </para>
7478 </glossdef>
7479 </glossentry>
7480
7481 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
7482 <info>
7483 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."
7484 </info>
7485 <glossdef>
7486 <para role="glossdeffirst">
7487<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7488 A list of recommended machine-specific packages to install as part of
7489 the image being built.
7490 The build process does not depend on these packages being present.
7491 However, because this is a "machine essential" variable, the list of
7492 packages are essential for the machine to boot.
7493 The impact of this variable affects images based on
7494 <filename>packagegroup-core-boot</filename>,
7495 including the <filename>core-image-minimal</filename> image.
7496 </para>
7497
7498 <para>
7499 This variable is similar to the
7500 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
7501 variable with the exception that the image being built does not have a build
7502 dependency on the variable's list of packages.
7503 In other words, the image will still build if a package in this list is not found.
7504 Typically, this variable is used to handle essential kernel modules, whose
7505 functionality may be selected to be built into the kernel rather than as a module,
7506 in which case a package will not be produced.
7507 </para>
7508
7509 <para>
7510 Consider an example where you have a custom kernel where a specific touchscreen
7511 driver is required for the machine to be usable.
7512 However, the driver can be built as a module or
7513 into the kernel depending on the kernel configuration.
7514 If the driver is built as a module, you want it to be installed.
7515 But, when the driver is built into the kernel, you still want the
7516 build to succeed.
7517 This variable sets up a "recommends" relationship so that in the latter case,
7518 the build will not fail due to the missing package.
7519 To accomplish this, assuming the package for the module was called
7520 <filename>kernel-module-ab123</filename>, you would use the
7521 following in the machine's <filename>.conf</filename> configuration
7522 file:
7523 <literallayout class='monospaced'>
7524 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
7525 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007526 <note>
7527 In this example, the
7528 <filename>kernel-module-ab123</filename> recipe
7529 needs to explicitly set its
7530 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
7531 variable to ensure that BitBake does not use the
7532 kernel recipe's
7533 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
7534 variable to satisfy the dependency.
7535 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007536 </para>
7537
7538 <para>
7539 Some examples of these machine essentials are flash, screen, keyboard, mouse,
7540 or touchscreen drivers (depending on the machine).
7541 </para>
7542 </glossdef>
7543 </glossentry>
7544
7545 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
7546 <info>
7547 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."
7548 </info>
7549 <glossdef>
7550 <para role="glossdeffirst">
7551<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7552 A list of machine-specific packages to install as part of the
7553 image being built that are not essential for the machine to boot.
7554 However, the build process for more fully-featured images
7555 depends on the packages being present.
7556 </para>
7557
7558 <para>
7559 This variable affects all images based on
7560 <filename>packagegroup-base</filename>, which does not include the
7561 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
7562 images.
7563 </para>
7564
7565 <para>
7566 The variable is similar to the
7567 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
7568 variable with the exception that the image being built has a build
7569 dependency on the variable's list of packages.
7570 In other words, the image will not build if a file in this list is not found.
7571 </para>
7572
7573 <para>
7574 An example is a machine that has WiFi capability but is not
7575 essential for the machine to boot the image.
7576 However, if you are building a more fully-featured image, you want to enable
7577 the WiFi.
7578 The package containing the firmware for the WiFi hardware is always
7579 expected to exist, so it is acceptable for the build process to depend upon
7580 finding the package.
7581 In this case, assuming the package for the firmware was called
7582 <filename>wifidriver-firmware</filename>, you would use the following in the
7583 <filename>.conf</filename> file for the machine:
7584 <literallayout class='monospaced'>
7585 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
7586 </literallayout>
7587 </para>
7588 </glossdef>
7589 </glossentry>
7590
7591 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
7592 <info>
7593 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."
7594 </info>
7595 <glossdef>
7596 <para role="glossdeffirst">
7597<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7598 A list of machine-specific packages to install as part of the
7599 image being built that are not essential for booting the machine.
7600 The image being built has no build dependency on this list of packages.
7601 </para>
7602
7603 <para>
7604 This variable affects only images based on
7605 <filename>packagegroup-base</filename>, which does not include the
7606 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
7607 images.
7608 </para>
7609
7610 <para>
7611 This variable is similar to the
7612 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
7613 variable with the exception that the image being built does not have a build
7614 dependency on the variable's list of packages.
7615 In other words, the image will build if a file in this list is not found.
7616 </para>
7617
7618 <para>
7619 An example is a machine that has WiFi capability but is not essential
7620 For the machine to boot the image.
7621 However, if you are building a more fully-featured image, you want to enable
7622 WiFi.
7623 In this case, the package containing the WiFi kernel module will not be produced
7624 if the WiFi driver is built into the kernel, in which case you still want the
7625 build to succeed instead of failing as a result of the package not being found.
7626 To accomplish this, assuming the package for the module was called
7627 <filename>kernel-module-examplewifi</filename>, you would use the
7628 following in the <filename>.conf</filename> file for the machine:
7629 <literallayout class='monospaced'>
7630 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
7631 </literallayout>
7632 </para>
7633 </glossdef>
7634 </glossentry>
7635
7636 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
7637 <info>
7638 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
7639 </info>
7640 <glossdef>
7641 <para role="glossdeffirst">
7642<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7643 Specifies the list of hardware features the
7644 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
7645 of supporting.
7646 For related information on enabling features, see the
7647 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
7648 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
7649 and
7650 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
7651 variables.
7652 </para>
7653
7654 <para>
7655 For a list of hardware features supported by the Yocto
7656 Project as shipped, see the
7657 "<link linkend='ref-features-machine'>Machine Features</link>"
7658 section.
7659 </para>
7660 </glossdef>
7661 </glossentry>
7662
7663 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
7664 <info>
7665 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."
7666 </info>
7667 <glossdef>
7668 <para role="glossdeffirst">
7669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7670 Features to be added to
7671 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
7672 if not also present in
7673 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
7674 </para>
7675
7676 <para>
7677 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
7678 It is not intended to be user-configurable.
7679 It is best to just reference the variable to see which machine features are
7680 being backfilled for all machine configurations.
7681 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
7682 more information.
7683 </para>
7684 </glossdef>
7685 </glossentry>
7686
7687 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
7688 <info>
7689 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
7690 </info>
7691 <glossdef>
7692 <para role="glossdeffirst">
7693<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7694 Features from
7695 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
7696 that should not be backfilled (i.e. added to
7697 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
7698 during the build.
7699 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
7700 more information.
7701 </para>
7702 </glossdef>
7703 </glossentry>
7704
7705 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
7706 <info>
7707 MACHINEOVERRIDES[doc] = "Lists overrides specific to the current machine. By default, this list includes the value of MACHINE."
7708 </info>
7709 <glossdef>
7710 <para role="glossdeffirst">
7711<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7712 Lists overrides specific to the current machine.
7713 By default, this list includes the value
7714 of <filename><link linkend='var-MACHINE'>MACHINE</link></filename>.
7715 You can extend the list to apply variable overrides for
7716 classes of machines.
7717 For example, all QEMU emulated machines (e.g. qemuarm,
7718 qemux86, and so forth) include a common file named
7719 <filename>meta/conf/machine/include/qemu.inc</filename>
7720 that prepends <filename>MACHINEOVERRIDES</filename> with
7721 the following variable override:
7722 <literallayout class='monospaced'>
7723 MACHINEOVERRIDES =. "qemuall:"
7724 </literallayout>
7725 </para>
7726
7727 <para>
7728 Applying an override like <filename>qemuall</filename>
7729 affects all QEMU emulated machines elsewhere.
7730 Here is an example from the
7731 <filename>connman-conf</filename> recipe:
7732 <literallayout class='monospaced'>
7733 SRC_URI_append_qemuall = "file://wired.config \
7734 file://wired-setup \
7735 "
7736 </literallayout>
7737 </para>
7738 </glossdef>
7739 </glossentry>
7740
7741 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
7742 <info>
7743 MAINTAINER[doc] = "The email address of the distribution maintainer."
7744 </info>
7745 <glossdef>
7746 <para role="glossdeffirst">
7747<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7748 The email address of the distribution maintainer.
7749 </para>
7750 </glossdef>
7751 </glossentry>
7752
7753 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
7754 <info>
7755 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
7756 </info>
7757 <glossdef>
7758 <para role="glossdeffirst">
7759<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7760 Specifies additional paths from which the OpenEmbedded
7761 build system gets source code.
7762 When the build system searches for source code, it first
7763 tries the local download directory.
7764 If that location fails, the build system tries locations
7765 defined by
7766 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
7767 the upstream source, and then locations specified by
7768 <filename>MIRRORS</filename> in that order.
7769 </para>
7770
7771 <para>
7772 Assuming your distribution
7773 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
7774 is "poky", the default value for
7775 <filename>MIRRORS</filename> is defined in the
7776 <filename>conf/distro/poky.conf</filename> file in the
7777 <filename>meta-yocto</filename> Git repository.
7778 </para>
7779 </glossdef>
7780 </glossentry>
7781
7782 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
7783 <info>
7784 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."
7785 </info>
7786 <glossdef>
7787 <para role="glossdeffirst">
7788<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7789 Specifies a prefix has been added to
7790 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
7791 of a recipe or package, such as a Multilib version.
7792 The variable is used in places where the prefix needs to be
7793 added to or removed from a the name (e.g. the
7794 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
7795 <filename>MLPREFIX</filename> gets set when a prefix has been
7796 added to <filename>PN</filename>.
7797 </para>
7798 </glossdef>
7799 </glossentry>
7800
7801 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
7802 <info>
7803 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."
7804 </info>
7805 <glossdef>
7806 <para role="glossdeffirst">
7807<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7808 This variable has been replaced by the
7809 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
7810 You should replace all occurrences of
7811 <filename>module_autoload</filename> with additions to
7812 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
7813 <literallayout class='monospaced'>
7814 module_autoload_rfcomm = "rfcomm"
7815 </literallayout>
7816 </para>
7817
7818 <para>
7819 should now be replaced with:
7820 <literallayout class='monospaced'>
7821 KERNEL_MODULE_AUTOLOAD += "rfcomm"
7822 </literallayout>
7823 See the
7824 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7825 variable for more information.
7826 </para>
7827 </glossdef>
7828 </glossentry>
7829
7830 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
7831 <info>
7832 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
7833 </info>
7834 <glossdef>
7835 <para role="glossdeffirst">
7836<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7837 Specifies
7838 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
7839 syntax lines for inclusion in the
7840 <filename>/etc/modprobe.d/modname.conf</filename> file.
7841 </para>
7842
7843 <para>
7844 You can use this variable anywhere that it can be
7845 recognized by the kernel recipe or out-of-tree kernel
7846 module recipe (e.g. a machine configuration file, a
7847 distribution configuration file, an append file for the
7848 recipe, or the recipe itself).
7849 If you use this variable, you must also be sure to list
7850 the module name in the
7851 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7852 variable.
7853 </para>
7854
7855 <para>
7856 Here is the general syntax:
7857 <literallayout class='monospaced'>
7858 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
7859 </literallayout>
7860 You must use the kernel module name override.
7861 </para>
7862
7863 <para>
7864 Run <filename>man modprobe.d</filename> in the shell to
7865 find out more information on the exact syntax
7866 you want to provide with <filename>module_conf</filename>.
7867 </para>
7868
7869 <para>
7870 Including <filename>module_conf</filename> causes the
7871 OpenEmbedded build system to populate the
7872 <filename>/etc/modprobe.d/modname.conf</filename>
7873 file with <filename>modprobe.d</filename> syntax lines.
7874 Here is an example that adds the options
7875 <filename>arg1</filename> and <filename>arg2</filename>
7876 to a module named <filename>mymodule</filename>:
7877 <literallayout class='monospaced'>
7878 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
7879 </literallayout>
7880 </para>
7881
7882 <para>
7883 For information on how to specify kernel modules to
7884 auto-load on boot, see the
7885 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7886 variable.
7887 </para>
7888 </glossdef>
7889 </glossentry>
7890
7891 <glossentry id='var-MODULE_IMAGE_BASE_NAME'><glossterm>MODULE_IMAGE_BASE_NAME</glossterm>
7892 <info>
7893 MODULE_IMAGE_BASE_NAME[doc] = "The base name of the kernel modules tarball."
7894 </info>
7895 <glossdef>
7896 <para role="glossdeffirst">
7897<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7898 The base name of the kernel modules tarball.
7899 This variable is set in the
7900 <link linkend='ref-classes-kernel'>kernel</link> class
7901 as follows:
7902 <literallayout class='monospaced'>
7903 MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
7904 </literallayout>
7905 </para>
7906
7907 <para>
7908 See the
7909 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7910 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7911 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7912 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
7913 and
7914 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
7915 variables for additional information.
7916 </para>
7917 </glossdef>
7918 </glossentry>
7919
7920 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
7921 <info>
7922 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."
7923 </info>
7924 <glossdef>
7925 <para role="glossdeffirst">
7926<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7927 Controls creation of the <filename>modules-*.tgz</filename>
7928 file.
7929 Set this variable to "0" to disable creation of this
7930 file, which contains all of the kernel modules resulting
7931 from a kernel build.
7932 </para>
7933 </glossdef>
7934 </glossentry>
7935
7936 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
7937 <info>
7938 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
7939 </info>
7940 <glossdef>
7941 <para role="glossdeffirst">
7942<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7943 Separates files for different machines such that you can build
7944 for multiple target machines using the same output directories.
7945 See the <link linkend='var-STAMP'><filename>STAMP</filename></link> variable
7946 for an example.
7947 </para>
7948 </glossdef>
7949 </glossentry>
7950
7951 </glossdiv>
7952
7953 <glossdiv id='var-glossary-n'><title>N</title>
7954
7955 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
7956 <info>
7957 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
7958 </info>
7959 <glossdef>
7960 <para role="glossdeffirst">
7961<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7962 A string identifying the host distribution.
7963 Strings consist of the host distributor ID
7964 followed by the release, as reported by the
7965 <filename>lsb_release</filename> tool
7966 or as read from <filename>/etc/lsb-release</filename>.
7967 For example, when running a build on Ubuntu 12.10, the value
7968 is "Ubuntu-12.10".
7969 If this information is unable to be determined, the value
7970 resolves to "Unknown".
7971 </para>
7972
7973 <para>
7974 This variable is used by default to isolate native shared
7975 state packages for different distributions (e.g. to avoid
7976 problems with <filename>glibc</filename> version
7977 incompatibilities).
7978 Additionally, the variable is checked against
7979 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
7980 if that variable is set.
7981 </para>
7982 </glossdef>
7983 </glossentry>
7984
7985 <glossentry id='var-NM'><glossterm>NM</glossterm>
7986 <info>
7987 NM[doc] = "Minimal command and arguments to run 'nm'."
7988 </info>
7989 <glossdef>
7990 <para role="glossdeffirst">
7991<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7992 The minimal command and arguments to run
7993 <filename>nm</filename>.
7994 </para>
7995 </glossdef>
7996 </glossentry>
7997
7998 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
7999 <info>
8000 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."
8001 </info>
8002 <glossdef>
8003 <para role="glossdeffirst">
8004<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8005 Prevents installation of all "recommended-only" packages.
8006 Recommended-only packages are packages installed only
8007 through the
8008 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
8009 variable).
8010 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
8011 to "1" turns this feature on:
8012 <literallayout class='monospaced'>
8013 NO_RECOMMENDATIONS = "1"
8014 </literallayout>
8015 </para>
8016
8017 <para>
8018 You can set this variable globally in your
8019 <filename>local.conf</filename> file or you can attach it to
8020 a specific image recipe by using the recipe name override:
8021 <literallayout class='monospaced'>
8022 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
8023 </literallayout>
8024 </para>
8025
8026 <para>
8027 It is important to realize that if you choose to not install
8028 packages using this variable and some other packages are
8029 dependent on them (i.e. listed in a recipe's
8030 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
8031 variable), the OpenEmbedded build system ignores your
8032 request and will install the packages to avoid dependency
8033 errors.
8034 <note>
8035 Some recommended packages might be required for certain
8036 system functionality, such as kernel modules.
8037 It is up to you to add packages with the
8038 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
8039 variable.
8040 </note>
8041 </para>
8042
8043 <para>
8044 Support for this variable exists only when using the
8045 IPK and RPM packaging backend.
8046 Support does not exist for DEB.
8047 </para>
8048
8049 <para>
8050 See the
8051 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
8052 and the
8053 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
8054 variables for related information.
8055 </para>
8056 </glossdef>
8057 </glossentry>
8058
8059 <glossentry id='var-NOHDD'><glossterm>NOHDD</glossterm>
8060 <info>
8061 NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
8062 </info>
8063 <glossdef>
8064 <para role="glossdeffirst">
8065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8066 Causes the OpenEmbedded build system to skip building the
8067 <filename>.hddimg</filename> image.
8068 The <filename>NOHDD</filename> variable is used with the
8069 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
8070 class.
8071 Set the variable to "1" to prevent the
8072 <filename>.hddimg</filename> image from being built.
8073 </para>
8074 </glossdef>
8075 </glossentry>
8076
8077 <glossentry id='var-NOISO'><glossterm>NOISO</glossterm>
8078 <info>
8079 NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
8080 </info>
8081 <glossdef>
8082 <para role="glossdeffirst">
8083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8084 Causes the OpenEmbedded build system to skip building the
8085 ISO image.
8086 The <filename>NOISO</filename> variable is used with the
8087 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
8088 class.
8089 Set the variable to "1" to prevent the ISO image from
8090 being built.
8091 To enable building an ISO image, set the variable to "0".
8092 </para>
8093 </glossdef>
8094 </glossentry>
8095
8096 </glossdiv>
8097
8098 <glossdiv id='var-glossary-o'><title>O</title>
8099
8100 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
8101 <info>
8102 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
8103 </info>
8104 <glossdef>
8105 <para role="glossdeffirst">
8106<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8107 The minimal command and arguments to run
8108 <filename>objcopy</filename>.
8109 </para>
8110 </glossdef>
8111 </glossentry>
8112
8113 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
8114 <info>
8115 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
8116 </info>
8117 <glossdef>
8118 <para role="glossdeffirst">
8119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8120 The minimal command and arguments to run
8121 <filename>objdump</filename>.
8122 </para>
8123 </glossdef>
8124 </glossentry>
8125
8126 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
8127 <info>
8128 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
8129 </info>
8130 <glossdef>
8131 <para role="glossdeffirst">
8132<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8133 When inheriting the
8134 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
8135 class, this variable
8136 specifies additional arguments passed to the "sed" command.
8137 The sed command alters any paths in configuration scripts
8138 that have been set up during compilation.
8139 Inheriting this class results in all paths in these scripts
8140 being changed to point into the
8141 <filename>sysroots/</filename> directory so that all builds
8142 that use the script will use the correct directories
8143 for the cross compiling layout.
8144 </para>
8145
8146 <para>
8147 See the <filename>meta/classes/binconfig.bbclass</filename>
8148 in the
8149 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
8150 for details on how this class applies these additional
8151 sed command arguments.
8152 For general information on the
8153 <filename>binconfig.bbclass</filename> class, see the
8154 "<link linkend='ref-classes-binconfig'>Binary Configuration Scripts - <filename>binconfig.bbclass</filename></link>"
8155 section.
8156 </para>
8157 </glossdef>
8158 </glossentry>
8159
8160 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
8161 <info>
8162 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."
8163 </info>
8164 <glossdef>
8165 <para role="glossdeffirst">
8166<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8167 An internal variable used to tell the OpenEmbedded build
8168 system what Python modules to import for every Python
8169 function run by the system.
8170 </para>
8171
8172 <note>
8173 Do not set this variable.
8174 It is for internal use only.
8175 </note>
8176 </glossdef>
8177 </glossentry>
8178
8179 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
8180 <info>
8181 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
8182 </info>
8183 <glossdef>
8184 <para role="glossdeffirst">
8185<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8186 Controls how the OpenEmbedded build system spawns
8187 interactive terminals on the host development system
8188 (e.g. using the BitBake command with the
8189 <filename>-c devshell</filename> command-line option).
8190 For more information, see the
8191 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
8192 in the Yocto Project Development Manual.
8193 </para>
8194
8195 <para>
8196 You can use the following values for the
8197 <filename>OE_TERMINAL</filename> variable:
8198 <literallayout class='monospaced'>
8199 auto
8200 gnome
8201 xfce
8202 rxvt
8203 screen
8204 konsole
8205 none
8206 </literallayout>
8207 </para>
8208 </glossdef>
8209 </glossentry>
8210
8211 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
8212 <info>
8213 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
8214 </info>
8215 <glossdef>
8216 <para role="glossdeffirst">
8217<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8218 The directory from which the top-level build environment
8219 setup script is sourced.
8220 The Yocto Project makes two top-level build environment
8221 setup scripts available:
8222 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
8223 and
8224 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>.
8225 When you run one of these scripts, the
8226 <filename>OEROOT</filename> variable resolves to the
8227 directory that contains the script.
8228 </para>
8229
8230 <para>
8231 For additional information on how this variable is used,
8232 see the initialization scripts.
8233 </para>
8234 </glossdef>
8235 </glossentry>
8236
8237 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
8238 <info>
8239 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
8240 </info>
8241 <glossdef>
8242 <para role="glossdeffirst">
8243<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8244 Declares the oldest version of the Linux kernel that the
8245 produced binaries must support.
8246 This variable is passed into the build of the Embedded
8247 GNU C Library (<filename>glibc</filename>).
8248 </para>
8249
8250 <para>
8251 The default for this variable comes from the
8252 <filename>meta/conf/bitbake.conf</filename> configuration
8253 file.
8254 You can override this default by setting the variable
8255 in a custom distribution configuration file.
8256 </para>
8257 </glossdef>
8258 </glossentry>
8259
8260 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
8261 <info>
8262 OVERRIDES[doc] = "BitBake uses OVERRIDES to control what variables are overridden after BitBake parses recipes and configuration files."
8263 </info>
8264 <glossdef>
8265 <para role="glossdeffirst">
8266<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8267 BitBake uses <filename>OVERRIDES</filename> to control
8268 what variables are overridden after BitBake parses
8269 recipes and configuration files.
8270 You can find more information on how overrides are handled
8271 in the
8272 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
8273 section of the BitBake User Manual.
8274 </para>
8275 </glossdef>
8276 </glossentry>
8277 </glossdiv>
8278
8279 <glossdiv id='var-glossary-p'><title>P</title>
8280
8281 <glossentry id='var-P'><glossterm>P</glossterm>
8282 <info>
8283 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
8284 </info>
8285 <glossdef>
8286 <para role="glossdeffirst">
8287<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8288 The recipe name and version.
8289 <filename>P</filename> is comprised of the following:
8290 <literallayout class='monospaced'>
8291 ${PN}-${PV}
8292 </literallayout>
8293 </para>
8294 </glossdef>
8295 </glossentry>
8296
8297 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
8298 <info>
8299 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
8300 </info>
8301 <glossdef>
8302 <para role="glossdeffirst">
8303<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8304 The architecture of the resulting package or packages.
8305 </para>
8306
8307 <para>
8308 By default, the value of this variable is set to
8309 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
8310 when building for the target,
8311 <filename>BUILD_ARCH</filename> when building for the
8312 build host and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
8313 for the SDK.
8314 However, if your recipe's output packages are built
8315 specific to the target machine rather than general for
8316 the architecture of the machine, you should set
8317 <filename>PACKAGE_ARCH</filename> to the value of
8318 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
8319 in the recipe as follows:
8320 <literallayout class='monospaced'>
8321 PACKAGE_ARCH = "${MACHINE_ARCH}"
8322 </literallayout>
8323 </para>
8324 </glossdef>
8325 </glossentry>
8326
8327 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
8328 <info>
8329 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
8330 </info>
8331 <glossdef>
8332 <para role="glossdeffirst">
8333<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8334 Specifies a list of architectures compatible with
8335 the target machine.
8336 This variable is set automatically and should not
8337 normally be hand-edited.
8338 Entries are separated using spaces and listed in order
8339 of priority.
8340 The default value for
8341 <filename>PACKAGE_ARCHS</filename> is "all any noarch
8342 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
8343 </para>
8344 </glossdef>
8345 </glossentry>
8346
8347 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
8348 <info>
8349 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."
8350 </info>
8351 <glossdef>
8352 <para role="glossdeffirst">
8353<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8354 Enables easily adding packages to
8355 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
8356 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
8357 so that those added packages can pick up files that would normally be
8358 included in the default package.
8359 </para>
8360 </glossdef>
8361 </glossentry>
8362
8363 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
8364 <info>
8365 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."
8366 </info>
8367 <glossdef>
8368 <para role="glossdeffirst">
8369<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8370 This variable, which is set in the
8371 <filename>local.conf</filename> configuration file found in
8372 the <filename>conf</filename> folder of the
8373 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
8374 specifies the package manager the OpenEmbedded build system
8375 uses when packaging data.
8376 </para>
8377
8378 <para>
8379 You can provide one or more of the following arguments for
8380 the variable:
8381 <literallayout class='monospaced'>
8382 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
8383 </literallayout>
8384 <note><title>Warning</title>
8385 While it is a legal option, the
8386 <filename>package_tar</filename> class is broken
8387 and is not supported.
8388 It is recommended that you do not use it.
8389 </note>
8390 The build system uses only the first argument in the list
8391 as the package manager when creating your image or SDK.
8392 However, packages will be created using any additional
8393 packaging classes you specify.
8394 For example, if you use the following in your
8395 <filename>local.conf</filename> file:
8396 <literallayout class='monospaced'>
8397 PACKAGE_CLASSES ?= "package_ipk"
8398 </literallayout>
8399 The OpenEmbedded build system uses the IPK package manager
8400 to create your image or SDK.
8401 </para>
8402
8403 <para>
8404 For information on packaging and build performance effects
8405 as a result of the package manager in use, see the
8406 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
8407 section.
8408 </para>
8409 </glossdef>
8410 </glossentry>
8411
8412 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
8413 <info>
8414 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)."
8415 </info>
8416 <glossdef>
8417 <para role="glossdeffirst">
8418<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8419 Determines how to split up the binary and debug information
8420 when creating <filename>*-dbg</filename> packages to be
8421 used with the GNU Project Debugger (GDB).
8422 </para>
8423
8424 <para>
8425 With the
8426 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
8427 you can control where debug information, which can include
8428 or exclude source files, is stored:
8429 <itemizedlist>
8430 <listitem><para>
8431 ".debug": Debug symbol files are placed next
8432 to the binary in a <filename>.debug</filename>
8433 directory on the target.
8434 For example, if a binary is installed into
8435 <filename>/bin</filename>, the corresponding debug
8436 symbol files are installed in
8437 <filename>/bin/.debug</filename>.
8438 Source files are placed in
8439 <filename>/usr/src/debug</filename>.
8440 This is the default behavior.
8441 </para></listitem>
8442 <listitem><para>
8443 "debug-file-directory": Debug symbol files are
8444 placed under <filename>/usr/lib/debug</filename>
8445 on the target, and separated by the path from where
8446 the binary is installed.
8447 For example, if a binary is installed in
8448 <filename>/bin</filename>, the corresponding debug
8449 symbols are installed in
8450 <filename>/usr/lib/debug/bin</filename>.
8451 Source files are placed in
8452 <filename>/usr/src/debug</filename>.
8453 </para></listitem>
8454 <listitem><para>
8455 "debug-without-src": The same behavior as
8456 ".debug" previously described with the exception
8457 that no source files are installed.
8458 </para></listitem>.
8459 </itemizedlist>
8460 </para>
8461
8462 <para>
8463 You can find out more about debugging using GDB by reading
8464 the
8465 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-gdb-remotedebug'>Debugging With the GNU Project Debugger (GDB) Remotely</ulink>"
8466 section in the Yocto Project Development Manual.
8467 </para>
8468 </glossdef>
8469 </glossentry>
8470
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008471 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
8472 <info>
8473 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
8474 </info>
8475 <glossdef>
8476 <para role="glossdeffirst">
8477<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8478 Prevents specific packages from being installed when
8479 you are installing complementary packages.
8480 </para>
8481
8482 <para>
8483 You might find that you want to prevent installing certain
8484 packages when you are installing complementary packages.
8485 For example, if you are using
8486 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8487 to install <filename>dev-pkgs</filename>, you might not want
8488 to install all packages from a particular multilib.
8489 If you find yourself in this situation, you can use the
8490 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
8491 to specify regular expressions to match the packages you
8492 want to exclude.
8493 </para>
8494 </glossdef>
8495 </glossentry>
8496
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008497 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
8498 <info>
8499 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
8500 </info>
8501 <glossdef>
8502 <para role="glossdeffirst">
8503<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8504 Lists packages that should not be installed into an image.
8505 For example:
8506 <literallayout class='monospaced'>
8507 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
8508 </literallayout>
8509 </para>
8510
8511 <para>
8512 You can set this variable globally in your
8513 <filename>local.conf</filename> file or you can attach it to
8514 a specific image recipe by using the recipe name override:
8515 <literallayout class='monospaced'>
8516 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
8517 </literallayout>
8518 </para>
8519
8520 <para>
8521 If you choose to not install
8522 a package using this variable and some other package is
8523 dependent on it (i.e. listed in a recipe's
8524 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
8525 variable), the OpenEmbedded build system generates a fatal
8526 installation error.
8527 Because the build system halts the process with a fatal
8528 error, you can use the variable with an iterative
8529 development process to remove specific components from a
8530 system.
8531 </para>
8532
8533 <para>
8534 Support for this variable exists only when using the
8535 IPK and RPM packaging backend.
8536 Support does not exist for DEB.
8537 </para>
8538
8539 <para>
8540 See the
8541 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
8542 and the
8543 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
8544 variables for related information.
8545 </para>
8546 </glossdef>
8547 </glossentry>
8548
8549 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
8550 <info>
8551 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."
8552 </info>
8553 <glossdef>
8554 <para role="glossdeffirst">
8555<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8556 Specifies the list of architectures compatible with the device CPU.
8557 This variable is useful when you build for several different devices that use
8558 miscellaneous processors such as XScale and ARM926-EJS.
8559 </para>
8560 </glossdef>
8561 </glossentry>
8562
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008563 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
8564 <info>
8565 PACKAGE_FEED_ARCHS[doc] = "Specifies user-defined package architectures when constructing package feed URIs."
8566 </info>
8567 <glossdef>
8568 <para role="glossdeffirst">
8569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8570 Specifies the package architectures used as part of the
8571 package feed URIs during the build.
8572 The <filename>PACKAGE_FEED_ARCHS</filename> variable is
8573 appended to the final package feed URI, which is constructed
8574 using the
8575 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
8576 and
8577 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
8578 variables.
8579 </para>
8580
8581 <para>
8582 Consider the following example where the
8583 <filename>PACKAGE_FEED_URIS</filename>,
8584 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
8585 <filename>PACKAGE_FEED_ARCHS</filename> variables are
8586 defined in your <filename>local.conf</filename> file:
8587 <literallayout class='monospaced'>
8588 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
8589 https://example.com/packagerepos/updates"
8590 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
8591 PACKAGE_FEED_ARCHS = "all core2-64"
8592 </literallayout>
8593 Given these settings, the resulting package feeds are
8594 as follows:
8595 <literallayout class='monospaced'>
8596 https://example.com/packagerepos/release/rpm/all
8597 https://example.com/packagerepos/release/rpm/core2-64
8598 https://example.com/packagerepos/release/rpm-dev/all
8599 https://example.com/packagerepos/release/rpm-dev/core2-64
8600 https://example.com/packagerepos/updates/rpm/all
8601 https://example.com/packagerepos/updates/rpm/core2-64
8602 https://example.com/packagerepos/updates/rpm-dev/all
8603 https://example.com/packagerepos/updates/rpm-dev/core2-64
8604 </literallayout>
8605 </para>
8606 </glossdef>
8607 </glossentry>
8608
8609 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
8610 <info>
8611 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
8612 </info>
8613 <glossdef>
8614 <para role="glossdeffirst">
8615<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8616 Specifies the base path used when constructing package feed
8617 URIs.
8618 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
8619 makes up the middle portion of a package feed URI used
8620 by the OpenEmbedded build system.
8621 The base path lies between the
8622 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
8623 and
8624 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
8625 variables.
8626 </para>
8627
8628 <para>
8629 Consider the following example where the
8630 <filename>PACKAGE_FEED_URIS</filename>,
8631 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
8632 <filename>PACKAGE_FEED_ARCHS</filename> variables are
8633 defined in your <filename>local.conf</filename> file:
8634 <literallayout class='monospaced'>
8635 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
8636 https://example.com/packagerepos/updates"
8637 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
8638 PACKAGE_FEED_ARCHS = "all core2-64"
8639 </literallayout>
8640 Given these settings, the resulting package feeds are
8641 as follows:
8642 <literallayout class='monospaced'>
8643 https://example.com/packagerepos/release/rpm/all
8644 https://example.com/packagerepos/release/rpm/core2-64
8645 https://example.com/packagerepos/release/rpm-dev/all
8646 https://example.com/packagerepos/release/rpm-dev/core2-64
8647 https://example.com/packagerepos/updates/rpm/all
8648 https://example.com/packagerepos/updates/rpm/core2-64
8649 https://example.com/packagerepos/updates/rpm-dev/all
8650 https://example.com/packagerepos/updates/rpm-dev/core2-64
8651 </literallayout>
8652 </para>
8653 </glossdef>
8654 </glossentry>
8655
8656 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
8657 <info>
8658 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
8659 </info>
8660 <glossdef>
8661 <para role="glossdeffirst">
8662<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8663 Specifies the front portion of the package feed URI
8664 used by the OpenEmbedded build system.
8665 Each final package feed URI is comprised of
8666 <filename>PACKAGE_FEED_URIS</filename>,
8667 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
8668 and
8669 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
8670 variables.
8671 </para>
8672
8673 <para>
8674 Consider the following example where the
8675 <filename>PACKAGE_FEED_URIS</filename>,
8676 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
8677 <filename>PACKAGE_FEED_ARCHS</filename> variables are
8678 defined in your <filename>local.conf</filename> file:
8679 <literallayout class='monospaced'>
8680 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
8681 https://example.com/packagerepos/updates"
8682 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
8683 PACKAGE_FEED_ARCHS = "all core2-64"
8684 </literallayout>
8685 Given these settings, the resulting package feeds are
8686 as follows:
8687 <literallayout class='monospaced'>
8688 https://example.com/packagerepos/release/rpm/all
8689 https://example.com/packagerepos/release/rpm/core2-64
8690 https://example.com/packagerepos/release/rpm-dev/all
8691 https://example.com/packagerepos/release/rpm-dev/core2-64
8692 https://example.com/packagerepos/updates/rpm/all
8693 https://example.com/packagerepos/updates/rpm/core2-64
8694 https://example.com/packagerepos/updates/rpm-dev/all
8695 https://example.com/packagerepos/updates/rpm-dev/core2-64
8696 </literallayout>
8697 </para>
8698 </glossdef>
8699 </glossentry>
8700
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008701 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
8702 <info>
8703 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
8704 </info>
8705 <glossdef>
8706 <para role="glossdeffirst">
8707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8708 The <filename>PACKAGE_GROUP</filename> variable has been
8709 renamed to
8710 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
8711 See the variable description for
8712 <filename>FEATURE_PACKAGES</filename> for information.
8713 </para>
8714
8715 <para>
8716 If if you use the <filename>PACKAGE_GROUP</filename>
8717 variable, the OpenEmbedded build system issues a warning
8718 message.
8719 </para>
8720 </glossdef>
8721 </glossentry>
8722
8723 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
8724 <info>
8725 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."
8726 </info>
8727 <glossdef>
8728 <para role="glossdeffirst">
8729<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8730 The final list of packages passed to the package manager
8731 for installation into the image.
8732 </para>
8733
8734 <para>
8735 Because the package manager controls actual installation
8736 of all packages, the list of packages passed using
8737 <filename>PACKAGE_INSTALL</filename> is not the final list
8738 of packages that are actually installed.
8739 This variable is internal to the image construction
8740 code.
8741 Consequently, in general, you should use the
8742 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
8743 variable to specify packages for installation.
8744 The exception to this is when working with
8745 the
8746 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
8747 image.
8748 When working with an initial RAM disk (initramfs)
8749 image, use the <filename>PACKAGE_INSTALL</filename>
8750 variable.
8751 </para>
8752 </glossdef>
8753 </glossentry>
8754
8755 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
8756 <info>
8757 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."
8758 </info>
8759 <glossdef>
8760 <para role="glossdeffirst">
8761<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8762 Specifies a list of packages the OpenEmbedded build
8763 system attempts to install when creating an image.
8764 If a listed package fails to install, the build system
8765 does not generate an error.
8766 This variable is generally not user-defined.
8767 </para>
8768 </glossdef>
8769 </glossentry>
8770
8771 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
8772 <info>
8773 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."
8774 </info>
8775 <glossdef>
8776 <para role="glossdeffirst">
8777<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8778 Specifies a list of functions run to pre-process the
8779 <link linkend='var-PKGD'><filename>PKGD</filename></link>
8780 directory prior to splitting the files out to individual
8781 packages.
8782 </para>
8783 </glossdef>
8784 </glossentry>
8785
8786 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
8787 <info>
8788 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
8789 </info>
8790 <glossdef>
8791 <para role="glossdeffirst">
8792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8793 This variable provides a means of enabling or disabling
8794 features of a recipe on a per-recipe basis.
8795 <filename>PACKAGECONFIG</filename> blocks are defined
8796 in recipes when you specify features and then arguments
8797 that define feature behaviors.
8798 Here is the basic block structure:
8799 <literallayout class='monospaced'>
8800 PACKAGECONFIG ??= "f1 f2 f3 ..."
8801 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1"
8802 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2"
8803 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3"
8804 </literallayout>
8805 </para>
8806
8807 <para>
8808 The <filename>PACKAGECONFIG</filename>
8809 variable itself specifies a space-separated list of the
8810 features to enable.
8811 Following the features, you can determine the behavior of
8812 each feature by providing up to four order-dependent
8813 arguments, which are separated by commas.
8814 You can omit any argument you like but must retain the
8815 separating commas.
8816 The order is important and specifies the following:
8817 <orderedlist>
8818 <listitem><para>Extra arguments
8819 that should be added to the configure script
8820 argument list
8821 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>)
8822 if the feature is enabled.</para></listitem>
8823 <listitem><para>Extra arguments
8824 that should be added to <filename>EXTRA_OECONF</filename>
8825 if the feature is disabled.
8826 </para></listitem>
8827 <listitem><para>Additional build dependencies
8828 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
8829 that should be added if the feature is enabled.
8830 </para></listitem>
8831 <listitem><para>Additional runtime dependencies
8832 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
8833 that should be added if the feature is enabled.
8834 </para></listitem>
8835 </orderedlist>
8836 </para>
8837
8838 <para>
8839 Consider the following
8840 <filename>PACKAGECONFIG</filename> block taken from the
8841 <filename>librsvg</filename> recipe.
8842 In this example the feature is <filename>croco</filename>,
8843 which has three arguments that determine the feature's
8844 behavior.
8845 <literallayout class='monospaced'>
8846 PACKAGECONFIG ??= "croco"
8847 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
8848 </literallayout>
8849 The <filename>--with-croco</filename> and
8850 <filename>libcroco</filename> arguments apply only if
8851 the feature is enabled.
8852 In this case, <filename>--with-croco</filename> is
8853 added to the configure script argument list and
8854 <filename>libcroco</filename> is added to
8855 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
8856 On the other hand, if the feature is disabled say through
8857 a <filename>.bbappend</filename> file in another layer, then
8858 the second argument <filename>--without-croco</filename> is
8859 added to the configure script rather than
8860 <filename>--with-croco</filename>.
8861 </para>
8862
8863 <para>
8864 The basic <filename>PACKAGECONFIG</filename> structure
8865 previously described holds true regardless of whether you
8866 are creating a block or changing a block.
8867 When creating a block, use the structure inside your
8868 recipe.
8869 </para>
8870
8871 <para>
8872 If you want to change an existing
8873 <filename>PACKAGECONFIG</filename> block, you can do so
8874 one of two ways:
8875 <itemizedlist>
8876 <listitem><para><emphasis>Append file:</emphasis>
8877 Create an append file named
8878 <replaceable>recipename</replaceable><filename>.bbappend</filename>
8879 in your layer and override the value of
8880 <filename>PACKAGECONFIG</filename>.
8881 You can either completely override the variable:
8882 <literallayout class='monospaced'>
8883 PACKAGECONFIG="f4 f5"
8884 </literallayout>
8885 Or, you can just append the variable:
8886 <literallayout class='monospaced'>
8887 PACKAGECONFIG_append = " f4"
8888 </literallayout></para></listitem>
8889 <listitem><para><emphasis>Configuration file:</emphasis>
8890 This method is identical to changing the block
8891 through an append file except you edit your
8892 <filename>local.conf</filename> or
8893 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
8894 As with append files previously described,
8895 you can either completely override the variable:
8896 <literallayout class='monospaced'>
8897 PACKAGECONFIG_pn-<replaceable>recipename</replaceable>="f4 f5"
8898 </literallayout>
8899 Or, you can just amend the variable:
8900 <literallayout class='monospaced'>
8901 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
8902 </literallayout></para></listitem>
8903 </itemizedlist>
8904 </para>
8905 </glossdef>
8906 </glossentry>
8907
8908 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
8909 <info>
8910 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
8911 </info>
8912 <glossdef>
8913 <para role="glossdeffirst">
8914<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8915 For recipes inheriting the
8916 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
8917 class, setting
8918 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
8919 "1" specifies that the normal complementary packages
8920 (i.e. <filename>-dev</filename>,
8921 <filename>-dbg</filename>, and so forth) should not be
8922 automatically created by the
8923 <filename>packagegroup</filename> recipe, which is the
8924 default behavior.
8925 </para>
8926 </glossdef>
8927 </glossentry>
8928
8929 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
8930 <info>
8931 PACKAGES[doc] = "The list of packages to be created from the recipe."
8932 </info>
8933 <glossdef>
8934 <para role="glossdeffirst">
8935<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8936 The list of packages to be created from the recipe.
8937 The default value is the following:
8938 <literallayout class='monospaced'>
8939 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
8940 </literallayout>
8941 </para>
8942 </glossdef>
8943 </glossentry>
8944
8945 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
8946 <info>
8947 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
8948 </info>
8949 <glossdef>
8950 <para role="glossdeffirst">
8951<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8952 A promise that your recipe satisfies runtime dependencies
8953 for optional modules that are found in other recipes.
8954 <filename>PACKAGES_DYNAMIC</filename>
8955 does not actually satisfy the dependencies, it only states that
8956 they should be satisfied.
8957 For example, if a hard, runtime dependency
8958 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
8959 of another package is satisfied
8960 at build time through the <filename>PACKAGES_DYNAMIC</filename>
8961 variable, but a package with the module name is never actually
8962 produced, then the other package will be broken.
8963 Thus, if you attempt to include that package in an image,
8964 you will get a dependency failure from the packaging system
8965 during the
8966 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
8967 task.
8968 </para>
8969
8970 <para>
8971 Typically, if there is a chance that such a situation can
8972 occur and the package that is not created is valid
8973 without the dependency being satisfied, then you should use
8974 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
8975 (a soft runtime dependency) instead of
8976 <filename>RDEPENDS</filename>.
8977 </para>
8978
8979 <para>
8980 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
8981 variable when you are splitting packages, see the
8982 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
8983 in the Yocto Project Development Manual.
8984 </para>
8985 </glossdef>
8986 </glossentry>
8987
8988 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
8989 <info>
8990 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
8991 </info>
8992 <glossdef>
8993 <para role="glossdeffirst">
8994<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8995 Specifies a list of functions run to perform additional
8996 splitting of files into individual packages.
8997 Recipes can either prepend to this variable or prepend
8998 to the <filename>populate_packages</filename> function
8999 in order to perform additional package splitting.
9000 In either case, the function should set
9001 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
9002 <link linkend='var-FILES'><filename>FILES</filename></link>,
9003 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9004 and other packaging variables appropriately in order to
9005 perform the desired splitting.
9006 </para>
9007 </glossdef>
9008 </glossentry>
9009
9010 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
9011 <info>
9012 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."
9013 </info>
9014 <glossdef>
9015 <para role="glossdeffirst">
9016<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9017 Extra options passed to the <filename>make</filename>
9018 command during the
9019 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
9020 task in order to specify parallel compilation on the local
9021 build host.
9022 This variable is usually in the form "-j <replaceable>x</replaceable>",
9023 where <replaceable>x</replaceable> represents the maximum
9024 number of parallel threads <filename>make</filename> can
9025 run.
9026 </para>
9027
9028 <para>
9029 By default, the OpenEmbedded build system automatically
9030 sets this variable to be equal to the number of cores the
9031 build system uses.
9032 <note>
9033 If the software being built experiences dependency
9034 issues during the <filename>do_compile</filename>
9035 task that result in race conditions, you can clear
9036 the <filename>PARALLEL_MAKE</filename> variable within
9037 the recipe as a workaround.
9038 For information on addressing race conditions, see the
9039 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
9040 section in the Yocto Project Development Manual.
9041 </note>
9042 For single socket systems (i.e. one CPU), you should not
9043 have to override this variable to gain optimal parallelism
9044 during builds.
9045 However, if you have very large systems that employ
9046 multiple physical CPUs, you might want to make sure the
9047 <filename>PARALLEL_MAKE</filename> variable is not
9048 set higher than "-j 20".
9049 </para>
9050
9051 <para>
9052 For more information on speeding up builds, see the
9053 "<link linkend='speeding-up-the-build'>Speeding Up the Build</link>"
9054 section.
9055 </para>
9056 </glossdef>
9057 </glossentry>
9058
9059 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
9060 <info>
9061 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
9062 </info>
9063 <glossdef>
9064 <para role="glossdeffirst">
9065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9066 Extra options passed to the
9067 <filename>make install</filename> command during the
9068 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
9069 task in order to specify parallel installation.
9070 This variable defaults to the value of
9071 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
9072 <note>
9073 If the software being built experiences dependency
9074 issues during the
9075 <filename>do_install</filename> task that result in
9076 race conditions, you can clear the
9077 <filename>PARALLEL_MAKEINST</filename> variable within
9078 the recipe as a workaround.
9079 For information on addressing race conditions, see the
9080 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
9081 section in the Yocto Project Development Manual.
9082 </note>
9083 </para>
9084 </glossdef>
9085 </glossentry>
9086
9087 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
9088 <info>
9089 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
9090 </info>
9091 <glossdef>
9092 <para role="glossdeffirst">
9093<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9094 Determines the action to take when a patch fails.
9095 You can set this variable to one of two values: "noop" and
9096 "user".
9097 </para>
9098
9099 <para>
9100 The default value of "noop" causes the build to simply fail
9101 when the OpenEmbedded build system cannot successfully
9102 apply a patch.
9103 Setting the value to "user" causes the build system to
9104 launch a shell and places you in the right location so that
9105 you can manually resolve the conflicts.
9106 </para>
9107
9108 <para>
9109 Set this variable in your
9110 <filename>local.conf</filename> file.
9111 </para>
9112 </glossdef>
9113 </glossentry>
9114
9115 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
9116 <info>
9117 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
9118 </info>
9119 <glossdef>
9120 <para role="glossdeffirst">
9121<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9122 Specifies the utility used to apply patches for a recipe
9123 during the
9124 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
9125 task.
9126 You can specify one of three utilities: "patch", "quilt", or
9127 "git".
9128 The default utility used is "quilt" except for the
9129 quilt-native recipe itself.
9130 Because the quilt tool is not available at the
9131 time quilt-native is being patched, it uses "patch".
9132 </para>
9133
9134 <para>
9135 If you wish to use an alternative patching tool, set the
9136 variable in the recipe using one of the following:
9137 <literallayout class='monospaced'>
9138 PATCHTOOL = "patch"
9139 PATCHTOOL = "quilt"
9140 PATCHTOOL = "git"
9141 </literallayout>
9142 </para>
9143 </glossdef>
9144 </glossentry>
9145
9146 <glossentry id='var-PE'><glossterm>PE</glossterm>
9147 <info>
9148 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."
9149 </info>
9150 <glossdef>
9151 <para role="glossdeffirst">
9152<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9153 The epoch of the recipe.
9154 By default, this variable is unset.
9155 The variable is used to make upgrades possible when the
9156 versioning scheme changes in some backwards incompatible
9157 way.
9158 </para>
9159 </glossdef>
9160 </glossentry>
9161
9162 <glossentry id='var-PF'><glossterm>PF</glossterm>
9163 <info>
9164 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
9165 </info>
9166 <glossdef>
9167 <para role="glossdeffirst">
9168<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9169 Specifies the recipe or package name and includes all version and revision
9170 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
9171 <filename>bash-4.2-r1/</filename>).
9172 This variable is comprised of the following:
9173 <literallayout class='monospaced'>
9174 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
9175 </literallayout>
9176 </para>
9177 </glossdef>
9178 </glossentry>
9179
9180 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
9181 <info>
9182 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
9183 </info>
9184 <glossdef>
9185 <para role="glossdeffirst">
9186<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9187 When inheriting the
9188 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
9189 class, this variable identifies packages that contain
9190 the pixbuf loaders used with
9191 <filename>gdk-pixbuf</filename>.
9192 By default, the <filename>pixbufcache</filename> class
9193 assumes that the loaders are in the recipe's main package
9194 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
9195 Use this variable if the loaders you need are in a package
9196 other than that main package.
9197 </para>
9198 </glossdef>
9199 </glossentry>
9200
9201 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
9202 <info>
9203 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."
9204 </info>
9205 <glossdef>
9206 <para role="glossdeffirst">
9207<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9208 The name of the resulting package created by the
9209 OpenEmbedded build system.
9210 <note>
9211 When using the <filename>PKG</filename> variable, you
9212 must use a package name override.
9213 </note>
9214 </para>
9215
9216 <para>
9217 For example, when the
9218 <link linkend='ref-classes-debian'><filename>debian</filename></link>
9219 class renames the output package, it does so by setting
9220 <filename>PKG_<replaceable>packagename</replaceable></filename>.
9221 </para>
9222 </glossdef>
9223 </glossentry>
9224
9225 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
9226 <info>
9227 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
9228 </info>
9229 <glossdef>
9230 <para role="glossdeffirst">
9231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9232 The path to <filename>pkg-config</filename> files for the
9233 current build context.
9234 <filename>pkg-config</filename> reads this variable
9235 from the environment.
9236 </para>
9237 </glossdef>
9238 </glossentry>
9239
9240 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
9241 <info>
9242 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
9243 </info>
9244 <glossdef>
9245 <para role="glossdeffirst">
9246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9247 Points to the destination directory for files to be
9248 packaged before they are split into individual packages.
9249 This directory defaults to the following:
9250 <literallayout class='monospaced'>
9251 ${WORKDIR}/package
9252 </literallayout>
9253 </para>
9254
9255 <para>
9256 Do not change this default.
9257 </para>
9258 </glossdef>
9259 </glossentry>
9260
9261 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
9262 <info>
9263 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
9264 </info>
9265 <glossdef>
9266 <para role="glossdeffirst">
9267<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9268 Points to a shared, global-state directory that holds data
9269 generated during the packaging process.
9270 During the packaging process, the
9271 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
9272 task packages data for each recipe and installs it into
9273 this temporary, shared area.
9274 This directory defaults to the following:
9275 <literallayout class='monospaced'>
9276 ${STAGING_DIR_HOST}/pkgdata
9277 </literallayout>
9278 </para>
9279
9280 <para>
9281 Do not change this default.
9282 </para>
9283 </glossdef>
9284 </glossentry>
9285
9286 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
9287 <info>
9288 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
9289 </info>
9290 <glossdef>
9291 <para role="glossdeffirst">
9292<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9293 Points to the parent directory for files to be packaged
9294 after they have been split into individual packages.
9295 This directory defaults to the following:
9296 <literallayout class='monospaced'>
9297 ${WORKDIR}/packages-split
9298 </literallayout>
9299 </para>
9300
9301 <para>
9302 Under this directory, the build system creates
9303 directories for each package specified in
9304 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
9305 Do not change this default.
9306 </para>
9307 </glossdef>
9308 </glossentry>
9309
9310 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
9311 <info>
9312 PKGDESTWORK[doc] = "Points to a temporary work area used by the do_package task to write output from the do_packagedata task."
9313 </info>
9314 <glossdef>
9315 <para role="glossdeffirst">
9316<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9317 Points to a temporary work area used by the
9318 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
9319 task to write output from the
9320 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
9321 task.
9322 The <filename>PKGDESTWORK</filename> location defaults to
9323 the following:
9324 <literallayout class='monospaced'>
9325 ${WORKDIR}/pkgdata
9326 </literallayout>
9327 </para>
9328
9329 <para>
9330 The <filename>do_packagedata</filename> task then packages
9331 the data in the temporary work area and installs it into a
9332 shared directory pointed to by
9333 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>.
9334 </para>
9335
9336 <para>
9337 Do not change this default.
9338 </para>
9339 </glossdef>
9340 </glossentry>
9341
9342 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
9343 <info>
9344 PKGE[doc] = "The epoch of the output package built by the OpenEmbedded build system."
9345 </info>
9346 <glossdef>
9347 <para role="glossdeffirst">
9348<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9349 The epoch of the output package built by the
9350 OpenEmbedded build system.
9351 By default, <filename>PKGE</filename> is set to
9352 <link linkend='var-PE'><filename>PE</filename></link>.
9353 </para>
9354 </glossdef>
9355 </glossentry>
9356
9357 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
9358 <info>
9359 PKGR[doc] = "The revision of the output package built by the OpenEmbedded build system."
9360 </info>
9361 <glossdef>
9362 <para role="glossdeffirst">
9363<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9364 The revision of the output package built by the
9365 OpenEmbedded build system.
9366 By default, <filename>PKGR</filename> is set to
9367 <link linkend='var-PR'><filename>PR</filename></link>.
9368 </para>
9369 </glossdef>
9370 </glossentry>
9371
9372 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
9373 <info>
9374 PKGV[doc] = "The version of the output package built by the OpenEmbedded build system."
9375 </info>
9376 <glossdef>
9377 <para role="glossdeffirst">
9378<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9379 The version of the output package built by the
9380 OpenEmbedded build system.
9381 By default, <filename>PKGV</filename> is set to
9382 <link linkend='var-PV'><filename>PV</filename></link>.
9383 </para>
9384 </glossdef>
9385 </glossentry>
9386
9387 <glossentry id='var-PN'><glossterm>PN</glossterm>
9388 <info>
9389 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."
9390 </info>
9391 <glossdef>
9392 <para role="glossdeffirst">
9393<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9394 This variable can have two separate functions depending on the context: a recipe
9395 name or a resulting package name.
9396 </para>
9397
9398 <para>
9399 <filename>PN</filename> refers to a recipe name in the context of a file used
9400 by the OpenEmbedded build system as input to create a package.
9401 The name is normally extracted from the recipe file name.
9402 For example, if the recipe is named
9403 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
9404 will be "expat".
9405 </para>
9406
9407 <para>
9408 The variable refers to a package name in the context of a file created or produced by the
9409 OpenEmbedded build system.
9410 </para>
9411
9412 <para>
9413 If applicable, the <filename>PN</filename> variable also contains any special
9414 suffix or prefix.
9415 For example, using <filename>bash</filename> to build packages for the native
9416 machine, <filename>PN</filename> is <filename>bash-native</filename>.
9417 Using <filename>bash</filename> to build packages for the target and for Multilib,
9418 <filename>PN</filename> would be <filename>bash</filename> and
9419 <filename>lib64-bash</filename>, respectively.
9420 </para>
9421 </glossdef>
9422 </glossentry>
9423
9424 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
9425 <info>
9426 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
9427 </info>
9428 <glossdef>
9429 <para role="glossdeffirst">
9430<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9431 Lists recipes you do not want the OpenEmbedded build system
9432 to build.
9433 This variable works in conjunction with the
9434 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
9435 class, which the recipe must inherit globally.
9436 </para>
9437
9438 <para>
9439 To prevent a recipe from being built, inherit the class
9440 globally and use the variable in your
9441 <filename>local.conf</filename> file.
9442 Here is an example that prevents
9443 <filename>myrecipe</filename> from being built:
9444 <literallayout class='monospaced'>
9445 INHERIT += "blacklist"
9446 PNBLACKLIST[myrecipe] = "Not supported by our organization."
9447 </literallayout>
9448 </para>
9449 </glossdef>
9450 </glossentry>
9451
9452 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
9453 <info>
9454 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."
9455 </info>
9456 <glossdef>
9457 <para role="glossdeffirst">
9458<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9459 Specifies a list of functions to call once the
9460 OpenEmbedded build system has created the host part of
9461 the SDK.
9462 You can specify functions separated by semicolons:
9463 <literallayout class='monospaced'>
9464 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
9465 </literallayout>
9466 </para>
9467
9468 <para>
9469 If you need to pass the SDK path to a command
9470 within a function, you can use
9471 <filename>${SDK_DIR}</filename>, which points to
9472 the parent directory used by the OpenEmbedded build
9473 system when creating SDK output.
9474 See the
9475 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
9476 variable for more information.
9477 </para>
9478 </glossdef>
9479 </glossentry>
9480
9481 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
9482 <info>
9483 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."
9484 </info>
9485 <glossdef>
9486 <para role="glossdeffirst">
9487<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9488 Specifies a list of functions to call once the
9489 OpenEmbedded build system has created the target part of
9490 the SDK.
9491 You can specify functions separated by semicolons:
9492 <literallayout class='monospaced'>
9493 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
9494 </literallayout>
9495 </para>
9496
9497 <para>
9498 If you need to pass the SDK path to a command
9499 within a function, you can use
9500 <filename>${SDK_DIR}</filename>, which points to
9501 the parent directory used by the OpenEmbedded build
9502 system when creating SDK output.
9503 See the
9504 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
9505 variable for more information.
9506 </para>
9507 </glossdef>
9508 </glossentry>
9509
9510 <glossentry id='var-PR'><glossterm>PR</glossterm>
9511 <info>
9512 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
9513 </info>
9514 <glossdef>
9515 <para role="glossdeffirst">
9516<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9517 The revision of the recipe.
9518 The default value for this variable is "r0".
9519 </para>
9520 </glossdef>
9521 </glossentry>
9522
9523 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
9524 <info>
9525 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
9526 </info>
9527 <glossdef>
9528 <para role="glossdeffirst">
9529<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9530 If multiple recipes provide an item, this variable
9531 determines which recipe should be given preference.
9532 You should always suffix the variable with the name of the
9533 provided item, and you should set it to the
9534 <link linkend='var-PN'><filename>PN</filename></link>
9535 of the recipe to which you want to give precedence.
9536 Some examples:
9537 <literallayout class='monospaced'>
9538 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
9539 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
9540 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
9541 </literallayout>
9542 </para>
9543 </glossdef>
9544 </glossentry>
9545
9546 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
9547 <info>
9548 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
9549 </info>
9550 <glossdef>
9551 <para role="glossdeffirst">
9552<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9553 If there are multiple versions of recipes available, this
9554 variable determines which recipe should be given preference.
9555 You must always suffix the variable with the
9556 <link linkend='var-PN'><filename>PN</filename></link>
9557 you want to select, and you should set the
9558 <link linkend='var-PV'><filename>PV</filename></link>
9559 accordingly for precedence.
9560 You can use the "<filename>%</filename>" character as a
9561 wildcard to match any number of characters, which can be
9562 useful when specifying versions that contain long revision
9563 numbers that could potentially change.
9564 Here are two examples:
9565 <literallayout class='monospaced'>
9566 PREFERRED_VERSION_python = "2.7.3"
9567 PREFERRED_VERSION_linux-yocto = "3.19%"
9568 </literallayout>
9569 </para>
9570 </glossdef>
9571 </glossentry>
9572
9573 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
9574 <info>
9575 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
9576 </info>
9577 <glossdef>
9578 <para role="glossdeffirst">
9579<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9580 Specifies additional paths from which the OpenEmbedded
9581 build system gets source code.
9582 When the build system searches for source code, it first
9583 tries the local download directory.
9584 If that location fails, the build system tries locations
9585 defined by <filename>PREMIRRORS</filename>, the upstream
9586 source, and then locations specified by
9587 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
9588 in that order.
9589 </para>
9590
9591 <para>
9592 Assuming your distribution
9593 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
9594 is "poky", the default value for
9595 <filename>PREMIRRORS</filename> is defined in the
9596 <filename>conf/distro/poky.conf</filename> file in the
9597 <filename>meta-yocto</filename> Git repository.
9598 </para>
9599
9600 <para>
9601 Typically, you could add a specific server for the
9602 build system to attempt before any others by adding
9603 something like the following to the
9604 <filename>local.conf</filename> configuration file in the
9605 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
9606 <literallayout class='monospaced'>
9607 PREMIRRORS_prepend = "\
9608 git://.*/.* http://www.yoctoproject.org/sources/ \n \
9609 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
9610 http://.*/.* http://www.yoctoproject.org/sources/ \n \
9611 https://.*/.* http://www.yoctoproject.org/sources/ \n"
9612 </literallayout>
9613 These changes cause the build system to intercept
9614 Git, FTP, HTTP, and HTTPS requests and direct them to
9615 the <filename>http://</filename> sources mirror.
9616 You can use <filename>file://</filename> URLs to point
9617 to local directories or network shares as well.
9618 </para>
9619 </glossdef>
9620 </glossentry>
9621
9622 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
9623 <info>
9624 PRIORITY[doc] = "Indicates the importance of a package. The default value is 'optional'. Other standard values are 'required', 'standard' and 'extra'."
9625 </info>
9626 <glossdef>
9627 <para role="glossdeffirst">
9628<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9629 Indicates the importance of a package.
9630 </para>
9631
9632 <para>
9633 <filename>PRIORITY</filename> is considered to be part of
9634 the distribution policy because the importance of any given
9635 recipe depends on the purpose for which the distribution
9636 is being produced.
9637 Thus, <filename>PRIORITY</filename> is not normally set
9638 within recipes.
9639 </para>
9640
9641 <para>
9642 You can set <filename>PRIORITY</filename> to "required",
9643 "standard", "extra", and "optional", which is the default.
9644 </para>
9645 </glossdef>
9646 </glossentry>
9647
9648 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
9649 <info>
9650 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
9651 </info>
9652 <glossdef>
9653 <para role="glossdeffirst">
9654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9655 Specifies libraries installed within a recipe that
9656 should be ignored by the OpenEmbedded build system's
9657 shared library resolver.
9658 This variable is typically used when software being
9659 built by a recipe has its own private versions of a
9660 library normally provided by another recipe.
9661 In this case, you would not want the package containing
9662 the private libraries to be set as a dependency on other
9663 unrelated packages that should instead depend on the
9664 package providing the standard version of the library.
9665 </para>
9666
9667 <para>
9668 Libraries specified in this variable should be specified
9669 by their file name.
9670 For example, from the Firefox recipe in meta-browser:
9671 <literallayout class='monospaced'>
9672 PRIVATE_LIBS = "libmozjs.so \
9673 libxpcom.so \
9674 libnspr4.so \
9675 libxul.so \
9676 libmozalloc.so \
9677 libplc4.so \
9678 libplds4.so"
9679 </literallayout>
9680 </para>
9681 </glossdef>
9682 </glossentry>
9683
9684 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
9685 <info>
9686 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."
9687 </info>
9688 <glossdef>
9689 <para role="glossdeffirst">
9690<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9691 A list of aliases by which a particular recipe can be
9692 known.
9693 By default, a recipe's own
9694 <filename><link linkend='var-PN'>PN</link></filename>
9695 is implicitly already in its <filename>PROVIDES</filename>
9696 list.
9697 If a recipe uses <filename>PROVIDES</filename>, the
9698 additional aliases are synonyms for the recipe and can
9699 be useful satisfying dependencies of other recipes during
9700 the build as specified by
9701 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
9702 </para>
9703
9704 <para>
9705 Consider the following example
9706 <filename>PROVIDES</filename> statement from a recipe
9707 file <filename>libav_0.8.11.bb</filename>:
9708 <literallayout class='monospaced'>
9709 PROVIDES += "libpostproc"
9710 </literallayout>
9711 The <filename>PROVIDES</filename> statement results in
9712 the "libav" recipe also being known as "libpostproc".
9713 </para>
9714 </glossdef>
9715 </glossentry>
9716
9717 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
9718 <info>
9719 PRSERV_HOST[doc] = "The network based PR service host and port."
9720 </info>
9721 <glossdef>
9722 <para role="glossdeffirst">
9723<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9724 The network based
9725 <link linkend='var-PR'><filename>PR</filename></link>
9726 service host and port.
9727 </para>
9728
9729 <para>
9730 The <filename>conf/local.conf.sample.extended</filename>
9731 configuration file in the
9732 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
9733 shows how the <filename>PRSERV_HOST</filename> variable is
9734 set:
9735 <literallayout class='monospaced'>
9736 PRSERV_HOST = "localhost:0"
9737 </literallayout>
9738 You must set the variable if you want to automatically
9739 start a local
9740 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
9741 You can set <filename>PRSERV_HOST</filename> to other
9742 values to use a remote PR service.
9743 </para>
9744 </glossdef>
9745 </glossentry>
9746
9747 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
9748 <info>
9749 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
9750 </info>
9751 <glossdef>
9752 <para role="glossdeffirst">
9753<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9754 Specifies whether or not
9755 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
9756 (ptest) functionality is enabled when building a recipe.
9757 You should not set this variable directly.
9758 Enabling and disabling building Package Tests
9759 at build time should be done by adding "ptest" to (or
9760 removing it from)
9761 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
9762 </para>
9763 </glossdef>
9764 </glossentry>
9765
9766 <glossentry id='var-PV'><glossterm>PV</glossterm>
9767 <info>
9768 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
9769 </info>
9770 <glossdef>
9771 <para role="glossdeffirst">
9772<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9773 The version of the recipe.
9774 The version is normally extracted from the recipe filename.
9775 For example, if the recipe is named
9776 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PV</filename>
9777 will be "2.0.1".
9778 <filename>PV</filename> is generally not overridden within
9779 a recipe unless it is building an unstable (i.e. development) version from a source code repository
9780 (e.g. Git or Subversion).
9781 </para>
9782 </glossdef>
9783 </glossentry>
9784
9785 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
9786 <info>
9787 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."
9788 </info>
9789 <glossdef>
9790 <para role="glossdeffirst">
9791<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9792 When used by recipes that inherit the
9793 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
9794 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
9795 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
9796 or
9797 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
9798 classes, denotes the Application Binary Interface (ABI)
9799 currently in use for Python.
9800 By default, the ABI is "m".
9801 You do not have to set this variable as the OpenEmbedded
9802 build system sets it for you.
9803 </para>
9804
9805 <para>
9806 The OpenEmbedded build system uses the ABI to construct
9807 directory names used when installing the Python headers
9808 and libraries in sysroot
9809 (e.g. <filename>.../python3.3m/...</filename>).
9810 </para>
9811
9812 <para>
9813 Recipes that inherit the
9814 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>
9815 class during cross-builds also use this variable to
9816 locate the headers and libraries of the appropriate Python
9817 that the extension is targeting.
9818 </para>
9819 </glossdef>
9820 </glossentry>
9821
9822 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
9823 <info>
9824 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
9825 </info>
9826 <glossdef>
9827 <para role="glossdeffirst">
9828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9829 When used by recipes that inherit the
9830 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
9831 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
9832 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
9833 or
9834 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
9835 classes, specifies the major Python version being built.
9836 For Python 2.x, <filename>PYTHON_PN</filename> would
9837 be "python2". For Python 3.x, the variable would be
9838 "python3".
9839 You do not have to set this variable as the
9840 OpenEmbedded build system automatically sets it for you.
9841 </para>
9842
9843 <para>
9844 The variable allows recipes to use common infrastructure
9845 such as the following:
9846 <literallayout class='monospaced'>
9847 DEPENDS += "${PYTHON_PN}-native"
9848 </literallayout>
9849 In the previous example, the version of the dependency
9850 is <filename>PYTHON_PN</filename>.
9851 </para>
9852 </glossdef>
9853 </glossentry>
9854
9855 </glossdiv>
9856
9857 <glossdiv id='var-glossary-q'><title>Q</title>
9858
9859 <glossentry id='var-QMAKE_PROFILES'><glossterm>QMAKE_PROFILES</glossterm>
9860 <info>
9861 QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for use with qmake."
9862 </info>
9863 <glossdef>
9864 <para role="glossdeffirst">
9865<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9866 Specifies your own subset of <filename>.pro</filename>
9867 files to be built for use with
9868 <filename>qmake</filename>.
9869 If you do not set this variable, all
9870 <filename>.pro</filename> files in the directory pointed to
9871 by <link linkend='var-S'><filename>S</filename></link>
9872 will be built by default.
9873 </para>
9874
9875 <para>
9876 This variable is used with recipes that inherit the
9877 <link linkend='ref-classes-qmake*'><filename>qmake_base</filename></link>
9878 class or other classes that inherit
9879 <filename>qmake_base</filename>.
9880 </para>
9881 </glossdef>
9882 </glossentry>
9883
9884 </glossdiv>
9885
9886 <glossdiv id='var-glossary-r'><title>R</title>
9887
9888 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
9889 <info>
9890 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
9891 </info>
9892 <glossdef>
9893 <para role="glossdeffirst">
9894<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9895 The minimal command and arguments to run
9896 <filename>ranlib</filename>.
9897 </para>
9898 </glossdef>
9899 </glossentry>
9900
9901 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
9902 <info>
9903 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."
9904 </info>
9905 <glossdef>
9906 <para role="glossdeffirst">
9907<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9908 The list of packages that conflict with packages.
9909 Note that packages will not be installed if conflicting
9910 packages are not first removed.
9911 </para>
9912
9913 <para>
9914 Like all package-controlling variables, you must always use
9915 them in conjunction with a package name override.
9916 Here is an example:
9917 <literallayout class='monospaced'>
9918 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
9919 </literallayout>
9920 </para>
9921
9922 <para>
9923 BitBake, which the OpenEmbedded build system uses, supports
9924 specifying versioned dependencies.
9925 Although the syntax varies depending on the packaging
9926 format, BitBake hides these differences from you.
9927 Here is the general syntax to specify versions with
9928 the <filename>RCONFLICTS</filename> variable:
9929 <literallayout class='monospaced'>
9930 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
9931 </literallayout>
9932 For <filename>operator</filename>, you can specify the
9933 following:
9934 <literallayout class='monospaced'>
9935 =
9936 &lt;
9937 &gt;
9938 &lt;=
9939 &gt;=
9940 </literallayout>
9941 For example, the following sets up a dependency on version
9942 1.2 or greater of the package <filename>foo</filename>:
9943 <literallayout class='monospaced'>
9944 RCONFLICTS_${PN} = "foo (>= 1.2)"
9945 </literallayout>
9946 </para>
9947 </glossdef>
9948 </glossentry>
9949
9950 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
9951 <info>
9952 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)."
9953 </info>
9954 <glossdef>
9955 <para role="glossdeffirst">
9956<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9957 Lists a package's runtime dependencies (i.e. other packages)
9958 that must be installed in order for the built package to run
9959 correctly.
9960 If a package in this list cannot be found during the build,
9961 you will get a build error.
9962 </para>
9963
9964 <para>
9965 When you use the <filename>RDEPENDS</filename> variable
9966 in a recipe, you are essentially stating that the recipe's
9967 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
9968 task depends on the existence of a specific package.
9969 Consider this simple example for two recipes named "a" and
9970 "b" that produce similarly named IPK packages.
9971 In this example, the <filename>RDEPENDS</filename>
9972 statement appears in the "a" recipe:
9973 <literallayout class='monospaced'>
9974 RDEPENDS_${PN} = "b"
9975 </literallayout>
9976 Here, the dependency is such that the
9977 <filename>do_build</filename> task for recipe "a" depends
9978 on the
9979 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
9980 task of recipe "b".
9981 This means the package file for "b" must be available when
9982 the output for recipe "a" has been completely built.
9983 More importantly, package "a" will be marked as depending
9984 on package "b" in a manner that is understood by the
9985 package manager.
9986 </para>
9987
9988 <para>
9989 The names of the packages you list within
9990 <filename>RDEPENDS</filename> must be the names of other
9991 packages - they cannot be recipe names.
9992 Although package names and recipe names usually match,
9993 the important point here is that you are
9994 providing package names within the
9995 <filename>RDEPENDS</filename> variable.
9996 For an example of the default list of packages created from
9997 a recipe, see the
9998 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
9999 variable.
10000 </para>
10001
10002 <para>
10003 Because the <filename>RDEPENDS</filename> variable applies
10004 to packages being built, you should always use the variable
10005 in a form with an attached package name.
10006 For example, suppose you are building a development package
10007 that depends on the <filename>perl</filename> package.
10008 In this case, you would use the following
10009 <filename>RDEPENDS</filename> statement:
10010 <literallayout class='monospaced'>
10011 RDEPENDS_${PN}-dev += "perl"
10012 </literallayout>
10013 In the example, the development package depends on
10014 the <filename>perl</filename> package.
10015 Thus, the <filename>RDEPENDS</filename> variable has the
10016 <filename>${PN}-dev</filename> package name as part of the
10017 variable.
10018 </para>
10019
10020 <para>
10021 The package name you attach to the
10022 <filename>RDEPENDS</filename> variable must appear
10023 as it would in the <filename>PACKAGES</filename>
10024 namespace before any renaming of the output package by
10025 classes like
10026 <link linkend='ref-classes-debian'><filename>debian</filename></link>.
10027 </para>
10028
10029 <para>
10030 In many cases you do not need to explicitly add
10031 runtime dependencies using
10032 <filename>RDEPENDS</filename> since some automatic
10033 handling occurs:
10034 <itemizedlist>
10035 <listitem><para><emphasis><filename>shlibdeps</filename></emphasis>: If
10036 a runtime package contains a shared library
10037 (<filename>.so</filename>), the build
10038 processes the library in order to determine other
10039 libraries to which it is dynamically linked.
10040 The build process adds these libraries to
10041 <filename>RDEPENDS</filename> when creating the runtime
10042 package.</para></listitem>
10043 <listitem><para><emphasis><filename>pcdeps</filename></emphasis>: If
10044 the package ships a <filename>pkg-config</filename>
10045 information file, the build process uses this file
10046 to add items to the <filename>RDEPENDS</filename>
10047 variable to create the runtime packages.
10048 </para></listitem>
10049 </itemizedlist>
10050 </para>
10051
10052 <para>
10053 BitBake, which the OpenEmbedded build system uses, supports
10054 specifying versioned dependencies.
10055 Although the syntax varies depending on the packaging
10056 format, BitBake hides these differences from you.
10057 Here is the general syntax to specify versions with
10058 the <filename>RDEPENDS</filename> variable:
10059 <literallayout class='monospaced'>
10060 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10061 </literallayout>
10062 For <filename>operator</filename>, you can specify the
10063 following:
10064 <literallayout class='monospaced'>
10065 =
10066 &lt;
10067 &gt;
10068 &lt;=
10069 &gt;=
10070 </literallayout>
10071 For example, the following sets up a dependency on version
10072 1.2 or greater of the package <filename>foo</filename>:
10073 <literallayout class='monospaced'>
10074 RDEPENDS_${PN} = "foo (>= 1.2)"
10075 </literallayout>
10076 </para>
10077
10078 <para>
10079 For information on build-time dependencies, see the
10080 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
10081 variable.
10082 </para>
10083 </glossdef>
10084 </glossentry>
10085
10086 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
10087 <info>
10088 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."
10089 </info>
10090 <glossdef>
10091 <para role="glossdeffirst">
10092<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10093 When inheriting the
10094 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
10095 class, this
10096 variable identifies distribution features that must
10097 exist in the current configuration in order for the
10098 OpenEmbedded build system to build the recipe.
10099 In other words, if the
10100 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
10101 lists a feature that does not appear in
10102 <filename>DISTRO_FEATURES</filename> within the
10103 current configuration, an error occurs and the
10104 build stops.
10105 </para>
10106 </glossdef>
10107 </glossentry>
10108
10109 <glossentry id='var-RM_OLD_IMAGE'><glossterm>RM_OLD_IMAGE</glossterm>
10110 <info>
10111 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."
10112 </info>
10113 <glossdef>
10114 <para role="glossdeffirst">
10115<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10116 Reclaims disk space by removing previously built
10117 versions of the same image from the
10118 <filename>images</filename> directory pointed to by the
10119 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
10120 variable.
10121 </para>
10122
10123 <para>
10124 Set this variable to "1" in your
10125 <filename>local.conf</filename> file to remove these
10126 images.
10127 </para>
10128 </glossdef>
10129 </glossentry>
10130
10131 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
10132 <info>
10133 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
10134 </info>
10135 <glossdef>
10136 <para role="glossdeffirst">
10137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10138 With <filename>rm_work</filename> enabled, this
10139 variable specifies a list of recipes whose work directories
10140 should not be removed.
10141 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
10142 section for more details.
10143 </para>
10144 </glossdef>
10145 </glossentry>
10146
10147 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
10148 <info>
10149 ROOT_HOME[doc] = "Defines the root home directory."
10150 </info>
10151 <glossdef>
10152 <para role="glossdeffirst">
10153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10154 Defines the root home directory.
10155 By default, this directory is set as follows in the
10156 BitBake configuration file:
10157 <literallayout class='monospaced'>
10158 ROOT_HOME ??= "/home/root"
10159 </literallayout>
10160 <note>
10161 This default value is likely used because some
10162 embedded solutions prefer to have a read-only root
10163 filesystem and prefer to keep writeable data in one
10164 place.
10165 </note>
10166 </para>
10167
10168 <para>
10169 You can override the default by setting the variable
10170 in any layer or in the <filename>local.conf</filename> file.
10171 Because the default is set using a "weak" assignment
10172 (i.e. "??="), you can use either of the following forms
10173 to define your override:
10174 <literallayout class='monospaced'>
10175 ROOT_HOME = "/root"
10176 ROOT_HOME ?= "/root"
10177 </literallayout>
10178 These override examples use <filename>/root</filename>,
10179 which is probably the most commonly used override.
10180 </para>
10181 </glossdef>
10182 </glossentry>
10183
10184 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
10185 <info>
10186 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
10187 </info>
10188 <glossdef>
10189 <para role="glossdeffirst">
10190<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10191 Indicates a filesystem image to include as the root
10192 filesystem.
10193 </para>
10194
10195 <para>
10196 The <filename>ROOTFS</filename> variable is an optional
10197 variable used with the
10198 <link linkend='ref-classes-bootimg'><filename>bootimg</filename></link>
10199 class.
10200 </para>
10201 </glossdef>
10202 </glossentry>
10203
10204 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
10205 <info>
10206 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
10207 </info>
10208 <glossdef>
10209 <para role="glossdeffirst">
10210<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10211 Specifies a list of functions to call after the
10212 OpenEmbedded build system has installed packages.
10213 You can specify functions separated by semicolons:
10214 <literallayout class='monospaced'>
10215 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
10216 </literallayout>
10217 </para>
10218
10219 <para>
10220 If you need to pass the root filesystem path to a command
10221 within a function, you can use
10222 <filename>${IMAGE_ROOTFS}</filename>, which points to
10223 the directory that becomes the root filesystem image.
10224 See the
10225 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10226 variable for more information.
10227 </para>
10228 </glossdef>
10229 </glossentry>
10230
10231 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
10232 <info>
10233 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
10234 </info>
10235 <glossdef>
10236 <para role="glossdeffirst">
10237<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10238 Specifies a list of functions to call once the
10239 OpenEmbedded build system has created the root filesystem.
10240 You can specify functions separated by semicolons:
10241 <literallayout class='monospaced'>
10242 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
10243 </literallayout>
10244 </para>
10245
10246 <para>
10247 If you need to pass the root filesystem path to a command
10248 within a function, you can use
10249 <filename>${IMAGE_ROOTFS}</filename>, which points to
10250 the directory that becomes the root filesystem image.
10251 See the
10252 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10253 variable for more information.
10254 </para>
10255 </glossdef>
10256 </glossentry>
10257
10258 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
10259 <info>
10260 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
10261 </info>
10262 <glossdef>
10263 <para role="glossdeffirst">
10264<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10265 Specifies a list of functions to call after the
10266 OpenEmbedded build system has removed unnecessary
10267 packages.
10268 When runtime package management is disabled in the
10269 image, several packages are removed including
10270 <filename>base-passwd</filename>,
10271 <filename>shadow</filename>, and
10272 <filename>update-alternatives</filename>.
10273 You can specify functions separated by semicolons:
10274 <literallayout class='monospaced'>
10275 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
10276 </literallayout>
10277 </para>
10278
10279 <para>
10280 If you need to pass the root filesystem path to a command
10281 within a function, you can use
10282 <filename>${IMAGE_ROOTFS}</filename>, which points to
10283 the directory that becomes the root filesystem image.
10284 See the
10285 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10286 variable for more information.
10287 </para>
10288 </glossdef>
10289 </glossentry>
10290
10291 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
10292 <info>
10293 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
10294 </info>
10295 <glossdef>
10296 <para role="glossdeffirst">
10297<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10298 Specifies a list of functions to call before the
10299 OpenEmbedded build system has created the root filesystem.
10300 You can specify functions separated by semicolons:
10301 <literallayout class='monospaced'>
10302 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
10303 </literallayout>
10304 </para>
10305
10306 <para>
10307 If you need to pass the root filesystem path to a command
10308 within a function, you can use
10309 <filename>${IMAGE_ROOTFS}</filename>, which points to
10310 the directory that becomes the root filesystem image.
10311 See the
10312 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10313 variable for more information.
10314 </para>
10315 </glossdef>
10316 </glossentry>
10317
10318 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
10319 <info>
10320 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."
10321 </info>
10322 <glossdef>
10323 <para role="glossdeffirst">
10324<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10325 A list of package name aliases that a package also provides.
10326 These aliases are useful for satisfying runtime dependencies
10327 of other packages both during the build and on the target
10328 (as specified by
10329 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
10330 <note>
10331 A package's own name is implicitly already in its
10332 <filename>RPROVIDES</filename> list.
10333 </note>
10334 </para>
10335
10336 <para>
10337 As with all package-controlling variables, you must always
10338 use the variable in conjunction with a package name override.
10339 Here is an example:
10340 <literallayout class='monospaced'>
10341 RPROVIDES_${PN} = "widget-abi-2"
10342 </literallayout>
10343 </para>
10344 </glossdef>
10345 </glossentry>
10346
10347 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
10348 <info>
10349 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."
10350 </info>
10351 <glossdef>
10352 <para role="glossdeffirst">
10353<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10354 A list of packages that extends the usability of a package
10355 being built.
10356 The package being built does not depend on this list of
10357 packages in order to successfully build, but rather
10358 uses them for extended usability.
10359 To specify runtime dependencies for packages, see the
10360 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
10361 variable.
10362 </para>
10363
10364 <para>
10365 The package manager will automatically install the
10366 <filename>RRECOMMENDS</filename> list of packages when
10367 installing the built package.
10368 However, you can prevent listed packages from being
10369 installed by using the
10370 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
10371 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
10372 and
10373 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
10374 variables.
10375 </para>
10376
10377 <para>
10378 Packages specified in
10379 <filename>RRECOMMENDS</filename> need not actually be
10380 produced.
10381 However, a recipe must exist that provides each package,
10382 either through the
10383 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
10384 or
10385 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
10386 variables or the
10387 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
10388 variable, or an error will occur during the build.
10389 If such a recipe does exist and the package is not produced,
10390 the build continues without error.
10391 </para>
10392
10393 <para>
10394 Because the <filename>RRECOMMENDS</filename> variable
10395 applies to packages being built, you should always attach
10396 an override to the variable to specify the particular
10397 package whose usability is being extended.
10398 For example, suppose you are building a development package
10399 that is extended to support wireless functionality.
10400 In this case, you would use the following:
10401 <literallayout class='monospaced'>
10402 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
10403 </literallayout>
10404 In the example, the package name
10405 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
10406 must appear as it would in the
10407 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
10408 namespace before any renaming of the output package by
10409 classes such as <filename>debian.bbclass</filename>.
10410 </para>
10411
10412 <para>
10413 BitBake, which the OpenEmbedded build system uses, supports
10414 specifying versioned recommends.
10415 Although the syntax varies depending on the packaging
10416 format, BitBake hides these differences from you.
10417 Here is the general syntax to specify versions with
10418 the <filename>RRECOMMENDS</filename> variable:
10419 <literallayout class='monospaced'>
10420 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10421 </literallayout>
10422 For <filename>operator</filename>, you can specify the
10423 following:
10424 <literallayout class='monospaced'>
10425 =
10426 &lt;
10427 &gt;
10428 &lt;=
10429 &gt;=
10430 </literallayout>
10431 For example, the following sets up a recommend on version
10432 1.2 or greater of the package <filename>foo</filename>:
10433 <literallayout class='monospaced'>
10434 RRECOMMENDS_${PN} = "foo (>= 1.2)"
10435 </literallayout>
10436 </para>
10437 </glossdef>
10438 </glossentry>
10439
10440 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
10441 <info>
10442 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."
10443 </info>
10444 <glossdef>
10445 <para role="glossdeffirst">
10446<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10447 A list of packages replaced by a package.
10448 The package manager uses this variable to determine which
10449 package should be installed to replace other package(s)
10450 during an upgrade.
10451 In order to also have the other package(s) removed at the
10452 same time, you must add the name of the other
10453 package to the
10454 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
10455 </para>
10456
10457 <para>
10458 As with all package-controlling variables, you must use
10459 this variable in conjunction with a package name
10460 override.
10461 Here is an example:
10462 <literallayout class='monospaced'>
10463 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
10464 </literallayout>
10465 </para>
10466
10467 <para>
10468 BitBake, which the OpenEmbedded build system uses, supports
10469 specifying versioned replacements.
10470 Although the syntax varies depending on the packaging
10471 format, BitBake hides these differences from you.
10472 Here is the general syntax to specify versions with
10473 the <filename>RREPLACES</filename> variable:
10474 <literallayout class='monospaced'>
10475 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10476 </literallayout>
10477 For <filename>operator</filename>, you can specify the
10478 following:
10479 <literallayout class='monospaced'>
10480 =
10481 &lt;
10482 &gt;
10483 &lt;=
10484 &gt;=
10485 </literallayout>
10486 For example, the following sets up a replacement using
10487 version 1.2 or greater of the package
10488 <filename>foo</filename>:
10489 <literallayout class='monospaced'>
10490 RREPLACES_${PN} = "foo (>= 1.2)"
10491 </literallayout>
10492 </para>
10493 </glossdef>
10494 </glossentry>
10495
10496 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
10497 <info>
10498 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."
10499 </info>
10500 <glossdef>
10501 <para role="glossdeffirst">
10502<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10503 A list of additional packages that you can suggest for
10504 installation by the package manager at the time a package
10505 is installed.
10506 Not all package managers support this functionality.
10507 </para>
10508
10509 <para>
10510 As with all package-controlling variables, you must always
10511 use this variable in conjunction with a package name
10512 override.
10513 Here is an example:
10514 <literallayout class='monospaced'>
10515 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
10516 </literallayout>
10517 </para>
10518 </glossdef>
10519 </glossentry>
10520
10521 </glossdiv>
10522
10523 <glossdiv id='var-glossary-s'><title>S</title>
10524
10525 <glossentry id='var-S'><glossterm>S</glossterm>
10526 <info>
10527 S[doc] = "The location in the Build Directory where unpacked package source code resides."
10528 </info>
10529 <glossdef>
10530 <para role="glossdeffirst">
10531<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10532 The location in the
10533 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
10534 where unpacked recipe source code resides.
10535 This location is within the work directory
10536 (<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>),
10537 which is not static.
10538 The unpacked source location depends on the recipe name
10539 (<filename><link linkend='var-PN'>PN</link></filename>) and
10540 recipe version
10541 (<filename><link linkend='var-PV'>PV</link></filename>) as
10542 follows:
10543 <literallayout class='monospaced'>
10544 ${WORKDIR}/${PN}-${PV}
10545 </literallayout>
10546 </para>
10547
10548 <para>
10549 As an example, assume a
10550 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
10551 top-level folder named <filename>poky</filename> and a
10552 default Build Directory at <filename>poky/build</filename>.
10553 In this case, the work directory the build system uses
10554 to keep the unpacked recipe for <filename>db</filename>
10555 is the following:
10556 <literallayout class='monospaced'>
10557 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
10558 </literallayout>
10559 </para>
10560 </glossdef>
10561 </glossentry>
10562
10563 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
10564 <info>
10565 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."
10566 </info>
10567 <glossdef>
10568 <para role="glossdeffirst">
10569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10570 Specifies a list of command-line utilities that should be
10571 checked for during the initial sanity checking process when
10572 running BitBake.
10573 If any of the utilities are not installed on the build host,
10574 then BitBake immediately exits with an error.
10575 </para>
10576 </glossdef>
10577 </glossentry>
10578
10579 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
10580 <info>
10581 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
10582 </info>
10583 <glossdef>
10584 <para role="glossdeffirst">
10585<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10586 A list of the host distribution identifiers that the
10587 build system has been tested against.
10588 Identifiers consist of the host distributor ID
10589 followed by the release,
10590 as reported by the <filename>lsb_release</filename> tool
10591 or as read from <filename>/etc/lsb-release</filename>.
10592 Separate the list items with explicit newline
10593 characters (<filename>\n</filename>).
10594 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
10595 and the current value of
10596 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
10597 does not appear in the list, then the build system reports
10598 a warning that indicates the current host distribution has
10599 not been tested as a build host.
10600 </para>
10601 </glossdef>
10602 </glossentry>
10603
10604 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
10605 <info>
10606 SDK_ARCH[doc] = "The target architecture for the SDK."
10607 </info>
10608 <glossdef>
10609 <para role="glossdeffirst">
10610<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10611 The target architecture for the SDK.
10612 Typically, you do not directly set this variable.
10613 Instead, use
10614 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
10615 </para>
10616 </glossdef>
10617 </glossentry>
10618
10619 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
10620 <info>
10621 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
10622 </info>
10623 <glossdef>
10624 <para role="glossdeffirst">
10625<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10626 The directory set up and used by the
10627 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
10628 to which the SDK is deployed.
10629 The <filename>populate_sdk_base</filename> class defines
10630 <filename>SDK_DEPLOY</filename> as follows:
10631 <literallayout class='monospaced'>
10632 SDK_DEPLOY = "${<link linkend='var-TMPDIR'>TMPDIR</link>}/deploy/sdk"
10633 </literallayout>
10634 </para>
10635 </glossdef>
10636 </glossentry>
10637
10638 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
10639 <info>
10640 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
10641 </info>
10642 <glossdef>
10643 <para role="glossdeffirst">
10644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10645 The parent directory used by the OpenEmbedded build system
10646 when creating SDK output.
10647 The
10648 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10649 class defines the variable as follows:
10650 <literallayout class='monospaced'>
10651 SDK_DIR = "${<link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>}/sdk"
10652 </literallayout>
10653 <note>
10654 The <filename>SDK_DIR</filename> directory is a
10655 temporary directory as it is part of
10656 <filename>WORKDIR</filename>.
10657 The final output directory is
10658 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
10659 </note>
10660 </para>
10661 </glossdef>
10662 </glossentry>
10663
10664 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
10665 <info>
10666 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."
10667 </info>
10668 <glossdef>
10669 <para role="glossdeffirst">
10670<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10671 The manifest file for the host part of the SDK.
10672 This file lists all the installed packages that make up
10673 the host part of SDK.
10674 The file contains package information on a line-per-package
10675 basis as follows:
10676 <literallayout class='monospaced'>
10677 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
10678 </literallayout>
10679 </para>
10680
10681 <para>
10682 The
10683 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10684 class defines the manifest file as follows:
10685 <literallayout class='monospaced'>
10686 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
10687 </literallayout>
10688 The location is derived using the
10689 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
10690 and
10691 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
10692 variables.
10693 </para>
10694 </glossdef>
10695 </glossentry>
10696
10697 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
10698 <info>
10699 SDK_NAME[doc] = "The base name for SDK output files."
10700 </info>
10701 <glossdef>
10702 <para role="glossdeffirst">
10703<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10704 The base name for SDK output files.
10705 The name is derived from the
10706 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
10707 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
10708 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
10709 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
10710 and
10711 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
10712 variables:
10713 <literallayout class='monospaced'>
10714 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
10715 </literallayout>
10716 </para>
10717 </glossdef>
10718 </glossentry>
10719
10720 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
10721 <info>
10722 SDK_OS[doc] = "The operating system for which the SDK will be built."
10723 </info>
10724 <glossdef>
10725 <para role="glossdeffirst">
10726<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10727 Specifies the operating system for which the SDK
10728 will be built.
10729 The default value is the value of
10730 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
10731 </para>
10732 </glossdef>
10733 </glossentry>
10734
10735 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
10736 <info>
10737 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
10738 </info>
10739 <glossdef>
10740 <para role="glossdeffirst">
10741<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10742 The location used by the OpenEmbedded build system when
10743 creating SDK output.
10744 The
10745 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10746 class defines the variable as follows:
10747 <literallayout class='monospaced'>
10748 SDK_OUTPUT = "${<link linkend='var-SDK_DIR'>SDK_DIR</link>}/image"
10749 </literallayout>
10750 <note>
10751 The <filename>SDK_OUTPUT</filename> directory is a
10752 temporary directory as it is part of
10753 <filename>WORKDIR</filename> by way of
10754 <filename>SDK_DIR</filename>.
10755 The final output directory is
10756 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
10757 </note>
10758 </para>
10759 </glossdef>
10760 </glossentry>
10761
10762 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
10763 <info>
10764 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."
10765 </info>
10766 <glossdef>
10767 <para role="glossdeffirst">
10768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10769 Specifies a list of architectures compatible with
10770 the SDK machine.
10771 This variable is set automatically and should not
10772 normally be hand-edited.
10773 Entries are separated using spaces and listed in order
10774 of priority.
10775 The default value for
10776 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
10777 ${SDK_ARCH}-${SDKPKGSUFFIX}".
10778 </para>
10779 </glossdef>
10780 </glossentry>
10781
10782 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
10783 <info>
10784 SDK_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the SDK."
10785 </info>
10786 <glossdef>
10787 <para role="glossdeffirst">
10788<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10789 Specifies a list of functions to call once the
10790 OpenEmbedded build system has created the SDK.
10791 You can specify functions separated by semicolons:
10792 <literallayout class='monospaced'>
10793 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
10794 </literallayout>
10795 </para>
10796
10797 <para>
10798 If you need to pass an SDK path to a command within a
10799 function, you can use
10800 <filename>${SDK_DIR}</filename>, which points to
10801 the parent directory used by the OpenEmbedded build system
10802 when creating SDK output.
10803 See the
10804 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10805 variable for more information.
10806 </para>
10807 </glossdef>
10808 </glossentry>
10809
10810 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
10811 <info>
10812 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
10813 </info>
10814 <glossdef>
10815 <para role="glossdeffirst">
10816<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10817 The toolchain binary prefix used for nativesdk recipes.
10818 The OpenEmbedded build system uses the
10819 <filename>SDK_PREFIX</filename> value to set the
10820 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
10821 when building <filename>nativesdk</filename> recipes.
10822 The default value is "${SDK_SYS}-".
10823 </para>
10824 </glossdef>
10825 </glossentry>
10826
10827 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
10828 <info>
10829 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
10830 </info>
10831 <glossdef>
10832 <para role="glossdeffirst">
10833<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10834 Specifies the system, including the architecture and the
10835 operating system, for which the SDK will be built.
10836 </para>
10837
10838 <para>
10839 The OpenEmbedded build system automatically sets this
10840 variable based on
10841 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
10842 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
10843 and
10844 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
10845 You do not need to set the <filename>SDK_SYS</filename>
10846 variable yourself.
10847 </para>
10848 </glossdef>
10849 </glossentry>
10850
10851 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
10852 <info>
10853 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."
10854 </info>
10855 <glossdef>
10856 <para role="glossdeffirst">
10857<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10858 The manifest file for the target part of the SDK.
10859 This file lists all the installed packages that make up
10860 the target part of the SDK.
10861 The file contains package information on a line-per-package
10862 basis as follows:
10863 <literallayout class='monospaced'>
10864 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
10865 </literallayout>
10866 </para>
10867
10868 <para>
10869 The
10870 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10871 class defines the manifest file as follows:
10872 <literallayout class='monospaced'>
10873 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
10874 </literallayout>
10875 The location is derived using the
10876 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
10877 and
10878 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
10879 variables.
10880 </para>
10881 </glossdef>
10882 </glossentry>
10883
10884 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
10885 <info>
10886 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
10887 </info>
10888 <glossdef>
10889 <para role="glossdeffirst">
10890<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10891 Specifies the name of the SDK vendor.
10892 </para>
10893 </glossdef>
10894 </glossentry>
10895
10896 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
10897 <info>
10898 SDK_VERSION[doc] = "Specifies the version for the SDK."
10899 </info>
10900 <glossdef>
10901 <para role="glossdeffirst">
10902<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10903 Specifies the version of the SDK.
10904 The distribution configuration file (e.g.
10905 <filename>/meta-yocto/conf/distro/poky.conf</filename>)
10906 defines the <filename>SDK_VERSION</filename> as follows:
10907 <literallayout class='monospaced'>
10908 SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
10909 </literallayout>
10910 </para>
10911
10912 <para>
10913 For additional information, see the
10914 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
10915 and
10916 <link linkend='var-DATE'><filename>DATE</filename></link>
10917 variables.
10918 </para>
10919 </glossdef>
10920 </glossentry>
10921
10922 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
10923 <info>
10924 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'."
10925 </info>
10926 <glossdef>
10927 <para role="glossdeffirst">
10928<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10929 Equivalent to
10930 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
10931 However, this variable applies to the SDK generated from an
10932 image using the following command:
10933 <literallayout class='monospaced'>
10934 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
10935 </literallayout>
10936 </para>
10937 </glossdef>
10938 </glossentry>
10939
10940 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
10941 <info>
10942 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items."
10943 </info>
10944 <glossdef>
10945 <para role="glossdeffirst">
10946<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10947 The machine for which the Application Development Toolkit
10948 (ADT) or SDK is built.
10949 In other words, the SDK or ADT is built such that it
10950 runs on the target you specify with the
10951 <filename>SDKMACHINE</filename> value.
10952 The value points to a corresponding
10953 <filename>.conf</filename> file under
10954 <filename>conf/machine-sdk/</filename>.
10955 </para>
10956
10957 <para>
10958 You can use "i686" and "x86_64" as possible values
10959 for this variable. The variable defaults to "i686"
10960 and is set in the local.conf file in the Build Directory.
10961 <literallayout class='monospaced'>
10962 SDKMACHINE ?= "i686"
10963 </literallayout>
10964 <note>
10965 You cannot set the <filename>SDKMACHINE</filename>
10966 variable in your distribution configuration file.
10967 If you do, the configuration will not take affect.
10968 </note>
10969 </para>
10970 </glossdef>
10971 </glossentry>
10972
10973 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
10974 <info>
10975 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
10976 </info>
10977 <glossdef>
10978 <para role="glossdeffirst">
10979<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10980 Defines the path offered to the user for installation
10981 of the SDK that is generated by the OpenEmbedded build
10982 system.
10983 The path appears as the default location for installing
10984 the SDK when you run the SDK's installation script.
10985 You can override the offered path when you run the
10986 script.
10987 </para>
10988 </glossdef>
10989 </glossentry>
10990
10991 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
10992 <info>
10993 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
10994 </info>
10995 <glossdef>
10996 <para role="glossdeffirst">
10997<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10998 The full path to the sysroot used for cross-compilation
10999 within an SDK as it will be when installed into the
11000 default
11001 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
11002 </para>
11003 </glossdef>
11004 </glossentry>
11005
11006 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
11007 <info>
11008 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
11009 </info>
11010 <glossdef>
11011 <para role="glossdeffirst">
11012<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11013 The section in which packages should be categorized.
11014 Package management utilities can make use of this variable.
11015 </para>
11016 </glossdef>
11017 </glossentry>
11018
11019 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
11020 <info>
11021 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."
11022 </info>
11023 <glossdef>
11024 <para role="glossdeffirst">
11025<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11026 Specifies the optimization flags passed to the C compiler
11027 when building for the target.
11028 The flags are passed through the default value of the
11029 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
11030 variable.
11031 </para>
11032
11033 <para>
11034 The <filename>SELECTED_OPTIMIZATION</filename> variable
11035 takes the value of
11036 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
11037 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
11038 If that is the case, the value of
11039 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
11040 </para>
11041 </glossdef>
11042 </glossentry>
11043
11044 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
11045 <info>
11046 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."
11047 </info>
11048 <glossdef>
11049 <para role="glossdeffirst">
11050<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11051 Defines a serial console (TTY) to enable using getty.
11052 Provide a value that specifies the baud rate followed by
11053 the TTY device name separated by a space.
11054 You cannot specify more than one TTY device:
11055 <literallayout class='monospaced'>
11056 SERIAL_CONSOLE = "115200 ttyS0"
11057 </literallayout>
11058 <note>
11059 The <filename>SERIAL_CONSOLE</filename> variable
11060 is deprecated.
11061 Please use the
11062 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
11063 variable.
11064 </note>
11065 </para>
11066 </glossdef>
11067 </glossentry>
11068
11069 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
11070 <info>
11071 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
11072 </info>
11073 <glossdef>
11074 <para role="glossdeffirst">
11075<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11076 Defines the serial consoles (TTYs) to enable using getty.
11077 Provide a value that specifies the baud rate followed by
11078 the TTY device name separated by a semicolon.
11079 Use spaces to separate multiple devices:
11080 <literallayout class='monospaced'>
11081 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
11082 </literallayout>
11083 </para>
11084 </glossdef>
11085 </glossentry>
11086
11087 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
11088 <info>
11089 SERIAL_CONSOLES_CHECK[doc] = "Similar to SERIAL_CONSOLES except the device is checked for existence before attempting to enable it. Supported only by SysVinit."
11090 </info>
11091 <glossdef>
11092 <para role="glossdeffirst">
11093<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11094 Similar to
11095 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
11096 except the device is checked for existence before attempting
11097 to enable it.
11098 This variable is currently only supported with SysVinit
11099 (i.e. not with systemd).
11100 </para>
11101 </glossdef>
11102 </glossentry>
11103
11104 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
11105 <info>
11106 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."
11107 </info>
11108 <glossdef>
11109 <para role="glossdeffirst">
11110<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11111 A list of recipe dependencies that should not be used to
11112 determine signatures of tasks from one recipe when they
11113 depend on tasks from another recipe.
11114 For example:
11115 <literallayout class='monospaced'>
11116 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
11117 </literallayout>
11118 </para>
11119
11120 <para>
11121 In this example, <filename>intone</filename> depends on
11122 <filename>mplayer2</filename>.
11123 </para>
11124
11125 <para>
11126 Use of this variable is one mechanism to remove dependencies
11127 that affect task signatures and thus force rebuilds when a
11128 recipe changes.
11129 <note><title>Caution</title>
11130 If you add an inappropriate dependency for a recipe
11131 relationship, the software might break during
11132 runtime if the interface of the second recipe was
11133 changed after the first recipe had been built.
11134 </note>
11135 </para>
11136 </glossdef>
11137 </glossentry>
11138
11139 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
11140 <info>
11141 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
11142 </info>
11143 <glossdef>
11144 <para role="glossdeffirst">
11145<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11146 A list of recipes that are completely stable and will
11147 never change.
11148 The ABI for the recipes in the list are presented by
11149 output from the tasks run to build the recipe.
11150 Use of this variable is one way to remove dependencies from
11151 one recipe on another that affect task signatures and
11152 thus force rebuilds when the recipe changes.
11153 <note><title>Caution</title>
11154 If you add an inappropriate variable to this list,
11155 the software might break at runtime if the
11156 interface of the recipe was changed after the other
11157 had been built.
11158 </note>
11159 </para>
11160 </glossdef>
11161 </glossentry>
11162
11163 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
11164 <info>
11165 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
11166 </info>
11167 <glossdef>
11168 <para role="glossdeffirst">
11169<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11170 Specifies the number of bits for the target system CPU.
11171 The value should be either "32" or "64".
11172 </para>
11173 </glossdef>
11174 </glossentry>
11175
11176 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
11177 <info>
11178 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'."
11179 </info>
11180 <glossdef>
11181 <para role="glossdeffirst">
11182<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11183 Specifies the endian byte order of the target system.
11184 The value should be either "le" for little-endian or "be" for big-endian.
11185 </para>
11186 </glossdef>
11187 </glossentry>
11188
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011189 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
11190 <info>
11191 SKIP_FILEDEPS[doc] = "Enables you to remove all files from
11192 the "Provides" section of an RPM package."
11193 </info>
11194 <glossdef>
11195 <para role="glossdeffirst">
11196<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11197 Enables removal of all files from the "Provides" section of
11198 an RPM package.
11199 Removal of these files is required for packages containing
11200 prebuilt binaries and libraries such as
11201 <filename>libstdc++</filename> and
11202 <filename>glibc</filename>.
11203 </para>
11204
11205 <para>
11206 To enable file removal, set the variable to "1" in your
11207 <filename>conf/local.conf</filename> configuration file
11208 in your:
11209 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
11210 <literallayout class='monospaced'>
11211 SKIP_FILEDEPS = "1"
11212 </literallayout>
11213 </para>
11214 </glossdef>
11215 </glossentry>
11216
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011217 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
11218 <info>
11219 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."
11220 </info>
11221 <glossdef>
11222 <para role="glossdeffirst">
11223<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11224 Groups together machines based upon the same family
11225 of SOC (System On Chip).
11226 You typically set this variable in a common
11227 <filename>.inc</filename> file that you include in the
11228 configuration files of all the machines.
11229 <note>
11230 You must include
11231 <filename>conf/machine/include/soc-family.inc</filename>
11232 for this variable to appear in
11233 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
11234 </note>
11235 </para>
11236 </glossdef>
11237 </glossentry>
11238
11239 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
11240 <info>
11241 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
11242 </info>
11243 <glossdef>
11244 <para role="glossdeffirst">
11245<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11246 Defines the suffix for shared libraries used on the
11247 target platform.
11248 By default, this suffix is ".so.*" for all Linux-based
11249 systems and is defined in the
11250 <filename>meta/conf/bitbake.conf</filename> configuration
11251 file.
11252 </para>
11253
11254 <para>
11255 You will see this variable referenced in the default values
11256 of <filename>FILES_${PN}</filename>.
11257 </para>
11258 </glossdef>
11259 </glossentry>
11260
11261 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
11262 <info>
11263 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
11264 </info>
11265 <glossdef>
11266 <para role="glossdeffirst">
11267<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11268 Defines the suffix for the development symbolic link
11269 (symlink) for shared libraries on the target platform.
11270 By default, this suffix is ".so" for Linux-based
11271 systems and is defined in the
11272 <filename>meta/conf/bitbake.conf</filename> configuration
11273 file.
11274 </para>
11275
11276 <para>
11277 You will see this variable referenced in the default values
11278 of <filename>FILES_${PN}-dev</filename>.
11279 </para>
11280 </glossdef>
11281 </glossentry>
11282
11283 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
11284 <info>
11285 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
11286 </info>
11287 <glossdef>
11288 <para role="glossdeffirst">
11289<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11290 When you are fetching files to create a mirror of sources
11291 (i.e. creating a source mirror), setting
11292 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
11293 <filename>local.conf</filename> configuration file ensures
11294 the source for all recipes are fetched regardless of
11295 whether or not a recipe is compatible with the
11296 configuration.
11297 A recipe is considered incompatible with the currently
11298 configured machine when either or both the
11299 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
11300 variable and
11301 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
11302 variables specify compatibility with a machine other
11303 than that of the current machine or host.
11304 <note><title>Warning</title>
11305 Do not set the
11306 <filename>SOURCE_MIRROR_FETCH</filename> variable
11307 unless you are creating a source mirror.
11308 In other words, do not set the variable during a
11309 normal build.
11310 </note>
11311 </para>
11312 </glossdef>
11313 </glossentry>
11314
11315 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
11316 <info>
11317 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
11318 </info>
11319 <glossdef>
11320 <para role="glossdeffirst">
11321<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11322 Defines your own
11323 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
11324 from which to first fetch source before attempting to fetch
11325 from the upstream specified in
11326 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
11327 </para>
11328
11329 <para>
11330 To use this variable, you must globally inherit the
11331 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
11332 class and then provide the URL to your mirrors.
11333 Here is the general syntax:
11334 <literallayout class='monospaced'>
11335 INHERIT += "own-mirrors"
11336 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
11337 </literallayout>
11338 <note>
11339 You can specify only a single URL in
11340 <filename>SOURCE_MIRROR_URL</filename>.
11341 </note>
11342 </para>
11343 </glossdef>
11344 </glossentry>
11345
11346 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
11347 <info>
11348 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
11349 </info>
11350 <glossdef>
11351 <para role="glossdeffirst">
11352<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11353 Maps commonly used license names to their SPDX counterparts
11354 found in <filename>meta/files/common-licenses/</filename>.
11355 For the default <filename>SPDXLICENSEMAP</filename>
11356 mappings, see the
11357 <filename>meta/conf/licenses.conf</filename> file.
11358 </para>
11359
11360 <para>
11361 For additional information, see the
11362 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
11363 variable.
11364 </para>
11365 </glossdef>
11366 </glossentry>
11367
11368 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
11369 <info>
11370 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."
11371 </info>
11372 <glossdef>
11373 <para role="glossdeffirst">
11374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11375 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
11376 OpenEmbedded build system to create variants of recipes or packages.
11377 The list specifies the prefixes to strip off during certain circumstances
11378 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
11379 </para>
11380 </glossdef>
11381 </glossentry>
11382
11383 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
11384 <info>
11385 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."
11386 </info>
11387 <glossdef>
11388 <para role="glossdeffirst">
11389<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11390 The list of source files - local or remote.
11391 This variable tells the OpenEmbedded build system which bits
11392 to pull in for the build and how to pull them in.
11393 For example, if the recipe or append file only needs to
11394 fetch a tarball from the Internet, the recipe or
11395 append file uses a single <filename>SRC_URI</filename>
11396 entry.
11397 On the other hand, if the recipe or append file needs to
11398 fetch a tarball, apply two patches, and include a custom
11399 file, the recipe or append file would include four
11400 instances of the variable.
11401 </para>
11402
11403 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011404 The following list explains the available URI protocols.
11405 URI protocols are highly dependent on particular BitBake
11406 Fetcher submodules.
11407 Depending on the fetcher BitBake uses, various URL
11408 parameters are employed.
11409 For specifics on the supported Fetchers, see the
11410 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
11411 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011412 <itemizedlist>
11413 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
11414 Fetches files, which are usually files shipped with
11415 the
11416 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>,
11417 from the local machine.
11418 The path is relative to the
11419 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
11420 variable.
11421 Thus, the build system searches, in order, from the
11422 following directories, which are assumed to be a
11423 subdirectories of the directory in which the
11424 recipe file (<filename>.bb</filename>) or
11425 append file (<filename>.bbappend</filename>)
11426 resides:
11427 <itemizedlist>
11428 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
11429 The base recipe name without any special
11430 suffix or version numbers.
11431 </para></listitem>
11432 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
11433 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
11434 The base recipe name and version but without
11435 any special package name suffix.
11436 </para></listitem>
11437 <listitem><para><emphasis>files -</emphasis>
11438 Files within a directory, which is named
11439 <filename>files</filename> and is also
11440 alongside the recipe or append file.
11441 </para></listitem>
11442 </itemizedlist>
11443 <note>
11444 If you want the build system to pick up files
11445 specified through a
11446 <filename>SRC_URI</filename>
11447 statement from your append file, you need to be
11448 sure to extend the
11449 <filename>FILESPATH</filename>
11450 variable by also using the
11451 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
11452 variable from within your append file.
11453 </note>
11454 </para></listitem>
11455 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
11456 Bazaar revision control repository.</para></listitem>
11457 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
11458 Git revision control repository.</para></listitem>
11459 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
11460 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
11461 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
11462 a repo (Git) repository.</para></listitem>
11463 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
11464 Fetches files from a ClearCase repository.
11465 </para></listitem>
11466 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
11467 the Internet using <filename>http</filename>.</para></listitem>
11468 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
11469 from the Internet using <filename>https</filename>.</para></listitem>
11470 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
11471 from the Internet using <filename>ftp</filename>.</para></listitem>
11472 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
11473 a CVS revision control repository.</para></listitem>
11474 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
11475 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
11476 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
11477 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
11478 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
11479 a secure shell.</para></listitem>
11480 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
11481 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
11482 </itemizedlist>
11483 </para>
11484
11485 <para>
11486 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
11487 Here are standard options:
11488 <itemizedlist>
11489 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
11490 the patch or not.
11491 The default action is to apply the patch.</para></listitem>
11492 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
11493 striplevel to use when applying the patch.
11494 The default level is 1.</para></listitem>
11495 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
11496 the directory in which the patch should be applied.
11497 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
11498 </para></listitem>
11499 </itemizedlist>
11500 </para>
11501
11502 <para>
11503 Here are options specific to recipes building code from a revision control system:
11504 <itemizedlist>
11505 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
11506 Apply the patch only if
11507 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
11508 is equal to or greater than <filename>mindate</filename>.
11509 </para></listitem>
11510 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
11511 Apply the patch only if <filename>SRCDATE</filename>
11512 is not later than <filename>mindate</filename>.
11513 </para></listitem>
11514 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
11515 Apply the patch only if <filename>SRCREV</filename>
11516 is equal to or greater than <filename>minrev</filename>.
11517 </para></listitem>
11518 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
11519 Apply the patch only if <filename>SRCREV</filename>
11520 is not later than <filename>maxrev</filename>.
11521 </para></listitem>
11522 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
11523 Apply the patch only if <filename>SRCREV</filename>
11524 is equal to <filename>rev</filename>.
11525 </para></listitem>
11526 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
11527 Apply the patch only if <filename>SRCREV</filename>
11528 is not equal to <filename>rev</filename>.
11529 </para></listitem>
11530 </itemizedlist>
11531 </para>
11532
11533 <para>
11534 Here are some additional options worth mentioning:
11535 <itemizedlist>
11536 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
11537 whether or not to unpack the file if it is an archive.
11538 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011539 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
11540 (or extracts its contents) into the specified
11541 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
11542 when the Git fetcher is used.
11543 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011544 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
11545 (or extracts its contents) into the specified
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011546 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
11547 when the local (<filename>file://</filename>)
11548 fetcher is used.
11549 </para></listitem>
11550 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
11551 (or extracts its contents) into the specified
11552 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
11553 when the CVS fetcher is used.
11554 </para></listitem>
11555 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
11556 Limits the checkout to a specific subpath of the
11557 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011558 </para></listitem>
11559 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
11560 name to be used for association with <filename>SRC_URI</filename> checksums
11561 when you have more than one file specified in <filename>SRC_URI</filename>.
11562 </para></listitem>
11563 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
11564 the filename used when storing the downloaded file.</para></listitem>
11565 </itemizedlist>
11566 </para>
11567 </glossdef>
11568 </glossentry>
11569
11570 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
11571 <info>
11572 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."
11573 </info>
11574 <glossdef>
11575 <para role="glossdeffirst">
11576<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11577 By default, the OpenEmbedded build system automatically detects whether
11578 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
11579 contains files that are machine-specific.
11580 If so, the build system automatically changes
11581 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
11582 Setting this variable to "0" disables this behavior.
11583 </para>
11584 </glossdef>
11585 </glossentry>
11586
11587 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
11588 <info>
11589 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)."
11590 </info>
11591 <glossdef>
11592 <para role="glossdeffirst">
11593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11594 The date of the source code used to build the package.
11595 This variable applies only if the source was fetched from a Source Code Manager (SCM).
11596 </para>
11597 </glossdef>
11598 </glossentry>
11599
11600 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
11601 <info>
11602 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
11603 </info>
11604 <glossdef>
11605 <para role="glossdeffirst">
11606<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11607 Returns the version string of the current package.
11608 This string is used to help define the value of
11609 <link linkend='var-PV'><filename>PV</filename></link>.
11610 </para>
11611
11612 <para>
11613 The <filename>SRCPV</filename> variable is defined in the
11614 <filename>meta/conf/bitbake.conf</filename> configuration
11615 file in the
11616 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
11617 as follows:
11618 <literallayout class='monospaced'>
11619 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
11620 </literallayout>
11621 </para>
11622
11623 <para>
11624 Recipes that need to define <filename>PV</filename> do so
11625 with the help of the <filename>SRCPV</filename>.
11626 For example, the <filename>ofono</filename> recipe
11627 (<filename>ofono_git.bb</filename>) located in
11628 <filename>meta/recipes-connectivity</filename> in the
11629 Source Directory defines <filename>PV</filename> as
11630 follows:
11631 <literallayout class='monospaced'>
11632 PV = "0.12-git${SRCPV}"
11633 </literallayout>
11634 </para>
11635 </glossdef>
11636 </glossentry>
11637
11638 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
11639 <info>
11640 SRCREV[doc] = "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial and Bazaar only."
11641 </info>
11642 <glossdef>
11643 <para role="glossdeffirst">
11644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11645 The revision of the source code used to build the package.
11646 This variable applies to Subversion, Git, Mercurial and
11647 Bazaar only.
11648 Note that if you want to build a fixed revision and you
11649 want to avoid performing a query on the remote repository
11650 every time BitBake parses your recipe, you should specify
11651 a <filename>SRCREV</filename> that is a
11652 full revision identifier and not just a tag.
11653 </para>
11654
11655 <note>
11656 For information on limitations when inheriting the latest
11657 revision of software using <filename>SRCREV</filename>,
11658 see the
11659 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
11660 variable description.
11661 </note>
11662 </glossdef>
11663 </glossentry>
11664
11665 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
11666 <info>
11667 SSTATE_DIR[doc] = "The directory for the shared state cache."
11668 </info>
11669 <glossdef>
11670 <para role="glossdeffirst">
11671<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11672 The directory for the shared state cache.
11673 </para>
11674 </glossdef>
11675 </glossentry>
11676
11677 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
11678 <info>
11679 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"."
11680 </info>
11681 <glossdef>
11682 <para role="glossdeffirst">
11683<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11684 If set to "1", allows fetches from
11685 mirrors that are specified in
11686 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
11687 to work even when fetching from the network has been
11688 disabled by setting <filename>BB_NO_NETWORK</filename>
11689 to "1".
11690 Using the
11691 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
11692 variable is useful if you have set
11693 <filename>SSTATE_MIRRORS</filename> to point to an
11694 internal server for your shared state cache, but
11695 you want to disable any other fetching from the network.
11696 </para>
11697 </glossdef>
11698 </glossentry>
11699
11700 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
11701 <info>
11702 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."
11703 </info>
11704 <glossdef>
11705 <para role="glossdeffirst">
11706<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11707 Configures the OpenEmbedded build system to search other
11708 mirror locations for prebuilt cache data objects before
11709 building out the data.
11710 This variable works like fetcher
11711 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
11712 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
11713 and points to the cache locations to check for the shared
11714 objects.
11715 </para>
11716
11717 <para>
11718 You can specify a filesystem directory or a remote URL such
11719 as HTTP or FTP.
11720 The locations you specify need to contain the shared state
11721 cache (sstate-cache) results from previous builds.
11722 The sstate-cache you point to can also be from builds on
11723 other machines.
11724 </para>
11725
11726 <para>
11727 If a mirror uses the same structure as
11728 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
11729 you need to add
11730 "PATH" at the end as shown in the examples below.
11731 The build system substitutes the correct path within the
11732 directory structure.
11733 <literallayout class='monospaced'>
11734 SSTATE_MIRRORS ?= "\
11735 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH \n \
11736 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
11737 </literallayout>
11738 </para>
11739 </glossdef>
11740 </glossentry>
11741
11742 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
11743 <info>
11744 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
11745 </info>
11746 <glossdef>
11747 <para role="glossdeffirst">
11748<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11749 Specifies the path to the <filename>/lib</filename>
11750 subdirectory of the sysroot directory for the
11751 build host.
11752 </para>
11753 </glossdef>
11754 </glossentry>
11755
11756 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
11757 <info>
11758 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)."
11759 </info>
11760 <glossdef>
11761 <para role="glossdeffirst">
11762<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11763 Specifies the path to the <filename>/lib</filename>
11764 subdirectory of the sysroot directory for the target
11765 for which the current recipe is being built
11766 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11767 </para>
11768 </glossdef>
11769 </glossentry>
11770
11771 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
11772 <info>
11773 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)."
11774 </info>
11775 <glossdef>
11776 <para role="glossdeffirst">
11777<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11778 Specifies the path to the
11779 <filename>/usr/bin</filename> subdirectory of the
11780 sysroot directory for the target for which the current
11781 recipe is being built
11782 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11783 </para>
11784 </glossdef>
11785 </glossentry>
11786
11787 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
11788 <info>
11789 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."
11790 </info>
11791 <glossdef>
11792 <para role="glossdeffirst">
11793<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11794 Specifies the path to the directory containing binary
11795 configuration scripts.
11796 These scripts provide configuration information for
11797 other software that wants to make use of libraries or
11798 include files provided by the software associated with
11799 the script.
11800 <note>
11801 This style of build configuration has been largely
11802 replaced by <filename>pkg-config</filename>.
11803 Consequently, if <filename>pkg-config</filename>
11804 is supported by the library to which you are linking,
11805 it is recommended you use
11806 <filename>pkg-config</filename> instead of a
11807 provided configuration script.
11808 </note>
11809 </para>
11810 </glossdef>
11811 </glossentry>
11812
11813 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
11814 <info>
11815 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
11816 </info>
11817 <glossdef>
11818 <para role="glossdeffirst">
11819<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11820 Specifies the path to the
11821 <filename>/usr/bin</filename> subdirectory of the
11822 sysroot directory for the build host.
11823 </para>
11824 </glossdef>
11825 </glossentry>
11826
11827 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
11828 <info>
11829 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)."
11830 </info>
11831 <glossdef>
11832 <para role="glossdeffirst">
11833<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11834 Specifies the path to the <filename>/usr/share</filename>
11835 subdirectory of the sysroot directory for the target
11836 for which the current recipe is being built
11837 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11838 </para>
11839 </glossdef>
11840 </glossentry>
11841
11842 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
11843 <info>
11844 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
11845 </info>
11846 <glossdef>
11847 <para role="glossdeffirst">
11848<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11849 Specifies the path to the <filename>/usr/share</filename>
11850 subdirectory of the sysroot directory for the build host.
11851 </para>
11852 </glossdef>
11853 </glossentry>
11854
11855 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
11856 <info>
11857 STAGING_DIR[doc] = "Specifies the path to the top-level sysroots directory (i.e. ${TMPDIR}/sysroots)."
11858 </info>
11859 <glossdef>
11860 <para role="glossdeffirst">
11861<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11862 Specifies the path to the top-level sysroots directory
11863 (i.e.
11864 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots</filename>).
11865 <note>
11866 Recipes should never write files directly under
11867 this directory because the OpenEmbedded build system
11868 manages the directory automatically.
11869 Instead, files should be installed to
11870 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
11871 within your recipe's
11872 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
11873 task and then the OpenEmbedded build system will
11874 stage a subset of those files into the sysroot.
11875 </note>
11876 </para>
11877 </glossdef>
11878 </glossentry>
11879
11880 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
11881 <info>
11882 STAGING_DIR_HOST[doc] = "Specifies the path to the primary sysroot directory for which the target is being built."
11883 </info>
11884 <glossdef>
11885 <para role="glossdeffirst">
11886<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11887 Specifies the path to the primary sysroot directory for
11888 which the target is being built.
11889 Depending on the type of recipe and the build target, the
11890 recipe's value is as follows:
11891 <itemizedlist>
11892 <listitem><para>For recipes building for the target
11893 machine, the value is "${STAGING_DIR}/${MACHINE}".
11894 </para></listitem>
11895 <listitem><para>For <filename>native</filename>
11896 recipes building
11897 for the build host, the value is empty given the
11898 assumption that when building for the build host,
11899 the build host's own directories should be used.
11900 </para></listitem>
11901 <listitem><para>For <filename>nativesdk</filename>
11902 recipes that build for the SDK, the value is
11903 "${STAGING_DIR}/${MULTIMACH_HOST_SYS}".
11904 </para></listitem>
11905 </itemizedlist>
11906 </para>
11907 </glossdef>
11908 </glossentry>
11909
11910 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
11911 <info>
11912 STAGING_DIR_NATIVE[doc] = "Specifies the path to the sysroot directory for the build host."
11913 </info>
11914 <glossdef>
11915 <para role="glossdeffirst">
11916<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11917 Specifies the path to the sysroot directory for the
11918 build host.
11919 </para>
11920 </glossdef>
11921 </glossentry>
11922
11923 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
11924 <info>
11925 STAGING_DIR_TARGET[doc] = "Specifies the path to the sysroot directory for the target for which the current recipe is being built."
11926 </info>
11927 <glossdef>
11928 <para role="glossdeffirst">
11929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11930 Specifies the path to the sysroot directory for the
11931 target for which the current recipe is being built.
11932 In most cases, this path is the
11933 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
11934 </para>
11935
11936 <para>
11937 Some recipes build binaries that can run on the target
11938 system but those binaries in turn generate code for
11939 another different system (e.g. cross-canadian recipes).
11940 Using terminology from GNU, the primary system is referred
11941 to as the "HOST" and the secondary, or different, system is
11942 referred to as the "TARGET".
11943 Thus, the binaries run on the "HOST" system and
11944 and generate binaries for the "TARGET" system.
11945 <filename>STAGING_DIR_TARGET</filename> points to the
11946 sysroot used for the "TARGET" system.
11947 </para>
11948 </glossdef>
11949 </glossentry>
11950
11951 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
11952 <info>
11953 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
11954 </info>
11955 <glossdef>
11956 <para role="glossdeffirst">
11957<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11958 Specifies the path to the <filename>/etc</filename>
11959 subdirectory of the sysroot directory for the
11960 build host.
11961 </para>
11962 </glossdef>
11963 </glossentry>
11964
11965 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
11966 <info>
11967 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)."
11968 </info>
11969 <glossdef>
11970 <para role="glossdeffirst">
11971<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11972 Specifies the path to the <filename>/usr</filename>
11973 subdirectory of the sysroot directory for the target
11974 for which the current recipe is being built
11975 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11976 </para>
11977 </glossdef>
11978 </glossentry>
11979
11980 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
11981 <info>
11982 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)."
11983 </info>
11984 <glossdef>
11985 <para role="glossdeffirst">
11986<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11987 Specifies the path to the
11988 <filename>/usr/include</filename> subdirectory of the
11989 sysroot directory for the target for which the current
11990 recipe being built
11991 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
11992 </para>
11993 </glossdef>
11994 </glossentry>
11995
11996 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
11997 <info>
11998 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
11999 </info>
12000 <glossdef>
12001 <para role="glossdeffirst">
12002<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12003 Specifies the path to the <filename>/usr/include</filename>
12004 subdirectory of the sysroot directory for the build host.
12005 </para>
12006 </glossdef>
12007 </glossentry>
12008
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012009 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
12010 <info>
12011 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
12012 </info>
12013 <glossdef>
12014 <para role="glossdeffirst">
12015<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12016 Points to the directory containing the kernel build
12017 artifacts.
12018 Recipes building software that needs to access kernel
12019 build artifacts
12020 (e.g. <filename>systemtap-uprobes</filename>) can look in
12021 the directory specified with the
12022 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
12023 find these artifacts after the kernel has been built.
12024 </para>
12025 </glossdef>
12026 </glossentry>
12027
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012028 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
12029 <info>
12030 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
12031 </info>
12032 <glossdef>
12033 <para role="glossdeffirst">
12034<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12035 The directory with kernel headers that are required to build out-of-tree
12036 modules.
12037 </para>
12038 </glossdef>
12039 </glossentry>
12040
12041 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
12042 <info>
12043 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)."
12044 </info>
12045 <glossdef>
12046 <para role="glossdeffirst">
12047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12048 Specifies the path to the <filename>/usr/lib</filename>
12049 subdirectory of the sysroot directory for the target for
12050 which the current recipe is being built
12051 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
12052 </para>
12053 </glossdef>
12054 </glossentry>
12055
12056 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
12057 <info>
12058 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
12059 </info>
12060 <glossdef>
12061 <para role="glossdeffirst">
12062<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12063 Specifies the path to the <filename>/usr/lib</filename>
12064 subdirectory of the sysroot directory for the build host.
12065 </para>
12066 </glossdef>
12067 </glossentry>
12068
12069 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
12070 <info>
12071 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."
12072 </info>
12073 <glossdef>
12074 <para role="glossdeffirst">
12075<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12076 Specifies the base path used to create recipe stamp files.
12077 The path to an actual stamp file is constructed by evaluating this
12078 string and then appending additional information.
12079 Currently, the default assignment for <filename>STAMP</filename>
12080 as set in the <filename>meta/conf/bitbake.conf</filename> file
12081 is:
12082 <literallayout class='monospaced'>
12083 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
12084 </literallayout>
12085 </para>
12086
12087 <para>
12088 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
12089 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
12090 <link linkend='var-PN'><filename>PN</filename></link>,
12091 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
12092 <link linkend='var-PV'><filename>PV</filename></link>, and
12093 <link linkend='var-PR'><filename>PR</filename></link> for related variable
12094 information.
12095 </para>
12096 </glossdef>
12097 </glossentry>
12098
12099 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
12100 <info>
12101 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
12102 </info>
12103 <glossdef>
12104 <para role="glossdeffirst">
12105<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12106 Specifies the base directory in which the OpenEmbedded
12107 build system places stamps.
12108 The default directory is
12109 <filename>${TMPDIR}/stamps</filename>.
12110 </para>
12111 </glossdef>
12112 </glossentry>
12113
12114 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
12115 <info>
12116 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
12117 </info>
12118 <glossdef>
12119 <para role="glossdeffirst">
12120<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12121 The minimal command and arguments to run
12122 <filename>strip</filename>, which is used to strip
12123 symbols.
12124 </para>
12125 </glossdef>
12126 </glossentry>
12127
12128 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
12129 <info>
12130 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."
12131 </info>
12132 <glossdef>
12133 <para role="glossdeffirst">
12134<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12135 The short (72 characters or less) summary of the binary package for packaging
12136 systems such as <filename>opkg</filename>, <filename>rpm</filename> or
12137 <filename>dpkg</filename>.
12138 By default, <filename>SUMMARY</filename> is used to define
12139 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
12140 variable if <filename>DESCRIPTION</filename> is not set
12141 in the recipe.
12142 </para>
12143 </glossdef>
12144 </glossentry>
12145
12146 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
12147 <info>
12148 SVNDIR[doc] = "The directory where Subversion checkouts will be stored."
12149 </info>
12150 <glossdef>
12151 <para role="glossdeffirst">
12152<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12153 The directory in which files checked out of a Subversion
12154 system are stored.
12155 </para>
12156 </glossdef>
12157 </glossentry>
12158
12159 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
12160 <info>
12161 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
12162 </info>
12163 <glossdef>
12164 <para role="glossdeffirst">
12165<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12166 Specifies the kernel boot default console.
12167 If you want to use a console other than the default,
12168 set this variable in your recipe as follows where "X" is
12169 the console number you want to use:
12170 <literallayout class='monospaced'>
12171 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
12172 </literallayout>
12173 </para>
12174
12175 <para>
12176 The
12177 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12178 class initially sets this variable to null but then checks
12179 for a value later.
12180 </para>
12181 </glossdef>
12182 </glossentry>
12183
12184 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
12185 <info>
12186 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
12187 </info>
12188 <glossdef>
12189 <para role="glossdeffirst">
12190<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12191 Lists additional options to add to the syslinux file.
12192 You need to set this variable in your recipe.
12193 If you want to list multiple options, separate the options
12194 with a semicolon character (<filename>;</filename>).
12195 </para>
12196
12197 <para>
12198 The
12199 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12200 class uses this variable to create a set of options.
12201 </para>
12202 </glossdef>
12203 </glossentry>
12204
12205 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
12206 <info>
12207 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
12208 </info>
12209 <glossdef>
12210 <para role="glossdeffirst">
12211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12212 Specifies the alternate serial port or turns it off.
12213 To turn off serial, set this variable to an empty string
12214 in your recipe.
12215 The variable's default value is set in the
12216 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12217 as follows:
12218 <literallayout class='monospaced'>
12219 SYSLINUX_SERIAL ?= "0 115200"
12220 </literallayout>
12221 </para>
12222
12223 <para>
12224 The class checks for and uses the variable as needed.
12225 </para>
12226 </glossdef>
12227 </glossentry>
12228
12229 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
12230 <info>
12231 SYSLINUX_SPLASH[doc] = "An .LSS file used as the background for the VGA boot menu when you are using the boot menu."
12232 </info>
12233 <glossdef>
12234 <para role="glossdeffirst">
12235<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12236 An <filename>.LSS</filename> file used as the background
12237 for the VGA boot menu when you are using the boot menu.
12238 You need to set this variable in your recipe.
12239 </para>
12240
12241 <para>
12242 The
12243 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12244 class checks for this variable and if found, the
12245 OpenEmbedded build system installs the splash screen.
12246 </para>
12247 </glossdef>
12248 </glossentry>
12249
12250 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
12251 <info>
12252 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
12253 </info>
12254 <glossdef>
12255 <para role="glossdeffirst">
12256<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12257 Specifies the alternate console=tty... kernel boot argument.
12258 The variable's default value is set in the
12259 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12260 as follows:
12261 <literallayout class='monospaced'>
12262 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
12263 </literallayout>
12264 </para>
12265
12266 <para>
12267 The class checks for and uses the variable as needed.
12268 </para>
12269 </glossdef>
12270 </glossentry>
12271
12272 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
12273 <info>
12274 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."
12275 </info>
12276 <glossdef>
12277 <para role="glossdeffirst">
12278<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12279 A list of functions to execute after files are staged into
12280 the sysroot.
12281 These functions are usually used to apply additional
12282 processing on the staged files, or to stage additional
12283 files.
12284 </para>
12285 </glossdef>
12286 </glossentry>
12287
12288 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
12289 <info>
12290 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."
12291 </info>
12292 <glossdef>
12293 <para role="glossdeffirst">
12294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12295 When inheriting the
12296 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12297 class, this variable specifies whether the service you have
12298 specified in
12299 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
12300 should be started automatically or not.
12301 By default, the service is enabled to automatically start
12302 at boot time.
12303 The default setting is in the
12304 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12305 class as follows:
12306 <literallayout class='monospaced'>
12307 SYSTEMD_AUTO_ENABLE ??= "enable"
12308 </literallayout>
12309 </para>
12310
12311 <para>
12312 You can disable the service by setting the variable to
12313 "disable".
12314 </para>
12315 </glossdef>
12316 </glossentry>
12317
12318 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
12319 <info>
12320 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."
12321 </info>
12322 <glossdef>
12323 <para role="glossdeffirst">
12324<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12325 When inheriting the
12326 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12327 class, this variable locates the systemd unit files when
12328 they are not found in the main recipe's package.
12329 By default, the
12330 <filename>SYSTEMD_PACKAGES</filename> variable is set
12331 such that the systemd unit files are assumed to reside in
12332 the recipes main package:
12333 <literallayout class='monospaced'>
12334 SYSTEMD_PACKAGES ?= "${PN}"
12335 </literallayout>
12336 </para>
12337
12338 <para>
12339 If these unit files are not in this recipe's main
12340 package, you need to use
12341 <filename>SYSTEMD_PACKAGES</filename> to list the package
12342 or packages in which the build system can find the systemd
12343 unit files.
12344 </para>
12345 </glossdef>
12346 </glossentry>
12347
12348 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
12349 <info>
12350 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
12351 </info>
12352 <glossdef>
12353 <para role="glossdeffirst">
12354<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12355 When inheriting the
12356 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12357 class, this variable specifies the systemd service name for
12358 a package.
12359 </para>
12360
12361 <para>
12362 When you specify this file in your recipe, use a package
12363 name override to indicate the package to which the value
12364 applies.
12365 Here is an example from the connman recipe:
12366 <literallayout class='monospaced'>
12367 SYSTEMD_SERVICE_${PN} = "connman.service"
12368 </literallayout>
12369 </para>
12370 </glossdef>
12371 </glossentry>
12372
12373 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
12374 <info>
12375 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should be running a getty, the default is '1'."
12376 </info>
12377 <glossdef>
12378 <para role="glossdeffirst">
12379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12380 When using
12381 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
12382 specifies a space-separated list of the virtual terminals
12383 that should be running a
12384 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
12385 (allowing login), assuming
12386 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
12387 is not set to "0".
12388 </para>
12389
12390 <para>
12391 The default value for
12392 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
12393 (i.e. only run a getty on the first virtual terminal).
12394 </para>
12395 </glossdef>
12396 </glossentry>
12397
12398 </glossdiv>
12399
12400 <glossdiv id='var-glossary-t'><title>T</title>
12401
12402 <glossentry id='var-T'><glossterm>T</glossterm>
12403 <info>
12404 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."
12405 </info>
12406 <glossdef>
12407 <para role="glossdeffirst">
12408<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12409 This variable points to a directory were BitBake places
12410 temporary files, which consist mostly of task logs and
12411 scripts, when building a particular recipe.
12412 The variable is typically set as follows:
12413 <literallayout class='monospaced'>
12414 T = "${WORKDIR}/temp"
12415 </literallayout>
12416 </para>
12417
12418 <para>
12419 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12420 is the directory into which BitBake unpacks and builds the
12421 recipe.
12422 The default <filename>bitbake.conf</filename> file sets this variable.</para>
12423 <para>The <filename>T</filename> variable is not to be confused with
12424 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
12425 which points to the root of the directory tree where BitBake
12426 places the output of an entire build.
12427 </para>
12428 </glossdef>
12429 </glossentry>
12430
12431 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
12432 <info>
12433 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
12434 </info>
12435 <glossdef>
12436 <para role="glossdeffirst">
12437<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12438 The target machine's architecture.
12439 The OpenEmbedded build system supports many
12440 architectures.
12441 Here is an example list of architectures supported.
12442 This list is by no means complete as the architecture
12443 is configurable:
12444 <literallayout class='monospaced'>
12445 arm
12446 i586
12447 x86_64
12448 powerpc
12449 powerpc64
12450 mips
12451 mipsel
12452 </literallayout>
12453 </para>
12454
12455 <para>
12456 For additional information on machine architectures, see
12457 the
12458 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
12459 variable.
12460 </para>
12461 </glossdef>
12462 </glossentry>
12463
12464 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
12465 <info>
12466 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
12467 </info>
12468 <glossdef>
12469 <para role="glossdeffirst">
12470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12471 Specifies architecture-specific assembler flags for the
12472 target system.
12473 <filename>TARGET_AS_ARCH</filename> is initialized from
12474 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
12475 by default in the BitBake configuration file
12476 (<filename>meta/conf/bitbake.conf</filename>):
12477 <literallayout class='monospaced'>
12478 TARGET_AS_ARCH = "${TUNE_ASARGS}"
12479 </literallayout>
12480 </para>
12481 </glossdef>
12482 </glossentry>
12483
12484 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
12485 <info>
12486 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
12487 </info>
12488 <glossdef>
12489 <para role="glossdeffirst">
12490<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12491 Specifies architecture-specific C compiler flags for the
12492 target system.
12493 <filename>TARGET_CC_ARCH</filename> is initialized from
12494 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
12495 by default.
12496 <note>
12497 It is a common workaround to append
12498 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12499 to <filename>TARGET_CC_ARCH</filename>
12500 in recipes that build software for the target that
12501 would not otherwise respect the exported
12502 <filename>LDFLAGS</filename> variable.
12503 </note>
12504 </para>
12505 </glossdef>
12506 </glossentry>
12507
12508 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
12509 <info>
12510 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
12511 </info>
12512 <glossdef>
12513 <para role="glossdeffirst">
12514<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12515 This is a specific kernel compiler flag for a CPU or
12516 Application Binary Interface (ABI) tune.
12517 The flag is used rarely and only for cases where a
12518 userspace
12519 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
12520 is not compatible with the kernel compilation.
12521 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
12522 allows the kernel (and associated modules) to use a
12523 different configuration.
12524 See the
12525 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
12526 file in the
12527 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
12528 for an example.
12529 </para>
12530 </glossdef>
12531 </glossentry>
12532
12533 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
12534 <info>
12535 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
12536 </info>
12537 <glossdef>
12538 <para role="glossdeffirst">
12539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12540 Specifies the flags to pass to the C compiler when building
12541 for the target.
12542 When building in the target context,
12543 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
12544 is set to the value of this variable by default.
12545 </para>
12546
12547 <para>
12548 Additionally, the SDK's environment setup script sets
12549 the
12550 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
12551 variable in the environment to the
12552 <filename>TARGET_CFLAGS</filename> value so that
12553 executables built using the SDK also have the flags
12554 applied.
12555 </para>
12556 </glossdef>
12557 </glossentry>
12558
12559 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
12560 <info>
12561 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."
12562 </info>
12563 <glossdef>
12564 <para role="glossdeffirst">
12565<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12566 Specifies the flags to pass to the C pre-processor
12567 (i.e. to both the C and the C++ compilers) when building
12568 for the target.
12569 When building in the target context,
12570 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
12571 is set to the value of this variable by default.
12572 </para>
12573
12574 <para>
12575 Additionally, the SDK's environment setup script sets
12576 the
12577 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
12578 variable in the environment to the
12579 <filename>TARGET_CPPFLAGS</filename> value so that
12580 executables built using the SDK also have the flags
12581 applied.
12582 </para>
12583 </glossdef>
12584 </glossentry>
12585
12586 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
12587 <info>
12588 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
12589 </info>
12590 <glossdef>
12591 <para role="glossdeffirst">
12592<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12593 Specifies the flags to pass to the C++ compiler when
12594 building for the target.
12595 When building in the target context,
12596 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
12597 is set to the value of this variable by default.
12598 </para>
12599
12600 <para>
12601 Additionally, the SDK's environment setup script sets
12602 the
12603 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
12604 variable in the environment to the
12605 <filename>TARGET_CXXFLAGS</filename> value so that
12606 executables built using the SDK also have the flags
12607 applied.
12608 </para>
12609 </glossdef>
12610 </glossentry>
12611
12612 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
12613 <info>
12614 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."
12615 </info>
12616 <glossdef>
12617 <para role="glossdeffirst">
12618<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12619 Specifies the method for handling FPU code.
12620 For FPU-less targets, which include most ARM CPUs, the variable must be
12621 set to "soft".
12622 If not, the kernel emulation gets used, which results in a performance penalty.
12623 </para>
12624 </glossdef>
12625 </glossentry>
12626
12627 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
12628 <info>
12629 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
12630 </info>
12631 <glossdef>
12632 <para role="glossdeffirst">
12633<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12634 Specifies architecture-specific linker flags for the
12635 target system.
12636 <filename>TARGET_LD_ARCH</filename> is initialized from
12637 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
12638 by default in the BitBake configuration file
12639 (<filename>meta/conf/bitbake.conf</filename>):
12640 <literallayout class='monospaced'>
12641 TARGET_LD_ARCH = "${TUNE_LDARGS}"
12642 </literallayout>
12643 </para>
12644 </glossdef>
12645 </glossentry>
12646
12647 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
12648 <info>
12649 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
12650 </info>
12651 <glossdef>
12652 <para role="glossdeffirst">
12653<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12654 Specifies the flags to pass to the linker when building
12655 for the target.
12656 When building in the target context,
12657 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12658 is set to the value of this variable by default.
12659 </para>
12660
12661 <para>
12662 Additionally, the SDK's environment setup script sets
12663 the
12664 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12665 variable in the environment to the
12666 <filename>TARGET_LDFLAGS</filename> value so that
12667 executables built using the SDK also have the flags
12668 applied.
12669 </para>
12670 </glossdef>
12671 </glossentry>
12672
12673 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
12674 <info>
12675 TARGET_OS[doc] = "Specifies the target's operating system."
12676 </info>
12677 <glossdef>
12678 <para role="glossdeffirst">
12679<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12680 Specifies the target's operating system.
12681 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
12682 to "linux-uclibc" for <filename>uclibc</filename>.
12683 For ARM/EABI targets, there are also "linux-gnueabi" and
12684 "linux-uclibc-gnueabi" values possible.
12685 </para>
12686 </glossdef>
12687 </glossentry>
12688
12689 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
12690 <info>
12691 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
12692 </info>
12693 <glossdef>
12694 <para role="glossdeffirst">
12695<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12696 Specifies the prefix used for the toolchain binary target
12697 tools.
12698 </para>
12699
12700 <para>
12701 Depending on the type of recipe and the build target,
12702 <filename>TARGET_PREFIX</filename> is set as follows:
12703 <itemizedlist>
12704 <listitem><para>
12705 For recipes building for the target machine,
12706 the value is
12707 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
12708 </para></listitem>
12709 <listitem><para>
12710 For <filename>native</filename> recipes, the build
12711 system sets the variable to the value of
12712 <filename>BUILD_PREFIX</filename>.
12713 </para></listitem>
12714 <listitem><para>
12715 For <filename>nativesdk</filename> recipes, the
12716 build system sets the variable to the value of
12717 <filename>SDK_PREFIX</filename>.
12718 </para></listitem>
12719 </itemizedlist>
12720 </para>
12721 </glossdef>
12722 </glossentry>
12723
12724 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
12725 <info>
12726 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
12727 </info>
12728 <glossdef>
12729 <para role="glossdeffirst">
12730<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12731 Specifies the system, including the architecture and the
12732 operating system, for which the build is occurring in
12733 the context of the current recipe.
12734 </para>
12735
12736 <para>
12737 The OpenEmbedded build system automatically sets this
12738 variable based on
12739 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
12740 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
12741 and
12742 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
12743 variables.
12744 <note>
12745 You do not need to set the
12746 <filename>TARGET_SYS</filename> variable yourself.
12747 </note>
12748 </para>
12749
12750 <para>
12751 Consider these two examples:
12752 <itemizedlist>
12753 <listitem><para>
12754 Given a <filename>native</filename> recipe on a
12755 32-bit, x86 machine running Linux, the value is
12756 "i686-linux".
12757 </para></listitem>
12758 <listitem><para>
12759 Given a recipe being built for a little-endian,
12760 MIPS target running Linux, the value might be
12761 "mipsel-linux".
12762 </para></listitem>
12763 </itemizedlist>
12764 </para>
12765 </glossdef>
12766 </glossentry>
12767
12768 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
12769 <info>
12770 TARGET_VENDOR[doc] = "The name of the target vendor."
12771 </info>
12772 <glossdef>
12773 <para role="glossdeffirst">
12774<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12775 Specifies the name of the target vendor.
12776 </para>
12777 </glossdef>
12778 </glossentry>
12779
12780 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
12781 <info>
12782 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
12783 </info>
12784 <glossdef>
12785 <para role="glossdeffirst">
12786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12787 Specifies a suffix to be appended onto the
12788 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
12789 value.
12790 The suffix identifies the <filename>libc</filename> variant
12791 for building.
12792 When you are building for multiple variants with the same
12793 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
12794 this mechanism ensures that output for different
12795 <filename>libc</filename> variants is kept separate to
12796 avoid potential conflicts.
12797 </para>
12798
12799 <para>
12800 In the <filename>defaultsetup.conf</filename> file, the
12801 default value of <filename>TCLIBCAPPEND</filename> is
12802 "-${TCLIBC}".
12803 However, distros such as poky, which normally only support
12804 one <filename>libc</filename> variant, set
12805 <filename>TCLIBCAPPEND</filename> to "" in their distro
12806 configuration file resulting in no suffix being applied.
12807 </para>
12808 </glossdef>
12809 </glossentry>
12810
12811 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
12812 <info>
12813 TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc' or 'uclibc'."
12814 </info>
12815 <glossdef>
12816 <para role="glossdeffirst">
12817<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12818 Specifies the GNU standard C library (<filename>libc</filename>)
12819 variant to use during the build process.
12820 This variable replaces <filename>POKYLIBC</filename>, which is no longer
12821 supported.
12822 </para>
12823
12824 <para>
12825 You can select "glibc" or "uclibc".
12826 </para>
12827 </glossdef>
12828 </glossentry>
12829
12830 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
12831 <info>
12832 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
12833 </info>
12834 <glossdef>
12835 <para role="glossdeffirst">
12836<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12837 Specifies the toolchain selector.
12838 <filename>TCMODE</filename> controls the characteristics
12839 of the generated packages and images by telling the
12840 OpenEmbedded build system which toolchain profile to use.
12841 By default, the OpenEmbedded build system builds its own
12842 internal toolchain.
12843 The variable's default value is "default", which uses
12844 that internal toolchain.
12845 <note>
12846 If <filename>TCMODE</filename> is set to a value
12847 other than "default", then it is your responsibility
12848 to ensure that the toolchain is compatible with the
12849 default toolchain.
12850 Using older or newer versions of these components
12851 might cause build problems.
12852 See the
12853 <ulink url='&YOCTO_RELEASE_NOTES;'>Release Notes</ulink>
12854 for the specific components with which the toolchain
12855 must be compatible.
12856 </note>
12857 </para>
12858
12859 <para>
12860 The <filename>TCMODE</filename> variable is similar to
12861 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12862 which controls the variant of the GNU standard C library
12863 (<filename>libc</filename>) used during the build process:
12864 <filename>glibc</filename> or <filename>uclibc</filename>.
12865 </para>
12866
12867 <para>
12868 With additional layers, it is possible to use a pre-compiled
12869 external toolchain.
12870 One example is the Sourcery G++ Toolchain.
12871 The support for this toolchain resides in the separate
12872 <trademark class='registered'>Mentor Graphics</trademark>
12873 <filename>meta-sourcery</filename> layer at
12874 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
12875 </para>
12876
12877 <para>
12878 The layer's <filename>README</filename> file contains
12879 information on how to use the Sourcery G++ Toolchain as
12880 an external toolchain.
12881 In summary, you must be sure to add the layer to your
12882 <filename>bblayers.conf</filename> file in front of the
12883 <filename>meta</filename> layer and then set the
12884 <filename>EXTERNAL_TOOLCHAIN</filename>
12885 variable in your <filename>local.conf</filename> file
12886 to the location in which you installed the toolchain.
12887 </para>
12888
12889 <para>
12890 The fundamentals used for this example apply to any
12891 external toolchain.
12892 You can use <filename>meta-sourcery</filename> as a
12893 template for adding support for other external toolchains.
12894 </para>
12895 </glossdef>
12896 </glossentry>
12897
12898 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
12899 <info>
12900 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
12901 </info>
12902 <glossdef>
12903 <para role="glossdeffirst">
12904<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12905 The location the OpenEmbedded build system uses to export
12906 tests when the
12907 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
12908 variable is set to "1".
12909 </para>
12910
12911 <para>
12912 The <filename>TEST_EXPORT_DIR</filename> variable defaults
12913 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
12914 </para>
12915 </glossdef>
12916 </glossentry>
12917
12918 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
12919 <info>
12920 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."
12921 </info>
12922 <glossdef>
12923 <para role="glossdeffirst">
12924<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12925 Specifies to export the tests only.
12926 Set this variable to "1" if you do not want to run the
12927 tests but you want them to be exported in a manner that
12928 you to run them outside of the build system.
12929 </para>
12930 </glossdef>
12931 </glossentry>
12932
12933 <glossentry id='var-TEST_IMAGE'><glossterm>TEST_IMAGE</glossterm>
12934 <info>
12935 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."
12936 </info>
12937 <glossdef>
12938 <para role="glossdeffirst">
12939<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12940 Automatically runs the series of automated tests for
12941 images when an image is successfully built.
12942 </para>
12943
12944 <para>
12945 These tests are written in Python making use of the
12946 <filename>unittest</filename> module, and the majority of
12947 them run commands on the target system over
12948 <filename>ssh</filename>.
12949 You can set this variable to "1" in your
12950 <filename>local.conf</filename> file in the
12951 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
12952 to have the OpenEmbedded build system automatically run
12953 these tests after an image successfully builds:
12954 <literallayout class='monospaced'>
12955 TEST_IMAGE = "1"
12956 </literallayout>
12957 For more information on enabling, running, and writing
12958 these tests, see the
12959 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
12960 section in the Yocto Project Development Manual and the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012961 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012962 section.
12963 </para>
12964 </glossdef>
12965 </glossentry>
12966
12967 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
12968 <info>
12969 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"."
12970 </info>
12971 <glossdef>
12972 <para role="glossdeffirst">
12973<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12974 Holds the SSH log and the boot log for QEMU machines.
12975 The <filename>TEST_LOG_DIR</filename> variable defaults
12976 to <filename>"${WORKDIR}/testimage"</filename>.
12977 <note>
12978 Actual test results reside in the task log
12979 (<filename>log.do_testimage</filename>), which is in
12980 the <filename>${WORKDIR}/temp/</filename> directory.
12981 </note>
12982 </para>
12983 </glossdef>
12984 </glossentry>
12985
12986 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
12987 <info>
12988 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
12989 </info>
12990 <glossdef>
12991 <para role="glossdeffirst">
12992<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12993 For automated hardware testing, specifies the command to
12994 use to control the power of the target machine under test.
12995 Typically, this command would point to a script that
12996 performs the appropriate action (e.g. interacting
12997 with a web-enabled power strip).
12998 The specified command should expect to receive as the last
12999 argument "off", "on" or "cycle" specifying to power off,
13000 on, or cycle (power off and then power on) the device,
13001 respectively.
13002 </para>
13003 </glossdef>
13004 </glossentry>
13005
13006 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
13007 <info>
13008 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
13009 </info>
13010 <glossdef>
13011 <para role="glossdeffirst">
13012<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13013 For automated hardware testing, specifies additional
13014 arguments to pass through to the command specified in
13015 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
13016 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
13017 is optional.
13018 You can use it if you wish, for example, to separate the
13019 machine-specific and non-machine-specific parts of the
13020 arguments.
13021 </para>
13022 </glossdef>
13023 </glossentry>
13024
13025 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
13026 <info>
13027 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
13028 </info>
13029 <glossdef>
13030 <para role="glossdeffirst">
13031<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13032 The time in seconds allowed for an image to boot before
13033 automated runtime tests begin to run against an
13034 image.
13035 The default timeout period to allow the boot process to
13036 reach the login prompt is 500 seconds.
13037 You can specify a different value in the
13038 <filename>local.conf</filename> file.
13039 </para>
13040
13041 <para>
13042 For more information on testing images, see the
13043 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
13044 section in the Yocto Project Development Manual.
13045 </para>
13046 </glossdef>
13047 </glossentry>
13048
13049 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
13050 <info>
13051 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."
13052 </info>
13053 <glossdef>
13054 <para role="glossdeffirst">
13055<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13056 For automated hardware testing, specifies the command
13057 to use to connect to the serial console of the target
13058 machine under test.
13059 This command simply needs to connect to the serial console
13060 and forward that connection to standard input and output
13061 as any normal terminal program does.
13062 </para>
13063
13064 <para>
13065 For example, to use the Picocom terminal program on
13066 serial device <filename>/dev/ttyUSB0</filename> at
13067 115200bps, you would set the variable as follows:
13068 <literallayout class='monospaced'>
13069 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
13070 </literallayout>
13071 </para>
13072 </glossdef>
13073 </glossentry>
13074
13075 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
13076 <info>
13077 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
13078 </info>
13079 <glossdef>
13080 <para role="glossdeffirst">
13081<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13082 For automated hardware testing, specifies additional
13083 arguments to pass through to the command specified in
13084 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
13085 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
13086 is optional.
13087 You can use it if you wish, for example, to separate the
13088 machine-specific and non-machine-specific parts of the
13089 command.
13090 </para>
13091 </glossdef>
13092 </glossentry>
13093
13094 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
13095 <info>
13096 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
13097 </info>
13098 <glossdef>
13099 <para role="glossdeffirst">
13100<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13101 The IP address of the build machine (host machine).
13102 This IP address is usually automatically detected.
13103 However, if detection fails, this variable needs to be set
13104 to the IP address of the build machine (i.e. where
13105 the build is taking place).
13106 <note>
13107 The <filename>TEST_SERVER_IP</filename> variable
13108 is only used for a small number of tests such as
13109 the "smart" test suite, which needs to download
13110 packages from <filename>DEPLOY_DIR/rpm</filename>.
13111 </note>
13112 </para>
13113 </glossdef>
13114 </glossentry>
13115
13116 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
13117 <info>
13118 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
13119 </info>
13120 <glossdef>
13121 <para role="glossdeffirst">
13122<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13123 Specifies the target controller to use when running tests
13124 against a test image.
13125 The default controller to use is "qemu":
13126 <literallayout class='monospaced'>
13127 TEST_TARGET = "qemu"
13128 </literallayout>
13129 </para>
13130
13131 <para>
13132 A target controller is a class that defines how an
13133 image gets deployed on a target and how a target is started.
13134 A layer can extend the controllers by adding a module
13135 in the layer's <filename>/lib/oeqa/controllers</filename>
13136 directory and by inheriting the
13137 <filename>BaseTarget</filename> class, which is an abstract
13138 class that cannot be used as a value of
13139 <filename>TEST_TARGET</filename>.
13140 </para>
13141
13142 <para>
13143 You can provide the following arguments with
13144 <filename>TEST_TARGET</filename>:
13145 <itemizedlist>
13146 <listitem><para><emphasis>"qemu" and "QemuTarget":</emphasis>
13147 Boots a QEMU image and runs the tests.
13148 See the
13149 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
13150 section in the Yocto Project Development Manual for
13151 more information.
13152 </para></listitem>
13153 <listitem><para><emphasis>"simpleremote" and "SimpleRemoteTarget":</emphasis>
13154 Runs the tests on target hardware that is already
13155 up and running.
13156 The hardware can be on the network or it can be
13157 a device running an image on QEMU.
13158 You must also set
13159 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
13160 when you use "simpleremote" or "SimpleRemoteTarget".
13161 <note>
13162 This argument is defined in
13163 <filename>meta/lib/oeqa/targetcontrol.py</filename>.
13164 The small caps names are kept for compatibility
13165 reasons.
13166 </note>
13167 </para></listitem>
13168 <listitem><para><emphasis>"GummibootTarget":</emphasis>
13169 Automatically deploys and runs tests on an
13170 EFI-enabled machine that has a master image
13171 installed.
13172 <note>
13173 This argument is defined in
13174 <filename>meta/lib/oeqa/controllers/masterimage.py</filename>.
13175 </note>
13176 </para></listitem>
13177 </itemizedlist>
13178 </para>
13179
13180 <para>
13181 For information on running tests on hardware, see the
13182 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
13183 section in the Yocto Project Development Manual.
13184 </para>
13185 </glossdef>
13186 </glossentry>
13187
13188 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
13189 <info>
13190 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
13191 </info>
13192 <glossdef>
13193 <para role="glossdeffirst">
13194<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13195 The IP address of your hardware under test.
13196 The <filename>TEST_TARGET_IP</filename> variable has no
13197 effect when
13198 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
13199 is set to "qemu".
13200 </para>
13201
13202 <para>
13203 When you specify the IP address, you can also include a
13204 port.
13205 Here is an example:
13206 <literallayout class='monospaced'>
13207 TEST_TARGET_IP = "192.168.1.4:2201"
13208 </literallayout>
13209 Specifying a port is useful when SSH is started on a
13210 non-standard port or in cases when your hardware under test
13211 is behind a firewall or network that is not directly
13212 accessible from your host and you need to do port address
13213 translation.
13214 </para>
13215 </glossdef>
13216 </glossentry>
13217
13218 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
13219 <info>
13220 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
13221 </info>
13222 <glossdef>
13223 <para role="glossdeffirst">
13224<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13225 An ordered list of tests (modules) to run against
13226 an image when performing automated runtime testing.
13227 </para>
13228
13229 <para>
13230 The OpenEmbedded build system provides a core set of tests
13231 that can be used against images.
13232 <note>
13233 Currently, there is only support for running these tests
13234 under QEMU.
13235 </note>
13236 Tests include <filename>ping</filename>,
13237 <filename>ssh</filename>, <filename>df</filename> among
13238 others.
13239 You can add your own tests to the list of tests by
13240 appending <filename>TEST_SUITES</filename> as follows:
13241 <literallayout class='monospaced'>
13242 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
13243 </literallayout>
13244 Alternatively, you can provide the "auto" option to
13245 have all applicable tests run against the image.
13246 <literallayout class='monospaced'>
13247 TEST_SUITES_append = " auto"
13248 </literallayout>
13249 Using this option causes the build system to automatically
13250 run tests that are applicable to the image.
13251 Tests that are not applicable are skipped.
13252 </para>
13253
13254 <para>
13255 The order in which tests are run is important.
13256 Tests that depend on another test must appear later in the
13257 list than the test on which they depend.
13258 For example, if you append the list of tests with two
13259 tests (<filename>test_A</filename> and
13260 <filename>test_B</filename>) where
13261 <filename>test_B</filename> is dependent on
13262 <filename>test_A</filename>, then you must order the tests
13263 as follows:
13264 <literallayout class='monospaced'>
13265 TEST_SUITES = " test_A test_B"
13266 </literallayout>
13267 </para>
13268
13269 <para>
13270 For more information on testing images, see the
13271 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
13272 section in the Yocto Project Development Manual.
13273 </para>
13274 </glossdef>
13275 </glossentry>
13276
13277 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
13278 <info>
13279 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
13280 </info>
13281 <glossdef>
13282 <para role="glossdeffirst">
13283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13284 The directory in which the file BitBake is currently
13285 parsing is located.
13286 Do not manually set this variable.
13287 </para>
13288 </glossdef>
13289 </glossentry>
13290
13291 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
13292 <info>
13293 TIME[doc] = "The time the build was started using HMS format."
13294 </info>
13295 <glossdef>
13296 <para role="glossdeffirst">
13297<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13298 The time the build was started.
13299 Times appear using the hour, minute, and second (HMS)
13300 format (e.g. "140159" for one minute and fifty-nine
13301 seconds past 1400 hours).
13302 </para>
13303 </glossdef>
13304 </glossentry>
13305
13306 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
13307 <info>
13308 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."
13309 </info>
13310 <glossdef>
13311 <para role="glossdeffirst">
13312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13313 This variable is the base directory the OpenEmbedded
13314 build system uses for all build output and intermediate
13315 files (other than the shared state cache).
13316 By default, the <filename>TMPDIR</filename> variable points
13317 to <filename>tmp</filename> within the
13318 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
13319 </para>
13320
13321 <para>
13322 If you want to establish this directory in a location other
13323 than the default, you can uncomment and edit the following
13324 statement in the
13325 <filename>conf/local.conf</filename> file in the
13326 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
13327 <literallayout class='monospaced'>
13328 #TMPDIR = "${TOPDIR}/tmp"
13329 </literallayout>
13330 An example use for this scenario is to set
13331 <filename>TMPDIR</filename> to a local disk, which does
13332 not use NFS, while having the Build Directory use NFS.
13333 </para>
13334
13335 <para>
13336 The filesystem used by <filename>TMPDIR</filename> must
13337 have standard filesystem semantics (i.e. mixed-case files
13338 are unique, POSIX file locking, and persistent inodes).
13339 Due to various issues with NFS and bugs in some
13340 implementations, NFS does not meet this minimum
13341 requirement.
13342 Consequently, <filename>TMPDIR</filename> cannot be on
13343 NFS.
13344 </para>
13345 </glossdef>
13346 </glossentry>
13347
13348 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
13349 <info>
13350 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
13351 </info>
13352 <glossdef>
13353 <para role="glossdeffirst">
13354<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13355 This variable lists packages the OpenEmbedded build system
13356 uses when building an SDK, which contains a
13357 cross-development environment.
13358 The packages specified by this variable are part of the
13359 toolchain set that runs on the
13360 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
13361 and each package should usually have the prefix
13362 "nativesdk-".
13363 When building an SDK using
13364 <filename>bitbake -c populate_sdk &lt;imagename&gt;</filename>,
13365 a default list of packages is set in this variable, but
13366 you can add additional packages to the list.
13367 </para>
13368
13369 <para>
13370 For background information on cross-development toolchains
13371 in the Yocto Project development environment, see the
13372 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
13373 section.
13374 For information on setting up a cross-development
13375 environment, see the
13376 "<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>"
13377 section in the Yocto Project Application Developer's Guide.
13378 </para>
13379 </glossdef>
13380 </glossentry>
13381
13382 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
13383 <info>
13384 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
13385 </info>
13386 <glossdef>
13387 <para role="glossdeffirst">
13388<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13389 This variable defines the name used for the toolchain
13390 output.
13391 The
13392 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
13393 class sets the
13394 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
13395 follows:
13396 <literallayout class='monospaced'>
13397 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
13398 </literallayout>
13399 See the
13400 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
13401 and
13402 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
13403 variables for additional information.
13404 </para>
13405 </glossdef>
13406 </glossentry>
13407
13408 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
13409 <info>
13410 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."
13411 </info>
13412 <glossdef>
13413 <para role="glossdeffirst">
13414<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13415 This variable lists packages the OpenEmbedded build system
13416 uses when it creates the target part of an SDK
13417 (i.e. the part built for the target hardware), which
13418 includes libraries and headers.
13419 </para>
13420
13421 <para>
13422 For background information on cross-development toolchains
13423 in the Yocto Project development environment, see the
13424 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
13425 section.
13426 For information on setting up a cross-development
13427 environment, see the
13428 "<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>"
13429 section in the Yocto Project Application Developer's Guide.
13430 </para>
13431 </glossdef>
13432 </glossentry>
13433
13434 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
13435 <info>
13436 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
13437 </info>
13438 <glossdef>
13439 <para role="glossdeffirst">
13440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13441 The top-level
13442 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
13443 BitBake automatically sets this variable when you
13444 initialize your build environment using either
13445 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
13446 or
13447 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>.
13448 </para>
13449 </glossdef>
13450 </glossentry>
13451
13452 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
13453 <info>
13454 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."
13455 </info>
13456 <glossdef>
13457 <para role="glossdeffirst">
13458<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13459 A sanitized version of
13460 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
13461 This variable is used where the architecture is needed in
13462 a value where underscores are not allowed, for example
13463 within package filenames.
13464 In this case, dash characters replace any underscore
13465 characters used in TARGET_ARCH.
13466 </para>
13467
13468 <para>
13469 Do not edit this variable.
13470 </para>
13471 </glossdef>
13472 </glossentry>
13473
13474 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
13475 <info>
13476 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
13477 </info>
13478 <glossdef>
13479 <para role="glossdeffirst">
13480<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13481 The GNU canonical architecture for a specific architecture
13482 (i.e. <filename>arm</filename>,
13483 <filename>armeb</filename>,
13484 <filename>mips</filename>,
13485 <filename>mips64</filename>, and so forth).
13486 BitBake uses this value to setup configuration.
13487 </para>
13488
13489 <para>
13490 <filename>TUNE_ARCH</filename> definitions are specific to
13491 a given architecture.
13492 The definitions can be a single static definition, or
13493 can be dynamically adjusted.
13494 You can see details for a given CPU family by looking at
13495 the architecture's <filename>README</filename> file.
13496 For example, the
13497 <filename>meta/conf/machine/include/mips/README</filename>
13498 file in the
13499 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
13500 provides information for <filename>TUNE_ARCH</filename>
13501 specific to the <filename>mips</filename> architecture.
13502 </para>
13503
13504 <para>
13505 <filename>TUNE_ARCH</filename> is tied closely to
13506 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
13507 which defines the target machine's architecture.
13508 The BitBake configuration file
13509 (<filename>meta/conf/bitbake.conf</filename>) sets
13510 <filename>TARGET_ARCH</filename> as follows:
13511 <literallayout class='monospaced'>
13512 TARGET_ARCH = "${TUNE_ARCH}"
13513 </literallayout>
13514 </para>
13515
13516 <para>
13517 The following list, which is by no means complete since
13518 architectures are configurable, shows supported machine
13519 architectures:
13520 <literallayout class='monospaced'>
13521 arm
13522 i586
13523 x86_64
13524 powerpc
13525 powerpc64
13526 mips
13527 mipsel
13528 </literallayout>
13529 </para>
13530 </glossdef>
13531 </glossentry>
13532
13533 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
13534 <info>
13535 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
13536 </info>
13537 <glossdef>
13538 <para role="glossdeffirst">
13539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13540 Specifies architecture-specific assembler flags for
13541 the target system.
13542 The set of flags is based on the selected tune features.
13543 <filename>TUNE_ASARGS</filename> is set using
13544 the tune include files, which are typically under
13545 <filename>meta/conf/machine/include/</filename> and are
13546 influenced through
13547 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13548 For example, the
13549 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
13550 file defines the flags for the x86 architecture as follows:
13551 <literallayout class='monospaced'>
13552 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
13553 </literallayout>
13554 <note>
13555 Board Support Packages (BSPs) select the tune.
13556 The selected tune, in turn, affects the tune variables
13557 themselves (i.e. the tune can supply its own
13558 set of flags).
13559 </note>
13560 </para>
13561 </glossdef>
13562 </glossentry>
13563
13564 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
13565 <info>
13566 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
13567 </info>
13568 <glossdef>
13569 <para role="glossdeffirst">
13570<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13571 Specifies architecture-specific C compiler flags for
13572 the target system.
13573 The set of flags is based on the selected tune features.
13574 <filename>TUNE_CCARGS</filename> is set using
13575 the tune include files, which are typically under
13576 <filename>meta/conf/machine/include/</filename> and are
13577 influenced through
13578 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13579 <note>
13580 Board Support Packages (BSPs) select the tune.
13581 The selected tune, in turn, affects the tune variables
13582 themselves (i.e. the tune can supply its own
13583 set of flags).
13584 </note>
13585 </para>
13586 </glossdef>
13587 </glossentry>
13588
13589 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
13590 <info>
13591 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
13592 </info>
13593 <glossdef>
13594 <para role="glossdeffirst">
13595<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13596 Specifies architecture-specific linker flags for
13597 the target system.
13598 The set of flags is based on the selected tune features.
13599 <filename>TUNE_LDARGS</filename> is set using
13600 the tune include files, which are typically under
13601 <filename>meta/conf/machine/include/</filename> and are
13602 influenced through
13603 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13604 For example, the
13605 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
13606 file defines the flags for the x86 architecture as follows:
13607 <literallayout class='monospaced'>
13608 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
13609 </literallayout>
13610 <note>
13611 Board Support Packages (BSPs) select the tune.
13612 The selected tune, in turn, affects the tune variables
13613 themselves (i.e. the tune can supply its own
13614 set of flags).
13615 </note>
13616 </para>
13617 </glossdef>
13618 </glossentry>
13619
13620 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
13621 <info>
13622 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
13623 </info>
13624 <glossdef>
13625 <para role="glossdeffirst">
13626<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13627 Features used to "tune" a compiler for optimal use
13628 given a specific processor.
13629 The features are defined within the tune files and allow
13630 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
13631 dynamically generated based on the features.
13632 </para>
13633
13634 <para>
13635 The OpenEmbedded build system verifies the features
13636 to be sure they are not conflicting and that they are
13637 supported.
13638 </para>
13639
13640 <para>
13641 The BitBake configuration file
13642 (<filename>meta/conf/bitbake.conf</filename>) defines
13643 <filename>TUNE_FEATURES</filename> as follows:
13644 <literallayout class='monospaced'>
13645 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
13646 </literallayout>
13647 See the
13648 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
13649 variable for more information.
13650 </para>
13651 </glossdef>
13652 </glossentry>
13653
13654 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
13655 <info>
13656 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
13657 </info>
13658 <glossdef>
13659 <para role="glossdeffirst">
13660<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13661 The package architecture understood by the packaging
13662 system to define the architecture, ABI, and tuning of
13663 output packages.
13664 The specific tune is defined using the "_tune" override
13665 as follows:
13666 <literallayout class='monospaced'>
13667 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
13668 </literallayout>
13669 </para>
13670
13671 <para>
13672 These tune-specific package architectures are defined in
13673 the machine include files.
13674 Here is an example of the "core2-32" tuning as used
13675 in the
13676 <filename>meta/conf/machine/include/tune-core2.inc</filename>
13677 file:
13678 <literallayout class='monospaced'>
13679 TUNE_PKGARCH_tune-core2-32 = "core2-32"
13680 </literallayout>
13681 </para>
13682 </glossdef>
13683 </glossentry>
13684
13685 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
13686 <info>
13687 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."
13688 </info>
13689 <glossdef>
13690 <para role="glossdeffirst">
13691<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13692 An underlying Application Binary Interface (ABI) used by
13693 a particular tuning in a given toolchain layer.
13694 Providers that use prebuilt libraries can use the
13695 <filename>TUNEABI</filename>,
13696 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
13697 and
13698 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
13699 variables to check compatibility of tunings against their
13700 selection of libraries.
13701 </para>
13702
13703 <para>
13704 If <filename>TUNEABI</filename> is undefined, then every
13705 tuning is allowed.
13706 See the
13707 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13708 class to see how the variable is used.
13709 </para>
13710 </glossdef>
13711 </glossentry>
13712
13713 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
13714 <info>
13715 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
13716 </info>
13717 <glossdef>
13718 <para role="glossdeffirst">
13719<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13720 If set, the OpenEmbedded system ignores the
13721 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
13722 variable.
13723 Providers that use prebuilt libraries can use the
13724 <filename>TUNEABI_OVERRIDE</filename>,
13725 <filename>TUNEABI_WHITELIST</filename>,
13726 and
13727 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
13728 variables to check compatibility of a tuning against their
13729 selection of libraries.
13730 </para>
13731
13732 <para>
13733 See the
13734 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13735 class to see how the variable is used.
13736 </para>
13737 </glossdef>
13738 </glossentry>
13739
13740 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
13741 <info>
13742 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
13743 </info>
13744 <glossdef>
13745 <para role="glossdeffirst">
13746<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13747 A whitelist of permissible
13748 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
13749 values.
13750 If <filename>TUNEABI_WHITELIST</filename> is not set,
13751 all tunes are allowed.
13752 Providers that use prebuilt libraries can use the
13753 <filename>TUNEABI_WHITELIST</filename>,
13754 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
13755 and <filename>TUNEABI</filename> variables to check
13756 compatibility of a tuning against their selection of
13757 libraries.
13758 </para>
13759
13760 <para>
13761 See the
13762 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13763 class to see how the variable is used.
13764 </para>
13765 </glossdef>
13766 </glossentry>
13767
13768 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
13769 <info>
13770 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
13771 </info>
13772 <glossdef>
13773 <para role="glossdeffirst">
13774<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13775 Specifies CPU or Application Binary Interface (ABI)
13776 tuning features that conflict with <replaceable>feature</replaceable>.
13777 </para>
13778
13779 <para>
13780 Known tuning conflicts are specified in the machine include
13781 files in the
13782 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
13783 Here is an example from the
13784 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
13785 include file that lists the "o32" and "n64" features as
13786 conflicting with the "n32" feature:
13787 <literallayout class='monospaced'>
13788 TUNECONFLICTS[n32] = "o32 n64"
13789 </literallayout>
13790 </para>
13791 </glossdef>
13792 </glossentry>
13793
13794 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
13795 <info>
13796 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
13797 </info>
13798 <glossdef>
13799 <para role="glossdeffirst">
13800<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13801 Specifies a valid CPU or Application Binary Interface (ABI)
13802 tuning feature.
13803 The specified feature is stored as a flag.
13804 Valid features are specified in the machine include files
13805 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
13806 Here is an example from that file:
13807 <literallayout class='monospaced'>
13808 TUNEVALID[bigendian] = "Enable big-endian mode."
13809 </literallayout>
13810 </para>
13811
13812 <para>
13813 See the machine include files in the
13814 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
13815 for these features.
13816 </para>
13817 </glossdef>
13818 </glossentry>
13819
13820 </glossdiv>
13821
13822 <glossdiv id='var-glossary-u'><title>U</title>
13823
13824 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
13825 <info>
13826 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
13827 </info>
13828 <glossdef>
13829 <para role="glossdeffirst">
13830<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13831 Configures the
13832 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
13833 and can also define
13834 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
13835 for individual cases.
13836 </para>
13837
13838 <para>
13839 Following is an example from the
13840 <filename>meta-fsl-arm</filename> layer.
13841 <literallayout class='monospaced'>
13842 UBOOT_CONFIG ??= "sd"
13843 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
13844 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
13845 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
13846 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
13847 </literallayout>
13848 In this example, "sd" is selected as the configuration
13849 of the possible four for the
13850 <filename>UBOOT_MACHINE</filename>.
13851 The "sd" configuration defines "mx6qsabreauto_config"
13852 as the value for <filename>UBOOT_MACHINE</filename>, while
13853 the "sdcard" specifies the
13854 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
13855 image.
13856 </para>
13857
13858 <para>
13859 For more information on how the
13860 <filename>UBOOT_CONFIG</filename> is handled, see the
13861 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
13862 class.
13863 </para>
13864 </glossdef>
13865 </glossentry>
13866
13867 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
13868 <info>
13869 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
13870 </info>
13871 <glossdef>
13872 <para role="glossdeffirst">
13873<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13874 Specifies the entry point for the U-Boot image.
13875 During U-Boot image creation, the
13876 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
13877 as a command-line parameter to the
13878 <filename>uboot-mkimage</filename> utility.
13879 </para>
13880 </glossdef>
13881 </glossentry>
13882
13883 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
13884 <info>
13885 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
13886 </info>
13887 <glossdef>
13888 <para role="glossdeffirst">
13889<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13890 Specifies the load address for the U-Boot image.
13891 During U-Boot image creation, the
13892 <filename>UBOOT_LOADADDRESS</filename> variable is passed
13893 as a command-line parameter to the
13894 <filename>uboot-mkimage</filename> utility.
13895 </para>
13896 </glossdef>
13897 </glossentry>
13898
13899 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
13900 <info>
13901 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
13902 </info>
13903 <glossdef>
13904 <para role="glossdeffirst">
13905<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13906 Appends a string to the name of the local version of the
13907 U-Boot image.
13908 For example, assuming the version of the U-Boot image
13909 built was "2013.10, the full version string reported by
13910 U-Boot would be "2013.10-yocto" given the following
13911 statement:
13912 <literallayout class='monospaced'>
13913 UBOOT_LOCALVERSION = "-yocto"
13914 </literallayout>
13915 </para>
13916 </glossdef>
13917 </glossentry>
13918
13919 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
13920 <info>
13921 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
13922 </info>
13923 <glossdef>
13924 <para role="glossdeffirst">
13925<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13926 Specifies the value passed on the
13927 <filename>make</filename> command line when building
13928 a U-Boot image.
13929 The value indicates the target platform configuration.
13930 You typically set this variable from the machine
13931 configuration file (i.e.
13932 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
13933 </para>
13934
13935 <para>
13936 Please see the "Selection of Processor Architecture and
13937 Board Type" section in the U-Boot README for valid values
13938 for this variable.
13939 </para>
13940 </glossdef>
13941 </glossentry>
13942
13943 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
13944 <info>
13945 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
13946 </info>
13947 <glossdef>
13948 <para role="glossdeffirst">
13949<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13950 Specifies the target called in the
13951 <filename>Makefile</filename>.
13952 The default target is "all".
13953 </para>
13954 </glossdef>
13955 </glossentry>
13956
13957 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
13958 <info>
13959 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
13960 </info>
13961 <glossdef>
13962 <para role="glossdeffirst">
13963<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13964 Points to the generated U-Boot extension.
13965 For example, <filename>u-boot.sb</filename> has a
13966 <filename>.sb</filename> extension.
13967 </para>
13968
13969 <para>
13970 The default U-Boot extension is
13971 <filename>.bin</filename>
13972 </para>
13973 </glossdef>
13974 </glossentry>
13975
13976 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
13977 <info>
13978 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
13979 </info>
13980 <glossdef>
13981 <para role="glossdeffirst">
13982<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13983 Specifies the target used for building U-Boot.
13984 The target is passed directly as part of the "make" command
13985 (e.g. SPL and AIS).
13986 If you do not specifically set this variable, the
13987 OpenEmbedded build process passes and uses "all" for the
13988 target during the U-Boot building process.
13989 </para>
13990 </glossdef>
13991 </glossentry>
13992
13993 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
13994 <info>
13995 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."
13996 </info>
13997 <glossdef>
13998 <para role="glossdeffirst">
13999<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14000 Specifies a list of options that, if reported by the
14001 configure script as being invalid, should not generate a
14002 warning during the
14003 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
14004 task.
14005 Normally, invalid configure options are simply not passed
14006 to the configure script (e.g. should be removed from
14007 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>).
14008 However, common options, for example, exist that are passed
14009 to all configure scripts at a class level that might not
14010 be valid for some configure scripts.
14011 It follows that no benefit exists in seeing a warning about
14012 these options.
14013 For these cases, the options are added to
14014 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
14015 </para>
14016
14017 <para>
14018 The configure arguments check that uses
14019 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
14020 of the
14021 <link linkend='ref-classes-insane'><filename>insane</filename></link>
14022 class and is only enabled if the recipe inherits the
14023 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
14024 class.
14025 </para>
14026 </glossdef>
14027 </glossentry>
14028
14029 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
14030 <info>
14031 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is to be enabled."
14032 </info>
14033 <glossdef>
14034 <para role="glossdeffirst">
14035<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14036 For recipes inheriting the
14037 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
14038 class, <filename>UPDATERCPN</filename> specifies
14039 the package that contains the initscript that is to be
14040 enabled.
14041 </para>
14042
14043 <para>
14044 The default value is "${PN}".
14045 Given that almost all recipes that install initscripts
14046 package them in the main package for the recipe, you
14047 rarely need to set this variable in individual recipes.
14048 </para>
14049 </glossdef>
14050 </glossentry>
14051
14052 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
14053 <info>
14054 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
14055 </info>
14056 <glossdef>
14057 <para role="glossdeffirst">
14058<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14059 Determines if <filename>devtmpfs</filename> is used for
14060 <filename>/dev</filename> population.
14061 The default value used for <filename>USE_DEVFS</filename>
14062 is "1" when no value is specifically set.
14063 Typically, you would set <filename>USE_DEVFS</filename>
14064 to "0" for a statically populated <filename>/dev</filename>
14065 directory.
14066 </para>
14067
14068 <para>
14069 See the
14070 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
14071 section in the Yocto Project Development Manual for
14072 information on how to use this variable.
14073 </para>
14074 </glossdef>
14075 </glossentry>
14076
14077 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
14078 <info>
14079 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."
14080 </info>
14081 <glossdef>
14082 <para role="glossdeffirst">
14083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14084 When using
14085 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14086 determines whether or not to run a
14087 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14088 on any virtual terminals in order to enable logging in
14089 through those terminals.
14090 </para>
14091
14092 <para>
14093 The default value used for <filename>USE_VT</filename>
14094 is "1" when no default value is specifically set.
14095 Typically, you would set <filename>USE_VT</filename>
14096 to "0" in the machine configuration file for machines
14097 that do not have a graphical display attached and
14098 therefore do not need virtual terminal functionality.
14099 </para>
14100 </glossdef>
14101 </glossentry>
14102
14103 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
14104 <info>
14105 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
14106 </info>
14107 <glossdef>
14108 <para role="glossdeffirst">
14109<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14110 A list of classes to globally inherit.
14111 These classes are used by the OpenEmbedded build system
14112 to enable extra features (e.g.
14113 <filename>buildstats</filename>,
14114 <filename>image-mklibs</filename>, and so forth).
14115 </para>
14116
14117 <para>
14118 The default list is set in your
14119 <filename>local.conf</filename> file:
14120 <literallayout class='monospaced'>
14121 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
14122 </literallayout>
14123 For more information, see
14124 <filename>meta-yocto/conf/local.conf.sample</filename> in
14125 the
14126 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
14127 </para>
14128 </glossdef>
14129 </glossentry>
14130
14131 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
14132 <info>
14133 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."
14134 </info>
14135 <glossdef>
14136 <para role="glossdeffirst">
14137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14138 Forces the OpenEmbedded build system to produce an error
14139 if the user identification (<filename>uid</filename>) and
14140 group identification (<filename>gid</filename>) values
14141 are not defined in <filename>files/passwd</filename>
14142 and <filename>files/group</filename> files.
14143 </para>
14144
14145 <para>
14146 The default behavior for the build system is to dynamically
14147 apply <filename>uid</filename> and
14148 <filename>gid</filename> values.
14149 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
14150 variable is by default not set.
14151 If you plan on using statically assigned
14152 <filename>gid</filename> and <filename>uid</filename>
14153 values, you should set
14154 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
14155 your <filename>local.conf</filename> file as
14156 follows:
14157 <literallayout class='monospaced'>
14158 USERADD_ERROR_DYNAMIC = "1"
14159 </literallayout>
14160 Overriding the default behavior implies you are going to
14161 also take steps to set static <filename>uid</filename> and
14162 <filename>gid</filename> values through use of the
14163 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
14164 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
14165 and
14166 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
14167 variables.
14168 </para>
14169 </glossdef>
14170 </glossentry>
14171
14172 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
14173 <info>
14174 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."
14175 </info>
14176 <glossdef>
14177 <para role="glossdeffirst">
14178<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14179 Specifies a password file to use for obtaining static
14180 group identification (<filename>gid</filename>) values
14181 when the OpenEmbedded build system adds a group to the
14182 system during package installation.
14183 </para>
14184
14185 <para>
14186 When applying static group identification
14187 (<filename>gid</filename>) values, the OpenEmbedded build
14188 system looks in
14189 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
14190 for a <filename>files/group</filename> file and then applies
14191 those <filename>uid</filename> values.
14192 Set the variable as follows in your
14193 <filename>local.conf</filename> file:
14194 <literallayout class='monospaced'>
14195 USERADD_GID_TABLES = "files/group"
14196 </literallayout>
14197 </para>
14198
14199 <note>
14200 Setting the
14201 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
14202 variable to "useradd-staticids" causes the build system
14203 to use static <filename>gid</filename> values.
14204 </note>
14205 </glossdef>
14206 </glossentry>
14207
14208 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
14209 <info>
14210 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."
14211 </info>
14212 <glossdef>
14213 <para role="glossdeffirst">
14214<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14215 When inheriting the
14216 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
14217 class, this variable
14218 specifies the individual packages within the recipe that
14219 require users and/or groups to be added.
14220 </para>
14221
14222 <para>
14223 You must set this variable if the recipe inherits the
14224 class.
14225 For example, the following enables adding a user for the
14226 main package in a recipe:
14227 <literallayout class='monospaced'>
14228 USERADD_PACKAGES = "${PN}"
14229 </literallayout>
14230 <note>
14231 If follows that if you are going to use the
14232 <filename>USERADD_PACKAGES</filename> variable,
14233 you need to set one or more of the
14234 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
14235 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
14236 or
14237 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
14238 variables.
14239 </note>
14240 </para>
14241
14242 </glossdef>
14243 </glossentry>
14244
14245 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
14246 <info>
14247 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."
14248 </info>
14249 <glossdef>
14250 <para role="glossdeffirst">
14251<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14252 When inheriting the
14253 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
14254 class, this variable
14255 specifies for a package what parameters should be passed
14256 to the <filename>useradd</filename> command
14257 if you wish to add a user to the system when the package
14258 is installed.
14259 </para>
14260
14261 <para>
14262 Here is an example from the <filename>dbus</filename>
14263 recipe:
14264 <literallayout class='monospaced'>
14265 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
14266 --no-create-home --shell /bin/false \
14267 --user-group messagebus"
14268 </literallayout>
14269 For information on the standard Linux shell command
14270 <filename>useradd</filename>, see
14271 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
14272 </para>
14273 </glossdef>
14274 </glossentry>
14275
14276 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
14277 <info>
14278 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."
14279 </info>
14280 <glossdef>
14281 <para role="glossdeffirst">
14282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14283 Specifies a password file to use for obtaining static
14284 user identification (<filename>uid</filename>) values
14285 when the OpenEmbedded build system adds a user to the
14286 system during package installation.
14287 </para>
14288
14289 <para>
14290 When applying static user identification
14291 (<filename>uid</filename>) values, the OpenEmbedded build
14292 system looks in
14293 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
14294 for a <filename>files/passwd</filename> file and then applies
14295 those <filename>uid</filename> values.
14296 Set the variable as follows in your
14297 <filename>local.conf</filename> file:
14298 <literallayout class='monospaced'>
14299 USERADD_UID_TABLES = "files/passwd"
14300 </literallayout>
14301 </para>
14302
14303 <note>
14304 Setting the
14305 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
14306 variable to "useradd-staticids" causes the build system
14307 to use static <filename>uid</filename> values.
14308 </note>
14309 </glossdef>
14310 </glossentry>
14311
14312 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
14313 <info>
14314 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."
14315 </info>
14316 <glossdef>
14317 <para role="glossdeffirst">
14318<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14319 When set to "useradd-staticids", causes the
14320 OpenEmbedded build system to base all user and group
14321 additions on a static
14322 <filename>passwd</filename> and
14323 <filename>group</filename> files found in
14324 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
14325 </para>
14326
14327 <para>
14328 To use static user identification (<filename>uid</filename>)
14329 and group identification (<filename>gid</filename>)
14330 values, set the variable
14331 as follows in your <filename>local.conf</filename> file:
14332 <literallayout class='monospaced'>
14333 USERADDEXTENSION = "useradd-staticids"
14334 </literallayout>
14335 <note>
14336 Setting this variable to use static
14337 <filename>uid</filename> and <filename>gid</filename>
14338 values causes the OpenEmbedded build system to employ
14339 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050014340 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014341 class.
14342 </note>
14343 </para>
14344
14345 <para>
14346 If you use static <filename>uid</filename> and
14347 <filename>gid</filename> information, you must also
14348 specify the <filename>files/passwd</filename> and
14349 <filename>files/group</filename> files by setting the
14350 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
14351 and
14352 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
14353 variables.
14354 Additionally, you should also set the
14355 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
14356 variable.
14357 </para>
14358 </glossdef>
14359 </glossentry>
14360
14361 </glossdiv>
14362
14363<!-- <glossdiv id='var-glossary-v'><title>V</title>-->
14364<!-- </glossdiv>-->
14365
14366 <glossdiv id='var-glossary-w'><title>W</title>
14367
14368 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
14369 <info>
14370 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
14371 </info>
14372 <glossdef>
14373 <para role="glossdeffirst">
14374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14375 Specifies the quality assurance checks whose failures are
14376 reported as warnings by the OpenEmbedded build system.
14377 You set this variable in your distribution configuration
14378 file.
14379 For a list of the checks you can control with this variable,
14380 see the
14381 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
14382 section.
14383 </para>
14384 </glossdef>
14385 </glossentry>
14386
14387 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
14388 <info>
14389 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."
14390 </info>
14391 <glossdef>
14392 <para role="glossdeffirst">
14393<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14394 The pathname of the work directory in which the OpenEmbedded
14395 build system builds a recipe.
14396 This directory is located within the
14397 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14398 directory structure and is specific to the recipe being
14399 built and the system for which it is being built.
14400 </para>
14401
14402 <para>
14403 The <filename>WORKDIR</filename> directory is defined as
14404 follows:
14405 <literallayout class='monospaced'>
14406 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
14407 </literallayout>
14408 The actual directory depends on several things:
14409 <itemizedlist>
14410 <listitem><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>:
14411 The top-level build output directory</listitem>
14412 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
14413 The target system identifier</listitem>
14414 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
14415 The recipe name</listitem>
14416 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
14417 The epoch - (if
14418 <link linkend='var-PE'><filename>PE</filename></link>
14419 is not specified, which is usually the case for most
14420 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
14421 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
14422 The recipe version</listitem>
14423 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
14424 The recipe revision</listitem>
14425 </itemizedlist>
14426 </para>
14427
14428 <para>
14429 As an example, assume a Source Directory top-level folder
14430 name <filename>poky</filename>, a default Build Directory at
14431 <filename>poky/build</filename>, and a
14432 <filename>qemux86-poky-linux</filename> machine target
14433 system.
14434 Furthermore, suppose your recipe is named
14435 <filename>foo_1.3.0-r0.bb</filename>.
14436 In this case, the work directory the build system uses to
14437 build the package would be as follows:
14438 <literallayout class='monospaced'>
14439 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
14440 </literallayout>
14441 </para>
14442 </glossdef>
14443 </glossentry>
14444
14445 </glossdiv>
14446
14447 <glossdiv id='var-glossary-x'><title>X</title>
14448
14449 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
14450 <info>
14451 XSERVER[doc] = "Specifies the packages that should be installed
14452 to provide an X server and drivers for the current machine."
14453 </info>
14454 <glossdef>
14455 <para role="glossdeffirst">
14456<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14457 Specifies the packages that should be installed to
14458 provide an X server and drivers for the current machine,
14459 assuming your image directly includes
14460 <filename>packagegroup-core-x11-xserver</filename> or,
14461 perhaps indirectly, includes "x11-base" in
14462 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
14463 </para>
14464
14465 <para>
14466 The default value of <filename>XSERVER</filename>, if not
14467 specified in the machine configuration, is
14468 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
14469 </para>
14470 </glossdef>
14471 </glossentry>
14472
14473 </glossdiv>
14474
14475<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
14476<!-- </glossdiv>-->
14477
14478<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
14479<!-- </glossdiv>-->
14480
14481</glossary>
14482</chapter>
14483<!--
14484vim: expandtab tw=80 ts=4
14485-->