blob: d55bccdc6fde20760334e81a6f0ad46dc6a3191c [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>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050035<!-- <link linkend='var-glossary-q'>Q</link> -->
Patrick Williamsc124f4f2015-09-15 14:41:29 -050036 <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 \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001133 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001134 /home/scottrif/poky/meta-yocto-bsp \
1135 /home/scottrif/poky/meta-mykernel \
1136 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001137 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001138 </para>
1139
1140 <para>
1141 This example enables four layers, one of which is a custom, user-defined layer
1142 named <filename>meta-mykernel</filename>.
1143 </para>
1144 </glossdef>
1145 </glossentry>
1146
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001147 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1148 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001149 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001150 </info>
1151 <glossdef>
1152 <para role="glossdeffirst">
1153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1154 Prevents BitBake from processing recipes and recipe
1155 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001156 </para>
1157
1158 <para>
1159 You can use the <filename>BBMASK</filename> variable
1160 to "hide" these <filename>.bb</filename> and
1161 <filename>.bbappend</filename> files.
1162 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001163 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001164 It is as if BitBake does not see them at all.
1165 Consequently, matching files are not parsed or otherwise
1166 used by BitBake.</para>
1167 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001168 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001169 expression compiler.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001170 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001171 the files.
1172 For complete syntax information, see Python's
1173 documentation at
1174 <ulink url='http://docs.python.org/release/2.3/lib/re-syntax.html'></ulink>.
1175 </para>
1176
1177 <para>
1178 The following example uses a complete regular expression
1179 to tell BitBake to ignore all recipe and recipe append
1180 files in the <filename>meta-ti/recipes-misc/</filename>
1181 directory:
1182 <literallayout class='monospaced'>
1183 BBMASK = "meta-ti/recipes-misc/"
1184 </literallayout>
1185 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001186 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001187 This next example masks out multiple directories and
1188 individual recipes:
1189 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001190 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1191 BBMASK += "/meta-oe/recipes-support/"
1192 BBMASK += "/meta-foo/.*/openldap"
1193 BBMASK += "opencv.*\.bbappend"
1194 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001195 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001196 <note>
1197 When specifying a directory name, use the trailing
1198 slash character to ensure you match just that directory
1199 name.
1200 </note>
1201 </para>
1202 </glossdef>
1203 </glossentry>
1204
1205 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1206 <info>
1207 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1208 </info>
1209 <glossdef>
1210 <para role="glossdeffirst">
1211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1212 Used by BitBake to locate
1213 <filename>.bbclass</filename> and configuration files.
1214 This variable is analogous to the
1215 <filename>PATH</filename> variable.
1216 <note>
1217 If you run BitBake from a directory outside of the
1218 <ulink url='&YOCTO_DOCS_DEV_URL;build-directory'>Build Directory</ulink>,
1219 you must be sure to set
1220 <filename>BBPATH</filename> to point to the
1221 Build Directory.
1222 Set the variable as you would any environment variable
1223 and then run BitBake:
1224 <literallayout class='monospaced'>
1225 $ BBPATH = "<replaceable>build_directory</replaceable>"
1226 $ export BBPATH
1227 $ bitbake <replaceable>target</replaceable>
1228 </literallayout>
1229 </note>
1230 </para>
1231 </glossdef>
1232 </glossentry>
1233
1234 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1235 <info>
1236 BBSERVER[doc] = "Points to the server that runs memory-resident BitBake."
1237 </info>
1238 <glossdef>
1239 <para role="glossdeffirst">
1240<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1241 Points to the server that runs memory-resident BitBake.
1242 This variable is set by the
1243 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>
1244 setup script and should not be hand-edited.
1245 The variable is only used when you employ memory-resident
1246 BitBake.
1247 The setup script exports the value as follows:
1248 <literallayout class='monospaced'>
1249 export BBSERVER=localhost:$port
1250 </literallayout>
1251 </para>
1252
1253 <para>
1254 For more information on how the
1255 <filename>BBSERVER</filename> is used, see the
1256 <filename>oe-init-build-env-memres</filename> script, which
1257 is located in the
1258 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
1259 </para>
1260 </glossdef>
1261 </glossentry>
1262
1263 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1264 <info>
1265 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."
1266 </info>
1267 <glossdef>
1268 <para role="glossdeffirst">
1269<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1270 When inheriting the
1271 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1272 class, this variable specifies binary configuration
1273 scripts to disable in favor of using
1274 <filename>pkg-config</filename> to query the information.
1275 The <filename>binconfig-disabled</filename> class will
1276 modify the specified scripts to return an error so that
1277 calls to them can be easily found and replaced.
1278 </para>
1279
1280 <para>
1281 To add multiple scripts, separate them by spaces.
1282 Here is an example from the <filename>libpng</filename>
1283 recipe:
1284 <literallayout class='monospaced'>
1285 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1286 </literallayout>
1287 </para>
1288 </glossdef>
1289 </glossentry>
1290
1291 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1292 <info>
1293 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1294 </info>
1295 <glossdef>
1296 <para role="glossdeffirst">
1297<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1298 When inheriting the
1299 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1300 class, this variable specifies a wildcard for
1301 configuration scripts that need editing.
1302 The scripts are edited to correct any paths that have been
1303 set up during compilation so that they are correct for
1304 use when installed into the sysroot and called by the
1305 build processes of other recipes.
1306 </para>
1307
1308 <para>
1309 For more information on how this variable works, see
1310 <filename>meta/classes/binconfig.bbclass</filename> in the
1311 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
1312 You can also find general information on the class in the
1313 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1314 section.
1315 </para>
1316 </glossdef>
1317 </glossentry>
1318
1319 <glossentry id='var-BP'><glossterm>BP</glossterm>
1320 <info>
1321 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}"
1322 </info>
1323 <glossdef>
1324 <para role="glossdeffirst">
1325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1326 The base recipe name and version but without any special
1327 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1328 and so forth).
1329 <filename>BP</filename> is comprised of the following:
1330 <literallayout class="monospaced">
1331 ${BPN}-${PV}
1332 </literallayout>
1333 </para>
1334 </glossdef>
1335 </glossentry>
1336
1337 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1338 <info>
1339 BPN[doc] = "The bare name of the recipe. This variable is a version of the PN variable but removes common suffixes and prefixes."
1340 </info>
1341 <glossdef>
1342 <para role="glossdeffirst">
1343<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1344 The bare name of the recipe.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001345 This variable is a version of the
1346 <link linkend='var-PN'><filename>PN</filename></link>
1347 variable but removes common suffixes such as
1348 <filename>-native</filename> and
1349 <filename>-cross</filename> as well
1350 as removes common prefixes such as multilib's
1351 <filename>lib64-</filename> and
1352 <filename>lib32-</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001353 The exact list of suffixes removed is specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001354 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1355 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001356 The exact list of prefixes removed is specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001357 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
1358 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001359 Prefixes are removed for <filename>multilib</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001360 and <filename>nativesdk-</filename> cases.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001361 </para>
1362 </glossdef>
1363 </glossentry>
1364
1365 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1366 <info>
1367 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1368 </info>
1369 <glossdef>
1370 <para role="glossdeffirst">
1371<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1372 Specifies a URL for an upstream bug tracking website for
1373 a recipe.
1374 The OpenEmbedded build system does not use this variable.
1375 Rather, the variable is a useful pointer in case a bug
1376 in the software being built needs to be manually reported.
1377 </para>
1378 </glossdef>
1379 </glossentry>
1380
1381 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1382 <info>
1383 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1384 </info>
1385 <glossdef>
1386 <para role="glossdeffirst">
1387<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1388 Specifies the architecture of the build host
1389 (e.g. <filename>i686</filename>).
1390 The OpenEmbedded build system sets the value of
1391 <filename>BUILD_ARCH</filename> from the machine name
1392 reported by the <filename>uname</filename> command.
1393 </para>
1394 </glossdef>
1395 </glossentry>
1396
1397 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1398 <info>
1399 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1400 </info>
1401 <glossdef>
1402 <para role="glossdeffirst">
1403<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1404 Specifies the flags to pass to the C compiler when building
1405 for the build host.
1406 When building in the <filename>-native</filename> context,
1407 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1408 is set to the value of this variable by default.
1409 </para>
1410 </glossdef>
1411 </glossentry>
1412
1413 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1414 <info>
1415 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."
1416 </info>
1417 <glossdef>
1418 <para role="glossdeffirst">
1419<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1420 Specifies the flags to pass to the C pre-processor
1421 (i.e. to both the C and the C++ compilers) when building
1422 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001423 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001424 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1425 is set to the value of this variable by default.
1426 </para>
1427 </glossdef>
1428 </glossentry>
1429
1430 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1431 <info>
1432 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1433 </info>
1434 <glossdef>
1435 <para role="glossdeffirst">
1436<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1437 Specifies the flags to pass to the C++ compiler when
1438 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001439 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001440 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1441 is set to the value of this variable by default.
1442 </para>
1443 </glossdef>
1444 </glossentry>
1445
1446 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1447 <info>
1448 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1449 </info>
1450 <glossdef>
1451 <para role="glossdeffirst">
1452<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1453 Specifies the flags to pass to the linker when building
1454 for the build host.
1455 When building in the <filename>-native</filename> context,
1456 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1457 is set to the value of this variable by default.
1458 </para>
1459 </glossdef>
1460 </glossentry>
1461
1462 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1463 <info>
1464 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1465 </info>
1466 <glossdef>
1467 <para role="glossdeffirst">
1468<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1469 Specifies the optimization flags passed to the C compiler
1470 when building for the build host or the SDK.
1471 The flags are passed through the
1472 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1473 and
1474 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1475 default values.
1476 </para>
1477
1478 <para>
1479 The default value of the
1480 <filename>BUILD_OPTIMIZATION</filename> variable is
1481 "-O2 -pipe".
1482 </para>
1483 </glossdef>
1484 </glossentry>
1485
1486 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1487 <info>
1488 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1489 </info>
1490 <glossdef>
1491 <para role="glossdeffirst">
1492<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1493 Specifies the operating system in use on the build
1494 host (e.g. "linux").
1495 The OpenEmbedded build system sets the value of
1496 <filename>BUILD_OS</filename> from the OS reported by
1497 the <filename>uname</filename> command - the first word,
1498 converted to lower-case characters.
1499 </para>
1500 </glossdef>
1501 </glossentry>
1502
1503 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1504 <info>
1505 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1506 </info>
1507 <glossdef>
1508 <para role="glossdeffirst">
1509<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1510 The toolchain binary prefix used for native recipes.
1511 The OpenEmbedded build system uses the
1512 <filename>BUILD_PREFIX</filename> value to set the
1513 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001514 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001515 </para>
1516 </glossdef>
1517 </glossentry>
1518
1519 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1520 <info>
1521 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1522 </info>
1523 <glossdef>
1524 <para role="glossdeffirst">
1525<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1526 Specifies the system, including the architecture and
1527 the operating system, to use when building for the build
1528 host (i.e. when building <filename>native</filename>
1529 recipes).
1530 </para>
1531
1532 <para>
1533 The OpenEmbedded build system automatically sets this
1534 variable based on
1535 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1536 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1537 and
1538 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1539 You do not need to set the <filename>BUILD_SYS</filename>
1540 variable yourself.
1541 </para>
1542 </glossdef>
1543 </glossentry>
1544
1545 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1546 <info>
1547 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1548 </info>
1549 <glossdef>
1550 <para role="glossdeffirst">
1551<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1552 Specifies the vendor name to use when building for the
1553 build host.
1554 The default value is an empty string ("").
1555 </para>
1556 </glossdef>
1557 </glossentry>
1558
1559 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1560 <info>
1561 BUILDDIR[doc] = "Points to the location of the Build Directory."
1562 </info>
1563 <glossdef>
1564 <para role="glossdeffirst">
1565<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1566 Points to the location of the
1567 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
1568 You can define this directory indirectly through the
1569 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
1570 and
1571 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>
1572 scripts by passing in a Build Directory path when you run
1573 the scripts.
1574 If you run the scripts and do not provide a Build Directory
1575 path, the <filename>BUILDDIR</filename> defaults to
1576 <filename>build</filename> in the current directory.
1577 </para>
1578 </glossdef>
1579 </glossentry>
1580
1581 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1582 <info>
1583 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."
1584 </info>
1585 <glossdef>
1586 <para role="glossdeffirst">
1587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1588 When inheriting the
1589 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1590 class, this variable specifies whether or not to commit the
1591 build history output in a local Git repository.
1592 If set to "1", this local repository will be maintained
1593 automatically by the
1594 <filename>buildhistory</filename>
1595 class and a commit will be created on every
1596 build for changes to each top-level subdirectory of the
1597 build history output (images, packages, and sdk).
1598 If you want to track changes to build history over
1599 time, you should set this value to "1".
1600 </para>
1601
1602 <para>
1603 By default, the <filename>buildhistory</filename> class
1604 does not commit the build history output in a local
1605 Git repository:
1606 <literallayout class='monospaced'>
1607 BUILDHISTORY_COMMIT ?= "0"
1608 </literallayout>
1609 </para>
1610 </glossdef>
1611 </glossentry>
1612
1613 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1614 <info>
1615 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1616 </info>
1617 <glossdef>
1618 <para role="glossdeffirst">
1619<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1620 When inheriting the
1621 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1622 class, this variable specifies the author to use for each
1623 Git commit.
1624 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1625 variable to work, the
1626 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1627 variable must be set to "1".
1628 </para>
1629
1630 <para>
1631 Git requires that the value you provide for the
1632 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
1633 takes the form of "name &lt;email@host&gt;".
1634 Providing an email address or host that is not valid does
1635 not produce an error.
1636 </para>
1637
1638 <para>
1639 By default, the <filename>buildhistory</filename> class
1640 sets the variable as follows:
1641 <literallayout class='monospaced'>
1642 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1643 </literallayout>
1644 </para>
1645 </glossdef>
1646 </glossentry>
1647
1648 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1649 <info>
1650 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1651 </info>
1652 <glossdef>
1653 <para role="glossdeffirst">
1654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1655 When inheriting the
1656 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1657 class, this variable specifies the directory in which
1658 build history information is kept.
1659 For more information on how the variable works, see the
1660 <filename>buildhistory.class</filename>.
1661 </para>
1662
1663 <para>
1664 By default, the <filename>buildhistory</filename> class
1665 sets the directory as follows:
1666 <literallayout class='monospaced'>
1667 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1668 </literallayout>
1669 </para>
1670 </glossdef>
1671 </glossentry>
1672
1673 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1674 <info>
1675 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1676 </info>
1677 <glossdef>
1678 <para role="glossdeffirst">
1679<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1680 When inheriting the
1681 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1682 class, this variable specifies the build history features
1683 to be enabled.
1684 For more information on how build history works, see the
1685 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
1686 section.
1687 </para>
1688
1689 <para>
1690 You can specify three features in the form of a
1691 space-separated list:
1692 <itemizedlist>
1693 <listitem><para><emphasis>image:</emphasis>
1694 Analysis of the contents of images, which
1695 includes the list of installed packages among other
1696 things.
1697 </para></listitem>
1698 <listitem><para><emphasis>package:</emphasis>
1699 Analysis of the contents of individual packages.
1700 </para></listitem>
1701 <listitem><para><emphasis>sdk:</emphasis>
1702 Analysis of the contents of the software
1703 development kit (SDK).
1704 </para></listitem>
1705 </itemizedlist>
1706 </para>
1707
1708 <para>
1709 By default, the <filename>buildhistory</filename> class
1710 enables all three features:
1711 <literallayout class='monospaced'>
1712 BUILDHISTORY_FEATURES ?= "image package sdk"
1713 </literallayout>
1714 </para>
1715 </glossdef>
1716 </glossentry>
1717
1718 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
1719 <info>
1720 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."
1721 </info>
1722 <glossdef>
1723 <para role="glossdeffirst">
1724<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1725 When inheriting the
1726 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1727 class, this variable specifies a list of paths to files
1728 copied from the
1729 image contents into the build history directory under
1730 an "image-files" directory in the directory for
1731 the image, so that you can track the contents of each file.
1732 The default is to copy <filename>/etc/passwd</filename>
1733 and <filename>/etc/group</filename>, which allows you to
1734 monitor for changes in user and group entries.
1735 You can modify the list to include any file.
1736 Specifying an invalid path does not produce an error.
1737 Consequently, you can include files that might
1738 not always be present.
1739 </para>
1740
1741 <para>
1742 By default, the <filename>buildhistory</filename> class
1743 provides paths to the following files:
1744 <literallayout class='monospaced'>
1745 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1746 </literallayout>
1747 </para>
1748 </glossdef>
1749 </glossentry>
1750
1751 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
1752 <info>
1753 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
1754 </info>
1755 <glossdef>
1756 <para role="glossdeffirst">
1757<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1758 When inheriting the
1759 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1760 class, this variable optionally specifies a remote
1761 repository to which build history pushes Git changes.
1762 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
1763 to work,
1764 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1765 must be set to "1".
1766 </para>
1767
1768 <para>
1769 The repository should correspond to a remote
1770 address that specifies a repository as understood by
1771 Git, or alternatively to a remote name that you have
1772 set up manually using <filename>git remote</filename>
1773 within the local repository.
1774 </para>
1775
1776 <para>
1777 By default, the <filename>buildhistory</filename> class
1778 sets the variable as follows:
1779 <literallayout class='monospaced'>
1780 BUILDHISTORY_PUSH_REPO ?= ""
1781 </literallayout>
1782 </para>
1783 </glossdef>
1784 </glossentry>
1785
1786 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
1787 <info>
1788 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
1789 </info>
1790 <glossdef>
1791 <para role="glossdeffirst">
1792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1793 Specifies the flags to pass to the C compiler when building
1794 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001795 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001796 context,
1797 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1798 is set to the value of this variable by default.
1799 </para>
1800 </glossdef>
1801 </glossentry>
1802
1803 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
1804 <info>
1805 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."
1806 </info>
1807 <glossdef>
1808 <para role="glossdeffirst">
1809<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1810 Specifies the flags to pass to the C pre-processor
1811 (i.e. to both the C and the C++ compilers) when building
1812 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001813 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001814 context,
1815 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1816 is set to the value of this variable by default.
1817 </para>
1818 </glossdef>
1819 </glossentry>
1820
1821 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
1822 <info>
1823 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
1824 </info>
1825 <glossdef>
1826 <para role="glossdeffirst">
1827<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1828 Specifies the flags to pass to the C++ compiler when
1829 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001830 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001831 context,
1832 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1833 is set to the value of this variable by default.
1834 </para>
1835 </glossdef>
1836 </glossentry>
1837
1838 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
1839 <info>
1840 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
1841 </info>
1842 <glossdef>
1843 <para role="glossdeffirst">
1844<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1845 Specifies the flags to pass to the linker when building
1846 for the SDK.
1847 When building in the <filename>nativesdk-</filename>
1848 context,
1849 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1850 is set to the value of this variable by default.
1851 </para>
1852 </glossdef>
1853 </glossentry>
1854
1855 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
1856 <info>
1857 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
1858 </info>
1859 <glossdef>
1860 <para role="glossdeffirst">
1861<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1862 Points to the location of the directory that holds build
1863 statistics when you use and enable the
1864 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
1865 class.
1866 The <filename>BUILDSTATS_BASE</filename> directory defaults
1867 to
1868 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
1869 </para>
1870 </glossdef>
1871 </glossentry>
1872
1873 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
1874 <info>
1875 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."
1876 </info>
1877 <glossdef>
1878 <para role="glossdeffirst">
1879<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1880 For the BusyBox recipe, specifies whether to split the
1881 output executable file into two parts: one for features
1882 that require <filename>setuid root</filename>, and one for
1883 the remaining features (i.e. those that do not require
1884 <filename>setuid root</filename>).
1885 </para>
1886
1887 <para>
1888 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
1889 defaults to "1", which results in a single output
1890 executable file.
1891 Set the variable to "0" to split the output file.
1892 </para>
1893 </glossdef>
1894 </glossentry>
1895
1896 </glossdiv>
1897
1898 <glossdiv id='var-glossary-c'><title>C</title>
1899
1900 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
1901 <info>
1902 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
1903 </info>
1904 <glossdef>
1905 <para role="glossdeffirst">
1906<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1907 Specifies the directory BitBake uses to store a cache
1908 of the
1909 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
1910 so it does not need to be parsed every time BitBake is
1911 started.
1912 </para>
1913 </glossdef>
1914 </glossentry>
1915
1916 <glossentry id='var-CC'><glossterm>CC</glossterm>
1917 <info>
1918 CC[doc] = "Minimum command and arguments to run the C compiler."
1919 </info>
1920 <glossdef>
1921 <para role="glossdeffirst">
1922<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1923 The minimal command and arguments used to run the C
1924 compiler.
1925 </para>
1926 </glossdef>
1927 </glossentry>
1928
1929 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
1930 <info>
1931 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
1932 </info>
1933 <glossdef>
1934 <para role="glossdeffirst">
1935<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1936 Specifies the flags to pass to the C compiler.
1937 This variable is exported to an environment
1938 variable and thus made visible to the software being
1939 built during the compilation step.
1940 </para>
1941
1942 <para>
1943 Default initialization for <filename>CFLAGS</filename>
1944 varies depending on what is being built:
1945 <itemizedlist>
1946 <listitem><para>
1947 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
1948 when building for the target
1949 </para></listitem>
1950 <listitem><para>
1951 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1952 when building for the build host (i.e.
1953 <filename>-native</filename>)
1954 </para></listitem>
1955 <listitem><para>
1956 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1957 when building for an SDK (i.e.
1958 <filename>nativesdk-</filename>)
1959 </para></listitem>
1960 </itemizedlist>
1961 </para>
1962 </glossdef>
1963 </glossentry>
1964
1965 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
1966 <info>
1967 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
1968 </info>
1969 <glossdef>
1970 <para role="glossdeffirst">
1971<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1972 An internal variable specifying the special class override
1973 that should currently apply (e.g. "class-target",
1974 "class-native", and so forth).
1975 The classes that use this variable set it to
1976 appropriate values.
1977 </para>
1978
1979 <para>
1980 You do not normally directly interact with this variable.
1981 The value for the <filename>CLASSOVERRIDE</filename>
1982 variable goes into
1983 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
1984 and then can be used as an override.
1985 Here is an example where "python-native" is added to
1986 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001987 only when building for the <filename>-native</filename> case:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001988 <literallayout class='monospaced'>
1989 DEPENDS_append_class-native = " python-native"
1990 </literallayout>
1991 </para>
1992 </glossdef>
1993 </glossentry>
1994
1995 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
1996 <info>
1997 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
1998 </info>
1999 <glossdef>
2000 <para role="glossdeffirst">
2001<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2002 If set to "1" within a recipe,
2003 <filename>CLEANBROKEN</filename> specifies that
2004 the <filename>make clean</filename> command does
2005 not work for the software being built.
2006 Consequently, the OpenEmbedded build system will not try
2007 to run <filename>make clean</filename> during the
2008 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2009 task, which is the default behavior.
2010 </para>
2011 </glossdef>
2012 </glossentry>
2013
2014 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2015 <info>
2016 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2017 </info>
2018 <glossdef>
2019 <para role="glossdeffirst">
2020<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2021 Provides a list of hardware features that are enabled in
2022 both
2023 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2024 and
2025 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2026 This select list of features contains features that make
2027 sense to be controlled both at the machine and distribution
2028 configuration level.
2029 For example, the "bluetooth" feature requires hardware
2030 support but should also be optional at the distribution
2031 level, in case the hardware supports Bluetooth but you
2032 do not ever intend to use it.
2033 </para>
2034
2035 <para>
2036 For more information, see the
2037 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2038 and <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
2039 variables.
2040 </para>
2041 </glossdef>
2042 </glossentry>
2043
2044 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2045 <info>
2046 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2047 </info>
2048 <glossdef>
2049 <para role="glossdeffirst">
2050<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2051 Points to <filename>meta/files/common-licenses</filename>
2052 in the
2053 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
2054 which is where generic license files reside.
2055 </para>
2056 </glossdef>
2057 </glossentry>
2058
2059 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2060 <info>
2061 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."
2062 </info>
2063 <glossdef>
2064 <para role="glossdeffirst">
2065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2066 A regular expression that resolves to one or more hosts
2067 (when the recipe is native) or one or more targets (when
2068 the recipe is non-native) with which a recipe is compatible.
2069 The regular expression is matched against
2070 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2071 You can use the variable to stop recipes from being built
2072 for classes of systems with which the recipes are not
2073 compatible.
2074 Stopping these builds is particularly useful with kernels.
2075 The variable also helps to increase parsing speed
2076 since the build system skips parsing recipes not
2077 compatible with the current system.
2078 </para>
2079 </glossdef>
2080 </glossentry>
2081
2082 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2083 <info>
2084 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2085 </info>
2086 <glossdef>
2087 <para role="glossdeffirst">
2088<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2089 A regular expression that resolves to one or more
2090 target machines with which a recipe is compatible.
2091 The regular expression is matched against
2092 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2093 You can use the variable to stop recipes from being built
2094 for machines with which the recipes are not compatible.
2095 Stopping these builds is particularly useful with kernels.
2096 The variable also helps to increase parsing speed
2097 since the build system skips parsing recipes not
2098 compatible with the current machine.
2099 </para>
2100 </glossdef>
2101 </glossentry>
2102
2103 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2104 <info>
2105 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2106 </info>
2107 <glossdef>
2108 <para role="glossdeffirst">
2109<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2110 Defines wildcards to match when installing a list of
2111 complementary packages for all the packages explicitly
2112 (or implicitly) installed in an image.
2113 The resulting list of complementary packages is associated
2114 with an item that can be added to
2115 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2116 An example usage of this is the "dev-pkgs" item that when
2117 added to <filename>IMAGE_FEATURES</filename> will
2118 install -dev packages (containing headers and other
2119 development files) for every package in the image.
2120 </para>
2121
2122 <para>
2123 To add a new feature item pointing to a wildcard, use a
2124 variable flag to specify the feature item name and
2125 use the value to specify the wildcard.
2126 Here is an example:
2127 <literallayout class='monospaced'>
2128 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2129 </literallayout>
2130 </para>
2131 </glossdef>
2132 </glossentry>
2133
2134 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2135 <info>
2136 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2137 </info>
2138 <glossdef>
2139 <para role="glossdeffirst">
2140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2141 Tracks the version of the local configuration file
2142 (i.e. <filename>local.conf</filename>).
2143 The value for <filename>CONF_VERSION</filename>
2144 increments each time <filename>build/conf/</filename>
2145 compatibility changes.
2146 </para>
2147 </glossdef>
2148 </glossentry>
2149
2150 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2151 <info>
2152 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2153 </info>
2154 <glossdef>
2155 <para role="glossdeffirst">
2156<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2157 Identifies editable or configurable files that are part of a package.
2158 If the Package Management System (PMS) is being used to update
2159 packages on the target system, it is possible that
2160 configuration files you have changed after the original installation
2161 and that you now want to remain unchanged are overwritten.
2162 In other words, editable files might exist in the package that you do not
2163 want reset as part of the package update process.
2164 You can use the <filename>CONFFILES</filename> variable to list the files in the
2165 package that you wish to prevent the PMS from overwriting during this update process.
2166 </para>
2167
2168 <para>
2169 To use the <filename>CONFFILES</filename> variable, provide a package name
2170 override that identifies the resulting package.
2171 Then, provide a space-separated list of files.
2172 Here is an example:
2173 <literallayout class='monospaced'>
2174 CONFFILES_${PN} += "${sysconfdir}/file1 \
2175 ${sysconfdir}/file2 ${sysconfdir}/file3"
2176 </literallayout>
2177 </para>
2178
2179 <para>
2180 A relationship exists between the <filename>CONFFILES</filename> and
2181 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2182 The files listed within <filename>CONFFILES</filename> must be a subset of
2183 the files listed within <filename>FILES</filename>.
2184 Because the configuration files you provide with <filename>CONFFILES</filename>
2185 are simply being identified so that the PMS will not overwrite them,
2186 it makes sense that
2187 the files must already be included as part of the package through the
2188 <filename>FILES</filename> variable.
2189 </para>
2190
2191 <note>
2192 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2193 it is good practice to use appropriate path variables.
2194 For example, <filename>${sysconfdir}</filename> rather than
2195 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2196 than <filename>/usr/bin</filename>.
2197 You can find a list of these variables at the top of the
2198 <filename>meta/conf/bitbake.conf</filename> file in the
2199 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
2200 </note>
2201 </glossdef>
2202 </glossentry>
2203
2204 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2205 <info>
2206 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."
2207 </info>
2208 <glossdef>
2209 <para role="glossdeffirst">
2210<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2211 Identifies the initial RAM disk (initramfs) source files.
2212 The OpenEmbedded build system receives and uses
2213 this kernel Kconfig variable as an environment variable.
2214 By default, the variable is set to null ("").
2215 </para>
2216
2217 <para>
2218 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2219 either a single cpio archive with a
2220 <filename>.cpio</filename> suffix or a
2221 space-separated list of directories and files for building
2222 the initramfs image.
2223 A cpio archive should contain a filesystem archive
2224 to be used as an initramfs image.
2225 Directories should contain a filesystem layout to be
2226 included in the initramfs image.
2227 Files should contain entries according to the format
2228 described by the
2229 <filename>usr/gen_init_cpio</filename> program in the
2230 kernel tree.
2231 </para>
2232
2233 <para>
2234 If you specify multiple directories and files, the
2235 initramfs image will be the aggregate of all of them.
2236 </para>
2237 </glossdef>
2238 </glossentry>
2239
2240 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2241 <info>
2242 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."
2243 </info>
2244 <glossdef>
2245 <para role="glossdeffirst">
2246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2247 A list of files that contains <filename>autoconf</filename> test results relevant
2248 to the current build.
2249 This variable is used by the Autotools utilities when running
2250 <filename>configure</filename>.
2251 </para>
2252 </glossdef>
2253 </glossentry>
2254
2255 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2256 <info>
2257 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2258 </info>
2259 <glossdef>
2260 <para role="glossdeffirst">
2261<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2262 The minimal arguments for GNU configure.
2263 </para>
2264 </glossdef>
2265 </glossentry>
2266
2267 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2268 <info>
2269 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."
2270 </info>
2271 <glossdef>
2272 <para role="glossdeffirst">
2273<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2274 When inheriting the
2275 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2276 class, this
2277 variable identifies distribution features that would
2278 be in conflict should the recipe
2279 be built.
2280 In other words, if the
2281 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2282 lists a feature that also appears in
2283 <filename>DISTRO_FEATURES</filename> within the
2284 current configuration, an error occurs and the
2285 build stops.
2286 </para>
2287 </glossdef>
2288 </glossentry>
2289
2290 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2291 <info>
2292 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."
2293 </info>
2294 <glossdef>
2295 <para role="glossdeffirst">
2296<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2297 If set to "1" along with the
2298 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2299 variable, the OpenEmbedded build system copies
2300 into the image the license files, which are located in
2301 <filename>/usr/share/common-licenses</filename>,
2302 for each package.
2303 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002304 in directories within the image itself during build time.
2305 <note>
2306 The <filename>COPY_LIC_DIRS</filename> does not
2307 offer a path for adding licenses for newly installed
2308 packages to an image, which might be most suitable
2309 for read-only filesystems that cannot be upgraded.
2310 See the
2311 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2312 variable for additional information.
2313 You can also reference the
2314 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
2315 section in the Yocto Project Development Manual for
2316 information on providing license text.
2317 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002318 </para>
2319 </glossdef>
2320 </glossentry>
2321
2322 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2323 <info>
2324 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."
2325 </info>
2326 <glossdef>
2327 <para role="glossdeffirst">
2328<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2329 If set to "1", the OpenEmbedded build system copies
2330 the license manifest for the image to
2331 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002332 within the image itself during build time.
2333 <note>
2334 The <filename>COPY_LIC_MANIFEST</filename> does not
2335 offer a path for adding licenses for newly installed
2336 packages to an image, which might be most suitable
2337 for read-only filesystems that cannot be upgraded.
2338 See the
2339 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2340 variable for additional information.
2341 You can also reference the
2342 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
2343 section in the Yocto Project Development Manual for
2344 information on providing license text.
2345 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002346 </para>
2347 </glossdef>
2348 </glossentry>
2349
2350 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2351 <info>
2352 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."
2353 </info>
2354 <glossdef>
2355 <para role="glossdeffirst">
2356<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2357 Specifies the list of packages to be added to the image.
2358 You should only set this variable in the
2359 <filename>local.conf</filename> configuration file found
2360 in the
2361 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
2362 </para>
2363
2364 <para>
2365 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2366 </para>
2367 </glossdef>
2368 </glossentry>
2369
2370 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2371 <info>
2372 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded Core Metadata layer (i.e. meta)."
2373 </info>
2374 <glossdef>
2375 <para role="glossdeffirst">
2376<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2377 Specifies the parent directory of the OpenEmbedded
2378 Core Metadata layer (i.e. <filename>meta</filename>).
2379 </para>
2380
2381 <para>
2382 It is an important distinction that
2383 <filename>COREBASE</filename> points to the parent of this
2384 layer and not the layer itself.
2385 Consider an example where you have cloned the Poky Git
2386 repository and retained the <filename>poky</filename>
2387 name for your local copy of the repository.
2388 In this case, <filename>COREBASE</filename> points to
2389 the <filename>poky</filename> folder because it is the
2390 parent directory of the <filename>poky/meta</filename>
2391 layer.
2392 </para>
2393 </glossdef>
2394 </glossentry>
2395
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002396 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2397 <info>
2398 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2399 </info>
2400 <glossdef>
2401 <para role="glossdeffirst">
2402<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2403 Lists files from the
2404 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2405 directory that should be copied other than the layers
2406 listed in the <filename>bblayers.conf</filename> file.
2407 The <filename>COREBASE_FILES</filename> variable exists
2408 for the purpose of copying metadata from the
2409 OpenEmbedded build system into the extensible
2410 SDK.
2411 </para>
2412
2413 <para>
2414 Explicitly listing files in <filename>COREBASE</filename>
2415 is needed because it typically contains build
2416 directories and other files that should not normally
2417 be copied into the extensible SDK.
2418 Consequently, the value of
2419 <filename>COREBASE_FILES</filename> is used in order to
2420 only copy the files that are actually needed.
2421 </para>
2422 </glossdef>
2423 </glossentry>
2424
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002425 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2426 <info>
2427 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2428 </info>
2429 <glossdef>
2430 <para role="glossdeffirst">
2431<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2432 The minimal command and arguments used to run the C
2433 preprocessor.
2434 </para>
2435 </glossdef>
2436 </glossentry>
2437
2438 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2439 <info>
2440 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2441 </info>
2442 <glossdef>
2443 <para role="glossdeffirst">
2444<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2445 Specifies the flags to pass to the C pre-processor
2446 (i.e. to both the C and the C++ compilers).
2447 This variable is exported to an environment
2448 variable and thus made visible to the software being
2449 built during the compilation step.
2450 </para>
2451
2452 <para>
2453 Default initialization for <filename>CPPFLAGS</filename>
2454 varies depending on what is being built:
2455 <itemizedlist>
2456 <listitem><para>
2457 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2458 when building for the target
2459 </para></listitem>
2460 <listitem><para>
2461 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2462 when building for the build host (i.e.
2463 <filename>-native</filename>)
2464 </para></listitem>
2465 <listitem><para>
2466 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2467 when building for an SDK (i.e.
2468 <filename>nativesdk-</filename>)
2469 </para></listitem>
2470 </itemizedlist>
2471 </para>
2472 </glossdef>
2473 </glossentry>
2474
2475 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2476 <info>
2477 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2478 </info>
2479 <glossdef>
2480 <para role="glossdeffirst">
2481<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2482 The toolchain binary prefix for the target tools.
2483 The <filename>CROSS_COMPILE</filename> variable is the
2484 same as the
2485 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2486 variable.
2487 <note>
2488 The OpenEmbedded build system sets the
2489 <filename>CROSS_COMPILE</filename> variable only in
2490 certain contexts (e.g. when building for kernel
2491 and kernel module recipes).
2492 </note>
2493 </para>
2494 </glossdef>
2495 </glossentry>
2496
2497 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2498 <info>
2499 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2500 </info>
2501 <glossdef>
2502 <para role="glossdeffirst">
2503<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2504 The directory in which files checked out under the
2505 CVS system are stored.
2506 </para>
2507 </glossdef>
2508 </glossentry>
2509
2510 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2511 <info>
2512 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2513 </info>
2514 <glossdef>
2515 <para role="glossdeffirst">
2516<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2517 The minimal command and arguments used to run the C++
2518 compiler.
2519 </para>
2520 </glossdef>
2521 </glossentry>
2522
2523 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
2524 <info>
2525 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
2526 </info>
2527 <glossdef>
2528 <para role="glossdeffirst">
2529<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2530 Specifies the flags to pass to the C++ compiler.
2531 This variable is exported to an environment
2532 variable and thus made visible to the software being
2533 built during the compilation step.
2534 </para>
2535
2536 <para>
2537 Default initialization for <filename>CXXFLAGS</filename>
2538 varies depending on what is being built:
2539 <itemizedlist>
2540 <listitem><para>
2541 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
2542 when building for the target
2543 </para></listitem>
2544 <listitem><para>
2545 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
2546 when building for the build host (i.e.
2547 <filename>-native</filename>)
2548 </para></listitem>
2549 <listitem><para>
2550 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
2551 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002552 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002553 </para></listitem>
2554 </itemizedlist>
2555 </para>
2556 </glossdef>
2557 </glossentry>
2558
2559 </glossdiv>
2560
2561 <glossdiv id='var-glossary-d'><title>D</title>
2562
2563 <glossentry id='var-D'><glossterm>D</glossterm>
2564 <info>
2565 D[doc] = "The destination directory."
2566 </info>
2567 <glossdef>
2568 <para role="glossdeffirst">
2569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2570 The destination directory.
2571 The location in the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
2572 where components are installed by the
2573 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
2574 task.
2575 This location defaults to:
2576 <literallayout class='monospaced'>
2577 ${WORKDIR}/image
2578 </literallayout>
2579 </para>
2580 </glossdef>
2581 </glossentry>
2582
2583 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
2584 <info>
2585 DATE[doc] = "The date the build was started using YMD format."
2586 </info>
2587 <glossdef>
2588 <para role="glossdeffirst">
2589<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2590 The date the build was started.
2591 Dates appear using the year, month, and day (YMD) format
2592 (e.g. "20150209" for February 9th, 2015).
2593 </para>
2594 </glossdef>
2595 </glossentry>
2596
2597 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
2598 <info>
2599 DATETIME[doc] = "The date and time the build was started."
2600 </info>
2601 <glossdef>
2602 <para role="glossdeffirst">
2603<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2604 The date and time on which the current build started.
2605 The format is suitable for timestamps.
2606 </para>
2607 </glossdef>
2608 </glossentry>
2609
2610 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
2611 <info>
2612 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
2613 </info>
2614 <glossdef>
2615 <para role="glossdeffirst">
2616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2617 When the
2618 <link linkend='ref-classes-debian'><filename>debian</filename></link>
2619 class is inherited, which is the default behavior,
2620 <filename>DEBIAN_NOAUTONAME</filename> specifies a
2621 particular package should not be renamed according to
2622 Debian library package naming.
2623 You must use the package name as an override when you
2624 set this variable.
2625 Here is an example from the <filename>fontconfig</filename>
2626 recipe:
2627 <literallayout class='monospaced'>
2628 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
2629 </literallayout>
2630 </para>
2631 </glossdef>
2632 </glossentry>
2633
2634 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
2635 <info>
2636 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
2637 </info>
2638 <glossdef>
2639 <para role="glossdeffirst">
2640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2641 When the
2642 <link linkend='ref-classes-debian'><filename>debian</filename></link>
2643 class is inherited, which is the default behavior,
2644 <filename>DEBIANNAME</filename> allows you to override the
2645 library name for an individual package.
2646 Overriding the library name in these cases is rare.
2647 You must use the package name as an override when you
2648 set this variable.
2649 Here is an example from the <filename>dbus</filename>
2650 recipe:
2651 <literallayout class='monospaced'>
2652 DEBIANNAME_${PN} = "dbus-1"
2653 </literallayout>
2654 </para>
2655 </glossdef>
2656 </glossentry>
2657
2658 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
2659 <info>
2660 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
2661 </info>
2662 <glossdef>
2663 <para role="glossdeffirst">
2664<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2665 Specifies to build packages with debugging information.
2666 This influences the value of the
2667 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
2668 variable.
2669 </para>
2670 </glossdef>
2671 </glossentry>
2672
2673 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
2674 <info>
2675 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'."
2676 </info>
2677 <glossdef>
2678 <para role="glossdeffirst">
2679<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2680 The options to pass in
2681 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
2682 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
2683 a system for debugging.
2684 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
2685 </para>
2686 </glossdef>
2687 </glossentry>
2688
2689 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
2690 <info>
2691 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
2692 </info>
2693 <glossdef>
2694 <para role="glossdeffirst">
2695<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2696 Specifies a weak bias for recipe selection priority.
2697 </para>
2698
2699 <para>
2700 The most common usage of this is variable is to set
2701 it to "-1" within a recipe for a development version of a
2702 piece of software.
2703 Using the variable in this way causes the stable version
2704 of the recipe to build by default in the absence of
2705 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
2706 being used to build the development version.
2707 </para>
2708
2709 <note>
2710 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
2711 is weak and is overridden by
2712 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
2713 if that variable is different between two layers
2714 that contain different versions of the same recipe.
2715 </note>
2716 </glossdef>
2717 </glossentry>
2718
2719 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
2720 <info>
2721 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
2722 </info>
2723 <glossdef>
2724 <para role="glossdeffirst">
2725<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2726 The default CPU and Application Binary Interface (ABI)
2727 tunings (i.e. the "tune") used by the OpenEmbedded build
2728 system.
2729 The <filename>DEFAULTTUNE</filename> helps define
2730 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
2731 </para>
2732
2733 <para>
2734 The default tune is either implicitly or explicitly set
2735 by the machine
2736 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
2737 However, you can override the setting using available tunes
2738 as defined with
2739 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
2740 </para>
2741 </glossdef>
2742 </glossentry>
2743
2744 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
2745 <info>
2746 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
2747 </info>
2748 <glossdef>
2749 <para role="glossdeffirst">
2750<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2751 Lists a recipe's build-time dependencies
2752 (i.e. other recipe files).
2753 The system ensures that all the dependencies listed
2754 have been built and have their contents in the appropriate
2755 sysroots before the recipe's configure task is executed.
2756 </para>
2757
2758 <para>
2759 Consider this simple example for two recipes named "a" and
2760 "b" that produce similarly named packages.
2761 In this example, the <filename>DEPENDS</filename>
2762 statement appears in the "a" recipe:
2763 <literallayout class='monospaced'>
2764 DEPENDS = "b"
2765 </literallayout>
2766 Here, the dependency is such that the
2767 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2768 task for recipe "a" depends on the
2769 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
2770 task of recipe "b".
2771 This means anything that recipe "b" puts into sysroot
2772 is available when recipe "a" is configuring itself.
2773 </para>
2774
2775 <para>
2776 For information on runtime dependencies, see the
2777 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
2778 variable.
2779 </para>
2780 </glossdef>
2781 </glossentry>
2782
2783 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
2784 <info>
2785 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."
2786 </info>
2787 <glossdef>
2788 <para role="glossdeffirst">
2789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2790 Points to the general area that the OpenEmbedded build
2791 system uses to place images, packages, SDKs and other output
2792 files that are ready to be used outside of the build system.
2793 By default, this directory resides within the
2794 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
2795 as <filename>${TMPDIR}/deploy</filename>.
2796 </para>
2797
2798 <para>
2799 For more information on the structure of the Build
2800 Directory, see
2801 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
2802 section.
2803 For more detail on the contents of the
2804 <filename>deploy</filename> directory, see the
2805 "<link linkend='images-dev-environment'>Images</link>",
2806 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>",
2807 and
2808 "<link linkend='sdk-dev-environment'>Application Development SDK</link>"
2809 sections.
2810 </para>
2811 </glossdef>
2812 </glossentry>
2813
2814 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
2815 <info>
2816 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."
2817 </info>
2818 <glossdef>
2819 <para role="glossdeffirst">
2820<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2821 Points to the area that the OpenEmbedded build system uses
2822 to place Debian packages that are ready to be used outside
2823 of the build system.
2824 This variable applies only when
2825 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2826 contains "package_deb".
2827 </para>
2828
2829 <para>
2830 The BitBake configuration file initially defines the
2831 <filename>DEPLOY_DIR_DEB</filename> variable as a
2832 sub-folder of
2833 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2834 <literallayout class='monospaced'>
2835 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
2836 </literallayout>
2837 </para>
2838
2839 <para>
2840 The
2841 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
2842 class uses the
2843 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
2844 the
2845 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
2846 task writes Debian packages into the appropriate folder.
2847 For more information on how packaging works, see the
2848 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2849 section.
2850 </para>
2851 </glossdef>
2852 </glossentry>
2853
2854 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
2855 <info>
2856 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."
2857 </info>
2858 <glossdef>
2859 <para role="glossdeffirst">
2860<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2861 Points to the area that the OpenEmbedded build system uses
2862 to place images and other associated output files that are
2863 ready to be deployed onto the target machine.
2864 The directory is machine-specific as it contains the
2865 <filename>${MACHINE}</filename> name.
2866 By default, this directory resides within the
2867 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
2868 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
2869 </para>
2870
2871 <para>
2872 For more information on the structure of the Build
2873 Directory, see
2874 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
2875 section.
2876 For more detail on the contents of the
2877 <filename>deploy</filename> directory, see the
2878 "<link linkend='images-dev-environment'>Images</link>" and
2879 "<link linkend='sdk-dev-environment'>Application Development SDK</link>"
2880 sections.
2881 </para>
2882 </glossdef>
2883 </glossentry>
2884
2885 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
2886 <info>
2887 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."
2888 </info>
2889 <glossdef>
2890 <para role="glossdeffirst">
2891<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2892 Points to the area that the OpenEmbedded build system uses
2893 to place IPK packages that are ready to be used outside of
2894 the build system.
2895 This variable applies only when
2896 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2897 contains "package_ipk".
2898 </para>
2899
2900 <para>
2901 The BitBake configuration file initially defines this
2902 variable as a sub-folder of
2903 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2904 <literallayout class='monospaced'>
2905 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
2906 </literallayout>
2907 </para>
2908
2909 <para>
2910 The
2911 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
2912 class uses the
2913 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
2914 the
2915 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
2916 task writes IPK packages into the appropriate folder.
2917 For more information on how packaging works, see the
2918 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2919 section.
2920 </para>
2921 </glossdef>
2922 </glossentry>
2923
2924 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
2925 <info>
2926 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."
2927 </info>
2928 <glossdef>
2929 <para role="glossdeffirst">
2930<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2931 Points to the area that the OpenEmbedded build system uses
2932 to place RPM packages that are ready to be used outside
2933 of the build system.
2934 This variable applies only when
2935 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2936 contains "package_rpm".
2937 </para>
2938
2939 <para>
2940 The BitBake configuration file initially defines this
2941 variable as a sub-folder of
2942 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2943 <literallayout class='monospaced'>
2944 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
2945 </literallayout>
2946 </para>
2947
2948 <para>
2949 The
2950 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
2951 class uses the
2952 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
2953 the
2954 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
2955 task writes RPM packages into the appropriate folder.
2956 For more information on how packaging works, see the
2957 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2958 section.
2959 </para>
2960 </glossdef>
2961 </glossentry>
2962
2963 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
2964 <info>
2965 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."
2966 </info>
2967 <glossdef>
2968 <para role="glossdeffirst">
2969<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2970 Points to the area that the OpenEmbedded build system uses
2971 to place tarballs that are ready to be used outside of
2972 the build system.
2973 This variable applies only when
2974 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
2975 contains "package_tar".
2976 </para>
2977
2978 <para>
2979 The BitBake configuration file initially defines this
2980 variable as a sub-folder of
2981 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
2982 <literallayout class='monospaced'>
2983 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
2984 </literallayout>
2985 </para>
2986
2987 <para>
2988 The
2989 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
2990 class uses the
2991 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
2992 the
2993 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
2994 task writes TAR packages into the appropriate folder.
2995 For more information on how packaging works, see the
2996 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
2997 section.
2998 </para>
2999 </glossdef>
3000 </glossentry>
3001
3002 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3003 <info>
3004 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3005 </info>
3006 <glossdef>
3007 <para role="glossdeffirst">
3008<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3009 When inheriting the
3010 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3011 class, the <filename>DEPLOYDIR</filename> points to a
3012 temporary work area for deployed files that is set in the
3013 <filename>deploy</filename> class as follows:
3014 <literallayout class='monospaced'>
3015 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3016 </literallayout>
3017 </para>
3018
3019 <para>
3020 Recipes inheriting the <filename>deploy</filename> class
3021 should copy files to be deployed into
3022 <filename>DEPLOYDIR</filename>, and the class will take
3023 care of copying them into
3024 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3025 afterwards.
3026 </para>
3027 </glossdef>
3028 </glossentry>
3029
3030 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3031 <info>
3032 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3033 </info>
3034 <glossdef>
3035 <para role="glossdeffirst">
3036<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3037 The package description used by package managers.
3038 If not set, <filename>DESCRIPTION</filename> takes
3039 the value of the
3040 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3041 variable.
3042 </para>
3043 </glossdef>
3044 </glossentry>
3045
3046 <glossentry id='var-DISK_SIGNATURE'><glossterm>DISK_SIGNATURE</glossterm>
3047 <info>
3048 DISK_SIGNATURE[doc] = "A 32-bit MBR disk signature used by directdisk images."
3049 </info>
3050 <glossdef>
3051 <para role="glossdeffirst">
3052<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3053 A 32-bit MBR disk signature used by
3054 <filename>directdisk</filename> images.
3055 </para>
3056
3057 <para>
3058 By default, the signature is set to an automatically
3059 generated random value that allows the OpenEmbedded
3060 build system to create a boot loader.
3061 You can override the signature in the image recipe
3062 by setting <filename>DISK_SIGNATURE</filename> to an
3063 8-digit hex string.
3064 You might want to override
3065 <filename>DISK_SIGNATURE</filename> if you want the disk
3066 signature to remain constant between image builds.
3067 </para>
3068
3069 <para>
3070 When using Linux 3.8 or later, you can use
3071 <filename>DISK_SIGNATURE</filename> to specify the root
3072 by UUID to allow the kernel to locate the root device
3073 even if the device name changes due to differences in
3074 hardware configuration.
3075 By default, <filename>SYSLINUX_ROOT</filename> is set
3076 as follows:
3077 <literallayout class='monospaced'>
3078 SYSLINUX_ROOT = "root=/dev/sda2"
3079 </literallayout>
3080 However, you can change this to locate the root device
3081 using the disk signature instead:
3082 <literallayout class='monospaced'>
3083 SYSLINUX_ROOT = "root=PARTUUID=${DISK_SIGNATURE}-02"
3084 </literallayout>
3085 </para>
3086
3087 <para>
3088 As previously mentioned, it is possible to set the
3089 <filename>DISK_SIGNATURE</filename> variable in your
3090 <filename>local.conf</filename> file to a fixed
3091 value if you do not want <filename>syslinux.cfg</filename>
3092 changing for each build.
3093 You might find this useful when you want to upgrade the
3094 root filesystem on a device without having to recreate or
3095 modify the master boot record.
3096 </para>
3097 </glossdef>
3098 </glossentry>
3099
3100 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3101 <info>
3102 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3103 </info>
3104 <glossdef>
3105 <para role="glossdeffirst">
3106<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3107 The short name of the distribution.
3108 This variable corresponds to a distribution
3109 configuration file whose root name is the same as the
3110 variable's argument and whose filename extension is
3111 <filename>.conf</filename>.
3112 For example, the distribution configuration file for the
3113 Poky distribution is named <filename>poky.conf</filename>
3114 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003115 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003116 the
3117 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
3118 </para>
3119
3120 <para>
3121 Within that <filename>poky.conf</filename> file, the
3122 <filename>DISTRO</filename> variable is set as follows:
3123 <literallayout class='monospaced'>
3124 DISTRO = "poky"
3125 </literallayout>
3126 </para>
3127
3128 <para>
3129 Distribution configuration files are located in a
3130 <filename>conf/distro</filename> directory within the
3131 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
3132 that contains the distribution configuration.
3133 The value for <filename>DISTRO</filename> must not contain
3134 spaces, and is typically all lower-case.
3135 <note>
3136 If the <filename>DISTRO</filename> variable is blank, a set
3137 of default configurations are used, which are specified
3138 within
3139 <filename>meta/conf/distro/defaultsetup.conf</filename>
3140 also in the Source Directory.
3141 </note>
3142 </para>
3143 </glossdef>
3144 </glossentry>
3145
3146 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3147 <info>
3148 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3149 </info>
3150 <glossdef>
3151 <para role="glossdeffirst">
3152<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3153 Specifies a codename for the distribution being built.
3154 </para>
3155 </glossdef>
3156 </glossentry>
3157
3158 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3159 <info>
3160 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."
3161 </info>
3162 <glossdef>
3163 <para role="glossdeffirst">
3164<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3165 Specifies a list of distro-specific packages to add to all images.
3166 This variable takes affect through
3167 <filename>packagegroup-base</filename> so the
3168 variable only really applies to the more full-featured
3169 images that include <filename>packagegroup-base</filename>.
3170 You can use this variable to keep distro policy out of
3171 generic images.
3172 As with all other distro variables, you set this variable
3173 in the distro <filename>.conf</filename> file.
3174 </para>
3175 </glossdef>
3176 </glossentry>
3177
3178 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3179 <info>
3180 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."
3181 </info>
3182 <glossdef>
3183 <para role="glossdeffirst">
3184<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3185 Specifies a list of distro-specific packages to add to all images
3186 if the packages exist.
3187 The packages might not exist or be empty (e.g. kernel modules).
3188 The list of packages are automatically installed but you can
3189 remove them.
3190 </para>
3191 </glossdef>
3192 </glossentry>
3193
3194 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3195 <info>
3196 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3197 </info>
3198 <glossdef>
3199 <para role="glossdeffirst">
3200<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3201 The software support you want in your distribution for
3202 various features.
3203 You define your distribution features in the distribution
3204 configuration file.
3205 </para>
3206
3207 <para>
3208 In most cases, the presence or absence of a feature in
3209 <filename>DISTRO_FEATURES</filename> is translated to the
3210 appropriate option supplied to the configure script
3211 during the
3212 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3213 task for recipes that optionally support the feature.
3214 For example, specifying "x11" in
3215 <filename>DISTRO_FEATURES</filename>, causes
3216 every piece of software built for the target that can
3217 optionally support X11 to have its X11 support enabled.
3218 </para>
3219
3220 <para>
3221 Two more examples are Bluetooth and NFS support.
3222 For a more complete list of features that ships with the
3223 Yocto Project and that you can provide with this variable,
3224 see the
3225 "<link linkend='ref-features-distro'>Distro Features</link>"
3226 section.
3227 </para>
3228 </glossdef>
3229 </glossentry>
3230
3231 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3232 <info>
3233 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."
3234 </info>
3235 <glossdef>
3236 <para role="glossdeffirst">
3237<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3238 Features to be added to
3239 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3240 if not also present in
3241 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3242 </para>
3243
3244 <para>
3245 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3246 It is not intended to be user-configurable.
3247 It is best to just reference the variable to see which distro features are
3248 being backfilled for all distro configurations.
3249 See the <link linkend='ref-features-backfill'>Feature backfilling</link> section for
3250 more information.
3251 </para>
3252 </glossdef>
3253 </glossentry>
3254
3255 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3256 <info>
3257 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3258 </info>
3259 <glossdef>
3260 <para role="glossdeffirst">
3261<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3262 Features from
3263 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3264 that should not be backfilled (i.e. added to
3265 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3266 during the build.
3267 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3268 more information.
3269 </para>
3270 </glossdef>
3271 </glossentry>
3272
3273 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3274 <info>
3275 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3276 </info>
3277 <glossdef>
3278 <para role="glossdeffirst">
3279<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3280 A convenience variable that gives you the default
3281 list of distro features with the exception of any
3282 features specific to the C library
3283 (<filename>libc</filename>).
3284 </para>
3285
3286 <para>
3287 When creating a custom distribution, you might find it
3288 useful to be able to reuse the default
3289 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3290 options without the need to write out the full set.
3291 Here is an example that uses
3292 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3293 custom distro configuration file:
3294 <literallayout class='monospaced'>
3295 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} myfeature"
3296 </literallayout>
3297 </para>
3298 </glossdef>
3299 </glossentry>
3300
3301 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3302 <info>
3303 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3304 </info>
3305 <glossdef>
3306 <para role="glossdeffirst">
3307<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3308 A convenience variable that specifies the list of distro
3309 features that are specific to the C library
3310 (<filename>libc</filename>).
3311 Typically, these features are prefixed with "libc-" and
3312 control which features are enabled at during the build
3313 within the C library itself.
3314 </para>
3315 </glossdef>
3316 </glossentry>
3317
3318 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3319 <info>
3320 DISTRO_NAME[doc] = "The long name of the distribution."
3321 </info>
3322 <glossdef>
3323 <para role="glossdeffirst">
3324<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3325 The long name of the distribution.
3326 </para>
3327 </glossdef>
3328 </glossentry>
3329
3330 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3331 <info>
3332 DISTRO_VERSION[doc] = "The version of the distribution."
3333 </info>
3334 <glossdef>
3335 <para role="glossdeffirst">
3336<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3337 The version of the distribution.
3338 </para>
3339 </glossdef>
3340 </glossentry>
3341
3342 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3343 <info>
3344 DISTROOVERRIDES[doc] = "Lists overrides specific to the current distribution. By default, the variable list includes the value of the DISTRO variable."
3345 </info>
3346 <glossdef>
3347 <para role="glossdeffirst">
3348<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3349 This variable lists overrides specific to the current
3350 distribution.
3351 By default, the variable list includes the value of the
3352 <filename><link linkend='var-DISTRO'>DISTRO</link></filename>
3353 variable.
3354 You can extend the variable to apply any variable overrides
3355 you want as part of the distribution and are not
3356 already in <filename>OVERRIDES</filename> through
3357 some other means.
3358 </para>
3359 </glossdef>
3360 </glossentry>
3361
3362 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
3363 <info>
3364 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."
3365 </info>
3366 <glossdef>
3367 <para role="glossdeffirst">
3368<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3369 The central download directory used by the build process to
3370 store downloads.
3371 By default, <filename>DL_DIR</filename> gets files
3372 suitable for mirroring for everything except Git
3373 repositories.
3374 If you want tarballs of Git repositories, use the
3375 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
3376 variable.
3377 </para>
3378
3379 <para>
3380 You can set this directory by defining the
3381 <filename>DL_DIR</filename> variable in the
3382 <filename>conf/local.conf</filename> file.
3383 This directory is self-maintaining and you should not have
3384 to touch it.
3385 By default, the directory is <filename>downloads</filename>
3386 in the
3387 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
3388 <literallayout class='monospaced'>
3389 #DL_DIR ?= "${TOPDIR}/downloads"
3390 </literallayout>
3391 To specify a different download directory, simply remove
3392 the comment from the line and provide your directory.
3393 </para>
3394
3395 <para>
3396 During a first build, the system downloads many different
3397 source code tarballs from various upstream projects.
3398 Downloading can take a while, particularly if your network
3399 connection is slow.
3400 Tarballs are all stored in the directory defined by
3401 <filename>DL_DIR</filename> and the build system looks there
3402 first to find source tarballs.
3403 <note>
3404 When wiping and rebuilding, you can preserve this
3405 directory to speed up this part of subsequent
3406 builds.
3407 </note>
3408 </para>
3409
3410 <para>
3411 You can safely share this directory between multiple builds
3412 on the same development machine.
3413 For additional information on how the build process gets
3414 source files when working behind a firewall or proxy server,
3415 see this specific question in the
3416 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
3417 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003418 You can also refer to the
3419 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
3420 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003421 </para>
3422 </glossdef>
3423 </glossentry>
3424
3425 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
3426 <info>
3427 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."
3428 </info>
3429 <glossdef>
3430 <para role="glossdeffirst">
3431<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3432 When inheriting the
3433 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
3434 class, this variable sets the compression policy used when
3435 the OpenEmbedded build system compresses man pages and info
3436 pages.
3437 By default, the compression method used is gz (gzip).
3438 Other policies available are xz and bz2.
3439 </para>
3440
3441 <para>
3442 For information on policies and on how to use this
3443 variable, see the comments in the
3444 <filename>meta/classes/compress_doc.bbclass</filename> file.
3445 </para>
3446 </glossdef>
3447 </glossentry>
3448
3449 </glossdiv>
3450
3451 <glossdiv id='var-glossary-e'><title>E</title>
3452
3453 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
3454 <info>
3455 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."
3456 </info>
3457 <glossdef>
3458 <para role="glossdeffirst">
3459<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3460 When building bootable images (i.e. where
3461 <filename>hddimg</filename> or <filename>vmdk</filename>
3462 is in
3463 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
3464 the <filename>EFI_PROVIDER</filename> variable specifies
3465 the EFI bootloader to use.
3466 The default is "grub-efi", but "gummiboot" can be used
3467 instead.
3468 </para>
3469
3470 <para>
3471 See the
3472 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
3473 class for more information.
3474 </para>
3475 </glossdef>
3476 </glossentry>
3477
3478 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
3479 <info>
3480 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."
3481 </info>
3482 <glossdef>
3483 <para role="glossdeffirst">
3484<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3485 Variable that controls which locales for
3486 <filename>glibc</filename> are generated during the
3487 build (useful if the target device has 64Mbytes
3488 of RAM or less).
3489 </para>
3490 </glossdef>
3491 </glossentry>
3492
3493 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
3494 <info>
3495 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."
3496 </info>
3497 <glossdef>
3498 <para role="glossdeffirst">
3499<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3500 When used with the
3501 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
3502 class, specifies the path used for storing the debug files
3503 created by the
3504 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
3505 which allows you to submit build errors you encounter to a
3506 central database.
3507 By default, the value of this variable is
3508 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
3509 </para>
3510
3511 <para>
3512 You can set <filename>ERR_REPORT_DIR</filename> to the path
3513 you want the error reporting tool to store the debug files
3514 as follows in your <filename>local.conf</filename> file:
3515 <literallayout class='monospaced'>
3516 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
3517 </literallayout>
3518 </para>
3519 </glossdef>
3520 </glossentry>
3521
3522 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
3523 <info>
3524 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
3525 </info>
3526 <glossdef>
3527 <para role="glossdeffirst">
3528<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3529 Specifies the quality assurance checks whose failures are
3530 reported as errors by the OpenEmbedded build system.
3531 You set this variable in your distribution configuration
3532 file.
3533 For a list of the checks you can control with this variable,
3534 see the
3535 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
3536 section.
3537 </para>
3538 </glossdef>
3539 </glossentry>
3540
Patrick Williamsf1e5d692016-03-30 15:21:19 -05003541 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
3542 <info>
3543 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
3544 </info>
3545 <glossdef>
3546 <para role="glossdeffirst">
3547<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3548 Triggers the OpenEmbedded build system's shared libraries
3549 resolver to exclude an entire package when scanning for
3550 shared libraries.
3551 <note>
3552 The shared libraries resolver's functionality results
3553 in part from the internal function
3554 <filename>package_do_shlibs</filename>, which is part of
3555 the
3556 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
3557 task.
3558 You should be aware that the shared libraries resolver
3559 might implicitly define some dependencies between
3560 packages.
3561 </note>
3562 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
3563 similar to the
3564 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
3565 variable, which excludes a package's particular libraries
3566 only and not the whole package.
3567 </para>
3568
3569 <para>
3570 Use the
3571 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
3572 setting it to "1" for a particular package:
3573 <literallayout class='monospaced'>
3574 EXCLUDE_FROM_SHLIBS = "1"
3575 </literallayout>
3576 </para>
3577 </glossdef>
3578 </glossentry>
3579
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003580 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
3581 <info>
3582 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
3583 </info>
3584 <glossdef>
3585 <para role="glossdeffirst">
3586<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3587 Directs BitBake to exclude a recipe from world builds (i.e.
3588 <filename>bitbake world</filename>).
3589 During world builds, BitBake locates, parses and builds all
3590 recipes found in every layer exposed in the
3591 <filename>bblayers.conf</filename> configuration file.
3592 </para>
3593
3594 <para>
3595 To exclude a recipe from a world build using this variable,
3596 set the variable to "1" in the recipe.
3597 </para>
3598
3599 <note>
3600 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
3601 may still be built during a world build in order to satisfy
3602 dependencies of other recipes.
3603 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
3604 only ensures that the recipe is not explicitly added
3605 to the list of build targets in a world build.
3606 </note>
3607 </glossdef>
3608 </glossentry>
3609
3610 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
3611 <info>
3612 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."
3613 </info>
3614 <glossdef>
3615 <para role="glossdeffirst">
3616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3617 Used with file and pathnames to create a prefix for a recipe's
3618 version based on the recipe's
3619 <link linkend='var-PE'><filename>PE</filename></link> value.
3620 If <filename>PE</filename> is set and greater than zero for a recipe,
3621 <filename>EXTENDPE</filename> becomes that value (e.g if
3622 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
3623 becomes "1_").
3624 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
3625 zero, <filename>EXTENDPE</filename> becomes "".</para>
3626 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
3627 variable for an example.
3628 </para>
3629 </glossdef>
3630 </glossentry>
3631
3632 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
3633 <info>
3634 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
3635 </info>
3636 <glossdef>
3637 <para role="glossdeffirst">
3638<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3639 The full package version specification as it appears on the
3640 final packages produced by a recipe.
3641 The variable's value is normally used to fix a runtime
3642 dependency to the exact same version of another package
3643 in the same recipe:
3644 <literallayout class='monospaced'>
3645 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
3646 </literallayout>
3647 </para>
3648
3649 <para>
3650 The dependency relationships are intended to force the
3651 package manager to upgrade these types of packages in
3652 lock-step.
3653 </para>
3654 </glossdef>
3655 </glossentry>
3656
3657 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
3658 <info>
3659 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
3660 </info>
3661 <glossdef>
3662 <para role="glossdeffirst">
3663<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3664 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
3665 variable indicates that these tools are not in the
3666 source tree.
3667 </para>
3668
3669 <para>
3670 When kernel tools are available in the tree, they are
3671 preferred over any externally installed tools.
3672 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
3673 variable tells the OpenEmbedded build system to prefer
3674 the installed external tools.
3675 See the
3676 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
3677 class in <filename>meta/classes</filename> to see how
3678 the variable is used.
3679 </para>
3680 </glossdef>
3681 </glossentry>
3682
3683 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
3684 <info>
3685 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
3686 </info>
3687 <glossdef>
3688 <para role="glossdeffirst">
3689<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3690 When inheriting the
3691 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
3692 class, this variable points to the source tree, which is
3693 outside of the OpenEmbedded build system.
3694 When set, this variable sets the
3695 <link linkend='var-S'><filename>S</filename></link>
3696 variable, which is what the OpenEmbedded build system uses
3697 to locate unpacked recipe source code.
3698 </para>
3699
3700 <para>
3701 For more information on
3702 <filename>externalsrc.bbclass</filename>, see the
3703 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
3704 section.
3705 You can also find information on how to use this variable
3706 in the
3707 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
3708 section in the Yocto Project Development Manual.
3709 </para>
3710 </glossdef>
3711 </glossentry>
3712
3713 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
3714 <info>
3715 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."
3716 </info>
3717 <glossdef>
3718 <para role="glossdeffirst">
3719<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3720 When inheriting the
3721 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
3722 class, this variable points to the directory in which the
3723 recipe's source code is built, which is outside of the
3724 OpenEmbedded build system.
3725 When set, this variable sets the
3726 <link linkend='var-B'><filename>B</filename></link>
3727 variable, which is what the OpenEmbedded build system uses
3728 to locate the Build Directory.
3729 </para>
3730
3731 <para>
3732 For more information on
3733 <filename>externalsrc.bbclass</filename>, see the
3734 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
3735 section.
3736 You can also find information on how to use this variable
3737 in the
3738 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
3739 section in the Yocto Project Development Manual.
3740 </para>
3741 </glossdef>
3742 </glossentry>
3743
3744 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
3745 <info>
3746 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
3747 </info>
3748 <glossdef>
3749 <para role="glossdeffirst">
3750<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3751 For recipes inheriting the
3752 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
3753 class, you can use <filename>EXTRA_AUTORECONF</filename> to
3754 specify extra options to pass to the
3755 <filename>autoreconf</filename> command that is
3756 executed during the
3757 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3758 task.
3759 </para>
3760
3761 <para>
3762 The default value is "--exclude=autopoint".
3763 </para>
3764 </glossdef>
3765 </glossentry>
3766
3767 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
3768 <info>
3769 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."
3770 </info>
3771 <glossdef>
3772 <para role="glossdeffirst">
3773<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3774 A list of additional features to include in an image.
3775 When listing more than one feature, separate them with
3776 a space.
3777 </para>
3778
3779 <para>
3780 Typically, you configure this variable in your
3781 <filename>local.conf</filename> file, which is found in the
3782 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
3783 Although you can use this variable from within a recipe,
3784 best practices dictate that you do not.
3785 <note>
3786 To enable primary features from within the image
3787 recipe, use the
3788 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
3789 variable.
3790 </note>
3791 </para>
3792
3793 <para>
3794 Here are some examples of features you can add:
3795 <literallayout class='monospaced'>
3796"dbg-pkgs" - Adds -dbg packages for all installed packages
3797 including symbol information for debugging and
3798 profiling.
3799
3800"debug-tweaks" - Makes an image suitable for debugging.
3801 For example, allows root logins without
3802 passwords and enables post-installation
3803 logging. See the 'allow-empty-password'
3804 and 'post-install-logging' features in
3805 the "<link linkend='ref-features-image'>Image Features</link>" section for
3806 more information.
3807
3808"dev-pkgs" - Adds -dev packages for all installed packages.
3809 This is useful if you want to develop against
3810 the libraries in the image.
3811
3812"read-only-rootfs" - Creates an image whose root
3813 filesystem is read-only. See the
3814 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
3815 section in the Yocto Project
3816 Development Manual for more
3817 information
3818
3819"tools-debug" - Adds debugging tools such as gdb and
3820 strace.
3821
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003822"tools-sdk" - Adds development tools such as gcc, make,
3823 pkgconfig and so forth.
3824
3825"tools-testapps" - Adds useful testing tools such as
3826 ts_print, aplay, arecord and so
3827 forth.
3828
3829 </literallayout>
3830 </para>
3831
3832 <para>
3833 For a complete list of image features that ships with the
3834 Yocto Project, see the
3835 "<link linkend="ref-features-image">Image Features</link>"
3836 section.
3837 </para>
3838
3839 <para>
3840 For an example that shows how to customize your image by
3841 using this variable, see the
3842 "<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>"
3843 section in the Yocto Project Development Manual.
3844 </para>
3845 </glossdef>
3846 </glossentry>
3847
3848 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
3849 <info>
3850 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."
3851 </info>
3852 <glossdef>
3853 <para role="glossdeffirst">
3854<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3855 Specifies additional options for the image
3856 creation command that has been specified in
3857 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
3858 When setting this variable, you should
3859 use an override for the associated type.
3860 Here is an example:
3861 <literallayout class='monospaced'>
3862 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
3863 </literallayout>
3864 </para>
3865 </glossdef>
3866 </glossentry>
3867
3868 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
3869 <info>
3870 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."
3871 </info>
3872 <glossdef>
3873 <para role="glossdeffirst">
3874<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3875 A list of recipes to build that do not provide packages
3876 for installing into the root filesystem.
3877 </para>
3878
3879 <para>
3880 Sometimes a recipe is required to build the final image but is not
3881 needed in the root filesystem.
3882 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
3883 list these recipes and thus specify the dependencies.
3884 A typical example is a required bootloader in a machine configuration.
3885 </para>
3886
3887 <note>
3888 To add packages to the root filesystem, see the various
3889 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
3890 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
3891 variables.
3892 </note>
3893 </glossdef>
3894 </glossentry>
3895
3896 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
3897 <info>
3898 EXTRA_OECMAKE[doc] = "Additional cmake options."
3899 </info>
3900 <glossdef>
3901 <para role="glossdeffirst">
3902<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3903 Additional <filename>cmake</filename> options.
3904 </para>
3905 </glossdef>
3906 </glossentry>
3907
3908 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
3909 <info>
3910 EXTRA_OECONF[doc] = "Additional configure script options."
3911 </info>
3912 <glossdef>
3913 <para role="glossdeffirst">
3914<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3915 Additional <filename>configure</filename> script options.
3916 </para>
3917 </glossdef>
3918 </glossentry>
3919
3920 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
3921 <info>
3922 EXTRA_OEMAKE[doc] = "Additional GNU make options."
3923 </info>
3924 <glossdef>
3925 <para role="glossdeffirst">
3926<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3927 Additional GNU <filename>make</filename> options.
3928 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003929
3930 <para>
3931 Because the <filename>EXTRA_OEMAKE</filename> defaults to
3932 "", you need to set the variable to specify any required
3933 GNU options.
3934 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003935 </glossdef>
3936 </glossentry>
3937
3938 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
3939 <info>
3940 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."
3941 </info>
3942 <glossdef>
3943 <para role="glossdeffirst">
3944<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3945 When inheriting the
3946 <link linkend='ref-classes-scons'><filename>scons</filename></link>
3947 class, this variable specifies additional configuration
3948 options you want to pass to the
3949 <filename>scons</filename> command line.
3950 </para>
3951 </glossdef>
3952 </glossentry>
3953
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003954 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
3955 <info>
3956 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
3957 </info>
3958 <glossdef>
3959 <para role="glossdeffirst">
3960<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3961 When inheriting the
3962 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
3963 class, this variable provides image level user and group
3964 operations.
3965 This is a more global method of providing user and group
3966 configuration as compared to using the
3967 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
3968 class, which ties user and group configurations to a
3969 specific recipe.
3970 </para>
3971
3972 <para>
3973 The set list of commands you can configure using the
3974 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
3975 <filename>extrausers</filename> class.
3976 These commands map to the normal Unix commands of the same
3977 names:
3978 <literallayout class='monospaced'>
3979 # EXTRA_USERS_PARAMS = "\
3980 # useradd -p '' tester; \
3981 # groupadd developers; \
3982 # userdel nobody; \
3983 # groupdel -g video; \
3984 # groupmod -g 1020 developers; \
3985 # usermod -s /bin/sh tester; \
3986 # "
3987 </literallayout>
3988 </para>
3989 </glossdef>
3990 </glossentry>
3991
3992 </glossdiv>
3993
3994 <glossdiv id='var-glossary-f'><title>F</title>
3995
3996 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
3997 <info>
3998 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."
3999 </info>
4000 <glossdef>
4001 <para role="glossdeffirst">
4002<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4003 Defines one or more packages to include in an image when
4004 a specific item is included in
4005 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4006 When setting the value, <filename>FEATURE_PACKAGES</filename>
4007 should have the name of the feature item as an override.
4008 Here is an example:
4009 <literallayout class='monospaced'>
4010 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4011 </literallayout>
4012 </para>
4013
4014 <para>
4015 In this example, if "widget" were added to
4016 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4017 <replaceable>package2</replaceable> would be included in the image.
4018 <note>
4019 Packages installed by features defined through
4020 <filename>FEATURE_PACKAGES</filename> are often package
4021 groups.
4022 While similarly named, you should not confuse the
4023 <filename>FEATURE_PACKAGES</filename> variable with
4024 package groups, which are discussed elsewhere in the
4025 documentation.
4026 </note>
4027 </para>
4028 </glossdef>
4029 </glossentry>
4030
4031 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4032 <info>
4033 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."
4034 </info>
4035 <glossdef>
4036 <para role="glossdeffirst">
4037<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4038 Points to the base URL of the server and location within
4039 the document-root that provides the metadata and
4040 packages required by OPKG to support runtime package
4041 management of IPK packages.
4042 You set this variable in your
4043 <filename>local.conf</filename> file.
4044 </para>
4045
4046 <para>
4047 Consider the following example:
4048 <literallayout class='monospaced'>
4049 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4050 </literallayout>
4051 This example assumes you are serving your packages over
4052 HTTP and your databases are located in a directory
4053 named <filename>BOARD-dir</filename>, which is underneath
4054 your HTTP server's document-root.
4055 In this case, the OpenEmbedded build system generates a set
4056 of configuration files for you in your target that work
4057 with the feed.
4058 </para>
4059 </glossdef>
4060 </glossentry>
4061
4062 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4063 <info>
4064 FILES[doc] = "The list of directories or files that are placed in packages."
4065 </info>
4066 <glossdef>
4067 <para role="glossdeffirst">
4068<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4069 The list of directories or files that are placed in packages.
4070 </para>
4071
4072 <para>
4073 To use the <filename>FILES</filename> variable, provide a
4074 package name override that identifies the resulting package.
4075 Then, provide a space-separated list of files or paths
4076 that identify the files you want included as part of the
4077 resulting package.
4078 Here is an example:
4079 <literallayout class='monospaced'>
4080 FILES_${PN} += "${bindir}/mydir1/ ${bindir}/mydir2/myfile"
4081 </literallayout>
4082 </para>
4083
4084 <note>
4085 When specifying paths as part of the
4086 <filename>FILES</filename> variable, it is good practice
4087 to use appropriate path variables.
4088 For example, use <filename>${sysconfdir}</filename> rather
4089 than <filename>/etc</filename>, or
4090 <filename>${bindir}</filename> rather than
4091 <filename>/usr/bin</filename>.
4092 You can find a list of these variables at the top of the
4093 <filename>meta/conf/bitbake.conf</filename> file in the
4094 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
4095 </note>
4096
4097 <para>
4098 If some of the files you provide with the
4099 <filename>FILES</filename> variable are editable and you
4100 know they should not be overwritten during the package
4101 update process by the Package Management System (PMS), you
4102 can identify these files so that the PMS will not
4103 overwrite them.
4104 See the
4105 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4106 variable for information on how to identify these files to
4107 the PMS.
4108 </para>
4109
4110 </glossdef>
4111 </glossentry>
4112
4113 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4114 <info>
4115 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4116 </info>
4117 <glossdef>
4118 <para role="glossdeffirst">
4119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4120 Defines the file specification to match
4121 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4122 In other words, <filename>FILES_SOLIBSDEV</filename>
4123 defines the full path name of the development symbolic link
4124 (symlink) for shared libraries on the target platform.
4125 </para>
4126
4127 <para>
4128 The following statement from the
4129 <filename>bitbake.conf</filename> shows how it is set:
4130 <literallayout class='monospaced'>
4131 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4132 </literallayout>
4133 </para>
4134 </glossdef>
4135 </glossentry>
4136
4137 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4138 <info>
4139 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4140 </info>
4141 <glossdef>
4142 <para role="glossdeffirst">
4143<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4144 Extends the search path the OpenEmbedded build system uses
4145 when looking for files and patches as it processes recipes
4146 and append files.
4147 The default directories BitBake uses when it processes
4148 recipes are initially defined by the
4149 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4150 variable.
4151 You can extend <filename>FILESPATH</filename> variable
4152 by using <filename>FILESEXTRAPATHS</filename>.
4153 </para>
4154
4155 <para>
4156 Best practices dictate that you accomplish this by using
4157 <filename>FILESEXTRAPATHS</filename> from within a
4158 <filename>.bbappend</filename> file and that you prepend
4159 paths as follows:
4160 <literallayout class='monospaced'>
4161 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4162 </literallayout>
4163 In the above example, the build system first looks for files
4164 in a directory that has the same name as the corresponding
4165 append file.
4166 <note>
4167 <para>When extending <filename>FILESEXTRAPATHS</filename>,
4168 be sure to use the immediate expansion
4169 (<filename>:=</filename>) operator.
4170 Immediate expansion makes sure that BitBake evaluates
4171 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4172 at the time the directive is encountered rather than at
4173 some later time when expansion might result in a
4174 directory that does not contain the files you need.
4175 </para>
4176 <para>Also, include the trailing separating colon
4177 character if you are prepending.
4178 The trailing colon character is necessary because you
4179 are directing BitBake to extend the path by prepending
4180 directories to the search path.</para>
4181 </note>
4182 Here is another common use:
4183 <literallayout class='monospaced'>
4184 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4185 </literallayout>
4186 In this example, the build system extends the
4187 <filename>FILESPATH</filename> variable to include a
4188 directory named <filename>files</filename> that is in the
4189 same directory as the corresponding append file.
4190 </para>
4191
4192 <para>
4193 Here is a final example that specifically adds three paths:
4194 <literallayout class='monospaced'>
4195 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4196 </literallayout>
4197 </para>
4198
4199 <para>
4200 By prepending paths in <filename>.bbappend</filename>
4201 files, you allow multiple append files that reside in
4202 different layers but are used for the same recipe to
4203 correctly extend the path.
4204 </para>
4205 </glossdef>
4206 </glossentry>
4207
4208 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4209 <info>
4210 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4211 </info>
4212 <glossdef>
4213 <para role="glossdeffirst">
4214<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4215 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4216 used by the OpenEmbedded build system for creating
4217 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
4218 You can find more information on how overrides are handled
4219 in the
4220 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake Manual</ulink>.
4221 </para>
4222
4223 <para>
4224 By default, the <filename>FILESOVERRIDES</filename>
4225 variable is defined as:
4226 <literallayout class='monospaced'>
4227 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4228 </literallayout>
4229
4230 <note>
4231 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4232 variable.
4233 The values match up with expected overrides and are
4234 used in an expected manner by the build system.
4235 </note>
4236 </para>
4237 </glossdef>
4238 </glossentry>
4239
4240 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4241 <info>
4242 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."
4243 </info>
4244 <glossdef>
4245 <para role="glossdeffirst">
4246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4247 The default set of directories the OpenEmbedded build system
4248 uses when searching for patches and files.
4249 During the build process, BitBake searches each directory in
4250 <filename>FILESPATH</filename> in the specified order when
4251 looking for files and patches specified by each
4252 <filename>file://</filename> URI in a recipe.
4253 </para>
4254
4255 <para>
4256 The default value for the <filename>FILESPATH</filename>
4257 variable is defined in the <filename>base.bbclass</filename>
4258 class found in <filename>meta/classes</filename> in the
4259 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
4260 <literallayout class='monospaced'>
4261 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4262 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4263 </literallayout>
4264 <note>
4265 Do not hand-edit the <filename>FILESPATH</filename>
4266 variable.
4267 If you want the build system to look in directories
4268 other than the defaults, extend the
4269 <filename>FILESPATH</filename> variable by using the
4270 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4271 variable.
4272 </note>
4273 Be aware that the default <filename>FILESPATH</filename>
4274 directories do not map to directories in custom layers
4275 where append files (<filename>.bbappend</filename>)
4276 are used.
4277 If you want the build system to find patches or files
4278 that reside with your append files, you need to extend
4279 the <filename>FILESPATH</filename> variable by using
4280 the
4281 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4282 variable.
4283 </para>
4284 </glossdef>
4285 </glossentry>
4286
4287 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
4288 <info>
4289 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
4290 </info>
4291 <glossdef>
4292 <para role="glossdeffirst">
4293<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4294 Allows you to define your own file permissions settings table as part of
4295 your configuration for the packaging process.
4296 For example, suppose you need a consistent set of custom permissions for
4297 a set of groups and users across an entire work project.
4298 It is best to do this in the packages themselves but this is not always
4299 possible.
4300 </para>
4301
4302 <para>
4303 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
4304 is located in the <filename>meta/files</filename> folder in the
4305 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
4306 If you create your own file permissions setting table, you should place it in your
4307 layer or the distro's layer.
4308 </para>
4309
4310 <para>
4311 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
4312 <filename>conf/local.conf</filename> file, which is found in the
4313 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, to
4314 point to your custom <filename>fs-perms.txt</filename>.
4315 You can specify more than a single file permissions setting table.
4316 The paths you specify to these files must be defined within the
4317 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
4318 </para>
4319
4320 <para>
4321 For guidance on how to create your own file permissions settings table file,
4322 examine the existing <filename>fs-perms.txt</filename>.
4323 </para>
4324 </glossdef>
4325 </glossentry>
4326
4327 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
4328 <info>
4329 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'."
4330 </info>
4331 <glossdef>
4332 <para role="glossdeffirst">
4333<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4334 When inheriting the
4335 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4336 class, this variable specifies the runtime dependencies
4337 for font packages.
4338 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
4339 is set to "fontconfig-utils".
4340 </para>
4341 </glossdef>
4342 </glossentry>
4343
4344 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
4345 <info>
4346 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
4347 </info>
4348 <glossdef>
4349 <para role="glossdeffirst">
4350<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4351 When inheriting the
4352 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4353 class, this variable identifies packages containing font
4354 files that need to be cached by Fontconfig.
4355 By default, the <filename>fontcache</filename> class assumes
4356 that fonts are in the recipe's main package
4357 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
4358 Use this variable if fonts you need are in a package
4359 other than that main package.
4360 </para>
4361 </glossdef>
4362 </glossentry>
4363
4364 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
4365 <info>
4366 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'."
4367 </info>
4368 <glossdef>
4369 <para role="glossdeffirst">
4370<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4371 The options to pass in
4372 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
4373 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
4374 when compiling an optimized system.
4375 This variable defaults to
4376 "-O2 -pipe ${DEBUG_FLAGS}".
4377 </para>
4378 </glossdef>
4379 </glossentry>
4380 </glossdiv>
4381
4382 <glossdiv id='var-glossary-g'><title>G</title>
4383
4384 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
4385 <info>
4386 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
4387 </info>
4388 <glossdef>
4389 <para role="glossdeffirst">
4390<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4391 The minimal command and arguments to run the GNU Debugger.
4392 </para>
4393 </glossdef>
4394 </glossentry>
4395
4396 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
4397 <info>
4398 GITDIR[doc] = "The directory where Git clones will be stored."
4399 </info>
4400 <glossdef>
4401 <para role="glossdeffirst">
4402<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4403 The directory in which a local copy of a Git repository
4404 is stored when it is cloned.
4405 </para>
4406 </glossdef>
4407 </glossentry>
4408
4409 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
4410 <info>
4411 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."
4412 </info>
4413 <glossdef>
4414 <para role="glossdeffirst">
4415<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4416 Specifies the list of GLIBC locales to generate should you
4417 not wish generate all LIBC locals, which can be time
4418 consuming.
4419 <note>
4420 If you specifically remove the locale
4421 <filename>en_US.UTF-8</filename>, you must set
4422 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
4423 appropriately.
4424 </note>
4425 </para>
4426
4427 <para>
4428 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
4429 in your <filename>local.conf</filename> file.
4430 By default, all locales are generated.
4431 <literallayout class='monospaced'>
4432 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
4433 </literallayout>
4434 </para>
4435 </glossdef>
4436 </glossentry>
4437
4438 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
4439 <info>
4440 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."
4441 </info>
4442 <glossdef>
4443 <para role="glossdeffirst">
4444<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4445 When inheriting the
4446 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4447 class, this variable
4448 specifies for a package what parameters should be passed
4449 to the <filename>groupadd</filename> command
4450 if you wish to add a group to the system when the package
4451 is installed.
4452 </para>
4453
4454 <para>
4455 Here is an example from the <filename>dbus</filename>
4456 recipe:
4457 <literallayout class='monospaced'>
4458 GROUPADD_PARAM_${PN} = "-r netdev"
4459 </literallayout>
4460 For information on the standard Linux shell command
4461 <filename>groupadd</filename>, see
4462 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
4463 </para>
4464 </glossdef>
4465 </glossentry>
4466
4467 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
4468 <info>
4469 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."
4470 </info>
4471 <glossdef>
4472 <para role="glossdeffirst">
4473<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4474 When inheriting the
4475 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4476 class, this variable
4477 specifies for a package what parameters should be passed
4478 to the <filename>groupmems</filename> command
4479 if you wish to modify the members of a group when the
4480 package is installed.
4481 </para>
4482
4483 <para>
4484 For information on the standard Linux shell command
4485 <filename>groupmems</filename>, see
4486 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
4487 </para>
4488 </glossdef>
4489 </glossentry>
4490
4491 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
4492 <info>
4493 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
4494 </info>
4495 <glossdef>
4496 <para role="glossdeffirst">
4497<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4498 Configures the GNU GRand Unified Bootloader (GRUB) to have
4499 graphics and serial in the boot menu.
4500 Set this variable to "1" in your
4501 <filename>local.conf</filename> or distribution
4502 configuration file to enable graphics and serial
4503 in the menu.
4504 </para>
4505
4506 <para>
4507 See the
4508 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4509 class for more information on how this variable is used.
4510 </para>
4511 </glossdef>
4512 </glossentry>
4513
4514 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
4515 <info>
4516 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
4517 </info>
4518 <glossdef>
4519 <para role="glossdeffirst">
4520<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4521 Additional options to add to the GNU GRand Unified
4522 Bootloader (GRUB) configuration.
4523 Use a semi-colon character (<filename>;</filename>) to
4524 separate multiple options.
4525 </para>
4526
4527 <para>
4528 The <filename>GRUB_OPTS</filename> variable is optional.
4529 See the
4530 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4531 class for more information on how this variable is used.
4532 </para>
4533 </glossdef>
4534 </glossentry>
4535
4536 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
4537 <info>
4538 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
4539 </info>
4540 <glossdef>
4541 <para role="glossdeffirst">
4542<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4543 Specifies the timeout before executing the default
4544 <filename>LABEL</filename> in the GNU GRand Unified
4545 Bootloader (GRUB).
4546 </para>
4547
4548 <para>
4549 The <filename>GRUB_TIMEOUT</filename> variable is optional.
4550 See the
4551 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
4552 class for more information on how this variable is used.
4553 </para>
4554 </glossdef>
4555 </glossentry>
4556
4557 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
4558 <info>
4559 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."
4560 </info>
4561 <glossdef>
4562 <para role="glossdeffirst">
4563<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4564 When inheriting the
4565 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
4566 class, this variable specifies the packages that contain the
4567 GTK+ input method modules being installed when the modules
4568 are in packages other than the main package.
4569 </para>
4570 </glossdef>
4571 </glossentry>
4572
4573 <glossentry id='var-GUMMIBOOT_CFG'><glossterm>GUMMIBOOT_CFG</glossterm>
4574 <info>
4575 GUMMIBOOT_CFG[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_CFG variable specifies the configuration file that should be used."
4576 </info>
4577 <glossdef>
4578 <para role="glossdeffirst">
4579<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4580 When
4581 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4582 is set to "gummiboot", the
4583 <filename>GUMMIBOOT_CFG</filename> variable specifies the
4584 configuration file that should be used.
4585 By default, the
4586 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4587 class sets the <filename>GUMMIBOOT_CFG</filename> as
4588 follows:
4589 <literallayout class='monospaced'>
4590 GUMMIBOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
4591 </literallayout>
4592 </para>
4593
4594 <para>
4595 For information on Gummiboot, see the
4596 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4597 </para>
4598 </glossdef>
4599 </glossentry>
4600
4601 <glossentry id='var-GUMMIBOOT_ENTRIES'><glossterm>GUMMIBOOT_ENTRIES</glossterm>
4602 <info>
4603 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."
4604 </info>
4605 <glossdef>
4606 <para role="glossdeffirst">
4607<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4608 When
4609 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4610 is set to "gummiboot", the
4611 <filename>GUMMIBOOT_ENTRIES</filename> variable specifies
4612 a list of entry files
4613 (<filename>*.conf</filename>) to be installed
4614 containing one boot entry per file.
4615 By default, the
4616 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4617 class sets the <filename>GUMMIBOOT_ENTRIES</filename> as
4618 follows:
4619 <literallayout class='monospaced'>
4620 GUMMIBOOT_ENTRIES ?= ""
4621 </literallayout>
4622 </para>
4623
4624 <para>
4625 For information on Gummiboot, see the
4626 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4627 </para>
4628 </glossdef>
4629 </glossentry>
4630
4631 <glossentry id='var-GUMMIBOOT_TIMEOUT'><glossterm>GUMMIBOOT_TIMEOUT</glossterm>
4632 <info>
4633 GUMMIBOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
4634 </info>
4635 <glossdef>
4636 <para role="glossdeffirst">
4637<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4638 When
4639 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
4640 is set to "gummiboot", the
4641 <filename>GUMMIBOOT_TIMEOUT</filename> variable specifies
4642 the boot menu timeout in seconds.
4643 By default, the
4644 <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
4645 class sets the <filename>GUMMIBOOT_TIMEOUT</filename> as
4646 follows:
4647 <literallayout class='monospaced'>
4648 GUMMIBOOT_TIMEOUT ?= "10"
4649 </literallayout>
4650 </para>
4651
4652 <para>
4653 For information on Gummiboot, see the
4654 <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
4655 </para>
4656 </glossdef>
4657 </glossentry>
4658
4659 </glossdiv>
4660
4661 <glossdiv id='var-glossary-h'><title>H</title>
4662
4663 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
4664 <info>
4665 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
4666 </info>
4667 <glossdef>
4668 <para role="glossdeffirst">
4669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4670 Website where more information about the software the recipe is building
4671 can be found.
4672 </para>
4673 </glossdef>
4674 </glossentry>
4675
4676 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
4677 <info>
4678 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
4679
4680 </info>
4681 <glossdef>
4682 <para role="glossdeffirst">
4683<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4684 The name of the target architecture, which is normally
4685 the same as
4686 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
4687 The OpenEmbedded build system supports many
4688 architectures.
4689 Here is an example list of architectures supported.
4690 This list is by no means complete as the architecture
4691 is configurable:
4692 <literallayout class='monospaced'>
4693 arm
4694 i586
4695 x86_64
4696 powerpc
4697 powerpc64
4698 mips
4699 mipsel
4700 </literallayout>
4701 </para>
4702 </glossdef>
4703 </glossentry>
4704
4705 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
4706 <info>
4707 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
4708 </info>
4709 <glossdef>
4710 <para role="glossdeffirst">
4711<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4712 Specifies architecture-specific compiler flags that are
4713 passed to the C compiler.
4714 </para>
4715
4716 <para>
4717 Default initialization for <filename>HOST_CC_ARCH</filename>
4718 varies depending on what is being built:
4719 <itemizedlist>
4720 <listitem><para>
4721 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
4722 when building for the target
4723 </para></listitem>
4724 <listitem><para>
4725 <filename>BUILD_CC_ARCH</filename>
4726 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004727 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004728 </para></listitem>
4729 <listitem><para>
4730 <filename>BUILDSDK_CC_ARCH</filename>
4731 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004732 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004733 </para></listitem>
4734 </itemizedlist>
4735 </para>
4736 </glossdef>
4737 </glossentry>
4738
4739 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
4740 <info>
4741 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
4742 </info>
4743 <glossdef>
4744 <para role="glossdeffirst">
4745<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4746 Specifies the name of the target operating system, which
4747 is normally the same as the
4748 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
4749 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
4750 to "linux-uclibc" for <filename>uclibc</filename>.
4751 For ARM/EABI targets, there are also "linux-gnueabi" and
4752 "linux-uclibc-gnueabi" values possible.
4753 </para>
4754 </glossdef>
4755 </glossentry>
4756
4757 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
4758 <info>
4759 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
4760 </info>
4761 <glossdef>
4762 <para role="glossdeffirst">
4763<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4764 Specifies the prefix for the cross-compile toolchain.
4765 <filename>HOST_PREFIX</filename> is normally the same as
4766 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
4767 </para>
4768 </glossdef>
4769 </glossentry>
4770
4771 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
4772 <info>
4773 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."
4774 </info>
4775 <glossdef>
4776 <para role="glossdeffirst">
4777<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4778 Specifies the system, including the architecture and the
4779 operating system, for which the build is occurring
4780 in the context of the current recipe.
4781 </para>
4782
4783 <para>
4784 The OpenEmbedded build system automatically sets this
4785 variable based on
4786 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
4787 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
4788 and
4789 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
4790 variables.
4791 <note>
4792 You do not need to set the variable yourself.
4793 </note>
4794 </para>
4795
4796 <para>
4797 Consider these two examples:
4798 <itemizedlist>
4799 <listitem><para>Given a native recipe on a 32-bit
4800 x86 machine running Linux, the value is
4801 "i686-linux".
4802 </para></listitem>
4803 <listitem><para>Given a recipe being built for a
4804 little-endian MIPS target running Linux,
4805 the value might be "mipsel-linux".
4806 </para></listitem>
4807 </itemizedlist>
4808 </para>
4809 </glossdef>
4810 </glossentry>
4811
4812 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
4813 <info>
4814 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
4815 </info>
4816 <glossdef>
4817 <para role="glossdeffirst">
4818<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4819 Specifies the name of the vendor.
4820 <filename>HOST_VENDOR</filename> is normally the same as
4821 <link linkend='var-TARGET_PREFIX'><filename>TARGET_VENDOR</filename></link>.
4822 </para>
4823 </glossdef>
4824 </glossentry>
4825
4826 </glossdiv>
4827
4828 <glossdiv id='var-glossary-i'><title>I</title>
4829
4830 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
4831 <info>
4832 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
4833 </info>
4834 <glossdef>
4835 <para role="glossdeffirst">
4836<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4837 Disables or enables the <filename>icecc</filename>
4838 (Icecream) function.
4839 For more information on this function and best practices
4840 for using this variable, see the
4841 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
4842 section.
4843 </para>
4844
4845 <para>
4846 Setting this variable to "1" in your
4847 <filename>local.conf</filename> disables the function:
4848 <literallayout class='monospaced'>
4849 ICECC_DISABLED ??= "1"
4850 </literallayout>
4851 To enable the function, set the variable as follows:
4852 <literallayout class='monospaced'>
4853 ICECC_DISABLED = ""
4854 </literallayout>
4855 </para>
4856 </glossdef>
4857 </glossentry>
4858
4859 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
4860 <info>
4861 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
4862 </info>
4863 <glossdef>
4864 <para role="glossdeffirst">
4865<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4866 Points to the <filename>icecc-create-env</filename> script
4867 that you provide.
4868 This variable is used by the
4869 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4870 class.
4871 You set this variable in your
4872 <filename>local.conf</filename> file.
4873 </para>
4874
4875 <para>
4876 If you do not point to a script that you provide, the
4877 OpenEmbedded build system uses the default script provided
4878 by the <filename>icecc-create-env.bb</filename> recipe,
4879 which is a modified version and not the one that comes with
4880 <filename>icecc</filename>.
4881 </para>
4882 </glossdef>
4883 </glossentry>
4884
4885 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
4886 <info>
4887 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
4888 </info>
4889 <glossdef>
4890 <para role="glossdeffirst">
4891<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4892 Extra options passed to the <filename>make</filename>
4893 command during the
4894 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
4895 task that specify parallel compilation.
4896 This variable usually takes the form of
4897 "-j <replaceable>x</replaceable>", where
4898 <replaceable>x</replaceable> represents the maximum
4899 number of parallel threads <filename>make</filename> can
4900 run.
4901 <note>
4902 The options passed affect builds on all enabled
4903 machines on the network, which are machines running the
4904 <filename>iceccd</filename> daemon.
4905 </note>
4906 </para>
4907
4908 <para>
4909 If your enabled machines support multiple cores,
4910 coming up with the maximum number of parallel threads
4911 that gives you the best performance could take some
4912 experimentation since machine speed, network lag,
4913 available memory, and existing machine loads can all
4914 affect build time.
4915 Consequently, unlike the
4916 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4917 variable, there is no rule-of-thumb for setting
4918 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
4919 optimal performance.
4920 </para>
4921
4922 <para>
4923 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
4924 the build system does not use it (i.e. the system does
4925 not detect and assign the number of cores as is done with
4926 <filename>PARALLEL_MAKE</filename>).
4927 </para>
4928 </glossdef>
4929 </glossentry>
4930
4931 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
4932 <info>
4933 ICECC_PATH[doc] = "The location of the icecc binary."
4934 </info>
4935 <glossdef>
4936 <para role="glossdeffirst">
4937<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4938 The location of the <filename>icecc</filename> binary.
4939 You can set this variable in your
4940 <filename>local.conf</filename> file.
4941 If your <filename>local.conf</filename> file does not define
4942 this variable, the
4943 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4944 class attempts to define it by locating
4945 <filename>icecc</filename> using <filename>which</filename>.
4946 </para>
4947 </glossdef>
4948 </glossentry>
4949
4950 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
4951 <info>
4952 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
4953 </info>
4954 <glossdef>
4955 <para role="glossdeffirst">
4956<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4957 Identifies user classes that you do not want the
4958 Icecream distributed compile support to consider.
4959 This variable is used by the
4960 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4961 class.
4962 You set this variable in your
4963 <filename>local.conf</filename> file.
4964 </para>
4965
4966 <para>
4967 When you list classes using this variable, you are
4968 "blacklisting" them from distributed compilation across
4969 remote hosts.
4970 Any classes you list will be distributed and compiled
4971 locally.
4972 </para>
4973 </glossdef>
4974 </glossentry>
4975
4976 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
4977 <info>
4978 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
4979 </info>
4980 <glossdef>
4981 <para role="glossdeffirst">
4982<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4983 Identifies user recipes that you do not want the
4984 Icecream distributed compile support to consider.
4985 This variable is used by the
4986 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
4987 class.
4988 You set this variable in your
4989 <filename>local.conf</filename> file.
4990 </para>
4991
4992 <para>
4993 When you list packages using this variable, you are
4994 "blacklisting" them from distributed compilation across
4995 remote hosts.
4996 Any packages you list will be distributed and compiled
4997 locally.
4998 </para>
4999 </glossdef>
5000 </glossentry>
5001
5002 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5003 <info>
5004 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."
5005 </info>
5006 <glossdef>
5007 <para role="glossdeffirst">
5008<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5009 Identifies user recipes that use an empty
5010 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5011 variable that you want to force remote distributed
5012 compilation on using the Icecream distributed compile
5013 support.
5014 This variable is used by the
5015 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5016 class.
5017 You set this variable in your
5018 <filename>local.conf</filename> file.
5019 </para>
5020 </glossdef>
5021 </glossentry>
5022
5023 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5024 <info>
5025 IMAGE_BASENAME[doc] = "The base name of image output files."
5026 </info>
5027 <glossdef>
5028 <para role="glossdeffirst">
5029<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5030 The base name of image output files.
5031 This variable defaults to the recipe name
5032 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5033 </para>
5034 </glossdef>
5035 </glossentry>
5036
5037 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5038 <info>
5039 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)."
5040 </info>
5041 <glossdef>
5042 <para role="glossdeffirst">
5043<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5044 A space-separated list of files installed into the
5045 boot partition when preparing an image using the
5046 <filename>wic</filename> tool with the
5047 <filename>bootimg-partition</filename> source
5048 plugin.
5049 By default, the files are installed under
5050 the same name as the source files.
5051 To change the installed name, separate it from the
5052 original name with a semi-colon (;).
5053 Source files need to be located in
5054 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5055 Here are two examples:
5056
5057 <literallayout class="monospaced">
5058 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5059 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5060 </literallayout>
5061 </para>
5062
5063 <para>
5064 Alternatively, source files can be picked up using
5065 a glob pattern.
5066 In this case, the destination file
5067 will have the same name as the base name of the source file
5068 path.
5069 To install files into a directory within the
5070 target location, pass its name after a semi-colon
5071 (;).
5072 Here are two examples:
5073 <literallayout class="monospaced">
5074 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5075 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5076 </literallayout>
5077 The first example installs all files from
5078 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5079 into the root of the target partition.
5080 The second example installs the same files into a
5081 <filename>boot</filename> directory within the
5082 target partition.
5083 </para>
5084 </glossdef>
5085 </glossentry>
5086
5087 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5088 <info>
5089 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5090 </info>
5091 <glossdef>
5092 <para role="glossdeffirst">
5093<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5094 A list of classes that all images should inherit.
5095 You typically use this variable to specify the list of
5096 classes that register the different types of images
5097 the OpenEmbedded build system creates.
5098 </para>
5099
5100 <para>
5101 The default value for <filename>IMAGE_CLASSES</filename> is
5102 <filename>image_types</filename>.
5103 You can set this variable in your
5104 <filename>local.conf</filename> or in a distribution
5105 configuration file.
5106 </para>
5107
5108 <para>
5109 For more information, see
5110 <filename>meta/classes/image_types.bbclass</filename> in the
5111 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
5112 </para>
5113 </glossdef>
5114 </glossentry>
5115
5116 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5117 <info>
5118 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)."
5119 </info>
5120 <glossdef>
5121 <para role="glossdeffirst">
5122<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5123 Specifies the command to create the image file for a
5124 specific image type, which corresponds to the value set
5125 set in
5126 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5127 (e.g. <filename>ext3</filename>,
5128 <filename>btrfs</filename>, and so forth).
5129 When setting this variable, you should use
5130 an override for the associated type.
5131 Here is an example:
5132 <literallayout class='monospaced'>
5133 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5134 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5135 ${EXTRA_IMAGECMD}"
5136 </literallayout>
5137 </para>
5138
5139 <para>
5140 You typically do not need to set this variable unless
5141 you are adding support for a new image type.
5142 For more examples on how to set this variable, see the
5143 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5144 class file, which is
5145 <filename>meta/classes/image_types.bbclass</filename>.
5146 </para>
5147 </glossdef>
5148 </glossentry>
5149
5150 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5151 <info>
5152 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."
5153 </info>
5154 <glossdef>
5155 <para role="glossdeffirst">
5156<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5157 Specifies one or more files that contain custom device
5158 tables that are passed to the
5159 <filename>makedevs</filename> command as part of creating
5160 an image.
5161 These files list basic device nodes that should be
5162 created under <filename>/dev</filename> within the image.
5163 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5164 <filename>files/device_table-minimal.txt</filename> is
5165 used, which is located by
5166 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5167 For details on how you should write device table files,
5168 see <filename>meta/files/device_table-minimal.txt</filename>
5169 as an example.
5170 </para>
5171 </glossdef>
5172 </glossentry>
5173
5174 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5175 <info>
5176 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5177 </info>
5178 <glossdef>
5179 <para role="glossdeffirst">
5180<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5181 The primary list of features to include in an image.
5182 Typically, you configure this variable in an image recipe.
5183 Although you can use this variable from your
5184 <filename>local.conf</filename> file, which is found in the
5185 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
5186 best practices dictate that you do not.
5187 <note>
5188 To enable extra features from outside the image recipe,
5189 use the
5190 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5191 </note>
5192 </para>
5193
5194 <para>
5195 For a list of image features that ships with the Yocto
5196 Project, see the
5197 "<link linkend="ref-features-image">Image Features</link>"
5198 section.
5199 </para>
5200
5201 <para>
5202 For an example that shows how to customize your image by
5203 using this variable, see the
5204 "<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>"
5205 section in the Yocto Project Development Manual.
5206 </para>
5207 </glossdef>
5208 </glossentry>
5209
5210 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5211 <info>
5212 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5213 </info>
5214 <glossdef>
5215 <para role="glossdeffirst">
5216<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5217 Specifies the formats the OpenEmbedded build system uses
5218 during the build when creating the root filesystem.
5219 For example, setting <filename>IMAGE_FSTYPES</filename>
5220 as follows causes the build system to create root
5221 filesystems using two formats: <filename>.ext3</filename>
5222 and <filename>.tar.bz2</filename>:
5223 <literallayout class='monospaced'>
5224 IMAGE_FSTYPES = "ext3 tar.bz2"
5225 </literallayout>
5226 </para>
5227
5228 <para>
5229 For the complete list of supported image formats from which
5230 you can choose, see
5231 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5232 </para>
5233
5234 <note>
5235 If you add "live" to <filename>IMAGE_FSTYPES</filename>
5236 inside an image recipe, be sure that you do so prior to the
5237 "inherit image" line of the recipe or the live image will
5238 not build.
5239 </note>
5240
5241 <note>
5242 Due to the way this variable is processed, it is not
5243 possible to update its contents using
5244 <filename>_append</filename> or
5245 <filename>_prepend</filename>. To add one or more
5246 additional options to this variable the
5247 <filename>+=</filename> operator must be used.
5248 </note>
5249 </glossdef>
5250 </glossentry>
5251
5252 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
5253 <info>
5254 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."
5255 </info>
5256 <glossdef>
5257 <para role="glossdeffirst">
5258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5259 Specifies the packages to install into an image.
5260 The <filename>IMAGE_INSTALL</filename> variable is a
5261 mechanism for an image recipe and you should use it
5262 with care to avoid ordering issues.
5263 <note>
5264 When working with an
5265 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
5266 image, do not use the <filename>IMAGE_INSTALL</filename>
5267 variable to specify packages for installation.
5268 Instead, use the
5269 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
5270 variable, which allows the initial RAM disk (initramfs)
5271 recipe to use a fixed set of packages and not be
5272 affected by <filename>IMAGE_INSTALL</filename>.
5273 </note>
5274 </para>
5275
5276 <para>
5277 Image recipes set <filename>IMAGE_INSTALL</filename>
5278 to specify the packages to install into an image through
5279 <filename>image.bbclass</filename>.
5280 Additionally, "helper" classes exist, such as
5281 <filename>core-image.bbclass</filename>, that can take
5282 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
5283 lists and turn these into auto-generated entries in
5284 <filename>IMAGE_INSTALL</filename> in addition to its
5285 default contents.
5286 </para>
5287
5288 <para>
5289 Using <filename>IMAGE_INSTALL</filename> with the
5290 <filename>+=</filename> operator from the
5291 <filename>/conf/local.conf</filename> file or from within
5292 an image recipe is not recommended as it can cause ordering
5293 issues.
5294 Since <filename>core-image.bbclass</filename> sets
5295 <filename>IMAGE_INSTALL</filename> to a default value using
5296 the <filename>?=</filename> operator, using a
5297 <filename>+=</filename> operation against
5298 <filename>IMAGE_INSTALL</filename> will result in
5299 unexpected behavior when used in
5300 <filename>conf/local.conf</filename>.
5301 Furthermore, the same operation from within an image
5302 recipe may or may not succeed depending on the specific
5303 situation.
5304 In both these cases, the behavior is contrary to how most
5305 users expect the <filename>+=</filename> operator to work.
5306 </para>
5307
5308 <para>
5309 When you use this variable, it is best to use it as follows:
5310 <literallayout class='monospaced'>
5311 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
5312 </literallayout>
5313 Be sure to include the space between the quotation character
5314 and the start of the package name or names.
5315 </para>
5316 </glossdef>
5317 </glossentry>
5318
5319 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
5320 <info>
5321 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
5322 </info>
5323 <glossdef>
5324 <para role="glossdeffirst">
5325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5326 Specifies the list of locales to install into the image
5327 during the root filesystem construction process.
5328 The OpenEmbedded build system automatically splits locale
5329 files, which are used for localization, into separate
5330 packages.
5331 Setting the <filename>IMAGE_LINGUAS</filename> variable
5332 ensures that any locale packages that correspond to packages
5333 already selected for installation into the image are also
5334 installed.
5335 Here is an example:
5336 <literallayout class='monospaced'>
5337 IMAGE_LINGUAS = "pt-br de-de"
5338 </literallayout>
5339 </para>
5340
5341 <para>
5342 In this example, the build system ensures any Brazilian
5343 Portuguese and German locale files that correspond to
5344 packages in the image are installed (i.e.
5345 <filename>*-locale-pt-br</filename>
5346 and <filename>*-locale-de-de</filename> as well as
5347 <filename>*-locale-pt</filename>
5348 and <filename>*-locale-de</filename>, since some software
5349 packages only provide locale files by language and not by
5350 country-specific language).
5351 </para>
5352
5353 <para>
5354 See the
5355 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
5356 variable for information on generating GLIBC locales.
5357 </para>
5358 </glossdef>
5359 </glossentry>
5360
5361 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
5362 <info>
5363 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
5364 </info>
5365 <glossdef>
5366 <para role="glossdeffirst">
5367<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5368 The manifest file for the image.
5369 This file lists all the installed packages that make up
5370 the image.
5371 The file contains package information on a line-per-package
5372 basis as follows:
5373 <literallayout class='monospaced'>
5374 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
5375 </literallayout>
5376 </para>
5377
5378 <para>
5379 The
5380 <link linkend='ref-classes-image'><filename>image</filename></link>
5381 class defines the manifest file as follows:
5382 <literallayout class='monospaced'>
5383 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
5384 </literallayout>
5385 The location is derived using the
5386 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
5387 and
5388 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
5389 variables.
5390 You can find information on how the image
5391 is created in the
5392 "<link linkend='image-generation-dev-environment'>Image Generation</link>"
5393 section.
5394 </para>
5395 </glossdef>
5396 </glossentry>
5397
5398 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
5399 <info>
5400 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
5401 </info>
5402 <glossdef>
5403 <para role="glossdeffirst">
5404<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5405 The name of the output image files minus the extension.
5406 This variable is derived using the
5407 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
5408 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
5409 and
5410 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
5411 variables:
5412 <literallayout class='monospaced'>
5413 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
5414 </literallayout>
5415 </para>
5416 </glossdef>
5417 </glossentry>
5418
5419 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
5420 <info>
5421 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."
5422 </info>
5423 <glossdef>
5424 <para role="glossdeffirst">
5425<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5426 Defines a multiplier that the build system applies to the initial image
5427 size for cases when the multiplier times the returned disk usage value
5428 for the image is greater than the sum of
5429 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
5430 and
5431 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
5432 The result of the multiplier applied to the initial image size creates
5433 free disk space in the image as overhead.
5434 By default, the build process uses a multiplier of 1.3 for this variable.
5435 This default value results in 30% free disk space added to the image when this
5436 method is used to determine the final generated image size.
5437 You should be aware that post install scripts and the package management
5438 system uses disk space inside this overhead area.
5439 Consequently, the multiplier does not produce an image with
5440 all the theoretical free disk space.
5441 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
5442 for information on how the build system determines the overall image size.
5443 </para>
5444
5445 <para>
5446 The default 30% free disk space typically gives the image enough room to boot
5447 and allows for basic post installs while still leaving a small amount of
5448 free disk space.
5449 If 30% free space is inadequate, you can increase the default value.
5450 For example, the following setting gives you 50% free space added to the image:
5451 <literallayout class='monospaced'>
5452 IMAGE_OVERHEAD_FACTOR = "1.5"
5453 </literallayout>
5454 </para>
5455
5456 <para>
5457 Alternatively, you can ensure a specific amount of free disk space is added
5458 to the image by using the
5459 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
5460 variable.
5461 </para>
5462 </glossdef>
5463 </glossentry>
5464
5465 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
5466 <info>
5467 IMAGE_PKGTYPE[doc] = "Defines the package type (DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
5468 </info>
5469 <glossdef>
5470 <para role="glossdeffirst">
5471<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5472 Defines the package type (DEB, RPM, IPK, or TAR) used
5473 by the OpenEmbedded build system.
5474 The variable is defined appropriately by the
5475 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
5476 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
5477 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
5478 or
5479 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
5480 class.
5481 <note><title>Warning</title>
5482 The <filename>package_tar</filename> class is broken
5483 and is not supported.
5484 It is recommended that you do not use it.
5485 </note>
5486 </para>
5487
5488 <para>
5489 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005490 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005491 and
5492 <link linkend='ref-classes-image'><filename>image</filename></link>
5493 classes use the <filename>IMAGE_PKGTYPE</filename> for
5494 packaging up images and SDKs.
5495 </para>
5496
5497 <para>
5498 You should not set the <filename>IMAGE_PKGTYPE</filename>
5499 manually.
5500 Rather, the variable is set indirectly through the
5501 appropriate
5502 <link linkend='ref-classes-package'><filename>package_*</filename></link>
5503 class using the
5504 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
5505 variable.
5506 The OpenEmbedded build system uses the first package type
5507 (e.g. DEB, RPM, or IPK) that appears with the variable
5508 <note>
5509 Files using the <filename>.tar</filename> format are
5510 never used as a substitute packaging format for DEB,
5511 RPM, and IPK formatted files for your image or SDK.
5512 </note>
5513 </para>
5514 </glossdef>
5515 </glossentry>
5516
5517 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
5518 <info>
5519 IMAGE_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the final image output files."
5520 </info>
5521 <glossdef>
5522 <para role="glossdeffirst">
5523<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5524 Specifies a list of functions to call once the
5525 OpenEmbedded build system has created the final image
5526 output files.
5527 You can specify functions separated by semicolons:
5528 <literallayout class='monospaced'>
5529 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
5530 </literallayout>
5531 </para>
5532
5533 <para>
5534 If you need to pass the root filesystem path to a command
5535 within the function, you can use
5536 <filename>${IMAGE_ROOTFS}</filename>, which points to
5537 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005538 See the
5539 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
5540 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005541 </para>
5542 </glossdef>
5543 </glossentry>
5544
5545 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
5546 <info>
5547 IMAGE_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the final image output files."
5548 </info>
5549 <glossdef>
5550 <para role="glossdeffirst">
5551<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5552 Specifies a list of functions to call before the
5553 OpenEmbedded build system has created the final image
5554 output files.
5555 You can specify functions separated by semicolons:
5556 <literallayout class='monospaced'>
5557 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
5558 </literallayout>
5559 </para>
5560
5561 <para>
5562 If you need to pass the root filesystem path to a command
5563 within the function, you can use
5564 <filename>${IMAGE_ROOTFS}</filename>, which points to
5565 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005566 See the
5567 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
5568 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005569 </para>
5570 </glossdef>
5571 </glossentry>
5572
5573 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
5574 <info>
5575 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
5576 </info>
5577 <glossdef>
5578 <para role="glossdeffirst">
5579<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5580 The location of the root filesystem while it is under
5581 construction (i.e. during the
5582 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
5583 task).
5584 This variable is not configurable.
5585 Do not change it.
5586 </para>
5587 </glossdef>
5588 </glossentry>
5589
5590 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
5591 <info>
5592 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
5593 </info>
5594 <glossdef>
5595 <para role="glossdeffirst">
5596<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5597 Specifies the alignment for the output image file in
5598 Kbytes.
5599 If the size of the image is not a multiple of
5600 this value, then the size is rounded up to the nearest
5601 multiple of the value.
5602 The default value is "1".
5603 See
5604 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
5605 for additional information.
5606 </para>
5607 </glossdef>
5608 </glossentry>
5609
5610 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
5611 <info>
5612 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
5613 </info>
5614 <glossdef>
5615 <para role="glossdeffirst">
5616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5617 Defines additional free disk space created in the image in Kbytes.
5618 By default, this variable is set to "0".
5619 This free disk space is added to the image after the build system determines
5620 the image size as described in
5621 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
5622 </para>
5623
5624 <para>
5625 This variable is particularly useful when you want to ensure that a
5626 specific amount of free disk space is available on a device after an image
5627 is installed and running.
5628 For example, to be sure 5 Gbytes of free disk space is available, set the
5629 variable as follows:
5630 <literallayout class='monospaced'>
5631 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
5632 </literallayout>
5633 </para>
5634
5635 <para>
5636 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
5637 of extra space with the line:
5638 <literallayout class='monospaced'>
5639 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
5640 </literallayout>
5641 </para>
5642 </glossdef>
5643 </glossentry>
5644
5645 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
5646 <info>
5647 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
5648 </info>
5649 <glossdef>
5650 <para role="glossdeffirst">
5651<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5652 Defines the size in Kbytes for the generated image.
5653 The OpenEmbedded build system determines the final size for the generated
5654 image using an algorithm that takes into account the initial disk space used
5655 for the generated image, a requested size for the image, and requested
5656 additional free disk space to be added to the image.
5657 Programatically, the build system determines the final size of the
5658 generated image as follows:
5659 <literallayout class='monospaced'>
5660 if (image-du * overhead) &lt; rootfs-size:
5661 internal-rootfs-size = rootfs-size + xspace
5662 else:
5663 internal-rootfs-size = (image-du * overhead) + xspace
5664
5665 where:
5666
5667 image-du = Returned value of the du command on
5668 the image.
5669
5670 overhead = IMAGE_OVERHEAD_FACTOR
5671
5672 rootfs-size = IMAGE_ROOTFS_SIZE
5673
5674 internal-rootfs-size = Initial root filesystem
5675 size before any modifications.
5676
5677 xspace = IMAGE_ROOTFS_EXTRA_SPACE
5678 </literallayout>
5679 </para>
5680
5681 <para>
5682 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
5683 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
5684 variables for related information.
5685<!-- In the above example, <filename>overhead</filename> is defined by the
5686 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
5687 variable, <filename>xspace</filename> is defined by the
5688 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
5689 variable, and <filename>du</filename> is the results of the disk usage command
5690 on the initially generated image. -->
5691 </para>
5692 </glossdef>
5693 </glossentry>
5694
5695 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
5696 <info>
5697 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
5698 </info>
5699 <glossdef>
5700 <para role="glossdeffirst">
5701<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5702 Specifies a dependency from one image type on another.
5703 Here is an example from the
5704 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
5705 class:
5706 <literallayout class='monospaced'>
5707 IMAGE_TYPEDEP_live = "ext3"
5708 </literallayout>
5709 </para>
5710
5711 <para>
5712 In the previous example, the variable ensures that when
5713 "live" is listed with the
5714 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
5715 variable, the OpenEmbedded build system produces an
5716 <filename>ext3</filename> image first since one of the
5717 components of the live
5718 image is an <filename>ext3</filename>
5719 formatted partition containing the root
5720 filesystem.
5721 </para>
5722 </glossdef>
5723 </glossentry>
5724
5725 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
5726 <info>
5727 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
5728 </info>
5729 <glossdef>
5730 <para role="glossdeffirst">
5731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5732 Specifies the complete list of supported image types
5733 by default:
5734 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005735 btrfs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005736 cpio
5737 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005738 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005739 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005740 cpio.xz
5741 cramfs
5742 elf
5743 ext2
5744 ext2.bz2
5745 ext2.gz
5746 ext2.lzma
5747 ext3
5748 ext3.gz
5749 ext4
5750 ext4.gz
5751 hdddirect
5752 hddimg
5753 iso
5754 jffs2
5755 jffs2.sum
5756 multiubi
5757 qcow2
5758 squashfs
5759 squashfs-lzo
5760 squashfs-xz
5761 tar
5762 tar.bz2
5763 tar.gz
5764 tar.lz4
5765 tar.xz
5766 ubi
5767 ubifs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005768 vdi
5769 vmdk
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005770 wic
5771 wic.bz2
5772 wic.gz
5773 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005774 </literallayout>
5775 </para>
5776
5777 <para>
5778 For more information about these types of images, see
5779 <filename>meta/classes/image_types*.bbclass</filename>
5780 in the
5781 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
5782 </para>
5783 </glossdef>
5784 </glossentry>
5785
5786 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
5787 <info>
5788 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
5789 </info>
5790 <glossdef>
5791 <para role="glossdeffirst">
5792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5793 Helps define the recipe revision for recipes that share
5794 a common <filename>include</filename> file.
5795 You can think of this variable as part of the recipe revision
5796 as set from within an include file.
5797 </para>
5798
5799 <para>
5800 Suppose, for example, you have a set of recipes that
5801 are used across several projects.
5802 And, within each of those recipes the revision
5803 (its <link linkend='var-PR'><filename>PR</filename></link>
5804 value) is set accordingly.
5805 In this case, when the revision of those recipes changes,
5806 the burden is on you to find all those recipes and
5807 be sure that they get changed to reflect the updated
5808 version of the recipe.
5809 In this scenario, it can get complicated when recipes
5810 that are used in many places and provide common functionality
5811 are upgraded to a new revision.
5812 </para>
5813
5814 <para>
5815 A more efficient way of dealing with this situation is
5816 to set the <filename>INC_PR</filename> variable inside
5817 the <filename>include</filename> files that the recipes
5818 share and then expand the <filename>INC_PR</filename>
5819 variable within the recipes to help
5820 define the recipe revision.
5821 </para>
5822
5823 <para>
5824 The following provides an example that shows how to use
5825 the <filename>INC_PR</filename> variable
5826 given a common <filename>include</filename> file that
5827 defines the variable.
5828 Once the variable is defined in the
5829 <filename>include</filename> file, you can use the
5830 variable to set the <filename>PR</filename> values in
5831 each recipe.
5832 You will notice that when you set a recipe's
5833 <filename>PR</filename> you can provide more granular
5834 revisioning by appending values to the
5835 <filename>INC_PR</filename> variable:
5836 <literallayout class='monospaced'>
5837recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
5838recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
5839recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
5840recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
5841 </literallayout>
5842 The first line of the example establishes the baseline
5843 revision to be used for all recipes that use the
5844 <filename>include</filename> file.
5845 The remaining lines in the example are from individual
5846 recipes and show how the <filename>PR</filename> value
5847 is set.
5848 </para>
5849 </glossdef>
5850 </glossentry>
5851
5852 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
5853 <info>
5854 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
5855 </info>
5856 <glossdef>
5857 <para role="glossdeffirst">
5858<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5859 Specifies a space-separated list of license names
5860 (as they would appear in
5861 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
5862 that should be excluded from the build.
5863 Recipes that provide no alternatives to listed incompatible
5864 licenses are not built.
5865 Packages that are individually licensed with the specified
5866 incompatible licenses will be deleted.
5867 </para>
5868
5869 <note>
5870 This functionality is only regularly tested using
5871 the following setting:
5872 <literallayout class='monospaced'>
5873 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
5874 </literallayout>
5875 Although you can use other settings, you might be required
5876 to remove dependencies on or provide alternatives to
5877 components that are required to produce a functional system
5878 image.
5879 </note>
5880 </glossdef>
5881 </glossentry>
5882
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005883 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
5884 <info>
5885 INHERIT[doc] = "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files."
5886 </info>
5887 <glossdef>
5888 <para role="glossdeffirst">
5889<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5890 Causes the named class to be inherited at
5891 this point during parsing.
5892 The variable is only valid in configuration files.
5893 </para>
5894 </glossdef>
5895 </glossentry>
5896
5897 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
5898 <info>
5899 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
5900 </info>
5901 <glossdef>
5902 <para role="glossdeffirst">
5903<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5904 Lists classes that will be inherited at the
5905 distribution level.
5906 It is unlikely that you want to edit this variable.
5907 </para>
5908
5909 <para>
5910 The default value of the variable is set as follows in the
5911 <filename>meta/conf/distro/defaultsetup.conf</filename>
5912 file:
5913 <literallayout class='monospaced'>
5914 INHERIT_DISTRO ?= "debian devshell sstate license"
5915 </literallayout>
5916 </para>
5917 </glossdef>
5918 </glossentry>
5919
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005920 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
5921 <info>
5922 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
5923 </info>
5924 <glossdef>
5925 <para role="glossdeffirst">
5926<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5927 Prevents the default dependencies, namely the C compiler
5928 and standard C library (libc), from being added to
5929 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
5930 This variable is usually used within recipes that do not
5931 require any compilation using the C compiler.
5932 </para>
5933
5934 <para>
5935 Set the variable to "1" to prevent the default dependencies
5936 from being added.
5937 </para>
5938 </glossdef>
5939 </glossentry>
5940
5941 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
5942 <info>
5943 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
5944 </info>
5945 <glossdef>
5946 <para role="glossdeffirst">
5947<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5948 Prevents the OpenEmbedded build system from splitting
5949 out debug information during packaging.
5950 By default, the build system splits out debugging
5951 information during the
5952 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
5953 task.
5954 For more information on how debug information is split out,
5955 see the
5956 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
5957 variable.
5958 </para>
5959
5960 <para>
5961 To prevent the build system from splitting out
5962 debug information during packaging, set the
5963 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
5964 as follows:
5965 <literallayout class='monospaced'>
5966 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
5967 </literallayout>
5968 </para>
5969 </glossdef>
5970 </glossentry>
5971
5972 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
5973 <info>
5974 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
5975 </info>
5976 <glossdef>
5977 <para role="glossdeffirst">
5978<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5979 If set to "1", causes the build to not strip binaries in resulting packages.
5980 </para>
5981 </glossdef>
5982 </glossentry>
5983
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005984 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
5985 <info>
5986 INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM disk (initramfs), which is used during boot."
5987 </info>
5988 <glossdef>
5989 <para role="glossdeffirst">
5990<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5991 Defines the format for the output image of an initial
5992 RAM disk (initramfs), which is used during boot.
5993 Supported formats are the same as those supported by the
5994 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
5995 variable.
5996 </para>
5997 </glossdef>
5998 </glossentry>
5999
6000 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6001 <info>
6002 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)."
6003 </info>
6004 <glossdef>
6005 <para role="glossdeffirst">
6006<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6007 Causes the OpenEmbedded build system to build an additional
6008 recipe as a dependency to your root filesystem recipe
6009 (e.g. <filename>core-image-sato</filename>).
6010 The additional recipe is used to create an initial RAM disk
6011 (initramfs) that might be needed during the initial boot of
6012 the target system to accomplish such things as loading
6013 kernel modules prior to mounting the root file system.
6014 </para>
6015
6016 <para>
6017 When you set the variable, specify the name of the
6018 initramfs you want created.
6019 The following example, which is set in the
6020 <filename>local.conf</filename> configuration file, causes
6021 a separate recipe to be created that results in an
6022 initramfs image named
6023 <filename>core-image-sato-initramfs.bb</filename> to be
6024 created:
6025 <literallayout class='monospaced'>
6026 INITRAMFS_IMAGE = "core-image-minimal-initramfs"
6027 </literallayout>
6028 By default, the
6029 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6030 class sets this variable to a null string as follows:
6031 <literallayout class='monospaced'>
6032 INITRAMFS_IMAGE = ""
6033 </literallayout>
6034 </para>
6035
6036 <para>
6037 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006038 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-poky/conf/local.conf.sample.extended'><filename>local.conf.sample.extended</filename></ulink>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006039 file for additional information.
6040 You can also reference the
6041 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta/classes/kernel.bbclass'><filename>kernel.bbclass</filename></ulink>
6042 file to see how the variable is used.
6043 </para>
6044 </glossdef>
6045 </glossentry>
6046
6047 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6048 <info>
6049 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)."
6050 </info>
6051 <glossdef>
6052 <para role="glossdeffirst">
6053<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6054 Controls whether or not the image recipe specified by
6055 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
6056 is run through an extra pass during kernel compilation
6057 in order to build a single binary that contains both the
6058 kernel image and the initial RAM disk (initramfs).
6059 Using an extra compilation pass ensures that when a kernel
6060 attempts to use an initramfs, it does not encounter
6061 circular dependencies should the initramfs include kernel
6062 modules.
6063 </para>
6064
6065 <para>
6066 The combined binary is deposited into the
6067 <filename>tmp/deploy</filename> directory, which is part
6068 of the
6069 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
6070 </para>
6071
6072 <para>
6073 Setting the variable to "1" in a configuration file causes
6074 the OpenEmbedded build system to make the extra pass during
6075 kernel compilation:
6076 <literallayout class='monospaced'>
6077 INITRAMFS_IMAGE_BUNDLE = "1"
6078 </literallayout>
6079 By default, the
6080 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6081 class sets this variable to a null string as follows:
6082 <literallayout class='monospaced'>
6083 INITRAMFS_IMAGE_BUNDLE = ""
6084 </literallayout>
6085 <note>
6086 You must set the
6087 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6088 a configuration file.
6089 You cannot set the variable in a recipe file.
6090 </note>
6091 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006092 <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-poky/conf/local.conf.sample.extended'><filename>local.conf.sample.extended</filename></ulink>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006093 file for additional information.
6094 </para>
6095 </glossdef>
6096 </glossentry>
6097
6098 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6099 <info>
6100 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6101 </info>
6102 <glossdef>
6103 <para role="glossdeffirst">
6104<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6105 Indicates list of filesystem images to concatenate and use
6106 as an initial RAM disk (<filename>initrd</filename>).
6107 </para>
6108
6109 <para>
6110 The <filename>INITRD</filename> variable is an optional
6111 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006112 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006113 class.
6114 </para>
6115 </glossdef>
6116 </glossentry>
6117
6118 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6119 <info>
6120 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."
6121 </info>
6122 <glossdef>
6123 <para role="glossdeffirst">
6124<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6125 When building a "live" bootable image (i.e. when
6126 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6127 contains "live"), <filename>INITRD_IMAGE</filename>
6128 specifies the image recipe that should be built
6129 to provide the initial RAM disk image.
6130 The default value is "core-image-minimal-initramfs".
6131 </para>
6132
6133 <para>
6134 See the
6135 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6136 class for more information.
6137 </para>
6138 </glossdef>
6139 </glossentry>
6140
6141 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6142 <info>
6143 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6144 </info>
6145 <glossdef>
6146 <para role="glossdeffirst">
6147<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6148 The filename of the initialization script as installed to
6149 <filename>${sysconfdir}/init.d</filename>.
6150 </para>
6151
6152 <para>
6153 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6154 The variable is mandatory.
6155 </para>
6156 </glossdef>
6157 </glossentry>
6158
6159 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
6160 <info>
6161 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."
6162 </info>
6163 <glossdef>
6164 <para role="glossdeffirst">
6165<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6166 A list of the packages that contain initscripts.
6167 If multiple packages are specified, you need to append the package name
6168 to the other <filename>INITSCRIPT_*</filename> as an override.
6169 </para>
6170
6171 <para>
6172 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6173 The variable is optional and defaults to the
6174 <link linkend='var-PN'><filename>PN</filename></link> variable.
6175 </para>
6176 </glossdef>
6177 </glossentry>
6178
6179 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
6180 <info>
6181 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."
6182 </info>
6183 <glossdef>
6184 <para role="glossdeffirst">
6185<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6186 Specifies the options to pass to <filename>update-rc.d</filename>.
6187 Here is an example:
6188 <literallayout class='monospaced'>
6189 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
6190 </literallayout>
6191 </para>
6192
6193 <para>
6194 In this example, the script has a runlevel of 99,
6195 starts the script in initlevels 2 and 5, and
6196 stops the script in levels 0, 1 and 6.
6197 </para>
6198
6199 <para>
6200 The variable's default value is "defaults", which is
6201 set in the
6202 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
6203 class.
6204 </para>
6205
6206 <para>
6207 The value in
6208 <filename>INITSCRIPT_PARAMS</filename> is passed through
6209 to the <filename>update-rc.d</filename> command.
6210 For more information on valid parameters, please see the
6211 <filename>update-rc.d</filename> manual page at
6212 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
6213 </para>
6214 </glossdef>
6215 </glossentry>
6216
6217 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
6218 <info>
6219 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
6220 </info>
6221 <glossdef>
6222 <para role="glossdeffirst">
6223<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6224 Specifies the QA checks to skip for a specific package
6225 within a recipe.
6226 For example, to skip the check for symbolic link
6227 <filename>.so</filename> files in the main package of a
6228 recipe, add the following to the recipe.
6229 The package name override must be used, which in this
6230 example is <filename>${PN}</filename>:
6231 <literallayout class='monospaced'>
6232 INSANE_SKIP_${PN} += "dev-so"
6233 </literallayout>
6234 </para>
6235
6236 <para>
6237 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
6238 section for a list of the valid QA checks you can
6239 specify using this variable.
6240 </para>
6241 </glossdef>
6242 </glossentry>
6243
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006244 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
6245 <info>
6246 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
6247 </info>
6248 <glossdef>
6249 <para role="glossdeffirst">
6250<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6251 By default, the <filename>tzdata</filename> recipe packages
6252 an <filename>/etc/timezone</filename> file.
6253 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
6254 variable to "0" at the configuration level to disable this
6255 behavior.
6256 </para>
6257 </glossdef>
6258 </glossentry>
6259
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006260 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
6261 <info>
6262 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
6263 </info>
6264 <glossdef>
6265 <para role="glossdeffirst">
6266<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6267 When the IPK backend is in use and package management
6268 is enabled on the target, you can use this variable to
6269 set up <filename>opkg</filename> in the target image
6270 to point to package feeds on a nominated server.
6271 Once the feed is established, you can perform
6272 installations or upgrades using the package manager
6273 at runtime.
6274 </para>
6275 </glossdef>
6276 </glossentry>
6277
6278<!--
6279 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
6280 <glossdef>
6281 <para>
6282 An environment variable that defines the directory where
6283 post installation hooks are installed for the
6284 post install environment.
6285 This variable is fixed as follows:
6286 <literallayout class='monospaced'>
6287 ${WORKDIR}/intercept_scripts
6288 </literallayout>
6289 </para>
6290
6291 <para>
6292 After installation of a target's root filesystem,
6293 post installation scripts, which are essentially bash scripts,
6294 are all executed just a single time.
6295 Limiting execution of these scripts minimizes installation
6296 time that would be lengthened due to certain packages
6297 triggering redundant operations.
6298 For example, consider the installation of font packages
6299 as a common example.
6300 Without limiting the execution of post installation scripts,
6301 all font directories would be rescanned to create the
6302 cache after each individual font package was installed.
6303 </para>
6304
6305 <para>
6306 Do not edit the <filename>INTERCEPT_DIR</filename>
6307 variable.
6308 </para>
6309 </glossdef>
6310 </glossentry>
6311-->
6312
6313 </glossdiv>
6314
6315<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
6316<!-- </glossdiv>-->
6317
6318 <glossdiv id='var-glossary-k'><title>K</title>
6319
6320 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
6321 <info>
6322 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
6323 </info>
6324 <glossdef>
6325 <para role="glossdeffirst">
6326<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6327 Defines the kernel architecture used when assembling
6328 the configuration.
6329 Architectures supported for this release are:
6330 <literallayout class='monospaced'>
6331 powerpc
6332 i386
6333 x86_64
6334 arm
6335 qemu
6336 mips
6337 </literallayout>
6338 </para>
6339
6340 <para>
6341 You define the <filename>KARCH</filename> variable in the
6342 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
6343 </para>
6344 </glossdef>
6345 </glossentry>
6346
6347 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
6348 <info>
6349 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."
6350 </info>
6351 <glossdef>
6352 <para role="glossdeffirst">
6353<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6354 A regular expression used by the build process to explicitly
6355 identify the kernel branch that is validated, patched,
6356 and configured during a build.
6357 You must set this variable to ensure the exact kernel
6358 branch you want is being used by the build process.
6359 </para>
6360
6361 <para>
6362 Values for this variable are set in the kernel's recipe
6363 file and the kernel's append file.
6364 For example, if you are using the Yocto Project kernel that
6365 is based on the Linux 3.14 kernel, the kernel recipe file
6366 is the
6367 <filename>meta/recipes-kernel/linux/linux-yocto_3.14.bb</filename>
6368 file.
6369 Following is an example for a kernel recipe file:
6370 <literallayout class='monospaced'>
6371 KBRANCH ?= "standard/base"
6372 </literallayout>
6373 </para>
6374
6375 <para>
6376 This variable is also used from the kernel's append file
6377 to identify the kernel branch specific to a particular
6378 machine or target hardware.
6379 The kernel's append file is located in the BSP layer for
6380 a given machine.
6381 For example, the kernel append file for the Emenlow BSP is in the
6382 <filename>meta-intel</filename> Git repository and is named
6383 <filename>meta-emenlow/recipes-kernel/linux/linux-yocto_3.14.bbappend</filename>.
6384 Here are the related statements from the append file:
6385 <literallayout class='monospaced'>
6386 COMPATIBLE_MACHINE_emenlow-noemgd = "emenlow-noemgd"
6387 KMACHINE_emenlow-noemgd = "emenlow"
6388 KBRANCH_emenlow-noemgd = "standard/base"
6389 KERNEL_FEATURES_append_emenlow-noemgd = " features/drm-gma500/drm-gma500.scc"
6390 </literallayout>
6391 The <filename>KBRANCH</filename> statement identifies
6392 the kernel branch to use when building for the Emenlow
6393 BSP.
6394 </para>
6395 </glossdef>
6396 </glossentry>
6397
6398 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
6399 <info>
6400 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
6401 </info>
6402 <glossdef>
6403 <para role="glossdeffirst">
6404<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6405 When used with the
6406 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
6407 class, specifies an "in-tree" kernel configuration file
6408 for use during a kernel build.
6409 </para>
6410
6411 <para>
6412 Typically, when using a <filename>defconfig</filename> to
6413 configure a kernel during a build, you place the
6414 file in your layer in the same manner as you would
6415 patch files and configuration fragment files (i.e.
6416 "out-of-tree").
6417 However, if you want to use a <filename>defconfig</filename>
6418 file that is part of the kernel tree (i.e. "in-tree"),
6419 you can use the
6420 <filename>KBUILD_DEFCONFIG</filename> variable to point
6421 to the <filename>defconfig</filename> file.
6422 </para>
6423
6424 <para>
6425 To use the variable, set it in the append file for your
6426 kernel recipe using the following form:
6427 <literallayout class='monospaced'>
6428 KBUILD_DEFCONFIG_<link linkend='var-KMACHINE'>KMACHINE</link> ?= <replaceable>defconfig_file</replaceable>
6429 </literallayout>
6430 Here is an example from a "raspberrypi2"
6431 <filename>KMACHINE</filename> build that uses a
6432 <filename>defconfig</filename> file named
6433 "bcm2709_defconfig":
6434 <literallayout class='monospaced'>
6435 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
6436 </literallayout>
6437 As an alternative, you can use the following within your
6438 append file:
6439 <literallayout class='monospaced'>
6440 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
6441 </literallayout>
6442 For more information on how to use the
6443 <filename>KBUILD_DEFCONFIG</filename> variable, see the
6444 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-an-in-tree-defconfig-file'>Using an "In-Tree" <filename>defconfig</filename> File</ulink>"
6445 section.
6446 </para>
6447 </glossdef>
6448 </glossentry>
6449
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006450 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
6451 <info>
6452 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
6453 </info>
6454 <glossdef>
6455 <para role="glossdeffirst">
6456<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6457 Specifies an alternate kernel image type for creation in
6458 addition to the kernel image type specified using the
6459 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
6460 variable.
6461 </para>
6462 </glossdef>
6463 </glossentry>
6464
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006465 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
6466 <info>
6467 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
6468 </info>
6469 <glossdef>
6470 <para role="glossdeffirst">
6471<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6472 A list of classes defining kernel image types that the
6473 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6474 class should inherit.
6475 You typically append this variable to enable extended image
6476 types.
6477 An example is the "kernel-fitimage", which enables
6478 fitImage support and resides in
6479 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
6480 You can register custom kernel image types with the
6481 <filename>kernel</filename> class using this variable.
6482 </para>
6483 </glossdef>
6484 </glossentry>
6485
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006486 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
6487 <info>
6488 KERNEL_DEVICETREE[doc] = "Specifies the name of the generated Linux kernel device tree (i.e. the <filename>.dtb</filename>) file."
6489 </info>
6490 <glossdef>
6491 <para role="glossdeffirst">
6492<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6493 Specifies the name of the generated Linux kernel device tree
6494 (i.e. the <filename>.dtb</filename>) file.
6495 <note>
6496 Legacy support exists for specifying the full path
6497 to the device tree.
6498 However, providing just the <filename>.dtb</filename>
6499 file is preferred.
6500 </note>
6501 In order to use this variable, you must have the include
6502 files in your kernel recipe:
6503 <literallayout class='monospaced'>
6504 require recipes-kernel/linux/linux-dtb.inc
6505 </literallayout>
6506 or
6507 <literallayout class='monospaced'>
6508 require recipes-kernel/linux/linux-yocto.inc
6509 </literallayout>
6510 </para>
6511 </glossdef>
6512 </glossentry>
6513
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006514 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
6515 <info>
6516 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
6517 </info>
6518 <glossdef>
6519 <para role="glossdeffirst">
6520<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6521 Specifies additional <filename>make</filename>
6522 command-line arguments the OpenEmbedded build system
6523 passes on when compiling the kernel.
6524 </para>
6525 </glossdef>
6526 </glossentry>
6527
6528 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
6529 <info>
6530 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."
6531 </info>
6532 <glossdef>
6533 <para role="glossdeffirst">
6534<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6535 Includes additional metadata from the Yocto Project kernel Git repository.
6536 In the OpenEmbedded build system, the default Board Support Packages (BSPs)
6537 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
6538 is provided through
6539 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
6540 and <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link> variables.
6541 You can use the <filename>KERNEL_FEATURES</filename> variable to further
6542 add metadata for all BSPs.
6543 </para>
6544
6545 <para>
6546 The metadata you add through this variable includes config fragments and
6547 features descriptions,
6548 which usually includes patches as well as config fragments.
6549 You typically override the <filename>KERNEL_FEATURES</filename> variable
6550 for a specific machine.
6551 In this way, you can provide validated, but optional, sets of kernel
6552 configurations and features.
6553 </para>
6554
6555 <para>
6556 For example, the following adds <filename>netfilter</filename> to all
6557 the Yocto Project kernels and adds sound support to the <filename>qemux86</filename>
6558 machine:
6559 <literallayout class='monospaced'>
6560 # Add netfilter to all linux-yocto kernels
6561 KERNEL_FEATURES="features/netfilter/netfilter.scc"
6562
6563 # Add sound support to the qemux86 machine
6564 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc"
6565 </literallayout></para>
6566 </glossdef>
6567 </glossentry>
6568
6569 <glossentry id='var-KERNEL_IMAGE_BASE_NAME'><glossterm>KERNEL_IMAGE_BASE_NAME</glossterm>
6570 <info>
6571 KERNEL_IMAGE_BASE_NAME[doc] = "The base name of the kernel image."
6572 </info>
6573 <glossdef>
6574 <para role="glossdeffirst">
6575<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6576 The base name of the kernel image.
6577 This variable is set in the
6578 <link linkend='ref-classes-kernel'>kernel</link> class
6579 as follows:
6580 <literallayout class='monospaced'>
6581 KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
6582 </literallayout>
6583 </para>
6584
6585 <para>
6586 See the
6587 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>,
6588 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
6589 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
6590 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
6591 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6592 and
6593 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6594 variables for additional information.
6595 </para>
6596 </glossdef>
6597 </glossentry>
6598
6599 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
6600 <info>
6601 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
6602 </info>
6603 <glossdef>
6604 <para role="glossdeffirst">
6605<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6606 Specifies the maximum size of the kernel image file in
6607 kilobytes.
6608 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
6609 the size of the kernel image file is checked against
6610 the set value during the
6611 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
6612 task.
6613 The task fails if the kernel image file is larger than
6614 the setting.
6615 </para>
6616
6617 <para>
6618 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
6619 target devices that have a limited amount of space in
6620 which the kernel image must be stored.
6621 </para>
6622
6623 <para>
6624 By default, this variable is not set, which means the
6625 size of the kernel image is not checked.
6626 </para>
6627 </glossdef>
6628 </glossentry>
6629
6630 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
6631 <info>
6632 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
6633 </info>
6634 <glossdef>
6635 <para role="glossdeffirst">
6636<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6637 The type of kernel to build for a device, usually set by the
6638 machine configuration files and defaults to "zImage".
6639 This variable is used
6640 when building the kernel and is passed to <filename>make</filename> as the target to
6641 build.
6642 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006643
6644 <para>
6645 If you want to build an alternate kernel image type, use the
6646 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
6647 variable.
6648 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006649 </glossdef>
6650 </glossentry>
6651
6652 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
6653 <info>
6654 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
6655 </info>
6656 <glossdef>
6657 <para role="glossdeffirst">
6658<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6659 Lists kernel modules that need to be auto-loaded during
6660 boot.
6661 <note>
6662 This variable replaces the deprecated
6663 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
6664 variable.
6665 </note>
6666 </para>
6667
6668 <para>
6669 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
6670 variable anywhere that it can be
6671 recognized by the kernel recipe or by an out-of-tree kernel
6672 module recipe (e.g. a machine configuration file, a
6673 distribution configuration file, an append file for the
6674 recipe, or the recipe itself).
6675 </para>
6676
6677 <para>
6678 Specify it as follows:
6679 <literallayout class='monospaced'>
6680 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
6681 </literallayout>
6682 </para>
6683
6684 <para>
6685 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
6686 the OpenEmbedded build system to populate the
6687 <filename>/etc/modules-load.d/modname.conf</filename>
6688 file with the list of modules to be auto-loaded on boot.
6689 The modules appear one-per-line in the file.
6690 Here is an example of the most common use case:
6691 <literallayout class='monospaced'>
6692 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
6693 </literallayout>
6694 </para>
6695
6696 <para>
6697 For information on how to populate the
6698 <filename>modname.conf</filename> file with
6699 <filename>modprobe.d</filename> syntax lines, see the
6700 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
6701 variable.
6702 </para>
6703 </glossdef>
6704 </glossentry>
6705
6706 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
6707 <info>
6708 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."
6709 </info>
6710 <glossdef>
6711 <para role="glossdeffirst">
6712<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6713 Provides a list of modules for which the OpenEmbedded
6714 build system expects to find
6715 <filename>module_conf_</filename><replaceable>modname</replaceable>
6716 values that specify configuration for each of the modules.
6717 For information on how to provide those module
6718 configurations, see the
6719 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
6720 variable.
6721 </para>
6722 </glossdef>
6723 </glossentry>
6724
6725 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
6726 <info>
6727 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)."
6728 </info>
6729 <glossdef>
6730 <para role="glossdeffirst">
6731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6732 The location of the kernel sources.
6733 This variable is set to the value of the
6734 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
6735 within the
6736 <link linkend='ref-classes-module'><filename>module</filename></link>
6737 class.
6738 For information on how this variable is used, see the
6739 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
6740 section.
6741 </para>
6742
6743 <para>
6744 To help maximize compatibility with out-of-tree drivers
6745 used to build modules, the OpenEmbedded build system also
6746 recognizes and uses the
6747 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
6748 variable, which is identical to the
6749 <filename>KERNEL_PATH</filename> variable.
6750 Both variables are common variables used by external
6751 Makefiles to point to the kernel source directory.
6752 </para>
6753 </glossdef>
6754 </glossentry>
6755
6756 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
6757 <info>
6758 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)."
6759 </info>
6760 <glossdef>
6761 <para role="glossdeffirst">
6762<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6763 The location of the kernel sources.
6764 This variable is set to the value of the
6765 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
6766 within the
6767 <link linkend='ref-classes-module'><filename>module</filename></link>
6768 class.
6769 For information on how this variable is used, see the
6770 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
6771 section.
6772 </para>
6773
6774 <para>
6775 To help maximize compatibility with out-of-tree drivers
6776 used to build modules, the OpenEmbedded build system also
6777 recognizes and uses the
6778 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
6779 variable, which is identical to the
6780 <filename>KERNEL_SRC</filename> variable.
6781 Both variables are common variables used by external
6782 Makefiles to point to the kernel source directory.
6783 </para>
6784 </glossdef>
6785 </glossentry>
6786
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006787 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
6788 <info>
6789 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
6790 </info>
6791 <glossdef>
6792 <para role="glossdeffirst">
6793<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6794 Specifies the version of the kernel as extracted from
6795 <filename>version.h</filename> or
6796 <filename>utsrelease.h</filename> within the kernel sources.
6797 Effects of setting this variable do not take affect until
6798 the kernel has been configured.
6799 Consequently, attempting to refer to this variable in
6800 contexts prior to configuration will not work.
6801 </para>
6802 </glossdef>
6803 </glossentry>
6804
6805 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
6806 <info>
6807 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
6808 </info>
6809 <glossdef>
6810 <para role="glossdeffirst">
6811<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6812 Specifies whether the data referenced through
6813 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
6814 is needed or not.
6815 The <filename>KERNELDEPMODDEPEND</filename> does not
6816 control whether or not that data exists,
6817 but simply whether or not it is used.
6818 If you do not need to use the data, set the
6819 <filename>KERNELDEPMODDEPEND</filename> variable in your
6820 <filename>initramfs</filename> recipe.
6821 Setting the variable there when the data is not needed
6822 avoids a potential dependency loop.
6823 </para>
6824 </glossdef>
6825 </glossentry>
6826
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006827 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
6828 <info>
6829 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."
6830 </info>
6831 <glossdef>
6832 <para role="glossdeffirst">
6833<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6834 Provides a short description of a configuration fragment.
6835 You use this variable in the <filename>.scc</filename>
6836 file that describes a configuration fragment file.
6837 Here is the variable used in a file named
6838 <filename>smp.scc</filename> to describe SMP being
6839 enabled:
6840 <literallayout class='monospaced'>
6841 define KFEATURE_DESCRIPTION "Enable SMP"
6842 </literallayout>
6843 </para>
6844 </glossdef>
6845 </glossentry>
6846
6847 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
6848 <info>
6849 KMACHINE[doc] = "The machine as known by the kernel."
6850 </info>
6851 <glossdef>
6852 <para role="glossdeffirst">
6853<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6854 The machine as known by the kernel.
6855 Sometimes the machine name used by the kernel does not
6856 match the machine name used by the OpenEmbedded build
6857 system.
6858 For example, the machine name that the OpenEmbedded build
6859 system understands as
6860 <filename>core2-32-intel-common</filename> goes by a
6861 different name in the Linux Yocto kernel.
6862 The kernel understands that machine as
6863 <filename>intel-core2-32</filename>.
6864 For cases like these, the <filename>KMACHINE</filename>
6865 variable maps the kernel machine name to the OpenEmbedded
6866 build system machine name.
6867 </para>
6868
6869 <para>
6870 These mappings between different names occur in the
6871 Yocto Linux Kernel's <filename>meta</filename> branch.
6872 As an example take a look in the
6873 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
6874 file:
6875 <literallayout class='monospaced'>
6876 LINUX_VERSION_core2-32-intel-common = "3.19.0"
6877 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
6878 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
6879 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
6880 KMACHINE_core2-32-intel-common = "intel-core2-32"
6881 KBRANCH_core2-32-intel-common = "standard/base"
6882 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
6883 </literallayout>
6884 The <filename>KMACHINE</filename> statement says that
6885 the kernel understands the machine name as
6886 "intel-core2-32".
6887 However, the OpenEmbedded build system understands the
6888 machine as "core2-32-intel-common".
6889 </para>
6890
6891 </glossdef>
6892 </glossentry>
6893
6894 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
6895 <info>
6896 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
6897 </info>
6898 <glossdef>
6899 <para role="glossdeffirst">
6900<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6901 Defines the kernel type to be used in assembling the
6902 configuration.
6903 The linux-yocto recipes define "standard", "tiny",
6904 and "preempt-rt" kernel types.
6905 See the
6906 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
6907 section in the Yocto Project Linux Kernel Development
6908 Manual for more information on kernel types.
6909 </para>
6910
6911 <para>
6912 You define the <filename>KTYPE</filename> variable in the
6913 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
6914 The value you use must match the value used for the
6915 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
6916 value used by the kernel recipe.
6917 </para>
6918 </glossdef>
6919 </glossentry>
6920 </glossdiv>
6921
6922 <glossdiv id='var-glossary-l'><title>L</title>
6923
6924 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
6925 <info>
6926 LABELS[doc] = "Provides a list of targets for automatic configuration."
6927 </info>
6928 <glossdef>
6929 <para role="glossdeffirst">
6930<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6931 Provides a list of targets for automatic configuration.
6932 </para>
6933
6934 <para>
6935 See the
6936 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
6937 class for more information on how this variable is used.
6938 </para>
6939 </glossdef>
6940 </glossentry>
6941
6942 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
6943 <info>
6944 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."
6945 </info>
6946 <glossdef>
6947 <para role="glossdeffirst">
6948<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6949 Lists the layers that this recipe depends upon, separated by spaces.
6950 Optionally, you can specify a specific layer version for a dependency
6951 by adding it to the end of the layer name with a colon, (e.g. "anotherlayer:3"
6952 to be compared against
6953 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>
6954 in this case).
6955 An error will be produced if any dependency is missing or
6956 the version numbers do not match exactly (if specified).
6957 This variable is used in the <filename>conf/layer.conf</filename> file
6958 and must be suffixed with the name of the specific layer (e.g.
6959 <filename>LAYERDEPENDS_mylayer</filename>).
6960 </para>
6961 </glossdef>
6962 </glossentry>
6963
6964 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
6965 <info>
6966 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
6967 </info>
6968 <glossdef>
6969 <para role="glossdeffirst">
6970<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6971 When used inside the <filename>layer.conf</filename> configuration
6972 file, this variable provides the path of the current layer.
6973 This variable is not available outside of <filename>layer.conf</filename>
6974 and references are expanded immediately when parsing of the file completes.
6975 </para>
6976 </glossdef>
6977 </glossentry>
6978
6979 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
6980 <info>
6981 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."
6982 </info>
6983 <glossdef>
6984 <para role="glossdeffirst">
6985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6986 Optionally specifies the version of a layer as a single number.
6987 You can use this within
6988 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
6989 for another layer in order to depend on a specific version
6990 of the layer.
6991 This variable is used in the <filename>conf/layer.conf</filename> file
6992 and must be suffixed with the name of the specific layer (e.g.
6993 <filename>LAYERVERSION_mylayer</filename>).
6994 </para>
6995 </glossdef>
6996 </glossentry>
6997
6998 <glossentry id='var-LD'><glossterm>LD</glossterm>
6999 <info>
7000 LD[doc] = "Minimal command and arguments to run the linker."
7001 </info>
7002 <glossdef>
7003 <para role="glossdeffirst">
7004<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7005 The minimal command and arguments used to run the
7006 linker.
7007 </para>
7008 </glossdef>
7009 </glossentry>
7010
7011 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
7012 <info>
7013 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
7014 </info>
7015 <glossdef>
7016 <para role="glossdeffirst">
7017<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7018 Specifies the flags to pass to the linker.
7019 This variable is exported to an environment
7020 variable and thus made visible to the software being
7021 built during the compilation step.
7022 </para>
7023
7024 <para>
7025 Default initialization for <filename>LDFLAGS</filename>
7026 varies depending on what is being built:
7027 <itemizedlist>
7028 <listitem><para>
7029 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
7030 when building for the target
7031 </para></listitem>
7032 <listitem><para>
7033 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
7034 when building for the build host (i.e.
7035 <filename>-native</filename>)
7036 </para></listitem>
7037 <listitem><para>
7038 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
7039 when building for an SDK (i.e.
7040 <filename>nativesdk-</filename>)
7041 </para></listitem>
7042 </itemizedlist>
7043 </para>
7044 </glossdef>
7045 </glossentry>
7046
7047 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
7048 <info>
7049 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."
7050 </info>
7051 <glossdef>
7052 <para role="glossdeffirst">
7053<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7054 Specifies the lead (or primary) compiled library file
7055 (<filename>.so</filename>) that the
7056 <link linkend='ref-classes-debian'><filename>debian</filename></link>
7057 class applies its naming policy to given a recipe that
7058 packages multiple libraries.
7059 </para>
7060
7061 <para>
7062 This variable works in conjunction with the
7063 <filename>debian</filename> class.
7064 </para>
7065 </glossdef>
7066 </glossentry>
7067
7068 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
7069 <info>
7070 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
7071 </info>
7072 <glossdef>
7073 <para role="glossdeffirst">
7074<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7075 Checksums of the license text in the recipe source code.
7076 </para>
7077
7078 <para>
7079 This variable tracks changes in license text of the source
7080 code files.
7081 If the license text is changed, it will trigger a build
7082 failure, which gives the developer an opportunity to review any
7083 license change.
7084 </para>
7085
7086 <para>
7087 This variable must be defined for all recipes (unless
7088 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7089 is set to "CLOSED").</para>
7090 <para>For more information, see the
7091 "<link linkend='usingpoky-configuring-LIC_FILES_CHKSUM'>
7092 Tracking License Changes</link>" section.
7093 </para>
7094 </glossdef>
7095 </glossentry>
7096
7097 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
7098 <info>
7099 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
7100 </info>
7101 <glossdef>
7102 <para role="glossdeffirst">
7103<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7104 The list of source licenses for the recipe.
7105 Follow these rules:
7106 <itemizedlist>
7107 <listitem><para>Do not use spaces within individual
7108 license names.</para></listitem>
7109 <listitem><para>Separate license names using
7110 | (pipe) when there is a choice between licenses.
7111 </para></listitem>
7112 <listitem><para>Separate license names using
7113 &amp; (ampersand) when multiple licenses exist
7114 that cover different parts of the source.
7115 </para></listitem>
7116 <listitem><para>You can use spaces between license
7117 names.</para></listitem>
7118 <listitem><para>For standard licenses, use the names
7119 of the files in
7120 <filename>meta/files/common-licenses/</filename>
7121 or the
7122 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
7123 flag names defined in
7124 <filename>meta/conf/licenses.conf</filename>.
7125 </para></listitem>
7126 </itemizedlist>
7127 </para>
7128
7129 <para>
7130 Here are some examples:
7131 <literallayout class='monospaced'>
7132 LICENSE = "LGPLv2.1 | GPLv3"
7133 LICENSE = "MPL-1 &amp; LGPLv2.1"
7134 LICENSE = "GPLv2+"
7135 </literallayout>
7136 The first example is from the recipes for Qt, which the user
7137 may choose to distribute under either the LGPL version
7138 2.1 or GPL version 3.
7139 The second example is from Cairo where two licenses cover
7140 different parts of the source code.
7141 The final example is from <filename>sysstat</filename>,
7142 which presents a single license.
7143 </para>
7144
7145 <para>
7146 You can also specify licenses on a per-package basis to
7147 handle situations where components of the output have
7148 different licenses.
7149 For example, a piece of software whose code is
7150 licensed under GPLv2 but has accompanying documentation
7151 licensed under the GNU Free Documentation License 1.2 could
7152 be specified as follows:
7153 <literallayout class='monospaced'>
7154 LICENSE = "GFDL-1.2 &amp; GPLv2"
7155 LICENSE_${PN} = "GPLv2"
7156 LICENSE_${PN}-doc = "GFDL-1.2"
7157 </literallayout>
7158 </para>
7159 </glossdef>
7160 </glossentry>
7161
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007162 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
7163 <info>
7164 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
7165 </info>
7166 <glossdef>
7167 <para role="glossdeffirst">
7168<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7169 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
7170 to "1" causes the OpenEmbedded build system to create
7171 an extra package (i.e.
7172 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
7173 for each recipe and to add those packages to the
7174 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
7175 </para>
7176
7177 <para>
7178 The <filename>${PN}-lic</filename> package installs a
7179 directory in <filename>/usr/share/licenses</filename>
7180 named <filename>${PN}</filename>, which is the recipe's
7181 base name, and installs files in that directory that
7182 contain license and copyright information (i.e. copies of
7183 the appropriate license files from
7184 <filename>meta/common-licenses</filename> that match the
7185 licenses specified in the
7186 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7187 variable of the recipe metadata and copies of files marked
7188 in
7189 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
7190 as containing license text).
7191 </para>
7192
7193 <para>
7194 For related information on providing license text, see the
7195 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
7196 variable, the
7197 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
7198 variable, and the
7199 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
7200 section in the Yocto Project Development Manual.
7201 </para>
7202 </glossdef>
7203 </glossentry>
7204
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007205 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
7206 <info>
7207 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."
7208 </info>
7209 <glossdef>
7210 <para role="glossdeffirst">
7211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7212 Specifies additional flags for a recipe you must
7213 whitelist through
7214 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
7215 in order to allow the recipe to be built.
7216 When providing multiple flags, separate them with
7217 spaces.
7218 </para>
7219
7220 <para>
7221 This value is independent of
7222 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7223 and is typically used to mark recipes that might
7224 require additional licenses in order to be used in a
7225 commercial product.
7226 For more information, see the
7227 "<link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7228 section.
7229 </para>
7230 </glossdef>
7231 </glossentry>
7232
7233 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
7234 <info>
7235 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
7236 </info>
7237 <glossdef>
7238 <para role="glossdeffirst">
7239<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7240 Lists license flags that when specified in
7241 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
7242 within a recipe should not prevent that recipe from being
7243 built.
7244 This practice is otherwise known as "whitelisting"
7245 license flags.
7246 For more information, see the
7247 <link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7248 section.
7249 </para>
7250 </glossdef>
7251 </glossentry>
7252
7253 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
7254 <info>
7255 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
7256 </info>
7257 <glossdef>
7258 <para role="glossdeffirst">
7259<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7260 Path to additional licenses used during the build.
7261 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
7262 to define the directory that holds common license text used during the build.
7263 The <filename>LICENSE_PATH</filename> variable allows you to extend that
7264 location to other areas that have additional licenses:
7265 <literallayout class='monospaced'>
7266 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
7267 </literallayout>
7268 </para>
7269 </glossdef>
7270 </glossentry>
7271
7272 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
7273 <info>
7274 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7275 </info>
7276 <glossdef>
7277 <para role="glossdeffirst">
7278<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7279 Defines the kernel type to be used in assembling the
7280 configuration.
7281 The linux-yocto recipes define "standard", "tiny", and
7282 "preempt-rt" kernel types.
7283 See the
7284 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7285 section in the Yocto Project Linux Kernel Development
7286 Manual for more information on kernel types.
7287 </para>
7288
7289 <para>
7290 If you do not specify a
7291 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
7292 "standard".
7293 Together with
7294 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
7295 the <filename>LINUX_KERNEL_TYPE</filename> variable
7296 defines the search
7297 arguments used by the kernel tools to find the appropriate
7298 description within the kernel
7299 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
7300 with which to build out the sources and configuration.
7301 </para>
7302 </glossdef>
7303 </glossentry>
7304
7305 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
7306 <info>
7307 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."
7308 </info>
7309 <glossdef>
7310 <para role="glossdeffirst">
7311<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7312 The Linux version from <filename>kernel.org</filename>
7313 on which the Linux kernel image being built using the
7314 OpenEmbedded build system is based.
7315 You define this variable in the kernel recipe.
7316 For example, the <filename>linux-yocto-3.4.bb</filename>
7317 kernel recipe found in
7318 <filename>meta/recipes-kernel/linux</filename>
7319 defines the variables as follows:
7320 <literallayout class='monospaced'>
7321 LINUX_VERSION ?= "3.4.24"
7322 </literallayout>
7323 </para>
7324
7325 <para>
7326 The <filename>LINUX_VERSION</filename> variable is used to
7327 define <link linkend='var-PV'><filename>PV</filename></link>
7328 for the recipe:
7329 <literallayout class='monospaced'>
7330 PV = "${LINUX_VERSION}+git${SRCPV}"
7331 </literallayout>
7332 </para>
7333 </glossdef>
7334 </glossentry>
7335
7336 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
7337 <info>
7338 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."
7339 </info>
7340 <glossdef>
7341 <para role="glossdeffirst">
7342<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7343 A string extension compiled into the version
7344 string of the Linux kernel built with the OpenEmbedded
7345 build system.
7346 You define this variable in the kernel recipe.
7347 For example, the linux-yocto kernel recipes all define
7348 the variable as follows:
7349 <literallayout class='monospaced'>
7350 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
7351 </literallayout>
7352 </para>
7353
7354 <para>
7355 Defining this variable essentially sets the
7356 Linux kernel configuration item
7357 <filename>CONFIG_LOCALVERSION</filename>, which is visible
7358 through the <filename>uname</filename> command.
7359 Here is an example that shows the extension assuming it
7360 was set as previously shown:
7361 <literallayout class='monospaced'>
7362 $ uname -r
7363 3.7.0-rc8-custom
7364 </literallayout>
7365 </para>
7366 </glossdef>
7367 </glossentry>
7368
7369 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
7370 <info>
7371 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
7372 </info>
7373 <glossdef>
7374 <para role="glossdeffirst">
7375<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7376 Specifies the directory to which the OpenEmbedded build
7377 system writes overall log files.
7378 The default directory is <filename>${TMPDIR}/log</filename>.
7379 </para>
7380
7381 <para>
7382 For the directory containing logs specific to each task,
7383 see the <link linkend='var-T'><filename>T</filename></link>
7384 variable.
7385 </para>
7386 </glossdef>
7387 </glossentry>
7388
7389 </glossdiv>
7390
7391 <glossdiv id='var-glossary-m'><title>M</title>
7392
7393 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
7394 <info>
7395 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."
7396 </info>
7397 <glossdef>
7398 <para role="glossdeffirst">
7399<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7400 Specifies the target device for which the image is built.
7401 You define <filename>MACHINE</filename> in the
7402 <filename>local.conf</filename> file found in the
7403 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
7404 By default, <filename>MACHINE</filename> is set to
7405 "qemux86", which is an x86-based architecture machine to
7406 be emulated using QEMU:
7407 <literallayout class='monospaced'>
7408 MACHINE ?= "qemux86"
7409 </literallayout>
7410 </para>
7411
7412 <para>
7413 The variable corresponds to a machine configuration file of the
7414 same name, through which machine-specific configurations are set.
7415 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
7416 exists the corresponding <filename>qemux86.conf</filename> machine
7417 configuration file, which can be found in the
7418 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
7419 in <filename>meta/conf/machine</filename>.
7420 </para>
7421
7422 <para>
7423 The list of machines supported by the Yocto Project as
7424 shipped include the following:
7425 <literallayout class='monospaced'>
7426 MACHINE ?= "qemuarm"
7427 MACHINE ?= "qemuarm64"
7428 MACHINE ?= "qemumips"
7429 MACHINE ?= "qemumips64"
7430 MACHINE ?= "qemuppc"
7431 MACHINE ?= "qemux86"
7432 MACHINE ?= "qemux86-64"
7433 MACHINE ?= "genericx86"
7434 MACHINE ?= "genericx86-64"
7435 MACHINE ?= "beaglebone"
7436 MACHINE ?= "mpc8315e-rdb"
7437 MACHINE ?= "edgerouter"
7438 </literallayout>
7439 The last five are Yocto Project reference hardware boards, which
7440 are provided in the <filename>meta-yocto-bsp</filename> layer.
7441 <note>Adding additional Board Support Package (BSP) layers
7442 to your configuration adds new possible settings for
7443 <filename>MACHINE</filename>.
7444 </note>
7445 </para>
7446 </glossdef>
7447 </glossentry>
7448
7449 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
7450 <info>
7451 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
7452 </info>
7453 <glossdef>
7454 <para role="glossdeffirst">
7455<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7456 Specifies the name of the machine-specific architecture.
7457 This variable is set automatically from
7458 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7459 or
7460 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
7461 You should not hand-edit the
7462 <filename>MACHINE_ARCH</filename> variable.
7463 </para>
7464 </glossdef>
7465 </glossentry>
7466
7467 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
7468 <info>
7469 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."
7470 </info>
7471 <glossdef>
7472 <para role="glossdeffirst">
7473<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7474 A list of required machine-specific packages to install as part of
7475 the image being built.
7476 The build process depends on these packages being present.
7477 Furthermore, because this is a "machine essential" variable, the list of
7478 packages are essential for the machine to boot.
7479 The impact of this variable affects images based on
7480 <filename>packagegroup-core-boot</filename>,
7481 including the <filename>core-image-minimal</filename> image.
7482 </para>
7483
7484 <para>
7485 This variable is similar to the
7486 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
7487 variable with the exception that the image being built has a build
7488 dependency on the variable's list of packages.
7489 In other words, the image will not build if a file in this list is not found.
7490 </para>
7491
7492 <para>
7493 As an example, suppose the machine for which you are building requires
7494 <filename>example-init</filename> to be run during boot to initialize the hardware.
7495 In this case, you would use the following in the machine's
7496 <filename>.conf</filename> configuration file:
7497 <literallayout class='monospaced'>
7498 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
7499 </literallayout>
7500 </para>
7501 </glossdef>
7502 </glossentry>
7503
7504 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
7505 <info>
7506 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."
7507 </info>
7508 <glossdef>
7509 <para role="glossdeffirst">
7510<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7511 A list of recommended machine-specific packages to install as part of
7512 the image being built.
7513 The build process does not depend on these packages being present.
7514 However, because this is a "machine essential" variable, the list of
7515 packages are essential for the machine to boot.
7516 The impact of this variable affects images based on
7517 <filename>packagegroup-core-boot</filename>,
7518 including the <filename>core-image-minimal</filename> image.
7519 </para>
7520
7521 <para>
7522 This variable is similar to the
7523 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
7524 variable with the exception that the image being built does not have a build
7525 dependency on the variable's list of packages.
7526 In other words, the image will still build if a package in this list is not found.
7527 Typically, this variable is used to handle essential kernel modules, whose
7528 functionality may be selected to be built into the kernel rather than as a module,
7529 in which case a package will not be produced.
7530 </para>
7531
7532 <para>
7533 Consider an example where you have a custom kernel where a specific touchscreen
7534 driver is required for the machine to be usable.
7535 However, the driver can be built as a module or
7536 into the kernel depending on the kernel configuration.
7537 If the driver is built as a module, you want it to be installed.
7538 But, when the driver is built into the kernel, you still want the
7539 build to succeed.
7540 This variable sets up a "recommends" relationship so that in the latter case,
7541 the build will not fail due to the missing package.
7542 To accomplish this, assuming the package for the module was called
7543 <filename>kernel-module-ab123</filename>, you would use the
7544 following in the machine's <filename>.conf</filename> configuration
7545 file:
7546 <literallayout class='monospaced'>
7547 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
7548 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007549 <note>
7550 In this example, the
7551 <filename>kernel-module-ab123</filename> recipe
7552 needs to explicitly set its
7553 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
7554 variable to ensure that BitBake does not use the
7555 kernel recipe's
7556 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
7557 variable to satisfy the dependency.
7558 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007559 </para>
7560
7561 <para>
7562 Some examples of these machine essentials are flash, screen, keyboard, mouse,
7563 or touchscreen drivers (depending on the machine).
7564 </para>
7565 </glossdef>
7566 </glossentry>
7567
7568 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
7569 <info>
7570 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."
7571 </info>
7572 <glossdef>
7573 <para role="glossdeffirst">
7574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7575 A list of machine-specific packages to install as part of the
7576 image being built that are not essential for the machine to boot.
7577 However, the build process for more fully-featured images
7578 depends on the packages being present.
7579 </para>
7580
7581 <para>
7582 This variable affects all images based on
7583 <filename>packagegroup-base</filename>, which does not include the
7584 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
7585 images.
7586 </para>
7587
7588 <para>
7589 The variable is similar to the
7590 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
7591 variable with the exception that the image being built has a build
7592 dependency on the variable's list of packages.
7593 In other words, the image will not build if a file in this list is not found.
7594 </para>
7595
7596 <para>
7597 An example is a machine that has WiFi capability but is not
7598 essential for the machine to boot the image.
7599 However, if you are building a more fully-featured image, you want to enable
7600 the WiFi.
7601 The package containing the firmware for the WiFi hardware is always
7602 expected to exist, so it is acceptable for the build process to depend upon
7603 finding the package.
7604 In this case, assuming the package for the firmware was called
7605 <filename>wifidriver-firmware</filename>, you would use the following in the
7606 <filename>.conf</filename> file for the machine:
7607 <literallayout class='monospaced'>
7608 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
7609 </literallayout>
7610 </para>
7611 </glossdef>
7612 </glossentry>
7613
7614 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
7615 <info>
7616 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."
7617 </info>
7618 <glossdef>
7619 <para role="glossdeffirst">
7620<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7621 A list of machine-specific packages to install as part of the
7622 image being built that are not essential for booting the machine.
7623 The image being built has no build dependency on this list of packages.
7624 </para>
7625
7626 <para>
7627 This variable affects only images based on
7628 <filename>packagegroup-base</filename>, which does not include the
7629 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
7630 images.
7631 </para>
7632
7633 <para>
7634 This variable is similar to the
7635 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
7636 variable with the exception that the image being built does not have a build
7637 dependency on the variable's list of packages.
7638 In other words, the image will build if a file in this list is not found.
7639 </para>
7640
7641 <para>
7642 An example is a machine that has WiFi capability but is not essential
7643 For the machine to boot the image.
7644 However, if you are building a more fully-featured image, you want to enable
7645 WiFi.
7646 In this case, the package containing the WiFi kernel module will not be produced
7647 if the WiFi driver is built into the kernel, in which case you still want the
7648 build to succeed instead of failing as a result of the package not being found.
7649 To accomplish this, assuming the package for the module was called
7650 <filename>kernel-module-examplewifi</filename>, you would use the
7651 following in the <filename>.conf</filename> file for the machine:
7652 <literallayout class='monospaced'>
7653 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
7654 </literallayout>
7655 </para>
7656 </glossdef>
7657 </glossentry>
7658
7659 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
7660 <info>
7661 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
7662 </info>
7663 <glossdef>
7664 <para role="glossdeffirst">
7665<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7666 Specifies the list of hardware features the
7667 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
7668 of supporting.
7669 For related information on enabling features, see the
7670 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
7671 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
7672 and
7673 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
7674 variables.
7675 </para>
7676
7677 <para>
7678 For a list of hardware features supported by the Yocto
7679 Project as shipped, see the
7680 "<link linkend='ref-features-machine'>Machine Features</link>"
7681 section.
7682 </para>
7683 </glossdef>
7684 </glossentry>
7685
7686 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
7687 <info>
7688 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."
7689 </info>
7690 <glossdef>
7691 <para role="glossdeffirst">
7692<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7693 Features to be added to
7694 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
7695 if not also present in
7696 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
7697 </para>
7698
7699 <para>
7700 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
7701 It is not intended to be user-configurable.
7702 It is best to just reference the variable to see which machine features are
7703 being backfilled for all machine configurations.
7704 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
7705 more information.
7706 </para>
7707 </glossdef>
7708 </glossentry>
7709
7710 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
7711 <info>
7712 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
7713 </info>
7714 <glossdef>
7715 <para role="glossdeffirst">
7716<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7717 Features from
7718 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
7719 that should not be backfilled (i.e. added to
7720 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
7721 during the build.
7722 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
7723 more information.
7724 </para>
7725 </glossdef>
7726 </glossentry>
7727
7728 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
7729 <info>
7730 MACHINEOVERRIDES[doc] = "Lists overrides specific to the current machine. By default, this list includes the value of MACHINE."
7731 </info>
7732 <glossdef>
7733 <para role="glossdeffirst">
7734<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7735 Lists overrides specific to the current machine.
7736 By default, this list includes the value
7737 of <filename><link linkend='var-MACHINE'>MACHINE</link></filename>.
7738 You can extend the list to apply variable overrides for
7739 classes of machines.
7740 For example, all QEMU emulated machines (e.g. qemuarm,
7741 qemux86, and so forth) include a common file named
7742 <filename>meta/conf/machine/include/qemu.inc</filename>
7743 that prepends <filename>MACHINEOVERRIDES</filename> with
7744 the following variable override:
7745 <literallayout class='monospaced'>
7746 MACHINEOVERRIDES =. "qemuall:"
7747 </literallayout>
7748 </para>
7749
7750 <para>
7751 Applying an override like <filename>qemuall</filename>
7752 affects all QEMU emulated machines elsewhere.
7753 Here is an example from the
7754 <filename>connman-conf</filename> recipe:
7755 <literallayout class='monospaced'>
7756 SRC_URI_append_qemuall = "file://wired.config \
7757 file://wired-setup \
7758 "
7759 </literallayout>
7760 </para>
7761 </glossdef>
7762 </glossentry>
7763
7764 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
7765 <info>
7766 MAINTAINER[doc] = "The email address of the distribution maintainer."
7767 </info>
7768 <glossdef>
7769 <para role="glossdeffirst">
7770<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7771 The email address of the distribution maintainer.
7772 </para>
7773 </glossdef>
7774 </glossentry>
7775
7776 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
7777 <info>
7778 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
7779 </info>
7780 <glossdef>
7781 <para role="glossdeffirst">
7782<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7783 Specifies additional paths from which the OpenEmbedded
7784 build system gets source code.
7785 When the build system searches for source code, it first
7786 tries the local download directory.
7787 If that location fails, the build system tries locations
7788 defined by
7789 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
7790 the upstream source, and then locations specified by
7791 <filename>MIRRORS</filename> in that order.
7792 </para>
7793
7794 <para>
7795 Assuming your distribution
7796 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
7797 is "poky", the default value for
7798 <filename>MIRRORS</filename> is defined in the
7799 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007800 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007801 </para>
7802 </glossdef>
7803 </glossentry>
7804
7805 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
7806 <info>
7807 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."
7808 </info>
7809 <glossdef>
7810 <para role="glossdeffirst">
7811<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7812 Specifies a prefix has been added to
7813 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
7814 of a recipe or package, such as a Multilib version.
7815 The variable is used in places where the prefix needs to be
7816 added to or removed from a the name (e.g. the
7817 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
7818 <filename>MLPREFIX</filename> gets set when a prefix has been
7819 added to <filename>PN</filename>.
7820 </para>
7821 </glossdef>
7822 </glossentry>
7823
7824 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
7825 <info>
7826 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."
7827 </info>
7828 <glossdef>
7829 <para role="glossdeffirst">
7830<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7831 This variable has been replaced by the
7832 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
7833 You should replace all occurrences of
7834 <filename>module_autoload</filename> with additions to
7835 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
7836 <literallayout class='monospaced'>
7837 module_autoload_rfcomm = "rfcomm"
7838 </literallayout>
7839 </para>
7840
7841 <para>
7842 should now be replaced with:
7843 <literallayout class='monospaced'>
7844 KERNEL_MODULE_AUTOLOAD += "rfcomm"
7845 </literallayout>
7846 See the
7847 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7848 variable for more information.
7849 </para>
7850 </glossdef>
7851 </glossentry>
7852
7853 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
7854 <info>
7855 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
7856 </info>
7857 <glossdef>
7858 <para role="glossdeffirst">
7859<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7860 Specifies
7861 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
7862 syntax lines for inclusion in the
7863 <filename>/etc/modprobe.d/modname.conf</filename> file.
7864 </para>
7865
7866 <para>
7867 You can use this variable anywhere that it can be
7868 recognized by the kernel recipe or out-of-tree kernel
7869 module recipe (e.g. a machine configuration file, a
7870 distribution configuration file, an append file for the
7871 recipe, or the recipe itself).
7872 If you use this variable, you must also be sure to list
7873 the module name in the
7874 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7875 variable.
7876 </para>
7877
7878 <para>
7879 Here is the general syntax:
7880 <literallayout class='monospaced'>
7881 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
7882 </literallayout>
7883 You must use the kernel module name override.
7884 </para>
7885
7886 <para>
7887 Run <filename>man modprobe.d</filename> in the shell to
7888 find out more information on the exact syntax
7889 you want to provide with <filename>module_conf</filename>.
7890 </para>
7891
7892 <para>
7893 Including <filename>module_conf</filename> causes the
7894 OpenEmbedded build system to populate the
7895 <filename>/etc/modprobe.d/modname.conf</filename>
7896 file with <filename>modprobe.d</filename> syntax lines.
7897 Here is an example that adds the options
7898 <filename>arg1</filename> and <filename>arg2</filename>
7899 to a module named <filename>mymodule</filename>:
7900 <literallayout class='monospaced'>
7901 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
7902 </literallayout>
7903 </para>
7904
7905 <para>
7906 For information on how to specify kernel modules to
7907 auto-load on boot, see the
7908 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
7909 variable.
7910 </para>
7911 </glossdef>
7912 </glossentry>
7913
7914 <glossentry id='var-MODULE_IMAGE_BASE_NAME'><glossterm>MODULE_IMAGE_BASE_NAME</glossterm>
7915 <info>
7916 MODULE_IMAGE_BASE_NAME[doc] = "The base name of the kernel modules tarball."
7917 </info>
7918 <glossdef>
7919 <para role="glossdeffirst">
7920<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7921 The base name of the kernel modules tarball.
7922 This variable is set in the
7923 <link linkend='ref-classes-kernel'>kernel</link> class
7924 as follows:
7925 <literallayout class='monospaced'>
7926 MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
7927 </literallayout>
7928 </para>
7929
7930 <para>
7931 See the
7932 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7933 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7934 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7935 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
7936 and
7937 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
7938 variables for additional information.
7939 </para>
7940 </glossdef>
7941 </glossentry>
7942
7943 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
7944 <info>
7945 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."
7946 </info>
7947 <glossdef>
7948 <para role="glossdeffirst">
7949<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7950 Controls creation of the <filename>modules-*.tgz</filename>
7951 file.
7952 Set this variable to "0" to disable creation of this
7953 file, which contains all of the kernel modules resulting
7954 from a kernel build.
7955 </para>
7956 </glossdef>
7957 </glossentry>
7958
7959 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
7960 <info>
7961 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
7962 </info>
7963 <glossdef>
7964 <para role="glossdeffirst">
7965<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7966 Separates files for different machines such that you can build
7967 for multiple target machines using the same output directories.
7968 See the <link linkend='var-STAMP'><filename>STAMP</filename></link> variable
7969 for an example.
7970 </para>
7971 </glossdef>
7972 </glossentry>
7973
7974 </glossdiv>
7975
7976 <glossdiv id='var-glossary-n'><title>N</title>
7977
7978 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
7979 <info>
7980 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
7981 </info>
7982 <glossdef>
7983 <para role="glossdeffirst">
7984<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7985 A string identifying the host distribution.
7986 Strings consist of the host distributor ID
7987 followed by the release, as reported by the
7988 <filename>lsb_release</filename> tool
7989 or as read from <filename>/etc/lsb-release</filename>.
7990 For example, when running a build on Ubuntu 12.10, the value
7991 is "Ubuntu-12.10".
7992 If this information is unable to be determined, the value
7993 resolves to "Unknown".
7994 </para>
7995
7996 <para>
7997 This variable is used by default to isolate native shared
7998 state packages for different distributions (e.g. to avoid
7999 problems with <filename>glibc</filename> version
8000 incompatibilities).
8001 Additionally, the variable is checked against
8002 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
8003 if that variable is set.
8004 </para>
8005 </glossdef>
8006 </glossentry>
8007
8008 <glossentry id='var-NM'><glossterm>NM</glossterm>
8009 <info>
8010 NM[doc] = "Minimal command and arguments to run 'nm'."
8011 </info>
8012 <glossdef>
8013 <para role="glossdeffirst">
8014<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8015 The minimal command and arguments to run
8016 <filename>nm</filename>.
8017 </para>
8018 </glossdef>
8019 </glossentry>
8020
8021 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
8022 <info>
8023 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."
8024 </info>
8025 <glossdef>
8026 <para role="glossdeffirst">
8027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8028 Prevents installation of all "recommended-only" packages.
8029 Recommended-only packages are packages installed only
8030 through the
8031 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
8032 variable).
8033 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
8034 to "1" turns this feature on:
8035 <literallayout class='monospaced'>
8036 NO_RECOMMENDATIONS = "1"
8037 </literallayout>
8038 </para>
8039
8040 <para>
8041 You can set this variable globally in your
8042 <filename>local.conf</filename> file or you can attach it to
8043 a specific image recipe by using the recipe name override:
8044 <literallayout class='monospaced'>
8045 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
8046 </literallayout>
8047 </para>
8048
8049 <para>
8050 It is important to realize that if you choose to not install
8051 packages using this variable and some other packages are
8052 dependent on them (i.e. listed in a recipe's
8053 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
8054 variable), the OpenEmbedded build system ignores your
8055 request and will install the packages to avoid dependency
8056 errors.
8057 <note>
8058 Some recommended packages might be required for certain
8059 system functionality, such as kernel modules.
8060 It is up to you to add packages with the
8061 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
8062 variable.
8063 </note>
8064 </para>
8065
8066 <para>
8067 Support for this variable exists only when using the
8068 IPK and RPM packaging backend.
8069 Support does not exist for DEB.
8070 </para>
8071
8072 <para>
8073 See the
8074 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
8075 and the
8076 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
8077 variables for related information.
8078 </para>
8079 </glossdef>
8080 </glossentry>
8081
8082 <glossentry id='var-NOHDD'><glossterm>NOHDD</glossterm>
8083 <info>
8084 NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
8085 </info>
8086 <glossdef>
8087 <para role="glossdeffirst">
8088<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8089 Causes the OpenEmbedded build system to skip building the
8090 <filename>.hddimg</filename> image.
8091 The <filename>NOHDD</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008092 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008093 class.
8094 Set the variable to "1" to prevent the
8095 <filename>.hddimg</filename> image from being built.
8096 </para>
8097 </glossdef>
8098 </glossentry>
8099
8100 <glossentry id='var-NOISO'><glossterm>NOISO</glossterm>
8101 <info>
8102 NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
8103 </info>
8104 <glossdef>
8105 <para role="glossdeffirst">
8106<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8107 Causes the OpenEmbedded build system to skip building the
8108 ISO image.
8109 The <filename>NOISO</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008110 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008111 class.
8112 Set the variable to "1" to prevent the ISO image from
8113 being built.
8114 To enable building an ISO image, set the variable to "0".
8115 </para>
8116 </glossdef>
8117 </glossentry>
8118
8119 </glossdiv>
8120
8121 <glossdiv id='var-glossary-o'><title>O</title>
8122
8123 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
8124 <info>
8125 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
8126 </info>
8127 <glossdef>
8128 <para role="glossdeffirst">
8129<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8130 The minimal command and arguments to run
8131 <filename>objcopy</filename>.
8132 </para>
8133 </glossdef>
8134 </glossentry>
8135
8136 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
8137 <info>
8138 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
8139 </info>
8140 <glossdef>
8141 <para role="glossdeffirst">
8142<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8143 The minimal command and arguments to run
8144 <filename>objdump</filename>.
8145 </para>
8146 </glossdef>
8147 </glossentry>
8148
8149 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
8150 <info>
8151 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
8152 </info>
8153 <glossdef>
8154 <para role="glossdeffirst">
8155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8156 When inheriting the
8157 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
8158 class, this variable
8159 specifies additional arguments passed to the "sed" command.
8160 The sed command alters any paths in configuration scripts
8161 that have been set up during compilation.
8162 Inheriting this class results in all paths in these scripts
8163 being changed to point into the
8164 <filename>sysroots/</filename> directory so that all builds
8165 that use the script will use the correct directories
8166 for the cross compiling layout.
8167 </para>
8168
8169 <para>
8170 See the <filename>meta/classes/binconfig.bbclass</filename>
8171 in the
8172 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
8173 for details on how this class applies these additional
8174 sed command arguments.
8175 For general information on the
8176 <filename>binconfig.bbclass</filename> class, see the
8177 "<link linkend='ref-classes-binconfig'>Binary Configuration Scripts - <filename>binconfig.bbclass</filename></link>"
8178 section.
8179 </para>
8180 </glossdef>
8181 </glossentry>
8182
8183 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
8184 <info>
8185 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."
8186 </info>
8187 <glossdef>
8188 <para role="glossdeffirst">
8189<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8190 An internal variable used to tell the OpenEmbedded build
8191 system what Python modules to import for every Python
8192 function run by the system.
8193 </para>
8194
8195 <note>
8196 Do not set this variable.
8197 It is for internal use only.
8198 </note>
8199 </glossdef>
8200 </glossentry>
8201
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008202 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
8203 <info>
8204 OE_INIT_ENV_SCRIPT[doc] = "The name of the build environment setup script for the purposes of setting up the environment within the extensible SDK."
8205 </info>
8206 <glossdef>
8207 <para role="glossdeffirst">
8208<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8209 The name of the build environment setup script for the
8210 purposes of setting up the environment within the
8211 extensible SDK.
8212 The default value is "oe-init-build-env".
8213 </para>
8214
8215 <para>
8216 If you use a custom script to set up your build
8217 environment, set the
8218 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
8219 name.
8220 </para>
8221 </glossdef>
8222 </glossentry>
8223
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008224 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
8225 <info>
8226 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
8227 </info>
8228 <glossdef>
8229 <para role="glossdeffirst">
8230<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8231 Controls how the OpenEmbedded build system spawns
8232 interactive terminals on the host development system
8233 (e.g. using the BitBake command with the
8234 <filename>-c devshell</filename> command-line option).
8235 For more information, see the
8236 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
8237 in the Yocto Project Development Manual.
8238 </para>
8239
8240 <para>
8241 You can use the following values for the
8242 <filename>OE_TERMINAL</filename> variable:
8243 <literallayout class='monospaced'>
8244 auto
8245 gnome
8246 xfce
8247 rxvt
8248 screen
8249 konsole
8250 none
8251 </literallayout>
8252 </para>
8253 </glossdef>
8254 </glossentry>
8255
8256 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
8257 <info>
8258 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
8259 </info>
8260 <glossdef>
8261 <para role="glossdeffirst">
8262<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8263 The directory from which the top-level build environment
8264 setup script is sourced.
8265 The Yocto Project makes two top-level build environment
8266 setup scripts available:
8267 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
8268 and
8269 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>.
8270 When you run one of these scripts, the
8271 <filename>OEROOT</filename> variable resolves to the
8272 directory that contains the script.
8273 </para>
8274
8275 <para>
8276 For additional information on how this variable is used,
8277 see the initialization scripts.
8278 </para>
8279 </glossdef>
8280 </glossentry>
8281
8282 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
8283 <info>
8284 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
8285 </info>
8286 <glossdef>
8287 <para role="glossdeffirst">
8288<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8289 Declares the oldest version of the Linux kernel that the
8290 produced binaries must support.
8291 This variable is passed into the build of the Embedded
8292 GNU C Library (<filename>glibc</filename>).
8293 </para>
8294
8295 <para>
8296 The default for this variable comes from the
8297 <filename>meta/conf/bitbake.conf</filename> configuration
8298 file.
8299 You can override this default by setting the variable
8300 in a custom distribution configuration file.
8301 </para>
8302 </glossdef>
8303 </glossentry>
8304
8305 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
8306 <info>
8307 OVERRIDES[doc] = "BitBake uses OVERRIDES to control what variables are overridden after BitBake parses recipes and configuration files."
8308 </info>
8309 <glossdef>
8310 <para role="glossdeffirst">
8311<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8312 BitBake uses <filename>OVERRIDES</filename> to control
8313 what variables are overridden after BitBake parses
8314 recipes and configuration files.
8315 You can find more information on how overrides are handled
8316 in the
8317 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
8318 section of the BitBake User Manual.
8319 </para>
8320 </glossdef>
8321 </glossentry>
8322 </glossdiv>
8323
8324 <glossdiv id='var-glossary-p'><title>P</title>
8325
8326 <glossentry id='var-P'><glossterm>P</glossterm>
8327 <info>
8328 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
8329 </info>
8330 <glossdef>
8331 <para role="glossdeffirst">
8332<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8333 The recipe name and version.
8334 <filename>P</filename> is comprised of the following:
8335 <literallayout class='monospaced'>
8336 ${PN}-${PV}
8337 </literallayout>
8338 </para>
8339 </glossdef>
8340 </glossentry>
8341
8342 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
8343 <info>
8344 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
8345 </info>
8346 <glossdef>
8347 <para role="glossdeffirst">
8348<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8349 The architecture of the resulting package or packages.
8350 </para>
8351
8352 <para>
8353 By default, the value of this variable is set to
8354 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
8355 when building for the target,
8356 <filename>BUILD_ARCH</filename> when building for the
8357 build host and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
8358 for the SDK.
8359 However, if your recipe's output packages are built
8360 specific to the target machine rather than general for
8361 the architecture of the machine, you should set
8362 <filename>PACKAGE_ARCH</filename> to the value of
8363 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
8364 in the recipe as follows:
8365 <literallayout class='monospaced'>
8366 PACKAGE_ARCH = "${MACHINE_ARCH}"
8367 </literallayout>
8368 </para>
8369 </glossdef>
8370 </glossentry>
8371
8372 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
8373 <info>
8374 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
8375 </info>
8376 <glossdef>
8377 <para role="glossdeffirst">
8378<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8379 Specifies a list of architectures compatible with
8380 the target machine.
8381 This variable is set automatically and should not
8382 normally be hand-edited.
8383 Entries are separated using spaces and listed in order
8384 of priority.
8385 The default value for
8386 <filename>PACKAGE_ARCHS</filename> is "all any noarch
8387 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
8388 </para>
8389 </glossdef>
8390 </glossentry>
8391
8392 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
8393 <info>
8394 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."
8395 </info>
8396 <glossdef>
8397 <para role="glossdeffirst">
8398<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8399 Enables easily adding packages to
8400 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
8401 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
8402 so that those added packages can pick up files that would normally be
8403 included in the default package.
8404 </para>
8405 </glossdef>
8406 </glossentry>
8407
8408 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
8409 <info>
8410 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."
8411 </info>
8412 <glossdef>
8413 <para role="glossdeffirst">
8414<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8415 This variable, which is set in the
8416 <filename>local.conf</filename> configuration file found in
8417 the <filename>conf</filename> folder of the
8418 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
8419 specifies the package manager the OpenEmbedded build system
8420 uses when packaging data.
8421 </para>
8422
8423 <para>
8424 You can provide one or more of the following arguments for
8425 the variable:
8426 <literallayout class='monospaced'>
8427 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
8428 </literallayout>
8429 <note><title>Warning</title>
8430 While it is a legal option, the
8431 <filename>package_tar</filename> class is broken
8432 and is not supported.
8433 It is recommended that you do not use it.
8434 </note>
8435 The build system uses only the first argument in the list
8436 as the package manager when creating your image or SDK.
8437 However, packages will be created using any additional
8438 packaging classes you specify.
8439 For example, if you use the following in your
8440 <filename>local.conf</filename> file:
8441 <literallayout class='monospaced'>
8442 PACKAGE_CLASSES ?= "package_ipk"
8443 </literallayout>
8444 The OpenEmbedded build system uses the IPK package manager
8445 to create your image or SDK.
8446 </para>
8447
8448 <para>
8449 For information on packaging and build performance effects
8450 as a result of the package manager in use, see the
8451 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
8452 section.
8453 </para>
8454 </glossdef>
8455 </glossentry>
8456
8457 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
8458 <info>
8459 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)."
8460 </info>
8461 <glossdef>
8462 <para role="glossdeffirst">
8463<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8464 Determines how to split up the binary and debug information
8465 when creating <filename>*-dbg</filename> packages to be
8466 used with the GNU Project Debugger (GDB).
8467 </para>
8468
8469 <para>
8470 With the
8471 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
8472 you can control where debug information, which can include
8473 or exclude source files, is stored:
8474 <itemizedlist>
8475 <listitem><para>
8476 ".debug": Debug symbol files are placed next
8477 to the binary in a <filename>.debug</filename>
8478 directory on the target.
8479 For example, if a binary is installed into
8480 <filename>/bin</filename>, the corresponding debug
8481 symbol files are installed in
8482 <filename>/bin/.debug</filename>.
8483 Source files are placed in
8484 <filename>/usr/src/debug</filename>.
8485 This is the default behavior.
8486 </para></listitem>
8487 <listitem><para>
8488 "debug-file-directory": Debug symbol files are
8489 placed under <filename>/usr/lib/debug</filename>
8490 on the target, and separated by the path from where
8491 the binary is installed.
8492 For example, if a binary is installed in
8493 <filename>/bin</filename>, the corresponding debug
8494 symbols are installed in
8495 <filename>/usr/lib/debug/bin</filename>.
8496 Source files are placed in
8497 <filename>/usr/src/debug</filename>.
8498 </para></listitem>
8499 <listitem><para>
8500 "debug-without-src": The same behavior as
8501 ".debug" previously described with the exception
8502 that no source files are installed.
8503 </para></listitem>.
8504 </itemizedlist>
8505 </para>
8506
8507 <para>
8508 You can find out more about debugging using GDB by reading
8509 the
8510 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-gdb-remotedebug'>Debugging With the GNU Project Debugger (GDB) Remotely</ulink>"
8511 section in the Yocto Project Development Manual.
8512 </para>
8513 </glossdef>
8514 </glossentry>
8515
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008516 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
8517 <info>
8518 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
8519 </info>
8520 <glossdef>
8521 <para role="glossdeffirst">
8522<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8523 Prevents specific packages from being installed when
8524 you are installing complementary packages.
8525 </para>
8526
8527 <para>
8528 You might find that you want to prevent installing certain
8529 packages when you are installing complementary packages.
8530 For example, if you are using
8531 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8532 to install <filename>dev-pkgs</filename>, you might not want
8533 to install all packages from a particular multilib.
8534 If you find yourself in this situation, you can use the
8535 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
8536 to specify regular expressions to match the packages you
8537 want to exclude.
8538 </para>
8539 </glossdef>
8540 </glossentry>
8541
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008542 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
8543 <info>
8544 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
8545 </info>
8546 <glossdef>
8547 <para role="glossdeffirst">
8548<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8549 Lists packages that should not be installed into an image.
8550 For example:
8551 <literallayout class='monospaced'>
8552 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
8553 </literallayout>
8554 </para>
8555
8556 <para>
8557 You can set this variable globally in your
8558 <filename>local.conf</filename> file or you can attach it to
8559 a specific image recipe by using the recipe name override:
8560 <literallayout class='monospaced'>
8561 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
8562 </literallayout>
8563 </para>
8564
8565 <para>
8566 If you choose to not install
8567 a package using this variable and some other package is
8568 dependent on it (i.e. listed in a recipe's
8569 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
8570 variable), the OpenEmbedded build system generates a fatal
8571 installation error.
8572 Because the build system halts the process with a fatal
8573 error, you can use the variable with an iterative
8574 development process to remove specific components from a
8575 system.
8576 </para>
8577
8578 <para>
8579 Support for this variable exists only when using the
8580 IPK and RPM packaging backend.
8581 Support does not exist for DEB.
8582 </para>
8583
8584 <para>
8585 See the
8586 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
8587 and the
8588 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
8589 variables for related information.
8590 </para>
8591 </glossdef>
8592 </glossentry>
8593
8594 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
8595 <info>
8596 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."
8597 </info>
8598 <glossdef>
8599 <para role="glossdeffirst">
8600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8601 Specifies the list of architectures compatible with the device CPU.
8602 This variable is useful when you build for several different devices that use
8603 miscellaneous processors such as XScale and ARM926-EJS.
8604 </para>
8605 </glossdef>
8606 </glossentry>
8607
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008608 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
8609 <info>
8610 PACKAGE_FEED_ARCHS[doc] = "Specifies user-defined package architectures when constructing package feed URIs."
8611 </info>
8612 <glossdef>
8613 <para role="glossdeffirst">
8614<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8615 Specifies the package architectures used as part of the
8616 package feed URIs during the build.
8617 The <filename>PACKAGE_FEED_ARCHS</filename> variable is
8618 appended to the final package feed URI, which is constructed
8619 using the
8620 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
8621 and
8622 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
8623 variables.
8624 </para>
8625
8626 <para>
8627 Consider the following example where the
8628 <filename>PACKAGE_FEED_URIS</filename>,
8629 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
8630 <filename>PACKAGE_FEED_ARCHS</filename> variables are
8631 defined in your <filename>local.conf</filename> file:
8632 <literallayout class='monospaced'>
8633 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
8634 https://example.com/packagerepos/updates"
8635 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
8636 PACKAGE_FEED_ARCHS = "all core2-64"
8637 </literallayout>
8638 Given these settings, the resulting package feeds are
8639 as follows:
8640 <literallayout class='monospaced'>
8641 https://example.com/packagerepos/release/rpm/all
8642 https://example.com/packagerepos/release/rpm/core2-64
8643 https://example.com/packagerepos/release/rpm-dev/all
8644 https://example.com/packagerepos/release/rpm-dev/core2-64
8645 https://example.com/packagerepos/updates/rpm/all
8646 https://example.com/packagerepos/updates/rpm/core2-64
8647 https://example.com/packagerepos/updates/rpm-dev/all
8648 https://example.com/packagerepos/updates/rpm-dev/core2-64
8649 </literallayout>
8650 </para>
8651 </glossdef>
8652 </glossentry>
8653
8654 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
8655 <info>
8656 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
8657 </info>
8658 <glossdef>
8659 <para role="glossdeffirst">
8660<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8661 Specifies the base path used when constructing package feed
8662 URIs.
8663 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
8664 makes up the middle portion of a package feed URI used
8665 by the OpenEmbedded build system.
8666 The base path lies between the
8667 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</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
8701 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
8702 <info>
8703 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
8704 </info>
8705 <glossdef>
8706 <para role="glossdeffirst">
8707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8708 Specifies the front portion of the package feed URI
8709 used by the OpenEmbedded build system.
8710 Each final package feed URI is comprised of
8711 <filename>PACKAGE_FEED_URIS</filename>,
8712 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
8713 and
8714 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
8715 variables.
8716 </para>
8717
8718 <para>
8719 Consider the following example where the
8720 <filename>PACKAGE_FEED_URIS</filename>,
8721 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
8722 <filename>PACKAGE_FEED_ARCHS</filename> variables are
8723 defined in your <filename>local.conf</filename> file:
8724 <literallayout class='monospaced'>
8725 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
8726 https://example.com/packagerepos/updates"
8727 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
8728 PACKAGE_FEED_ARCHS = "all core2-64"
8729 </literallayout>
8730 Given these settings, the resulting package feeds are
8731 as follows:
8732 <literallayout class='monospaced'>
8733 https://example.com/packagerepos/release/rpm/all
8734 https://example.com/packagerepos/release/rpm/core2-64
8735 https://example.com/packagerepos/release/rpm-dev/all
8736 https://example.com/packagerepos/release/rpm-dev/core2-64
8737 https://example.com/packagerepos/updates/rpm/all
8738 https://example.com/packagerepos/updates/rpm/core2-64
8739 https://example.com/packagerepos/updates/rpm-dev/all
8740 https://example.com/packagerepos/updates/rpm-dev/core2-64
8741 </literallayout>
8742 </para>
8743 </glossdef>
8744 </glossentry>
8745
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008746 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
8747 <info>
8748 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
8749 </info>
8750 <glossdef>
8751 <para role="glossdeffirst">
8752<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8753 The <filename>PACKAGE_GROUP</filename> variable has been
8754 renamed to
8755 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
8756 See the variable description for
8757 <filename>FEATURE_PACKAGES</filename> for information.
8758 </para>
8759
8760 <para>
8761 If if you use the <filename>PACKAGE_GROUP</filename>
8762 variable, the OpenEmbedded build system issues a warning
8763 message.
8764 </para>
8765 </glossdef>
8766 </glossentry>
8767
8768 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
8769 <info>
8770 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."
8771 </info>
8772 <glossdef>
8773 <para role="glossdeffirst">
8774<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8775 The final list of packages passed to the package manager
8776 for installation into the image.
8777 </para>
8778
8779 <para>
8780 Because the package manager controls actual installation
8781 of all packages, the list of packages passed using
8782 <filename>PACKAGE_INSTALL</filename> is not the final list
8783 of packages that are actually installed.
8784 This variable is internal to the image construction
8785 code.
8786 Consequently, in general, you should use the
8787 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
8788 variable to specify packages for installation.
8789 The exception to this is when working with
8790 the
8791 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
8792 image.
8793 When working with an initial RAM disk (initramfs)
8794 image, use the <filename>PACKAGE_INSTALL</filename>
8795 variable.
8796 </para>
8797 </glossdef>
8798 </glossentry>
8799
8800 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
8801 <info>
8802 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."
8803 </info>
8804 <glossdef>
8805 <para role="glossdeffirst">
8806<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8807 Specifies a list of packages the OpenEmbedded build
8808 system attempts to install when creating an image.
8809 If a listed package fails to install, the build system
8810 does not generate an error.
8811 This variable is generally not user-defined.
8812 </para>
8813 </glossdef>
8814 </glossentry>
8815
8816 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
8817 <info>
8818 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."
8819 </info>
8820 <glossdef>
8821 <para role="glossdeffirst">
8822<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8823 Specifies a list of functions run to pre-process the
8824 <link linkend='var-PKGD'><filename>PKGD</filename></link>
8825 directory prior to splitting the files out to individual
8826 packages.
8827 </para>
8828 </glossdef>
8829 </glossentry>
8830
8831 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
8832 <info>
8833 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
8834 </info>
8835 <glossdef>
8836 <para role="glossdeffirst">
8837<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8838 This variable provides a means of enabling or disabling
8839 features of a recipe on a per-recipe basis.
8840 <filename>PACKAGECONFIG</filename> blocks are defined
8841 in recipes when you specify features and then arguments
8842 that define feature behaviors.
8843 Here is the basic block structure:
8844 <literallayout class='monospaced'>
8845 PACKAGECONFIG ??= "f1 f2 f3 ..."
8846 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1"
8847 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2"
8848 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3"
8849 </literallayout>
8850 </para>
8851
8852 <para>
8853 The <filename>PACKAGECONFIG</filename>
8854 variable itself specifies a space-separated list of the
8855 features to enable.
8856 Following the features, you can determine the behavior of
8857 each feature by providing up to four order-dependent
8858 arguments, which are separated by commas.
8859 You can omit any argument you like but must retain the
8860 separating commas.
8861 The order is important and specifies the following:
8862 <orderedlist>
8863 <listitem><para>Extra arguments
8864 that should be added to the configure script
8865 argument list
8866 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>)
8867 if the feature is enabled.</para></listitem>
8868 <listitem><para>Extra arguments
8869 that should be added to <filename>EXTRA_OECONF</filename>
8870 if the feature is disabled.
8871 </para></listitem>
8872 <listitem><para>Additional build dependencies
8873 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
8874 that should be added if the feature is enabled.
8875 </para></listitem>
8876 <listitem><para>Additional runtime dependencies
8877 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
8878 that should be added if the feature is enabled.
8879 </para></listitem>
8880 </orderedlist>
8881 </para>
8882
8883 <para>
8884 Consider the following
8885 <filename>PACKAGECONFIG</filename> block taken from the
8886 <filename>librsvg</filename> recipe.
8887 In this example the feature is <filename>croco</filename>,
8888 which has three arguments that determine the feature's
8889 behavior.
8890 <literallayout class='monospaced'>
8891 PACKAGECONFIG ??= "croco"
8892 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
8893 </literallayout>
8894 The <filename>--with-croco</filename> and
8895 <filename>libcroco</filename> arguments apply only if
8896 the feature is enabled.
8897 In this case, <filename>--with-croco</filename> is
8898 added to the configure script argument list and
8899 <filename>libcroco</filename> is added to
8900 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
8901 On the other hand, if the feature is disabled say through
8902 a <filename>.bbappend</filename> file in another layer, then
8903 the second argument <filename>--without-croco</filename> is
8904 added to the configure script rather than
8905 <filename>--with-croco</filename>.
8906 </para>
8907
8908 <para>
8909 The basic <filename>PACKAGECONFIG</filename> structure
8910 previously described holds true regardless of whether you
8911 are creating a block or changing a block.
8912 When creating a block, use the structure inside your
8913 recipe.
8914 </para>
8915
8916 <para>
8917 If you want to change an existing
8918 <filename>PACKAGECONFIG</filename> block, you can do so
8919 one of two ways:
8920 <itemizedlist>
8921 <listitem><para><emphasis>Append file:</emphasis>
8922 Create an append file named
8923 <replaceable>recipename</replaceable><filename>.bbappend</filename>
8924 in your layer and override the value of
8925 <filename>PACKAGECONFIG</filename>.
8926 You can either completely override the variable:
8927 <literallayout class='monospaced'>
8928 PACKAGECONFIG="f4 f5"
8929 </literallayout>
8930 Or, you can just append the variable:
8931 <literallayout class='monospaced'>
8932 PACKAGECONFIG_append = " f4"
8933 </literallayout></para></listitem>
8934 <listitem><para><emphasis>Configuration file:</emphasis>
8935 This method is identical to changing the block
8936 through an append file except you edit your
8937 <filename>local.conf</filename> or
8938 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
8939 As with append files previously described,
8940 you can either completely override the variable:
8941 <literallayout class='monospaced'>
8942 PACKAGECONFIG_pn-<replaceable>recipename</replaceable>="f4 f5"
8943 </literallayout>
8944 Or, you can just amend the variable:
8945 <literallayout class='monospaced'>
8946 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
8947 </literallayout></para></listitem>
8948 </itemizedlist>
8949 </para>
8950 </glossdef>
8951 </glossentry>
8952
8953 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
8954 <info>
8955 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
8956 </info>
8957 <glossdef>
8958 <para role="glossdeffirst">
8959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8960 For recipes inheriting the
8961 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
8962 class, setting
8963 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
8964 "1" specifies that the normal complementary packages
8965 (i.e. <filename>-dev</filename>,
8966 <filename>-dbg</filename>, and so forth) should not be
8967 automatically created by the
8968 <filename>packagegroup</filename> recipe, which is the
8969 default behavior.
8970 </para>
8971 </glossdef>
8972 </glossentry>
8973
8974 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
8975 <info>
8976 PACKAGES[doc] = "The list of packages to be created from the recipe."
8977 </info>
8978 <glossdef>
8979 <para role="glossdeffirst">
8980<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8981 The list of packages to be created from the recipe.
8982 The default value is the following:
8983 <literallayout class='monospaced'>
8984 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
8985 </literallayout>
8986 </para>
8987 </glossdef>
8988 </glossentry>
8989
8990 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
8991 <info>
8992 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
8993 </info>
8994 <glossdef>
8995 <para role="glossdeffirst">
8996<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8997 A promise that your recipe satisfies runtime dependencies
8998 for optional modules that are found in other recipes.
8999 <filename>PACKAGES_DYNAMIC</filename>
9000 does not actually satisfy the dependencies, it only states that
9001 they should be satisfied.
9002 For example, if a hard, runtime dependency
9003 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
9004 of another package is satisfied
9005 at build time through the <filename>PACKAGES_DYNAMIC</filename>
9006 variable, but a package with the module name is never actually
9007 produced, then the other package will be broken.
9008 Thus, if you attempt to include that package in an image,
9009 you will get a dependency failure from the packaging system
9010 during the
9011 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
9012 task.
9013 </para>
9014
9015 <para>
9016 Typically, if there is a chance that such a situation can
9017 occur and the package that is not created is valid
9018 without the dependency being satisfied, then you should use
9019 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9020 (a soft runtime dependency) instead of
9021 <filename>RDEPENDS</filename>.
9022 </para>
9023
9024 <para>
9025 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
9026 variable when you are splitting packages, see the
9027 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
9028 in the Yocto Project Development Manual.
9029 </para>
9030 </glossdef>
9031 </glossentry>
9032
9033 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
9034 <info>
9035 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
9036 </info>
9037 <glossdef>
9038 <para role="glossdeffirst">
9039<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9040 Specifies a list of functions run to perform additional
9041 splitting of files into individual packages.
9042 Recipes can either prepend to this variable or prepend
9043 to the <filename>populate_packages</filename> function
9044 in order to perform additional package splitting.
9045 In either case, the function should set
9046 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
9047 <link linkend='var-FILES'><filename>FILES</filename></link>,
9048 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9049 and other packaging variables appropriately in order to
9050 perform the desired splitting.
9051 </para>
9052 </glossdef>
9053 </glossentry>
9054
9055 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
9056 <info>
9057 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."
9058 </info>
9059 <glossdef>
9060 <para role="glossdeffirst">
9061<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9062 Extra options passed to the <filename>make</filename>
9063 command during the
9064 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
9065 task in order to specify parallel compilation on the local
9066 build host.
9067 This variable is usually in the form "-j <replaceable>x</replaceable>",
9068 where <replaceable>x</replaceable> represents the maximum
9069 number of parallel threads <filename>make</filename> can
9070 run.
9071 </para>
9072
9073 <para>
9074 By default, the OpenEmbedded build system automatically
9075 sets this variable to be equal to the number of cores the
9076 build system uses.
9077 <note>
9078 If the software being built experiences dependency
9079 issues during the <filename>do_compile</filename>
9080 task that result in race conditions, you can clear
9081 the <filename>PARALLEL_MAKE</filename> variable within
9082 the recipe as a workaround.
9083 For information on addressing race conditions, see the
9084 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
9085 section in the Yocto Project Development Manual.
9086 </note>
9087 For single socket systems (i.e. one CPU), you should not
9088 have to override this variable to gain optimal parallelism
9089 during builds.
9090 However, if you have very large systems that employ
9091 multiple physical CPUs, you might want to make sure the
9092 <filename>PARALLEL_MAKE</filename> variable is not
9093 set higher than "-j 20".
9094 </para>
9095
9096 <para>
9097 For more information on speeding up builds, see the
9098 "<link linkend='speeding-up-the-build'>Speeding Up the Build</link>"
9099 section.
9100 </para>
9101 </glossdef>
9102 </glossentry>
9103
9104 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
9105 <info>
9106 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
9107 </info>
9108 <glossdef>
9109 <para role="glossdeffirst">
9110<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9111 Extra options passed to the
9112 <filename>make install</filename> command during the
9113 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
9114 task in order to specify parallel installation.
9115 This variable defaults to the value of
9116 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
9117 <note>
9118 If the software being built experiences dependency
9119 issues during the
9120 <filename>do_install</filename> task that result in
9121 race conditions, you can clear the
9122 <filename>PARALLEL_MAKEINST</filename> variable within
9123 the recipe as a workaround.
9124 For information on addressing race conditions, see the
9125 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
9126 section in the Yocto Project Development Manual.
9127 </note>
9128 </para>
9129 </glossdef>
9130 </glossentry>
9131
9132 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
9133 <info>
9134 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
9135 </info>
9136 <glossdef>
9137 <para role="glossdeffirst">
9138<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9139 Determines the action to take when a patch fails.
9140 You can set this variable to one of two values: "noop" and
9141 "user".
9142 </para>
9143
9144 <para>
9145 The default value of "noop" causes the build to simply fail
9146 when the OpenEmbedded build system cannot successfully
9147 apply a patch.
9148 Setting the value to "user" causes the build system to
9149 launch a shell and places you in the right location so that
9150 you can manually resolve the conflicts.
9151 </para>
9152
9153 <para>
9154 Set this variable in your
9155 <filename>local.conf</filename> file.
9156 </para>
9157 </glossdef>
9158 </glossentry>
9159
9160 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
9161 <info>
9162 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
9163 </info>
9164 <glossdef>
9165 <para role="glossdeffirst">
9166<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9167 Specifies the utility used to apply patches for a recipe
9168 during the
9169 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
9170 task.
9171 You can specify one of three utilities: "patch", "quilt", or
9172 "git".
9173 The default utility used is "quilt" except for the
9174 quilt-native recipe itself.
9175 Because the quilt tool is not available at the
9176 time quilt-native is being patched, it uses "patch".
9177 </para>
9178
9179 <para>
9180 If you wish to use an alternative patching tool, set the
9181 variable in the recipe using one of the following:
9182 <literallayout class='monospaced'>
9183 PATCHTOOL = "patch"
9184 PATCHTOOL = "quilt"
9185 PATCHTOOL = "git"
9186 </literallayout>
9187 </para>
9188 </glossdef>
9189 </glossentry>
9190
9191 <glossentry id='var-PE'><glossterm>PE</glossterm>
9192 <info>
9193 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."
9194 </info>
9195 <glossdef>
9196 <para role="glossdeffirst">
9197<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9198 The epoch of the recipe.
9199 By default, this variable is unset.
9200 The variable is used to make upgrades possible when the
9201 versioning scheme changes in some backwards incompatible
9202 way.
9203 </para>
9204 </glossdef>
9205 </glossentry>
9206
9207 <glossentry id='var-PF'><glossterm>PF</glossterm>
9208 <info>
9209 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
9210 </info>
9211 <glossdef>
9212 <para role="glossdeffirst">
9213<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9214 Specifies the recipe or package name and includes all version and revision
9215 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
9216 <filename>bash-4.2-r1/</filename>).
9217 This variable is comprised of the following:
9218 <literallayout class='monospaced'>
9219 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
9220 </literallayout>
9221 </para>
9222 </glossdef>
9223 </glossentry>
9224
9225 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
9226 <info>
9227 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
9228 </info>
9229 <glossdef>
9230 <para role="glossdeffirst">
9231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9232 When inheriting the
9233 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
9234 class, this variable identifies packages that contain
9235 the pixbuf loaders used with
9236 <filename>gdk-pixbuf</filename>.
9237 By default, the <filename>pixbufcache</filename> class
9238 assumes that the loaders are in the recipe's main package
9239 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
9240 Use this variable if the loaders you need are in a package
9241 other than that main package.
9242 </para>
9243 </glossdef>
9244 </glossentry>
9245
9246 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
9247 <info>
9248 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."
9249 </info>
9250 <glossdef>
9251 <para role="glossdeffirst">
9252<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9253 The name of the resulting package created by the
9254 OpenEmbedded build system.
9255 <note>
9256 When using the <filename>PKG</filename> variable, you
9257 must use a package name override.
9258 </note>
9259 </para>
9260
9261 <para>
9262 For example, when the
9263 <link linkend='ref-classes-debian'><filename>debian</filename></link>
9264 class renames the output package, it does so by setting
9265 <filename>PKG_<replaceable>packagename</replaceable></filename>.
9266 </para>
9267 </glossdef>
9268 </glossentry>
9269
9270 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
9271 <info>
9272 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
9273 </info>
9274 <glossdef>
9275 <para role="glossdeffirst">
9276<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9277 The path to <filename>pkg-config</filename> files for the
9278 current build context.
9279 <filename>pkg-config</filename> reads this variable
9280 from the environment.
9281 </para>
9282 </glossdef>
9283 </glossentry>
9284
9285 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
9286 <info>
9287 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
9288 </info>
9289 <glossdef>
9290 <para role="glossdeffirst">
9291<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9292 Points to the destination directory for files to be
9293 packaged before they are split into individual packages.
9294 This directory defaults to the following:
9295 <literallayout class='monospaced'>
9296 ${WORKDIR}/package
9297 </literallayout>
9298 </para>
9299
9300 <para>
9301 Do not change this default.
9302 </para>
9303 </glossdef>
9304 </glossentry>
9305
9306 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
9307 <info>
9308 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
9309 </info>
9310 <glossdef>
9311 <para role="glossdeffirst">
9312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9313 Points to a shared, global-state directory that holds data
9314 generated during the packaging process.
9315 During the packaging process, the
9316 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
9317 task packages data for each recipe and installs it into
9318 this temporary, shared area.
9319 This directory defaults to the following:
9320 <literallayout class='monospaced'>
9321 ${STAGING_DIR_HOST}/pkgdata
9322 </literallayout>
9323 </para>
9324
9325 <para>
9326 Do not change this default.
9327 </para>
9328 </glossdef>
9329 </glossentry>
9330
9331 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
9332 <info>
9333 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
9334 </info>
9335 <glossdef>
9336 <para role="glossdeffirst">
9337<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9338 Points to the parent directory for files to be packaged
9339 after they have been split into individual packages.
9340 This directory defaults to the following:
9341 <literallayout class='monospaced'>
9342 ${WORKDIR}/packages-split
9343 </literallayout>
9344 </para>
9345
9346 <para>
9347 Under this directory, the build system creates
9348 directories for each package specified in
9349 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
9350 Do not change this default.
9351 </para>
9352 </glossdef>
9353 </glossentry>
9354
9355 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
9356 <info>
9357 PKGDESTWORK[doc] = "Points to a temporary work area used by the do_package task to write output from the do_packagedata task."
9358 </info>
9359 <glossdef>
9360 <para role="glossdeffirst">
9361<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9362 Points to a temporary work area used by the
9363 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
9364 task to write output from the
9365 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
9366 task.
9367 The <filename>PKGDESTWORK</filename> location defaults to
9368 the following:
9369 <literallayout class='monospaced'>
9370 ${WORKDIR}/pkgdata
9371 </literallayout>
9372 </para>
9373
9374 <para>
9375 The <filename>do_packagedata</filename> task then packages
9376 the data in the temporary work area and installs it into a
9377 shared directory pointed to by
9378 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>.
9379 </para>
9380
9381 <para>
9382 Do not change this default.
9383 </para>
9384 </glossdef>
9385 </glossentry>
9386
9387 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
9388 <info>
9389 PKGE[doc] = "The epoch of the output package built by the OpenEmbedded build system."
9390 </info>
9391 <glossdef>
9392 <para role="glossdeffirst">
9393<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9394 The epoch of the output package built by the
9395 OpenEmbedded build system.
9396 By default, <filename>PKGE</filename> is set to
9397 <link linkend='var-PE'><filename>PE</filename></link>.
9398 </para>
9399 </glossdef>
9400 </glossentry>
9401
9402 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
9403 <info>
9404 PKGR[doc] = "The revision of the output package built by the OpenEmbedded build system."
9405 </info>
9406 <glossdef>
9407 <para role="glossdeffirst">
9408<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9409 The revision of the output package built by the
9410 OpenEmbedded build system.
9411 By default, <filename>PKGR</filename> is set to
9412 <link linkend='var-PR'><filename>PR</filename></link>.
9413 </para>
9414 </glossdef>
9415 </glossentry>
9416
9417 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
9418 <info>
9419 PKGV[doc] = "The version of the output package built by the OpenEmbedded build system."
9420 </info>
9421 <glossdef>
9422 <para role="glossdeffirst">
9423<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9424 The version of the output package built by the
9425 OpenEmbedded build system.
9426 By default, <filename>PKGV</filename> is set to
9427 <link linkend='var-PV'><filename>PV</filename></link>.
9428 </para>
9429 </glossdef>
9430 </glossentry>
9431
9432 <glossentry id='var-PN'><glossterm>PN</glossterm>
9433 <info>
9434 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."
9435 </info>
9436 <glossdef>
9437 <para role="glossdeffirst">
9438<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9439 This variable can have two separate functions depending on the context: a recipe
9440 name or a resulting package name.
9441 </para>
9442
9443 <para>
9444 <filename>PN</filename> refers to a recipe name in the context of a file used
9445 by the OpenEmbedded build system as input to create a package.
9446 The name is normally extracted from the recipe file name.
9447 For example, if the recipe is named
9448 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
9449 will be "expat".
9450 </para>
9451
9452 <para>
9453 The variable refers to a package name in the context of a file created or produced by the
9454 OpenEmbedded build system.
9455 </para>
9456
9457 <para>
9458 If applicable, the <filename>PN</filename> variable also contains any special
9459 suffix or prefix.
9460 For example, using <filename>bash</filename> to build packages for the native
9461 machine, <filename>PN</filename> is <filename>bash-native</filename>.
9462 Using <filename>bash</filename> to build packages for the target and for Multilib,
9463 <filename>PN</filename> would be <filename>bash</filename> and
9464 <filename>lib64-bash</filename>, respectively.
9465 </para>
9466 </glossdef>
9467 </glossentry>
9468
9469 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
9470 <info>
9471 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
9472 </info>
9473 <glossdef>
9474 <para role="glossdeffirst">
9475<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9476 Lists recipes you do not want the OpenEmbedded build system
9477 to build.
9478 This variable works in conjunction with the
9479 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
9480 class, which the recipe must inherit globally.
9481 </para>
9482
9483 <para>
9484 To prevent a recipe from being built, inherit the class
9485 globally and use the variable in your
9486 <filename>local.conf</filename> file.
9487 Here is an example that prevents
9488 <filename>myrecipe</filename> from being built:
9489 <literallayout class='monospaced'>
9490 INHERIT += "blacklist"
9491 PNBLACKLIST[myrecipe] = "Not supported by our organization."
9492 </literallayout>
9493 </para>
9494 </glossdef>
9495 </glossentry>
9496
9497 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
9498 <info>
9499 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."
9500 </info>
9501 <glossdef>
9502 <para role="glossdeffirst">
9503<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9504 Specifies a list of functions to call once the
9505 OpenEmbedded build system has created the host part of
9506 the SDK.
9507 You can specify functions separated by semicolons:
9508 <literallayout class='monospaced'>
9509 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
9510 </literallayout>
9511 </para>
9512
9513 <para>
9514 If you need to pass the SDK path to a command
9515 within a function, you can use
9516 <filename>${SDK_DIR}</filename>, which points to
9517 the parent directory used by the OpenEmbedded build
9518 system when creating SDK output.
9519 See the
9520 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
9521 variable for more information.
9522 </para>
9523 </glossdef>
9524 </glossentry>
9525
9526 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
9527 <info>
9528 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."
9529 </info>
9530 <glossdef>
9531 <para role="glossdeffirst">
9532<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9533 Specifies a list of functions to call once the
9534 OpenEmbedded build system has created the target part of
9535 the SDK.
9536 You can specify functions separated by semicolons:
9537 <literallayout class='monospaced'>
9538 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
9539 </literallayout>
9540 </para>
9541
9542 <para>
9543 If you need to pass the SDK path to a command
9544 within a function, you can use
9545 <filename>${SDK_DIR}</filename>, which points to
9546 the parent directory used by the OpenEmbedded build
9547 system when creating SDK output.
9548 See the
9549 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
9550 variable for more information.
9551 </para>
9552 </glossdef>
9553 </glossentry>
9554
9555 <glossentry id='var-PR'><glossterm>PR</glossterm>
9556 <info>
9557 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
9558 </info>
9559 <glossdef>
9560 <para role="glossdeffirst">
9561<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9562 The revision of the recipe.
9563 The default value for this variable is "r0".
9564 </para>
9565 </glossdef>
9566 </glossentry>
9567
9568 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
9569 <info>
9570 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
9571 </info>
9572 <glossdef>
9573 <para role="glossdeffirst">
9574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9575 If multiple recipes provide an item, this variable
9576 determines which recipe should be given preference.
9577 You should always suffix the variable with the name of the
9578 provided item, and you should set it to the
9579 <link linkend='var-PN'><filename>PN</filename></link>
9580 of the recipe to which you want to give precedence.
9581 Some examples:
9582 <literallayout class='monospaced'>
9583 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
9584 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
9585 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
9586 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009587 <note>
9588 If you set <filename>PREFERRED_PROVIDER</filename>
9589 for a <filename>virtual/*</filename> item, then any
9590 recipe that
9591 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
9592 that item that is not selected by
9593 <filename>PREFERRED_PROVIDER</filename> is prevented
9594 from building, which is usually desirable since this
9595 mechanism is designed to select between mutually
9596 exclusive alternative providers.
9597 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009598 </para>
9599 </glossdef>
9600 </glossentry>
9601
9602 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
9603 <info>
9604 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
9605 </info>
9606 <glossdef>
9607 <para role="glossdeffirst">
9608<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9609 If there are multiple versions of recipes available, this
9610 variable determines which recipe should be given preference.
9611 You must always suffix the variable with the
9612 <link linkend='var-PN'><filename>PN</filename></link>
9613 you want to select, and you should set the
9614 <link linkend='var-PV'><filename>PV</filename></link>
9615 accordingly for precedence.
9616 You can use the "<filename>%</filename>" character as a
9617 wildcard to match any number of characters, which can be
9618 useful when specifying versions that contain long revision
9619 numbers that could potentially change.
9620 Here are two examples:
9621 <literallayout class='monospaced'>
9622 PREFERRED_VERSION_python = "2.7.3"
9623 PREFERRED_VERSION_linux-yocto = "3.19%"
9624 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009625 Sometimes the <filename>PREFERRED_VERSION</filename>
9626 variable can be set by configuration files in a way that
9627 is hard to change.
9628 You can use
9629 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
9630 to set a machine-specific override.
9631 Here is an example:
9632 <literallayout class='monospaced'>
9633 PREFERRED_VERSION_linux-yocto_qemux86 = "3.4%"
9634 </literallayout>
9635 Although not recommended, worst case, you can also use the
9636 "forcevariable" override, which is the strongest override
9637 possible.
9638 Here is an example:
9639 <literallayout class='monospaced'>
9640 PREFERRED_VERSION_linux-yocto_forcevariable = "3.4%"
9641 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009642 </para>
9643 </glossdef>
9644 </glossentry>
9645
9646 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
9647 <info>
9648 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
9649 </info>
9650 <glossdef>
9651 <para role="glossdeffirst">
9652<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9653 Specifies additional paths from which the OpenEmbedded
9654 build system gets source code.
9655 When the build system searches for source code, it first
9656 tries the local download directory.
9657 If that location fails, the build system tries locations
9658 defined by <filename>PREMIRRORS</filename>, the upstream
9659 source, and then locations specified by
9660 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
9661 in that order.
9662 </para>
9663
9664 <para>
9665 Assuming your distribution
9666 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
9667 is "poky", the default value for
9668 <filename>PREMIRRORS</filename> is defined in the
9669 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009670 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009671 </para>
9672
9673 <para>
9674 Typically, you could add a specific server for the
9675 build system to attempt before any others by adding
9676 something like the following to the
9677 <filename>local.conf</filename> configuration file in the
9678 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
9679 <literallayout class='monospaced'>
9680 PREMIRRORS_prepend = "\
9681 git://.*/.* http://www.yoctoproject.org/sources/ \n \
9682 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
9683 http://.*/.* http://www.yoctoproject.org/sources/ \n \
9684 https://.*/.* http://www.yoctoproject.org/sources/ \n"
9685 </literallayout>
9686 These changes cause the build system to intercept
9687 Git, FTP, HTTP, and HTTPS requests and direct them to
9688 the <filename>http://</filename> sources mirror.
9689 You can use <filename>file://</filename> URLs to point
9690 to local directories or network shares as well.
9691 </para>
9692 </glossdef>
9693 </glossentry>
9694
9695 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
9696 <info>
9697 PRIORITY[doc] = "Indicates the importance of a package. The default value is 'optional'. Other standard values are 'required', 'standard' and 'extra'."
9698 </info>
9699 <glossdef>
9700 <para role="glossdeffirst">
9701<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9702 Indicates the importance of a package.
9703 </para>
9704
9705 <para>
9706 <filename>PRIORITY</filename> is considered to be part of
9707 the distribution policy because the importance of any given
9708 recipe depends on the purpose for which the distribution
9709 is being produced.
9710 Thus, <filename>PRIORITY</filename> is not normally set
9711 within recipes.
9712 </para>
9713
9714 <para>
9715 You can set <filename>PRIORITY</filename> to "required",
9716 "standard", "extra", and "optional", which is the default.
9717 </para>
9718 </glossdef>
9719 </glossentry>
9720
9721 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
9722 <info>
9723 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
9724 </info>
9725 <glossdef>
9726 <para role="glossdeffirst">
9727<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9728 Specifies libraries installed within a recipe that
9729 should be ignored by the OpenEmbedded build system's
9730 shared library resolver.
9731 This variable is typically used when software being
9732 built by a recipe has its own private versions of a
9733 library normally provided by another recipe.
9734 In this case, you would not want the package containing
9735 the private libraries to be set as a dependency on other
9736 unrelated packages that should instead depend on the
9737 package providing the standard version of the library.
9738 </para>
9739
9740 <para>
9741 Libraries specified in this variable should be specified
9742 by their file name.
9743 For example, from the Firefox recipe in meta-browser:
9744 <literallayout class='monospaced'>
9745 PRIVATE_LIBS = "libmozjs.so \
9746 libxpcom.so \
9747 libnspr4.so \
9748 libxul.so \
9749 libmozalloc.so \
9750 libplc4.so \
9751 libplds4.so"
9752 </literallayout>
9753 </para>
9754 </glossdef>
9755 </glossentry>
9756
9757 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
9758 <info>
9759 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."
9760 </info>
9761 <glossdef>
9762 <para role="glossdeffirst">
9763<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9764 A list of aliases by which a particular recipe can be
9765 known.
9766 By default, a recipe's own
9767 <filename><link linkend='var-PN'>PN</link></filename>
9768 is implicitly already in its <filename>PROVIDES</filename>
9769 list.
9770 If a recipe uses <filename>PROVIDES</filename>, the
9771 additional aliases are synonyms for the recipe and can
9772 be useful satisfying dependencies of other recipes during
9773 the build as specified by
9774 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
9775 </para>
9776
9777 <para>
9778 Consider the following example
9779 <filename>PROVIDES</filename> statement from a recipe
9780 file <filename>libav_0.8.11.bb</filename>:
9781 <literallayout class='monospaced'>
9782 PROVIDES += "libpostproc"
9783 </literallayout>
9784 The <filename>PROVIDES</filename> statement results in
9785 the "libav" recipe also being known as "libpostproc".
9786 </para>
9787 </glossdef>
9788 </glossentry>
9789
9790 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
9791 <info>
9792 PRSERV_HOST[doc] = "The network based PR service host and port."
9793 </info>
9794 <glossdef>
9795 <para role="glossdeffirst">
9796<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9797 The network based
9798 <link linkend='var-PR'><filename>PR</filename></link>
9799 service host and port.
9800 </para>
9801
9802 <para>
9803 The <filename>conf/local.conf.sample.extended</filename>
9804 configuration file in the
9805 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
9806 shows how the <filename>PRSERV_HOST</filename> variable is
9807 set:
9808 <literallayout class='monospaced'>
9809 PRSERV_HOST = "localhost:0"
9810 </literallayout>
9811 You must set the variable if you want to automatically
9812 start a local
9813 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
9814 You can set <filename>PRSERV_HOST</filename> to other
9815 values to use a remote PR service.
9816 </para>
9817 </glossdef>
9818 </glossentry>
9819
9820 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
9821 <info>
9822 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
9823 </info>
9824 <glossdef>
9825 <para role="glossdeffirst">
9826<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9827 Specifies whether or not
9828 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
9829 (ptest) functionality is enabled when building a recipe.
9830 You should not set this variable directly.
9831 Enabling and disabling building Package Tests
9832 at build time should be done by adding "ptest" to (or
9833 removing it from)
9834 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
9835 </para>
9836 </glossdef>
9837 </glossentry>
9838
9839 <glossentry id='var-PV'><glossterm>PV</glossterm>
9840 <info>
9841 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
9842 </info>
9843 <glossdef>
9844 <para role="glossdeffirst">
9845<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9846 The version of the recipe.
9847 The version is normally extracted from the recipe filename.
9848 For example, if the recipe is named
9849 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PV</filename>
9850 will be "2.0.1".
9851 <filename>PV</filename> is generally not overridden within
9852 a recipe unless it is building an unstable (i.e. development) version from a source code repository
9853 (e.g. Git or Subversion).
9854 </para>
9855 </glossdef>
9856 </glossentry>
9857
9858 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
9859 <info>
9860 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."
9861 </info>
9862 <glossdef>
9863 <para role="glossdeffirst">
9864<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9865 When used by recipes that inherit the
9866 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
9867 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
9868 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
9869 or
9870 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
9871 classes, denotes the Application Binary Interface (ABI)
9872 currently in use for Python.
9873 By default, the ABI is "m".
9874 You do not have to set this variable as the OpenEmbedded
9875 build system sets it for you.
9876 </para>
9877
9878 <para>
9879 The OpenEmbedded build system uses the ABI to construct
9880 directory names used when installing the Python headers
9881 and libraries in sysroot
9882 (e.g. <filename>.../python3.3m/...</filename>).
9883 </para>
9884
9885 <para>
9886 Recipes that inherit the
9887 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>
9888 class during cross-builds also use this variable to
9889 locate the headers and libraries of the appropriate Python
9890 that the extension is targeting.
9891 </para>
9892 </glossdef>
9893 </glossentry>
9894
9895 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
9896 <info>
9897 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
9898 </info>
9899 <glossdef>
9900 <para role="glossdeffirst">
9901<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9902 When used by recipes that inherit the
9903 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
9904 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
9905 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
9906 or
9907 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
9908 classes, specifies the major Python version being built.
9909 For Python 2.x, <filename>PYTHON_PN</filename> would
9910 be "python2". For Python 3.x, the variable would be
9911 "python3".
9912 You do not have to set this variable as the
9913 OpenEmbedded build system automatically sets it for you.
9914 </para>
9915
9916 <para>
9917 The variable allows recipes to use common infrastructure
9918 such as the following:
9919 <literallayout class='monospaced'>
9920 DEPENDS += "${PYTHON_PN}-native"
9921 </literallayout>
9922 In the previous example, the version of the dependency
9923 is <filename>PYTHON_PN</filename>.
9924 </para>
9925 </glossdef>
9926 </glossentry>
9927
9928 </glossdiv>
9929
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009930 <glossdiv id='var-glossary-r'><title>R</title>
9931
9932 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
9933 <info>
9934 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
9935 </info>
9936 <glossdef>
9937 <para role="glossdeffirst">
9938<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9939 The minimal command and arguments to run
9940 <filename>ranlib</filename>.
9941 </para>
9942 </glossdef>
9943 </glossentry>
9944
9945 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
9946 <info>
9947 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."
9948 </info>
9949 <glossdef>
9950 <para role="glossdeffirst">
9951<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9952 The list of packages that conflict with packages.
9953 Note that packages will not be installed if conflicting
9954 packages are not first removed.
9955 </para>
9956
9957 <para>
9958 Like all package-controlling variables, you must always use
9959 them in conjunction with a package name override.
9960 Here is an example:
9961 <literallayout class='monospaced'>
9962 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
9963 </literallayout>
9964 </para>
9965
9966 <para>
9967 BitBake, which the OpenEmbedded build system uses, supports
9968 specifying versioned dependencies.
9969 Although the syntax varies depending on the packaging
9970 format, BitBake hides these differences from you.
9971 Here is the general syntax to specify versions with
9972 the <filename>RCONFLICTS</filename> variable:
9973 <literallayout class='monospaced'>
9974 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
9975 </literallayout>
9976 For <filename>operator</filename>, you can specify the
9977 following:
9978 <literallayout class='monospaced'>
9979 =
9980 &lt;
9981 &gt;
9982 &lt;=
9983 &gt;=
9984 </literallayout>
9985 For example, the following sets up a dependency on version
9986 1.2 or greater of the package <filename>foo</filename>:
9987 <literallayout class='monospaced'>
9988 RCONFLICTS_${PN} = "foo (>= 1.2)"
9989 </literallayout>
9990 </para>
9991 </glossdef>
9992 </glossentry>
9993
9994 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
9995 <info>
9996 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)."
9997 </info>
9998 <glossdef>
9999 <para role="glossdeffirst">
10000<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10001 Lists a package's runtime dependencies (i.e. other packages)
10002 that must be installed in order for the built package to run
10003 correctly.
10004 If a package in this list cannot be found during the build,
10005 you will get a build error.
10006 </para>
10007
10008 <para>
10009 When you use the <filename>RDEPENDS</filename> variable
10010 in a recipe, you are essentially stating that the recipe's
10011 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
10012 task depends on the existence of a specific package.
10013 Consider this simple example for two recipes named "a" and
10014 "b" that produce similarly named IPK packages.
10015 In this example, the <filename>RDEPENDS</filename>
10016 statement appears in the "a" recipe:
10017 <literallayout class='monospaced'>
10018 RDEPENDS_${PN} = "b"
10019 </literallayout>
10020 Here, the dependency is such that the
10021 <filename>do_build</filename> task for recipe "a" depends
10022 on the
10023 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
10024 task of recipe "b".
10025 This means the package file for "b" must be available when
10026 the output for recipe "a" has been completely built.
10027 More importantly, package "a" will be marked as depending
10028 on package "b" in a manner that is understood by the
10029 package manager.
10030 </para>
10031
10032 <para>
10033 The names of the packages you list within
10034 <filename>RDEPENDS</filename> must be the names of other
10035 packages - they cannot be recipe names.
10036 Although package names and recipe names usually match,
10037 the important point here is that you are
10038 providing package names within the
10039 <filename>RDEPENDS</filename> variable.
10040 For an example of the default list of packages created from
10041 a recipe, see the
10042 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
10043 variable.
10044 </para>
10045
10046 <para>
10047 Because the <filename>RDEPENDS</filename> variable applies
10048 to packages being built, you should always use the variable
10049 in a form with an attached package name.
10050 For example, suppose you are building a development package
10051 that depends on the <filename>perl</filename> package.
10052 In this case, you would use the following
10053 <filename>RDEPENDS</filename> statement:
10054 <literallayout class='monospaced'>
10055 RDEPENDS_${PN}-dev += "perl"
10056 </literallayout>
10057 In the example, the development package depends on
10058 the <filename>perl</filename> package.
10059 Thus, the <filename>RDEPENDS</filename> variable has the
10060 <filename>${PN}-dev</filename> package name as part of the
10061 variable.
10062 </para>
10063
10064 <para>
10065 The package name you attach to the
10066 <filename>RDEPENDS</filename> variable must appear
10067 as it would in the <filename>PACKAGES</filename>
10068 namespace before any renaming of the output package by
10069 classes like
10070 <link linkend='ref-classes-debian'><filename>debian</filename></link>.
10071 </para>
10072
10073 <para>
10074 In many cases you do not need to explicitly add
10075 runtime dependencies using
10076 <filename>RDEPENDS</filename> since some automatic
10077 handling occurs:
10078 <itemizedlist>
10079 <listitem><para><emphasis><filename>shlibdeps</filename></emphasis>: If
10080 a runtime package contains a shared library
10081 (<filename>.so</filename>), the build
10082 processes the library in order to determine other
10083 libraries to which it is dynamically linked.
10084 The build process adds these libraries to
10085 <filename>RDEPENDS</filename> when creating the runtime
10086 package.</para></listitem>
10087 <listitem><para><emphasis><filename>pcdeps</filename></emphasis>: If
10088 the package ships a <filename>pkg-config</filename>
10089 information file, the build process uses this file
10090 to add items to the <filename>RDEPENDS</filename>
10091 variable to create the runtime packages.
10092 </para></listitem>
10093 </itemizedlist>
10094 </para>
10095
10096 <para>
10097 BitBake, which the OpenEmbedded build system uses, supports
10098 specifying versioned dependencies.
10099 Although the syntax varies depending on the packaging
10100 format, BitBake hides these differences from you.
10101 Here is the general syntax to specify versions with
10102 the <filename>RDEPENDS</filename> variable:
10103 <literallayout class='monospaced'>
10104 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10105 </literallayout>
10106 For <filename>operator</filename>, you can specify the
10107 following:
10108 <literallayout class='monospaced'>
10109 =
10110 &lt;
10111 &gt;
10112 &lt;=
10113 &gt;=
10114 </literallayout>
10115 For example, the following sets up a dependency on version
10116 1.2 or greater of the package <filename>foo</filename>:
10117 <literallayout class='monospaced'>
10118 RDEPENDS_${PN} = "foo (>= 1.2)"
10119 </literallayout>
10120 </para>
10121
10122 <para>
10123 For information on build-time dependencies, see the
10124 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
10125 variable.
10126 </para>
10127 </glossdef>
10128 </glossentry>
10129
10130 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
10131 <info>
10132 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."
10133 </info>
10134 <glossdef>
10135 <para role="glossdeffirst">
10136<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10137 When inheriting the
10138 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
10139 class, this
10140 variable identifies distribution features that must
10141 exist in the current configuration in order for the
10142 OpenEmbedded build system to build the recipe.
10143 In other words, if the
10144 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
10145 lists a feature that does not appear in
10146 <filename>DISTRO_FEATURES</filename> within the
10147 current configuration, an error occurs and the
10148 build stops.
10149 </para>
10150 </glossdef>
10151 </glossentry>
10152
10153 <glossentry id='var-RM_OLD_IMAGE'><glossterm>RM_OLD_IMAGE</glossterm>
10154 <info>
10155 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."
10156 </info>
10157 <glossdef>
10158 <para role="glossdeffirst">
10159<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10160 Reclaims disk space by removing previously built
10161 versions of the same image from the
10162 <filename>images</filename> directory pointed to by the
10163 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
10164 variable.
10165 </para>
10166
10167 <para>
10168 Set this variable to "1" in your
10169 <filename>local.conf</filename> file to remove these
10170 images.
10171 </para>
10172 </glossdef>
10173 </glossentry>
10174
10175 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
10176 <info>
10177 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
10178 </info>
10179 <glossdef>
10180 <para role="glossdeffirst">
10181<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10182 With <filename>rm_work</filename> enabled, this
10183 variable specifies a list of recipes whose work directories
10184 should not be removed.
10185 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
10186 section for more details.
10187 </para>
10188 </glossdef>
10189 </glossentry>
10190
10191 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
10192 <info>
10193 ROOT_HOME[doc] = "Defines the root home directory."
10194 </info>
10195 <glossdef>
10196 <para role="glossdeffirst">
10197<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10198 Defines the root home directory.
10199 By default, this directory is set as follows in the
10200 BitBake configuration file:
10201 <literallayout class='monospaced'>
10202 ROOT_HOME ??= "/home/root"
10203 </literallayout>
10204 <note>
10205 This default value is likely used because some
10206 embedded solutions prefer to have a read-only root
10207 filesystem and prefer to keep writeable data in one
10208 place.
10209 </note>
10210 </para>
10211
10212 <para>
10213 You can override the default by setting the variable
10214 in any layer or in the <filename>local.conf</filename> file.
10215 Because the default is set using a "weak" assignment
10216 (i.e. "??="), you can use either of the following forms
10217 to define your override:
10218 <literallayout class='monospaced'>
10219 ROOT_HOME = "/root"
10220 ROOT_HOME ?= "/root"
10221 </literallayout>
10222 These override examples use <filename>/root</filename>,
10223 which is probably the most commonly used override.
10224 </para>
10225 </glossdef>
10226 </glossentry>
10227
10228 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
10229 <info>
10230 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
10231 </info>
10232 <glossdef>
10233 <para role="glossdeffirst">
10234<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10235 Indicates a filesystem image to include as the root
10236 filesystem.
10237 </para>
10238
10239 <para>
10240 The <filename>ROOTFS</filename> variable is an optional
10241 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010242 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010243 class.
10244 </para>
10245 </glossdef>
10246 </glossentry>
10247
10248 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
10249 <info>
10250 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
10251 </info>
10252 <glossdef>
10253 <para role="glossdeffirst">
10254<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10255 Specifies a list of functions to call after the
10256 OpenEmbedded build system has installed packages.
10257 You can specify functions separated by semicolons:
10258 <literallayout class='monospaced'>
10259 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
10260 </literallayout>
10261 </para>
10262
10263 <para>
10264 If you need to pass the root filesystem path to a command
10265 within a function, you can use
10266 <filename>${IMAGE_ROOTFS}</filename>, which points to
10267 the directory that becomes the root filesystem image.
10268 See the
10269 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10270 variable for more information.
10271 </para>
10272 </glossdef>
10273 </glossentry>
10274
10275 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
10276 <info>
10277 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
10278 </info>
10279 <glossdef>
10280 <para role="glossdeffirst">
10281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10282 Specifies a list of functions to call once the
10283 OpenEmbedded build system has created the root filesystem.
10284 You can specify functions separated by semicolons:
10285 <literallayout class='monospaced'>
10286 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
10287 </literallayout>
10288 </para>
10289
10290 <para>
10291 If you need to pass the root filesystem path to a command
10292 within a function, you can use
10293 <filename>${IMAGE_ROOTFS}</filename>, which points to
10294 the directory that becomes the root filesystem image.
10295 See the
10296 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10297 variable for more information.
10298 </para>
10299 </glossdef>
10300 </glossentry>
10301
10302 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
10303 <info>
10304 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
10305 </info>
10306 <glossdef>
10307 <para role="glossdeffirst">
10308<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10309 Specifies a list of functions to call after the
10310 OpenEmbedded build system has removed unnecessary
10311 packages.
10312 When runtime package management is disabled in the
10313 image, several packages are removed including
10314 <filename>base-passwd</filename>,
10315 <filename>shadow</filename>, and
10316 <filename>update-alternatives</filename>.
10317 You can specify functions separated by semicolons:
10318 <literallayout class='monospaced'>
10319 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
10320 </literallayout>
10321 </para>
10322
10323 <para>
10324 If you need to pass the root filesystem path to a command
10325 within a function, you can use
10326 <filename>${IMAGE_ROOTFS}</filename>, which points to
10327 the directory that becomes the root filesystem image.
10328 See the
10329 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10330 variable for more information.
10331 </para>
10332 </glossdef>
10333 </glossentry>
10334
10335 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
10336 <info>
10337 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
10338 </info>
10339 <glossdef>
10340 <para role="glossdeffirst">
10341<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10342 Specifies a list of functions to call before the
10343 OpenEmbedded build system has created the root filesystem.
10344 You can specify functions separated by semicolons:
10345 <literallayout class='monospaced'>
10346 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
10347 </literallayout>
10348 </para>
10349
10350 <para>
10351 If you need to pass the root filesystem path to a command
10352 within a function, you can use
10353 <filename>${IMAGE_ROOTFS}</filename>, which points to
10354 the directory that becomes the root filesystem image.
10355 See the
10356 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
10357 variable for more information.
10358 </para>
10359 </glossdef>
10360 </glossentry>
10361
10362 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
10363 <info>
10364 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."
10365 </info>
10366 <glossdef>
10367 <para role="glossdeffirst">
10368<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10369 A list of package name aliases that a package also provides.
10370 These aliases are useful for satisfying runtime dependencies
10371 of other packages both during the build and on the target
10372 (as specified by
10373 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
10374 <note>
10375 A package's own name is implicitly already in its
10376 <filename>RPROVIDES</filename> list.
10377 </note>
10378 </para>
10379
10380 <para>
10381 As with all package-controlling variables, you must always
10382 use the variable in conjunction with a package name override.
10383 Here is an example:
10384 <literallayout class='monospaced'>
10385 RPROVIDES_${PN} = "widget-abi-2"
10386 </literallayout>
10387 </para>
10388 </glossdef>
10389 </glossentry>
10390
10391 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
10392 <info>
10393 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."
10394 </info>
10395 <glossdef>
10396 <para role="glossdeffirst">
10397<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10398 A list of packages that extends the usability of a package
10399 being built.
10400 The package being built does not depend on this list of
10401 packages in order to successfully build, but rather
10402 uses them for extended usability.
10403 To specify runtime dependencies for packages, see the
10404 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
10405 variable.
10406 </para>
10407
10408 <para>
10409 The package manager will automatically install the
10410 <filename>RRECOMMENDS</filename> list of packages when
10411 installing the built package.
10412 However, you can prevent listed packages from being
10413 installed by using the
10414 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
10415 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
10416 and
10417 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
10418 variables.
10419 </para>
10420
10421 <para>
10422 Packages specified in
10423 <filename>RRECOMMENDS</filename> need not actually be
10424 produced.
10425 However, a recipe must exist that provides each package,
10426 either through the
10427 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
10428 or
10429 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
10430 variables or the
10431 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
10432 variable, or an error will occur during the build.
10433 If such a recipe does exist and the package is not produced,
10434 the build continues without error.
10435 </para>
10436
10437 <para>
10438 Because the <filename>RRECOMMENDS</filename> variable
10439 applies to packages being built, you should always attach
10440 an override to the variable to specify the particular
10441 package whose usability is being extended.
10442 For example, suppose you are building a development package
10443 that is extended to support wireless functionality.
10444 In this case, you would use the following:
10445 <literallayout class='monospaced'>
10446 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
10447 </literallayout>
10448 In the example, the package name
10449 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
10450 must appear as it would in the
10451 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
10452 namespace before any renaming of the output package by
10453 classes such as <filename>debian.bbclass</filename>.
10454 </para>
10455
10456 <para>
10457 BitBake, which the OpenEmbedded build system uses, supports
10458 specifying versioned recommends.
10459 Although the syntax varies depending on the packaging
10460 format, BitBake hides these differences from you.
10461 Here is the general syntax to specify versions with
10462 the <filename>RRECOMMENDS</filename> variable:
10463 <literallayout class='monospaced'>
10464 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10465 </literallayout>
10466 For <filename>operator</filename>, you can specify the
10467 following:
10468 <literallayout class='monospaced'>
10469 =
10470 &lt;
10471 &gt;
10472 &lt;=
10473 &gt;=
10474 </literallayout>
10475 For example, the following sets up a recommend on version
10476 1.2 or greater of the package <filename>foo</filename>:
10477 <literallayout class='monospaced'>
10478 RRECOMMENDS_${PN} = "foo (>= 1.2)"
10479 </literallayout>
10480 </para>
10481 </glossdef>
10482 </glossentry>
10483
10484 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
10485 <info>
10486 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."
10487 </info>
10488 <glossdef>
10489 <para role="glossdeffirst">
10490<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10491 A list of packages replaced by a package.
10492 The package manager uses this variable to determine which
10493 package should be installed to replace other package(s)
10494 during an upgrade.
10495 In order to also have the other package(s) removed at the
10496 same time, you must add the name of the other
10497 package to the
10498 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
10499 </para>
10500
10501 <para>
10502 As with all package-controlling variables, you must use
10503 this variable in conjunction with a package name
10504 override.
10505 Here is an example:
10506 <literallayout class='monospaced'>
10507 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
10508 </literallayout>
10509 </para>
10510
10511 <para>
10512 BitBake, which the OpenEmbedded build system uses, supports
10513 specifying versioned replacements.
10514 Although the syntax varies depending on the packaging
10515 format, BitBake hides these differences from you.
10516 Here is the general syntax to specify versions with
10517 the <filename>RREPLACES</filename> variable:
10518 <literallayout class='monospaced'>
10519 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
10520 </literallayout>
10521 For <filename>operator</filename>, you can specify the
10522 following:
10523 <literallayout class='monospaced'>
10524 =
10525 &lt;
10526 &gt;
10527 &lt;=
10528 &gt;=
10529 </literallayout>
10530 For example, the following sets up a replacement using
10531 version 1.2 or greater of the package
10532 <filename>foo</filename>:
10533 <literallayout class='monospaced'>
10534 RREPLACES_${PN} = "foo (>= 1.2)"
10535 </literallayout>
10536 </para>
10537 </glossdef>
10538 </glossentry>
10539
10540 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
10541 <info>
10542 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."
10543 </info>
10544 <glossdef>
10545 <para role="glossdeffirst">
10546<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10547 A list of additional packages that you can suggest for
10548 installation by the package manager at the time a package
10549 is installed.
10550 Not all package managers support this functionality.
10551 </para>
10552
10553 <para>
10554 As with all package-controlling variables, you must always
10555 use this variable in conjunction with a package name
10556 override.
10557 Here is an example:
10558 <literallayout class='monospaced'>
10559 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
10560 </literallayout>
10561 </para>
10562 </glossdef>
10563 </glossentry>
10564
10565 </glossdiv>
10566
10567 <glossdiv id='var-glossary-s'><title>S</title>
10568
10569 <glossentry id='var-S'><glossterm>S</glossterm>
10570 <info>
10571 S[doc] = "The location in the Build Directory where unpacked package source code resides."
10572 </info>
10573 <glossdef>
10574 <para role="glossdeffirst">
10575<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10576 The location in the
10577 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
10578 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010579 By default, this directory is
10580 <filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/${</filename><link linkend='var-BPN'><filename>BPN</filename></link><filename>}-${</filename><link linkend='var-PV'><filename>PV</filename></link><filename>}</filename>,
10581 where <filename>${BPN}</filename> is the base recipe name
10582 and <filename>${PV}</filename> is the recipe version.
10583 If the source tarball extracts the code to a directory
10584 named anything other than <filename>${BPN}-${PV}</filename>,
10585 or if the source code if fetched from an SCM such as
10586 Git or Subversion, then you must set <filename>S</filename>
10587 in the recipe so that the OpenEmbedded build system
10588 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010589 </para>
10590
10591 <para>
10592 As an example, assume a
10593 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
10594 top-level folder named <filename>poky</filename> and a
10595 default Build Directory at <filename>poky/build</filename>.
10596 In this case, the work directory the build system uses
10597 to keep the unpacked recipe for <filename>db</filename>
10598 is the following:
10599 <literallayout class='monospaced'>
10600 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
10601 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010602 The unpacked source code resides in the
10603 <filename>db-5.1.19</filename> folder.
10604 </para>
10605
10606 <para>
10607 This next example assumes a Git repository.
10608 By default, Git repositories are cloned to
10609 <filename>${WORKDIR}/git</filename> during
10610 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
10611 Since this path is different from the default value of
10612 <filename>S</filename>, you must set it specifically
10613 so the source can be located:
10614 <literallayout class='monospaced'>
10615 SRC_URI = "git://path/to/repo.git"
10616 S = "${WORKDIR}/git"
10617 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010618 </para>
10619 </glossdef>
10620 </glossentry>
10621
10622 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
10623 <info>
10624 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."
10625 </info>
10626 <glossdef>
10627 <para role="glossdeffirst">
10628<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10629 Specifies a list of command-line utilities that should be
10630 checked for during the initial sanity checking process when
10631 running BitBake.
10632 If any of the utilities are not installed on the build host,
10633 then BitBake immediately exits with an error.
10634 </para>
10635 </glossdef>
10636 </glossentry>
10637
10638 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
10639 <info>
10640 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
10641 </info>
10642 <glossdef>
10643 <para role="glossdeffirst">
10644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10645 A list of the host distribution identifiers that the
10646 build system has been tested against.
10647 Identifiers consist of the host distributor ID
10648 followed by the release,
10649 as reported by the <filename>lsb_release</filename> tool
10650 or as read from <filename>/etc/lsb-release</filename>.
10651 Separate the list items with explicit newline
10652 characters (<filename>\n</filename>).
10653 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
10654 and the current value of
10655 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
10656 does not appear in the list, then the build system reports
10657 a warning that indicates the current host distribution has
10658 not been tested as a build host.
10659 </para>
10660 </glossdef>
10661 </glossentry>
10662
10663 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
10664 <info>
10665 SDK_ARCH[doc] = "The target architecture for the SDK."
10666 </info>
10667 <glossdef>
10668 <para role="glossdeffirst">
10669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10670 The target architecture for the SDK.
10671 Typically, you do not directly set this variable.
10672 Instead, use
10673 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
10674 </para>
10675 </glossdef>
10676 </glossentry>
10677
10678 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
10679 <info>
10680 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
10681 </info>
10682 <glossdef>
10683 <para role="glossdeffirst">
10684<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10685 The directory set up and used by the
10686 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
10687 to which the SDK is deployed.
10688 The <filename>populate_sdk_base</filename> class defines
10689 <filename>SDK_DEPLOY</filename> as follows:
10690 <literallayout class='monospaced'>
10691 SDK_DEPLOY = "${<link linkend='var-TMPDIR'>TMPDIR</link>}/deploy/sdk"
10692 </literallayout>
10693 </para>
10694 </glossdef>
10695 </glossentry>
10696
10697 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
10698 <info>
10699 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
10700 </info>
10701 <glossdef>
10702 <para role="glossdeffirst">
10703<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10704 The parent directory used by the OpenEmbedded build system
10705 when creating SDK output.
10706 The
10707 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10708 class defines the variable as follows:
10709 <literallayout class='monospaced'>
10710 SDK_DIR = "${<link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>}/sdk"
10711 </literallayout>
10712 <note>
10713 The <filename>SDK_DIR</filename> directory is a
10714 temporary directory as it is part of
10715 <filename>WORKDIR</filename>.
10716 The final output directory is
10717 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
10718 </note>
10719 </para>
10720 </glossdef>
10721 </glossentry>
10722
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010723 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
10724 <info>
10725 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
10726 </info>
10727 <glossdef>
10728 <para role="glossdeffirst">
10729<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10730 Controls whether or not shared state artifacts are copied
10731 into the extensible SDK.
10732 The default value of "full" copies all of the required
10733 shared state artifacts into the extensible SDK.
10734 The value "minimal" leaves these artifacts out of the
10735 SDK.
10736 <note>
10737 If you set the variable to "minimal", you need to
10738 ensure
10739 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
10740 is set in the SDK's configuration to enable the
10741 artifacts to be fetched as needed.
10742 </note>
10743 </para>
10744 </glossdef>
10745 </glossentry>
10746
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010747 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
10748 <info>
10749 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."
10750 </info>
10751 <glossdef>
10752 <para role="glossdeffirst">
10753<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10754 The manifest file for the host part of the SDK.
10755 This file lists all the installed packages that make up
10756 the host part of SDK.
10757 The file contains package information on a line-per-package
10758 basis as follows:
10759 <literallayout class='monospaced'>
10760 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
10761 </literallayout>
10762 </para>
10763
10764 <para>
10765 The
10766 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10767 class defines the manifest file as follows:
10768 <literallayout class='monospaced'>
10769 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
10770 </literallayout>
10771 The location is derived using the
10772 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
10773 and
10774 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
10775 variables.
10776 </para>
10777 </glossdef>
10778 </glossentry>
10779
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010780 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
10781 <info>
10782 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
10783 </info>
10784 <glossdef>
10785 <para role="glossdeffirst">
10786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10787 When set to "1", specifies to include the packagedata for
10788 all recipes in the "world" target in the extensible SDK.
10789 Including this data allows the
10790 <filename>devtool search</filename> command to find these
10791 recipes in search results, as well as allows the
10792 <filename>devtool add</filename> command to map
10793 dependencies more effectively.
10794 <note>
10795 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
10796 variable significantly increases build time because
10797 all of world needs to be built.
10798 Enabling the variable also slightly increases the size
10799 of the extensible SDK.
10800 </note>
10801 </para>
10802 </glossdef>
10803 </glossentry>
10804
10805 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
10806 <info>
10807 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
10808 </info>
10809 <glossdef>
10810 <para role="glossdeffirst">
10811<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10812 A list of classes to remove from the
10813 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
10814 value globally within the extensible SDK configuration.
10815 The default value is "buildhistory icecc".
10816 </para>
10817
10818 <para>
10819 Some classes are not generally applicable within
10820 the extensible SDK context and you can use this variable
10821 to disable them.
10822 </para>
10823 </glossdef>
10824 </glossentry>
10825
10826 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
10827 <info>
10828 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
10829 </info>
10830 <glossdef>
10831 <para role="glossdeffirst">
10832<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10833 A list of variables not allowed through from the build
10834 system configuration into the extensible SDK configuration.
10835 Usually, these are variables that are specific to the
10836 machine on which the build system is running and thus
10837 would be potentially problematic within the extensible SDK.
10838 </para>
10839 </glossdef>
10840 </glossentry>
10841
10842 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
10843 <info>
10844 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
10845 </info>
10846 <glossdef>
10847 <para role="glossdeffirst">
10848<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10849 A list of variables allowed through from the build system
10850 configuration into the extensible SDK configuration.
10851 This list overrides the variables specified using the
10852 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
10853 variable as well as any variables identified by automatic
10854 blacklisting due to the "/" character being found at the
10855 start of the value, which is usually indicative of being a
10856 path and thus might not be valid on the system where the
10857 SDK is installed.
10858 </para>
10859 </glossdef>
10860 </glossentry>
10861
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010862 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
10863 <info>
10864 SDK_NAME[doc] = "The base name for SDK output files."
10865 </info>
10866 <glossdef>
10867 <para role="glossdeffirst">
10868<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10869 The base name for SDK output files.
10870 The name is derived from the
10871 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
10872 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
10873 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
10874 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
10875 and
10876 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
10877 variables:
10878 <literallayout class='monospaced'>
10879 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
10880 </literallayout>
10881 </para>
10882 </glossdef>
10883 </glossentry>
10884
10885 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
10886 <info>
10887 SDK_OS[doc] = "The operating system for which the SDK will be built."
10888 </info>
10889 <glossdef>
10890 <para role="glossdeffirst">
10891<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10892 Specifies the operating system for which the SDK
10893 will be built.
10894 The default value is the value of
10895 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
10896 </para>
10897 </glossdef>
10898 </glossentry>
10899
10900 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
10901 <info>
10902 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
10903 </info>
10904 <glossdef>
10905 <para role="glossdeffirst">
10906<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10907 The location used by the OpenEmbedded build system when
10908 creating SDK output.
10909 The
10910 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
10911 class defines the variable as follows:
10912 <literallayout class='monospaced'>
10913 SDK_OUTPUT = "${<link linkend='var-SDK_DIR'>SDK_DIR</link>}/image"
10914 </literallayout>
10915 <note>
10916 The <filename>SDK_OUTPUT</filename> directory is a
10917 temporary directory as it is part of
10918 <filename>WORKDIR</filename> by way of
10919 <filename>SDK_DIR</filename>.
10920 The final output directory is
10921 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
10922 </note>
10923 </para>
10924 </glossdef>
10925 </glossentry>
10926
10927 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
10928 <info>
10929 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."
10930 </info>
10931 <glossdef>
10932 <para role="glossdeffirst">
10933<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10934 Specifies a list of architectures compatible with
10935 the SDK machine.
10936 This variable is set automatically and should not
10937 normally be hand-edited.
10938 Entries are separated using spaces and listed in order
10939 of priority.
10940 The default value for
10941 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
10942 ${SDK_ARCH}-${SDKPKGSUFFIX}".
10943 </para>
10944 </glossdef>
10945 </glossentry>
10946
10947 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
10948 <info>
10949 SDK_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the SDK."
10950 </info>
10951 <glossdef>
10952 <para role="glossdeffirst">
10953<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10954 Specifies a list of functions to call once the
10955 OpenEmbedded build system has created the SDK.
10956 You can specify functions separated by semicolons:
10957 <literallayout class='monospaced'>
10958 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
10959 </literallayout>
10960 </para>
10961
10962 <para>
10963 If you need to pass an SDK path to a command within a
10964 function, you can use
10965 <filename>${SDK_DIR}</filename>, which points to
10966 the parent directory used by the OpenEmbedded build system
10967 when creating SDK output.
10968 See the
10969 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10970 variable for more information.
10971 </para>
10972 </glossdef>
10973 </glossentry>
10974
10975 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
10976 <info>
10977 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
10978 </info>
10979 <glossdef>
10980 <para role="glossdeffirst">
10981<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010982 The toolchain binary prefix used for
10983 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010984 The OpenEmbedded build system uses the
10985 <filename>SDK_PREFIX</filename> value to set the
10986 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
10987 when building <filename>nativesdk</filename> recipes.
10988 The default value is "${SDK_SYS}-".
10989 </para>
10990 </glossdef>
10991 </glossentry>
10992
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010993 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
10994 <info>
10995 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
10996 </info>
10997 <glossdef>
10998 <para role="glossdeffirst">
10999<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11000 A list of shared state tasks added to the extensible SDK.
11001 By default, the following tasks are added:
11002 <literallayout class='monospaced'>
11003 do_populate_lic
11004 do_package_qa
11005 do_populate_sysroot
11006 do_deploy
11007 </literallayout>
11008 Despite the default value of "" for the
11009 <filename>SDK_RECRDEP_TASKS</filename> variable, the
11010 above four tasks are always added to the SDK.
11011 To specify tasks beyond these four, you need to use
11012 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
11013 you are defining additional tasks that are needed in
11014 order to build
11015 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
11016 </para>
11017 </glossdef>
11018 </glossentry>
11019
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011020 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
11021 <info>
11022 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
11023 </info>
11024 <glossdef>
11025 <para role="glossdeffirst">
11026<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11027 Specifies the system, including the architecture and the
11028 operating system, for which the SDK will be built.
11029 </para>
11030
11031 <para>
11032 The OpenEmbedded build system automatically sets this
11033 variable based on
11034 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
11035 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
11036 and
11037 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
11038 You do not need to set the <filename>SDK_SYS</filename>
11039 variable yourself.
11040 </para>
11041 </glossdef>
11042 </glossentry>
11043
11044 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
11045 <info>
11046 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."
11047 </info>
11048 <glossdef>
11049 <para role="glossdeffirst">
11050<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11051 The manifest file for the target part of the SDK.
11052 This file lists all the installed packages that make up
11053 the target part of the SDK.
11054 The file contains package information on a line-per-package
11055 basis as follows:
11056 <literallayout class='monospaced'>
11057 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
11058 </literallayout>
11059 </para>
11060
11061 <para>
11062 The
11063 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
11064 class defines the manifest file as follows:
11065 <literallayout class='monospaced'>
11066 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
11067 </literallayout>
11068 The location is derived using the
11069 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
11070 and
11071 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
11072 variables.
11073 </para>
11074 </glossdef>
11075 </glossentry>
11076
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011077 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
11078 <info>
11079 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
11080 </info>
11081 <glossdef>
11082 <para role="glossdeffirst">
11083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11084 A list of targets to install from shared state as part of
11085 the standard or extensible SDK installation.
11086 The default value is "${PN}" (i.e. the image from which
11087 the SDK is built).
11088 </para>
11089
11090 <para>
11091 The <filename>SDK_TARGETS</filename> variable is an
11092 internal variable and typically would not be changed.
11093 </para>
11094 </glossdef>
11095 </glossentry>
11096
11097 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
11098 <info>
11099 SDK_TITLE[doc] = "Specifies a title to be printed when running the SDK installer."
11100 </info>
11101 <glossdef>
11102 <para role="glossdeffirst">
11103<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11104 Specifies a title to be printed when running the SDK
11105 installer.
11106 The <filename>SDK_TITLE</filename> variable defaults to
11107 "<replaceable>distro</replaceable> SDK" for the standard
11108 SDK and "<replaceable>distro</replaceable> Extensible SDK"
11109 for the extensible SDK, where
11110 <replaceable>distro</replaceable> is the first one of
11111 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
11112 or
11113 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
11114 that is set in your configuration.
11115 </para>
11116 </glossdef>
11117 </glossentry>
11118
11119 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
11120 <info>
11121 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
11122 </info>
11123 <glossdef>
11124 <para role="glossdeffirst">
11125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11126 An optional URL for an update server for the extensible
11127 SDK.
11128 If set, the value is used as the default update server when
11129 running <filename>devtool sdk-update</filename> within the
11130 extensible SDK.
11131 </para>
11132 </glossdef>
11133 </glossentry>
11134
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011135 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
11136 <info>
11137 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
11138 </info>
11139 <glossdef>
11140 <para role="glossdeffirst">
11141<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11142 Specifies the name of the SDK vendor.
11143 </para>
11144 </glossdef>
11145 </glossentry>
11146
11147 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
11148 <info>
11149 SDK_VERSION[doc] = "Specifies the version for the SDK."
11150 </info>
11151 <glossdef>
11152 <para role="glossdeffirst">
11153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11154 Specifies the version of the SDK.
11155 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011156 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011157 defines the <filename>SDK_VERSION</filename> as follows:
11158 <literallayout class='monospaced'>
11159 SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
11160 </literallayout>
11161 </para>
11162
11163 <para>
11164 For additional information, see the
11165 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
11166 and
11167 <link linkend='var-DATE'><filename>DATE</filename></link>
11168 variables.
11169 </para>
11170 </glossdef>
11171 </glossentry>
11172
11173 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
11174 <info>
11175 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'."
11176 </info>
11177 <glossdef>
11178 <para role="glossdeffirst">
11179<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11180 Equivalent to
11181 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
11182 However, this variable applies to the SDK generated from an
11183 image using the following command:
11184 <literallayout class='monospaced'>
11185 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
11186 </literallayout>
11187 </para>
11188 </glossdef>
11189 </glossentry>
11190
11191 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
11192 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011193 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011194 </info>
11195 <glossdef>
11196 <para role="glossdeffirst">
11197<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011198 The machine for which the SDK is built.
11199 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011200 runs on the target you specify with the
11201 <filename>SDKMACHINE</filename> value.
11202 The value points to a corresponding
11203 <filename>.conf</filename> file under
11204 <filename>conf/machine-sdk/</filename>.
11205 </para>
11206
11207 <para>
11208 You can use "i686" and "x86_64" as possible values
11209 for this variable. The variable defaults to "i686"
11210 and is set in the local.conf file in the Build Directory.
11211 <literallayout class='monospaced'>
11212 SDKMACHINE ?= "i686"
11213 </literallayout>
11214 <note>
11215 You cannot set the <filename>SDKMACHINE</filename>
11216 variable in your distribution configuration file.
11217 If you do, the configuration will not take affect.
11218 </note>
11219 </para>
11220 </glossdef>
11221 </glossentry>
11222
11223 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
11224 <info>
11225 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
11226 </info>
11227 <glossdef>
11228 <para role="glossdeffirst">
11229<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11230 Defines the path offered to the user for installation
11231 of the SDK that is generated by the OpenEmbedded build
11232 system.
11233 The path appears as the default location for installing
11234 the SDK when you run the SDK's installation script.
11235 You can override the offered path when you run the
11236 script.
11237 </para>
11238 </glossdef>
11239 </glossentry>
11240
11241 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
11242 <info>
11243 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
11244 </info>
11245 <glossdef>
11246 <para role="glossdeffirst">
11247<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11248 The full path to the sysroot used for cross-compilation
11249 within an SDK as it will be when installed into the
11250 default
11251 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
11252 </para>
11253 </glossdef>
11254 </glossentry>
11255
11256 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
11257 <info>
11258 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
11259 </info>
11260 <glossdef>
11261 <para role="glossdeffirst">
11262<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11263 The section in which packages should be categorized.
11264 Package management utilities can make use of this variable.
11265 </para>
11266 </glossdef>
11267 </glossentry>
11268
11269 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
11270 <info>
11271 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."
11272 </info>
11273 <glossdef>
11274 <para role="glossdeffirst">
11275<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11276 Specifies the optimization flags passed to the C compiler
11277 when building for the target.
11278 The flags are passed through the default value of the
11279 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
11280 variable.
11281 </para>
11282
11283 <para>
11284 The <filename>SELECTED_OPTIMIZATION</filename> variable
11285 takes the value of
11286 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
11287 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
11288 If that is the case, the value of
11289 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
11290 </para>
11291 </glossdef>
11292 </glossentry>
11293
11294 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
11295 <info>
11296 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."
11297 </info>
11298 <glossdef>
11299 <para role="glossdeffirst">
11300<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11301 Defines a serial console (TTY) to enable using getty.
11302 Provide a value that specifies the baud rate followed by
11303 the TTY device name separated by a space.
11304 You cannot specify more than one TTY device:
11305 <literallayout class='monospaced'>
11306 SERIAL_CONSOLE = "115200 ttyS0"
11307 </literallayout>
11308 <note>
11309 The <filename>SERIAL_CONSOLE</filename> variable
11310 is deprecated.
11311 Please use the
11312 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
11313 variable.
11314 </note>
11315 </para>
11316 </glossdef>
11317 </glossentry>
11318
11319 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
11320 <info>
11321 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
11322 </info>
11323 <glossdef>
11324 <para role="glossdeffirst">
11325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11326 Defines the serial consoles (TTYs) to enable using getty.
11327 Provide a value that specifies the baud rate followed by
11328 the TTY device name separated by a semicolon.
11329 Use spaces to separate multiple devices:
11330 <literallayout class='monospaced'>
11331 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
11332 </literallayout>
11333 </para>
11334 </glossdef>
11335 </glossentry>
11336
11337 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
11338 <info>
11339 SERIAL_CONSOLES_CHECK[doc] = "Similar to SERIAL_CONSOLES except the device is checked for existence before attempting to enable it. Supported only by SysVinit."
11340 </info>
11341 <glossdef>
11342 <para role="glossdeffirst">
11343<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11344 Similar to
11345 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
11346 except the device is checked for existence before attempting
11347 to enable it.
11348 This variable is currently only supported with SysVinit
11349 (i.e. not with systemd).
11350 </para>
11351 </glossdef>
11352 </glossentry>
11353
11354 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
11355 <info>
11356 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."
11357 </info>
11358 <glossdef>
11359 <para role="glossdeffirst">
11360<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11361 A list of recipe dependencies that should not be used to
11362 determine signatures of tasks from one recipe when they
11363 depend on tasks from another recipe.
11364 For example:
11365 <literallayout class='monospaced'>
11366 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
11367 </literallayout>
11368 </para>
11369
11370 <para>
11371 In this example, <filename>intone</filename> depends on
11372 <filename>mplayer2</filename>.
11373 </para>
11374
11375 <para>
11376 Use of this variable is one mechanism to remove dependencies
11377 that affect task signatures and thus force rebuilds when a
11378 recipe changes.
11379 <note><title>Caution</title>
11380 If you add an inappropriate dependency for a recipe
11381 relationship, the software might break during
11382 runtime if the interface of the second recipe was
11383 changed after the first recipe had been built.
11384 </note>
11385 </para>
11386 </glossdef>
11387 </glossentry>
11388
11389 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
11390 <info>
11391 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
11392 </info>
11393 <glossdef>
11394 <para role="glossdeffirst">
11395<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11396 A list of recipes that are completely stable and will
11397 never change.
11398 The ABI for the recipes in the list are presented by
11399 output from the tasks run to build the recipe.
11400 Use of this variable is one way to remove dependencies from
11401 one recipe on another that affect task signatures and
11402 thus force rebuilds when the recipe changes.
11403 <note><title>Caution</title>
11404 If you add an inappropriate variable to this list,
11405 the software might break at runtime if the
11406 interface of the recipe was changed after the other
11407 had been built.
11408 </note>
11409 </para>
11410 </glossdef>
11411 </glossentry>
11412
11413 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
11414 <info>
11415 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
11416 </info>
11417 <glossdef>
11418 <para role="glossdeffirst">
11419<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11420 Specifies the number of bits for the target system CPU.
11421 The value should be either "32" or "64".
11422 </para>
11423 </glossdef>
11424 </glossentry>
11425
11426 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
11427 <info>
11428 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'."
11429 </info>
11430 <glossdef>
11431 <para role="glossdeffirst">
11432<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11433 Specifies the endian byte order of the target system.
11434 The value should be either "le" for little-endian or "be" for big-endian.
11435 </para>
11436 </glossdef>
11437 </glossentry>
11438
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011439 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
11440 <info>
11441 SKIP_FILEDEPS[doc] = "Enables you to remove all files from
11442 the "Provides" section of an RPM package."
11443 </info>
11444 <glossdef>
11445 <para role="glossdeffirst">
11446<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11447 Enables removal of all files from the "Provides" section of
11448 an RPM package.
11449 Removal of these files is required for packages containing
11450 prebuilt binaries and libraries such as
11451 <filename>libstdc++</filename> and
11452 <filename>glibc</filename>.
11453 </para>
11454
11455 <para>
11456 To enable file removal, set the variable to "1" in your
11457 <filename>conf/local.conf</filename> configuration file
11458 in your:
11459 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
11460 <literallayout class='monospaced'>
11461 SKIP_FILEDEPS = "1"
11462 </literallayout>
11463 </para>
11464 </glossdef>
11465 </glossentry>
11466
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011467 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
11468 <info>
11469 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."
11470 </info>
11471 <glossdef>
11472 <para role="glossdeffirst">
11473<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11474 Groups together machines based upon the same family
11475 of SOC (System On Chip).
11476 You typically set this variable in a common
11477 <filename>.inc</filename> file that you include in the
11478 configuration files of all the machines.
11479 <note>
11480 You must include
11481 <filename>conf/machine/include/soc-family.inc</filename>
11482 for this variable to appear in
11483 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
11484 </note>
11485 </para>
11486 </glossdef>
11487 </glossentry>
11488
11489 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
11490 <info>
11491 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
11492 </info>
11493 <glossdef>
11494 <para role="glossdeffirst">
11495<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11496 Defines the suffix for shared libraries used on the
11497 target platform.
11498 By default, this suffix is ".so.*" for all Linux-based
11499 systems and is defined in the
11500 <filename>meta/conf/bitbake.conf</filename> configuration
11501 file.
11502 </para>
11503
11504 <para>
11505 You will see this variable referenced in the default values
11506 of <filename>FILES_${PN}</filename>.
11507 </para>
11508 </glossdef>
11509 </glossentry>
11510
11511 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
11512 <info>
11513 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
11514 </info>
11515 <glossdef>
11516 <para role="glossdeffirst">
11517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11518 Defines the suffix for the development symbolic link
11519 (symlink) for shared libraries on the target platform.
11520 By default, this suffix is ".so" for Linux-based
11521 systems and is defined in the
11522 <filename>meta/conf/bitbake.conf</filename> configuration
11523 file.
11524 </para>
11525
11526 <para>
11527 You will see this variable referenced in the default values
11528 of <filename>FILES_${PN}-dev</filename>.
11529 </para>
11530 </glossdef>
11531 </glossentry>
11532
11533 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
11534 <info>
11535 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
11536 </info>
11537 <glossdef>
11538 <para role="glossdeffirst">
11539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11540 When you are fetching files to create a mirror of sources
11541 (i.e. creating a source mirror), setting
11542 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
11543 <filename>local.conf</filename> configuration file ensures
11544 the source for all recipes are fetched regardless of
11545 whether or not a recipe is compatible with the
11546 configuration.
11547 A recipe is considered incompatible with the currently
11548 configured machine when either or both the
11549 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
11550 variable and
11551 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
11552 variables specify compatibility with a machine other
11553 than that of the current machine or host.
11554 <note><title>Warning</title>
11555 Do not set the
11556 <filename>SOURCE_MIRROR_FETCH</filename> variable
11557 unless you are creating a source mirror.
11558 In other words, do not set the variable during a
11559 normal build.
11560 </note>
11561 </para>
11562 </glossdef>
11563 </glossentry>
11564
11565 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
11566 <info>
11567 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
11568 </info>
11569 <glossdef>
11570 <para role="glossdeffirst">
11571<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11572 Defines your own
11573 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
11574 from which to first fetch source before attempting to fetch
11575 from the upstream specified in
11576 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
11577 </para>
11578
11579 <para>
11580 To use this variable, you must globally inherit the
11581 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
11582 class and then provide the URL to your mirrors.
11583 Here is the general syntax:
11584 <literallayout class='monospaced'>
11585 INHERIT += "own-mirrors"
11586 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
11587 </literallayout>
11588 <note>
11589 You can specify only a single URL in
11590 <filename>SOURCE_MIRROR_URL</filename>.
11591 </note>
11592 </para>
11593 </glossdef>
11594 </glossentry>
11595
11596 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
11597 <info>
11598 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
11599 </info>
11600 <glossdef>
11601 <para role="glossdeffirst">
11602<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11603 Maps commonly used license names to their SPDX counterparts
11604 found in <filename>meta/files/common-licenses/</filename>.
11605 For the default <filename>SPDXLICENSEMAP</filename>
11606 mappings, see the
11607 <filename>meta/conf/licenses.conf</filename> file.
11608 </para>
11609
11610 <para>
11611 For additional information, see the
11612 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
11613 variable.
11614 </para>
11615 </glossdef>
11616 </glossentry>
11617
11618 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
11619 <info>
11620 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."
11621 </info>
11622 <glossdef>
11623 <para role="glossdeffirst">
11624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11625 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
11626 OpenEmbedded build system to create variants of recipes or packages.
11627 The list specifies the prefixes to strip off during certain circumstances
11628 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
11629 </para>
11630 </glossdef>
11631 </glossentry>
11632
11633 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
11634 <info>
11635 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."
11636 </info>
11637 <glossdef>
11638 <para role="glossdeffirst">
11639<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11640 The list of source files - local or remote.
11641 This variable tells the OpenEmbedded build system which bits
11642 to pull in for the build and how to pull them in.
11643 For example, if the recipe or append file only needs to
11644 fetch a tarball from the Internet, the recipe or
11645 append file uses a single <filename>SRC_URI</filename>
11646 entry.
11647 On the other hand, if the recipe or append file needs to
11648 fetch a tarball, apply two patches, and include a custom
11649 file, the recipe or append file would include four
11650 instances of the variable.
11651 </para>
11652
11653 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011654 The following list explains the available URI protocols.
11655 URI protocols are highly dependent on particular BitBake
11656 Fetcher submodules.
11657 Depending on the fetcher BitBake uses, various URL
11658 parameters are employed.
11659 For specifics on the supported Fetchers, see the
11660 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
11661 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011662 <itemizedlist>
11663 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
11664 Fetches files, which are usually files shipped with
11665 the
11666 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>,
11667 from the local machine.
11668 The path is relative to the
11669 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
11670 variable.
11671 Thus, the build system searches, in order, from the
11672 following directories, which are assumed to be a
11673 subdirectories of the directory in which the
11674 recipe file (<filename>.bb</filename>) or
11675 append file (<filename>.bbappend</filename>)
11676 resides:
11677 <itemizedlist>
11678 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
11679 The base recipe name without any special
11680 suffix or version numbers.
11681 </para></listitem>
11682 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
11683 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
11684 The base recipe name and version but without
11685 any special package name suffix.
11686 </para></listitem>
11687 <listitem><para><emphasis>files -</emphasis>
11688 Files within a directory, which is named
11689 <filename>files</filename> and is also
11690 alongside the recipe or append file.
11691 </para></listitem>
11692 </itemizedlist>
11693 <note>
11694 If you want the build system to pick up files
11695 specified through a
11696 <filename>SRC_URI</filename>
11697 statement from your append file, you need to be
11698 sure to extend the
11699 <filename>FILESPATH</filename>
11700 variable by also using the
11701 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
11702 variable from within your append file.
11703 </note>
11704 </para></listitem>
11705 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
11706 Bazaar revision control repository.</para></listitem>
11707 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
11708 Git revision control repository.</para></listitem>
11709 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
11710 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
11711 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
11712 a repo (Git) repository.</para></listitem>
11713 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
11714 Fetches files from a ClearCase repository.
11715 </para></listitem>
11716 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
11717 the Internet using <filename>http</filename>.</para></listitem>
11718 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
11719 from the Internet using <filename>https</filename>.</para></listitem>
11720 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
11721 from the Internet using <filename>ftp</filename>.</para></listitem>
11722 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
11723 a CVS revision control repository.</para></listitem>
11724 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
11725 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
11726 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
11727 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
11728 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
11729 a secure shell.</para></listitem>
11730 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
11731 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
11732 </itemizedlist>
11733 </para>
11734
11735 <para>
11736 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
11737 Here are standard options:
11738 <itemizedlist>
11739 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
11740 the patch or not.
11741 The default action is to apply the patch.</para></listitem>
11742 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
11743 striplevel to use when applying the patch.
11744 The default level is 1.</para></listitem>
11745 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
11746 the directory in which the patch should be applied.
11747 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
11748 </para></listitem>
11749 </itemizedlist>
11750 </para>
11751
11752 <para>
11753 Here are options specific to recipes building code from a revision control system:
11754 <itemizedlist>
11755 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
11756 Apply the patch only if
11757 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
11758 is equal to or greater than <filename>mindate</filename>.
11759 </para></listitem>
11760 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
11761 Apply the patch only if <filename>SRCDATE</filename>
11762 is not later than <filename>mindate</filename>.
11763 </para></listitem>
11764 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
11765 Apply the patch only if <filename>SRCREV</filename>
11766 is equal to or greater than <filename>minrev</filename>.
11767 </para></listitem>
11768 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
11769 Apply the patch only if <filename>SRCREV</filename>
11770 is not later than <filename>maxrev</filename>.
11771 </para></listitem>
11772 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
11773 Apply the patch only if <filename>SRCREV</filename>
11774 is equal to <filename>rev</filename>.
11775 </para></listitem>
11776 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
11777 Apply the patch only if <filename>SRCREV</filename>
11778 is not equal to <filename>rev</filename>.
11779 </para></listitem>
11780 </itemizedlist>
11781 </para>
11782
11783 <para>
11784 Here are some additional options worth mentioning:
11785 <itemizedlist>
11786 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
11787 whether or not to unpack the file if it is an archive.
11788 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011789 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
11790 (or extracts its contents) into the specified
11791 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
11792 when the Git fetcher is used.
11793 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011794 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
11795 (or extracts its contents) into the specified
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011796 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
11797 when the local (<filename>file://</filename>)
11798 fetcher is used.
11799 </para></listitem>
11800 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
11801 (or extracts its contents) into the specified
11802 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
11803 when the CVS fetcher is used.
11804 </para></listitem>
11805 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
11806 Limits the checkout to a specific subpath of the
11807 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011808 </para></listitem>
11809 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
11810 name to be used for association with <filename>SRC_URI</filename> checksums
11811 when you have more than one file specified in <filename>SRC_URI</filename>.
11812 </para></listitem>
11813 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
11814 the filename used when storing the downloaded file.</para></listitem>
11815 </itemizedlist>
11816 </para>
11817 </glossdef>
11818 </glossentry>
11819
11820 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
11821 <info>
11822 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."
11823 </info>
11824 <glossdef>
11825 <para role="glossdeffirst">
11826<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11827 By default, the OpenEmbedded build system automatically detects whether
11828 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
11829 contains files that are machine-specific.
11830 If so, the build system automatically changes
11831 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
11832 Setting this variable to "0" disables this behavior.
11833 </para>
11834 </glossdef>
11835 </glossentry>
11836
11837 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
11838 <info>
11839 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)."
11840 </info>
11841 <glossdef>
11842 <para role="glossdeffirst">
11843<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11844 The date of the source code used to build the package.
11845 This variable applies only if the source was fetched from a Source Code Manager (SCM).
11846 </para>
11847 </glossdef>
11848 </glossentry>
11849
11850 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
11851 <info>
11852 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
11853 </info>
11854 <glossdef>
11855 <para role="glossdeffirst">
11856<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11857 Returns the version string of the current package.
11858 This string is used to help define the value of
11859 <link linkend='var-PV'><filename>PV</filename></link>.
11860 </para>
11861
11862 <para>
11863 The <filename>SRCPV</filename> variable is defined in the
11864 <filename>meta/conf/bitbake.conf</filename> configuration
11865 file in the
11866 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
11867 as follows:
11868 <literallayout class='monospaced'>
11869 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
11870 </literallayout>
11871 </para>
11872
11873 <para>
11874 Recipes that need to define <filename>PV</filename> do so
11875 with the help of the <filename>SRCPV</filename>.
11876 For example, the <filename>ofono</filename> recipe
11877 (<filename>ofono_git.bb</filename>) located in
11878 <filename>meta/recipes-connectivity</filename> in the
11879 Source Directory defines <filename>PV</filename> as
11880 follows:
11881 <literallayout class='monospaced'>
11882 PV = "0.12-git${SRCPV}"
11883 </literallayout>
11884 </para>
11885 </glossdef>
11886 </glossentry>
11887
11888 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
11889 <info>
11890 SRCREV[doc] = "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial and Bazaar only."
11891 </info>
11892 <glossdef>
11893 <para role="glossdeffirst">
11894<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11895 The revision of the source code used to build the package.
11896 This variable applies to Subversion, Git, Mercurial and
11897 Bazaar only.
11898 Note that if you want to build a fixed revision and you
11899 want to avoid performing a query on the remote repository
11900 every time BitBake parses your recipe, you should specify
11901 a <filename>SRCREV</filename> that is a
11902 full revision identifier and not just a tag.
11903 </para>
11904
11905 <note>
11906 For information on limitations when inheriting the latest
11907 revision of software using <filename>SRCREV</filename>,
11908 see the
11909 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
11910 variable description.
11911 </note>
11912 </glossdef>
11913 </glossentry>
11914
11915 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
11916 <info>
11917 SSTATE_DIR[doc] = "The directory for the shared state cache."
11918 </info>
11919 <glossdef>
11920 <para role="glossdeffirst">
11921<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11922 The directory for the shared state cache.
11923 </para>
11924 </glossdef>
11925 </glossentry>
11926
11927 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
11928 <info>
11929 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"."
11930 </info>
11931 <glossdef>
11932 <para role="glossdeffirst">
11933<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11934 If set to "1", allows fetches from
11935 mirrors that are specified in
11936 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
11937 to work even when fetching from the network has been
11938 disabled by setting <filename>BB_NO_NETWORK</filename>
11939 to "1".
11940 Using the
11941 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
11942 variable is useful if you have set
11943 <filename>SSTATE_MIRRORS</filename> to point to an
11944 internal server for your shared state cache, but
11945 you want to disable any other fetching from the network.
11946 </para>
11947 </glossdef>
11948 </glossentry>
11949
11950 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
11951 <info>
11952 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."
11953 </info>
11954 <glossdef>
11955 <para role="glossdeffirst">
11956<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11957 Configures the OpenEmbedded build system to search other
11958 mirror locations for prebuilt cache data objects before
11959 building out the data.
11960 This variable works like fetcher
11961 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
11962 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
11963 and points to the cache locations to check for the shared
11964 objects.
11965 </para>
11966
11967 <para>
11968 You can specify a filesystem directory or a remote URL such
11969 as HTTP or FTP.
11970 The locations you specify need to contain the shared state
11971 cache (sstate-cache) results from previous builds.
11972 The sstate-cache you point to can also be from builds on
11973 other machines.
11974 </para>
11975
11976 <para>
11977 If a mirror uses the same structure as
11978 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
11979 you need to add
11980 "PATH" at the end as shown in the examples below.
11981 The build system substitutes the correct path within the
11982 directory structure.
11983 <literallayout class='monospaced'>
11984 SSTATE_MIRRORS ?= "\
11985 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH \n \
11986 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
11987 </literallayout>
11988 </para>
11989 </glossdef>
11990 </glossentry>
11991
11992 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
11993 <info>
11994 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
11995 </info>
11996 <glossdef>
11997 <para role="glossdeffirst">
11998<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11999 Specifies the path to the <filename>/lib</filename>
12000 subdirectory of the sysroot directory for the
12001 build host.
12002 </para>
12003 </glossdef>
12004 </glossentry>
12005
12006 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
12007 <info>
12008 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)."
12009 </info>
12010 <glossdef>
12011 <para role="glossdeffirst">
12012<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12013 Specifies the path to the <filename>/lib</filename>
12014 subdirectory of the sysroot directory for the target
12015 for which the current recipe is being built
12016 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
12017 </para>
12018 </glossdef>
12019 </glossentry>
12020
12021 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
12022 <info>
12023 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)."
12024 </info>
12025 <glossdef>
12026 <para role="glossdeffirst">
12027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12028 Specifies the path to the
12029 <filename>/usr/bin</filename> subdirectory of the
12030 sysroot directory for the target for which the current
12031 recipe is being built
12032 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
12033 </para>
12034 </glossdef>
12035 </glossentry>
12036
12037 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
12038 <info>
12039 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."
12040 </info>
12041 <glossdef>
12042 <para role="glossdeffirst">
12043<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12044 Specifies the path to the directory containing binary
12045 configuration scripts.
12046 These scripts provide configuration information for
12047 other software that wants to make use of libraries or
12048 include files provided by the software associated with
12049 the script.
12050 <note>
12051 This style of build configuration has been largely
12052 replaced by <filename>pkg-config</filename>.
12053 Consequently, if <filename>pkg-config</filename>
12054 is supported by the library to which you are linking,
12055 it is recommended you use
12056 <filename>pkg-config</filename> instead of a
12057 provided configuration script.
12058 </note>
12059 </para>
12060 </glossdef>
12061 </glossentry>
12062
12063 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
12064 <info>
12065 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
12066 </info>
12067 <glossdef>
12068 <para role="glossdeffirst">
12069<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12070 Specifies the path to the
12071 <filename>/usr/bin</filename> subdirectory of the
12072 sysroot directory for the build host.
12073 </para>
12074 </glossdef>
12075 </glossentry>
12076
12077 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
12078 <info>
12079 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)."
12080 </info>
12081 <glossdef>
12082 <para role="glossdeffirst">
12083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12084 Specifies the path to the <filename>/usr/share</filename>
12085 subdirectory of the sysroot directory for the target
12086 for which the current recipe is being built
12087 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
12088 </para>
12089 </glossdef>
12090 </glossentry>
12091
12092 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
12093 <info>
12094 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
12095 </info>
12096 <glossdef>
12097 <para role="glossdeffirst">
12098<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12099 Specifies the path to the <filename>/usr/share</filename>
12100 subdirectory of the sysroot directory for the build host.
12101 </para>
12102 </glossdef>
12103 </glossentry>
12104
12105 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
12106 <info>
12107 STAGING_DIR[doc] = "Specifies the path to the top-level sysroots directory (i.e. ${TMPDIR}/sysroots)."
12108 </info>
12109 <glossdef>
12110 <para role="glossdeffirst">
12111<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12112 Specifies the path to the top-level sysroots directory
12113 (i.e.
12114 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots</filename>).
12115 <note>
12116 Recipes should never write files directly under
12117 this directory because the OpenEmbedded build system
12118 manages the directory automatically.
12119 Instead, files should be installed to
12120 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
12121 within your recipe's
12122 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
12123 task and then the OpenEmbedded build system will
12124 stage a subset of those files into the sysroot.
12125 </note>
12126 </para>
12127 </glossdef>
12128 </glossentry>
12129
12130 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
12131 <info>
12132 STAGING_DIR_HOST[doc] = "Specifies the path to the primary sysroot directory for which the target is being built."
12133 </info>
12134 <glossdef>
12135 <para role="glossdeffirst">
12136<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12137 Specifies the path to the primary sysroot directory for
12138 which the target is being built.
12139 Depending on the type of recipe and the build target, the
12140 recipe's value is as follows:
12141 <itemizedlist>
12142 <listitem><para>For recipes building for the target
12143 machine, the value is "${STAGING_DIR}/${MACHINE}".
12144 </para></listitem>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012145 <listitem><para>For native recipes building
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012146 for the build host, the value is empty given the
12147 assumption that when building for the build host,
12148 the build host's own directories should be used.
12149 </para></listitem>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012150 <listitem><para>For native SDK
12151 recipes that build for the SDK
12152 (<filename>nativesdk</filename>), the value is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012153 "${STAGING_DIR}/${MULTIMACH_HOST_SYS}".
12154 </para></listitem>
12155 </itemizedlist>
12156 </para>
12157 </glossdef>
12158 </glossentry>
12159
12160 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
12161 <info>
12162 STAGING_DIR_NATIVE[doc] = "Specifies the path to the sysroot directory for the build host."
12163 </info>
12164 <glossdef>
12165 <para role="glossdeffirst">
12166<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12167 Specifies the path to the sysroot directory for the
12168 build host.
12169 </para>
12170 </glossdef>
12171 </glossentry>
12172
12173 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
12174 <info>
12175 STAGING_DIR_TARGET[doc] = "Specifies the path to the sysroot directory for the target for which the current recipe is being built."
12176 </info>
12177 <glossdef>
12178 <para role="glossdeffirst">
12179<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12180 Specifies the path to the sysroot directory for the
12181 target for which the current recipe is being built.
12182 In most cases, this path is the
12183 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
12184 </para>
12185
12186 <para>
12187 Some recipes build binaries that can run on the target
12188 system but those binaries in turn generate code for
12189 another different system (e.g. cross-canadian recipes).
12190 Using terminology from GNU, the primary system is referred
12191 to as the "HOST" and the secondary, or different, system is
12192 referred to as the "TARGET".
12193 Thus, the binaries run on the "HOST" system and
12194 and generate binaries for the "TARGET" system.
12195 <filename>STAGING_DIR_TARGET</filename> points to the
12196 sysroot used for the "TARGET" system.
12197 </para>
12198 </glossdef>
12199 </glossentry>
12200
12201 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
12202 <info>
12203 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
12204 </info>
12205 <glossdef>
12206 <para role="glossdeffirst">
12207<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12208 Specifies the path to the <filename>/etc</filename>
12209 subdirectory of the sysroot directory for the
12210 build host.
12211 </para>
12212 </glossdef>
12213 </glossentry>
12214
12215 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
12216 <info>
12217 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)."
12218 </info>
12219 <glossdef>
12220 <para role="glossdeffirst">
12221<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12222 Specifies the path to the <filename>/usr</filename>
12223 subdirectory of the sysroot directory for the target
12224 for which the current recipe is being built
12225 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
12226 </para>
12227 </glossdef>
12228 </glossentry>
12229
12230 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
12231 <info>
12232 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)."
12233 </info>
12234 <glossdef>
12235 <para role="glossdeffirst">
12236<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12237 Specifies the path to the
12238 <filename>/usr/include</filename> subdirectory of the
12239 sysroot directory for the target for which the current
12240 recipe being built
12241 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
12242 </para>
12243 </glossdef>
12244 </glossentry>
12245
12246 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
12247 <info>
12248 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
12249 </info>
12250 <glossdef>
12251 <para role="glossdeffirst">
12252<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12253 Specifies the path to the <filename>/usr/include</filename>
12254 subdirectory of the sysroot directory for the build host.
12255 </para>
12256 </glossdef>
12257 </glossentry>
12258
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012259 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
12260 <info>
12261 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
12262 </info>
12263 <glossdef>
12264 <para role="glossdeffirst">
12265<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12266 Points to the directory containing the kernel build
12267 artifacts.
12268 Recipes building software that needs to access kernel
12269 build artifacts
12270 (e.g. <filename>systemtap-uprobes</filename>) can look in
12271 the directory specified with the
12272 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
12273 find these artifacts after the kernel has been built.
12274 </para>
12275 </glossdef>
12276 </glossentry>
12277
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012278 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
12279 <info>
12280 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
12281 </info>
12282 <glossdef>
12283 <para role="glossdeffirst">
12284<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12285 The directory with kernel headers that are required to build out-of-tree
12286 modules.
12287 </para>
12288 </glossdef>
12289 </glossentry>
12290
12291 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
12292 <info>
12293 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)."
12294 </info>
12295 <glossdef>
12296 <para role="glossdeffirst">
12297<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12298 Specifies the path to the <filename>/usr/lib</filename>
12299 subdirectory of the sysroot directory for the target for
12300 which the current recipe is being built
12301 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
12302 </para>
12303 </glossdef>
12304 </glossentry>
12305
12306 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
12307 <info>
12308 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
12309 </info>
12310 <glossdef>
12311 <para role="glossdeffirst">
12312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12313 Specifies the path to the <filename>/usr/lib</filename>
12314 subdirectory of the sysroot directory for the build host.
12315 </para>
12316 </glossdef>
12317 </glossentry>
12318
12319 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
12320 <info>
12321 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."
12322 </info>
12323 <glossdef>
12324 <para role="glossdeffirst">
12325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12326 Specifies the base path used to create recipe stamp files.
12327 The path to an actual stamp file is constructed by evaluating this
12328 string and then appending additional information.
12329 Currently, the default assignment for <filename>STAMP</filename>
12330 as set in the <filename>meta/conf/bitbake.conf</filename> file
12331 is:
12332 <literallayout class='monospaced'>
12333 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
12334 </literallayout>
12335 </para>
12336
12337 <para>
12338 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
12339 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
12340 <link linkend='var-PN'><filename>PN</filename></link>,
12341 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
12342 <link linkend='var-PV'><filename>PV</filename></link>, and
12343 <link linkend='var-PR'><filename>PR</filename></link> for related variable
12344 information.
12345 </para>
12346 </glossdef>
12347 </glossentry>
12348
12349 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
12350 <info>
12351 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
12352 </info>
12353 <glossdef>
12354 <para role="glossdeffirst">
12355<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12356 Specifies the base directory in which the OpenEmbedded
12357 build system places stamps.
12358 The default directory is
12359 <filename>${TMPDIR}/stamps</filename>.
12360 </para>
12361 </glossdef>
12362 </glossentry>
12363
12364 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
12365 <info>
12366 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
12367 </info>
12368 <glossdef>
12369 <para role="glossdeffirst">
12370<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12371 The minimal command and arguments to run
12372 <filename>strip</filename>, which is used to strip
12373 symbols.
12374 </para>
12375 </glossdef>
12376 </glossentry>
12377
12378 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
12379 <info>
12380 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."
12381 </info>
12382 <glossdef>
12383 <para role="glossdeffirst">
12384<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12385 The short (72 characters or less) summary of the binary package for packaging
12386 systems such as <filename>opkg</filename>, <filename>rpm</filename> or
12387 <filename>dpkg</filename>.
12388 By default, <filename>SUMMARY</filename> is used to define
12389 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
12390 variable if <filename>DESCRIPTION</filename> is not set
12391 in the recipe.
12392 </para>
12393 </glossdef>
12394 </glossentry>
12395
12396 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
12397 <info>
12398 SVNDIR[doc] = "The directory where Subversion checkouts will be stored."
12399 </info>
12400 <glossdef>
12401 <para role="glossdeffirst">
12402<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12403 The directory in which files checked out of a Subversion
12404 system are stored.
12405 </para>
12406 </glossdef>
12407 </glossentry>
12408
12409 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
12410 <info>
12411 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
12412 </info>
12413 <glossdef>
12414 <para role="glossdeffirst">
12415<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12416 Specifies the kernel boot default console.
12417 If you want to use a console other than the default,
12418 set this variable in your recipe as follows where "X" is
12419 the console number you want to use:
12420 <literallayout class='monospaced'>
12421 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
12422 </literallayout>
12423 </para>
12424
12425 <para>
12426 The
12427 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12428 class initially sets this variable to null but then checks
12429 for a value later.
12430 </para>
12431 </glossdef>
12432 </glossentry>
12433
12434 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
12435 <info>
12436 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
12437 </info>
12438 <glossdef>
12439 <para role="glossdeffirst">
12440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12441 Lists additional options to add to the syslinux file.
12442 You need to set this variable in your recipe.
12443 If you want to list multiple options, separate the options
12444 with a semicolon character (<filename>;</filename>).
12445 </para>
12446
12447 <para>
12448 The
12449 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12450 class uses this variable to create a set of options.
12451 </para>
12452 </glossdef>
12453 </glossentry>
12454
12455 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
12456 <info>
12457 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
12458 </info>
12459 <glossdef>
12460 <para role="glossdeffirst">
12461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12462 Specifies the alternate serial port or turns it off.
12463 To turn off serial, set this variable to an empty string
12464 in your recipe.
12465 The variable's default value is set in the
12466 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12467 as follows:
12468 <literallayout class='monospaced'>
12469 SYSLINUX_SERIAL ?= "0 115200"
12470 </literallayout>
12471 </para>
12472
12473 <para>
12474 The class checks for and uses the variable as needed.
12475 </para>
12476 </glossdef>
12477 </glossentry>
12478
12479 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
12480 <info>
12481 SYSLINUX_SPLASH[doc] = "An .LSS file used as the background for the VGA boot menu when you are using the boot menu."
12482 </info>
12483 <glossdef>
12484 <para role="glossdeffirst">
12485<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12486 An <filename>.LSS</filename> file used as the background
12487 for the VGA boot menu when you are using the boot menu.
12488 You need to set this variable in your recipe.
12489 </para>
12490
12491 <para>
12492 The
12493 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12494 class checks for this variable and if found, the
12495 OpenEmbedded build system installs the splash screen.
12496 </para>
12497 </glossdef>
12498 </glossentry>
12499
12500 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
12501 <info>
12502 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
12503 </info>
12504 <glossdef>
12505 <para role="glossdeffirst">
12506<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12507 Specifies the alternate console=tty... kernel boot argument.
12508 The variable's default value is set in the
12509 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
12510 as follows:
12511 <literallayout class='monospaced'>
12512 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
12513 </literallayout>
12514 </para>
12515
12516 <para>
12517 The class checks for and uses the variable as needed.
12518 </para>
12519 </glossdef>
12520 </glossentry>
12521
12522 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
12523 <info>
12524 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."
12525 </info>
12526 <glossdef>
12527 <para role="glossdeffirst">
12528<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12529 A list of functions to execute after files are staged into
12530 the sysroot.
12531 These functions are usually used to apply additional
12532 processing on the staged files, or to stage additional
12533 files.
12534 </para>
12535 </glossdef>
12536 </glossentry>
12537
12538 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
12539 <info>
12540 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."
12541 </info>
12542 <glossdef>
12543 <para role="glossdeffirst">
12544<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12545 When inheriting the
12546 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12547 class, this variable specifies whether the service you have
12548 specified in
12549 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
12550 should be started automatically or not.
12551 By default, the service is enabled to automatically start
12552 at boot time.
12553 The default setting is in the
12554 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12555 class as follows:
12556 <literallayout class='monospaced'>
12557 SYSTEMD_AUTO_ENABLE ??= "enable"
12558 </literallayout>
12559 </para>
12560
12561 <para>
12562 You can disable the service by setting the variable to
12563 "disable".
12564 </para>
12565 </glossdef>
12566 </glossentry>
12567
12568 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
12569 <info>
12570 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."
12571 </info>
12572 <glossdef>
12573 <para role="glossdeffirst">
12574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12575 When inheriting the
12576 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12577 class, this variable locates the systemd unit files when
12578 they are not found in the main recipe's package.
12579 By default, the
12580 <filename>SYSTEMD_PACKAGES</filename> variable is set
12581 such that the systemd unit files are assumed to reside in
12582 the recipes main package:
12583 <literallayout class='monospaced'>
12584 SYSTEMD_PACKAGES ?= "${PN}"
12585 </literallayout>
12586 </para>
12587
12588 <para>
12589 If these unit files are not in this recipe's main
12590 package, you need to use
12591 <filename>SYSTEMD_PACKAGES</filename> to list the package
12592 or packages in which the build system can find the systemd
12593 unit files.
12594 </para>
12595 </glossdef>
12596 </glossentry>
12597
12598 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
12599 <info>
12600 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
12601 </info>
12602 <glossdef>
12603 <para role="glossdeffirst">
12604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12605 When inheriting the
12606 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
12607 class, this variable specifies the systemd service name for
12608 a package.
12609 </para>
12610
12611 <para>
12612 When you specify this file in your recipe, use a package
12613 name override to indicate the package to which the value
12614 applies.
12615 Here is an example from the connman recipe:
12616 <literallayout class='monospaced'>
12617 SYSTEMD_SERVICE_${PN} = "connman.service"
12618 </literallayout>
12619 </para>
12620 </glossdef>
12621 </glossentry>
12622
12623 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
12624 <info>
12625 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should be running a getty, the default is '1'."
12626 </info>
12627 <glossdef>
12628 <para role="glossdeffirst">
12629<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12630 When using
12631 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
12632 specifies a space-separated list of the virtual terminals
12633 that should be running a
12634 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
12635 (allowing login), assuming
12636 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
12637 is not set to "0".
12638 </para>
12639
12640 <para>
12641 The default value for
12642 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
12643 (i.e. only run a getty on the first virtual terminal).
12644 </para>
12645 </glossdef>
12646 </glossentry>
12647
12648 </glossdiv>
12649
12650 <glossdiv id='var-glossary-t'><title>T</title>
12651
12652 <glossentry id='var-T'><glossterm>T</glossterm>
12653 <info>
12654 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."
12655 </info>
12656 <glossdef>
12657 <para role="glossdeffirst">
12658<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12659 This variable points to a directory were BitBake places
12660 temporary files, which consist mostly of task logs and
12661 scripts, when building a particular recipe.
12662 The variable is typically set as follows:
12663 <literallayout class='monospaced'>
12664 T = "${WORKDIR}/temp"
12665 </literallayout>
12666 </para>
12667
12668 <para>
12669 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12670 is the directory into which BitBake unpacks and builds the
12671 recipe.
12672 The default <filename>bitbake.conf</filename> file sets this variable.</para>
12673 <para>The <filename>T</filename> variable is not to be confused with
12674 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
12675 which points to the root of the directory tree where BitBake
12676 places the output of an entire build.
12677 </para>
12678 </glossdef>
12679 </glossentry>
12680
12681 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
12682 <info>
12683 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
12684 </info>
12685 <glossdef>
12686 <para role="glossdeffirst">
12687<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12688 The target machine's architecture.
12689 The OpenEmbedded build system supports many
12690 architectures.
12691 Here is an example list of architectures supported.
12692 This list is by no means complete as the architecture
12693 is configurable:
12694 <literallayout class='monospaced'>
12695 arm
12696 i586
12697 x86_64
12698 powerpc
12699 powerpc64
12700 mips
12701 mipsel
12702 </literallayout>
12703 </para>
12704
12705 <para>
12706 For additional information on machine architectures, see
12707 the
12708 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
12709 variable.
12710 </para>
12711 </glossdef>
12712 </glossentry>
12713
12714 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
12715 <info>
12716 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
12717 </info>
12718 <glossdef>
12719 <para role="glossdeffirst">
12720<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12721 Specifies architecture-specific assembler flags for the
12722 target system.
12723 <filename>TARGET_AS_ARCH</filename> is initialized from
12724 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
12725 by default in the BitBake configuration file
12726 (<filename>meta/conf/bitbake.conf</filename>):
12727 <literallayout class='monospaced'>
12728 TARGET_AS_ARCH = "${TUNE_ASARGS}"
12729 </literallayout>
12730 </para>
12731 </glossdef>
12732 </glossentry>
12733
12734 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
12735 <info>
12736 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
12737 </info>
12738 <glossdef>
12739 <para role="glossdeffirst">
12740<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12741 Specifies architecture-specific C compiler flags for the
12742 target system.
12743 <filename>TARGET_CC_ARCH</filename> is initialized from
12744 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
12745 by default.
12746 <note>
12747 It is a common workaround to append
12748 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12749 to <filename>TARGET_CC_ARCH</filename>
12750 in recipes that build software for the target that
12751 would not otherwise respect the exported
12752 <filename>LDFLAGS</filename> variable.
12753 </note>
12754 </para>
12755 </glossdef>
12756 </glossentry>
12757
12758 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
12759 <info>
12760 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
12761 </info>
12762 <glossdef>
12763 <para role="glossdeffirst">
12764<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12765 This is a specific kernel compiler flag for a CPU or
12766 Application Binary Interface (ABI) tune.
12767 The flag is used rarely and only for cases where a
12768 userspace
12769 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
12770 is not compatible with the kernel compilation.
12771 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
12772 allows the kernel (and associated modules) to use a
12773 different configuration.
12774 See the
12775 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
12776 file in the
12777 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
12778 for an example.
12779 </para>
12780 </glossdef>
12781 </glossentry>
12782
12783 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
12784 <info>
12785 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
12786 </info>
12787 <glossdef>
12788 <para role="glossdeffirst">
12789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12790 Specifies the flags to pass to the C compiler when building
12791 for the target.
12792 When building in the target context,
12793 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
12794 is set to the value of this variable by default.
12795 </para>
12796
12797 <para>
12798 Additionally, the SDK's environment setup script sets
12799 the
12800 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
12801 variable in the environment to the
12802 <filename>TARGET_CFLAGS</filename> value so that
12803 executables built using the SDK also have the flags
12804 applied.
12805 </para>
12806 </glossdef>
12807 </glossentry>
12808
12809 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
12810 <info>
12811 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."
12812 </info>
12813 <glossdef>
12814 <para role="glossdeffirst">
12815<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12816 Specifies the flags to pass to the C pre-processor
12817 (i.e. to both the C and the C++ compilers) when building
12818 for the target.
12819 When building in the target context,
12820 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
12821 is set to the value of this variable by default.
12822 </para>
12823
12824 <para>
12825 Additionally, the SDK's environment setup script sets
12826 the
12827 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
12828 variable in the environment to the
12829 <filename>TARGET_CPPFLAGS</filename> value so that
12830 executables built using the SDK also have the flags
12831 applied.
12832 </para>
12833 </glossdef>
12834 </glossentry>
12835
12836 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
12837 <info>
12838 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
12839 </info>
12840 <glossdef>
12841 <para role="glossdeffirst">
12842<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12843 Specifies the flags to pass to the C++ compiler when
12844 building for the target.
12845 When building in the target context,
12846 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
12847 is set to the value of this variable by default.
12848 </para>
12849
12850 <para>
12851 Additionally, the SDK's environment setup script sets
12852 the
12853 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
12854 variable in the environment to the
12855 <filename>TARGET_CXXFLAGS</filename> value so that
12856 executables built using the SDK also have the flags
12857 applied.
12858 </para>
12859 </glossdef>
12860 </glossentry>
12861
12862 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
12863 <info>
12864 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."
12865 </info>
12866 <glossdef>
12867 <para role="glossdeffirst">
12868<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12869 Specifies the method for handling FPU code.
12870 For FPU-less targets, which include most ARM CPUs, the variable must be
12871 set to "soft".
12872 If not, the kernel emulation gets used, which results in a performance penalty.
12873 </para>
12874 </glossdef>
12875 </glossentry>
12876
12877 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
12878 <info>
12879 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
12880 </info>
12881 <glossdef>
12882 <para role="glossdeffirst">
12883<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12884 Specifies architecture-specific linker flags for the
12885 target system.
12886 <filename>TARGET_LD_ARCH</filename> is initialized from
12887 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
12888 by default in the BitBake configuration file
12889 (<filename>meta/conf/bitbake.conf</filename>):
12890 <literallayout class='monospaced'>
12891 TARGET_LD_ARCH = "${TUNE_LDARGS}"
12892 </literallayout>
12893 </para>
12894 </glossdef>
12895 </glossentry>
12896
12897 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
12898 <info>
12899 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
12900 </info>
12901 <glossdef>
12902 <para role="glossdeffirst">
12903<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12904 Specifies the flags to pass to the linker when building
12905 for the target.
12906 When building in the target context,
12907 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12908 is set to the value of this variable by default.
12909 </para>
12910
12911 <para>
12912 Additionally, the SDK's environment setup script sets
12913 the
12914 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
12915 variable in the environment to the
12916 <filename>TARGET_LDFLAGS</filename> value so that
12917 executables built using the SDK also have the flags
12918 applied.
12919 </para>
12920 </glossdef>
12921 </glossentry>
12922
12923 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
12924 <info>
12925 TARGET_OS[doc] = "Specifies the target's operating system."
12926 </info>
12927 <glossdef>
12928 <para role="glossdeffirst">
12929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12930 Specifies the target's operating system.
12931 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
12932 to "linux-uclibc" for <filename>uclibc</filename>.
12933 For ARM/EABI targets, there are also "linux-gnueabi" and
12934 "linux-uclibc-gnueabi" values possible.
12935 </para>
12936 </glossdef>
12937 </glossentry>
12938
12939 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
12940 <info>
12941 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
12942 </info>
12943 <glossdef>
12944 <para role="glossdeffirst">
12945<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12946 Specifies the prefix used for the toolchain binary target
12947 tools.
12948 </para>
12949
12950 <para>
12951 Depending on the type of recipe and the build target,
12952 <filename>TARGET_PREFIX</filename> is set as follows:
12953 <itemizedlist>
12954 <listitem><para>
12955 For recipes building for the target machine,
12956 the value is
12957 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
12958 </para></listitem>
12959 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012960 For native recipes, the build system sets the
12961 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012962 <filename>BUILD_PREFIX</filename>.
12963 </para></listitem>
12964 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012965 For native SDK recipes
12966 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012967 build system sets the variable to the value of
12968 <filename>SDK_PREFIX</filename>.
12969 </para></listitem>
12970 </itemizedlist>
12971 </para>
12972 </glossdef>
12973 </glossentry>
12974
12975 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
12976 <info>
12977 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
12978 </info>
12979 <glossdef>
12980 <para role="glossdeffirst">
12981<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12982 Specifies the system, including the architecture and the
12983 operating system, for which the build is occurring in
12984 the context of the current recipe.
12985 </para>
12986
12987 <para>
12988 The OpenEmbedded build system automatically sets this
12989 variable based on
12990 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
12991 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
12992 and
12993 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
12994 variables.
12995 <note>
12996 You do not need to set the
12997 <filename>TARGET_SYS</filename> variable yourself.
12998 </note>
12999 </para>
13000
13001 <para>
13002 Consider these two examples:
13003 <itemizedlist>
13004 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013005 Given a native recipe on a 32-bit, x86 machine
13006 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013007 </para></listitem>
13008 <listitem><para>
13009 Given a recipe being built for a little-endian,
13010 MIPS target running Linux, the value might be
13011 "mipsel-linux".
13012 </para></listitem>
13013 </itemizedlist>
13014 </para>
13015 </glossdef>
13016 </glossentry>
13017
13018 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
13019 <info>
13020 TARGET_VENDOR[doc] = "The name of the target vendor."
13021 </info>
13022 <glossdef>
13023 <para role="glossdeffirst">
13024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13025 Specifies the name of the target vendor.
13026 </para>
13027 </glossdef>
13028 </glossentry>
13029
13030 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
13031 <info>
13032 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
13033 </info>
13034 <glossdef>
13035 <para role="glossdeffirst">
13036<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13037 Specifies a suffix to be appended onto the
13038 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
13039 value.
13040 The suffix identifies the <filename>libc</filename> variant
13041 for building.
13042 When you are building for multiple variants with the same
13043 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
13044 this mechanism ensures that output for different
13045 <filename>libc</filename> variants is kept separate to
13046 avoid potential conflicts.
13047 </para>
13048
13049 <para>
13050 In the <filename>defaultsetup.conf</filename> file, the
13051 default value of <filename>TCLIBCAPPEND</filename> is
13052 "-${TCLIBC}".
13053 However, distros such as poky, which normally only support
13054 one <filename>libc</filename> variant, set
13055 <filename>TCLIBCAPPEND</filename> to "" in their distro
13056 configuration file resulting in no suffix being applied.
13057 </para>
13058 </glossdef>
13059 </glossentry>
13060
13061 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
13062 <info>
13063 TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc' or 'uclibc'."
13064 </info>
13065 <glossdef>
13066 <para role="glossdeffirst">
13067<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13068 Specifies the GNU standard C library (<filename>libc</filename>)
13069 variant to use during the build process.
13070 This variable replaces <filename>POKYLIBC</filename>, which is no longer
13071 supported.
13072 </para>
13073
13074 <para>
13075 You can select "glibc" or "uclibc".
13076 </para>
13077 </glossdef>
13078 </glossentry>
13079
13080 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
13081 <info>
13082 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
13083 </info>
13084 <glossdef>
13085 <para role="glossdeffirst">
13086<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13087 Specifies the toolchain selector.
13088 <filename>TCMODE</filename> controls the characteristics
13089 of the generated packages and images by telling the
13090 OpenEmbedded build system which toolchain profile to use.
13091 By default, the OpenEmbedded build system builds its own
13092 internal toolchain.
13093 The variable's default value is "default", which uses
13094 that internal toolchain.
13095 <note>
13096 If <filename>TCMODE</filename> is set to a value
13097 other than "default", then it is your responsibility
13098 to ensure that the toolchain is compatible with the
13099 default toolchain.
13100 Using older or newer versions of these components
13101 might cause build problems.
13102 See the
13103 <ulink url='&YOCTO_RELEASE_NOTES;'>Release Notes</ulink>
13104 for the specific components with which the toolchain
13105 must be compatible.
13106 </note>
13107 </para>
13108
13109 <para>
13110 The <filename>TCMODE</filename> variable is similar to
13111 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
13112 which controls the variant of the GNU standard C library
13113 (<filename>libc</filename>) used during the build process:
13114 <filename>glibc</filename> or <filename>uclibc</filename>.
13115 </para>
13116
13117 <para>
13118 With additional layers, it is possible to use a pre-compiled
13119 external toolchain.
13120 One example is the Sourcery G++ Toolchain.
13121 The support for this toolchain resides in the separate
13122 <trademark class='registered'>Mentor Graphics</trademark>
13123 <filename>meta-sourcery</filename> layer at
13124 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
13125 </para>
13126
13127 <para>
13128 The layer's <filename>README</filename> file contains
13129 information on how to use the Sourcery G++ Toolchain as
13130 an external toolchain.
13131 In summary, you must be sure to add the layer to your
13132 <filename>bblayers.conf</filename> file in front of the
13133 <filename>meta</filename> layer and then set the
13134 <filename>EXTERNAL_TOOLCHAIN</filename>
13135 variable in your <filename>local.conf</filename> file
13136 to the location in which you installed the toolchain.
13137 </para>
13138
13139 <para>
13140 The fundamentals used for this example apply to any
13141 external toolchain.
13142 You can use <filename>meta-sourcery</filename> as a
13143 template for adding support for other external toolchains.
13144 </para>
13145 </glossdef>
13146 </glossentry>
13147
13148 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
13149 <info>
13150 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
13151 </info>
13152 <glossdef>
13153 <para role="glossdeffirst">
13154<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13155 The location the OpenEmbedded build system uses to export
13156 tests when the
13157 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
13158 variable is set to "1".
13159 </para>
13160
13161 <para>
13162 The <filename>TEST_EXPORT_DIR</filename> variable defaults
13163 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
13164 </para>
13165 </glossdef>
13166 </glossentry>
13167
13168 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
13169 <info>
13170 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."
13171 </info>
13172 <glossdef>
13173 <para role="glossdeffirst">
13174<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13175 Specifies to export the tests only.
13176 Set this variable to "1" if you do not want to run the
13177 tests but you want them to be exported in a manner that
13178 you to run them outside of the build system.
13179 </para>
13180 </glossdef>
13181 </glossentry>
13182
13183 <glossentry id='var-TEST_IMAGE'><glossterm>TEST_IMAGE</glossterm>
13184 <info>
13185 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."
13186 </info>
13187 <glossdef>
13188 <para role="glossdeffirst">
13189<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13190 Automatically runs the series of automated tests for
13191 images when an image is successfully built.
13192 </para>
13193
13194 <para>
13195 These tests are written in Python making use of the
13196 <filename>unittest</filename> module, and the majority of
13197 them run commands on the target system over
13198 <filename>ssh</filename>.
13199 You can set this variable to "1" in your
13200 <filename>local.conf</filename> file in the
13201 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
13202 to have the OpenEmbedded build system automatically run
13203 these tests after an image successfully builds:
13204 <literallayout class='monospaced'>
13205 TEST_IMAGE = "1"
13206 </literallayout>
13207 For more information on enabling, running, and writing
13208 these tests, see the
13209 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
13210 section in the Yocto Project Development Manual and the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013211 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013212 section.
13213 </para>
13214 </glossdef>
13215 </glossentry>
13216
13217 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
13218 <info>
13219 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"."
13220 </info>
13221 <glossdef>
13222 <para role="glossdeffirst">
13223<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13224 Holds the SSH log and the boot log for QEMU machines.
13225 The <filename>TEST_LOG_DIR</filename> variable defaults
13226 to <filename>"${WORKDIR}/testimage"</filename>.
13227 <note>
13228 Actual test results reside in the task log
13229 (<filename>log.do_testimage</filename>), which is in
13230 the <filename>${WORKDIR}/temp/</filename> directory.
13231 </note>
13232 </para>
13233 </glossdef>
13234 </glossentry>
13235
13236 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
13237 <info>
13238 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
13239 </info>
13240 <glossdef>
13241 <para role="glossdeffirst">
13242<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13243 For automated hardware testing, specifies the command to
13244 use to control the power of the target machine under test.
13245 Typically, this command would point to a script that
13246 performs the appropriate action (e.g. interacting
13247 with a web-enabled power strip).
13248 The specified command should expect to receive as the last
13249 argument "off", "on" or "cycle" specifying to power off,
13250 on, or cycle (power off and then power on) the device,
13251 respectively.
13252 </para>
13253 </glossdef>
13254 </glossentry>
13255
13256 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
13257 <info>
13258 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
13259 </info>
13260 <glossdef>
13261 <para role="glossdeffirst">
13262<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13263 For automated hardware testing, specifies additional
13264 arguments to pass through to the command specified in
13265 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
13266 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
13267 is optional.
13268 You can use it if you wish, for example, to separate the
13269 machine-specific and non-machine-specific parts of the
13270 arguments.
13271 </para>
13272 </glossdef>
13273 </glossentry>
13274
13275 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
13276 <info>
13277 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
13278 </info>
13279 <glossdef>
13280 <para role="glossdeffirst">
13281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13282 The time in seconds allowed for an image to boot before
13283 automated runtime tests begin to run against an
13284 image.
13285 The default timeout period to allow the boot process to
13286 reach the login prompt is 500 seconds.
13287 You can specify a different value in the
13288 <filename>local.conf</filename> file.
13289 </para>
13290
13291 <para>
13292 For more information on testing images, see the
13293 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
13294 section in the Yocto Project Development Manual.
13295 </para>
13296 </glossdef>
13297 </glossentry>
13298
13299 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
13300 <info>
13301 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."
13302 </info>
13303 <glossdef>
13304 <para role="glossdeffirst">
13305<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13306 For automated hardware testing, specifies the command
13307 to use to connect to the serial console of the target
13308 machine under test.
13309 This command simply needs to connect to the serial console
13310 and forward that connection to standard input and output
13311 as any normal terminal program does.
13312 </para>
13313
13314 <para>
13315 For example, to use the Picocom terminal program on
13316 serial device <filename>/dev/ttyUSB0</filename> at
13317 115200bps, you would set the variable as follows:
13318 <literallayout class='monospaced'>
13319 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
13320 </literallayout>
13321 </para>
13322 </glossdef>
13323 </glossentry>
13324
13325 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
13326 <info>
13327 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
13328 </info>
13329 <glossdef>
13330 <para role="glossdeffirst">
13331<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13332 For automated hardware testing, specifies additional
13333 arguments to pass through to the command specified in
13334 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
13335 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
13336 is optional.
13337 You can use it if you wish, for example, to separate the
13338 machine-specific and non-machine-specific parts of the
13339 command.
13340 </para>
13341 </glossdef>
13342 </glossentry>
13343
13344 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
13345 <info>
13346 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
13347 </info>
13348 <glossdef>
13349 <para role="glossdeffirst">
13350<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13351 The IP address of the build machine (host machine).
13352 This IP address is usually automatically detected.
13353 However, if detection fails, this variable needs to be set
13354 to the IP address of the build machine (i.e. where
13355 the build is taking place).
13356 <note>
13357 The <filename>TEST_SERVER_IP</filename> variable
13358 is only used for a small number of tests such as
13359 the "smart" test suite, which needs to download
13360 packages from <filename>DEPLOY_DIR/rpm</filename>.
13361 </note>
13362 </para>
13363 </glossdef>
13364 </glossentry>
13365
13366 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
13367 <info>
13368 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
13369 </info>
13370 <glossdef>
13371 <para role="glossdeffirst">
13372<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13373 Specifies the target controller to use when running tests
13374 against a test image.
13375 The default controller to use is "qemu":
13376 <literallayout class='monospaced'>
13377 TEST_TARGET = "qemu"
13378 </literallayout>
13379 </para>
13380
13381 <para>
13382 A target controller is a class that defines how an
13383 image gets deployed on a target and how a target is started.
13384 A layer can extend the controllers by adding a module
13385 in the layer's <filename>/lib/oeqa/controllers</filename>
13386 directory and by inheriting the
13387 <filename>BaseTarget</filename> class, which is an abstract
13388 class that cannot be used as a value of
13389 <filename>TEST_TARGET</filename>.
13390 </para>
13391
13392 <para>
13393 You can provide the following arguments with
13394 <filename>TEST_TARGET</filename>:
13395 <itemizedlist>
13396 <listitem><para><emphasis>"qemu" and "QemuTarget":</emphasis>
13397 Boots a QEMU image and runs the tests.
13398 See the
13399 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
13400 section in the Yocto Project Development Manual for
13401 more information.
13402 </para></listitem>
13403 <listitem><para><emphasis>"simpleremote" and "SimpleRemoteTarget":</emphasis>
13404 Runs the tests on target hardware that is already
13405 up and running.
13406 The hardware can be on the network or it can be
13407 a device running an image on QEMU.
13408 You must also set
13409 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
13410 when you use "simpleremote" or "SimpleRemoteTarget".
13411 <note>
13412 This argument is defined in
13413 <filename>meta/lib/oeqa/targetcontrol.py</filename>.
13414 The small caps names are kept for compatibility
13415 reasons.
13416 </note>
13417 </para></listitem>
13418 <listitem><para><emphasis>"GummibootTarget":</emphasis>
13419 Automatically deploys and runs tests on an
13420 EFI-enabled machine that has a master image
13421 installed.
13422 <note>
13423 This argument is defined in
13424 <filename>meta/lib/oeqa/controllers/masterimage.py</filename>.
13425 </note>
13426 </para></listitem>
13427 </itemizedlist>
13428 </para>
13429
13430 <para>
13431 For information on running tests on hardware, see the
13432 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
13433 section in the Yocto Project Development Manual.
13434 </para>
13435 </glossdef>
13436 </glossentry>
13437
13438 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
13439 <info>
13440 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
13441 </info>
13442 <glossdef>
13443 <para role="glossdeffirst">
13444<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13445 The IP address of your hardware under test.
13446 The <filename>TEST_TARGET_IP</filename> variable has no
13447 effect when
13448 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
13449 is set to "qemu".
13450 </para>
13451
13452 <para>
13453 When you specify the IP address, you can also include a
13454 port.
13455 Here is an example:
13456 <literallayout class='monospaced'>
13457 TEST_TARGET_IP = "192.168.1.4:2201"
13458 </literallayout>
13459 Specifying a port is useful when SSH is started on a
13460 non-standard port or in cases when your hardware under test
13461 is behind a firewall or network that is not directly
13462 accessible from your host and you need to do port address
13463 translation.
13464 </para>
13465 </glossdef>
13466 </glossentry>
13467
13468 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
13469 <info>
13470 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
13471 </info>
13472 <glossdef>
13473 <para role="glossdeffirst">
13474<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13475 An ordered list of tests (modules) to run against
13476 an image when performing automated runtime testing.
13477 </para>
13478
13479 <para>
13480 The OpenEmbedded build system provides a core set of tests
13481 that can be used against images.
13482 <note>
13483 Currently, there is only support for running these tests
13484 under QEMU.
13485 </note>
13486 Tests include <filename>ping</filename>,
13487 <filename>ssh</filename>, <filename>df</filename> among
13488 others.
13489 You can add your own tests to the list of tests by
13490 appending <filename>TEST_SUITES</filename> as follows:
13491 <literallayout class='monospaced'>
13492 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
13493 </literallayout>
13494 Alternatively, you can provide the "auto" option to
13495 have all applicable tests run against the image.
13496 <literallayout class='monospaced'>
13497 TEST_SUITES_append = " auto"
13498 </literallayout>
13499 Using this option causes the build system to automatically
13500 run tests that are applicable to the image.
13501 Tests that are not applicable are skipped.
13502 </para>
13503
13504 <para>
13505 The order in which tests are run is important.
13506 Tests that depend on another test must appear later in the
13507 list than the test on which they depend.
13508 For example, if you append the list of tests with two
13509 tests (<filename>test_A</filename> and
13510 <filename>test_B</filename>) where
13511 <filename>test_B</filename> is dependent on
13512 <filename>test_A</filename>, then you must order the tests
13513 as follows:
13514 <literallayout class='monospaced'>
13515 TEST_SUITES = " test_A test_B"
13516 </literallayout>
13517 </para>
13518
13519 <para>
13520 For more information on testing images, see the
13521 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
13522 section in the Yocto Project Development Manual.
13523 </para>
13524 </glossdef>
13525 </glossentry>
13526
13527 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
13528 <info>
13529 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
13530 </info>
13531 <glossdef>
13532 <para role="glossdeffirst">
13533<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13534 The directory in which the file BitBake is currently
13535 parsing is located.
13536 Do not manually set this variable.
13537 </para>
13538 </glossdef>
13539 </glossentry>
13540
13541 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
13542 <info>
13543 TIME[doc] = "The time the build was started using HMS format."
13544 </info>
13545 <glossdef>
13546 <para role="glossdeffirst">
13547<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13548 The time the build was started.
13549 Times appear using the hour, minute, and second (HMS)
13550 format (e.g. "140159" for one minute and fifty-nine
13551 seconds past 1400 hours).
13552 </para>
13553 </glossdef>
13554 </glossentry>
13555
13556 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
13557 <info>
13558 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."
13559 </info>
13560 <glossdef>
13561 <para role="glossdeffirst">
13562<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13563 This variable is the base directory the OpenEmbedded
13564 build system uses for all build output and intermediate
13565 files (other than the shared state cache).
13566 By default, the <filename>TMPDIR</filename> variable points
13567 to <filename>tmp</filename> within the
13568 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
13569 </para>
13570
13571 <para>
13572 If you want to establish this directory in a location other
13573 than the default, you can uncomment and edit the following
13574 statement in the
13575 <filename>conf/local.conf</filename> file in the
13576 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
13577 <literallayout class='monospaced'>
13578 #TMPDIR = "${TOPDIR}/tmp"
13579 </literallayout>
13580 An example use for this scenario is to set
13581 <filename>TMPDIR</filename> to a local disk, which does
13582 not use NFS, while having the Build Directory use NFS.
13583 </para>
13584
13585 <para>
13586 The filesystem used by <filename>TMPDIR</filename> must
13587 have standard filesystem semantics (i.e. mixed-case files
13588 are unique, POSIX file locking, and persistent inodes).
13589 Due to various issues with NFS and bugs in some
13590 implementations, NFS does not meet this minimum
13591 requirement.
13592 Consequently, <filename>TMPDIR</filename> cannot be on
13593 NFS.
13594 </para>
13595 </glossdef>
13596 </glossentry>
13597
13598 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
13599 <info>
13600 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
13601 </info>
13602 <glossdef>
13603 <para role="glossdeffirst">
13604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13605 This variable lists packages the OpenEmbedded build system
13606 uses when building an SDK, which contains a
13607 cross-development environment.
13608 The packages specified by this variable are part of the
13609 toolchain set that runs on the
13610 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
13611 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013612 <filename>nativesdk-</filename>.
13613 For example, consider the following command when
13614 building an SDK:
13615 <literallayout class='monospaced'>
13616 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
13617 </literallayout>
13618 In this case, a default list of packages is set in this
13619 variable, but you can add additional packages to the list.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013620 </para>
13621
13622 <para>
13623 For background information on cross-development toolchains
13624 in the Yocto Project development environment, see the
13625 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
13626 section.
13627 For information on setting up a cross-development
13628 environment, see the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013629 <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-manual'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013630 </para>
13631 </glossdef>
13632 </glossentry>
13633
13634 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
13635 <info>
13636 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
13637 </info>
13638 <glossdef>
13639 <para role="glossdeffirst">
13640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13641 This variable defines the name used for the toolchain
13642 output.
13643 The
13644 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
13645 class sets the
13646 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
13647 follows:
13648 <literallayout class='monospaced'>
13649 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
13650 </literallayout>
13651 See the
13652 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
13653 and
13654 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
13655 variables for additional information.
13656 </para>
13657 </glossdef>
13658 </glossentry>
13659
13660 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
13661 <info>
13662 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."
13663 </info>
13664 <glossdef>
13665 <para role="glossdeffirst">
13666<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13667 This variable lists packages the OpenEmbedded build system
13668 uses when it creates the target part of an SDK
13669 (i.e. the part built for the target hardware), which
13670 includes libraries and headers.
13671 </para>
13672
13673 <para>
13674 For background information on cross-development toolchains
13675 in the Yocto Project development environment, see the
13676 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
13677 section.
13678 For information on setting up a cross-development
13679 environment, see the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013680 <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-manual'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013681 </para>
13682 </glossdef>
13683 </glossentry>
13684
13685 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
13686 <info>
13687 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
13688 </info>
13689 <glossdef>
13690 <para role="glossdeffirst">
13691<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13692 The top-level
13693 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
13694 BitBake automatically sets this variable when you
13695 initialize your build environment using either
13696 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
13697 or
13698 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>.
13699 </para>
13700 </glossdef>
13701 </glossentry>
13702
13703 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
13704 <info>
13705 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."
13706 </info>
13707 <glossdef>
13708 <para role="glossdeffirst">
13709<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13710 A sanitized version of
13711 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
13712 This variable is used where the architecture is needed in
13713 a value where underscores are not allowed, for example
13714 within package filenames.
13715 In this case, dash characters replace any underscore
13716 characters used in TARGET_ARCH.
13717 </para>
13718
13719 <para>
13720 Do not edit this variable.
13721 </para>
13722 </glossdef>
13723 </glossentry>
13724
13725 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
13726 <info>
13727 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
13728 </info>
13729 <glossdef>
13730 <para role="glossdeffirst">
13731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13732 The GNU canonical architecture for a specific architecture
13733 (i.e. <filename>arm</filename>,
13734 <filename>armeb</filename>,
13735 <filename>mips</filename>,
13736 <filename>mips64</filename>, and so forth).
13737 BitBake uses this value to setup configuration.
13738 </para>
13739
13740 <para>
13741 <filename>TUNE_ARCH</filename> definitions are specific to
13742 a given architecture.
13743 The definitions can be a single static definition, or
13744 can be dynamically adjusted.
13745 You can see details for a given CPU family by looking at
13746 the architecture's <filename>README</filename> file.
13747 For example, the
13748 <filename>meta/conf/machine/include/mips/README</filename>
13749 file in the
13750 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
13751 provides information for <filename>TUNE_ARCH</filename>
13752 specific to the <filename>mips</filename> architecture.
13753 </para>
13754
13755 <para>
13756 <filename>TUNE_ARCH</filename> is tied closely to
13757 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
13758 which defines the target machine's architecture.
13759 The BitBake configuration file
13760 (<filename>meta/conf/bitbake.conf</filename>) sets
13761 <filename>TARGET_ARCH</filename> as follows:
13762 <literallayout class='monospaced'>
13763 TARGET_ARCH = "${TUNE_ARCH}"
13764 </literallayout>
13765 </para>
13766
13767 <para>
13768 The following list, which is by no means complete since
13769 architectures are configurable, shows supported machine
13770 architectures:
13771 <literallayout class='monospaced'>
13772 arm
13773 i586
13774 x86_64
13775 powerpc
13776 powerpc64
13777 mips
13778 mipsel
13779 </literallayout>
13780 </para>
13781 </glossdef>
13782 </glossentry>
13783
13784 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
13785 <info>
13786 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
13787 </info>
13788 <glossdef>
13789 <para role="glossdeffirst">
13790<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13791 Specifies architecture-specific assembler flags for
13792 the target system.
13793 The set of flags is based on the selected tune features.
13794 <filename>TUNE_ASARGS</filename> is set using
13795 the tune include files, which are typically under
13796 <filename>meta/conf/machine/include/</filename> and are
13797 influenced through
13798 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13799 For example, the
13800 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
13801 file defines the flags for the x86 architecture as follows:
13802 <literallayout class='monospaced'>
13803 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
13804 </literallayout>
13805 <note>
13806 Board Support Packages (BSPs) select the tune.
13807 The selected tune, in turn, affects the tune variables
13808 themselves (i.e. the tune can supply its own
13809 set of flags).
13810 </note>
13811 </para>
13812 </glossdef>
13813 </glossentry>
13814
13815 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
13816 <info>
13817 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
13818 </info>
13819 <glossdef>
13820 <para role="glossdeffirst">
13821<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13822 Specifies architecture-specific C compiler flags for
13823 the target system.
13824 The set of flags is based on the selected tune features.
13825 <filename>TUNE_CCARGS</filename> is set using
13826 the tune include files, which are typically under
13827 <filename>meta/conf/machine/include/</filename> and are
13828 influenced through
13829 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13830 <note>
13831 Board Support Packages (BSPs) select the tune.
13832 The selected tune, in turn, affects the tune variables
13833 themselves (i.e. the tune can supply its own
13834 set of flags).
13835 </note>
13836 </para>
13837 </glossdef>
13838 </glossentry>
13839
13840 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
13841 <info>
13842 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
13843 </info>
13844 <glossdef>
13845 <para role="glossdeffirst">
13846<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13847 Specifies architecture-specific linker flags for
13848 the target system.
13849 The set of flags is based on the selected tune features.
13850 <filename>TUNE_LDARGS</filename> is set using
13851 the tune include files, which are typically under
13852 <filename>meta/conf/machine/include/</filename> and are
13853 influenced through
13854 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
13855 For example, the
13856 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
13857 file defines the flags for the x86 architecture as follows:
13858 <literallayout class='monospaced'>
13859 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
13860 </literallayout>
13861 <note>
13862 Board Support Packages (BSPs) select the tune.
13863 The selected tune, in turn, affects the tune variables
13864 themselves (i.e. the tune can supply its own
13865 set of flags).
13866 </note>
13867 </para>
13868 </glossdef>
13869 </glossentry>
13870
13871 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
13872 <info>
13873 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
13874 </info>
13875 <glossdef>
13876 <para role="glossdeffirst">
13877<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13878 Features used to "tune" a compiler for optimal use
13879 given a specific processor.
13880 The features are defined within the tune files and allow
13881 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
13882 dynamically generated based on the features.
13883 </para>
13884
13885 <para>
13886 The OpenEmbedded build system verifies the features
13887 to be sure they are not conflicting and that they are
13888 supported.
13889 </para>
13890
13891 <para>
13892 The BitBake configuration file
13893 (<filename>meta/conf/bitbake.conf</filename>) defines
13894 <filename>TUNE_FEATURES</filename> as follows:
13895 <literallayout class='monospaced'>
13896 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
13897 </literallayout>
13898 See the
13899 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
13900 variable for more information.
13901 </para>
13902 </glossdef>
13903 </glossentry>
13904
13905 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
13906 <info>
13907 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
13908 </info>
13909 <glossdef>
13910 <para role="glossdeffirst">
13911<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13912 The package architecture understood by the packaging
13913 system to define the architecture, ABI, and tuning of
13914 output packages.
13915 The specific tune is defined using the "_tune" override
13916 as follows:
13917 <literallayout class='monospaced'>
13918 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
13919 </literallayout>
13920 </para>
13921
13922 <para>
13923 These tune-specific package architectures are defined in
13924 the machine include files.
13925 Here is an example of the "core2-32" tuning as used
13926 in the
13927 <filename>meta/conf/machine/include/tune-core2.inc</filename>
13928 file:
13929 <literallayout class='monospaced'>
13930 TUNE_PKGARCH_tune-core2-32 = "core2-32"
13931 </literallayout>
13932 </para>
13933 </glossdef>
13934 </glossentry>
13935
13936 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
13937 <info>
13938 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."
13939 </info>
13940 <glossdef>
13941 <para role="glossdeffirst">
13942<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13943 An underlying Application Binary Interface (ABI) used by
13944 a particular tuning in a given toolchain layer.
13945 Providers that use prebuilt libraries can use the
13946 <filename>TUNEABI</filename>,
13947 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
13948 and
13949 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
13950 variables to check compatibility of tunings against their
13951 selection of libraries.
13952 </para>
13953
13954 <para>
13955 If <filename>TUNEABI</filename> is undefined, then every
13956 tuning is allowed.
13957 See the
13958 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13959 class to see how the variable is used.
13960 </para>
13961 </glossdef>
13962 </glossentry>
13963
13964 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
13965 <info>
13966 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
13967 </info>
13968 <glossdef>
13969 <para role="glossdeffirst">
13970<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13971 If set, the OpenEmbedded system ignores the
13972 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
13973 variable.
13974 Providers that use prebuilt libraries can use the
13975 <filename>TUNEABI_OVERRIDE</filename>,
13976 <filename>TUNEABI_WHITELIST</filename>,
13977 and
13978 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
13979 variables to check compatibility of a tuning against their
13980 selection of libraries.
13981 </para>
13982
13983 <para>
13984 See the
13985 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
13986 class to see how the variable is used.
13987 </para>
13988 </glossdef>
13989 </glossentry>
13990
13991 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
13992 <info>
13993 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
13994 </info>
13995 <glossdef>
13996 <para role="glossdeffirst">
13997<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13998 A whitelist of permissible
13999 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
14000 values.
14001 If <filename>TUNEABI_WHITELIST</filename> is not set,
14002 all tunes are allowed.
14003 Providers that use prebuilt libraries can use the
14004 <filename>TUNEABI_WHITELIST</filename>,
14005 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
14006 and <filename>TUNEABI</filename> variables to check
14007 compatibility of a tuning against their selection of
14008 libraries.
14009 </para>
14010
14011 <para>
14012 See the
14013 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
14014 class to see how the variable is used.
14015 </para>
14016 </glossdef>
14017 </glossentry>
14018
14019 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
14020 <info>
14021 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
14022 </info>
14023 <glossdef>
14024 <para role="glossdeffirst">
14025<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14026 Specifies CPU or Application Binary Interface (ABI)
14027 tuning features that conflict with <replaceable>feature</replaceable>.
14028 </para>
14029
14030 <para>
14031 Known tuning conflicts are specified in the machine include
14032 files in the
14033 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
14034 Here is an example from the
14035 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
14036 include file that lists the "o32" and "n64" features as
14037 conflicting with the "n32" feature:
14038 <literallayout class='monospaced'>
14039 TUNECONFLICTS[n32] = "o32 n64"
14040 </literallayout>
14041 </para>
14042 </glossdef>
14043 </glossentry>
14044
14045 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
14046 <info>
14047 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
14048 </info>
14049 <glossdef>
14050 <para role="glossdeffirst">
14051<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14052 Specifies a valid CPU or Application Binary Interface (ABI)
14053 tuning feature.
14054 The specified feature is stored as a flag.
14055 Valid features are specified in the machine include files
14056 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
14057 Here is an example from that file:
14058 <literallayout class='monospaced'>
14059 TUNEVALID[bigendian] = "Enable big-endian mode."
14060 </literallayout>
14061 </para>
14062
14063 <para>
14064 See the machine include files in the
14065 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
14066 for these features.
14067 </para>
14068 </glossdef>
14069 </glossentry>
14070
14071 </glossdiv>
14072
14073 <glossdiv id='var-glossary-u'><title>U</title>
14074
14075 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
14076 <info>
14077 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
14078 </info>
14079 <glossdef>
14080 <para role="glossdeffirst">
14081<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14082 Configures the
14083 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
14084 and can also define
14085 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
14086 for individual cases.
14087 </para>
14088
14089 <para>
14090 Following is an example from the
14091 <filename>meta-fsl-arm</filename> layer.
14092 <literallayout class='monospaced'>
14093 UBOOT_CONFIG ??= "sd"
14094 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
14095 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
14096 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
14097 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
14098 </literallayout>
14099 In this example, "sd" is selected as the configuration
14100 of the possible four for the
14101 <filename>UBOOT_MACHINE</filename>.
14102 The "sd" configuration defines "mx6qsabreauto_config"
14103 as the value for <filename>UBOOT_MACHINE</filename>, while
14104 the "sdcard" specifies the
14105 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
14106 image.
14107 </para>
14108
14109 <para>
14110 For more information on how the
14111 <filename>UBOOT_CONFIG</filename> is handled, see the
14112 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
14113 class.
14114 </para>
14115 </glossdef>
14116 </glossentry>
14117
14118 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
14119 <info>
14120 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
14121 </info>
14122 <glossdef>
14123 <para role="glossdeffirst">
14124<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14125 Specifies the entry point for the U-Boot image.
14126 During U-Boot image creation, the
14127 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
14128 as a command-line parameter to the
14129 <filename>uboot-mkimage</filename> utility.
14130 </para>
14131 </glossdef>
14132 </glossentry>
14133
14134 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
14135 <info>
14136 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
14137 </info>
14138 <glossdef>
14139 <para role="glossdeffirst">
14140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14141 Specifies the load address for the U-Boot image.
14142 During U-Boot image creation, the
14143 <filename>UBOOT_LOADADDRESS</filename> variable is passed
14144 as a command-line parameter to the
14145 <filename>uboot-mkimage</filename> utility.
14146 </para>
14147 </glossdef>
14148 </glossentry>
14149
14150 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
14151 <info>
14152 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
14153 </info>
14154 <glossdef>
14155 <para role="glossdeffirst">
14156<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14157 Appends a string to the name of the local version of the
14158 U-Boot image.
14159 For example, assuming the version of the U-Boot image
14160 built was "2013.10, the full version string reported by
14161 U-Boot would be "2013.10-yocto" given the following
14162 statement:
14163 <literallayout class='monospaced'>
14164 UBOOT_LOCALVERSION = "-yocto"
14165 </literallayout>
14166 </para>
14167 </glossdef>
14168 </glossentry>
14169
14170 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
14171 <info>
14172 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
14173 </info>
14174 <glossdef>
14175 <para role="glossdeffirst">
14176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14177 Specifies the value passed on the
14178 <filename>make</filename> command line when building
14179 a U-Boot image.
14180 The value indicates the target platform configuration.
14181 You typically set this variable from the machine
14182 configuration file (i.e.
14183 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
14184 </para>
14185
14186 <para>
14187 Please see the "Selection of Processor Architecture and
14188 Board Type" section in the U-Boot README for valid values
14189 for this variable.
14190 </para>
14191 </glossdef>
14192 </glossentry>
14193
14194 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
14195 <info>
14196 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
14197 </info>
14198 <glossdef>
14199 <para role="glossdeffirst">
14200<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14201 Specifies the target called in the
14202 <filename>Makefile</filename>.
14203 The default target is "all".
14204 </para>
14205 </glossdef>
14206 </glossentry>
14207
14208 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
14209 <info>
14210 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
14211 </info>
14212 <glossdef>
14213 <para role="glossdeffirst">
14214<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14215 Points to the generated U-Boot extension.
14216 For example, <filename>u-boot.sb</filename> has a
14217 <filename>.sb</filename> extension.
14218 </para>
14219
14220 <para>
14221 The default U-Boot extension is
14222 <filename>.bin</filename>
14223 </para>
14224 </glossdef>
14225 </glossentry>
14226
14227 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
14228 <info>
14229 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
14230 </info>
14231 <glossdef>
14232 <para role="glossdeffirst">
14233<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14234 Specifies the target used for building U-Boot.
14235 The target is passed directly as part of the "make" command
14236 (e.g. SPL and AIS).
14237 If you do not specifically set this variable, the
14238 OpenEmbedded build process passes and uses "all" for the
14239 target during the U-Boot building process.
14240 </para>
14241 </glossdef>
14242 </glossentry>
14243
14244 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
14245 <info>
14246 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."
14247 </info>
14248 <glossdef>
14249 <para role="glossdeffirst">
14250<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14251 Specifies a list of options that, if reported by the
14252 configure script as being invalid, should not generate a
14253 warning during the
14254 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
14255 task.
14256 Normally, invalid configure options are simply not passed
14257 to the configure script (e.g. should be removed from
14258 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>).
14259 However, common options, for example, exist that are passed
14260 to all configure scripts at a class level that might not
14261 be valid for some configure scripts.
14262 It follows that no benefit exists in seeing a warning about
14263 these options.
14264 For these cases, the options are added to
14265 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
14266 </para>
14267
14268 <para>
14269 The configure arguments check that uses
14270 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
14271 of the
14272 <link linkend='ref-classes-insane'><filename>insane</filename></link>
14273 class and is only enabled if the recipe inherits the
14274 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
14275 class.
14276 </para>
14277 </glossdef>
14278 </glossentry>
14279
14280 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
14281 <info>
14282 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is to be enabled."
14283 </info>
14284 <glossdef>
14285 <para role="glossdeffirst">
14286<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14287 For recipes inheriting the
14288 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
14289 class, <filename>UPDATERCPN</filename> specifies
14290 the package that contains the initscript that is to be
14291 enabled.
14292 </para>
14293
14294 <para>
14295 The default value is "${PN}".
14296 Given that almost all recipes that install initscripts
14297 package them in the main package for the recipe, you
14298 rarely need to set this variable in individual recipes.
14299 </para>
14300 </glossdef>
14301 </glossentry>
14302
14303 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
14304 <info>
14305 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
14306 </info>
14307 <glossdef>
14308 <para role="glossdeffirst">
14309<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14310 Determines if <filename>devtmpfs</filename> is used for
14311 <filename>/dev</filename> population.
14312 The default value used for <filename>USE_DEVFS</filename>
14313 is "1" when no value is specifically set.
14314 Typically, you would set <filename>USE_DEVFS</filename>
14315 to "0" for a statically populated <filename>/dev</filename>
14316 directory.
14317 </para>
14318
14319 <para>
14320 See the
14321 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
14322 section in the Yocto Project Development Manual for
14323 information on how to use this variable.
14324 </para>
14325 </glossdef>
14326 </glossentry>
14327
14328 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
14329 <info>
14330 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."
14331 </info>
14332 <glossdef>
14333 <para role="glossdeffirst">
14334<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14335 When using
14336 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14337 determines whether or not to run a
14338 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14339 on any virtual terminals in order to enable logging in
14340 through those terminals.
14341 </para>
14342
14343 <para>
14344 The default value used for <filename>USE_VT</filename>
14345 is "1" when no default value is specifically set.
14346 Typically, you would set <filename>USE_VT</filename>
14347 to "0" in the machine configuration file for machines
14348 that do not have a graphical display attached and
14349 therefore do not need virtual terminal functionality.
14350 </para>
14351 </glossdef>
14352 </glossentry>
14353
14354 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
14355 <info>
14356 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
14357 </info>
14358 <glossdef>
14359 <para role="glossdeffirst">
14360<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14361 A list of classes to globally inherit.
14362 These classes are used by the OpenEmbedded build system
14363 to enable extra features (e.g.
14364 <filename>buildstats</filename>,
14365 <filename>image-mklibs</filename>, and so forth).
14366 </para>
14367
14368 <para>
14369 The default list is set in your
14370 <filename>local.conf</filename> file:
14371 <literallayout class='monospaced'>
14372 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
14373 </literallayout>
14374 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014375 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014376 the
14377 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
14378 </para>
14379 </glossdef>
14380 </glossentry>
14381
14382 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
14383 <info>
14384 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."
14385 </info>
14386 <glossdef>
14387 <para role="glossdeffirst">
14388<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14389 Forces the OpenEmbedded build system to produce an error
14390 if the user identification (<filename>uid</filename>) and
14391 group identification (<filename>gid</filename>) values
14392 are not defined in <filename>files/passwd</filename>
14393 and <filename>files/group</filename> files.
14394 </para>
14395
14396 <para>
14397 The default behavior for the build system is to dynamically
14398 apply <filename>uid</filename> and
14399 <filename>gid</filename> values.
14400 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
14401 variable is by default not set.
14402 If you plan on using statically assigned
14403 <filename>gid</filename> and <filename>uid</filename>
14404 values, you should set
14405 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
14406 your <filename>local.conf</filename> file as
14407 follows:
14408 <literallayout class='monospaced'>
14409 USERADD_ERROR_DYNAMIC = "1"
14410 </literallayout>
14411 Overriding the default behavior implies you are going to
14412 also take steps to set static <filename>uid</filename> and
14413 <filename>gid</filename> values through use of the
14414 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
14415 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
14416 and
14417 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
14418 variables.
14419 </para>
14420 </glossdef>
14421 </glossentry>
14422
14423 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
14424 <info>
14425 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."
14426 </info>
14427 <glossdef>
14428 <para role="glossdeffirst">
14429<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14430 Specifies a password file to use for obtaining static
14431 group identification (<filename>gid</filename>) values
14432 when the OpenEmbedded build system adds a group to the
14433 system during package installation.
14434 </para>
14435
14436 <para>
14437 When applying static group identification
14438 (<filename>gid</filename>) values, the OpenEmbedded build
14439 system looks in
14440 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
14441 for a <filename>files/group</filename> file and then applies
14442 those <filename>uid</filename> values.
14443 Set the variable as follows in your
14444 <filename>local.conf</filename> file:
14445 <literallayout class='monospaced'>
14446 USERADD_GID_TABLES = "files/group"
14447 </literallayout>
14448 </para>
14449
14450 <note>
14451 Setting the
14452 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
14453 variable to "useradd-staticids" causes the build system
14454 to use static <filename>gid</filename> values.
14455 </note>
14456 </glossdef>
14457 </glossentry>
14458
14459 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
14460 <info>
14461 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."
14462 </info>
14463 <glossdef>
14464 <para role="glossdeffirst">
14465<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14466 When inheriting the
14467 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
14468 class, this variable
14469 specifies the individual packages within the recipe that
14470 require users and/or groups to be added.
14471 </para>
14472
14473 <para>
14474 You must set this variable if the recipe inherits the
14475 class.
14476 For example, the following enables adding a user for the
14477 main package in a recipe:
14478 <literallayout class='monospaced'>
14479 USERADD_PACKAGES = "${PN}"
14480 </literallayout>
14481 <note>
14482 If follows that if you are going to use the
14483 <filename>USERADD_PACKAGES</filename> variable,
14484 you need to set one or more of the
14485 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
14486 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
14487 or
14488 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
14489 variables.
14490 </note>
14491 </para>
14492
14493 </glossdef>
14494 </glossentry>
14495
14496 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
14497 <info>
14498 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."
14499 </info>
14500 <glossdef>
14501 <para role="glossdeffirst">
14502<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14503 When inheriting the
14504 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
14505 class, this variable
14506 specifies for a package what parameters should be passed
14507 to the <filename>useradd</filename> command
14508 if you wish to add a user to the system when the package
14509 is installed.
14510 </para>
14511
14512 <para>
14513 Here is an example from the <filename>dbus</filename>
14514 recipe:
14515 <literallayout class='monospaced'>
14516 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
14517 --no-create-home --shell /bin/false \
14518 --user-group messagebus"
14519 </literallayout>
14520 For information on the standard Linux shell command
14521 <filename>useradd</filename>, see
14522 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
14523 </para>
14524 </glossdef>
14525 </glossentry>
14526
14527 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
14528 <info>
14529 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."
14530 </info>
14531 <glossdef>
14532 <para role="glossdeffirst">
14533<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14534 Specifies a password file to use for obtaining static
14535 user identification (<filename>uid</filename>) values
14536 when the OpenEmbedded build system adds a user to the
14537 system during package installation.
14538 </para>
14539
14540 <para>
14541 When applying static user identification
14542 (<filename>uid</filename>) values, the OpenEmbedded build
14543 system looks in
14544 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
14545 for a <filename>files/passwd</filename> file and then applies
14546 those <filename>uid</filename> values.
14547 Set the variable as follows in your
14548 <filename>local.conf</filename> file:
14549 <literallayout class='monospaced'>
14550 USERADD_UID_TABLES = "files/passwd"
14551 </literallayout>
14552 </para>
14553
14554 <note>
14555 Setting the
14556 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
14557 variable to "useradd-staticids" causes the build system
14558 to use static <filename>uid</filename> values.
14559 </note>
14560 </glossdef>
14561 </glossentry>
14562
14563 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
14564 <info>
14565 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."
14566 </info>
14567 <glossdef>
14568 <para role="glossdeffirst">
14569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14570 When set to "useradd-staticids", causes the
14571 OpenEmbedded build system to base all user and group
14572 additions on a static
14573 <filename>passwd</filename> and
14574 <filename>group</filename> files found in
14575 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
14576 </para>
14577
14578 <para>
14579 To use static user identification (<filename>uid</filename>)
14580 and group identification (<filename>gid</filename>)
14581 values, set the variable
14582 as follows in your <filename>local.conf</filename> file:
14583 <literallayout class='monospaced'>
14584 USERADDEXTENSION = "useradd-staticids"
14585 </literallayout>
14586 <note>
14587 Setting this variable to use static
14588 <filename>uid</filename> and <filename>gid</filename>
14589 values causes the OpenEmbedded build system to employ
14590 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050014591 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014592 class.
14593 </note>
14594 </para>
14595
14596 <para>
14597 If you use static <filename>uid</filename> and
14598 <filename>gid</filename> information, you must also
14599 specify the <filename>files/passwd</filename> and
14600 <filename>files/group</filename> files by setting the
14601 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
14602 and
14603 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
14604 variables.
14605 Additionally, you should also set the
14606 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
14607 variable.
14608 </para>
14609 </glossdef>
14610 </glossentry>
14611
14612 </glossdiv>
14613
14614<!-- <glossdiv id='var-glossary-v'><title>V</title>-->
14615<!-- </glossdiv>-->
14616
14617 <glossdiv id='var-glossary-w'><title>W</title>
14618
14619 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
14620 <info>
14621 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
14622 </info>
14623 <glossdef>
14624 <para role="glossdeffirst">
14625<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14626 Specifies the quality assurance checks whose failures are
14627 reported as warnings by the OpenEmbedded build system.
14628 You set this variable in your distribution configuration
14629 file.
14630 For a list of the checks you can control with this variable,
14631 see the
14632 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
14633 section.
14634 </para>
14635 </glossdef>
14636 </glossentry>
14637
14638 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
14639 <info>
14640 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."
14641 </info>
14642 <glossdef>
14643 <para role="glossdeffirst">
14644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14645 The pathname of the work directory in which the OpenEmbedded
14646 build system builds a recipe.
14647 This directory is located within the
14648 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14649 directory structure and is specific to the recipe being
14650 built and the system for which it is being built.
14651 </para>
14652
14653 <para>
14654 The <filename>WORKDIR</filename> directory is defined as
14655 follows:
14656 <literallayout class='monospaced'>
14657 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
14658 </literallayout>
14659 The actual directory depends on several things:
14660 <itemizedlist>
14661 <listitem><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>:
14662 The top-level build output directory</listitem>
14663 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
14664 The target system identifier</listitem>
14665 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
14666 The recipe name</listitem>
14667 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
14668 The epoch - (if
14669 <link linkend='var-PE'><filename>PE</filename></link>
14670 is not specified, which is usually the case for most
14671 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
14672 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
14673 The recipe version</listitem>
14674 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
14675 The recipe revision</listitem>
14676 </itemizedlist>
14677 </para>
14678
14679 <para>
14680 As an example, assume a Source Directory top-level folder
14681 name <filename>poky</filename>, a default Build Directory at
14682 <filename>poky/build</filename>, and a
14683 <filename>qemux86-poky-linux</filename> machine target
14684 system.
14685 Furthermore, suppose your recipe is named
14686 <filename>foo_1.3.0-r0.bb</filename>.
14687 In this case, the work directory the build system uses to
14688 build the package would be as follows:
14689 <literallayout class='monospaced'>
14690 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
14691 </literallayout>
14692 </para>
14693 </glossdef>
14694 </glossentry>
14695
14696 </glossdiv>
14697
14698 <glossdiv id='var-glossary-x'><title>X</title>
14699
14700 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
14701 <info>
14702 XSERVER[doc] = "Specifies the packages that should be installed
14703 to provide an X server and drivers for the current machine."
14704 </info>
14705 <glossdef>
14706 <para role="glossdeffirst">
14707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14708 Specifies the packages that should be installed to
14709 provide an X server and drivers for the current machine,
14710 assuming your image directly includes
14711 <filename>packagegroup-core-x11-xserver</filename> or,
14712 perhaps indirectly, includes "x11-base" in
14713 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
14714 </para>
14715
14716 <para>
14717 The default value of <filename>XSERVER</filename>, if not
14718 specified in the machine configuration, is
14719 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
14720 </para>
14721 </glossdef>
14722 </glossentry>
14723
14724 </glossdiv>
14725
14726<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
14727<!-- </glossdiv>-->
14728
14729<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
14730<!-- </glossdiv>-->
14731
14732</glossary>
14733</chapter>
14734<!--
14735vim: expandtab tw=80 ts=4
14736-->