blob: 657f6cf3d22b6e678efed62d23808afb65f02ba2 [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>
Brad Bishop316dfdd2018-06-25 12:45:53 -040025 <link linkend='var-GCCPIE'>G</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050026 <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>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050032 <link linkend='var-NATIVELSBSTRING'>N</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033 <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>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050040 <link linkend='var-VOLATILE_LOG_DIR'>V</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050041 <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">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050055 Extension to the Application Binary Interface (ABI)
56 field of the GNU canonical architecture name
57 (e.g. "eabi").
58 </para>
59
60 <para>
61 ABI extensions are set in the machine include files.
62 For example, the
63 <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>
64 file sets the following extension:
65 <literallayout class='monospaced'>
66 ABIEXTENSION = "eabi"
67 </literallayout>
68 </para>
69 </glossdef>
70 </glossentry>
71
72 <glossentry id='var-ALLOW_EMPTY'><glossterm>ALLOW_EMPTY</glossterm>
73 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040074 ALLOW_EMPTY[doc] = "Specifies whether to produce an output package even if it is empty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050075 </info>
76 <glossdef>
77 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040078 Specifies whether to produce an output package even if it is
79 empty.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050080 By default, BitBake does not produce empty packages.
81 This default behavior can cause issues when there is an
82 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> or
83 some other hard runtime requirement on the existence of the package.
84 </para>
85
86 <para>
87 Like all package-controlling variables, you must always use them in
88 conjunction with a package name override, as in:
89 <literallayout class='monospaced'>
90 ALLOW_EMPTY_${PN} = "1"
91 ALLOW_EMPTY_${PN}-dev = "1"
92 ALLOW_EMPTY_${PN}-staticdev = "1"
93 </literallayout>
94 </para>
95 </glossdef>
96 </glossentry>
97
98 <glossentry id='var-ALTERNATIVE'><glossterm>ALTERNATIVE</glossterm>
99 <info>
100 ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
101 </info>
102 <glossdef>
103 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500104 Lists commands in a package that need an alternative
105 binary naming scheme.
106 Sometimes the same command is provided in multiple packages.
107 When this occurs, the OpenEmbedded build system needs to
108 use the alternatives system to create a different binary
109 naming scheme so the commands can co-exist.
110 </para>
111
112 <para>
113 To use the variable, list out the package's commands
114 that also exist as part of another package.
115 For example, if the <filename>busybox</filename> package
116 has four commands that also exist as part of another
117 package, you identify them as follows:
118 <literallayout class='monospaced'>
119 ALTERNATIVE_busybox = "sh sed test bracket"
120 </literallayout>
121 For more information on the alternatives system, see the
122 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
123 section.
124 </para>
125 </glossdef>
126 </glossentry>
127
128 <glossentry id='var-ALTERNATIVE_LINK_NAME'><glossterm>ALTERNATIVE_LINK_NAME</glossterm>
129 <info>
130 ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
131 </info>
132 <glossdef>
133 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500134 Used by the alternatives system to map duplicated commands
135 to actual locations.
136 For example, if the <filename>bracket</filename> command
137 provided by the <filename>busybox</filename> package is
138 duplicated through another package, you must use the
139 <filename>ALTERNATIVE_LINK_NAME</filename> variable to
140 specify the actual location:
141 <literallayout class='monospaced'>
142 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
143 </literallayout>
144 </para>
145
146 <para>
147 In this example, the binary for the
148 <filename>bracket</filename> command (i.e.
149 <filename>[</filename>) from the
150 <filename>busybox</filename> package resides in
151 <filename>/usr/bin/</filename>.
152 <note>
153 If <filename>ALTERNATIVE_LINK_NAME</filename> is not
154 defined, it defaults to
155 <filename>${bindir}/<replaceable>name</replaceable></filename>.
156 </note>
157 </para>
158
159 <para>
160 For more information on the alternatives system, see the
161 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
162 section.
163 </para>
164 </glossdef>
165 </glossentry>
166
167 <glossentry id='var-ALTERNATIVE_PRIORITY'><glossterm>ALTERNATIVE_PRIORITY</glossterm>
168 <info>
169 ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
170 </info>
171 <glossdef>
172 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500173 Used by the alternatives system to create default
174 priorities for duplicated commands.
175 You can use the variable to create a single default
176 regardless of the command name or package, a default for
177 specific duplicated commands regardless of the package, or
178 a default for specific commands tied to particular packages.
179 Here are the available syntax forms:
180 <literallayout class='monospaced'>
181 ALTERNATIVE_PRIORITY = "<replaceable>priority</replaceable>"
182 ALTERNATIVE_PRIORITY[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
183 ALTERNATIVE_PRIORITY_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
184 </literallayout>
185 </para>
186
187 <para>
188 For more information on the alternatives system, see the
189 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
190 section.
191 </para>
192 </glossdef>
193 </glossentry>
194
195 <glossentry id='var-ALTERNATIVE_TARGET'><glossterm>ALTERNATIVE_TARGET</glossterm>
196 <info>
197 ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
198 </info>
199 <glossdef>
200 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500201 Used by the alternatives system to create default link
202 locations for duplicated commands.
203 You can use the variable to create a single default
204 location for all duplicated commands regardless of the
205 command name or package, a default for
206 specific duplicated commands regardless of the package, or
207 a default for specific commands tied to particular packages.
208 Here are the available syntax forms:
209 <literallayout class='monospaced'>
210 ALTERNATIVE_TARGET = "<replaceable>target</replaceable>"
211 ALTERNATIVE_TARGET[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
212 ALTERNATIVE_TARGET_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
213 </literallayout>
214 <note>
215 <para>
216 If <filename>ALTERNATIVE_TARGET</filename> is not
217 defined, it inherits the value from the
218 <link linkend='var-ALTERNATIVE_LINK_NAME'><filename>ALTERNATIVE_LINK_NAME</filename></link>
219 variable.
220 </para>
221
222 <para>
223 If <filename>ALTERNATIVE_LINK_NAME</filename> and
224 <filename>ALTERNATIVE_TARGET</filename> are the
225 same, the target for
226 <filename>ALTERNATIVE_TARGET</filename>
227 has "<filename>.{BPN}</filename>" appended to it.
228 </para>
229
230 <para>
231 Finally, if the file referenced has not been
232 renamed, the alternatives system will rename it to
233 avoid the need to rename alternative files in the
234 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
235 task while
236 retaining support for the command if necessary.
237 </para>
238 </note>
239 </para>
240
241 <para>
242 For more information on the alternatives system, see the
243 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
244 section.
245 </para>
246 </glossdef>
247 </glossentry>
248
249 <glossentry id='var-APPEND'><glossterm>APPEND</glossterm>
250 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400251 APPEND[doc] = "An override list of append strings for target specified using LABELS."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500252 </info>
253 <glossdef>
254 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -0400255 An override list of append strings for each target
256 specified with
257 <link linkend='var-LABELS'><filename>LABELS</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500258 </para>
259
260 <para>
261 See the
262 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
263 class for more information on how this variable is used.
264 </para>
265 </glossdef>
266 </glossentry>
267
268 <glossentry id='var-AR'><glossterm>AR</glossterm>
269 <info>
270 AR[doc] = "Minimal command and arguments to run 'ar'."
271 </info>
272 <glossdef>
273 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500274 The minimal command and arguments used to run
275 <filename>ar</filename>.
276 </para>
277 </glossdef>
278 </glossentry>
279
280 <glossentry id='var-ARCHIVER_MODE'><glossterm>ARCHIVER_MODE</glossterm>
281 <info>
282 ARCHIVER_MODE[doc] = "Controls archive creation used when releasing source files."
283 </info>
284 <glossdef>
285 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500286 When used with the
287 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
288 class, determines the type of information used to create
289 a released archive.
290 You can use this variable to create archives of patched
291 source, original source, configured source, and so forth
292 by employing the following variable flags (varflags):
293 <literallayout class='monospaced'>
294 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source
295 # files.
296
297 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is
298 # the default.
299
300 ARCHIVER_MODE[src] = "configured" # Uses configured source files.
301
302 ARCHIVER_MODE[diff] = "1" # Uses patches between do_unpack and
303 # do_patch.
304
305 ARCHIVER_MODE[diff-exclude] ?= "<replaceable>file</replaceable> <replaceable>file</replaceable> ..." # Lists files and directories to
306 # exclude from diff.
307
308 ARCHIVER_MODE[dumpdata] = "1" # Uses environment data.
309
310 ARCHIVER_MODE[recipe] = "1" # Uses recipe and include files.
311
312 ARCHIVER_MODE[srpm] = "1" # Uses RPM package files.
313 </literallayout>
314 For information on how the variable works, see the
315 <filename>meta/classes/archiver.bbclass</filename> file
316 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500317 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500318 </para>
319 </glossdef>
320 </glossentry>
321
322 <glossentry id='var-AS'><glossterm>AS</glossterm>
323 <info>
324 AS[doc] = "Minimal command and arguments to run the assembler."
325 </info>
326 <glossdef>
327 <para role="glossdeffirst">
Brad Bishop79641f22019-09-10 07:20:22 -0400328 Minimal command and arguments needed to run the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500329 assembler.
330 </para>
331 </glossdef>
332 </glossentry>
333
334 <glossentry id='var-ASSUME_PROVIDED'><glossterm>ASSUME_PROVIDED</glossterm>
335 <info>
336 ASSUME_PROVIDED[doc] = "Lists recipe names (PN values) BitBake does not attempt to build."
337 </info>
338 <glossdef>
339 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500340 Lists recipe names
341 (<link linkend='var-PN'><filename>PN</filename></link>
342 values) BitBake does not attempt to build.
343 Instead, BitBake assumes these recipes have already been
344 built.
345 </para>
346
347 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400348 In OpenEmbedded-Core, <filename>ASSUME_PROVIDED</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500349 mostly specifies native tools that should not be built.
350 An example is <filename>git-native</filename>, which when
351 specified, allows for the Git binary from the host to be
352 used rather than building <filename>git-native</filename>.
353 </para>
354 </glossdef>
355 </glossentry>
356
357 <glossentry id='var-ASSUME_SHLIBS'><glossterm>ASSUME_SHLIBS</glossterm>
358 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -0500359 ASSUME_SHLIBS[doc] = "Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500360 </info>
361 <glossdef>
362 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500363 Provides additional <filename>shlibs</filename> provider
364 mapping information, which adds to or overwrites the
365 information provided automatically by the system.
366 Separate multiple entries using spaces.
367 </para>
368
369 <para>
370 As an example, use the following form to add an
371 <filename>shlib</filename> provider of
372 <replaceable>shlibname</replaceable> in
373 <replaceable>packagename</replaceable> with the optional
374 <replaceable>version</replaceable>:
375 <literallayout class='monospaced'>
376 <replaceable>shlibname:packagename</replaceable>[_<replaceable>version</replaceable>]
377 </literallayout>
378 </para>
379
380 <para>
381 Here is an example that adds a shared library named
382 <filename>libEGL.so.1</filename> as being provided by
383 the <filename>libegl-implementation</filename> package:
384 <literallayout class='monospaced'>
385 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
386 </literallayout>
387 </para>
388 </glossdef>
389 </glossentry>
390
391 <glossentry id='var-AUTHOR'><glossterm>AUTHOR</glossterm>
392 <info>
393 AUTHOR[doc] = "Email address used to contact the original author or authors in order to send patches and forward bugs."
394 </info>
395 <glossdef>
396 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500397 The email address used to contact the original author
398 or authors in order to send patches and forward bugs.
399 </para>
400 </glossdef>
401 </glossentry>
402
403 <glossentry id='var-AUTO_LIBNAME_PKGS'><glossterm>AUTO_LIBNAME_PKGS</glossterm>
404 <info>
405 AUTO_LIBNAME_PKGS[doc] = "Specifies which packages should be checked for libraries and renamed according to Debian library package naming."
406 </info>
407 <glossdef>
408 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500409 When the
410 <link linkend='ref-classes-debian'><filename>debian</filename></link>
411 class is inherited, which is the default behavior,
412 <filename>AUTO_LIBNAME_PKGS</filename> specifies which
413 packages should be checked for libraries and renamed
414 according to Debian library package naming.
415 </para>
416
417 <para>
418 The default value is "${PACKAGES}", which causes the
419 debian class to act on all packages that are
420 explicitly generated by the recipe.
421 </para>
422 </glossdef>
423 </glossentry>
424
425 <glossentry id='var-AUTO_SYSLINUXMENU'><glossterm>AUTO_SYSLINUXMENU</glossterm>
426 <info>
427 AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
428 </info>
429 <glossdef>
430 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500431 Enables creating an automatic menu for the syslinux
432 bootloader.
433 You must set this variable in your recipe.
434 The
435 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
436 class checks this variable.
437 </para>
438 </glossdef>
439 </glossentry>
440
441 <glossentry id='var-AUTOREV'><glossterm>AUTOREV</glossterm>
442 <info>
443 AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
444 </info>
445 <glossdef>
446 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500447 When
448 <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
449 is set to the value of this variable, it specifies to use
450 the latest source revision in the repository.
451 Here is an example:
452 <literallayout class='monospaced'>
453 SRCREV = "${AUTOREV}"
454 </literallayout>
455 </para>
456
457 <para>
458 If you use the previous statement to retrieve the latest
459 version of software, you need to be sure
460 <link linkend='var-PV'><filename>PV</filename></link>
461 contains
462 <filename>${</filename><link linkend='var-SRCPV'><filename>SRCPV</filename></link><filename>}</filename>.
463 For example, suppose you have a kernel recipe that
464 inherits the
465 <link linkend='ref-classes-kernel'>kernel</link> class
466 and you use the previous statement.
467 In this example, <filename>${SRCPV}</filename> does not
468 automatically get into <filename>PV</filename>.
469 Consequently, you need to change <filename>PV</filename>
470 in your recipe so that it does contain
471 <filename>${SRCPV}</filename>.
472 </para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500473
474 <para>
475 For more information see the
476 "<ulink url='&YOCTO_DOCS_DEV_URL;#automatically-incrementing-a-binary-package-revision-number'>Automatically Incrementing a Binary Package Revision Number</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500477 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500478 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500479 </glossdef>
480 </glossentry>
481
Andrew Geissler82c905d2020-04-13 13:39:40 -0500482 <glossentry id='var-AVAILABLE_LICENSES'><glossterm>AVAILABLE_LICENSES</glossterm>
483 <info>
484 AVAILABLE_LICENSES[doc] = "List of licenses found in the directories specified by COMMON_LICENSE_DIR and LICENSE_PATH."
485 </info>
486 <glossdef>
487 <para role="glossdeffirst">
Andrew Geissler82c905d2020-04-13 13:39:40 -0500488
489 List of licenses found in the directories specified
490 by <link linkend='var-COMMON_LICENSE_DIR'><filename>COMMON_LICENSE_DIR</filename></link>
491 and <link linkend='var-LICENSE_PATH'><filename>LICENSE_PATH</filename></link>.
492
493 <note>
494 It is assumed that all changes
495 to <filename>COMMON_LICENSE_DIR</filename>
496 and <filename>LICENSE_PATH</filename> have been done
497 before <filename>AVAILABLE_LICENSES</filename> is
498 defined
499 (in <link linkend='ref-classes-license'>license.bbclass</link>).
500 </note>
501 </para>
502 </glossdef>
503 </glossentry>
504
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500505 <glossentry id='var-AVAILTUNES'><glossterm>AVAILTUNES</glossterm>
506 <info>
507 AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system."
508 </info>
509 <glossdef>
510 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500511 The list of defined CPU and Application Binary Interface
512 (ABI) tunings (i.e. "tunes") available for use by the
513 OpenEmbedded build system.
514 </para>
515
516 <para>
517 The list simply presents the tunes that are available.
518 Not all tunes may be compatible with a particular
519 machine configuration, or with each other in a
520 <ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Multilib</ulink>
521 configuration.
522 </para>
523
524 <para>
525 To add a tune to the list, be sure to append it with
526 spaces using the "+=" BitBake operator.
527 Do not simply replace the list by using the "=" operator.
528 See the
529 "<ulink url='&YOCTO_DOCS_BB_URL;#basic-syntax'>Basic Syntax</ulink>"
530 section in the BitBake User Manual for more information.
531 </para>
532 </glossdef>
533 </glossentry>
534
535 </glossdiv>
536
537 <glossdiv id='var-glossary-b'><title>B</title>
538
539 <glossentry id='var-B'><glossterm>B</glossterm>
540 <info>
541 B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
542 </info>
543 <glossdef>
544 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500545 The directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500546 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500547 in which the OpenEmbedded build system places generated
548 objects during a recipe's build process.
549 By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
550 directory, which is defined as:
551 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600552 S = "${WORKDIR}/${BP}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500553 </literallayout>
554 </para>
555
556 <para>
557 You can separate the (<filename>S</filename>) directory
558 and the directory pointed to by the <filename>B</filename>
559 variable.
560 Most Autotools-based recipes support separating these
561 directories.
562 The build system defaults to using separate directories for
563 <filename>gcc</filename> and some kernel recipes.
564 </para>
565 </glossdef>
566 </glossentry>
567
568 <glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
569 <info>
570 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."
571 </info>
572 <glossdef>
573 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500574 Lists "recommended-only" packages to not install.
575 Recommended-only packages are packages installed only
576 through the
577 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
578 variable.
579 You can prevent any of these "recommended" packages from
580 being installed by listing them with the
581 <filename>BAD_RECOMMENDATIONS</filename> variable:
582 <literallayout class='monospaced'>
583 BAD_RECOMMENDATIONS = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
584 </literallayout>
585 </para>
586
587 <para>
588 You can set this variable globally in your
589 <filename>local.conf</filename> file or you can attach it to
590 a specific image recipe by using the recipe name override:
591 <literallayout class='monospaced'>
592 BAD_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
593 </literallayout>
594 </para>
595
596 <para>
597 It is important to realize that if you choose to not install
598 packages using this variable and some other packages are
599 dependent on them (i.e. listed in a recipe's
600 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
601 variable), the OpenEmbedded build system ignores your
602 request and will install the packages to avoid dependency
603 errors.
604 </para>
605
606 <para>
607 Support for this variable exists only when using the
608 IPK and RPM packaging backend.
609 Support does not exist for DEB.
610 </para>
611
612 <para>
613 See the
614 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
615 and the
616 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
617 variables for related information.
618 </para>
619 </glossdef>
620 </glossentry>
621
622 <glossentry id='var-BASE_LIB'><glossterm>BASE_LIB</glossterm>
623 <info>
624 BASE_LIB[doc] = "The library directory name for the CPU or Application Binary Interface (ABI) tune."
625 </info>
626 <glossdef>
627 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500628 The library directory name for the CPU or Application
629 Binary Interface (ABI) tune.
630 The <filename>BASE_LIB</filename> applies only in the
631 Multilib context.
632 See the
633 "<ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Combining Multiple Versions of Library Files into One Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500634 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500635 information on Multilib.
636 </para>
637
638 <para>
639 The <filename>BASE_LIB</filename> variable is defined in
640 the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500641 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500642 If Multilib is not being used, the value defaults to "lib".
643 </para>
644 </glossdef>
645 </glossentry>
646
647 <glossentry id='var-BASE_WORKDIR'><glossterm>BASE_WORKDIR</glossterm>
648 <info>
649 BASE_WORKDIR[doc] = "Points to the base of the work directory for all recipes."
650 </info>
651 <glossdef>
652 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500653 Points to the base of the work directory for all recipes.
654 The default value is "${TMPDIR}/work".
655 </para>
656 </glossdef>
657 </glossentry>
658
659 <glossentry id='var-BB_ALLOWED_NETWORKS'><glossterm>BB_ALLOWED_NETWORKS</glossterm>
660 <info>
661 BB_ALLOWED_NETWORKS[doc] = "A list of hosts that the fetcher is allowed to use to obtain the required source code."
662 </info>
663 <glossdef>
664 <para>
665 Specifies a space-delimited list of hosts that the fetcher
666 is allowed to use to obtain the required source code.
667 Following are considerations surrounding this variable:
668 <itemizedlist>
669 <listitem><para>
670 This host list is only used if
671 <filename>BB_NO_NETWORK</filename> is either not
672 set or set to "0".
673 </para></listitem>
674 <listitem><para>
675 Limited support for wildcard matching against the
676 beginning of host names exists.
677 For example, the following setting matches
678 <filename>git.gnu.org</filename>,
679 <filename>ftp.gnu.org</filename>, and
680 <filename>foo.git.gnu.org</filename>.
681 <literallayout class='monospaced'>
682 BB_ALLOWED_NETWORKS = "*.gnu.org"
683 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800684 <note><title>Important</title>
685 <para>The use of the "<filename>*</filename>"
686 character only works at the beginning of
687 a host name and it must be isolated from
688 the remainder of the host name.
689 You cannot use the wildcard character in any
690 other location of the name or combined with
691 the front part of the name.</para>
692
693 <para>For example,
694 <filename>*.foo.bar</filename> is supported,
695 while <filename>*aa.foo.bar</filename> is not.
696 </para>
697 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500698 </para></listitem>
699 <listitem><para>
700 Mirrors not in the host list are skipped and
701 logged in debug.
702 </para></listitem>
703 <listitem><para>
704 Attempts to access networks not in the host list
705 cause a failure.
706 </para></listitem>
707 </itemizedlist>
708 Using <filename>BB_ALLOWED_NETWORKS</filename> in
709 conjunction with
710 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
711 is very useful.
712 Adding the host you want to use to
713 <filename>PREMIRRORS</filename> results in the source code
714 being fetched from an allowed location and avoids raising
715 an error when a host that is not allowed is in a
716 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
717 statement.
718 This is because the fetcher does not attempt to use the
719 host listed in <filename>SRC_URI</filename> after a
720 successful fetch from the
721 <filename>PREMIRRORS</filename> occurs.
722 </para>
723 </glossdef>
724 </glossentry>
725
726 <glossentry id='var-BB_DANGLINGAPPENDS_WARNONLY'><glossterm>BB_DANGLINGAPPENDS_WARNONLY</glossterm>
727 <info>
728 BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
729 </info>
730 <glossdef>
731 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500732 Defines how BitBake handles situations where an append
733 file (<filename>.bbappend</filename>) has no
734 corresponding recipe file (<filename>.bb</filename>).
735 This condition often occurs when layers get out of sync
736 (e.g. <filename>oe-core</filename> bumps a
737 recipe version and the old recipe no longer exists and the
738 other layer has not been updated to the new version
739 of the recipe yet).
740 </para>
741
742 <para>
743 The default fatal behavior is safest because it is
744 the sane reaction given something is out of sync.
745 It is important to realize when your changes are no longer
746 being applied.
747 </para>
748
749 <para>
750 You can change the default behavior by setting this
751 variable to "1", "yes", or "true"
752 in your <filename>local.conf</filename> file, which is
753 located in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500754 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500755 Here is an example:
756 <literallayout class='monospaced'>
757 BB_DANGLINGAPPENDS_WARNONLY = "1"
758 </literallayout>
759 </para>
760 </glossdef>
761 </glossentry>
762
763 <glossentry id='var-BB_DISKMON_DIRS'><glossterm>BB_DISKMON_DIRS</glossterm>
764 <info>
765 BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
766 </info>
767 <glossdef>
768 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500769 Monitors disk space and available inodes during the build
770 and allows you to control the build based on these
771 parameters.
772 </para>
773
774 <para>
775 Disk space monitoring is disabled by default.
776 To enable monitoring, add the <filename>BB_DISKMON_DIRS</filename>
777 variable to your <filename>conf/local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500778 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500779 Use the following form:
780 <literallayout class='monospaced'>
781 BB_DISKMON_DIRS = "<replaceable>action</replaceable>,<replaceable>dir</replaceable>,<replaceable>threshold</replaceable> [...]"
782
783 where:
784
785 <replaceable>action</replaceable> is:
786 ABORT: Immediately abort the build when
787 a threshold is broken.
788 STOPTASKS: Stop the build after the currently
789 executing tasks have finished when
790 a threshold is broken.
791 WARN: Issue a warning but continue the
792 build when a threshold is broken.
793 Subsequent warnings are issued as
Brad Bishop316dfdd2018-06-25 12:45:53 -0400794 defined by the BB_DISKMON_WARNINTERVAL
795 variable, which must be defined in
796 the conf/local.conf file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500797
798 <replaceable>dir</replaceable> is:
799 Any directory you choose. You can specify one or
800 more directories to monitor by separating the
801 groupings with a space. If two directories are
802 on the same device, only the first directory
803 is monitored.
804
805 <replaceable>threshold</replaceable> is:
806 Either the minimum available disk space,
807 the minimum number of free inodes, or
808 both. You must specify at least one. To
809 omit one or the other, simply omit the value.
810 Specify the threshold using G, M, K for Gbytes,
811 Mbytes, and Kbytes, respectively. If you do
812 not specify G, M, or K, Kbytes is assumed by
813 default. Do not use GB, MB, or KB.
814 </literallayout>
815 </para>
816
817 <para>
818 Here are some examples:
819 <literallayout class='monospaced'>
820 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
821 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
822 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
823 </literallayout>
824 The first example works only if you also provide
825 the <link linkend='var-BB_DISKMON_WARNINTERVAL'><filename>BB_DISKMON_WARNINTERVAL</filename></link> variable
826 in the <filename>conf/local.conf</filename>.
827 This example causes the build system to immediately
828 abort when either the disk space in <filename>${TMPDIR}</filename> drops
829 below 1 Gbyte or the available free inodes drops below
830 100 Kbytes.
831 Because two directories are provided with the variable, the
832 build system also issue a
833 warning when the disk space in the
834 <filename>${SSTATE_DIR}</filename> directory drops
835 below 1 Gbyte or the number of free inodes drops
836 below 100 Kbytes.
837 Subsequent warnings are issued during intervals as
838 defined by the <filename>BB_DISKMON_WARNINTERVAL</filename>
839 variable.
840 </para>
841
842 <para>
843 The second example stops the build after all currently
844 executing tasks complete when the minimum disk space
845 in the <filename>${<link linkend='var-TMPDIR'>TMPDIR</link>}</filename>
846 directory drops below 1 Gbyte.
847 No disk monitoring occurs for the free inodes in this case.
848 </para>
849
850 <para>
851 The final example immediately aborts the build when the
852 number of free inodes in the <filename>${TMPDIR}</filename> directory
853 drops below 100 Kbytes.
854 No disk space monitoring for the directory itself occurs
855 in this case.
856 </para>
857 </glossdef>
858 </glossentry>
859
860 <glossentry id='var-BB_DISKMON_WARNINTERVAL'><glossterm>BB_DISKMON_WARNINTERVAL</glossterm>
861 <info>
862 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."
863 </info>
864 <glossdef>
865 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500866 Defines the disk space and free inode warning intervals.
867 To set these intervals, define the variable in your
868 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500869 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500870 </para>
871
872 <para>
873 If you are going to use the
874 <filename>BB_DISKMON_WARNINTERVAL</filename> variable, you must
875 also use the
876 <link linkend='var-BB_DISKMON_DIRS'><filename>BB_DISKMON_DIRS</filename></link> variable
877 and define its action as "WARN".
878 During the build, subsequent warnings are issued each time
879 disk space or number of free inodes further reduces by
880 the respective interval.
881 </para>
882
883 <para>
884 If you do not provide a <filename>BB_DISKMON_WARNINTERVAL</filename>
885 variable and you do use <filename>BB_DISKMON_DIRS</filename> with
886 the "WARN" action, the disk monitoring interval defaults to
887 the following:
888 <literallayout class='monospaced'>
889 BB_DISKMON_WARNINTERVAL = "50M,5K"
890 </literallayout>
891 </para>
892
893 <para>
894 When specifying the variable in your configuration file,
895 use the following form:
896 <literallayout class='monospaced'>
897 BB_DISKMON_WARNINTERVAL = "<replaceable>disk_space_interval</replaceable>,<replaceable>disk_inode_interval</replaceable>"
898
899 where:
900
901 <replaceable>disk_space_interval</replaceable> is:
902 An interval of memory expressed in either
903 G, M, or K for Gbytes, Mbytes, or Kbytes,
904 respectively. You cannot use GB, MB, or KB.
905
906 <replaceable>disk_inode_interval</replaceable> is:
907 An interval of free inodes expressed in either
908 G, M, or K for Gbytes, Mbytes, or Kbytes,
909 respectively. You cannot use GB, MB, or KB.
910 </literallayout>
911 </para>
912
913 <para>
914 Here is an example:
915 <literallayout class='monospaced'>
916 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
917 BB_DISKMON_WARNINTERVAL = "50M,5K"
918 </literallayout>
919 These variables cause the OpenEmbedded build system to
920 issue subsequent warnings each time the available
921 disk space further reduces by 50 Mbytes or the number
922 of free inodes further reduces by 5 Kbytes in the
923 <filename>${SSTATE_DIR}</filename> directory.
924 Subsequent warnings based on the interval occur each time
925 a respective interval is reached beyond the initial warning
926 (i.e. 1 Gbytes and 100 Kbytes).
927 </para>
928 </glossdef>
929 </glossentry>
930
931 <glossentry id='var-BB_GENERATE_MIRROR_TARBALLS'><glossterm>BB_GENERATE_MIRROR_TARBALLS</glossterm>
932 <info>
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400933 BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the source control repositories to be placed in the DL_DIR directory."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500934 </info>
935 <glossdef>
936 <para role="glossdeffirst">
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400937 Causes tarballs of the source control repositories
938 (e.g. Git repositories), including metadata, to be placed
939 in the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500940 <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
941 directory.
942 </para>
943
944 <para>
945 For performance reasons, creating and placing tarballs of
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400946 these repositories is not the default action by the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500947 OpenEmbedded build system.
948 <literallayout class='monospaced'>
949 BB_GENERATE_MIRROR_TARBALLS = "1"
950 </literallayout>
951 Set this variable in your <filename>local.conf</filename>
952 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500953 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500954 </para>
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400955
956 <para>
957 Once you have the tarballs containing your source files,
958 you can clean up your <filename>DL_DIR</filename>
959 directory by deleting any Git or other source control
960 work directories.
961 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500962 </glossdef>
963 </glossentry>
964
965 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
966 <info>
967 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."
968 </info>
969 <glossdef>
970 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500971 The maximum number of tasks BitBake should run in parallel
972 at any one time.
973 The OpenEmbedded build system automatically configures
974 this variable to be equal to the number of cores on the
975 build system.
976 For example, a system with a dual core processor that
977 also uses hyper-threading causes the
978 <filename>BB_NUMBER_THREADS</filename> variable to default
979 to "4".
980 </para>
981
982 <para>
983 For single socket systems (i.e. one CPU), you should not
984 have to override this variable to gain optimal parallelism
985 during builds.
986 However, if you have very large systems that employ
987 multiple physical CPUs, you might want to make sure the
988 <filename>BB_NUMBER_THREADS</filename> variable is not
989 set higher than "20".
990 </para>
991
992 <para>
993 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -0400994 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
995 section in the Yocto Project Development Tasks Manual.
996 </para>
997 </glossdef>
998 </glossentry>
999
1000 <glossentry id='var-BB_SERVER_TIMEOUT'><glossterm>BB_SERVER_TIMEOUT</glossterm>
1001 <info>
1002 BB_SERVER_TIMEOUT [doc] = "Specifies the time (in seconds) after which to unload the BitBake server due to inactivity."
1003 </info>
1004 <glossdef>
1005 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04001006 Specifies the time (in seconds) after which to unload the
1007 BitBake server due to inactivity.
1008 Set <filename>BB_SERVER_TIMEOUT</filename> to determine how
1009 long the BitBake server stays resident between invocations.
1010 </para>
1011
1012 <para>
1013 For example, the following statement in your
1014 <filename>local.conf</filename> file instructs the server
1015 to be unloaded after 20 seconds of inactivity:
1016 <literallayout class='monospaced'>
1017 BB_SERVER_TIMEOUT = "20"
1018 </literallayout>
1019 If you want the server to never be unloaded, set
1020 <filename>BB_SERVER_TIMEOUT</filename> to "-1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001021 </para>
1022 </glossdef>
1023 </glossentry>
1024
1025 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
1026 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001027 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001028 </info>
1029 <glossdef>
1030 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001031 Allows you to extend a recipe so that it builds variants of the software.
1032 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
1033 which is a copy of Quilt built to run on the build system;
1034 "crosses" such as <filename>gcc-cross</filename>,
1035 which is a compiler built to run on the build machine but produces binaries
1036 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
1037 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
1038 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
1039 </para>
1040
1041 <para>
1042 To build a different variant of the recipe with a minimal amount of code, it usually
1043 is as simple as adding the following to your recipe:
1044 <literallayout class='monospaced'>
1045 BBCLASSEXTEND =+ "native nativesdk"
1046 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
1047 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001048 <note>
1049 <para>
1050 Internally, the <filename>BBCLASSEXTEND</filename>
1051 mechanism generates recipe variants by rewriting
1052 variable values and applying overrides such as
1053 <filename>_class-native</filename>.
1054 For example, to generate a native version of a recipe,
1055 a
1056 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
1057 on "foo" is rewritten to a <filename>DEPENDS</filename>
1058 on "foo-native".
1059 </para>
1060
1061 <para>
1062 Even when using <filename>BBCLASSEXTEND</filename>, the
1063 recipe is only parsed once.
1064 Parsing once adds some limitations.
1065 For example, it is not possible to
1066 include a different file depending on the variant,
1067 since <filename>include</filename> statements are
1068 processed when the recipe is parsed.
1069 </para>
1070 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001071 </para>
1072 </glossdef>
1073 </glossentry>
1074
1075 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1076 <info>
1077 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1078 </info>
1079 <glossdef>
1080 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001081 Lists the names of configured layers.
1082 These names are used to find the other <filename>BBFILE_*</filename>
1083 variables.
1084 Typically, each layer will append its name to this variable in its
1085 <filename>conf/layer.conf</filename> file.
1086 </para>
1087 </glossdef>
1088 </glossentry>
1089
1090 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1091 <info>
1092 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."
1093 </info>
1094 <glossdef>
1095 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001096 Variable that expands to match files from
1097 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1098 in a particular layer.
1099 This variable is used in the <filename>conf/layer.conf</filename> file and must
1100 be suffixed with the name of the specific layer (e.g.
1101 <filename>BBFILE_PATTERN_emenlow</filename>).
1102 </para>
1103 </glossdef>
1104 </glossentry>
1105
1106 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1107 <info>
1108 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."
1109 </info>
1110 <glossdef>
1111 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001112 Assigns the priority for recipe files in each layer.
1113 </para>
1114
1115 <para>
1116 This variable is useful in situations where the same recipe appears in
1117 more than one layer.
1118 Setting this variable allows you to prioritize a
1119 layer against other layers that contain the same recipe - effectively
1120 letting you control the precedence for the multiple layers.
1121 The precedence established through this variable stands regardless of a
1122 recipe's version
1123 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1124 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1125 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1126 lower precedence.
1127 </para>
1128
1129 <para>
1130 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1131 precedence.
1132 For example, the value 6 has a higher precedence than the value 5.
1133 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1134 dependencies (see the
1135 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1136 more information.
1137 The default priority, if unspecified
1138 for a layer with no dependencies, is the lowest defined priority + 1
1139 (or 1 if no priorities are defined).
1140 </para>
1141 <tip>
1142 You can use the command <filename>bitbake-layers show-layers</filename> to list
1143 all configured layers along with their priorities.
1144 </tip>
1145 </glossdef>
1146 </glossentry>
1147
1148 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1149 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001150 BBFILES[doc] = "A space-separated list of recipe files BitBake uses to build software."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001151 </info>
1152 <glossdef>
1153 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001154 A space-separated list of recipe files BitBake uses to
1155 build software.
1156 </para>
1157
1158 <para>
1159 When specifying recipe files, you can pattern match using
1160 Python's
1161 <ulink url='https://docs.python.org/3/library/glob.html'><filename>glob</filename></ulink>
1162 syntax.
1163 For details on the syntax, see the documentation by
1164 following the previous link.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001165 </para>
1166 </glossdef>
1167 </glossentry>
1168
Brad Bishop316dfdd2018-06-25 12:45:53 -04001169 <glossentry id='var-BBFILES_DYNAMIC'><glossterm>BBFILES_DYNAMIC</glossterm>
1170 <info>
1171 BBFILES_DYNAMIC[doc] = "Activates content when identified layers are present."
1172 </info>
1173 <glossdef>
1174 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04001175 Activates content when identified layers are present.
1176 You identify the layers by the collections that the layers
1177 define.
1178 </para>
1179
1180 <para>
1181 Use the <filename>BBFILES_DYNAMIC</filename> variable to
1182 avoid <filename>.bbappend</filename> files whose
1183 corresponding <filename>.bb</filename> file is in a layer
1184 that attempts to modify other layers through
1185 <filename>.bbappend</filename> but does not want to
1186 introduce a hard dependency on those other layers.
1187 </para>
1188
1189 <para>
1190 Use the following form for
1191 <filename>BBFILES_DYNAMIC</filename>:
1192 <literallayout class='monospaced'>
1193 <replaceable>collection_name</replaceable>:<replaceable>filename_pattern</replaceable>
1194 </literallayout>
1195 The following example identifies two collection names and
1196 two filename patterns:
1197 <literallayout class='monospaced'>
1198 BBFILES_DYNAMIC += " \
1199 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
1200 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
1201 "
1202 </literallayout>
1203 This next example shows an error message that occurs
1204 because invalid entries are found, which cause parsing to
1205 abort:
1206 <literallayout class='monospaced'>
1207 ERROR: BBFILES_DYNAMIC entries must be of the form &lt;collection name&gt;:&lt;filename pattern&gt;, not:
1208 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
1209 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
1210 </literallayout>
1211 </para>
1212 </glossdef>
1213 </glossentry>
1214
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001215 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1216 <info>
1217 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1218 </info>
1219 <glossdef>
1220 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001221 Variable that controls how BitBake displays logs on build failure.
1222 </para>
1223 </glossdef>
1224 </glossentry>
1225
1226 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1227 <info>
1228 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1229 </info>
1230 <glossdef>
1231 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001232 If
1233 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1234 is set, specifies the maximum number of lines from the
1235 task log file to print when reporting a failed task.
1236 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1237 the entire log is printed.
1238 </para>
1239 </glossdef>
1240 </glossentry>
1241
1242 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1243 <info>
1244 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1245 </info>
1246 <glossdef>
1247 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001248 Lists the layers to enable during the build.
1249 This variable is defined in the <filename>bblayers.conf</filename> configuration
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001250 file in the
1251 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001252 Here is an example:
1253 <literallayout class='monospaced'>
1254 BBLAYERS = " \
1255 /home/scottrif/poky/meta \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001256 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001257 /home/scottrif/poky/meta-yocto-bsp \
1258 /home/scottrif/poky/meta-mykernel \
1259 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001260 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001261 </para>
1262
1263 <para>
1264 This example enables four layers, one of which is a custom, user-defined layer
1265 named <filename>meta-mykernel</filename>.
1266 </para>
1267 </glossdef>
1268 </glossentry>
1269
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001270 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1271 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001272 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001273 </info>
1274 <glossdef>
1275 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001276 Prevents BitBake from processing recipes and recipe
1277 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001278 </para>
1279
1280 <para>
1281 You can use the <filename>BBMASK</filename> variable
1282 to "hide" these <filename>.bb</filename> and
1283 <filename>.bbappend</filename> files.
1284 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001285 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001286 It is as if BitBake does not see them at all.
1287 Consequently, matching files are not parsed or otherwise
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001288 used by BitBake.
1289 </para>
1290
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001291 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001292 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001293 expression compiler.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001294 Consequently, the syntax follows Python's Regular
1295 Expression (re) syntax.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001296 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001297 the files.
1298 For complete syntax information, see Python's
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001299 documentation at
1300 <ulink url='http://docs.python.org/3/library/re.html#re'></ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001301 </para>
1302
1303 <para>
1304 The following example uses a complete regular expression
1305 to tell BitBake to ignore all recipe and recipe append
1306 files in the <filename>meta-ti/recipes-misc/</filename>
1307 directory:
1308 <literallayout class='monospaced'>
1309 BBMASK = "meta-ti/recipes-misc/"
1310 </literallayout>
1311 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001312 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001313 This next example masks out multiple directories and
1314 individual recipes:
1315 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001316 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1317 BBMASK += "/meta-oe/recipes-support/"
1318 BBMASK += "/meta-foo/.*/openldap"
1319 BBMASK += "opencv.*\.bbappend"
1320 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001321 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001322 <note>
1323 When specifying a directory name, use the trailing
1324 slash character to ensure you match just that directory
1325 name.
1326 </note>
1327 </para>
1328 </glossdef>
1329 </glossentry>
1330
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001331 <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
1332 <info>
Brad Bishopf3f93bb2019-10-16 14:33:32 -04001333 BBMULTICONFIG[doc] = "Specifies each additional separate configuration when you are building targets with multiple configurations."
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001334 </info>
1335 <glossdef>
1336 <para role="glossdeffirst">
Brad Bishop64c979e2019-11-04 13:55:29 -05001337 Specifies each additional separate configuration when you
1338 are building targets with multiple configurations.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001339 Use this variable in your
1340 <filename>conf/local.conf</filename> configuration file.
1341 Specify a <replaceable>multiconfigname</replaceable> for
1342 each configuration file you are using.
1343 For example, the following line specifies three
1344 configuration files:
1345 <literallayout class='monospaced'>
Brad Bishop96ff1982019-08-19 13:50:42 -04001346 BBMULTICONFIG = "configA configB configC"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001347 </literallayout>
1348 Each configuration file you use must reside in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001349 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001350 <filename>conf/multiconfig</filename> directory
1351 (e.g.
1352 <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
1353 </para>
1354
1355 <para>
1356 For information on how to use
1357 <filename>BBMULTICONFIG</filename> in an environment that
1358 supports building targets with multiple configurations,
1359 see the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001360 "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-building-images-for-multiple-targets-using-multiple-configurations'>Building Images for Multiple Targets Using Multiple Configurations</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001361 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001362 </para>
1363 </glossdef>
1364 </glossentry>
1365
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001366 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1367 <info>
1368 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1369 </info>
1370 <glossdef>
1371 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001372 Used by BitBake to locate
1373 <filename>.bbclass</filename> and configuration files.
1374 This variable is analogous to the
1375 <filename>PATH</filename> variable.
1376 <note>
1377 If you run BitBake from a directory outside of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001378 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001379 you must be sure to set
1380 <filename>BBPATH</filename> to point to the
1381 Build Directory.
1382 Set the variable as you would any environment variable
1383 and then run BitBake:
1384 <literallayout class='monospaced'>
1385 $ BBPATH = "<replaceable>build_directory</replaceable>"
1386 $ export BBPATH
1387 $ bitbake <replaceable>target</replaceable>
1388 </literallayout>
1389 </note>
1390 </para>
1391 </glossdef>
1392 </glossentry>
1393
1394 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1395 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001396 BBSERVER[doc] = "Points to the BitBake remote server."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001397 </info>
1398 <glossdef>
1399 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001400 If defined in the BitBake environment,
1401 <filename>BBSERVER</filename> points to the BitBake
1402 remote server.
1403 </para>
1404
1405 <para>
1406 Use the following format to export the variable to the
1407 BitBake environment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001408 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -05001409 export BBSERVER=localhost:$port
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001410 </literallayout>
1411 </para>
1412
1413 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001414 By default, <filename>BBSERVER</filename> also appears in
1415 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>.
1416 Consequently, <filename>BBSERVER</filename> is excluded
1417 from checksum and dependency data.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001418 </para>
1419 </glossdef>
1420 </glossentry>
1421
1422 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1423 <info>
1424 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."
1425 </info>
1426 <glossdef>
1427 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001428 When inheriting the
1429 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1430 class, this variable specifies binary configuration
1431 scripts to disable in favor of using
1432 <filename>pkg-config</filename> to query the information.
1433 The <filename>binconfig-disabled</filename> class will
1434 modify the specified scripts to return an error so that
1435 calls to them can be easily found and replaced.
1436 </para>
1437
1438 <para>
1439 To add multiple scripts, separate them by spaces.
1440 Here is an example from the <filename>libpng</filename>
1441 recipe:
1442 <literallayout class='monospaced'>
1443 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1444 </literallayout>
1445 </para>
1446 </glossdef>
1447 </glossentry>
1448
1449 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1450 <info>
1451 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1452 </info>
1453 <glossdef>
1454 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001455 When inheriting the
1456 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1457 class, this variable specifies a wildcard for
1458 configuration scripts that need editing.
1459 The scripts are edited to correct any paths that have been
1460 set up during compilation so that they are correct for
1461 use when installed into the sysroot and called by the
1462 build processes of other recipes.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001463 <note>
1464 The <filename>BINCONFIG_GLOB</filename> variable
1465 uses
1466 <ulink url='http://tldp.org/LDP/abs/html/globbingref.html'>shell globbing</ulink>,
1467 which is recognition and expansion of wildcards during
1468 pattern matching.
1469 Shell globbing is very similar to
1470 <ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>
1471 and
1472 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>.
1473 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001474 </para>
1475
1476 <para>
1477 For more information on how this variable works, see
1478 <filename>meta/classes/binconfig.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001479 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001480 You can also find general information on the class in the
1481 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1482 section.
1483 </para>
1484 </glossdef>
1485 </glossentry>
1486
1487 <glossentry id='var-BP'><glossterm>BP</glossterm>
1488 <info>
1489 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}"
1490 </info>
1491 <glossdef>
1492 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001493 The base recipe name and version but without any special
1494 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1495 and so forth).
1496 <filename>BP</filename> is comprised of the following:
1497 <literallayout class="monospaced">
1498 ${BPN}-${PV}
1499 </literallayout>
1500 </para>
1501 </glossdef>
1502 </glossentry>
1503
1504 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1505 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001506 BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001507 </info>
1508 <glossdef>
1509 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001510 This variable is a version of the
1511 <link linkend='var-PN'><filename>PN</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001512 variable with common prefixes and suffixes
1513 removed, such as <filename>nativesdk-</filename>,
1514 <filename>-cross</filename>,
1515 <filename>-native</filename>, and multilib's
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001516 <filename>lib64-</filename> and
1517 <filename>lib32-</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001518 The exact lists of prefixes and suffixes removed are
1519 specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001520 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001521 and
1522 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1523 variables, respectively.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001524 </para>
1525 </glossdef>
1526 </glossentry>
1527
1528 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1529 <info>
1530 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1531 </info>
1532 <glossdef>
1533 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001534 Specifies a URL for an upstream bug tracking website for
1535 a recipe.
1536 The OpenEmbedded build system does not use this variable.
1537 Rather, the variable is a useful pointer in case a bug
1538 in the software being built needs to be manually reported.
1539 </para>
1540 </glossdef>
1541 </glossentry>
1542
1543 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1544 <info>
1545 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1546 </info>
1547 <glossdef>
1548 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001549 Specifies the architecture of the build host
1550 (e.g. <filename>i686</filename>).
1551 The OpenEmbedded build system sets the value of
1552 <filename>BUILD_ARCH</filename> from the machine name
1553 reported by the <filename>uname</filename> command.
1554 </para>
1555 </glossdef>
1556 </glossentry>
1557
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001558 <glossentry id='var-BUILD_AS_ARCH'><glossterm>BUILD_AS_ARCH</glossterm>
1559 <info>
1560 BUILD_AS_ARCH[doc] = "Specifies the architecture-specific assembler flags for the build host."
1561 </info>
1562 <glossdef>
1563 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001564 Specifies the architecture-specific assembler flags for
1565 the build host. By default, the value of
1566 <filename>BUILD_AS_ARCH</filename> is empty.
1567 </para>
1568 </glossdef>
1569 </glossentry>
1570
1571 <glossentry id='var-BUILD_CC_ARCH'><glossterm>BUILD_CC_ARCH</glossterm>
1572 <info>
1573 BUILD_CC_ARCH[doc] = "Specifies the architecture-specific C compiler flags for the build host."
1574 </info>
1575 <glossdef>
1576 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001577 Specifies the architecture-specific C compiler flags for
1578 the build host. By default, the value of
1579 <filename>BUILD_CC_ARCH</filename> is empty.
1580 </para>
1581 </glossdef>
1582 </glossentry>
1583
1584 <glossentry id='var-BUILD_CCLD'><glossterm>BUILD_CCLD</glossterm>
1585 <info>
1586 BUILD_CCLD[doc] = "Specifies the linker command to be used for the build host when the C compiler is being used as the linker."
1587 </info>
1588 <glossdef>
1589 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001590 Specifies the linker command to be used for the build host
1591 when the C compiler is being used as the linker. By default,
1592 <filename>BUILD_CCLD</filename> points to GCC and passes as
1593 arguments the value of
1594 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1595 assuming <filename>BUILD_CC_ARCH</filename> is set.
1596 </para>
1597 </glossdef>
1598 </glossentry>
1599
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001600 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1601 <info>
1602 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1603 </info>
1604 <glossdef>
1605 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001606 Specifies the flags to pass to the C compiler when building
1607 for the build host.
1608 When building in the <filename>-native</filename> context,
1609 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1610 is set to the value of this variable by default.
1611 </para>
1612 </glossdef>
1613 </glossentry>
1614
1615 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1616 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001617 BUILD_CPPFLAGS[doc] = "Specifies the flags to pass to the C preprocessor (i.e. to both the C and the C++ compilers) when building for the build host."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001618 </info>
1619 <glossdef>
1620 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04001621 Specifies the flags to pass to the C preprocessor
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001622 (i.e. to both the C and the C++ compilers) when building
1623 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001624 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001625 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1626 is set to the value of this variable by default.
1627 </para>
1628 </glossdef>
1629 </glossentry>
1630
1631 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1632 <info>
1633 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1634 </info>
1635 <glossdef>
1636 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001637 Specifies the flags to pass to the C++ compiler when
1638 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001639 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001640 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1641 is set to the value of this variable by default.
1642 </para>
1643 </glossdef>
1644 </glossentry>
1645
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001646 <glossentry id='var-BUILD_FC'><glossterm>BUILD_FC</glossterm>
1647 <info>
1648 BUILD_FC[doc] = "Specifies the Fortran compiler command for the build host."
1649 </info>
1650 <glossdef>
1651 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001652 Specifies the Fortran compiler command for the build host.
1653 By default, <filename>BUILD_FC</filename> points to
1654 Gfortran and passes as arguments the value of
1655 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1656 assuming <filename>BUILD_CC_ARCH</filename> is set.
1657 </para>
1658 </glossdef>
1659 </glossentry>
1660
1661 <glossentry id='var-BUILD_LD'><glossterm>BUILD_LD</glossterm>
1662 <info>
1663 BUILD_LD[doc] = "Specifies the linker command for the build host."
1664 </info>
1665 <glossdef>
1666 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001667 Specifies the linker command for the build host. By default,
1668 <filename>BUILD_LD</filename> points to the GNU linker (ld)
1669 and passes as arguments the value of
1670 <link linkend='var-BUILD_LD_ARCH'><filename>BUILD_LD_ARCH</filename></link>,
1671 assuming <filename>BUILD_LD_ARCH</filename> is set.
1672 </para>
1673 </glossdef>
1674 </glossentry>
1675
1676 <glossentry id='var-BUILD_LD_ARCH'><glossterm>BUILD_LD_ARCH</glossterm>
1677 <info>
1678 BUILD_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the build."
1679 </info>
1680 <glossdef>
1681 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001682 Specifies architecture-specific linker flags for the build
1683 host. By default, the value of
1684 <filename>BUILD_LD_ARCH</filename> is empty.
1685 </para>
1686 </glossdef>
1687 </glossentry>
1688
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001689 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1690 <info>
1691 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1692 </info>
1693 <glossdef>
1694 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001695 Specifies the flags to pass to the linker when building
1696 for the build host.
1697 When building in the <filename>-native</filename> context,
1698 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1699 is set to the value of this variable by default.
1700 </para>
1701 </glossdef>
1702 </glossentry>
1703
1704 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1705 <info>
1706 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1707 </info>
1708 <glossdef>
1709 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001710 Specifies the optimization flags passed to the C compiler
1711 when building for the build host or the SDK.
1712 The flags are passed through the
1713 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1714 and
1715 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1716 default values.
1717 </para>
1718
1719 <para>
1720 The default value of the
1721 <filename>BUILD_OPTIMIZATION</filename> variable is
1722 "-O2 -pipe".
1723 </para>
1724 </glossdef>
1725 </glossentry>
1726
1727 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1728 <info>
1729 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1730 </info>
1731 <glossdef>
1732 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001733 Specifies the operating system in use on the build
1734 host (e.g. "linux").
1735 The OpenEmbedded build system sets the value of
1736 <filename>BUILD_OS</filename> from the OS reported by
1737 the <filename>uname</filename> command - the first word,
1738 converted to lower-case characters.
1739 </para>
1740 </glossdef>
1741 </glossentry>
1742
1743 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1744 <info>
1745 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1746 </info>
1747 <glossdef>
1748 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001749 The toolchain binary prefix used for native recipes.
1750 The OpenEmbedded build system uses the
1751 <filename>BUILD_PREFIX</filename> value to set the
1752 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001753 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001754 </para>
1755 </glossdef>
1756 </glossentry>
1757
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001758 <glossentry id='var-BUILD_STRIP'><glossterm>BUILD_STRIP</glossterm>
1759 <info>
1760 BUILD_STRIP[doc] = "Specifies the command to be used to strip debugging symbols from binaries produced for the build host."
1761 </info>
1762 <glossdef>
1763 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001764 Specifies the command to be used to strip debugging symbols
1765 from binaries produced for the build host. By default,
1766 <filename>BUILD_STRIP</filename> points to
1767 <filename>${</filename><link linkend='var-BUILD_PREFIX'><filename>BUILD_PREFIX</filename></link><filename>}strip</filename>.
1768 </para>
1769 </glossdef>
1770 </glossentry>
1771
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001772 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1773 <info>
1774 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1775 </info>
1776 <glossdef>
1777 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001778 Specifies the system, including the architecture and
1779 the operating system, to use when building for the build
1780 host (i.e. when building <filename>native</filename>
1781 recipes).
1782 </para>
1783
1784 <para>
1785 The OpenEmbedded build system automatically sets this
1786 variable based on
1787 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1788 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1789 and
1790 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1791 You do not need to set the <filename>BUILD_SYS</filename>
1792 variable yourself.
1793 </para>
1794 </glossdef>
1795 </glossentry>
1796
1797 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1798 <info>
1799 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1800 </info>
1801 <glossdef>
1802 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001803 Specifies the vendor name to use when building for the
1804 build host.
1805 The default value is an empty string ("").
1806 </para>
1807 </glossdef>
1808 </glossentry>
1809
1810 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1811 <info>
1812 BUILDDIR[doc] = "Points to the location of the Build Directory."
1813 </info>
1814 <glossdef>
1815 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001816 Points to the location of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001817 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001818 You can define this directory indirectly through the
1819 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001820 script by passing in a Build Directory path when you run
1821 the script.
1822 If you run the script and do not provide a Build Directory
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001823 path, the <filename>BUILDDIR</filename> defaults to
1824 <filename>build</filename> in the current directory.
1825 </para>
1826 </glossdef>
1827 </glossentry>
1828
1829 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1830 <info>
1831 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."
1832 </info>
1833 <glossdef>
1834 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001835 When inheriting the
1836 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1837 class, this variable specifies whether or not to commit the
1838 build history output in a local Git repository.
1839 If set to "1", this local repository will be maintained
1840 automatically by the
1841 <filename>buildhistory</filename>
1842 class and a commit will be created on every
1843 build for changes to each top-level subdirectory of the
1844 build history output (images, packages, and sdk).
1845 If you want to track changes to build history over
1846 time, you should set this value to "1".
1847 </para>
1848
1849 <para>
1850 By default, the <filename>buildhistory</filename> class
1851 does not commit the build history output in a local
1852 Git repository:
1853 <literallayout class='monospaced'>
1854 BUILDHISTORY_COMMIT ?= "0"
1855 </literallayout>
1856 </para>
1857 </glossdef>
1858 </glossentry>
1859
1860 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1861 <info>
1862 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1863 </info>
1864 <glossdef>
1865 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001866 When inheriting the
1867 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1868 class, this variable specifies the author to use for each
1869 Git commit.
1870 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1871 variable to work, the
1872 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1873 variable must be set to "1".
1874 </para>
1875
1876 <para>
1877 Git requires that the value you provide for the
1878 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
Brad Bishop316dfdd2018-06-25 12:45:53 -04001879 takes the form of "name <replaceable>email@host</replaceable>".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001880 Providing an email address or host that is not valid does
1881 not produce an error.
1882 </para>
1883
1884 <para>
1885 By default, the <filename>buildhistory</filename> class
1886 sets the variable as follows:
1887 <literallayout class='monospaced'>
1888 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1889 </literallayout>
1890 </para>
1891 </glossdef>
1892 </glossentry>
1893
1894 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1895 <info>
1896 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1897 </info>
1898 <glossdef>
1899 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001900 When inheriting the
1901 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1902 class, this variable specifies the directory in which
1903 build history information is kept.
1904 For more information on how the variable works, see the
1905 <filename>buildhistory.class</filename>.
1906 </para>
1907
1908 <para>
1909 By default, the <filename>buildhistory</filename> class
1910 sets the directory as follows:
1911 <literallayout class='monospaced'>
1912 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1913 </literallayout>
1914 </para>
1915 </glossdef>
1916 </glossentry>
1917
1918 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1919 <info>
1920 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1921 </info>
1922 <glossdef>
1923 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001924 When inheriting the
1925 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1926 class, this variable specifies the build history features
1927 to be enabled.
1928 For more information on how build history works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04001929 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
1930 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001931 </para>
1932
1933 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001934 You can specify these features in the form of a
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001935 space-separated list:
1936 <itemizedlist>
1937 <listitem><para><emphasis>image:</emphasis>
1938 Analysis of the contents of images, which
1939 includes the list of installed packages among other
1940 things.
1941 </para></listitem>
1942 <listitem><para><emphasis>package:</emphasis>
1943 Analysis of the contents of individual packages.
1944 </para></listitem>
1945 <listitem><para><emphasis>sdk:</emphasis>
1946 Analysis of the contents of the software
1947 development kit (SDK).
1948 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001949 <listitem><para><emphasis>task:</emphasis>
1950 Save output file signatures for
1951 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state</ulink>
1952 (sstate) tasks.
1953 This saves one file per task and lists the SHA-256
1954 checksums for each file staged (i.e. the output of
1955 the task).
1956 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001957 </itemizedlist>
1958 </para>
1959
1960 <para>
1961 By default, the <filename>buildhistory</filename> class
Brad Bishop316dfdd2018-06-25 12:45:53 -04001962 enables the following features:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001963 <literallayout class='monospaced'>
1964 BUILDHISTORY_FEATURES ?= "image package sdk"
1965 </literallayout>
1966 </para>
1967 </glossdef>
1968 </glossentry>
1969
1970 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
1971 <info>
1972 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."
1973 </info>
1974 <glossdef>
1975 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001976 When inheriting the
1977 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1978 class, this variable specifies a list of paths to files
1979 copied from the
1980 image contents into the build history directory under
1981 an "image-files" directory in the directory for
1982 the image, so that you can track the contents of each file.
1983 The default is to copy <filename>/etc/passwd</filename>
1984 and <filename>/etc/group</filename>, which allows you to
1985 monitor for changes in user and group entries.
1986 You can modify the list to include any file.
1987 Specifying an invalid path does not produce an error.
1988 Consequently, you can include files that might
1989 not always be present.
1990 </para>
1991
1992 <para>
1993 By default, the <filename>buildhistory</filename> class
1994 provides paths to the following files:
1995 <literallayout class='monospaced'>
1996 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1997 </literallayout>
1998 </para>
1999 </glossdef>
2000 </glossentry>
2001
2002 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
2003 <info>
2004 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
2005 </info>
2006 <glossdef>
2007 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002008 When inheriting the
2009 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2010 class, this variable optionally specifies a remote
2011 repository to which build history pushes Git changes.
2012 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
2013 to work,
2014 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
2015 must be set to "1".
2016 </para>
2017
2018 <para>
2019 The repository should correspond to a remote
2020 address that specifies a repository as understood by
2021 Git, or alternatively to a remote name that you have
2022 set up manually using <filename>git remote</filename>
2023 within the local repository.
2024 </para>
2025
2026 <para>
2027 By default, the <filename>buildhistory</filename> class
2028 sets the variable as follows:
2029 <literallayout class='monospaced'>
2030 BUILDHISTORY_PUSH_REPO ?= ""
2031 </literallayout>
2032 </para>
2033 </glossdef>
2034 </glossentry>
2035
2036 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
2037 <info>
2038 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
2039 </info>
2040 <glossdef>
2041 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002042 Specifies the flags to pass to the C compiler when building
2043 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002044 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002045 context,
2046 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
2047 is set to the value of this variable by default.
2048 </para>
2049 </glossdef>
2050 </glossentry>
2051
2052 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
2053 <info>
2054 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."
2055 </info>
2056 <glossdef>
2057 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002058 Specifies the flags to pass to the C pre-processor
2059 (i.e. to both the C and the C++ compilers) when building
2060 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002061 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002062 context,
2063 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
2064 is set to the value of this variable by default.
2065 </para>
2066 </glossdef>
2067 </glossentry>
2068
2069 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
2070 <info>
2071 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
2072 </info>
2073 <glossdef>
2074 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002075 Specifies the flags to pass to the C++ compiler when
2076 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002077 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002078 context,
2079 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
2080 is set to the value of this variable by default.
2081 </para>
2082 </glossdef>
2083 </glossentry>
2084
2085 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
2086 <info>
2087 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
2088 </info>
2089 <glossdef>
2090 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002091 Specifies the flags to pass to the linker when building
2092 for the SDK.
2093 When building in the <filename>nativesdk-</filename>
2094 context,
2095 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
2096 is set to the value of this variable by default.
2097 </para>
2098 </glossdef>
2099 </glossentry>
2100
2101 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
2102 <info>
2103 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
2104 </info>
2105 <glossdef>
2106 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002107 Points to the location of the directory that holds build
2108 statistics when you use and enable the
2109 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
2110 class.
2111 The <filename>BUILDSTATS_BASE</filename> directory defaults
2112 to
2113 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
2114 </para>
2115 </glossdef>
2116 </glossentry>
2117
2118 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
2119 <info>
2120 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."
2121 </info>
2122 <glossdef>
2123 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002124 For the BusyBox recipe, specifies whether to split the
2125 output executable file into two parts: one for features
2126 that require <filename>setuid root</filename>, and one for
2127 the remaining features (i.e. those that do not require
2128 <filename>setuid root</filename>).
2129 </para>
2130
2131 <para>
2132 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
Brad Bishop64c979e2019-11-04 13:55:29 -05002133 defaults to "1", which results in splitting the output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002134 executable file.
Brad Bishop64c979e2019-11-04 13:55:29 -05002135 Set the variable to "0" to get a single output executable
2136 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002137 </para>
2138 </glossdef>
2139 </glossentry>
2140
2141 </glossdiv>
2142
2143 <glossdiv id='var-glossary-c'><title>C</title>
2144
2145 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
2146 <info>
2147 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
2148 </info>
2149 <glossdef>
2150 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002151 Specifies the directory BitBake uses to store a cache
2152 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002153 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002154 so it does not need to be parsed every time BitBake is
2155 started.
2156 </para>
2157 </glossdef>
2158 </glossentry>
2159
2160 <glossentry id='var-CC'><glossterm>CC</glossterm>
2161 <info>
2162 CC[doc] = "Minimum command and arguments to run the C compiler."
2163 </info>
2164 <glossdef>
2165 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002166 The minimal command and arguments used to run the C
2167 compiler.
2168 </para>
2169 </glossdef>
2170 </glossentry>
2171
2172 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
2173 <info>
2174 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
2175 </info>
2176 <glossdef>
2177 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002178 Specifies the flags to pass to the C compiler.
2179 This variable is exported to an environment
2180 variable and thus made visible to the software being
2181 built during the compilation step.
2182 </para>
2183
2184 <para>
2185 Default initialization for <filename>CFLAGS</filename>
2186 varies depending on what is being built:
2187 <itemizedlist>
2188 <listitem><para>
2189 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2190 when building for the target
2191 </para></listitem>
2192 <listitem><para>
2193 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2194 when building for the build host (i.e.
2195 <filename>-native</filename>)
2196 </para></listitem>
2197 <listitem><para>
2198 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2199 when building for an SDK (i.e.
2200 <filename>nativesdk-</filename>)
2201 </para></listitem>
2202 </itemizedlist>
2203 </para>
2204 </glossdef>
2205 </glossentry>
2206
2207 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2208 <info>
2209 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2210 </info>
2211 <glossdef>
2212 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002213 An internal variable specifying the special class override
2214 that should currently apply (e.g. "class-target",
2215 "class-native", and so forth).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002216 The classes that use this variable (e.g.
2217 <link linkend='ref-classes-native'><filename>native</filename></link>,
2218 <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
2219 and so forth) set the variable to appropriate values.
2220 <note>
2221 <filename>CLASSOVERRIDE</filename> gets its default
2222 "class-target" value from the
2223 <filename>bitbake.conf</filename> file.
2224 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002225 </para>
2226
2227 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002228 As an example, the following override allows you to install
2229 extra files, but only when building for the target:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002230 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002231 do_install_append_class-target() {
2232 install my-extra-file ${D}${sysconfdir}
2233 }
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002234 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002235 Here is an example where <filename>FOO</filename>
2236 is set to "native" when building for the build host, and
2237 to "other" when not building for the build host:
2238 <literallayout class='monospaced'>
2239 FOO_class-native = "native"
2240 FOO = "other"
2241 </literallayout>
2242 The underlying mechanism behind
2243 <filename>CLASSOVERRIDE</filename> is simply that it is
2244 included in the default value of
2245 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002246 </para>
2247 </glossdef>
2248 </glossentry>
2249
2250 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2251 <info>
2252 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2253 </info>
2254 <glossdef>
2255 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002256 If set to "1" within a recipe,
2257 <filename>CLEANBROKEN</filename> specifies that
2258 the <filename>make clean</filename> command does
2259 not work for the software being built.
2260 Consequently, the OpenEmbedded build system will not try
2261 to run <filename>make clean</filename> during the
2262 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2263 task, which is the default behavior.
2264 </para>
2265 </glossdef>
2266 </glossentry>
2267
2268 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2269 <info>
2270 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2271 </info>
2272 <glossdef>
2273 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002274 Provides a list of hardware features that are enabled in
2275 both
2276 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2277 and
2278 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2279 This select list of features contains features that make
2280 sense to be controlled both at the machine and distribution
2281 configuration level.
2282 For example, the "bluetooth" feature requires hardware
2283 support but should also be optional at the distribution
2284 level, in case the hardware supports Bluetooth but you
2285 do not ever intend to use it.
2286 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002287 </glossdef>
2288 </glossentry>
2289
2290 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2291 <info>
2292 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2293 </info>
2294 <glossdef>
2295 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002296 Points to <filename>meta/files/common-licenses</filename>
2297 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002298 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002299 which is where generic license files reside.
2300 </para>
2301 </glossdef>
2302 </glossentry>
2303
2304 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2305 <info>
2306 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."
2307 </info>
2308 <glossdef>
2309 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002310 A regular expression that resolves to one or more hosts
2311 (when the recipe is native) or one or more targets (when
2312 the recipe is non-native) with which a recipe is compatible.
2313 The regular expression is matched against
2314 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2315 You can use the variable to stop recipes from being built
2316 for classes of systems with which the recipes are not
2317 compatible.
2318 Stopping these builds is particularly useful with kernels.
2319 The variable also helps to increase parsing speed
2320 since the build system skips parsing recipes not
2321 compatible with the current system.
2322 </para>
2323 </glossdef>
2324 </glossentry>
2325
2326 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2327 <info>
2328 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2329 </info>
2330 <glossdef>
2331 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002332 A regular expression that resolves to one or more
2333 target machines with which a recipe is compatible.
2334 The regular expression is matched against
2335 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2336 You can use the variable to stop recipes from being built
2337 for machines with which the recipes are not compatible.
2338 Stopping these builds is particularly useful with kernels.
2339 The variable also helps to increase parsing speed
2340 since the build system skips parsing recipes not
2341 compatible with the current machine.
2342 </para>
2343 </glossdef>
2344 </glossentry>
2345
2346 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2347 <info>
2348 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2349 </info>
2350 <glossdef>
2351 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002352 Defines wildcards to match when installing a list of
2353 complementary packages for all the packages explicitly
2354 (or implicitly) installed in an image.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08002355 <note>
2356 The <filename>COMPLEMENTARY_GLOB</filename> variable
2357 uses Unix filename pattern matching
2358 (<ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>),
2359 which is similar to the Unix style pathname pattern
2360 expansion
2361 (<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>).
2362 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002363 The resulting list of complementary packages is associated
2364 with an item that can be added to
2365 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2366 An example usage of this is the "dev-pkgs" item that when
2367 added to <filename>IMAGE_FEATURES</filename> will
2368 install -dev packages (containing headers and other
2369 development files) for every package in the image.
2370 </para>
2371
2372 <para>
2373 To add a new feature item pointing to a wildcard, use a
2374 variable flag to specify the feature item name and
2375 use the value to specify the wildcard.
2376 Here is an example:
2377 <literallayout class='monospaced'>
2378 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2379 </literallayout>
2380 </para>
2381 </glossdef>
2382 </glossentry>
2383
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002384 <glossentry id='var-COMPONENTS_DIR'><glossterm>COMPONENTS_DIR</glossterm>
2385 <info>
2386 COMPONENTS_DIR[doc] = "Stores sysroot components for each recipe."
2387 </info>
2388 <glossdef>
2389 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002390 Stores sysroot components for each recipe.
2391 The OpenEmbedded build system uses
2392 <filename>COMPONENTS_DIR</filename> when constructing
2393 recipe-specific sysroots for other recipes.
2394 </para>
2395
2396 <para>
2397 The default is
2398 "<filename>${</filename><link linkend='var-STAGING_DIR'><filename>STAGING_DIR</filename></link><filename>}-components</filename>."
2399 (i.e. "<filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots-components</filename>").
2400 </para>
2401 </glossdef>
2402 </glossentry>
2403
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002404 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2405 <info>
2406 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2407 </info>
2408 <glossdef>
2409 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002410 Tracks the version of the local configuration file
2411 (i.e. <filename>local.conf</filename>).
2412 The value for <filename>CONF_VERSION</filename>
2413 increments each time <filename>build/conf/</filename>
2414 compatibility changes.
2415 </para>
2416 </glossdef>
2417 </glossentry>
2418
2419 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2420 <info>
2421 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2422 </info>
2423 <glossdef>
2424 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002425 Identifies editable or configurable files that are part of a package.
2426 If the Package Management System (PMS) is being used to update
2427 packages on the target system, it is possible that
2428 configuration files you have changed after the original installation
2429 and that you now want to remain unchanged are overwritten.
2430 In other words, editable files might exist in the package that you do not
2431 want reset as part of the package update process.
2432 You can use the <filename>CONFFILES</filename> variable to list the files in the
2433 package that you wish to prevent the PMS from overwriting during this update process.
2434 </para>
2435
2436 <para>
2437 To use the <filename>CONFFILES</filename> variable, provide a package name
2438 override that identifies the resulting package.
2439 Then, provide a space-separated list of files.
2440 Here is an example:
2441 <literallayout class='monospaced'>
2442 CONFFILES_${PN} += "${sysconfdir}/file1 \
2443 ${sysconfdir}/file2 ${sysconfdir}/file3"
2444 </literallayout>
2445 </para>
2446
2447 <para>
2448 A relationship exists between the <filename>CONFFILES</filename> and
2449 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2450 The files listed within <filename>CONFFILES</filename> must be a subset of
2451 the files listed within <filename>FILES</filename>.
2452 Because the configuration files you provide with <filename>CONFFILES</filename>
2453 are simply being identified so that the PMS will not overwrite them,
2454 it makes sense that
2455 the files must already be included as part of the package through the
2456 <filename>FILES</filename> variable.
2457 </para>
2458
2459 <note>
2460 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2461 it is good practice to use appropriate path variables.
2462 For example, <filename>${sysconfdir}</filename> rather than
2463 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2464 than <filename>/usr/bin</filename>.
2465 You can find a list of these variables at the top of the
2466 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002467 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002468 </note>
2469 </glossdef>
2470 </glossentry>
2471
2472 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2473 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002474 CONFIG_INITRAMFS_SOURCE[doc] = "Identifies the initial RAM filesystem (initramfs) source files. The OpenEmbedded build system receives and uses this kernel Kconfig variable as an environment variable."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002475 </info>
2476 <glossdef>
2477 <para role="glossdeffirst">
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002478 Identifies the initial RAM filesystem (initramfs) source
2479 files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002480 The OpenEmbedded build system receives and uses
2481 this kernel Kconfig variable as an environment variable.
2482 By default, the variable is set to null ("").
2483 </para>
2484
2485 <para>
2486 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2487 either a single cpio archive with a
2488 <filename>.cpio</filename> suffix or a
2489 space-separated list of directories and files for building
2490 the initramfs image.
2491 A cpio archive should contain a filesystem archive
2492 to be used as an initramfs image.
2493 Directories should contain a filesystem layout to be
2494 included in the initramfs image.
2495 Files should contain entries according to the format
2496 described by the
2497 <filename>usr/gen_init_cpio</filename> program in the
2498 kernel tree.
2499 </para>
2500
2501 <para>
2502 If you specify multiple directories and files, the
2503 initramfs image will be the aggregate of all of them.
2504 </para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002505
2506 <para>
2507 For information on creating an initramfs, see the
2508 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002509 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002510 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002511 </glossdef>
2512 </glossentry>
2513
2514 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2515 <info>
2516 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."
2517 </info>
2518 <glossdef>
2519 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002520 A list of files that contains <filename>autoconf</filename> test results relevant
2521 to the current build.
2522 This variable is used by the Autotools utilities when running
2523 <filename>configure</filename>.
2524 </para>
2525 </glossdef>
2526 </glossentry>
2527
2528 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2529 <info>
2530 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2531 </info>
2532 <glossdef>
2533 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002534 The minimal arguments for GNU configure.
2535 </para>
2536 </glossdef>
2537 </glossentry>
2538
2539 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2540 <info>
2541 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."
2542 </info>
2543 <glossdef>
2544 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002545 When inheriting the
2546 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2547 class, this
2548 variable identifies distribution features that would
2549 be in conflict should the recipe
2550 be built.
2551 In other words, if the
2552 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2553 lists a feature that also appears in
2554 <filename>DISTRO_FEATURES</filename> within the
2555 current configuration, an error occurs and the
2556 build stops.
2557 </para>
2558 </glossdef>
2559 </glossentry>
2560
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002561 <glossentry id='var-COPYLEFT_LICENSE_EXCLUDE'><glossterm>COPYLEFT_LICENSE_EXCLUDE</glossterm>
2562 <info>
2563 COPYLEFT_LICENSE_EXCLUDE[doc] = "Licenses to exclude in the source archived by the archiver class."
2564 </info>
2565 <glossdef>
2566 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002567 A space-separated list of licenses to exclude from the
2568 source archived by the
2569 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2570 class.
2571 In other words, if a license in a recipe's
2572 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2573 value is in the value of
2574 <filename>COPYLEFT_LICENSE_EXCLUDE</filename>, then its
2575 source is not archived by the class.
2576 <note>
2577 The <filename>COPYLEFT_LICENSE_EXCLUDE</filename>
2578 variable takes precedence over the
2579 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2580 variable.
2581 </note>
2582 The default value, which is "CLOSED Proprietary", for
2583 <filename>COPYLEFT_LICENSE_EXCLUDE</filename> is set
2584 by the
2585 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2586 class, which is inherited by the
2587 <filename>archiver</filename> class.
2588 </para>
2589 </glossdef>
2590 </glossentry>
2591
2592 <glossentry id='var-COPYLEFT_LICENSE_INCLUDE'><glossterm>COPYLEFT_LICENSE_INCLUDE</glossterm>
2593 <info>
2594 COPYLEFT_LICENSE_INCLUDE[doc] = "Licenses to include in the source archived by the archiver class."
2595 </info>
2596 <glossdef>
2597 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002598 A space-separated list of licenses to include in the
2599 source archived by the
2600 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2601 class.
2602 In other words, if a license in a recipe's
2603 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2604 value is in the value of
2605 <filename>COPYLEFT_LICENSE_INCLUDE</filename>, then its
2606 source is archived by the class.
2607 </para>
2608
2609 <para>
2610 The default value is set by the
2611 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2612 class, which is inherited by the
2613 <filename>archiver</filename> class.
2614 The default value includes "GPL*", "LGPL*", and "AGPL*".
2615 </para>
2616 </glossdef>
2617 </glossentry>
2618
2619 <glossentry id='var-COPYLEFT_PN_EXCLUDE'><glossterm>COPYLEFT_PN_EXCLUDE</glossterm>
2620 <info>
2621 COPYLEFT_PN_EXCLUDE[doc] = "Recipes to exclude in the source archived by the archiver class."
2622 </info>
2623 <glossdef>
2624 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002625 A list of recipes to exclude in the source archived
2626 by the
2627 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2628 class.
2629 The <filename>COPYLEFT_PN_EXCLUDE</filename> variable
2630 overrides the license inclusion and exclusion caused
2631 through the
2632 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2633 and
2634 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2635 variables, respectively.
2636 </para>
2637
2638 <para>
2639 The default value, which is "" indicating to not explicitly
2640 exclude any recipes by name, for
2641 <filename>COPYLEFT_PN_EXCLUDE</filename> is set
2642 by the
2643 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2644 class, which is inherited by the
2645 <filename>archiver</filename> class.
2646 </para>
2647 </glossdef>
2648 </glossentry>
2649
2650 <glossentry id='var-COPYLEFT_PN_INCLUDE'><glossterm>COPYLEFT_PN_INCLUDE</glossterm>
2651 <info>
2652 COPYLEFT_PN_INCLUDE[doc] = "Recipes to include in the source archived by the archiver class."
2653 </info>
2654 <glossdef>
2655 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002656 A list of recipes to include in the source archived
2657 by the
2658 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2659 class.
2660 The <filename>COPYLEFT_PN_INCLUDE</filename> variable
2661 overrides the license inclusion and exclusion caused
2662 through the
2663 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2664 and
2665 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2666 variables, respectively.
2667 </para>
2668
2669 <para>
2670 The default value, which is "" indicating to not explicitly
2671 include any recipes by name, for
2672 <filename>COPYLEFT_PN_INCLUDE</filename> is set
2673 by the
2674 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2675 class, which is inherited by the
2676 <filename>archiver</filename> class.
2677 </para>
2678 </glossdef>
2679 </glossentry>
2680
2681 <glossentry id='var-COPYLEFT_RECIPE_TYPES'><glossterm>COPYLEFT_RECIPE_TYPES</glossterm>
2682 <info>
2683 COPYLEFT_RECIPE_TYPES[doc] = "Recipe types to include in the source archived by the archiver class."
2684 </info>
2685 <glossdef>
2686 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002687 A space-separated list of recipe types to include
2688 in the source archived by the
2689 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2690 class.
2691 Recipe types are <filename>target</filename>,
2692 <filename>native</filename>,
2693 <filename>nativesdk</filename>,
2694 <filename>cross</filename>,
2695 <filename>crosssdk</filename>, and
2696 <filename>cross-canadian</filename>.
2697 </para>
2698
2699 <para>
2700 The default value, which is "target*", for
2701 <filename>COPYLEFT_RECIPE_TYPES</filename> is set
2702 by the
2703 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2704 class, which is inherited by the
2705 <filename>archiver</filename> class.
2706 </para>
2707 </glossdef>
2708 </glossentry>
2709
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002710 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2711 <info>
2712 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."
2713 </info>
2714 <glossdef>
2715 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002716 If set to "1" along with the
2717 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2718 variable, the OpenEmbedded build system copies
2719 into the image the license files, which are located in
2720 <filename>/usr/share/common-licenses</filename>,
2721 for each package.
2722 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002723 in directories within the image itself during build time.
2724 <note>
2725 The <filename>COPY_LIC_DIRS</filename> does not
2726 offer a path for adding licenses for newly installed
2727 packages to an image, which might be most suitable
2728 for read-only filesystems that cannot be upgraded.
2729 See the
2730 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2731 variable for additional information.
2732 You can also reference the
2733 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002734 section in the Yocto Project Development Tasks Manual
2735 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002736 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002737 </para>
2738 </glossdef>
2739 </glossentry>
2740
2741 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2742 <info>
2743 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."
2744 </info>
2745 <glossdef>
2746 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002747 If set to "1", the OpenEmbedded build system copies
2748 the license manifest for the image to
2749 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002750 within the image itself during build time.
2751 <note>
2752 The <filename>COPY_LIC_MANIFEST</filename> does not
2753 offer a path for adding licenses for newly installed
2754 packages to an image, which might be most suitable
2755 for read-only filesystems that cannot be upgraded.
2756 See the
2757 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2758 variable for additional information.
2759 You can also reference the
2760 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002761 section in the Yocto Project Development Tasks Manual
2762 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002763 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002764 </para>
2765 </glossdef>
2766 </glossentry>
2767
2768 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2769 <info>
2770 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."
2771 </info>
2772 <glossdef>
2773 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002774 Specifies the list of packages to be added to the image.
2775 You should only set this variable in the
2776 <filename>local.conf</filename> configuration file found
2777 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002778 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002779 </para>
2780
2781 <para>
2782 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2783 </para>
2784 </glossdef>
2785 </glossentry>
2786
2787 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2788 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002789 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. meta)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002790 </info>
2791 <glossdef>
2792 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04002793 Specifies the parent directory of the OpenEmbedded-Core
2794 Metadata layer (i.e. <filename>meta</filename>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002795 </para>
2796
2797 <para>
2798 It is an important distinction that
2799 <filename>COREBASE</filename> points to the parent of this
2800 layer and not the layer itself.
2801 Consider an example where you have cloned the Poky Git
2802 repository and retained the <filename>poky</filename>
2803 name for your local copy of the repository.
2804 In this case, <filename>COREBASE</filename> points to
2805 the <filename>poky</filename> folder because it is the
2806 parent directory of the <filename>poky/meta</filename>
2807 layer.
2808 </para>
2809 </glossdef>
2810 </glossentry>
2811
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002812 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2813 <info>
2814 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2815 </info>
2816 <glossdef>
2817 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002818 Lists files from the
2819 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2820 directory that should be copied other than the layers
2821 listed in the <filename>bblayers.conf</filename> file.
2822 The <filename>COREBASE_FILES</filename> variable exists
2823 for the purpose of copying metadata from the
2824 OpenEmbedded build system into the extensible
2825 SDK.
2826 </para>
2827
2828 <para>
2829 Explicitly listing files in <filename>COREBASE</filename>
2830 is needed because it typically contains build
2831 directories and other files that should not normally
2832 be copied into the extensible SDK.
2833 Consequently, the value of
2834 <filename>COREBASE_FILES</filename> is used in order to
2835 only copy the files that are actually needed.
2836 </para>
2837 </glossdef>
2838 </glossentry>
2839
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002840 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2841 <info>
2842 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2843 </info>
2844 <glossdef>
2845 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002846 The minimal command and arguments used to run the C
2847 preprocessor.
2848 </para>
2849 </glossdef>
2850 </glossentry>
2851
2852 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2853 <info>
2854 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2855 </info>
2856 <glossdef>
2857 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002858 Specifies the flags to pass to the C pre-processor
2859 (i.e. to both the C and the C++ compilers).
2860 This variable is exported to an environment
2861 variable and thus made visible to the software being
2862 built during the compilation step.
2863 </para>
2864
2865 <para>
2866 Default initialization for <filename>CPPFLAGS</filename>
2867 varies depending on what is being built:
2868 <itemizedlist>
2869 <listitem><para>
2870 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2871 when building for the target
2872 </para></listitem>
2873 <listitem><para>
2874 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2875 when building for the build host (i.e.
2876 <filename>-native</filename>)
2877 </para></listitem>
2878 <listitem><para>
2879 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2880 when building for an SDK (i.e.
2881 <filename>nativesdk-</filename>)
2882 </para></listitem>
2883 </itemizedlist>
2884 </para>
2885 </glossdef>
2886 </glossentry>
2887
2888 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2889 <info>
2890 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2891 </info>
2892 <glossdef>
2893 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002894 The toolchain binary prefix for the target tools.
2895 The <filename>CROSS_COMPILE</filename> variable is the
2896 same as the
2897 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2898 variable.
2899 <note>
2900 The OpenEmbedded build system sets the
2901 <filename>CROSS_COMPILE</filename> variable only in
2902 certain contexts (e.g. when building for kernel
2903 and kernel module recipes).
2904 </note>
2905 </para>
2906 </glossdef>
2907 </glossentry>
2908
2909 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2910 <info>
2911 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2912 </info>
2913 <glossdef>
2914 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002915 The directory in which files checked out under the
2916 CVS system are stored.
2917 </para>
2918 </glossdef>
2919 </glossentry>
2920
2921 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2922 <info>
2923 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2924 </info>
2925 <glossdef>
2926 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002927 The minimal command and arguments used to run the C++
2928 compiler.
2929 </para>
2930 </glossdef>
2931 </glossentry>
2932
2933 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
2934 <info>
2935 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
2936 </info>
2937 <glossdef>
2938 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002939 Specifies the flags to pass to the C++ compiler.
2940 This variable is exported to an environment
2941 variable and thus made visible to the software being
2942 built during the compilation step.
2943 </para>
2944
2945 <para>
2946 Default initialization for <filename>CXXFLAGS</filename>
2947 varies depending on what is being built:
2948 <itemizedlist>
2949 <listitem><para>
2950 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
2951 when building for the target
2952 </para></listitem>
2953 <listitem><para>
2954 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
2955 when building for the build host (i.e.
2956 <filename>-native</filename>)
2957 </para></listitem>
2958 <listitem><para>
2959 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
2960 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002961 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002962 </para></listitem>
2963 </itemizedlist>
2964 </para>
2965 </glossdef>
2966 </glossentry>
2967
2968 </glossdiv>
2969
2970 <glossdiv id='var-glossary-d'><title>D</title>
2971
2972 <glossentry id='var-D'><glossterm>D</glossterm>
2973 <info>
2974 D[doc] = "The destination directory."
2975 </info>
2976 <glossdef>
2977 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002978 The destination directory.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002979 The location in the
2980 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002981 where components are installed by the
2982 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
2983 task.
2984 This location defaults to:
2985 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002986 ${WORKDIR}/image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002987 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002988 <note><title>Caution</title>
2989 Tasks that read from or write to this directory should
2990 run under
Brad Bishop316dfdd2018-06-25 12:45:53 -04002991 <ulink url='&YOCTO_DOCS_OM_URL;#fakeroot-and-pseudo'>fakeroot</ulink>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002992 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002993 </para>
2994 </glossdef>
2995 </glossentry>
2996
2997 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
2998 <info>
2999 DATE[doc] = "The date the build was started using YMD format."
3000 </info>
3001 <glossdef>
3002 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003003 The date the build was started.
3004 Dates appear using the year, month, and day (YMD) format
3005 (e.g. "20150209" for February 9th, 2015).
3006 </para>
3007 </glossdef>
3008 </glossentry>
3009
3010 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
3011 <info>
3012 DATETIME[doc] = "The date and time the build was started."
3013 </info>
3014 <glossdef>
3015 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003016 The date and time on which the current build started.
3017 The format is suitable for timestamps.
3018 </para>
3019 </glossdef>
3020 </glossentry>
3021
3022 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
3023 <info>
3024 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
3025 </info>
3026 <glossdef>
3027 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003028 When the
3029 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3030 class is inherited, which is the default behavior,
3031 <filename>DEBIAN_NOAUTONAME</filename> specifies a
3032 particular package should not be renamed according to
3033 Debian library package naming.
3034 You must use the package name as an override when you
3035 set this variable.
3036 Here is an example from the <filename>fontconfig</filename>
3037 recipe:
3038 <literallayout class='monospaced'>
3039 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
3040 </literallayout>
3041 </para>
3042 </glossdef>
3043 </glossentry>
3044
3045 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
3046 <info>
3047 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
3048 </info>
3049 <glossdef>
3050 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003051 When the
3052 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3053 class is inherited, which is the default behavior,
3054 <filename>DEBIANNAME</filename> allows you to override the
3055 library name for an individual package.
3056 Overriding the library name in these cases is rare.
3057 You must use the package name as an override when you
3058 set this variable.
3059 Here is an example from the <filename>dbus</filename>
3060 recipe:
3061 <literallayout class='monospaced'>
3062 DEBIANNAME_${PN} = "dbus-1"
3063 </literallayout>
3064 </para>
3065 </glossdef>
3066 </glossentry>
3067
3068 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
3069 <info>
3070 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
3071 </info>
3072 <glossdef>
3073 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003074 Specifies to build packages with debugging information.
3075 This influences the value of the
3076 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
3077 variable.
3078 </para>
3079 </glossdef>
3080 </glossentry>
3081
3082 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
3083 <info>
3084 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'."
3085 </info>
3086 <glossdef>
3087 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003088 The options to pass in
3089 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
3090 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
3091 a system for debugging.
3092 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
3093 </para>
3094 </glossdef>
3095 </glossentry>
3096
3097 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
3098 <info>
3099 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
3100 </info>
3101 <glossdef>
3102 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003103 Specifies a weak bias for recipe selection priority.
3104 </para>
3105
3106 <para>
3107 The most common usage of this is variable is to set
3108 it to "-1" within a recipe for a development version of a
3109 piece of software.
3110 Using the variable in this way causes the stable version
3111 of the recipe to build by default in the absence of
3112 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
3113 being used to build the development version.
3114 </para>
3115
3116 <note>
3117 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
3118 is weak and is overridden by
3119 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
3120 if that variable is different between two layers
3121 that contain different versions of the same recipe.
3122 </note>
3123 </glossdef>
3124 </glossentry>
3125
3126 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
3127 <info>
3128 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
3129 </info>
3130 <glossdef>
3131 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003132 The default CPU and Application Binary Interface (ABI)
3133 tunings (i.e. the "tune") used by the OpenEmbedded build
3134 system.
3135 The <filename>DEFAULTTUNE</filename> helps define
3136 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
3137 </para>
3138
3139 <para>
3140 The default tune is either implicitly or explicitly set
3141 by the machine
3142 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
3143 However, you can override the setting using available tunes
3144 as defined with
3145 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
3146 </para>
3147 </glossdef>
3148 </glossentry>
3149
3150 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
3151 <info>
3152 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
3153 </info>
3154 <glossdef>
3155 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003156 Lists a recipe's build-time dependencies.
3157 These are dependencies on other recipes whose
3158 contents (e.g. headers and shared libraries) are needed
3159 by the recipe at build time.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003160 </para>
3161
3162 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003163 As an example, consider a recipe <filename>foo</filename>
3164 that contains the following assignment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003165 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003166 DEPENDS = "bar"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003167 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003168 The practical effect of the previous assignment is that
3169 all files installed by bar will be available in the
3170 appropriate staging sysroot, given by the
3171 <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
3172 variables, by the time the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003173 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003174 task for <filename>foo</filename> runs.
3175 This mechanism is implemented by having
3176 <filename>do_configure</filename> depend on the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003177 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003178 task of each recipe listed in <filename>DEPENDS</filename>,
3179 through a
3180 <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
3181 declaration in the
3182 <link linkend='ref-classes-base'><filename>base</filename></link>
3183 class.
3184 <note>
3185 It seldom is necessary to reference, for example,
3186 <filename>STAGING_DIR_HOST</filename> explicitly.
3187 The standard classes and build-related variables are
3188 configured to automatically use the appropriate staging
3189 sysroots.
3190 </note>
3191 As another example, <filename>DEPENDS</filename> can also
3192 be used to add utilities that run on the build machine
3193 during the build.
3194 For example, a recipe that makes use of a code generator
3195 built by the recipe <filename>codegen</filename> might have
3196 the following:
3197 <literallayout class='monospaced'>
3198 DEPENDS = "codegen-native"
3199 </literallayout>
3200 For more information, see the
3201 <link linkend='ref-classes-native'><filename>native</filename></link>
3202 class and the
3203 <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
3204 variable.
3205 <note>
3206 <title>Notes</title>
3207 <itemizedlist>
3208 <listitem><para>
3209 <filename>DEPENDS</filename> is a list of
3210 recipe names.
3211 Or, to be more precise, it is a list of
3212 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
3213 names, which usually match recipe names.
3214 Putting a package name such as "foo-dev" in
3215 <filename>DEPENDS</filename> does not make
3216 sense.
3217 Use "foo" instead, as this will put files
3218 from all the packages that make up
3219 <filename>foo</filename>, which includes
3220 those from <filename>foo-dev</filename>, into
3221 the sysroot.
3222 </para></listitem>
3223 <listitem><para>
3224 One recipe having another recipe in
3225 <filename>DEPENDS</filename> does not by itself
3226 add any runtime dependencies between the
3227 packages produced by the two recipes.
3228 However, as explained in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003229 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
3230 section in the Yocto Project Overview and
3231 Concepts Manual, runtime dependencies will
3232 often be added automatically, meaning
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003233 <filename>DEPENDS</filename> alone is
3234 sufficient for most recipes.
3235 </para></listitem>
3236 <listitem><para>
3237 Counterintuitively,
3238 <filename>DEPENDS</filename> is often necessary
3239 even for recipes that install precompiled
3240 components.
3241 For example, if <filename>libfoo</filename>
3242 is a precompiled library that links against
3243 <filename>libbar</filename>, then
3244 linking against <filename>libfoo</filename>
3245 requires both <filename>libfoo</filename>
3246 and <filename>libbar</filename> to be available
3247 in the sysroot.
3248 Without a <filename>DEPENDS</filename> from the
3249 recipe that installs <filename>libfoo</filename>
3250 to the recipe that installs
3251 <filename>libbar</filename>, other recipes might
3252 fail to link against
3253 <filename>libfoo</filename>.
3254 </para></listitem>
3255 </itemizedlist>
3256 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003257 </para>
3258
3259 <para>
3260 For information on runtime dependencies, see the
3261 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
3262 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003263 You can also see the
3264 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
3265 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
3266 sections in the BitBake User Manual for additional
3267 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003268 </para>
3269 </glossdef>
3270 </glossentry>
3271
3272 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
3273 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003274 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003275 </info>
3276 <glossdef>
3277 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003278 Points to the general area that the OpenEmbedded build
Brad Bishop316dfdd2018-06-25 12:45:53 -04003279 system uses to place images, packages, SDKs, and other output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003280 files that are ready to be used outside of the build system.
3281 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003282 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003283 as <filename>${TMPDIR}/deploy</filename>.
3284 </para>
3285
3286 <para>
3287 For more information on the structure of the Build
3288 Directory, see
3289 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3290 section.
3291 For more detail on the contents of the
3292 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003293 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>",
3294 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>",
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003295 and
Brad Bishop316dfdd2018-06-25 12:45:53 -04003296 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3297 sections all in the Yocto Project Overview and Concepts
3298 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003299 </para>
3300 </glossdef>
3301 </glossentry>
3302
3303 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
3304 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003305 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003306 </info>
3307 <glossdef>
3308 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003309 Points to the area that the OpenEmbedded build system uses
3310 to place Debian packages that are ready to be used outside
3311 of the build system.
3312 This variable applies only when
3313 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3314 contains "package_deb".
3315 </para>
3316
3317 <para>
3318 The BitBake configuration file initially defines the
3319 <filename>DEPLOY_DIR_DEB</filename> variable as a
3320 sub-folder of
3321 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3322 <literallayout class='monospaced'>
3323 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
3324 </literallayout>
3325 </para>
3326
3327 <para>
3328 The
3329 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
3330 class uses the
3331 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
3332 the
3333 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
3334 task writes Debian packages into the appropriate folder.
3335 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003336 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3337 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003338 </para>
3339 </glossdef>
3340 </glossentry>
3341
3342 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
3343 <info>
3344 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."
3345 </info>
3346 <glossdef>
3347 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003348 Points to the area that the OpenEmbedded build system uses
3349 to place images and other associated output files that are
3350 ready to be deployed onto the target machine.
3351 The directory is machine-specific as it contains the
3352 <filename>${MACHINE}</filename> name.
3353 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003354 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003355 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
3356 </para>
3357
3358 <para>
3359 For more information on the structure of the Build
3360 Directory, see
3361 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3362 section.
3363 For more detail on the contents of the
3364 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003365 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>"
3366 and
3367 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3368 sections both in the Yocto Project Overview and Concepts
3369 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003370 </para>
3371 </glossdef>
3372 </glossentry>
3373
3374 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
3375 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003376 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003377 </info>
3378 <glossdef>
3379 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003380 Points to the area that the OpenEmbedded build system uses
3381 to place IPK packages that are ready to be used outside of
3382 the build system.
3383 This variable applies only when
3384 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3385 contains "package_ipk".
3386 </para>
3387
3388 <para>
3389 The BitBake configuration file initially defines this
3390 variable as a sub-folder of
3391 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3392 <literallayout class='monospaced'>
3393 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
3394 </literallayout>
3395 </para>
3396
3397 <para>
3398 The
3399 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
3400 class uses the
3401 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
3402 the
3403 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
3404 task writes IPK packages into the appropriate folder.
3405 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003406 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3407 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003408 </para>
3409 </glossdef>
3410 </glossentry>
3411
3412 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
3413 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003414 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003415 </info>
3416 <glossdef>
3417 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003418 Points to the area that the OpenEmbedded build system uses
3419 to place RPM packages that are ready to be used outside
3420 of the build system.
3421 This variable applies only when
3422 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3423 contains "package_rpm".
3424 </para>
3425
3426 <para>
3427 The BitBake configuration file initially defines this
3428 variable as a sub-folder of
3429 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3430 <literallayout class='monospaced'>
3431 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
3432 </literallayout>
3433 </para>
3434
3435 <para>
3436 The
3437 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
3438 class uses the
3439 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
3440 the
3441 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
3442 task writes RPM packages into the appropriate folder.
3443 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003444 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3445 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003446 </para>
3447 </glossdef>
3448 </glossentry>
3449
3450 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
3451 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003452 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003453 </info>
3454 <glossdef>
3455 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003456 Points to the area that the OpenEmbedded build system uses
3457 to place tarballs that are ready to be used outside of
3458 the build system.
3459 This variable applies only when
3460 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3461 contains "package_tar".
3462 </para>
3463
3464 <para>
3465 The BitBake configuration file initially defines this
3466 variable as a sub-folder of
3467 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3468 <literallayout class='monospaced'>
3469 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
3470 </literallayout>
3471 </para>
3472
3473 <para>
3474 The
3475 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
3476 class uses the
3477 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
3478 the
3479 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
3480 task writes TAR packages into the appropriate folder.
3481 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003482 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3483 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003484 </para>
3485 </glossdef>
3486 </glossentry>
3487
3488 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3489 <info>
3490 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3491 </info>
3492 <glossdef>
3493 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003494 When inheriting the
3495 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3496 class, the <filename>DEPLOYDIR</filename> points to a
3497 temporary work area for deployed files that is set in the
3498 <filename>deploy</filename> class as follows:
3499 <literallayout class='monospaced'>
3500 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3501 </literallayout>
3502 </para>
3503
3504 <para>
3505 Recipes inheriting the <filename>deploy</filename> class
3506 should copy files to be deployed into
3507 <filename>DEPLOYDIR</filename>, and the class will take
3508 care of copying them into
3509 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3510 afterwards.
3511 </para>
3512 </glossdef>
3513 </glossentry>
3514
3515 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3516 <info>
3517 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3518 </info>
3519 <glossdef>
3520 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003521 The package description used by package managers.
3522 If not set, <filename>DESCRIPTION</filename> takes
3523 the value of the
3524 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3525 variable.
3526 </para>
3527 </glossdef>
3528 </glossentry>
3529
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003530 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3531 <info>
3532 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3533 </info>
3534 <glossdef>
3535 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003536 The short name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003537 For information on the long name of the distribution, see
3538 the
3539 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
3540 variable.
3541 </para>
3542
3543 <para>
3544 The <filename>DISTRO</filename> variable corresponds to a
3545 distribution configuration file whose root name is the
3546 same as the variable's argument and whose filename
3547 extension is <filename>.conf</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003548 For example, the distribution configuration file for the
3549 Poky distribution is named <filename>poky.conf</filename>
3550 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003551 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003552 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003553 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003554 </para>
3555
3556 <para>
3557 Within that <filename>poky.conf</filename> file, the
3558 <filename>DISTRO</filename> variable is set as follows:
3559 <literallayout class='monospaced'>
3560 DISTRO = "poky"
3561 </literallayout>
3562 </para>
3563
3564 <para>
3565 Distribution configuration files are located in a
3566 <filename>conf/distro</filename> directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003567 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003568 that contains the distribution configuration.
3569 The value for <filename>DISTRO</filename> must not contain
3570 spaces, and is typically all lower-case.
3571 <note>
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003572 If the <filename>DISTRO</filename> variable is blank,
3573 a set of default configurations are used, which are
3574 specified within
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003575 <filename>meta/conf/distro/defaultsetup.conf</filename>
3576 also in the Source Directory.
3577 </note>
3578 </para>
3579 </glossdef>
3580 </glossentry>
3581
3582 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3583 <info>
3584 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3585 </info>
3586 <glossdef>
3587 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003588 Specifies a codename for the distribution being built.
3589 </para>
3590 </glossdef>
3591 </glossentry>
3592
3593 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3594 <info>
3595 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."
3596 </info>
3597 <glossdef>
3598 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003599 Specifies a list of distro-specific packages to add to all images.
3600 This variable takes affect through
3601 <filename>packagegroup-base</filename> so the
3602 variable only really applies to the more full-featured
3603 images that include <filename>packagegroup-base</filename>.
3604 You can use this variable to keep distro policy out of
3605 generic images.
3606 As with all other distro variables, you set this variable
3607 in the distro <filename>.conf</filename> file.
3608 </para>
3609 </glossdef>
3610 </glossentry>
3611
3612 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3613 <info>
3614 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."
3615 </info>
3616 <glossdef>
3617 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003618 Specifies a list of distro-specific packages to add to all images
3619 if the packages exist.
3620 The packages might not exist or be empty (e.g. kernel modules).
3621 The list of packages are automatically installed but you can
3622 remove them.
3623 </para>
3624 </glossdef>
3625 </glossentry>
3626
3627 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3628 <info>
3629 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3630 </info>
3631 <glossdef>
3632 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003633 The software support you want in your distribution for
3634 various features.
3635 You define your distribution features in the distribution
3636 configuration file.
3637 </para>
3638
3639 <para>
3640 In most cases, the presence or absence of a feature in
3641 <filename>DISTRO_FEATURES</filename> is translated to the
3642 appropriate option supplied to the configure script
3643 during the
3644 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3645 task for recipes that optionally support the feature.
3646 For example, specifying "x11" in
3647 <filename>DISTRO_FEATURES</filename>, causes
3648 every piece of software built for the target that can
3649 optionally support X11 to have its X11 support enabled.
3650 </para>
3651
3652 <para>
3653 Two more examples are Bluetooth and NFS support.
3654 For a more complete list of features that ships with the
3655 Yocto Project and that you can provide with this variable,
3656 see the
3657 "<link linkend='ref-features-distro'>Distro Features</link>"
3658 section.
3659 </para>
3660 </glossdef>
3661 </glossentry>
3662
3663 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3664 <info>
3665 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."
3666 </info>
3667 <glossdef>
3668 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003669 Features to be added to
3670 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3671 if not also present in
3672 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3673 </para>
3674
3675 <para>
3676 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3677 It is not intended to be user-configurable.
3678 It is best to just reference the variable to see which distro features are
3679 being backfilled for all distro configurations.
Andrew Geissler82c905d2020-04-13 13:39:40 -05003680 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003681 more information.
3682 </para>
3683 </glossdef>
3684 </glossentry>
3685
3686 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3687 <info>
3688 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3689 </info>
3690 <glossdef>
3691 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003692 Features from
3693 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3694 that should not be backfilled (i.e. added to
3695 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3696 during the build.
3697 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3698 more information.
3699 </para>
3700 </glossdef>
3701 </glossentry>
3702
3703 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3704 <info>
3705 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3706 </info>
3707 <glossdef>
3708 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003709 A convenience variable that gives you the default
3710 list of distro features with the exception of any
3711 features specific to the C library
3712 (<filename>libc</filename>).
3713 </para>
3714
3715 <para>
3716 When creating a custom distribution, you might find it
3717 useful to be able to reuse the default
3718 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3719 options without the need to write out the full set.
3720 Here is an example that uses
3721 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3722 custom distro configuration file:
3723 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -04003724 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003725 </literallayout>
3726 </para>
3727 </glossdef>
3728 </glossentry>
3729
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003730 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVE'><glossterm>DISTRO_FEATURES_FILTER_NATIVE</glossterm>
3731 <info>
3732 DISTRO_FEATURES_FILTER_NATIVE[doc] = "Specifies a list of features that if present in the target DISTRO_FEATURES value should be included in DISTRO_FEATURES when building native recipes."
3733 </info>
3734 <glossdef>
3735 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003736 Specifies a list of features that if present in
3737 the target
3738 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3739 value should be included in
3740 <filename>DISTRO_FEATURES</filename> when building native
3741 recipes.
3742 This variable is used in addition to the features
3743 filtered using the
3744 <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
3745 variable.
3746 </para>
3747 </glossdef>
3748 </glossentry>
3749
3750 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVESDK'><glossterm>DISTRO_FEATURES_FILTER_NATIVESDK</glossterm>
3751 <info>
3752 DISTRO_FEATURES_FILTER_NATIVESDK[doc] = "Specifies a list of features that if present in the target DISTRO_FEATURES value should be included in DISTRO_FEATURES when building nativesdk recipes."
3753 </info>
3754 <glossdef>
3755 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003756 Specifies a list of features that if present in the target
3757 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3758 value should be included in
3759 <filename>DISTRO_FEATURES</filename> when building
3760 nativesdk recipes.
3761 This variable is used in addition to the features
3762 filtered using the
3763 <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
3764 variable.
3765 </para>
3766 </glossdef>
3767 </glossentry>
3768
Brad Bishop19323692019-04-05 15:28:33 -04003769<!--
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003770 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3771 <info>
3772 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3773 </info>
3774 <glossdef>
3775 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003776 A convenience variable that specifies the list of distro
3777 features that are specific to the C library
3778 (<filename>libc</filename>).
3779 Typically, these features are prefixed with "libc-" and
3780 control which features are enabled at during the build
3781 within the C library itself.
3782 </para>
3783 </glossdef>
3784 </glossentry>
Brad Bishop19323692019-04-05 15:28:33 -04003785-->
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003786
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003787 <glossentry id='var-DISTRO_FEATURES_NATIVE'><glossterm>DISTRO_FEATURES_NATIVE</glossterm>
3788 <info>
3789 DISTRO_FEATURES_NATIVE[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes."
3790 </info>
3791 <glossdef>
3792 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003793 Specifies a list of features that should be included in
3794 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3795 when building native recipes.
3796 This variable is used in addition to the features
3797 filtered using the
3798 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>
3799 variable.
3800 </para>
3801 </glossdef>
3802 </glossentry>
3803
3804 <glossentry id='var-DISTRO_FEATURES_NATIVESDK'><glossterm>DISTRO_FEATURES_NATIVESDK</glossterm>
3805 <info>
3806 DISTRO_FEATURES_NATIVESDK[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes."
3807 </info>
3808 <glossdef>
3809 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003810 Specifies a list of features that should be included in
3811 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3812 when building nativesdk recipes.
3813 This variable is used in addition to the features
3814 filtered using the
3815 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>
3816 variable.
3817 </para>
3818 </glossdef>
3819 </glossentry>
3820
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003821 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3822 <info>
3823 DISTRO_NAME[doc] = "The long name of the distribution."
3824 </info>
3825 <glossdef>
3826 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003827 The long name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003828 For information on the short name of the distribution, see
3829 the
3830 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
3831 variable.
3832 </para>
3833
3834 <para>
3835 The <filename>DISTRO_NAME</filename> variable corresponds
3836 to a distribution configuration file whose root name is the
3837 same as the variable's argument and whose filename
3838 extension is <filename>.conf</filename>.
3839 For example, the distribution configuration file for the
3840 Poky distribution is named <filename>poky.conf</filename>
3841 and resides in the
3842 <filename>meta-poky/conf/distro</filename> directory of
3843 the
3844 <link linkend='source-directory'>Source Directory</link>.
3845 </para>
3846
3847 <para>
3848 Within that <filename>poky.conf</filename> file, the
3849 <filename>DISTRO_NAME</filename> variable is set as
3850 follows:
3851 <literallayout class='monospaced'>
3852 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
3853 </literallayout>
3854 </para>
3855
3856 <para>
3857 Distribution configuration files are located in a
3858 <filename>conf/distro</filename> directory within the
3859 <link linkend='metadata'>Metadata</link>
3860 that contains the distribution configuration.
3861 <note>
3862 If the <filename>DISTRO_NAME</filename> variable is
3863 blank, a set of default configurations are used, which
3864 are specified within
3865 <filename>meta/conf/distro/defaultsetup.conf</filename>
3866 also in the Source Directory.
3867 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003868 </para>
3869 </glossdef>
3870 </glossentry>
3871
3872 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3873 <info>
3874 DISTRO_VERSION[doc] = "The version of the distribution."
3875 </info>
3876 <glossdef>
3877 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003878 The version of the distribution.
3879 </para>
3880 </glossdef>
3881 </glossentry>
3882
3883 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3884 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003885 DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003886 </info>
3887 <glossdef>
3888 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003889 A colon-separated list of overrides specific to the
3890 current distribution.
3891 By default, this list includes the value of
3892 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
3893 </para>
3894
3895 <para>
3896 You can extend <filename>DISTROOVERRIDES</filename>
3897 to add extra overrides that should apply to
3898 the distribution.
3899 </para>
3900
3901 <para>
3902 The underlying mechanism behind
3903 <filename>DISTROOVERRIDES</filename> is simply that it
3904 is included in the default value of
3905 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003906 </para>
3907 </glossdef>
3908 </glossentry>
3909
3910 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
3911 <info>
3912 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."
3913 </info>
3914 <glossdef>
3915 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003916 The central download directory used by the build process to
3917 store downloads.
3918 By default, <filename>DL_DIR</filename> gets files
3919 suitable for mirroring for everything except Git
3920 repositories.
3921 If you want tarballs of Git repositories, use the
3922 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
3923 variable.
3924 </para>
3925
3926 <para>
3927 You can set this directory by defining the
3928 <filename>DL_DIR</filename> variable in the
3929 <filename>conf/local.conf</filename> file.
3930 This directory is self-maintaining and you should not have
3931 to touch it.
3932 By default, the directory is <filename>downloads</filename>
3933 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003934 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003935 <literallayout class='monospaced'>
3936 #DL_DIR ?= "${TOPDIR}/downloads"
3937 </literallayout>
3938 To specify a different download directory, simply remove
3939 the comment from the line and provide your directory.
3940 </para>
3941
3942 <para>
3943 During a first build, the system downloads many different
3944 source code tarballs from various upstream projects.
3945 Downloading can take a while, particularly if your network
3946 connection is slow.
3947 Tarballs are all stored in the directory defined by
3948 <filename>DL_DIR</filename> and the build system looks there
3949 first to find source tarballs.
3950 <note>
3951 When wiping and rebuilding, you can preserve this
3952 directory to speed up this part of subsequent
3953 builds.
3954 </note>
3955 </para>
3956
3957 <para>
3958 You can safely share this directory between multiple builds
3959 on the same development machine.
3960 For additional information on how the build process gets
3961 source files when working behind a firewall or proxy server,
3962 see this specific question in the
3963 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
3964 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003965 You can also refer to the
3966 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
3967 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003968 </para>
3969 </glossdef>
3970 </glossentry>
3971
3972 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
3973 <info>
3974 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."
3975 </info>
3976 <glossdef>
3977 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003978 When inheriting the
3979 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
3980 class, this variable sets the compression policy used when
3981 the OpenEmbedded build system compresses man pages and info
3982 pages.
3983 By default, the compression method used is gz (gzip).
3984 Other policies available are xz and bz2.
3985 </para>
3986
3987 <para>
3988 For information on policies and on how to use this
3989 variable, see the comments in the
3990 <filename>meta/classes/compress_doc.bbclass</filename> file.
3991 </para>
3992 </glossdef>
3993 </glossentry>
3994
3995 </glossdiv>
3996
3997 <glossdiv id='var-glossary-e'><title>E</title>
3998
3999 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
4000 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004001 EFI_PROVIDER[doc] = "When building bootable images (i.e. where hddimg, iso, or wic.vmdk is in IMAGE_FSTYPES), the EFI_PROVIDER variable specifies the EFI bootloader to use."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004002 </info>
4003 <glossdef>
4004 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004005 When building bootable images (i.e. where
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004006 <filename>hddimg</filename>, <filename>iso</filename>,
4007 or <filename>wic.vmdk</filename> is in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004008 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
4009 the <filename>EFI_PROVIDER</filename> variable specifies
4010 the EFI bootloader to use.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004011 The default is "grub-efi", but "systemd-boot" can be used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004012 instead.
4013 </para>
4014
4015 <para>
4016 See the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004017 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05004018 and
4019 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
4020 classes for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004021 </para>
4022 </glossdef>
4023 </glossentry>
4024
4025 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
4026 <info>
4027 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."
4028 </info>
4029 <glossdef>
4030 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004031 Variable that controls which locales for
4032 <filename>glibc</filename> are generated during the
4033 build (useful if the target device has 64Mbytes
4034 of RAM or less).
4035 </para>
4036 </glossdef>
4037 </glossentry>
4038
4039 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
4040 <info>
4041 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."
4042 </info>
4043 <glossdef>
4044 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004045 When used with the
4046 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
4047 class, specifies the path used for storing the debug files
4048 created by the
4049 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
4050 which allows you to submit build errors you encounter to a
4051 central database.
4052 By default, the value of this variable is
4053 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
4054 </para>
4055
4056 <para>
4057 You can set <filename>ERR_REPORT_DIR</filename> to the path
4058 you want the error reporting tool to store the debug files
4059 as follows in your <filename>local.conf</filename> file:
4060 <literallayout class='monospaced'>
4061 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
4062 </literallayout>
4063 </para>
4064 </glossdef>
4065 </glossentry>
4066
4067 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
4068 <info>
4069 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
4070 </info>
4071 <glossdef>
4072 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004073 Specifies the quality assurance checks whose failures are
4074 reported as errors by the OpenEmbedded build system.
4075 You set this variable in your distribution configuration
4076 file.
4077 For a list of the checks you can control with this variable,
4078 see the
4079 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
4080 section.
4081 </para>
4082 </glossdef>
4083 </glossentry>
4084
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004085 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
4086 <info>
4087 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
4088 </info>
4089 <glossdef>
4090 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004091 Triggers the OpenEmbedded build system's shared libraries
4092 resolver to exclude an entire package when scanning for
4093 shared libraries.
4094 <note>
4095 The shared libraries resolver's functionality results
4096 in part from the internal function
4097 <filename>package_do_shlibs</filename>, which is part of
4098 the
4099 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
4100 task.
4101 You should be aware that the shared libraries resolver
4102 might implicitly define some dependencies between
4103 packages.
4104 </note>
4105 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
4106 similar to the
4107 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
4108 variable, which excludes a package's particular libraries
4109 only and not the whole package.
4110 </para>
4111
4112 <para>
4113 Use the
4114 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
4115 setting it to "1" for a particular package:
4116 <literallayout class='monospaced'>
4117 EXCLUDE_FROM_SHLIBS = "1"
4118 </literallayout>
4119 </para>
4120 </glossdef>
4121 </glossentry>
4122
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004123 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
4124 <info>
4125 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
4126 </info>
4127 <glossdef>
4128 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004129 Directs BitBake to exclude a recipe from world builds (i.e.
4130 <filename>bitbake world</filename>).
4131 During world builds, BitBake locates, parses and builds all
4132 recipes found in every layer exposed in the
4133 <filename>bblayers.conf</filename> configuration file.
4134 </para>
4135
4136 <para>
4137 To exclude a recipe from a world build using this variable,
4138 set the variable to "1" in the recipe.
4139 </para>
4140
4141 <note>
4142 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
4143 may still be built during a world build in order to satisfy
4144 dependencies of other recipes.
4145 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
4146 only ensures that the recipe is not explicitly added
4147 to the list of build targets in a world build.
4148 </note>
4149 </glossdef>
4150 </glossentry>
4151
4152 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
4153 <info>
4154 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."
4155 </info>
4156 <glossdef>
4157 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004158 Used with file and pathnames to create a prefix for a recipe's
4159 version based on the recipe's
4160 <link linkend='var-PE'><filename>PE</filename></link> value.
4161 If <filename>PE</filename> is set and greater than zero for a recipe,
4162 <filename>EXTENDPE</filename> becomes that value (e.g if
4163 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
4164 becomes "1_").
4165 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
4166 zero, <filename>EXTENDPE</filename> becomes "".</para>
4167 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
4168 variable for an example.
4169 </para>
4170 </glossdef>
4171 </glossentry>
4172
4173 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
4174 <info>
4175 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
4176 </info>
4177 <glossdef>
4178 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004179 The full package version specification as it appears on the
4180 final packages produced by a recipe.
4181 The variable's value is normally used to fix a runtime
4182 dependency to the exact same version of another package
4183 in the same recipe:
4184 <literallayout class='monospaced'>
4185 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
4186 </literallayout>
4187 </para>
4188
4189 <para>
4190 The dependency relationships are intended to force the
4191 package manager to upgrade these types of packages in
4192 lock-step.
4193 </para>
4194 </glossdef>
4195 </glossentry>
4196
4197 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
4198 <info>
4199 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
4200 </info>
4201 <glossdef>
4202 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004203 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4204 variable indicates that these tools are not in the
4205 source tree.
4206 </para>
4207
4208 <para>
4209 When kernel tools are available in the tree, they are
4210 preferred over any externally installed tools.
4211 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4212 variable tells the OpenEmbedded build system to prefer
4213 the installed external tools.
4214 See the
4215 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
4216 class in <filename>meta/classes</filename> to see how
4217 the variable is used.
4218 </para>
4219 </glossdef>
4220 </glossentry>
4221
4222 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
4223 <info>
4224 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
4225 </info>
4226 <glossdef>
4227 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004228 When inheriting the
4229 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4230 class, this variable points to the source tree, which is
4231 outside of the OpenEmbedded build system.
4232 When set, this variable sets the
4233 <link linkend='var-S'><filename>S</filename></link>
4234 variable, which is what the OpenEmbedded build system uses
4235 to locate unpacked recipe source code.
4236 </para>
4237
4238 <para>
4239 For more information on
4240 <filename>externalsrc.bbclass</filename>, see the
4241 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4242 section.
4243 You can also find information on how to use this variable
4244 in the
4245 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004246 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004247 </para>
4248 </glossdef>
4249 </glossentry>
4250
4251 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
4252 <info>
4253 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."
4254 </info>
4255 <glossdef>
4256 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004257 When inheriting the
4258 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4259 class, this variable points to the directory in which the
4260 recipe's source code is built, which is outside of the
4261 OpenEmbedded build system.
4262 When set, this variable sets the
4263 <link linkend='var-B'><filename>B</filename></link>
4264 variable, which is what the OpenEmbedded build system uses
4265 to locate the Build Directory.
4266 </para>
4267
4268 <para>
4269 For more information on
4270 <filename>externalsrc.bbclass</filename>, see the
4271 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4272 section.
4273 You can also find information on how to use this variable
4274 in the
4275 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004276 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004277 </para>
4278 </glossdef>
4279 </glossentry>
4280
4281 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
4282 <info>
4283 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
4284 </info>
4285 <glossdef>
4286 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004287 For recipes inheriting the
4288 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
4289 class, you can use <filename>EXTRA_AUTORECONF</filename> to
4290 specify extra options to pass to the
4291 <filename>autoreconf</filename> command that is
4292 executed during the
4293 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
4294 task.
4295 </para>
4296
4297 <para>
4298 The default value is "--exclude=autopoint".
4299 </para>
4300 </glossdef>
4301 </glossentry>
4302
4303 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
4304 <info>
4305 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."
4306 </info>
4307 <glossdef>
4308 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004309 A list of additional features to include in an image.
4310 When listing more than one feature, separate them with
4311 a space.
4312 </para>
4313
4314 <para>
4315 Typically, you configure this variable in your
4316 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004317 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004318 Although you can use this variable from within a recipe,
4319 best practices dictate that you do not.
4320 <note>
4321 To enable primary features from within the image
4322 recipe, use the
4323 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
4324 variable.
4325 </note>
4326 </para>
4327
4328 <para>
4329 Here are some examples of features you can add:
4330 <literallayout class='monospaced'>
4331"dbg-pkgs" - Adds -dbg packages for all installed packages
4332 including symbol information for debugging and
4333 profiling.
4334
4335"debug-tweaks" - Makes an image suitable for debugging.
4336 For example, allows root logins without
4337 passwords and enables post-installation
4338 logging. See the 'allow-empty-password'
4339 and 'post-install-logging' features in
4340 the "<link linkend='ref-features-image'>Image Features</link>" section for
4341 more information.
4342
4343"dev-pkgs" - Adds -dev packages for all installed packages.
4344 This is useful if you want to develop against
4345 the libraries in the image.
4346
4347"read-only-rootfs" - Creates an image whose root
4348 filesystem is read-only. See the
4349 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
4350 section in the Yocto Project
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004351 Development Tasks Manual for
4352 more information
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004353
4354"tools-debug" - Adds debugging tools such as gdb and
4355 strace.
4356
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004357"tools-sdk" - Adds development tools such as gcc, make,
4358 pkgconfig and so forth.
4359
4360"tools-testapps" - Adds useful testing tools such as
4361 ts_print, aplay, arecord and so
4362 forth.
4363
4364 </literallayout>
4365 </para>
4366
4367 <para>
4368 For a complete list of image features that ships with the
4369 Yocto Project, see the
4370 "<link linkend="ref-features-image">Image Features</link>"
4371 section.
4372 </para>
4373
4374 <para>
4375 For an example that shows how to customize your image by
4376 using this variable, see the
4377 "<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>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004378 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004379 </para>
4380 </glossdef>
4381 </glossentry>
4382
4383 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
4384 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04004385 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 image type."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004386 </info>
4387 <glossdef>
4388 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004389 Specifies additional options for the image
4390 creation command that has been specified in
4391 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004392 When setting this variable, use an override for the
4393 associated image type.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004394 Here is an example:
4395 <literallayout class='monospaced'>
4396 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
4397 </literallayout>
4398 </para>
4399 </glossdef>
4400 </glossentry>
4401
4402 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
4403 <info>
4404 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."
4405 </info>
4406 <glossdef>
4407 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004408 A list of recipes to build that do not provide packages
4409 for installing into the root filesystem.
4410 </para>
4411
4412 <para>
4413 Sometimes a recipe is required to build the final image but is not
4414 needed in the root filesystem.
4415 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
4416 list these recipes and thus specify the dependencies.
4417 A typical example is a required bootloader in a machine configuration.
4418 </para>
4419
4420 <note>
4421 To add packages to the root filesystem, see the various
4422 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
4423 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
4424 variables.
4425 </note>
4426 </glossdef>
4427 </glossentry>
4428
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004429 <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
4430 <info>
4431 EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
4432 </info>
4433 <glossdef>
4434 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004435 A list of subdirectories of
4436 <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
4437 added to the beginning of the environment variable
4438 <filename>PATH</filename>.
4439 As an example, the following prepends
4440 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
4441 to <filename>PATH</filename>:
4442 <literallayout class='monospaced'>
4443 EXTRANATIVEPATH = "foo bar"
4444 </literallayout>
4445 </para>
4446 </glossdef>
4447 </glossentry>
4448
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004449 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
4450 <info>
4451 EXTRA_OECMAKE[doc] = "Additional cmake options."
4452 </info>
4453 <glossdef>
4454 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004455 Additional
4456 <ulink url='https://cmake.org/overview/'>CMake</ulink>
4457 options.
4458 See the
4459 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
4460 class for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004461 </para>
4462 </glossdef>
4463 </glossentry>
4464
4465 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
4466 <info>
4467 EXTRA_OECONF[doc] = "Additional configure script options."
4468 </info>
4469 <glossdef>
4470 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004471 Additional <filename>configure</filename> script options.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004472 See
4473 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
4474 for additional information on passing configure script
4475 options.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004476 </para>
4477 </glossdef>
4478 </glossentry>
4479
4480 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
4481 <info>
4482 EXTRA_OEMAKE[doc] = "Additional GNU make options."
4483 </info>
4484 <glossdef>
4485 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004486 Additional GNU <filename>make</filename> options.
4487 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004488
4489 <para>
4490 Because the <filename>EXTRA_OEMAKE</filename> defaults to
4491 "", you need to set the variable to specify any required
4492 GNU options.
4493 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004494
4495 <para>
4496 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4497 and
4498 <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
4499 also make use of
4500 <filename>EXTRA_OEMAKE</filename> to pass the required
4501 flags.
4502 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004503 </glossdef>
4504 </glossentry>
4505
4506 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
4507 <info>
4508 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."
4509 </info>
4510 <glossdef>
4511 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004512 When inheriting the
4513 <link linkend='ref-classes-scons'><filename>scons</filename></link>
4514 class, this variable specifies additional configuration
4515 options you want to pass to the
4516 <filename>scons</filename> command line.
4517 </para>
4518 </glossdef>
4519 </glossentry>
4520
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004521 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
4522 <info>
4523 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
4524 </info>
4525 <glossdef>
4526 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004527 When inheriting the
4528 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
4529 class, this variable provides image level user and group
4530 operations.
4531 This is a more global method of providing user and group
4532 configuration as compared to using the
4533 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4534 class, which ties user and group configurations to a
4535 specific recipe.
4536 </para>
4537
4538 <para>
4539 The set list of commands you can configure using the
4540 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4541 <filename>extrausers</filename> class.
4542 These commands map to the normal Unix commands of the same
4543 names:
4544 <literallayout class='monospaced'>
4545 # EXTRA_USERS_PARAMS = "\
4546 # useradd -p '' tester; \
4547 # groupadd developers; \
4548 # userdel nobody; \
4549 # groupdel -g video; \
4550 # groupmod -g 1020 developers; \
4551 # usermod -s /bin/sh tester; \
4552 # "
4553 </literallayout>
4554 </para>
4555 </glossdef>
4556 </glossentry>
4557
4558 </glossdiv>
4559
4560 <glossdiv id='var-glossary-f'><title>F</title>
4561
4562 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4563 <info>
4564 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."
4565 </info>
4566 <glossdef>
4567 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004568 Defines one or more packages to include in an image when
4569 a specific item is included in
4570 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4571 When setting the value, <filename>FEATURE_PACKAGES</filename>
4572 should have the name of the feature item as an override.
4573 Here is an example:
4574 <literallayout class='monospaced'>
4575 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4576 </literallayout>
4577 </para>
4578
4579 <para>
4580 In this example, if "widget" were added to
4581 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4582 <replaceable>package2</replaceable> would be included in the image.
4583 <note>
4584 Packages installed by features defined through
4585 <filename>FEATURE_PACKAGES</filename> are often package
4586 groups.
4587 While similarly named, you should not confuse the
4588 <filename>FEATURE_PACKAGES</filename> variable with
4589 package groups, which are discussed elsewhere in the
4590 documentation.
4591 </note>
4592 </para>
4593 </glossdef>
4594 </glossentry>
4595
4596 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4597 <info>
4598 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."
4599 </info>
4600 <glossdef>
4601 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004602 Points to the base URL of the server and location within
4603 the document-root that provides the metadata and
4604 packages required by OPKG to support runtime package
4605 management of IPK packages.
4606 You set this variable in your
4607 <filename>local.conf</filename> file.
4608 </para>
4609
4610 <para>
4611 Consider the following example:
4612 <literallayout class='monospaced'>
4613 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4614 </literallayout>
4615 This example assumes you are serving your packages over
4616 HTTP and your databases are located in a directory
4617 named <filename>BOARD-dir</filename>, which is underneath
4618 your HTTP server's document-root.
4619 In this case, the OpenEmbedded build system generates a set
4620 of configuration files for you in your target that work
4621 with the feed.
4622 </para>
4623 </glossdef>
4624 </glossentry>
4625
4626 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4627 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004628 FILES[doc] = "The list of directories or files that are placed in a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004629 </info>
4630 <glossdef>
4631 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004632 The list of files and directories that are placed in a
4633 package.
4634 The
4635 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
4636 variable lists the packages generated by a recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004637 </para>
4638
4639 <para>
4640 To use the <filename>FILES</filename> variable, provide a
4641 package name override that identifies the resulting package.
4642 Then, provide a space-separated list of files or paths
4643 that identify the files you want included as part of the
4644 resulting package.
4645 Here is an example:
4646 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004647 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004648 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004649 <note><title>Notes</title>
4650 <itemizedlist>
4651 <listitem><para>
4652 When specifying files or paths, you can pattern
4653 match using Python's
4654 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>
4655 syntax.
4656 For details on the syntax, see the
4657 documentation by following the previous link.
4658 </para></listitem>
4659 <listitem><para>
4660 When specifying paths as part of the
4661 <filename>FILES</filename> variable, it is
4662 good practice to use appropriate path
4663 variables.
4664 For example, use <filename>${sysconfdir}</filename>
4665 rather than <filename>/etc</filename>, or
4666 <filename>${bindir}</filename> rather than
4667 <filename>/usr/bin</filename>.
4668 You can find a list of these variables at the
4669 top of the
4670 <filename>meta/conf/bitbake.conf</filename>
4671 file in the
4672 <link linkend='source-directory'>Source Directory</link>.
4673 You will also find the default values of the
4674 various <filename>FILES_*</filename> variables
4675 in this file.
4676 </para></listitem>
4677 </itemizedlist>
4678 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004679 </para>
4680
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004681 <para>
4682 If some of the files you provide with the
4683 <filename>FILES</filename> variable are editable and you
4684 know they should not be overwritten during the package
4685 update process by the Package Management System (PMS), you
4686 can identify these files so that the PMS will not
4687 overwrite them.
4688 See the
4689 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4690 variable for information on how to identify these files to
4691 the PMS.
4692 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004693 </glossdef>
4694 </glossentry>
4695
4696 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4697 <info>
4698 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4699 </info>
4700 <glossdef>
4701 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004702 Defines the file specification to match
4703 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4704 In other words, <filename>FILES_SOLIBSDEV</filename>
4705 defines the full path name of the development symbolic link
4706 (symlink) for shared libraries on the target platform.
4707 </para>
4708
4709 <para>
4710 The following statement from the
4711 <filename>bitbake.conf</filename> shows how it is set:
4712 <literallayout class='monospaced'>
4713 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4714 </literallayout>
4715 </para>
4716 </glossdef>
4717 </glossentry>
4718
4719 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4720 <info>
4721 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4722 </info>
4723 <glossdef>
4724 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004725 Extends the search path the OpenEmbedded build system uses
4726 when looking for files and patches as it processes recipes
4727 and append files.
4728 The default directories BitBake uses when it processes
4729 recipes are initially defined by the
4730 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4731 variable.
4732 You can extend <filename>FILESPATH</filename> variable
4733 by using <filename>FILESEXTRAPATHS</filename>.
4734 </para>
4735
4736 <para>
4737 Best practices dictate that you accomplish this by using
4738 <filename>FILESEXTRAPATHS</filename> from within a
4739 <filename>.bbappend</filename> file and that you prepend
4740 paths as follows:
4741 <literallayout class='monospaced'>
4742 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4743 </literallayout>
4744 In the above example, the build system first looks for files
4745 in a directory that has the same name as the corresponding
4746 append file.
4747 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004748 <para>When extending
4749 <filename>FILESEXTRAPATHS</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004750 be sure to use the immediate expansion
4751 (<filename>:=</filename>) operator.
4752 Immediate expansion makes sure that BitBake evaluates
4753 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4754 at the time the directive is encountered rather than at
4755 some later time when expansion might result in a
4756 directory that does not contain the files you need.
4757 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004758
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004759 <para>Also, include the trailing separating colon
4760 character if you are prepending.
4761 The trailing colon character is necessary because you
4762 are directing BitBake to extend the path by prepending
4763 directories to the search path.</para>
4764 </note>
4765 Here is another common use:
4766 <literallayout class='monospaced'>
4767 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4768 </literallayout>
4769 In this example, the build system extends the
4770 <filename>FILESPATH</filename> variable to include a
4771 directory named <filename>files</filename> that is in the
4772 same directory as the corresponding append file.
4773 </para>
4774
4775 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004776 This next example specifically adds three paths:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004777 <literallayout class='monospaced'>
4778 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4779 </literallayout>
4780 </para>
4781
4782 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004783 A final example shows how you can extend the search path
4784 and include a
4785 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>-specific
4786 override, which is useful in a BSP layer:
4787 <literallayout class='monospaced'>
4788 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
4789 </literallayout>
4790 The previous statement appears in the
4791 <filename>linux-yocto-dev.bbappend</filename> file, which
4792 is found in the Yocto Project
Brad Bishop316dfdd2018-06-25 12:45:53 -04004793 <ulink url='&YOCTO_DOCS_OM_URL;#source-repositories'>Source Repositories</ulink>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004794 in
4795 <filename>meta-intel/common/recipes-kernel/linux</filename>.
4796 Here, the machine override is a special
4797 <link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
4798 definition for multiple <filename>meta-intel</filename>
4799 machines.
4800 <note>
4801 For a layer that supports a single BSP, the override
4802 could just be the value of <filename>MACHINE</filename>.
4803 </note>
4804 </para>
4805
4806 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004807 By prepending paths in <filename>.bbappend</filename>
4808 files, you allow multiple append files that reside in
4809 different layers but are used for the same recipe to
4810 correctly extend the path.
4811 </para>
4812 </glossdef>
4813 </glossentry>
4814
4815 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4816 <info>
4817 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4818 </info>
4819 <glossdef>
4820 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004821 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4822 used by the OpenEmbedded build system for creating
4823 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
Brad Bishop19323692019-04-05 15:28:33 -04004824 The <filename>FILESOVERRIDES</filename> variable uses
4825 overrides to automatically extend the
4826 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4827 variable.
4828 For an example of how that works, see the
4829 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4830 variable description.
4831 Additionally, you find more information on how overrides
4832 are handled in the
4833 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
4834 section of the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004835 </para>
4836
4837 <para>
4838 By default, the <filename>FILESOVERRIDES</filename>
4839 variable is defined as:
4840 <literallayout class='monospaced'>
4841 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4842 </literallayout>
4843
4844 <note>
4845 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4846 variable.
4847 The values match up with expected overrides and are
4848 used in an expected manner by the build system.
4849 </note>
4850 </para>
4851 </glossdef>
4852 </glossentry>
4853
4854 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4855 <info>
4856 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."
4857 </info>
4858 <glossdef>
4859 <para role="glossdeffirst">
Brad Bishop19323692019-04-05 15:28:33 -04004860 The default set of directories the OpenEmbedded build
4861 system uses when searching for patches and files.
4862 </para>
4863
4864 <para>
4865 During the build process, BitBake searches each directory
4866 in <filename>FILESPATH</filename> in the specified order
4867 when looking for files and patches specified by each
Brad Bishop316dfdd2018-06-25 12:45:53 -04004868 <filename>file://</filename> URI in a recipe's
4869 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
4870 statements.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004871 </para>
4872
4873 <para>
4874 The default value for the <filename>FILESPATH</filename>
4875 variable is defined in the <filename>base.bbclass</filename>
4876 class found in <filename>meta/classes</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004877 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004878 <literallayout class='monospaced'>
4879 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4880 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4881 </literallayout>
Brad Bishop19323692019-04-05 15:28:33 -04004882 The <filename>FILESPATH</filename> variable is automatically
4883 extended using the overrides from the
4884 <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link>
4885 variable.
4886 <note><title>Notes</title>
4887 <itemizedlist>
4888 <listitem><para>
4889 Do not hand-edit the
4890 <filename>FILESPATH</filename> variable.
4891 If you want the build system to look in
4892 directories other than the defaults, extend the
4893 <filename>FILESPATH</filename> variable by
4894 using the
4895 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4896 variable.
4897 </para></listitem>
4898 <listitem><para>
4899 Be aware that the default
4900 <filename>FILESPATH</filename> directories do
4901 not map to directories in custom layers
4902 where append files
4903 (<filename>.bbappend</filename>) are used.
4904 If you want the build system to find patches
4905 or files that reside with your append files,
4906 you need to extend the
4907 <filename>FILESPATH</filename> variable by
4908 using the <filename>FILESEXTRAPATHS</filename>
4909 variable.
4910 </para></listitem>
4911 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004912 </note>
Brad Bishop19323692019-04-05 15:28:33 -04004913 </para>
4914
4915 <para>
4916 You can take advantage of this searching behavior in
4917 useful ways.
4918 For example, consider a case where the following
4919 directory structure exists for general and machine-specific
4920 configurations:
4921 <literallayout class='monospaced'>
4922 files/defconfig
4923 files/MACHINEA/defconfig
4924 files/MACHINEB/defconfig
4925 </literallayout>
4926 Also in the example, the <filename>SRC_URI</filename>
4927 statement contains "file://defconfig".
4928 Given this scenario, you can set
4929 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
4930 to "MACHINEA" and cause the build system to use files
4931 from <filename>files/MACHINEA</filename>.
4932 Set <filename>MACHINE</filename> to "MACHINEB" and the
4933 build system uses files from
4934 <filename>files/MACHINEB</filename>.
4935 Finally, for any machine other than "MACHINEA" and
4936 "MACHINEB", the build system uses files from
4937 <filename>files/defconfig</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004938 </para>
4939
4940 <para>
4941 You can find out more about the patching process in the
4942 "<ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>Patching</ulink>"
4943 section in the Yocto Project Overview and Concepts Manual
4944 and the
4945 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code'>Patching Code</ulink>"
4946 section in the Yocto Project Development Tasks Manual.
4947 See the
4948 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
4949 task as well.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004950 </para>
4951 </glossdef>
4952 </glossentry>
4953
4954 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
4955 <info>
4956 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
4957 </info>
4958 <glossdef>
4959 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004960 Allows you to define your own file permissions settings table as part of
4961 your configuration for the packaging process.
4962 For example, suppose you need a consistent set of custom permissions for
4963 a set of groups and users across an entire work project.
4964 It is best to do this in the packages themselves but this is not always
4965 possible.
4966 </para>
4967
4968 <para>
4969 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
4970 is located in the <filename>meta/files</filename> folder in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004971 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004972 If you create your own file permissions setting table, you should place it in your
4973 layer or the distro's layer.
4974 </para>
4975
4976 <para>
4977 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
4978 <filename>conf/local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004979 <link linkend='build-directory'>Build Directory</link>, to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004980 point to your custom <filename>fs-perms.txt</filename>.
4981 You can specify more than a single file permissions setting table.
4982 The paths you specify to these files must be defined within the
4983 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
4984 </para>
4985
4986 <para>
4987 For guidance on how to create your own file permissions settings table file,
4988 examine the existing <filename>fs-perms.txt</filename>.
4989 </para>
4990 </glossdef>
4991 </glossentry>
4992
4993 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
4994 <info>
4995 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'."
4996 </info>
4997 <glossdef>
4998 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004999 When inheriting the
5000 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5001 class, this variable specifies the runtime dependencies
5002 for font packages.
5003 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
5004 is set to "fontconfig-utils".
5005 </para>
5006 </glossdef>
5007 </glossentry>
5008
5009 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
5010 <info>
5011 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
5012 </info>
5013 <glossdef>
5014 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005015 When inheriting the
5016 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5017 class, this variable identifies packages containing font
5018 files that need to be cached by Fontconfig.
5019 By default, the <filename>fontcache</filename> class assumes
5020 that fonts are in the recipe's main package
5021 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5022 Use this variable if fonts you need are in a package
5023 other than that main package.
5024 </para>
5025 </glossdef>
5026 </glossentry>
5027
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005028 <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
5029 <info>
5030 FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
5031 </info>
5032 <glossdef>
5033 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005034 Forces the removal of the packages listed in
5035 <filename>ROOTFS_RO_UNNEEDED</filename> during the
5036 generation of the root filesystem.
5037 </para>
5038
5039 <para>
5040 Set the variable to "1" to force the removal of these
5041 packages.
5042 </para>
5043 </glossdef>
5044 </glossentry>
5045
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005046 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
5047 <info>
5048 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'."
5049 </info>
5050 <glossdef>
5051 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005052 The options to pass in
5053 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
5054 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
5055 when compiling an optimized system.
5056 This variable defaults to
5057 "-O2 -pipe ${DEBUG_FLAGS}".
5058 </para>
5059 </glossdef>
5060 </glossentry>
5061 </glossdiv>
5062
5063 <glossdiv id='var-glossary-g'><title>G</title>
5064
Brad Bishop316dfdd2018-06-25 12:45:53 -04005065 <glossentry id='var-GCCPIE'><glossterm>GCCPIE</glossterm>
5066 <info>
5067 GCCPIE[doc] = "Enables Position Independent Executables (PIE) within the GNU C Compiler (GCC)."
5068 </info>
5069 <glossdef>
5070 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04005071 Enables Position Independent Executables (PIE) within the
5072 GNU C Compiler (GCC).
5073 Enabling PIE in the GCC makes Return Oriented Programming
5074 (ROP) attacks much more difficult to
5075 execute.
5076 </para>
5077
5078 <para>
5079 By default the <filename>security_flags.inc</filename>
5080 file enables PIE by setting the variable as follows:
5081 <literallayout class='monospaced'>
5082 GCCPIE ?= "--enable-default-pie"
5083 </literallayout>
5084 </para>
5085 </glossdef>
5086 </glossentry>
5087
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08005088 <glossentry id='var-GCCVERSION'><glossterm>GCCVERSION</glossterm>
5089 <info>
5090 GCCVERSION[doc] = "Specifies the default version of the GNU C Compiler (GCC) to use."
5091 </info>
5092 <glossdef>
5093 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08005094 Specifies the default version of the GNU C Compiler (GCC)
5095 used for compilation.
5096 By default, <filename>GCCVERSION</filename> is set to
5097 "8.x" in the
5098 <filename>meta/conf/distro/include/tcmode-default.inc</filename>
5099 include file:
5100 <literallayout class='monospaced'>
5101 GCCVERSION ?= "8.%"
5102 </literallayout>
5103 You can override this value by setting it in a configuration
5104 file such as the <filename>local.conf</filename>.
5105 </para>
5106 </glossdef>
5107 </glossentry>
5108
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005109 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
5110 <info>
5111 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
5112 </info>
5113 <glossdef>
5114 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005115 The minimal command and arguments to run the GNU Debugger.
5116 </para>
5117 </glossdef>
5118 </glossentry>
5119
5120 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
5121 <info>
5122 GITDIR[doc] = "The directory where Git clones will be stored."
5123 </info>
5124 <glossdef>
5125 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005126 The directory in which a local copy of a Git repository
5127 is stored when it is cloned.
5128 </para>
5129 </glossdef>
5130 </glossentry>
5131
5132 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
5133 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005134 GLIBC_GENERATE_LOCALES[doc]= "Specifies the list of GLIBC locales to generate should you not wish to generate all LIBC locals, which can be time consuming."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005135 </info>
5136 <glossdef>
5137 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005138 Specifies the list of GLIBC locales to generate should you
Brad Bishop316dfdd2018-06-25 12:45:53 -04005139 not wish to generate all LIBC locals, which can be time
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005140 consuming.
5141 <note>
5142 If you specifically remove the locale
5143 <filename>en_US.UTF-8</filename>, you must set
5144 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
5145 appropriately.
5146 </note>
5147 </para>
5148
5149 <para>
5150 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
5151 in your <filename>local.conf</filename> file.
5152 By default, all locales are generated.
5153 <literallayout class='monospaced'>
5154 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
5155 </literallayout>
5156 </para>
5157 </glossdef>
5158 </glossentry>
5159
5160 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
5161 <info>
5162 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."
5163 </info>
5164 <glossdef>
5165 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005166 When inheriting the
5167 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5168 class, this variable
5169 specifies for a package what parameters should be passed
5170 to the <filename>groupadd</filename> command
5171 if you wish to add a group to the system when the package
5172 is installed.
5173 </para>
5174
5175 <para>
5176 Here is an example from the <filename>dbus</filename>
5177 recipe:
5178 <literallayout class='monospaced'>
5179 GROUPADD_PARAM_${PN} = "-r netdev"
5180 </literallayout>
5181 For information on the standard Linux shell command
5182 <filename>groupadd</filename>, see
5183 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
5184 </para>
5185 </glossdef>
5186 </glossentry>
5187
5188 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
5189 <info>
5190 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."
5191 </info>
5192 <glossdef>
5193 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005194 When inheriting the
5195 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5196 class, this variable
5197 specifies for a package what parameters should be passed
5198 to the <filename>groupmems</filename> command
5199 if you wish to modify the members of a group when the
5200 package is installed.
5201 </para>
5202
5203 <para>
5204 For information on the standard Linux shell command
5205 <filename>groupmems</filename>, see
5206 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
5207 </para>
5208 </glossdef>
5209 </glossentry>
5210
5211 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
5212 <info>
5213 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
5214 </info>
5215 <glossdef>
5216 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005217 Configures the GNU GRand Unified Bootloader (GRUB) to have
5218 graphics and serial in the boot menu.
5219 Set this variable to "1" in your
5220 <filename>local.conf</filename> or distribution
5221 configuration file to enable graphics and serial
5222 in the menu.
5223 </para>
5224
5225 <para>
5226 See the
5227 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5228 class for more information on how this variable is used.
5229 </para>
5230 </glossdef>
5231 </glossentry>
5232
5233 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
5234 <info>
5235 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
5236 </info>
5237 <glossdef>
5238 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005239 Additional options to add to the GNU GRand Unified
5240 Bootloader (GRUB) configuration.
5241 Use a semi-colon character (<filename>;</filename>) to
5242 separate multiple options.
5243 </para>
5244
5245 <para>
5246 The <filename>GRUB_OPTS</filename> variable is optional.
5247 See the
5248 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5249 class for more information on how this variable is used.
5250 </para>
5251 </glossdef>
5252 </glossentry>
5253
5254 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
5255 <info>
5256 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
5257 </info>
5258 <glossdef>
5259 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005260 Specifies the timeout before executing the default
5261 <filename>LABEL</filename> in the GNU GRand Unified
5262 Bootloader (GRUB).
5263 </para>
5264
5265 <para>
5266 The <filename>GRUB_TIMEOUT</filename> variable is optional.
5267 See the
5268 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5269 class for more information on how this variable is used.
5270 </para>
5271 </glossdef>
5272 </glossentry>
5273
5274 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
5275 <info>
5276 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."
5277 </info>
5278 <glossdef>
5279 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005280 When inheriting the
5281 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
5282 class, this variable specifies the packages that contain the
5283 GTK+ input method modules being installed when the modules
5284 are in packages other than the main package.
5285 </para>
5286 </glossdef>
5287 </glossentry>
5288
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005289 </glossdiv>
5290
5291 <glossdiv id='var-glossary-h'><title>H</title>
5292
5293 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
5294 <info>
5295 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
5296 </info>
5297 <glossdef>
5298 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005299 Website where more information about the software the recipe is building
5300 can be found.
5301 </para>
5302 </glossdef>
5303 </glossentry>
5304
5305 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
5306 <info>
5307 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
5308
5309 </info>
5310 <glossdef>
5311 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005312 The name of the target architecture, which is normally
5313 the same as
5314 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
5315 The OpenEmbedded build system supports many
5316 architectures.
5317 Here is an example list of architectures supported.
5318 This list is by no means complete as the architecture
5319 is configurable:
5320 <literallayout class='monospaced'>
5321 arm
5322 i586
5323 x86_64
5324 powerpc
5325 powerpc64
5326 mips
5327 mipsel
5328 </literallayout>
5329 </para>
5330 </glossdef>
5331 </glossentry>
5332
5333 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
5334 <info>
5335 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
5336 </info>
5337 <glossdef>
5338 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005339 Specifies architecture-specific compiler flags that are
5340 passed to the C compiler.
5341 </para>
5342
5343 <para>
5344 Default initialization for <filename>HOST_CC_ARCH</filename>
5345 varies depending on what is being built:
5346 <itemizedlist>
5347 <listitem><para>
5348 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
5349 when building for the target
5350 </para></listitem>
5351 <listitem><para>
5352 <filename>BUILD_CC_ARCH</filename>
5353 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005354 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005355 </para></listitem>
5356 <listitem><para>
5357 <filename>BUILDSDK_CC_ARCH</filename>
5358 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005359 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005360 </para></listitem>
5361 </itemizedlist>
5362 </para>
5363 </glossdef>
5364 </glossentry>
5365
5366 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
5367 <info>
5368 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
5369 </info>
5370 <glossdef>
5371 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005372 Specifies the name of the target operating system, which
5373 is normally the same as the
5374 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
5375 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005376 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005377 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005378 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005379 </para>
5380 </glossdef>
5381 </glossentry>
5382
5383 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
5384 <info>
5385 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
5386 </info>
5387 <glossdef>
5388 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005389 Specifies the prefix for the cross-compile toolchain.
5390 <filename>HOST_PREFIX</filename> is normally the same as
5391 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
5392 </para>
5393 </glossdef>
5394 </glossentry>
5395
5396 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
5397 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005398 HOST_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the build is occurring in the context of the current recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005399 </info>
5400 <glossdef>
5401 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005402 Specifies the system, including the architecture and the
5403 operating system, for which the build is occurring
5404 in the context of the current recipe.
5405 </para>
5406
5407 <para>
5408 The OpenEmbedded build system automatically sets this
5409 variable based on
5410 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
5411 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
5412 and
5413 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
5414 variables.
5415 <note>
5416 You do not need to set the variable yourself.
5417 </note>
5418 </para>
5419
5420 <para>
5421 Consider these two examples:
5422 <itemizedlist>
5423 <listitem><para>Given a native recipe on a 32-bit
5424 x86 machine running Linux, the value is
5425 "i686-linux".
5426 </para></listitem>
5427 <listitem><para>Given a recipe being built for a
5428 little-endian MIPS target running Linux,
5429 the value might be "mipsel-linux".
5430 </para></listitem>
5431 </itemizedlist>
5432 </para>
5433 </glossdef>
5434 </glossentry>
5435
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005436 <glossentry id='var-HOSTTOOLS'><glossterm>HOSTTOOLS</glossterm>
5437 <info>
5438 HOSTTOOLS[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5439 </info>
5440 <glossdef>
5441 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005442 A space-separated list (filter) of tools on the build host
5443 that should be allowed to be called from within build tasks.
5444 Using this filter helps reduce the possibility of host
5445 contamination.
5446 If a tool specified in the value of
5447 <filename>HOSTTOOLS</filename> is not found on the
5448 build host, the OpenEmbedded build system produces
5449 an error and the build is not started.
5450 </para>
5451
5452 <para>
5453 For additional information, see
5454 <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>.
5455 </para>
5456 </glossdef>
5457 </glossentry>
5458
5459 <glossentry id='var-HOSTTOOLS_NONFATAL'><glossterm>HOSTTOOLS_NONFATAL</glossterm>
5460 <info>
5461 HOSTTOOLS_NONFATAL[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5462 </info>
5463 <glossdef>
5464 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005465 A space-separated list (filter) of tools on the build host
5466 that should be allowed to be called from within build tasks.
5467 Using this filter helps reduce the possibility of host
5468 contamination.
5469 Unlike
5470 <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -04005471 the OpenEmbedded build system does not produce an error
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005472 if a tool specified in the value of
5473 <filename>HOSTTOOLS_NONFATAL</filename> is not found on the
5474 build host.
5475 Thus, you can use <filename>HOSTTOOLS_NONFATAL</filename>
5476 to filter optional host tools.
5477 </para>
5478 </glossdef>
5479 </glossentry>
5480
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005481 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
5482 <info>
5483 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
5484 </info>
5485 <glossdef>
5486 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005487 Specifies the name of the vendor.
5488 <filename>HOST_VENDOR</filename> is normally the same as
Brad Bishop316dfdd2018-06-25 12:45:53 -04005489 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005490 </para>
5491 </glossdef>
5492 </glossentry>
5493
5494 </glossdiv>
5495
5496 <glossdiv id='var-glossary-i'><title>I</title>
5497
5498 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
5499 <info>
5500 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
5501 </info>
5502 <glossdef>
5503 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005504 Disables or enables the <filename>icecc</filename>
5505 (Icecream) function.
5506 For more information on this function and best practices
5507 for using this variable, see the
5508 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
5509 section.
5510 </para>
5511
5512 <para>
5513 Setting this variable to "1" in your
5514 <filename>local.conf</filename> disables the function:
5515 <literallayout class='monospaced'>
5516 ICECC_DISABLED ??= "1"
5517 </literallayout>
5518 To enable the function, set the variable as follows:
5519 <literallayout class='monospaced'>
5520 ICECC_DISABLED = ""
5521 </literallayout>
5522 </para>
5523 </glossdef>
5524 </glossentry>
5525
5526 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
5527 <info>
5528 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
5529 </info>
5530 <glossdef>
5531 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005532 Points to the <filename>icecc-create-env</filename> script
5533 that you provide.
5534 This variable is used by the
5535 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5536 class.
5537 You set this variable in your
5538 <filename>local.conf</filename> file.
5539 </para>
5540
5541 <para>
5542 If you do not point to a script that you provide, the
5543 OpenEmbedded build system uses the default script provided
5544 by the <filename>icecc-create-env.bb</filename> recipe,
5545 which is a modified version and not the one that comes with
5546 <filename>icecc</filename>.
5547 </para>
5548 </glossdef>
5549 </glossentry>
5550
5551 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
5552 <info>
5553 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
5554 </info>
5555 <glossdef>
5556 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005557 Extra options passed to the <filename>make</filename>
5558 command during the
5559 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
5560 task that specify parallel compilation.
5561 This variable usually takes the form of
5562 "-j <replaceable>x</replaceable>", where
5563 <replaceable>x</replaceable> represents the maximum
5564 number of parallel threads <filename>make</filename> can
5565 run.
5566 <note>
5567 The options passed affect builds on all enabled
5568 machines on the network, which are machines running the
5569 <filename>iceccd</filename> daemon.
5570 </note>
5571 </para>
5572
5573 <para>
5574 If your enabled machines support multiple cores,
5575 coming up with the maximum number of parallel threads
5576 that gives you the best performance could take some
5577 experimentation since machine speed, network lag,
5578 available memory, and existing machine loads can all
5579 affect build time.
5580 Consequently, unlike the
5581 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5582 variable, there is no rule-of-thumb for setting
5583 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
5584 optimal performance.
5585 </para>
5586
5587 <para>
5588 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
5589 the build system does not use it (i.e. the system does
5590 not detect and assign the number of cores as is done with
5591 <filename>PARALLEL_MAKE</filename>).
5592 </para>
5593 </glossdef>
5594 </glossentry>
5595
5596 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
5597 <info>
5598 ICECC_PATH[doc] = "The location of the icecc binary."
5599 </info>
5600 <glossdef>
5601 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005602 The location of the <filename>icecc</filename> binary.
5603 You can set this variable in your
5604 <filename>local.conf</filename> file.
5605 If your <filename>local.conf</filename> file does not define
5606 this variable, the
5607 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5608 class attempts to define it by locating
5609 <filename>icecc</filename> using <filename>which</filename>.
5610 </para>
5611 </glossdef>
5612 </glossentry>
5613
5614 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
5615 <info>
5616 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
5617 </info>
5618 <glossdef>
5619 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005620 Identifies user classes that you do not want the
5621 Icecream distributed compile support to consider.
5622 This variable is used by the
5623 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5624 class.
5625 You set this variable in your
5626 <filename>local.conf</filename> file.
5627 </para>
5628
5629 <para>
5630 When you list classes using this variable, you are
5631 "blacklisting" them from distributed compilation across
5632 remote hosts.
5633 Any classes you list will be distributed and compiled
5634 locally.
5635 </para>
5636 </glossdef>
5637 </glossentry>
5638
5639 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5640 <info>
5641 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5642 </info>
5643 <glossdef>
5644 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005645 Identifies user recipes that you do not want the
5646 Icecream distributed compile support to consider.
5647 This variable is used by the
5648 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5649 class.
5650 You set this variable in your
5651 <filename>local.conf</filename> file.
5652 </para>
5653
5654 <para>
5655 When you list packages using this variable, you are
5656 "blacklisting" them from distributed compilation across
5657 remote hosts.
5658 Any packages you list will be distributed and compiled
5659 locally.
5660 </para>
5661 </glossdef>
5662 </glossentry>
5663
5664 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5665 <info>
5666 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."
5667 </info>
5668 <glossdef>
5669 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005670 Identifies user recipes that use an empty
5671 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5672 variable that you want to force remote distributed
5673 compilation on using the Icecream distributed compile
5674 support.
5675 This variable is used by the
5676 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5677 class.
5678 You set this variable in your
5679 <filename>local.conf</filename> file.
5680 </para>
5681 </glossdef>
5682 </glossentry>
5683
5684 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5685 <info>
5686 IMAGE_BASENAME[doc] = "The base name of image output files."
5687 </info>
5688 <glossdef>
5689 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005690 The base name of image output files.
5691 This variable defaults to the recipe name
5692 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5693 </para>
5694 </glossdef>
5695 </glossentry>
5696
5697 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5698 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005699 IMAGE_BOOT_FILES[doc] = "A space-separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005700 </info>
5701 <glossdef>
5702 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005703 A space-separated list of files installed into the
Brad Bishop316dfdd2018-06-25 12:45:53 -04005704 boot partition when preparing an image using the Wic tool
5705 with the <filename>bootimg-partition</filename> source
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005706 plugin.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005707 By default, the files are installed under the same name as
5708 the source files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005709 To change the installed name, separate it from the
5710 original name with a semi-colon (;).
5711 Source files need to be located in
5712 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5713 Here are two examples:
5714
5715 <literallayout class="monospaced">
5716 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5717 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5718 </literallayout>
5719 </para>
5720
5721 <para>
5722 Alternatively, source files can be picked up using
5723 a glob pattern.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005724 In this case, the destination file must have the same name
5725 as the base name of the source file path.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005726 To install files into a directory within the
5727 target location, pass its name after a semi-colon
5728 (;).
5729 Here are two examples:
5730 <literallayout class="monospaced">
5731 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5732 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5733 </literallayout>
5734 The first example installs all files from
5735 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5736 into the root of the target partition.
5737 The second example installs the same files into a
5738 <filename>boot</filename> directory within the
5739 target partition.
5740 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005741
5742 <para>
5743 You can find information on how to use the Wic tool in the
5744 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
5745 section of the Yocto Project Development Tasks Manual.
5746 Reference material for Wic is located in the
5747 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-kickstart'>OpenEmbedded Kickstart (.wks) Reference</ulink>"
5748 chapter.
5749 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005750 </glossdef>
5751 </glossentry>
5752
5753 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5754 <info>
5755 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5756 </info>
5757 <glossdef>
5758 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005759 A list of classes that all images should inherit.
5760 You typically use this variable to specify the list of
5761 classes that register the different types of images
5762 the OpenEmbedded build system creates.
5763 </para>
5764
5765 <para>
5766 The default value for <filename>IMAGE_CLASSES</filename> is
5767 <filename>image_types</filename>.
5768 You can set this variable in your
5769 <filename>local.conf</filename> or in a distribution
5770 configuration file.
5771 </para>
5772
5773 <para>
5774 For more information, see
5775 <filename>meta/classes/image_types.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005776 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005777 </para>
5778 </glossdef>
5779 </glossentry>
5780
5781 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5782 <info>
5783 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)."
5784 </info>
5785 <glossdef>
5786 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005787 Specifies the command to create the image file for a
5788 specific image type, which corresponds to the value set
5789 set in
5790 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5791 (e.g. <filename>ext3</filename>,
5792 <filename>btrfs</filename>, and so forth).
5793 When setting this variable, you should use
5794 an override for the associated type.
5795 Here is an example:
5796 <literallayout class='monospaced'>
5797 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5798 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5799 ${EXTRA_IMAGECMD}"
5800 </literallayout>
5801 </para>
5802
5803 <para>
5804 You typically do not need to set this variable unless
5805 you are adding support for a new image type.
5806 For more examples on how to set this variable, see the
5807 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5808 class file, which is
5809 <filename>meta/classes/image_types.bbclass</filename>.
5810 </para>
5811 </glossdef>
5812 </glossentry>
5813
5814 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5815 <info>
5816 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."
5817 </info>
5818 <glossdef>
5819 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005820 Specifies one or more files that contain custom device
5821 tables that are passed to the
5822 <filename>makedevs</filename> command as part of creating
5823 an image.
5824 These files list basic device nodes that should be
5825 created under <filename>/dev</filename> within the image.
5826 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5827 <filename>files/device_table-minimal.txt</filename> is
5828 used, which is located by
5829 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5830 For details on how you should write device table files,
5831 see <filename>meta/files/device_table-minimal.txt</filename>
5832 as an example.
5833 </para>
5834 </glossdef>
5835 </glossentry>
5836
5837 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5838 <info>
5839 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5840 </info>
5841 <glossdef>
5842 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005843 The primary list of features to include in an image.
5844 Typically, you configure this variable in an image recipe.
5845 Although you can use this variable from your
5846 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005847 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005848 best practices dictate that you do not.
5849 <note>
5850 To enable extra features from outside the image recipe,
5851 use the
5852 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5853 </note>
5854 </para>
5855
5856 <para>
5857 For a list of image features that ships with the Yocto
5858 Project, see the
5859 "<link linkend="ref-features-image">Image Features</link>"
5860 section.
5861 </para>
5862
5863 <para>
5864 For an example that shows how to customize your image by
5865 using this variable, see the
5866 "<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>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005867 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005868 </para>
5869 </glossdef>
5870 </glossentry>
5871
5872 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5873 <info>
5874 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5875 </info>
5876 <glossdef>
5877 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005878 Specifies the formats the OpenEmbedded build system uses
5879 during the build when creating the root filesystem.
5880 For example, setting <filename>IMAGE_FSTYPES</filename>
5881 as follows causes the build system to create root
5882 filesystems using two formats: <filename>.ext3</filename>
5883 and <filename>.tar.bz2</filename>:
5884 <literallayout class='monospaced'>
5885 IMAGE_FSTYPES = "ext3 tar.bz2"
5886 </literallayout>
5887 </para>
5888
5889 <para>
5890 For the complete list of supported image formats from which
5891 you can choose, see
5892 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5893 </para>
5894
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005895 <note><title>Notes</title>
5896 <itemizedlist>
5897 <listitem><para>
Brad Bishop19323692019-04-05 15:28:33 -04005898 If an image recipe uses the "inherit image" line
5899 and you are setting
5900 <filename>IMAGE_FSTYPES</filename> inside the
5901 recipe, you must set
5902 <filename>IMAGE_FSTYPES</filename> prior to
5903 using the "inherit image" line.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005904 </para></listitem>
5905 <listitem><para>
5906 Due to the way the OpenEmbedded build system
5907 processes this variable, you cannot update its
5908 contents by using <filename>_append</filename> or
5909 <filename>_prepend</filename>.
5910 You must use the <filename>+=</filename>
5911 operator to add one or more options to the
5912 <filename>IMAGE_FSTYPES</filename> variable.
5913 </para></listitem>
5914 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005915 </note>
5916 </glossdef>
5917 </glossentry>
5918
5919 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
5920 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005921 IMAGE_INSTALL[doc] = "Used by recipes to specify the packages to install into an image through image.bbclass."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005922 </info>
5923 <glossdef>
5924 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04005925 Used by recipes to specify the packages to install into an
5926 image through the
5927 <link linkend='ref-classes-image'><filename>image</filename></link>
5928 class.
5929 Use the <filename>IMAGE_INSTALL</filename> variable with
5930 care to avoid ordering issues.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005931 </para>
5932
5933 <para>
5934 Image recipes set <filename>IMAGE_INSTALL</filename>
5935 to specify the packages to install into an image through
5936 <filename>image.bbclass</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005937 Additionally, "helper" classes such as the
5938 <link linkend='ref-classes-core-image'><filename>core-image</filename></link>
5939 class exist that can take lists used with
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005940 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005941 and turn them into auto-generated entries in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005942 <filename>IMAGE_INSTALL</filename> in addition to its
5943 default contents.
5944 </para>
5945
5946 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005947 When you use this variable, it is best to use it as follows:
5948 <literallayout class='monospaced'>
5949 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
5950 </literallayout>
5951 Be sure to include the space between the quotation character
5952 and the start of the package name or names.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005953 <note><title>Caution</title>
5954 <itemizedlist>
5955 <listitem><para>
5956 When working with a
5957 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
5958 image, do not use the
5959 <filename>IMAGE_INSTALL</filename> variable to
5960 specify packages for installation.
5961 Instead, use the
5962 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
5963 variable, which allows the initial RAM
5964 filesystem (initramfs) recipe to use a fixed
5965 set of packages and not be affected by
5966 <filename>IMAGE_INSTALL</filename>.
5967 For information on creating an initramfs, see
5968 the
5969 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
5970 section in the Yocto Project Development Tasks
5971 Manual.
5972 </para></listitem>
5973 <listitem><para>
5974 Using <filename>IMAGE_INSTALL</filename> with
5975 the
5976 <ulink url='&YOCTO_DOCS_BB_URL;#appending-and-prepending'><filename>+=</filename></ulink>
5977 BitBake operator within the
5978 <filename>/conf/local.conf</filename> file or
5979 from within an image recipe is not recommended.
5980 Use of this operator in these ways can cause
5981 ordering issues.
5982 Since <filename>core-image.bbclass</filename>
5983 sets <filename>IMAGE_INSTALL</filename> to a
5984 default value using the
5985 <ulink url='&YOCTO_DOCS_BB_URL;#setting-a-default-value'><filename>?=</filename></ulink>
5986 operator, using a <filename>+=</filename>
5987 operation against
5988 <filename>IMAGE_INSTALL</filename> results in
5989 unexpected behavior when used within
5990 <filename>conf/local.conf</filename>.
5991 Furthermore, the same operation from within
5992 an image recipe may or may not succeed
5993 depending on the specific situation.
5994 In both these cases, the behavior is contrary
5995 to how most users expect the
5996 <filename>+=</filename> operator to work.
5997 </para></listitem>
5998 </itemizedlist>
5999 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006000 </para>
6001 </glossdef>
6002 </glossentry>
6003
6004 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
6005 <info>
6006 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
6007 </info>
6008 <glossdef>
6009 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006010 Specifies the list of locales to install into the image
6011 during the root filesystem construction process.
6012 The OpenEmbedded build system automatically splits locale
6013 files, which are used for localization, into separate
6014 packages.
6015 Setting the <filename>IMAGE_LINGUAS</filename> variable
6016 ensures that any locale packages that correspond to packages
6017 already selected for installation into the image are also
6018 installed.
6019 Here is an example:
6020 <literallayout class='monospaced'>
6021 IMAGE_LINGUAS = "pt-br de-de"
6022 </literallayout>
6023 </para>
6024
6025 <para>
6026 In this example, the build system ensures any Brazilian
6027 Portuguese and German locale files that correspond to
6028 packages in the image are installed (i.e.
6029 <filename>*-locale-pt-br</filename>
6030 and <filename>*-locale-de-de</filename> as well as
6031 <filename>*-locale-pt</filename>
6032 and <filename>*-locale-de</filename>, since some software
6033 packages only provide locale files by language and not by
6034 country-specific language).
6035 </para>
6036
6037 <para>
6038 See the
6039 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
6040 variable for information on generating GLIBC locales.
6041 </para>
6042 </glossdef>
6043 </glossentry>
6044
6045 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
6046 <info>
6047 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
6048 </info>
6049 <glossdef>
6050 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006051 The manifest file for the image.
6052 This file lists all the installed packages that make up
6053 the image.
6054 The file contains package information on a line-per-package
6055 basis as follows:
6056 <literallayout class='monospaced'>
6057 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
6058 </literallayout>
6059 </para>
6060
6061 <para>
6062 The
6063 <link linkend='ref-classes-image'><filename>image</filename></link>
6064 class defines the manifest file as follows:
6065 <literallayout class='monospaced'>
6066 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
6067 </literallayout>
6068 The location is derived using the
6069 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
6070 and
6071 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
6072 variables.
6073 You can find information on how the image
6074 is created in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006075 "<ulink url='&YOCTO_DOCS_OM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
6076 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006077 </para>
6078 </glossdef>
6079 </glossentry>
6080
6081 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
6082 <info>
6083 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
6084 </info>
6085 <glossdef>
6086 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006087 The name of the output image files minus the extension.
6088 This variable is derived using the
6089 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
6090 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6091 and
6092 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6093 variables:
6094 <literallayout class='monospaced'>
6095 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
6096 </literallayout>
6097 </para>
6098 </glossdef>
6099 </glossentry>
6100
6101 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
6102 <info>
6103 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."
6104 </info>
6105 <glossdef>
6106 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006107 Defines a multiplier that the build system applies to the initial image
6108 size for cases when the multiplier times the returned disk usage value
6109 for the image is greater than the sum of
6110 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6111 and
6112 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
6113 The result of the multiplier applied to the initial image size creates
6114 free disk space in the image as overhead.
6115 By default, the build process uses a multiplier of 1.3 for this variable.
6116 This default value results in 30% free disk space added to the image when this
6117 method is used to determine the final generated image size.
6118 You should be aware that post install scripts and the package management
6119 system uses disk space inside this overhead area.
6120 Consequently, the multiplier does not produce an image with
6121 all the theoretical free disk space.
6122 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6123 for information on how the build system determines the overall image size.
6124 </para>
6125
6126 <para>
6127 The default 30% free disk space typically gives the image enough room to boot
6128 and allows for basic post installs while still leaving a small amount of
6129 free disk space.
6130 If 30% free space is inadequate, you can increase the default value.
6131 For example, the following setting gives you 50% free space added to the image:
6132 <literallayout class='monospaced'>
6133 IMAGE_OVERHEAD_FACTOR = "1.5"
6134 </literallayout>
6135 </para>
6136
6137 <para>
6138 Alternatively, you can ensure a specific amount of free disk space is added
6139 to the image by using the
6140 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6141 variable.
6142 </para>
6143 </glossdef>
6144 </glossentry>
6145
6146 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
6147 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006148 IMAGE_PKGTYPE[doc] = "Defines the package type (i.e. DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006149 </info>
6150 <glossdef>
6151 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04006152 Defines the package type (i.e. DEB, RPM, IPK, or TAR) used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006153 by the OpenEmbedded build system.
6154 The variable is defined appropriately by the
6155 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
6156 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
6157 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
6158 or
6159 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
6160 class.
6161 <note><title>Warning</title>
6162 The <filename>package_tar</filename> class is broken
6163 and is not supported.
6164 It is recommended that you do not use it.
6165 </note>
6166 </para>
6167
6168 <para>
6169 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006170 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006171 and
6172 <link linkend='ref-classes-image'><filename>image</filename></link>
6173 classes use the <filename>IMAGE_PKGTYPE</filename> for
6174 packaging up images and SDKs.
6175 </para>
6176
6177 <para>
6178 You should not set the <filename>IMAGE_PKGTYPE</filename>
6179 manually.
6180 Rather, the variable is set indirectly through the
6181 appropriate
6182 <link linkend='ref-classes-package'><filename>package_*</filename></link>
6183 class using the
6184 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
6185 variable.
6186 The OpenEmbedded build system uses the first package type
6187 (e.g. DEB, RPM, or IPK) that appears with the variable
6188 <note>
6189 Files using the <filename>.tar</filename> format are
6190 never used as a substitute packaging format for DEB,
6191 RPM, and IPK formatted files for your image or SDK.
6192 </note>
6193 </para>
6194 </glossdef>
6195 </glossentry>
6196
6197 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
6198 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006199 IMAGE_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system creates the final image output files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006200 </info>
6201 <glossdef>
6202 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006203 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006204 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006205 output files.
6206 You can specify functions separated by semicolons:
6207 <literallayout class='monospaced'>
6208 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6209 </literallayout>
6210 </para>
6211
6212 <para>
6213 If you need to pass the root filesystem path to a command
6214 within the function, you can use
6215 <filename>${IMAGE_ROOTFS}</filename>, which points to
6216 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006217 See the
6218 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6219 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006220 </para>
6221 </glossdef>
6222 </glossentry>
6223
6224 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
6225 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006226 IMAGE_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system creates the final image output files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006227 </info>
6228 <glossdef>
6229 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006230 Specifies a list of functions to call before the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006231 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006232 output files.
6233 You can specify functions separated by semicolons:
6234 <literallayout class='monospaced'>
6235 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6236 </literallayout>
6237 </para>
6238
6239 <para>
6240 If you need to pass the root filesystem path to a command
6241 within the function, you can use
6242 <filename>${IMAGE_ROOTFS}</filename>, which points to
6243 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006244 See the
6245 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6246 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006247 </para>
6248 </glossdef>
6249 </glossentry>
6250
6251 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
6252 <info>
6253 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
6254 </info>
6255 <glossdef>
6256 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006257 The location of the root filesystem while it is under
6258 construction (i.e. during the
6259 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
6260 task).
6261 This variable is not configurable.
6262 Do not change it.
6263 </para>
6264 </glossdef>
6265 </glossentry>
6266
6267 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
6268 <info>
6269 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
6270 </info>
6271 <glossdef>
6272 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006273 Specifies the alignment for the output image file in
6274 Kbytes.
6275 If the size of the image is not a multiple of
6276 this value, then the size is rounded up to the nearest
6277 multiple of the value.
6278 The default value is "1".
6279 See
6280 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
6281 for additional information.
6282 </para>
6283 </glossdef>
6284 </glossentry>
6285
6286 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
6287 <info>
6288 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
6289 </info>
6290 <glossdef>
6291 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006292 Defines additional free disk space created in the image in Kbytes.
6293 By default, this variable is set to "0".
6294 This free disk space is added to the image after the build system determines
6295 the image size as described in
6296 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
6297 </para>
6298
6299 <para>
6300 This variable is particularly useful when you want to ensure that a
6301 specific amount of free disk space is available on a device after an image
6302 is installed and running.
6303 For example, to be sure 5 Gbytes of free disk space is available, set the
6304 variable as follows:
6305 <literallayout class='monospaced'>
6306 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
6307 </literallayout>
6308 </para>
6309
6310 <para>
6311 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
6312 of extra space with the line:
6313 <literallayout class='monospaced'>
6314 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
6315 </literallayout>
6316 </para>
6317 </glossdef>
6318 </glossentry>
6319
6320 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
6321 <info>
6322 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
6323 </info>
6324 <glossdef>
6325 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006326 Defines the size in Kbytes for the generated image.
6327 The OpenEmbedded build system determines the final size for the generated
6328 image using an algorithm that takes into account the initial disk space used
6329 for the generated image, a requested size for the image, and requested
6330 additional free disk space to be added to the image.
6331 Programatically, the build system determines the final size of the
6332 generated image as follows:
6333 <literallayout class='monospaced'>
6334 if (image-du * overhead) &lt; rootfs-size:
6335 internal-rootfs-size = rootfs-size + xspace
6336 else:
6337 internal-rootfs-size = (image-du * overhead) + xspace
6338
6339 where:
6340
6341 image-du = Returned value of the du command on
6342 the image.
6343
6344 overhead = IMAGE_OVERHEAD_FACTOR
6345
6346 rootfs-size = IMAGE_ROOTFS_SIZE
6347
6348 internal-rootfs-size = Initial root filesystem
6349 size before any modifications.
6350
6351 xspace = IMAGE_ROOTFS_EXTRA_SPACE
6352 </literallayout>
6353 </para>
6354
6355 <para>
6356 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
6357 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
6358 variables for related information.
6359<!-- In the above example, <filename>overhead</filename> is defined by the
6360 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
6361 variable, <filename>xspace</filename> is defined by the
6362 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6363 variable, and <filename>du</filename> is the results of the disk usage command
6364 on the initially generated image. -->
6365 </para>
6366 </glossdef>
6367 </glossentry>
6368
6369 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
6370 <info>
6371 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
6372 </info>
6373 <glossdef>
6374 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006375 Specifies a dependency from one image type on another.
6376 Here is an example from the
6377 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6378 class:
6379 <literallayout class='monospaced'>
6380 IMAGE_TYPEDEP_live = "ext3"
6381 </literallayout>
6382 </para>
6383
6384 <para>
6385 In the previous example, the variable ensures that when
6386 "live" is listed with the
6387 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6388 variable, the OpenEmbedded build system produces an
6389 <filename>ext3</filename> image first since one of the
6390 components of the live
6391 image is an <filename>ext3</filename>
6392 formatted partition containing the root
6393 filesystem.
6394 </para>
6395 </glossdef>
6396 </glossentry>
6397
6398 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
6399 <info>
6400 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
6401 </info>
6402 <glossdef>
6403 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006404 Specifies the complete list of supported image types
6405 by default:
6406 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006407 btrfs
Brad Bishop79641f22019-09-10 07:20:22 -04006408 container
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006409 cpio
6410 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006411 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006412 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006413 cpio.xz
6414 cramfs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006415 ext2
6416 ext2.bz2
6417 ext2.gz
6418 ext2.lzma
6419 ext3
6420 ext3.gz
6421 ext4
6422 ext4.gz
Brad Bishop79641f22019-09-10 07:20:22 -04006423 f2fs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006424 hddimg
6425 iso
6426 jffs2
6427 jffs2.sum
6428 multiubi
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006429 squashfs
Brad Bishop79641f22019-09-10 07:20:22 -04006430 squashfs-lz4
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006431 squashfs-lzo
6432 squashfs-xz
6433 tar
6434 tar.bz2
6435 tar.gz
6436 tar.lz4
6437 tar.xz
Andrew Geissler4b740dc2020-05-05 08:54:39 -05006438 tar.zst
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006439 ubi
6440 ubifs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006441 wic
6442 wic.bz2
6443 wic.gz
6444 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006445 </literallayout>
6446 </para>
6447
6448 <para>
6449 For more information about these types of images, see
6450 <filename>meta/classes/image_types*.bbclass</filename>
6451 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006452 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006453 </para>
6454 </glossdef>
6455 </glossentry>
6456
6457 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
6458 <info>
6459 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
6460 </info>
6461 <glossdef>
6462 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006463 Helps define the recipe revision for recipes that share
6464 a common <filename>include</filename> file.
6465 You can think of this variable as part of the recipe revision
6466 as set from within an include file.
6467 </para>
6468
6469 <para>
6470 Suppose, for example, you have a set of recipes that
6471 are used across several projects.
6472 And, within each of those recipes the revision
6473 (its <link linkend='var-PR'><filename>PR</filename></link>
6474 value) is set accordingly.
6475 In this case, when the revision of those recipes changes,
6476 the burden is on you to find all those recipes and
6477 be sure that they get changed to reflect the updated
6478 version of the recipe.
6479 In this scenario, it can get complicated when recipes
6480 that are used in many places and provide common functionality
6481 are upgraded to a new revision.
6482 </para>
6483
6484 <para>
6485 A more efficient way of dealing with this situation is
6486 to set the <filename>INC_PR</filename> variable inside
6487 the <filename>include</filename> files that the recipes
6488 share and then expand the <filename>INC_PR</filename>
6489 variable within the recipes to help
6490 define the recipe revision.
6491 </para>
6492
6493 <para>
6494 The following provides an example that shows how to use
6495 the <filename>INC_PR</filename> variable
6496 given a common <filename>include</filename> file that
6497 defines the variable.
6498 Once the variable is defined in the
6499 <filename>include</filename> file, you can use the
6500 variable to set the <filename>PR</filename> values in
6501 each recipe.
6502 You will notice that when you set a recipe's
6503 <filename>PR</filename> you can provide more granular
6504 revisioning by appending values to the
6505 <filename>INC_PR</filename> variable:
6506 <literallayout class='monospaced'>
Brad Bishopb1114e52019-02-13 07:56:10 -05006507 recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
6508 recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
6509 recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
6510 recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006511 </literallayout>
6512 The first line of the example establishes the baseline
6513 revision to be used for all recipes that use the
6514 <filename>include</filename> file.
6515 The remaining lines in the example are from individual
6516 recipes and show how the <filename>PR</filename> value
6517 is set.
6518 </para>
6519 </glossdef>
6520 </glossentry>
6521
6522 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
6523 <info>
6524 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
6525 </info>
6526 <glossdef>
6527 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006528 Specifies a space-separated list of license names
6529 (as they would appear in
6530 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
6531 that should be excluded from the build.
6532 Recipes that provide no alternatives to listed incompatible
6533 licenses are not built.
6534 Packages that are individually licensed with the specified
6535 incompatible licenses will be deleted.
6536 </para>
6537
6538 <note>
6539 This functionality is only regularly tested using
6540 the following setting:
6541 <literallayout class='monospaced'>
6542 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
6543 </literallayout>
6544 Although you can use other settings, you might be required
6545 to remove dependencies on or provide alternatives to
6546 components that are required to produce a functional system
6547 image.
6548 </note>
Andrew Geissler82c905d2020-04-13 13:39:40 -05006549
6550 <note><title>Tips</title>
6551 It is possible to define a list of licenses that are allowed
6552 to be used instead of the licenses that are excluded. To do
6553 this, define a
6554 variable <filename>COMPATIBLE_LICENSES</filename> with the
6555 names of the licences that are allowed. Then
6556 define <filename>INCOMPATIBLE_LICENSE</filename> as:
6557 <literallayout class='monospaced'>
6558 INCOMPATIBLE_LICENSE = "${@' '.join(sorted(set(d.getVar('AVAILABLE_LICENSES').split()) - set(d.getVar('COMPATIBLE_LICENSES').split())))}"
6559 </literallayout>
6560 This will result
6561 in <filename>INCOMPATIBLE_LICENSE</filename> containing the
6562 names of all licences
6563 from <link linkend='var-AVAILABLE_LICENSES'><filename>AVAILABLE_LICENSES</filename></link>
6564 except the ones specified
6565 in <filename>COMPATIBLE_LICENSES</filename>, thus only
6566 allowing the latter licences to be used.
6567 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006568 </glossdef>
6569 </glossentry>
6570
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006571 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
6572 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006573 INHERIT[doc] = "Causes the named class or classes to be inherited globally."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006574 </info>
6575 <glossdef>
6576 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006577 Causes the named class or classes to be inherited globally.
6578 Anonymous functions in the class or classes
6579 are not executed for the
6580 base configuration and in each individual recipe.
6581 The OpenEmbedded build system ignores changes to
6582 <filename>INHERIT</filename> in individual recipes.
6583 </para>
6584
6585 <para>
6586 For more information on <filename>INHERIT</filename>, see
6587 the
6588 "<ulink url="&YOCTO_DOCS_BB_URL;#inherit-configuration-directive"><filename>INHERIT</filename> Configuration Directive</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04006589 section in the Bitbake User Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006590 </para>
6591 </glossdef>
6592 </glossentry>
6593
6594 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
6595 <info>
6596 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6597 </info>
6598 <glossdef>
6599 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006600 Lists classes that will be inherited at the
6601 distribution level.
6602 It is unlikely that you want to edit this variable.
6603 </para>
6604
6605 <para>
6606 The default value of the variable is set as follows in the
6607 <filename>meta/conf/distro/defaultsetup.conf</filename>
6608 file:
6609 <literallayout class='monospaced'>
6610 INHERIT_DISTRO ?= "debian devshell sstate license"
6611 </literallayout>
6612 </para>
6613 </glossdef>
6614 </glossentry>
6615
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006616 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
6617 <info>
6618 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
6619 </info>
6620 <glossdef>
6621 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006622 Prevents the default dependencies, namely the C compiler
6623 and standard C library (libc), from being added to
6624 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
6625 This variable is usually used within recipes that do not
6626 require any compilation using the C compiler.
6627 </para>
6628
6629 <para>
6630 Set the variable to "1" to prevent the default dependencies
6631 from being added.
6632 </para>
6633 </glossdef>
6634 </glossentry>
6635
6636 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
6637 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006638 INHIBIT_PACKAGE_DEBUG_SPLIT[doc] = "If set to "1", prevents the OpenEmbedded build system from splitting out debug information during packaging"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006639 </info>
6640 <glossdef>
6641 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006642 Prevents the OpenEmbedded build system from splitting
6643 out debug information during packaging.
6644 By default, the build system splits out debugging
6645 information during the
6646 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
6647 task.
6648 For more information on how debug information is split out,
6649 see the
6650 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
6651 variable.
6652 </para>
6653
6654 <para>
6655 To prevent the build system from splitting out
6656 debug information during packaging, set the
6657 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
6658 as follows:
6659 <literallayout class='monospaced'>
6660 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6661 </literallayout>
6662 </para>
6663 </glossdef>
6664 </glossentry>
6665
6666 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
6667 <info>
6668 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
6669 </info>
6670 <glossdef>
6671 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006672 If set to "1", causes the build to not strip binaries in
6673 resulting packages and prevents the
6674 <filename>-dbg</filename> package from containing the
6675 source files.
6676 </para>
6677
6678 <para>
6679 By default, the OpenEmbedded build system strips
6680 binaries and puts the debugging symbols into
6681 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
6682 Consequently, you should not set
6683 <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
6684 to debug in general.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006685 </para>
6686 </glossdef>
6687 </glossentry>
6688
Brad Bishop19323692019-04-05 15:28:33 -04006689 <glossentry id='var-INHIBIT_SYSROOT_STRIP'><glossterm>INHIBIT_SYSROOT_STRIP</glossterm>
6690 <info>
6691 INHIBIT_SYSROOT_STRIP[doc] = "If set to "1", causes the build to not strip binaries in the resulting sysroot."
6692 </info>
6693 <glossdef>
6694 <para role="glossdeffirst">
Brad Bishop19323692019-04-05 15:28:33 -04006695 If set to "1", causes the build to not strip binaries in
6696 the resulting sysroot.
6697 </para>
6698
6699 <para>
6700 By default, the OpenEmbedded build system strips
6701 binaries in the resulting sysroot.
6702 When you specifically set the
6703 <filename>INHIBIT_SYSROOT_STRIP</filename> variable to
6704 "1" in your recipe, you inhibit this stripping.
6705 </para>
6706
6707 <para>
6708 If you want to use this variable, include the
6709 <link linkend='ref-classes-staging'><filename>staging</filename></link>
6710 class.
6711 This class uses a <filename>sys_strip()</filename>
6712 function to test for the variable and acts accordingly.
6713 <note>
6714 Use of the <filename>INHIBIT_SYSROOT_STRIP</filename>
6715 variable occurs in rare and special circumstances.
6716 For example, suppose you are building bare-metal
6717 firmware by using an external GCC toolchain.
6718 Furthermore, even if the toolchain's binaries are
6719 strippable, other files exist that are needed for the
6720 build that are not strippable.
6721 </note>
6722 </para>
6723 </glossdef>
6724 </glossentry>
6725
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006726 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6727 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006728 INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM filesystem (initramfs), which is used during boot."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006729 </info>
6730 <glossdef>
6731 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006732 Defines the format for the output image of an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006733 RAM filesystem (initramfs), which is used during boot.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006734 Supported formats are the same as those supported by the
6735 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6736 variable.
6737 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006738
6739 <para>
6740 The default value of this variable, which is set in the
6741 <filename>meta/conf/bitbake.conf</filename> configuration
6742 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006743 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006744 is "cpio.gz".
6745 The Linux kernel's initramfs mechanism, as opposed to the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006746 initial RAM filesystem
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006747 <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
6748 mechanism, expects an optionally compressed cpio
6749 archive.
6750 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006751 </glossdef>
6752 </glossentry>
6753
6754 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6755 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006756 INITRAMFS_IMAGE[doc] = "Specifies the PROVIDES name of an image recipe that is used to build an initial RAM filesystem (initramfs) image."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006757 </info>
6758 <glossdef>
6759 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006760 Specifies the
6761 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
6762 name of an image recipe that is used to build an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006763 RAM filesystem (initramfs) image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006764 In other words, the <filename>INITRAMFS_IMAGE</filename>
6765 variable causes an additional recipe to be built as
6766 a dependency to whatever root filesystem recipe you
6767 might be using (e.g. <filename>core-image-sato</filename>).
6768 The initramfs image recipe you provide should set
6769 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6770 to
6771 <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
6772 </para>
6773
6774 <para>
6775 An initramfs image provides a temporary root filesystem
6776 used for early system initialization (e.g. loading of
6777 modules needed to locate and mount the "real" root
6778 filesystem).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006779 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006780 See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
6781 recipe in the
6782 <link linkend='source-directory'>Source Directory</link>
6783 for an example initramfs recipe.
6784 To select this sample recipe as the one built
6785 to provide the initramfs image,
6786 set <filename>INITRAMFS_IMAGE</filename> to
6787 "core-image-minimal-initramfs".
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006788 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006789 </para>
6790
6791 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006792 You can also find more information by referencing the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006793 <filename>meta-poky/conf/local.conf.sample.extended</filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006794 configuration file in the Source Directory,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006795 the
6796 <link linkend='ref-classes-image'><filename>image</filename></link>
6797 class, and the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006798 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006799 class to see how to use the
6800 <filename>INITRAMFS_IMAGE</filename> variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006801 </para>
6802
6803 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006804 If <filename>INITRAMFS_IMAGE</filename> is empty, which is
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006805 the default, then no initramfs image is built.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006806 </para>
6807
6808 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006809 For more information, you can also see the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006810 <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
6811 variable, which allows the generated image to be bundled
6812 inside the kernel image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006813 Additionally, for information on creating an initramfs
6814 image, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006815 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006816 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006817 </para>
6818 </glossdef>
6819 </glossentry>
6820
6821 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6822 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006823 INITRAMFS_IMAGE_BUNDLE[doc] = "Controls whether or not the image recipe specified by INITRAMFS_IMAGE is run through an extra pass (do_bundle_initramfs) during kernel compilation in order to build a single binary that contains both the kernel image and the initial RAM filesystem (initramfs)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006824 </info>
6825 <glossdef>
6826 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006827 Controls whether or not the image recipe specified by
6828 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006829 is run through an extra pass
6830 (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
6831 during kernel compilation in order to build a single binary
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006832 that contains both the kernel image and the initial RAM
6833 filesystem (initramfs) image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006834 This makes use of the
6835 <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
6836 kernel feature.
6837 <note>
6838 Using an extra compilation pass to bundle the initramfs
6839 avoids a circular dependency between the kernel recipe and
6840 the initramfs recipe should the initramfs include kernel
6841 modules.
6842 Should that be the case, the initramfs recipe depends on
6843 the kernel for the kernel modules, and the kernel depends
6844 on the initramfs recipe since the initramfs is bundled
6845 inside the kernel image.
6846 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006847 </para>
6848
6849 <para>
6850 The combined binary is deposited into the
6851 <filename>tmp/deploy</filename> directory, which is part
6852 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006853 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006854 </para>
6855
6856 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006857 Setting the variable to "1" in a configuration file causes the
6858 OpenEmbedded build system to generate a kernel image with the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006859 initramfs specified in <filename>INITRAMFS_IMAGE</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006860 bundled within:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006861 <literallayout class='monospaced'>
6862 INITRAMFS_IMAGE_BUNDLE = "1"
6863 </literallayout>
6864 By default, the
6865 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6866 class sets this variable to a null string as follows:
6867 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006868 INITRAMFS_IMAGE_BUNDLE ?= ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006869 </literallayout>
6870 <note>
6871 You must set the
6872 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6873 a configuration file.
6874 You cannot set the variable in a recipe file.
6875 </note>
6876 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006877 <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 -05006878 file for additional information.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006879 Also, for information on creating an initramfs, see the
6880 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006881 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006882 </para>
6883 </glossdef>
6884 </glossentry>
6885
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006886 <glossentry id='var-INITRAMFS_LINK_NAME'><glossterm>INITRAMFS_LINK_NAME</glossterm>
6887 <info>
6888 INITRAMFS_LINK_NAME[doc] = "The link name of the initial RAM filesystem image."
6889 </info>
6890 <glossdef>
6891 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006892 The link name of the initial RAM filesystem image.
6893 This variable is set in the
6894 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
6895 file as follows:
6896 <literallayout class='monospaced'>
6897 INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}"
6898 </literallayout>
6899 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
6900 variable, which is set in the same file, has the following
6901 value:
6902 <literallayout class='monospaced'>
6903 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
6904 </literallayout>
6905 </para>
6906
6907 <para>
6908 See the
6909 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
6910 variable for additional information.
6911 </para>
6912 </glossdef>
6913 </glossentry>
6914
6915 <glossentry id='var-INITRAMFS_NAME'><glossterm>INITRAMFS_NAME</glossterm>
6916 <info>
6917 INITRAMFS_NAME[doc] = "The base name of the initial RAM filesystem image."
6918 </info>
6919 <glossdef>
6920 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006921 The base name of the initial RAM filesystem image.
6922 This variable is set in the
6923 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
6924 file as follows:
6925 <literallayout class='monospaced'>
6926 INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
6927 </literallayout>
6928 The value of the
6929 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
6930 variable, which is set in the same file, has the following
6931 value:
6932 <literallayout class='monospaced'>
6933 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
6934 </literallayout>
6935 </para>
6936 </glossdef>
6937 </glossentry>
6938
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006939 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6940 <info>
6941 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6942 </info>
6943 <glossdef>
6944 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006945 Indicates list of filesystem images to concatenate and use
6946 as an initial RAM disk (<filename>initrd</filename>).
6947 </para>
6948
6949 <para>
6950 The <filename>INITRD</filename> variable is an optional
6951 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006952 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006953 class.
6954 </para>
6955 </glossdef>
6956 </glossentry>
6957
6958 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6959 <info>
6960 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."
6961 </info>
6962 <glossdef>
6963 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006964 When building a "live" bootable image (i.e. when
6965 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6966 contains "live"), <filename>INITRD_IMAGE</filename>
6967 specifies the image recipe that should be built
6968 to provide the initial RAM disk image.
6969 The default value is "core-image-minimal-initramfs".
6970 </para>
6971
6972 <para>
6973 See the
6974 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6975 class for more information.
6976 </para>
6977 </glossdef>
6978 </glossentry>
6979
6980 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6981 <info>
6982 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6983 </info>
6984 <glossdef>
6985 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006986 The filename of the initialization script as installed to
6987 <filename>${sysconfdir}/init.d</filename>.
6988 </para>
6989
6990 <para>
6991 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6992 The variable is mandatory.
6993 </para>
6994 </glossdef>
6995 </glossentry>
6996
6997 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
6998 <info>
6999 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."
7000 </info>
7001 <glossdef>
7002 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007003 A list of the packages that contain initscripts.
7004 If multiple packages are specified, you need to append the package name
7005 to the other <filename>INITSCRIPT_*</filename> as an override.
7006 </para>
7007
7008 <para>
7009 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
7010 The variable is optional and defaults to the
7011 <link linkend='var-PN'><filename>PN</filename></link> variable.
7012 </para>
7013 </glossdef>
7014 </glossentry>
7015
7016 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
7017 <info>
7018 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."
7019 </info>
7020 <glossdef>
7021 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007022 Specifies the options to pass to <filename>update-rc.d</filename>.
7023 Here is an example:
7024 <literallayout class='monospaced'>
7025 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
7026 </literallayout>
7027 </para>
7028
7029 <para>
7030 In this example, the script has a runlevel of 99,
7031 starts the script in initlevels 2 and 5, and
7032 stops the script in levels 0, 1 and 6.
7033 </para>
7034
7035 <para>
7036 The variable's default value is "defaults", which is
7037 set in the
7038 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
7039 class.
7040 </para>
7041
7042 <para>
7043 The value in
7044 <filename>INITSCRIPT_PARAMS</filename> is passed through
7045 to the <filename>update-rc.d</filename> command.
7046 For more information on valid parameters, please see the
7047 <filename>update-rc.d</filename> manual page at
7048 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
7049 </para>
7050 </glossdef>
7051 </glossentry>
7052
7053 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
7054 <info>
7055 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
7056 </info>
7057 <glossdef>
7058 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007059 Specifies the QA checks to skip for a specific package
7060 within a recipe.
7061 For example, to skip the check for symbolic link
7062 <filename>.so</filename> files in the main package of a
7063 recipe, add the following to the recipe.
7064 The package name override must be used, which in this
7065 example is <filename>${PN}</filename>:
7066 <literallayout class='monospaced'>
7067 INSANE_SKIP_${PN} += "dev-so"
7068 </literallayout>
7069 </para>
7070
7071 <para>
7072 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
7073 section for a list of the valid QA checks you can
7074 specify using this variable.
7075 </para>
7076 </glossdef>
7077 </glossentry>
7078
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007079 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
7080 <info>
7081 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
7082 </info>
7083 <glossdef>
7084 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007085 By default, the <filename>tzdata</filename> recipe packages
7086 an <filename>/etc/timezone</filename> file.
7087 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
7088 variable to "0" at the configuration level to disable this
7089 behavior.
7090 </para>
7091 </glossdef>
7092 </glossentry>
7093
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007094 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
7095 <info>
7096 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
7097 </info>
7098 <glossdef>
7099 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007100 When the IPK backend is in use and package management
7101 is enabled on the target, you can use this variable to
7102 set up <filename>opkg</filename> in the target image
7103 to point to package feeds on a nominated server.
7104 Once the feed is established, you can perform
7105 installations or upgrades using the package manager
7106 at runtime.
7107 </para>
7108 </glossdef>
7109 </glossentry>
7110
7111<!--
7112 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
7113 <glossdef>
7114 <para>
7115 An environment variable that defines the directory where
7116 post installation hooks are installed for the
7117 post install environment.
7118 This variable is fixed as follows:
7119 <literallayout class='monospaced'>
7120 ${WORKDIR}/intercept_scripts
7121 </literallayout>
7122 </para>
7123
7124 <para>
7125 After installation of a target's root filesystem,
7126 post installation scripts, which are essentially bash scripts,
7127 are all executed just a single time.
7128 Limiting execution of these scripts minimizes installation
7129 time that would be lengthened due to certain packages
7130 triggering redundant operations.
7131 For example, consider the installation of font packages
7132 as a common example.
7133 Without limiting the execution of post installation scripts,
7134 all font directories would be rescanned to create the
7135 cache after each individual font package was installed.
7136 </para>
7137
7138 <para>
7139 Do not edit the <filename>INTERCEPT_DIR</filename>
7140 variable.
7141 </para>
7142 </glossdef>
7143 </glossentry>
7144-->
7145
7146 </glossdiv>
7147
7148<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
7149<!-- </glossdiv>-->
7150
7151 <glossdiv id='var-glossary-k'><title>K</title>
7152
7153 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
7154 <info>
7155 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
7156 </info>
7157 <glossdef>
7158 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007159 Defines the kernel architecture used when assembling
7160 the configuration.
7161 Architectures supported for this release are:
7162 <literallayout class='monospaced'>
7163 powerpc
7164 i386
7165 x86_64
7166 arm
7167 qemu
7168 mips
7169 </literallayout>
7170 </para>
7171
7172 <para>
7173 You define the <filename>KARCH</filename> variable in the
7174 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7175 </para>
7176 </glossdef>
7177 </glossentry>
7178
7179 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
7180 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007181 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007182 </info>
7183 <glossdef>
7184 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007185 A regular expression used by the build process to explicitly
7186 identify the kernel branch that is validated, patched,
7187 and configured during a build.
7188 You must set this variable to ensure the exact kernel
7189 branch you want is being used by the build process.
7190 </para>
7191
7192 <para>
7193 Values for this variable are set in the kernel's recipe
7194 file and the kernel's append file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007195 For example, if you are using the
7196 <filename>linux-yocto_4.12</filename> kernel, the kernel
7197 recipe file is the
7198 <filename>meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007199 file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007200 <filename>KBRANCH</filename> is set as follows in that
7201 kernel recipe file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007202 <literallayout class='monospaced'>
7203 KBRANCH ?= "standard/base"
7204 </literallayout>
7205 </para>
7206
7207 <para>
7208 This variable is also used from the kernel's append file
7209 to identify the kernel branch specific to a particular
7210 machine or target hardware.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007211 Continuing with the previous kernel example, the kernel's
7212 append file (i.e.
7213 <filename>linux-yocto_4.12.bbappend</filename>) is located
7214 in the BSP layer for a given machine.
7215 For example, the append file for the Beaglebone,
7216 EdgeRouter, and generic versions of both 32 and 64-bit IA
7217 machines (<filename>meta-yocto-bsp</filename>) is named
7218 <filename>meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend</filename>.
7219 Here are the related statements from that append file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007220 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007221 KBRANCH_genericx86 = "standard/base"
7222 KBRANCH_genericx86-64 = "standard/base"
7223 KBRANCH_edgerouter = "standard/edgerouter"
7224 KBRANCH_beaglebone = "standard/beaglebone"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007225 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007226 The <filename>KBRANCH</filename> statements identify
7227 the kernel branch to use when building for each
7228 supported BSP.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007229 </para>
7230 </glossdef>
7231 </glossentry>
7232
7233 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
7234 <info>
7235 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
7236 </info>
7237 <glossdef>
7238 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007239 When used with the
7240 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
7241 class, specifies an "in-tree" kernel configuration file
7242 for use during a kernel build.
7243 </para>
7244
7245 <para>
7246 Typically, when using a <filename>defconfig</filename> to
7247 configure a kernel during a build, you place the
7248 file in your layer in the same manner as you would
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007249 place patch files and configuration fragment files (i.e.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007250 "out-of-tree").
7251 However, if you want to use a <filename>defconfig</filename>
7252 file that is part of the kernel tree (i.e. "in-tree"),
7253 you can use the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007254 <filename>KBUILD_DEFCONFIG</filename> variable and append
7255 the
7256 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
7257 variable to point to the <filename>defconfig</filename>
7258 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007259 </para>
7260
7261 <para>
7262 To use the variable, set it in the append file for your
7263 kernel recipe using the following form:
7264 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007265 KBUILD_DEFCONFIG_<replaceable>KMACHINE</replaceable> ?= <replaceable>defconfig_file</replaceable>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007266 </literallayout>
7267 Here is an example from a "raspberrypi2"
7268 <filename>KMACHINE</filename> build that uses a
7269 <filename>defconfig</filename> file named
7270 "bcm2709_defconfig":
7271 <literallayout class='monospaced'>
7272 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
7273 </literallayout>
7274 As an alternative, you can use the following within your
7275 append file:
7276 <literallayout class='monospaced'>
7277 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
7278 </literallayout>
7279 For more information on how to use the
7280 <filename>KBUILD_DEFCONFIG</filename> variable, see the
7281 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-an-in-tree-defconfig-file'>Using an "In-Tree" <filename>defconfig</filename> File</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04007282 section in the Yocto Project Linux Kernel Development
7283 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007284 </para>
7285 </glossdef>
7286 </glossentry>
7287
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007288 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
7289 <info>
7290 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
7291 </info>
7292 <glossdef>
7293 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007294 Specifies an alternate kernel image type for creation in
7295 addition to the kernel image type specified using the
7296 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
7297 variable.
7298 </para>
7299 </glossdef>
7300 </glossentry>
7301
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007302 <glossentry id='var-KERNEL_ARTIFACT_NAME'><glossterm>KERNEL_ARTIFACT_NAME</glossterm>
7303 <info>
7304 KERNEL_ARTIFACT_NAME[doc] = "Specifies the name of all of the build artifacts."
7305 </info>
7306 <glossdef>
7307 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007308 Specifies the name of all of the build artifacts.
7309 You can change the name of the artifacts by changing the
7310 <filename>KERNEL_ARTIFACT_NAME</filename> variable.
7311 </para>
7312
7313 <para>
7314 The value of <filename>KERNEL_ARTIFACT_NAME</filename>,
7315 which is set in the
7316 <filename> meta/classes/kernel-artifact-names.bbclass</filename>
7317 file, has the following default value:
7318 <literallayout class='monospaced'>
7319 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7320 </literallayout>
7321 </para>
7322
7323 <para>
7324 See the
7325 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7326 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7327 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7328 and
7329 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7330 variables for additional information.
7331 <note>
7332 The <filename>IMAGE_VERSION_SUFFIX</filename> variable
7333 is set to
7334 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>.
7335 </note>
7336 </para>
7337 </glossdef>
7338 </glossentry>
7339
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007340 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
7341 <info>
7342 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
7343 </info>
7344 <glossdef>
7345 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007346 A list of classes defining kernel image types that the
7347 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7348 class should inherit.
7349 You typically append this variable to enable extended image
7350 types.
7351 An example is the "kernel-fitimage", which enables
7352 fitImage support and resides in
7353 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
7354 You can register custom kernel image types with the
7355 <filename>kernel</filename> class using this variable.
7356 </para>
7357 </glossdef>
7358 </glossentry>
7359
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007360 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
7361 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007362 KERNEL_DEVICETREE[doc] = "Specifies the name of the generated Linux kernel device tree (i.e. the .dtb) file."
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007363 </info>
7364 <glossdef>
7365 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007366 Specifies the name of the generated Linux kernel device tree
7367 (i.e. the <filename>.dtb</filename>) file.
7368 <note>
7369 Legacy support exists for specifying the full path
7370 to the device tree.
7371 However, providing just the <filename>.dtb</filename>
7372 file is preferred.
7373 </note>
Brad Bishop79641f22019-09-10 07:20:22 -04007374 In order to use this variable, the
7375 <link linkend='ref-classes-kernel-devicetree'><filename>kernel-devicetree</filename></link>
7376 class must be inherited.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007377 </para>
7378 </glossdef>
7379 </glossentry>
7380
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007381 <glossentry id='var-KERNEL_DTB_LINK_NAME'><glossterm>KERNEL_DTB_LINK_NAME</glossterm>
7382 <info>
7383 KERNEL_DTB_LINK_NAME[doc] = "The link name of the kernel device tree binary (DTB)."
7384 </info>
7385 <glossdef>
7386 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007387 The link name of the kernel device tree binary (DTB).
7388 This variable is set in the
7389 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7390 file as follows:
7391 <literallayout class='monospaced'>
7392 KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7393 </literallayout>
7394 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7395 variable, which is set in the same file, has the following
7396 value:
7397 <literallayout class='monospaced'>
7398 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7399 </literallayout>
7400 </para>
7401
7402 <para>
7403 See the
7404 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7405 variable for additional information.
7406 </para>
7407 </glossdef>
7408 </glossentry>
7409
7410 <glossentry id='var-KERNEL_DTB_NAME'><glossterm>KERNEL_DTB_NAME</glossterm>
7411 <info>
7412 KERNEL_DTB_NAME[doc] = "The base name of the kernel device tree binary (DTB)."
7413 </info>
7414 <glossdef>
7415 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007416 The base name of the kernel device tree binary (DTB).
7417 This variable is set in the
7418 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7419 file as follows:
7420 <literallayout class='monospaced'>
7421 KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7422 </literallayout>
7423 The value of the
7424 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7425 variable, which is set in the same file, has the following
7426 value:
7427 <literallayout class='monospaced'>
7428 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7429 </literallayout>
7430 </para>
7431 </glossdef>
7432 </glossentry>
7433
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007434 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
7435 <info>
7436 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
7437 </info>
7438 <glossdef>
7439 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007440 Specifies additional <filename>make</filename>
7441 command-line arguments the OpenEmbedded build system
7442 passes on when compiling the kernel.
7443 </para>
7444 </glossdef>
7445 </glossentry>
7446
7447 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
7448 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007449 KERNEL_FEATURES[doc] = "Includes additional kernel metadata. The metadata you add through this variable includes config fragments and features descriptions."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007450 </info>
7451 <glossdef>
7452 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007453 Includes additional kernel metadata.
7454 In the OpenEmbedded build system, the default Board Support
7455 Packages (BSPs)
7456 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007457 is provided through
7458 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007459 and
7460 <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link>
7461 variables.
7462 You can use the <filename>KERNEL_FEATURES</filename>
7463 variable from within the kernel recipe or kernel append
7464 file to further add metadata for all BSPs or specific
7465 BSPs.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007466 </para>
7467
7468 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007469 The metadata you add through this variable includes config
7470 fragments and features descriptions,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007471 which usually includes patches as well as config fragments.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007472 You typically override the
7473 <filename>KERNEL_FEATURES</filename> variable for a
7474 specific machine.
7475 In this way, you can provide validated, but optional,
7476 sets of kernel configurations and features.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007477 </para>
7478
7479 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007480 For example, the following example from the
7481 <filename>linux-yocto-rt_4.12</filename> kernel recipe
7482 adds "netfilter" and "taskstats" features to all BSPs
7483 as well as "virtio" configurations to all QEMU machines.
7484 The last two statements add specific configurations to
7485 targeted machine types:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007486 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007487 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
7488 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007489 KERNEL_FEATURES_append_qemuall = " cfg/virtio.scc"
7490 KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc cfg/paravirt_kvm.scc"
7491 KERNEL_FEATURES_append_qemux86-64 = " cfg/sound.scc" </literallayout></para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007492 </glossdef>
7493 </glossentry>
7494
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007495 <glossentry id='var-KERNEL_FIT_LINK_NAME'><glossterm>KERNEL_FIT_LINK_NAME</glossterm>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007496 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007497 KERNEL_FIT_LINK_NAME[doc] = "The link name of the kernel flattened image tree (FIT) image."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007498 </info>
7499 <glossdef>
7500 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007501 The link name of the kernel flattened image tree (FIT) image.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007502 This variable is set in the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007503 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7504 file as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007505 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007506 KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7507 </literallayout>
7508 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7509 variable, which is set in the same file, has the following
7510 value:
7511 <literallayout class='monospaced'>
7512 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007513 </literallayout>
7514 </para>
7515
7516 <para>
7517 See the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007518 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7519 variable for additional information.
7520 </para>
7521 </glossdef>
7522 </glossentry>
7523
7524 <glossentry id='var-KERNEL_FIT_NAME'><glossterm>KERNEL_FIT_NAME</glossterm>
7525 <info>
7526 KERNEL_FIT_NAME[doc] = "The base name of the kernel flattened image tree (FIT) image."
7527 </info>
7528 <glossdef>
7529 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007530 The base name of the kernel flattened image tree (FIT) image.
7531 This variable is set in the
7532 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7533 file as follows:
7534 <literallayout class='monospaced'>
7535 KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7536 </literallayout>
7537 The value of the
7538 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7539 variable, which is set in the same file, has the following
7540 value:
7541 <literallayout class='monospaced'>
7542 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7543 </literallayout>
7544 </para>
7545 </glossdef>
7546 </glossentry>
7547
7548 <glossentry id='var-KERNEL_IMAGE_LINK_NAME'><glossterm>KERNEL_IMAGE_LINK_NAME</glossterm>
7549 <info>
7550 KERNEL_IMAGE_LINK_NAME[doc] = "The link name for the kernel image."
7551 </info>
7552 <glossdef>
7553 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007554 The link name for the kernel image.
7555 This variable is set in the
7556 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7557 file as follows:
7558 <literallayout class='monospaced'>
7559 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7560 </literallayout>
7561 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7562 variable, which is set in the same file, has the following
7563 value:
7564 <literallayout class='monospaced'>
7565 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7566 </literallayout>
7567 </para>
7568
7569 <para>
7570 See the
7571 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7572 variable for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007573 </para>
7574 </glossdef>
7575 </glossentry>
7576
7577 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
7578 <info>
7579 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
7580 </info>
7581 <glossdef>
7582 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007583 Specifies the maximum size of the kernel image file in
7584 kilobytes.
7585 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
7586 the size of the kernel image file is checked against
7587 the set value during the
7588 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
7589 task.
7590 The task fails if the kernel image file is larger than
7591 the setting.
7592 </para>
7593
7594 <para>
7595 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
7596 target devices that have a limited amount of space in
7597 which the kernel image must be stored.
7598 </para>
7599
7600 <para>
7601 By default, this variable is not set, which means the
7602 size of the kernel image is not checked.
7603 </para>
7604 </glossdef>
7605 </glossentry>
7606
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007607 <glossentry id='var-KERNEL_IMAGE_NAME'><glossterm>KERNEL_IMAGE_NAME</glossterm>
7608 <info>
7609 KERNEL_IMAGE_NAME[doc] = "The base name of the kernel image."
7610 </info>
7611 <glossdef>
7612 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007613 The base name of the kernel image.
7614 This variable is set in the
7615 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7616 file as follows:
7617 <literallayout class='monospaced'>
7618 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7619 </literallayout>
7620 The value of the
7621 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7622 variable, which is set in the same file, has the following
7623 value:
7624 <literallayout class='monospaced'>
7625 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7626 </literallayout>
7627 </para>
7628 </glossdef>
7629 </glossentry>
7630
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007631 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
7632 <info>
7633 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
7634 </info>
7635 <glossdef>
7636 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007637 The type of kernel to build for a device, usually set by the
7638 machine configuration files and defaults to "zImage".
7639 This variable is used
7640 when building the kernel and is passed to <filename>make</filename> as the target to
7641 build.
7642 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007643
7644 <para>
7645 If you want to build an alternate kernel image type, use the
7646 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
7647 variable.
7648 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007649 </glossdef>
7650 </glossentry>
7651
7652 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
7653 <info>
7654 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
7655 </info>
7656 <glossdef>
7657 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007658 Lists kernel modules that need to be auto-loaded during
7659 boot.
7660 <note>
7661 This variable replaces the deprecated
7662 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
7663 variable.
7664 </note>
7665 </para>
7666
7667 <para>
7668 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
7669 variable anywhere that it can be
7670 recognized by the kernel recipe or by an out-of-tree kernel
7671 module recipe (e.g. a machine configuration file, a
7672 distribution configuration file, an append file for the
7673 recipe, or the recipe itself).
7674 </para>
7675
7676 <para>
7677 Specify it as follows:
7678 <literallayout class='monospaced'>
7679 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
7680 </literallayout>
7681 </para>
7682
7683 <para>
7684 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
7685 the OpenEmbedded build system to populate the
7686 <filename>/etc/modules-load.d/modname.conf</filename>
7687 file with the list of modules to be auto-loaded on boot.
7688 The modules appear one-per-line in the file.
7689 Here is an example of the most common use case:
7690 <literallayout class='monospaced'>
7691 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
7692 </literallayout>
7693 </para>
7694
7695 <para>
7696 For information on how to populate the
7697 <filename>modname.conf</filename> file with
7698 <filename>modprobe.d</filename> syntax lines, see the
7699 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
7700 variable.
7701 </para>
7702 </glossdef>
7703 </glossentry>
7704
7705 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
7706 <info>
7707 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."
7708 </info>
7709 <glossdef>
7710 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007711 Provides a list of modules for which the OpenEmbedded
7712 build system expects to find
7713 <filename>module_conf_</filename><replaceable>modname</replaceable>
7714 values that specify configuration for each of the modules.
7715 For information on how to provide those module
7716 configurations, see the
7717 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
7718 variable.
7719 </para>
7720 </glossdef>
7721 </glossentry>
7722
7723 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
7724 <info>
7725 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)."
7726 </info>
7727 <glossdef>
7728 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007729 The location of the kernel sources.
7730 This variable is set to the value of the
7731 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7732 within the
7733 <link linkend='ref-classes-module'><filename>module</filename></link>
7734 class.
7735 For information on how this variable is used, see the
7736 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04007737 section in the Yocto Project Linux Kernel Development
7738 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007739 </para>
7740
7741 <para>
7742 To help maximize compatibility with out-of-tree drivers
7743 used to build modules, the OpenEmbedded build system also
7744 recognizes and uses the
7745 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
7746 variable, which is identical to the
7747 <filename>KERNEL_PATH</filename> variable.
7748 Both variables are common variables used by external
7749 Makefiles to point to the kernel source directory.
7750 </para>
7751 </glossdef>
7752 </glossentry>
7753
7754 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
7755 <info>
7756 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)."
7757 </info>
7758 <glossdef>
7759 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007760 The location of the kernel sources.
7761 This variable is set to the value of the
7762 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7763 within the
7764 <link linkend='ref-classes-module'><filename>module</filename></link>
7765 class.
7766 For information on how this variable is used, see the
7767 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04007768 section in the Yocto Project Linux Kernel Development
7769 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007770 </para>
7771
7772 <para>
7773 To help maximize compatibility with out-of-tree drivers
7774 used to build modules, the OpenEmbedded build system also
7775 recognizes and uses the
7776 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
7777 variable, which is identical to the
7778 <filename>KERNEL_SRC</filename> variable.
7779 Both variables are common variables used by external
7780 Makefiles to point to the kernel source directory.
7781 </para>
7782 </glossdef>
7783 </glossentry>
7784
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007785 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
7786 <info>
7787 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
7788 </info>
7789 <glossdef>
7790 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007791 Specifies the version of the kernel as extracted from
7792 <filename>version.h</filename> or
7793 <filename>utsrelease.h</filename> within the kernel sources.
7794 Effects of setting this variable do not take affect until
7795 the kernel has been configured.
7796 Consequently, attempting to refer to this variable in
7797 contexts prior to configuration will not work.
7798 </para>
7799 </glossdef>
7800 </glossentry>
7801
7802 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
7803 <info>
7804 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
7805 </info>
7806 <glossdef>
7807 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007808 Specifies whether the data referenced through
7809 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
7810 is needed or not.
7811 The <filename>KERNELDEPMODDEPEND</filename> does not
7812 control whether or not that data exists,
7813 but simply whether or not it is used.
7814 If you do not need to use the data, set the
7815 <filename>KERNELDEPMODDEPEND</filename> variable in your
7816 <filename>initramfs</filename> recipe.
7817 Setting the variable there when the data is not needed
7818 avoids a potential dependency loop.
7819 </para>
7820 </glossdef>
7821 </glossentry>
7822
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007823 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
7824 <info>
7825 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."
7826 </info>
7827 <glossdef>
7828 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007829 Provides a short description of a configuration fragment.
7830 You use this variable in the <filename>.scc</filename>
7831 file that describes a configuration fragment file.
7832 Here is the variable used in a file named
7833 <filename>smp.scc</filename> to describe SMP being
7834 enabled:
7835 <literallayout class='monospaced'>
7836 define KFEATURE_DESCRIPTION "Enable SMP"
7837 </literallayout>
7838 </para>
7839 </glossdef>
7840 </glossentry>
7841
7842 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
7843 <info>
7844 KMACHINE[doc] = "The machine as known by the kernel."
7845 </info>
7846 <glossdef>
7847 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007848 The machine as known by the kernel.
7849 Sometimes the machine name used by the kernel does not
7850 match the machine name used by the OpenEmbedded build
7851 system.
7852 For example, the machine name that the OpenEmbedded build
7853 system understands as
7854 <filename>core2-32-intel-common</filename> goes by a
7855 different name in the Linux Yocto kernel.
7856 The kernel understands that machine as
7857 <filename>intel-core2-32</filename>.
7858 For cases like these, the <filename>KMACHINE</filename>
7859 variable maps the kernel machine name to the OpenEmbedded
7860 build system machine name.
7861 </para>
7862
7863 <para>
7864 These mappings between different names occur in the
7865 Yocto Linux Kernel's <filename>meta</filename> branch.
7866 As an example take a look in the
7867 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
7868 file:
7869 <literallayout class='monospaced'>
7870 LINUX_VERSION_core2-32-intel-common = "3.19.0"
7871 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
7872 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
7873 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
7874 KMACHINE_core2-32-intel-common = "intel-core2-32"
7875 KBRANCH_core2-32-intel-common = "standard/base"
7876 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
7877 </literallayout>
7878 The <filename>KMACHINE</filename> statement says that
7879 the kernel understands the machine name as
7880 "intel-core2-32".
7881 However, the OpenEmbedded build system understands the
7882 machine as "core2-32-intel-common".
7883 </para>
7884
7885 </glossdef>
7886 </glossentry>
7887
7888 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
7889 <info>
7890 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7891 </info>
7892 <glossdef>
7893 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007894 Defines the kernel type to be used in assembling the
7895 configuration.
7896 The linux-yocto recipes define "standard", "tiny",
7897 and "preempt-rt" kernel types.
7898 See the
7899 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7900 section in the Yocto Project Linux Kernel Development
7901 Manual for more information on kernel types.
7902 </para>
7903
7904 <para>
7905 You define the <filename>KTYPE</filename> variable in the
7906 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7907 The value you use must match the value used for the
7908 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
7909 value used by the kernel recipe.
7910 </para>
7911 </glossdef>
7912 </glossentry>
7913 </glossdiv>
7914
7915 <glossdiv id='var-glossary-l'><title>L</title>
7916
7917 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
7918 <info>
7919 LABELS[doc] = "Provides a list of targets for automatic configuration."
7920 </info>
7921 <glossdef>
7922 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007923 Provides a list of targets for automatic configuration.
7924 </para>
7925
7926 <para>
7927 See the
7928 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
7929 class for more information on how this variable is used.
7930 </para>
7931 </glossdef>
7932 </glossentry>
7933
7934 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
7935 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007936 LAYERDEPENDS[doc] = "Lists the layers, separated by spaces, on 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007937 </info>
7938 <glossdef>
7939 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007940 Lists the layers, separated by spaces, on which this
7941 recipe depends.
7942 Optionally, you can specify a specific layer version for a
7943 dependency by adding it to the end of the layer name.
7944 Here is an example:
7945 <literallayout class='monospaced'>
7946 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
7947 </literallayout>
7948 In this previous example, version 3 of "anotherlayer"
7949 is compared against
7950 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>.
7951 </para>
7952
7953 <para>
7954 An error is produced if any dependency is missing or
7955 the version numbers (if specified) do not match exactly.
7956 This variable is used in the
7957 <filename>conf/layer.conf</filename> file and must be
7958 suffixed with the name of the specific layer (e.g.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007959 <filename>LAYERDEPENDS_mylayer</filename>).
7960 </para>
7961 </glossdef>
7962 </glossentry>
7963
7964 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
7965 <info>
7966 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
7967 </info>
7968 <glossdef>
7969 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007970 When used inside the <filename>layer.conf</filename> configuration
7971 file, this variable provides the path of the current layer.
7972 This variable is not available outside of <filename>layer.conf</filename>
7973 and references are expanded immediately when parsing of the file completes.
7974 </para>
7975 </glossdef>
7976 </glossentry>
7977
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007978 <glossentry id='var-LAYERRECOMMENDS'><glossterm>LAYERRECOMMENDS</glossterm>
7979 <info>
7980 LAYERRECOMMENDS[doc] = "Lists the layers, separated by spaces, recommended for use with this layer."
7981 </info>
7982 <glossdef>
7983 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007984 Lists the layers, separated by spaces, recommended for
7985 use with this layer.
7986 </para>
7987
7988 <para>
7989 Optionally, you can specify a specific layer version for a
7990 recommendation by adding the version to the end of the
7991 layer name.
7992 Here is an example:
7993 <literallayout class='monospaced'>
7994 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
7995 </literallayout>
7996 In this previous example, version 3 of "anotherlayer" is
7997 compared against
7998 <filename>LAYERVERSION_anotherlayer</filename>.
7999 </para>
8000
8001 <para>
8002 This variable is used in the
8003 <filename>conf/layer.conf</filename> file and must be
8004 suffixed with the name of the specific layer (e.g.
8005 <filename>LAYERRECOMMENDS_mylayer</filename>).
8006 </para>
8007 </glossdef>
8008 </glossentry>
8009
Brad Bishop316dfdd2018-06-25 12:45:53 -04008010 <glossentry id='var-LAYERSERIES_COMPAT'><glossterm>LAYERSERIES_COMPAT</glossterm>
8011 <info>
8012 LAYERSERIES_COMPAT[doc] = "Lists the OpenEmbedded-Core versions for which a layer is compatible."
8013 </info>
8014 <glossdef>
8015 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04008016 Lists the versions of the
8017 <link linkend='oe-core'>OpenEmbedded-Core</link> for which
8018 a layer is compatible.
8019 Using the <filename>LAYERSERIES_COMPAT</filename> variable
8020 allows the layer maintainer to indicate which combinations
8021 of the layer and OE-Core can be expected to work.
8022 The variable gives the system a way to detect when a layer
8023 has not been tested with new releases of OE-Core (e.g.
8024 the layer is not maintained).
8025 </para>
8026
8027 <para>
8028 To specify the OE-Core versions for which a layer is
8029 compatible, use this variable in your layer's
8030 <filename>conf/layer.conf</filename> configuration file.
8031 For the list, use the Yocto Project
8032 <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Release Name</ulink>
8033 (e.g. &DISTRO_NAME_NO_CAP;).
8034 To specify multiple OE-Core versions for the layer,
8035 use a space-separated list:
8036 <literallayout class='monospaced'>
8037 LAYERSERIES_COMPAT_<replaceable>layer_root_name</replaceable> = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
8038 </literallayout>
8039 <note>
8040 Setting <filename>LAYERSERIES_COMPAT</filename> is
8041 required by the Yocto Project Compatible version 2
8042 standard.
8043 The OpenEmbedded build system produces a warning if
8044 the variable is not set for any given layer.
8045 </note>
8046 </para>
8047
8048 <para>
8049 See the
8050 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-layer'>Creating Your Own Layer</ulink>"
8051 section in the Yocto Project Development Tasks Manual.
8052 </para>
8053 </glossdef>
8054 </glossentry>
8055
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008056 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
8057 <info>
8058 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."
8059 </info>
8060 <glossdef>
8061 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008062 Optionally specifies the version of a layer as a single number.
8063 You can use this within
8064 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
8065 for another layer in order to depend on a specific version
8066 of the layer.
8067 This variable is used in the <filename>conf/layer.conf</filename> file
8068 and must be suffixed with the name of the specific layer (e.g.
8069 <filename>LAYERVERSION_mylayer</filename>).
8070 </para>
8071 </glossdef>
8072 </glossentry>
8073
8074 <glossentry id='var-LD'><glossterm>LD</glossterm>
8075 <info>
8076 LD[doc] = "Minimal command and arguments to run the linker."
8077 </info>
8078 <glossdef>
8079 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008080 The minimal command and arguments used to run the
8081 linker.
8082 </para>
8083 </glossdef>
8084 </glossentry>
8085
8086 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
8087 <info>
8088 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
8089 </info>
8090 <glossdef>
8091 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008092 Specifies the flags to pass to the linker.
8093 This variable is exported to an environment
8094 variable and thus made visible to the software being
8095 built during the compilation step.
8096 </para>
8097
8098 <para>
8099 Default initialization for <filename>LDFLAGS</filename>
8100 varies depending on what is being built:
8101 <itemizedlist>
8102 <listitem><para>
8103 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
8104 when building for the target
8105 </para></listitem>
8106 <listitem><para>
8107 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
8108 when building for the build host (i.e.
8109 <filename>-native</filename>)
8110 </para></listitem>
8111 <listitem><para>
8112 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
8113 when building for an SDK (i.e.
8114 <filename>nativesdk-</filename>)
8115 </para></listitem>
8116 </itemizedlist>
8117 </para>
8118 </glossdef>
8119 </glossentry>
8120
8121 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
8122 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008123 LEAD_SONAME[doc] = "Specifies the lead (or primary) compiled library file (i.e. .so) that the debian class applies its naming policy to given a recipe that packages multiple libraries."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008124 </info>
8125 <glossdef>
8126 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008127 Specifies the lead (or primary) compiled library file
Brad Bishop316dfdd2018-06-25 12:45:53 -04008128 (i.e. <filename>.so</filename>) that the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008129 <link linkend='ref-classes-debian'><filename>debian</filename></link>
8130 class applies its naming policy to given a recipe that
8131 packages multiple libraries.
8132 </para>
8133
8134 <para>
8135 This variable works in conjunction with the
8136 <filename>debian</filename> class.
8137 </para>
8138 </glossdef>
8139 </glossentry>
8140
8141 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
8142 <info>
8143 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
8144 </info>
8145 <glossdef>
8146 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008147 Checksums of the license text in the recipe source code.
8148 </para>
8149
8150 <para>
8151 This variable tracks changes in license text of the source
8152 code files.
8153 If the license text is changed, it will trigger a build
8154 failure, which gives the developer an opportunity to review any
8155 license change.
8156 </para>
8157
8158 <para>
8159 This variable must be defined for all recipes (unless
8160 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8161 is set to "CLOSED").</para>
8162 <para>For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008163 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Tracking License Changes</ulink>"
8164 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008165 </para>
8166 </glossdef>
8167 </glossentry>
8168
8169 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
8170 <info>
8171 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
8172 </info>
8173 <glossdef>
8174 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008175 The list of source licenses for the recipe.
8176 Follow these rules:
8177 <itemizedlist>
8178 <listitem><para>Do not use spaces within individual
8179 license names.</para></listitem>
8180 <listitem><para>Separate license names using
8181 | (pipe) when there is a choice between licenses.
8182 </para></listitem>
8183 <listitem><para>Separate license names using
8184 &amp; (ampersand) when multiple licenses exist
8185 that cover different parts of the source.
8186 </para></listitem>
8187 <listitem><para>You can use spaces between license
8188 names.</para></listitem>
8189 <listitem><para>For standard licenses, use the names
8190 of the files in
8191 <filename>meta/files/common-licenses/</filename>
8192 or the
8193 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
8194 flag names defined in
8195 <filename>meta/conf/licenses.conf</filename>.
8196 </para></listitem>
8197 </itemizedlist>
8198 </para>
8199
8200 <para>
8201 Here are some examples:
8202 <literallayout class='monospaced'>
8203 LICENSE = "LGPLv2.1 | GPLv3"
8204 LICENSE = "MPL-1 &amp; LGPLv2.1"
8205 LICENSE = "GPLv2+"
8206 </literallayout>
8207 The first example is from the recipes for Qt, which the user
8208 may choose to distribute under either the LGPL version
8209 2.1 or GPL version 3.
8210 The second example is from Cairo where two licenses cover
8211 different parts of the source code.
8212 The final example is from <filename>sysstat</filename>,
8213 which presents a single license.
8214 </para>
8215
8216 <para>
8217 You can also specify licenses on a per-package basis to
8218 handle situations where components of the output have
8219 different licenses.
8220 For example, a piece of software whose code is
8221 licensed under GPLv2 but has accompanying documentation
8222 licensed under the GNU Free Documentation License 1.2 could
8223 be specified as follows:
8224 <literallayout class='monospaced'>
8225 LICENSE = "GFDL-1.2 &amp; GPLv2"
8226 LICENSE_${PN} = "GPLv2"
8227 LICENSE_${PN}-doc = "GFDL-1.2"
8228 </literallayout>
8229 </para>
8230 </glossdef>
8231 </glossentry>
8232
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008233 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
8234 <info>
8235 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
8236 </info>
8237 <glossdef>
8238 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008239 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
8240 to "1" causes the OpenEmbedded build system to create
8241 an extra package (i.e.
8242 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
8243 for each recipe and to add those packages to the
8244 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
8245 </para>
8246
8247 <para>
8248 The <filename>${PN}-lic</filename> package installs a
8249 directory in <filename>/usr/share/licenses</filename>
8250 named <filename>${PN}</filename>, which is the recipe's
8251 base name, and installs files in that directory that
8252 contain license and copyright information (i.e. copies of
8253 the appropriate license files from
8254 <filename>meta/common-licenses</filename> that match the
8255 licenses specified in the
8256 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8257 variable of the recipe metadata and copies of files marked
8258 in
8259 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
8260 as containing license text).
8261 </para>
8262
8263 <para>
8264 For related information on providing license text, see the
8265 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
8266 variable, the
8267 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
8268 variable, and the
8269 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008270 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008271 </para>
8272 </glossdef>
8273 </glossentry>
8274
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008275 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
8276 <info>
8277 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."
8278 </info>
8279 <glossdef>
8280 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008281 Specifies additional flags for a recipe you must
8282 whitelist through
8283 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
8284 in order to allow the recipe to be built.
8285 When providing multiple flags, separate them with
8286 spaces.
8287 </para>
8288
8289 <para>
8290 This value is independent of
8291 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8292 and is typically used to mark recipes that might
8293 require additional licenses in order to be used in a
8294 commercial product.
8295 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008296 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8297 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008298 </para>
8299 </glossdef>
8300 </glossentry>
8301
8302 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
8303 <info>
8304 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
8305 </info>
8306 <glossdef>
8307 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008308 Lists license flags that when specified in
8309 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
8310 within a recipe should not prevent that recipe from being
8311 built.
8312 This practice is otherwise known as "whitelisting"
8313 license flags.
8314 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008315 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8316 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008317 </para>
8318 </glossdef>
8319 </glossentry>
8320
8321 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
8322 <info>
8323 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
8324 </info>
8325 <glossdef>
8326 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008327 Path to additional licenses used during the build.
8328 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
8329 to define the directory that holds common license text used during the build.
8330 The <filename>LICENSE_PATH</filename> variable allows you to extend that
8331 location to other areas that have additional licenses:
8332 <literallayout class='monospaced'>
8333 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
8334 </literallayout>
8335 </para>
8336 </glossdef>
8337 </glossentry>
8338
8339 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
8340 <info>
8341 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8342 </info>
8343 <glossdef>
8344 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008345 Defines the kernel type to be used in assembling the
8346 configuration.
8347 The linux-yocto recipes define "standard", "tiny", and
8348 "preempt-rt" kernel types.
8349 See the
8350 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8351 section in the Yocto Project Linux Kernel Development
8352 Manual for more information on kernel types.
8353 </para>
8354
8355 <para>
8356 If you do not specify a
8357 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
8358 "standard".
8359 Together with
8360 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
8361 the <filename>LINUX_KERNEL_TYPE</filename> variable
8362 defines the search
8363 arguments used by the kernel tools to find the appropriate
8364 description within the kernel
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008365 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008366 with which to build out the sources and configuration.
8367 </para>
8368 </glossdef>
8369 </glossentry>
8370
8371 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
8372 <info>
8373 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."
8374 </info>
8375 <glossdef>
8376 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008377 The Linux version from <filename>kernel.org</filename>
8378 on which the Linux kernel image being built using the
8379 OpenEmbedded build system is based.
8380 You define this variable in the kernel recipe.
8381 For example, the <filename>linux-yocto-3.4.bb</filename>
8382 kernel recipe found in
8383 <filename>meta/recipes-kernel/linux</filename>
8384 defines the variables as follows:
8385 <literallayout class='monospaced'>
8386 LINUX_VERSION ?= "3.4.24"
8387 </literallayout>
8388 </para>
8389
8390 <para>
8391 The <filename>LINUX_VERSION</filename> variable is used to
8392 define <link linkend='var-PV'><filename>PV</filename></link>
8393 for the recipe:
8394 <literallayout class='monospaced'>
8395 PV = "${LINUX_VERSION}+git${SRCPV}"
8396 </literallayout>
8397 </para>
8398 </glossdef>
8399 </glossentry>
8400
8401 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
8402 <info>
8403 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."
8404 </info>
8405 <glossdef>
8406 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008407 A string extension compiled into the version
8408 string of the Linux kernel built with the OpenEmbedded
8409 build system.
8410 You define this variable in the kernel recipe.
8411 For example, the linux-yocto kernel recipes all define
8412 the variable as follows:
8413 <literallayout class='monospaced'>
8414 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
8415 </literallayout>
8416 </para>
8417
8418 <para>
8419 Defining this variable essentially sets the
8420 Linux kernel configuration item
8421 <filename>CONFIG_LOCALVERSION</filename>, which is visible
8422 through the <filename>uname</filename> command.
8423 Here is an example that shows the extension assuming it
8424 was set as previously shown:
8425 <literallayout class='monospaced'>
8426 $ uname -r
8427 3.7.0-rc8-custom
8428 </literallayout>
8429 </para>
8430 </glossdef>
8431 </glossentry>
8432
8433 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
8434 <info>
8435 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
8436 </info>
8437 <glossdef>
8438 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008439 Specifies the directory to which the OpenEmbedded build
8440 system writes overall log files.
8441 The default directory is <filename>${TMPDIR}/log</filename>.
8442 </para>
8443
8444 <para>
8445 For the directory containing logs specific to each task,
8446 see the <link linkend='var-T'><filename>T</filename></link>
8447 variable.
8448 </para>
8449 </glossdef>
8450 </glossentry>
8451
8452 </glossdiv>
8453
8454 <glossdiv id='var-glossary-m'><title>M</title>
8455
8456 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
8457 <info>
8458 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."
8459 </info>
8460 <glossdef>
8461 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008462 Specifies the target device for which the image is built.
8463 You define <filename>MACHINE</filename> in the
8464 <filename>local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008465 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008466 By default, <filename>MACHINE</filename> is set to
8467 "qemux86", which is an x86-based architecture machine to
8468 be emulated using QEMU:
8469 <literallayout class='monospaced'>
8470 MACHINE ?= "qemux86"
8471 </literallayout>
8472 </para>
8473
8474 <para>
8475 The variable corresponds to a machine configuration file of the
8476 same name, through which machine-specific configurations are set.
8477 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
8478 exists the corresponding <filename>qemux86.conf</filename> machine
8479 configuration file, which can be found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008480 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008481 in <filename>meta/conf/machine</filename>.
8482 </para>
8483
8484 <para>
8485 The list of machines supported by the Yocto Project as
8486 shipped include the following:
8487 <literallayout class='monospaced'>
8488 MACHINE ?= "qemuarm"
8489 MACHINE ?= "qemuarm64"
8490 MACHINE ?= "qemumips"
8491 MACHINE ?= "qemumips64"
8492 MACHINE ?= "qemuppc"
8493 MACHINE ?= "qemux86"
8494 MACHINE ?= "qemux86-64"
8495 MACHINE ?= "genericx86"
8496 MACHINE ?= "genericx86-64"
8497 MACHINE ?= "beaglebone"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008498 MACHINE ?= "edgerouter"
8499 </literallayout>
8500 The last five are Yocto Project reference hardware boards, which
8501 are provided in the <filename>meta-yocto-bsp</filename> layer.
8502 <note>Adding additional Board Support Package (BSP) layers
8503 to your configuration adds new possible settings for
8504 <filename>MACHINE</filename>.
8505 </note>
8506 </para>
8507 </glossdef>
8508 </glossentry>
8509
8510 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
8511 <info>
8512 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
8513 </info>
8514 <glossdef>
8515 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008516 Specifies the name of the machine-specific architecture.
8517 This variable is set automatically from
8518 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
8519 or
8520 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
8521 You should not hand-edit the
8522 <filename>MACHINE_ARCH</filename> variable.
8523 </para>
8524 </glossdef>
8525 </glossentry>
8526
8527 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
8528 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008529 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008530 </info>
8531 <glossdef>
8532 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008533 A list of required machine-specific packages to install as part of
8534 the image being built.
8535 The build process depends on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008536 Furthermore, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008537 packages are essential for the machine to boot.
8538 The impact of this variable affects images based on
8539 <filename>packagegroup-core-boot</filename>,
8540 including the <filename>core-image-minimal</filename> image.
8541 </para>
8542
8543 <para>
8544 This variable is similar to the
8545 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
8546 variable with the exception that the image being built has a build
8547 dependency on the variable's list of packages.
8548 In other words, the image will not build if a file in this list is not found.
8549 </para>
8550
8551 <para>
8552 As an example, suppose the machine for which you are building requires
8553 <filename>example-init</filename> to be run during boot to initialize the hardware.
8554 In this case, you would use the following in the machine's
8555 <filename>.conf</filename> configuration file:
8556 <literallayout class='monospaced'>
8557 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
8558 </literallayout>
8559 </para>
8560 </glossdef>
8561 </glossentry>
8562
8563 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
8564 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008565 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008566 </info>
8567 <glossdef>
8568 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008569 A list of recommended machine-specific packages to install as part of
8570 the image being built.
8571 The build process does not depend on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008572 However, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008573 packages are essential for the machine to boot.
8574 The impact of this variable affects images based on
8575 <filename>packagegroup-core-boot</filename>,
8576 including the <filename>core-image-minimal</filename> image.
8577 </para>
8578
8579 <para>
8580 This variable is similar to the
8581 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
8582 variable with the exception that the image being built does not have a build
8583 dependency on the variable's list of packages.
8584 In other words, the image will still build if a package in this list is not found.
8585 Typically, this variable is used to handle essential kernel modules, whose
8586 functionality may be selected to be built into the kernel rather than as a module,
8587 in which case a package will not be produced.
8588 </para>
8589
8590 <para>
8591 Consider an example where you have a custom kernel where a specific touchscreen
8592 driver is required for the machine to be usable.
8593 However, the driver can be built as a module or
8594 into the kernel depending on the kernel configuration.
8595 If the driver is built as a module, you want it to be installed.
8596 But, when the driver is built into the kernel, you still want the
8597 build to succeed.
8598 This variable sets up a "recommends" relationship so that in the latter case,
8599 the build will not fail due to the missing package.
8600 To accomplish this, assuming the package for the module was called
8601 <filename>kernel-module-ab123</filename>, you would use the
8602 following in the machine's <filename>.conf</filename> configuration
8603 file:
8604 <literallayout class='monospaced'>
8605 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
8606 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008607 <note>
8608 In this example, the
8609 <filename>kernel-module-ab123</filename> recipe
8610 needs to explicitly set its
8611 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
8612 variable to ensure that BitBake does not use the
8613 kernel recipe's
8614 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
8615 variable to satisfy the dependency.
8616 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008617 </para>
8618
8619 <para>
8620 Some examples of these machine essentials are flash, screen, keyboard, mouse,
8621 or touchscreen drivers (depending on the machine).
8622 </para>
8623 </glossdef>
8624 </glossentry>
8625
8626 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
8627 <info>
8628 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."
8629 </info>
8630 <glossdef>
8631 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008632 A list of machine-specific packages to install as part of the
8633 image being built that are not essential for the machine to boot.
8634 However, the build process for more fully-featured images
8635 depends on the packages being present.
8636 </para>
8637
8638 <para>
8639 This variable affects all images based on
8640 <filename>packagegroup-base</filename>, which does not include the
8641 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8642 images.
8643 </para>
8644
8645 <para>
8646 The variable is similar to the
8647 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
8648 variable with the exception that the image being built has a build
8649 dependency on the variable's list of packages.
8650 In other words, the image will not build if a file in this list is not found.
8651 </para>
8652
8653 <para>
8654 An example is a machine that has WiFi capability but is not
8655 essential for the machine to boot the image.
8656 However, if you are building a more fully-featured image, you want to enable
8657 the WiFi.
8658 The package containing the firmware for the WiFi hardware is always
8659 expected to exist, so it is acceptable for the build process to depend upon
8660 finding the package.
8661 In this case, assuming the package for the firmware was called
8662 <filename>wifidriver-firmware</filename>, you would use the following in the
8663 <filename>.conf</filename> file for the machine:
8664 <literallayout class='monospaced'>
8665 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
8666 </literallayout>
8667 </para>
8668 </glossdef>
8669 </glossentry>
8670
8671 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
8672 <info>
8673 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."
8674 </info>
8675 <glossdef>
8676 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008677 A list of machine-specific packages to install as part of the
8678 image being built that are not essential for booting the machine.
8679 The image being built has no build dependency on this list of packages.
8680 </para>
8681
8682 <para>
8683 This variable affects only images based on
8684 <filename>packagegroup-base</filename>, which does not include the
8685 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8686 images.
8687 </para>
8688
8689 <para>
8690 This variable is similar to the
8691 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
8692 variable with the exception that the image being built does not have a build
8693 dependency on the variable's list of packages.
8694 In other words, the image will build if a file in this list is not found.
8695 </para>
8696
8697 <para>
8698 An example is a machine that has WiFi capability but is not essential
8699 For the machine to boot the image.
8700 However, if you are building a more fully-featured image, you want to enable
8701 WiFi.
8702 In this case, the package containing the WiFi kernel module will not be produced
8703 if the WiFi driver is built into the kernel, in which case you still want the
8704 build to succeed instead of failing as a result of the package not being found.
8705 To accomplish this, assuming the package for the module was called
8706 <filename>kernel-module-examplewifi</filename>, you would use the
8707 following in the <filename>.conf</filename> file for the machine:
8708 <literallayout class='monospaced'>
8709 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
8710 </literallayout>
8711 </para>
8712 </glossdef>
8713 </glossentry>
8714
8715 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
8716 <info>
8717 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
8718 </info>
8719 <glossdef>
8720 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008721 Specifies the list of hardware features the
8722 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
8723 of supporting.
8724 For related information on enabling features, see the
8725 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
8726 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
8727 and
8728 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8729 variables.
8730 </para>
8731
8732 <para>
8733 For a list of hardware features supported by the Yocto
8734 Project as shipped, see the
8735 "<link linkend='ref-features-machine'>Machine Features</link>"
8736 section.
8737 </para>
8738 </glossdef>
8739 </glossentry>
8740
8741 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
8742 <info>
8743 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."
8744 </info>
8745 <glossdef>
8746 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008747 Features to be added to
8748 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
8749 if not also present in
8750 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
8751 </para>
8752
8753 <para>
8754 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
8755 It is not intended to be user-configurable.
8756 It is best to just reference the variable to see which machine features are
8757 being backfilled for all machine configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008758 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008759 more information.
8760 </para>
8761 </glossdef>
8762 </glossentry>
8763
8764 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
8765 <info>
8766 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
8767 </info>
8768 <glossdef>
8769 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008770 Features from
8771 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
8772 that should not be backfilled (i.e. added to
8773 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
8774 during the build.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008775 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008776 more information.
8777 </para>
8778 </glossdef>
8779 </glossentry>
8780
8781 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
8782 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008783 MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008784 </info>
8785 <glossdef>
8786 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008787 A colon-separated list of overrides that apply to the
8788 current machine.
8789 By default, this list includes the value of
8790 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008791 </para>
8792
8793 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008794 You can extend <filename>MACHINEOVERRIDES</filename>
8795 to add extra overrides that should apply to a machine.
8796 For example, all machines emulated in QEMU (e.g.
8797 <filename>qemuarm</filename>, <filename>qemux86</filename>,
8798 and so forth) include a file named
8799 <filename>meta/conf/machine/include/qemu.inc</filename>
8800 that prepends the following override to
8801 <filename>MACHINEOVERRIDES</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008802 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008803 MACHINEOVERRIDES =. "qemuall:"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008804 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008805 This override allows variables to be overriden for all
8806 machines emulated in QEMU, like in the following example
8807 from the <filename>connman-conf</filename> recipe:
8808 <literallayout class='monospaced'>
8809 SRC_URI_append_qemuall = "file://wired.config \
8810 file://wired-setup \
8811 "
8812 </literallayout>
8813 The underlying mechanism behind
8814 <filename>MACHINEOVERRIDES</filename> is simply that it is
8815 included in the default value of
8816 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008817 </para>
8818 </glossdef>
8819 </glossentry>
8820
8821 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
8822 <info>
8823 MAINTAINER[doc] = "The email address of the distribution maintainer."
8824 </info>
8825 <glossdef>
8826 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008827 The email address of the distribution maintainer.
8828 </para>
8829 </glossdef>
8830 </glossentry>
8831
8832 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
8833 <info>
8834 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
8835 </info>
8836 <glossdef>
8837 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008838 Specifies additional paths from which the OpenEmbedded
8839 build system gets source code.
8840 When the build system searches for source code, it first
8841 tries the local download directory.
8842 If that location fails, the build system tries locations
8843 defined by
8844 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
8845 the upstream source, and then locations specified by
8846 <filename>MIRRORS</filename> in that order.
8847 </para>
8848
8849 <para>
8850 Assuming your distribution
8851 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
8852 is "poky", the default value for
8853 <filename>MIRRORS</filename> is defined in the
8854 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008855 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008856 </para>
8857 </glossdef>
8858 </glossentry>
8859
8860 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
8861 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008862 MLPREFIX[doc] = "Specifies a prefix has been added to PN to create a special version of a recipe or package (i.e. a Multilib version)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008863 </info>
8864 <glossdef>
8865 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008866 Specifies a prefix has been added to
8867 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
Brad Bishop316dfdd2018-06-25 12:45:53 -04008868 of a recipe or package (i.e. a Multilib version).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008869 The variable is used in places where the prefix needs to be
8870 added to or removed from a the name (e.g. the
8871 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
8872 <filename>MLPREFIX</filename> gets set when a prefix has been
8873 added to <filename>PN</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008874 <note>
8875 The "ML" in <filename>MLPREFIX</filename> stands for
8876 "MultiLib".
8877 This representation is historical and comes from
8878 a time when <filename>nativesdk</filename> was a suffix
8879 rather than a prefix on the recipe name.
8880 When <filename>nativesdk</filename> was turned into a
8881 prefix, it made sense to set
8882 <filename>MLPREFIX</filename> for it as well.
8883 </note>
8884 </para>
8885
8886 <para>
8887 To help understand when <filename>MLPREFIX</filename>
8888 might be needed, consider when
8889 <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
8890 is used to provide a <filename>nativesdk</filename> version
8891 of a recipe in addition to the target version.
8892 If that recipe declares build-time dependencies on tasks in
8893 other recipes by using
8894 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
8895 then a dependency on "foo" will automatically get rewritten
8896 to a dependency on "nativesdk-foo".
8897 However, dependencies like the following will not get
8898 rewritten automatically:
8899 <literallayout class='monospaced'>
8900 do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
8901 </literallayout>
8902 If you want such a dependency to also get transformed,
8903 you can do the following:
8904 <literallayout class='monospaced'>
8905 do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
8906 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008907 </para>
8908 </glossdef>
8909 </glossentry>
8910
8911 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
8912 <info>
8913 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."
8914 </info>
8915 <glossdef>
8916 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008917 This variable has been replaced by the
8918 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
8919 You should replace all occurrences of
8920 <filename>module_autoload</filename> with additions to
8921 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
8922 <literallayout class='monospaced'>
8923 module_autoload_rfcomm = "rfcomm"
8924 </literallayout>
8925 </para>
8926
8927 <para>
8928 should now be replaced with:
8929 <literallayout class='monospaced'>
8930 KERNEL_MODULE_AUTOLOAD += "rfcomm"
8931 </literallayout>
8932 See the
8933 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8934 variable for more information.
8935 </para>
8936 </glossdef>
8937 </glossentry>
8938
8939 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
8940 <info>
8941 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
8942 </info>
8943 <glossdef>
8944 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008945 Specifies
8946 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
8947 syntax lines for inclusion in the
8948 <filename>/etc/modprobe.d/modname.conf</filename> file.
8949 </para>
8950
8951 <para>
8952 You can use this variable anywhere that it can be
8953 recognized by the kernel recipe or out-of-tree kernel
8954 module recipe (e.g. a machine configuration file, a
8955 distribution configuration file, an append file for the
8956 recipe, or the recipe itself).
8957 If you use this variable, you must also be sure to list
8958 the module name in the
8959 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8960 variable.
8961 </para>
8962
8963 <para>
8964 Here is the general syntax:
8965 <literallayout class='monospaced'>
8966 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
8967 </literallayout>
8968 You must use the kernel module name override.
8969 </para>
8970
8971 <para>
8972 Run <filename>man modprobe.d</filename> in the shell to
8973 find out more information on the exact syntax
8974 you want to provide with <filename>module_conf</filename>.
8975 </para>
8976
8977 <para>
8978 Including <filename>module_conf</filename> causes the
8979 OpenEmbedded build system to populate the
8980 <filename>/etc/modprobe.d/modname.conf</filename>
8981 file with <filename>modprobe.d</filename> syntax lines.
8982 Here is an example that adds the options
8983 <filename>arg1</filename> and <filename>arg2</filename>
8984 to a module named <filename>mymodule</filename>:
8985 <literallayout class='monospaced'>
8986 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
8987 </literallayout>
8988 </para>
8989
8990 <para>
8991 For information on how to specify kernel modules to
8992 auto-load on boot, see the
8993 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8994 variable.
8995 </para>
8996 </glossdef>
8997 </glossentry>
8998
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008999 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
9000 <info>
9001 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."
9002 </info>
9003 <glossdef>
9004 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009005 Controls creation of the <filename>modules-*.tgz</filename>
9006 file.
9007 Set this variable to "0" to disable creation of this
9008 file, which contains all of the kernel modules resulting
9009 from a kernel build.
9010 </para>
9011 </glossdef>
9012 </glossentry>
9013
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009014 <glossentry id='var-MODULE_TARBALL_LINK_NAME'><glossterm>MODULE_TARBALL_LINK_NAME</glossterm>
9015 <info>
9016 MODULE_TARBALL_LINK_NAME[doc] = "The link name of the kernel module tarball."
9017 </info>
9018 <glossdef>
9019 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009020 The link name of the kernel module tarball.
9021 This variable is set in the
9022 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9023 file as follows:
9024 <literallayout class='monospaced'>
9025 MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
9026 </literallayout>
9027 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
9028 variable, which is set in the same file, has the following
9029 value:
9030 <literallayout class='monospaced'>
9031 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
9032 </literallayout>
9033 </para>
9034
9035 <para>
9036 See the
9037 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
9038 variable for additional information.
9039 </para>
9040 </glossdef>
9041 </glossentry>
9042
9043 <glossentry id='var-MODULE_TARBALL_NAME'><glossterm>MODULE_TARBALL_NAME</glossterm>
9044 <info>
9045 MODULE_TARBALL_NAME[doc] = "The base name of the kernel module tarball."
9046 </info>
9047 <glossdef>
9048 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009049 The base name of the kernel module tarball.
9050 This variable is set in the
9051 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9052 file as follows:
9053 <literallayout class='monospaced'>
9054 MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
9055 </literallayout>
9056 The value of the
9057 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
9058 variable, which is set in the same file, has the following
9059 value:
9060 <literallayout class='monospaced'>
9061 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
9062 </literallayout>
9063 </para>
9064 </glossdef>
9065 </glossentry>
9066
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009067<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009068 <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
9069 <info>
9070 MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
9071 </info>
9072 <glossdef>
9073 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009074-->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009075<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009076 Serves the same purpose as
9077 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
9078 but for the "HOST" system, in situations that involve a
9079 "HOST" and a "TARGET" system.
9080 See the
9081 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9082 variable for more information.
9083 </para>
9084
9085 <para>
9086 The default value of this variable is:
9087 <literallayout class='monospaced'>
9088 ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
9089 </literallayout>
9090 </para>
9091 </glossdef>
9092 </glossentry>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009093-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009094
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009095 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
9096 <info>
9097 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
9098 </info>
9099 <glossdef>
9100 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009101 Uniquely identifies the type of the target system for
9102 which packages are being built.
9103 This variable allows output for different types of target
9104 systems to be put into different subdirectories of the same
9105 output directory.
9106 </para>
9107
9108 <para>
9109 The default value of this variable is:
9110 <literallayout class='monospaced'>
9111 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
9112 </literallayout>
9113 Some classes (e.g.
9114 <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
9115 modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
9116 </para>
9117
9118 <para>
9119 See the
9120 <link linkend='var-STAMP'><filename>STAMP</filename></link>
9121 variable for an example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009122 See the
9123 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9124 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009125 </para>
9126 </glossdef>
9127 </glossentry>
9128
9129 </glossdiv>
9130
9131 <glossdiv id='var-glossary-n'><title>N</title>
9132
9133 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
9134 <info>
9135 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
9136 </info>
9137 <glossdef>
9138 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009139 A string identifying the host distribution.
9140 Strings consist of the host distributor ID
9141 followed by the release, as reported by the
9142 <filename>lsb_release</filename> tool
9143 or as read from <filename>/etc/lsb-release</filename>.
9144 For example, when running a build on Ubuntu 12.10, the value
9145 is "Ubuntu-12.10".
9146 If this information is unable to be determined, the value
9147 resolves to "Unknown".
9148 </para>
9149
9150 <para>
9151 This variable is used by default to isolate native shared
9152 state packages for different distributions (e.g. to avoid
9153 problems with <filename>glibc</filename> version
9154 incompatibilities).
9155 Additionally, the variable is checked against
9156 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
9157 if that variable is set.
9158 </para>
9159 </glossdef>
9160 </glossentry>
9161
9162 <glossentry id='var-NM'><glossterm>NM</glossterm>
9163 <info>
9164 NM[doc] = "Minimal command and arguments to run 'nm'."
9165 </info>
9166 <glossdef>
9167 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009168 The minimal command and arguments to run
9169 <filename>nm</filename>.
9170 </para>
9171 </glossdef>
9172 </glossentry>
9173
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009174 <glossentry id='var-NO_GENERIC_LICENSE'><glossterm>NO_GENERIC_LICENSE</glossterm>
9175 <info>
9176 NO_GENERIC_LICENSE[doc] = "Used to allow copying a license that does not exist in common licenses."
9177 </info>
9178 <glossdef>
9179 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009180 Avoids QA errors when you use a non-common, non-CLOSED
9181 license in a recipe.
9182 Packages exist, such as the linux-firmware package, with
9183 many licenses that are not in any way common.
9184 Also, new licenses are added occasionally to avoid
9185 introducing a lot of common license files, which are only
9186 applicable to a specific package.
9187 <filename>NO_GENERIC_LICENSE</filename> is used to allow
9188 copying a license that does not exist in common licenses.
9189 </para>
9190
9191 <para>
9192 The following example shows how to add
9193 <filename>NO_GENERIC_LICENSE</filename> to a recipe:
9194 <literallayout class='monospaced'>
9195 NO_GENERIC_LICENSE[<replaceable>license_name</replaceable>] = "<replaceable>license_file_in_fetched_source</replaceable>"
9196 </literallayout>
9197 The following is an example that uses the
9198 <filename>LICENSE.Abilis.txt</filename> file as the license
9199 from the fetched source:
9200 <literallayout class='monospaced'>
9201 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
9202 </literallayout>
9203 </para>
9204 </glossdef>
9205 </glossentry>
9206
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009207 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
9208 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009209 NO_RECOMMENDATIONS[doc] = "When set to '1', no recommended packages will be installed. 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009210 </info>
9211 <glossdef>
9212 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009213 Prevents installation of all "recommended-only" packages.
9214 Recommended-only packages are packages installed only
9215 through the
9216 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9217 variable).
9218 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
9219 to "1" turns this feature on:
9220 <literallayout class='monospaced'>
9221 NO_RECOMMENDATIONS = "1"
9222 </literallayout>
9223 </para>
9224
9225 <para>
9226 You can set this variable globally in your
9227 <filename>local.conf</filename> file or you can attach it to
9228 a specific image recipe by using the recipe name override:
9229 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009230 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009231 </literallayout>
9232 </para>
9233
9234 <para>
9235 It is important to realize that if you choose to not install
9236 packages using this variable and some other packages are
9237 dependent on them (i.e. listed in a recipe's
9238 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9239 variable), the OpenEmbedded build system ignores your
9240 request and will install the packages to avoid dependency
9241 errors.
9242 <note>
9243 Some recommended packages might be required for certain
9244 system functionality, such as kernel modules.
9245 It is up to you to add packages with the
9246 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9247 variable.
9248 </note>
9249 </para>
9250
9251 <para>
9252 Support for this variable exists only when using the
9253 IPK and RPM packaging backend.
9254 Support does not exist for DEB.
9255 </para>
9256
9257 <para>
9258 See the
9259 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9260 and the
9261 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
9262 variables for related information.
9263 </para>
9264 </glossdef>
9265 </glossentry>
9266
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009267 <glossentry id='var-NOAUTOPACKAGEDEBUG'><glossterm>NOAUTOPACKAGEDEBUG</glossterm>
9268 <info>
9269 NOAUTOPACKAGEDEBUG[doc] = "Disables auto package from splitting .debug files."
9270 </info>
9271 <glossdef>
9272 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009273 Disables auto package from splitting
9274 <filename>.debug</filename> files. If a recipe requires
9275 <filename>FILES_${PN}-dbg</filename> to be set manually,
9276 the <filename>NOAUTOPACKAGEDEBUG</filename> can be defined
9277 allowing you to define the content of the debug package.
9278 For example:
9279 <literallayout class='monospaced'>
9280 NOAUTOPACKAGEDEBUG = "1"
9281 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
9282 FILES_${PN}-dbg = "/usr/src/debug/"
9283 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
9284 </literallayout>
9285 </para>
9286 </glossdef>
9287 </glossentry>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009288 </glossdiv>
9289
9290 <glossdiv id='var-glossary-o'><title>O</title>
9291
9292 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
9293 <info>
9294 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
9295 </info>
9296 <glossdef>
9297 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009298 The minimal command and arguments to run
9299 <filename>objcopy</filename>.
9300 </para>
9301 </glossdef>
9302 </glossentry>
9303
9304 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
9305 <info>
9306 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
9307 </info>
9308 <glossdef>
9309 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009310 The minimal command and arguments to run
9311 <filename>objdump</filename>.
9312 </para>
9313 </glossdef>
9314 </glossentry>
9315
9316 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
9317 <info>
9318 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
9319 </info>
9320 <glossdef>
9321 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009322 When inheriting the
9323 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
9324 class, this variable
9325 specifies additional arguments passed to the "sed" command.
9326 The sed command alters any paths in configuration scripts
9327 that have been set up during compilation.
9328 Inheriting this class results in all paths in these scripts
9329 being changed to point into the
9330 <filename>sysroots/</filename> directory so that all builds
9331 that use the script will use the correct directories
9332 for the cross compiling layout.
9333 </para>
9334
9335 <para>
9336 See the <filename>meta/classes/binconfig.bbclass</filename>
9337 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009338 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009339 for details on how this class applies these additional
9340 sed command arguments.
9341 For general information on the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009342 <filename>binconfig</filename> class, see the
9343 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009344 section.
9345 </para>
9346 </glossdef>
9347 </glossentry>
9348
9349 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
9350 <info>
9351 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."
9352 </info>
9353 <glossdef>
9354 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009355 An internal variable used to tell the OpenEmbedded build
9356 system what Python modules to import for every Python
9357 function run by the system.
9358 </para>
9359
9360 <note>
9361 Do not set this variable.
9362 It is for internal use only.
9363 </note>
9364 </glossdef>
9365 </glossentry>
9366
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009367 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
9368 <info>
9369 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."
9370 </info>
9371 <glossdef>
9372 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009373 The name of the build environment setup script for the
9374 purposes of setting up the environment within the
9375 extensible SDK.
9376 The default value is "oe-init-build-env".
9377 </para>
9378
9379 <para>
9380 If you use a custom script to set up your build
9381 environment, set the
9382 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
9383 name.
9384 </para>
9385 </glossdef>
9386 </glossentry>
9387
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009388 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
9389 <info>
9390 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
9391 </info>
9392 <glossdef>
9393 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009394 Controls how the OpenEmbedded build system spawns
9395 interactive terminals on the host development system
9396 (e.g. using the BitBake command with the
9397 <filename>-c devshell</filename> command-line option).
9398 For more information, see the
9399 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009400 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009401 </para>
9402
9403 <para>
9404 You can use the following values for the
9405 <filename>OE_TERMINAL</filename> variable:
9406 <literallayout class='monospaced'>
9407 auto
9408 gnome
9409 xfce
9410 rxvt
9411 screen
9412 konsole
9413 none
9414 </literallayout>
9415 </para>
9416 </glossdef>
9417 </glossentry>
9418
9419 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
9420 <info>
9421 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
9422 </info>
9423 <glossdef>
9424 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009425 The directory from which the top-level build environment
9426 setup script is sourced.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009427 The Yocto Project provides a top-level build environment
9428 setup script:
9429 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
9430 When you run this script, the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009431 <filename>OEROOT</filename> variable resolves to the
9432 directory that contains the script.
9433 </para>
9434
9435 <para>
9436 For additional information on how this variable is used,
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009437 see the initialization script.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009438 </para>
9439 </glossdef>
9440 </glossentry>
9441
9442 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
9443 <info>
9444 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
9445 </info>
9446 <glossdef>
9447 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009448 Declares the oldest version of the Linux kernel that the
9449 produced binaries must support.
9450 This variable is passed into the build of the Embedded
9451 GNU C Library (<filename>glibc</filename>).
9452 </para>
9453
9454 <para>
9455 The default for this variable comes from the
9456 <filename>meta/conf/bitbake.conf</filename> configuration
9457 file.
9458 You can override this default by setting the variable
9459 in a custom distribution configuration file.
9460 </para>
9461 </glossdef>
9462 </glossentry>
9463
9464 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
9465 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009466 OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009467 </info>
9468 <glossdef>
9469 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009470 A colon-separated list of overrides that currently apply.
9471 Overrides are a BitBake mechanism that allows variables to
9472 be selectively overridden at the end of parsing.
9473 The set of overrides in <filename>OVERRIDES</filename>
9474 represents the "state" during building, which includes
9475 the current recipe being built, the machine for which
9476 it is being built, and so forth.
9477 </para>
9478
9479 <para>
9480 As an example, if the string "an-override" appears as an
9481 element in the colon-separated list in
9482 <filename>OVERRIDES</filename>, then the following
9483 assignment will override <filename>FOO</filename> with the
9484 value "overridden" at the end of parsing:
9485 <literallayout class='monospaced'>
9486 FOO_an-override = "overridden"
9487 </literallayout>
9488 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009489 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009490 section in the BitBake User Manual for more information on
9491 the overrides mechanism.
9492 </para>
9493
9494 <para>
9495 The default value of <filename>OVERRIDES</filename>
9496 includes the values of the
9497 <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
9498 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
9499 and
9500 <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
9501 variables.
9502 Another important override included by default is
9503 <filename>pn-${PN}</filename>.
9504 This override allows variables to be set for a single
9505 recipe within configuration (<filename>.conf</filename>)
9506 files.
9507 Here is an example:
9508 <literallayout class='monospaced'>
9509 FOO_pn-myrecipe = "myrecipe-specific value"
9510 </literallayout>
9511 <note><title>Tip</title>
9512 An easy way to see what overrides apply is to search for
9513 <filename>OVERRIDES</filename> in the output of the
9514 <filename>bitbake -e</filename> command.
9515 See the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009516 "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-debugging-viewing-variable-values'>Viewing Variable Values</ulink>"
9517 section in the Yocto Project Development Tasks
9518 Manual for more information.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009519 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009520 </para>
9521 </glossdef>
9522 </glossentry>
9523 </glossdiv>
9524
9525 <glossdiv id='var-glossary-p'><title>P</title>
9526
9527 <glossentry id='var-P'><glossterm>P</glossterm>
9528 <info>
9529 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
9530 </info>
9531 <glossdef>
9532 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009533 The recipe name and version.
9534 <filename>P</filename> is comprised of the following:
9535 <literallayout class='monospaced'>
9536 ${PN}-${PV}
9537 </literallayout>
9538 </para>
9539 </glossdef>
9540 </glossentry>
9541
Andrew Geissler1e34c2d2020-05-29 16:02:59 -05009542 <glossentry id='var-PACKAGE_ADD_METADATA'><glossterm>PACKAGE_ADD_METADATA</glossterm>
9543 <info>
9544 PACKAGE_ADD_METADATA[doc] = "This variable defines additional metadata to add to packages."
9545 </info>
9546 <glossdef>
9547 <para role="glossdeffirst">
9548<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9549 This variable defines additional metdata to add to packages.
9550 </para>
9551
9552 <para>
9553 You may find you need to inject additional metadata into
9554 packages. This variable allows you to do that by setting
9555 the injected data as the value. Multiple fields can be
9556 added by splitting the content with the literal separator
9557 "\n".
9558 </para>
9559
9560 <para>
9561 The suffixes '_IPK', '_DEB', or '_RPM' can be applied to
9562 the variable to do package type specific settings. It can
9563 also be made package specific by using the package name as
9564 a suffix.
9565 </para>
9566
9567 <para>
9568 You can find out more about applying this variable in
9569 the
9570 "<ulink url='&YOCTO_DOCS_DEV_URL;#adding-custom-metadata-to-packages'>Adding custom metadata to packages</ulink>"
9571 section in the Yocto Project Development Tasks Manual.
9572 </para>
9573 </glossdef>
9574 </glossentry>
9575
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009576 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
9577 <info>
9578 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
9579 </info>
9580 <glossdef>
9581 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009582 The architecture of the resulting package or packages.
9583 </para>
9584
9585 <para>
9586 By default, the value of this variable is set to
9587 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
9588 when building for the target,
Brad Bishop316dfdd2018-06-25 12:45:53 -04009589 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>
9590 when building for the
9591 build host, and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009592 for the SDK.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009593 <note>
9594 See
9595 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>
9596 for more information.
9597 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009598 However, if your recipe's output packages are built
Brad Bishop316dfdd2018-06-25 12:45:53 -04009599 specific to the target machine rather than generally for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009600 the architecture of the machine, you should set
9601 <filename>PACKAGE_ARCH</filename> to the value of
9602 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
9603 in the recipe as follows:
9604 <literallayout class='monospaced'>
9605 PACKAGE_ARCH = "${MACHINE_ARCH}"
9606 </literallayout>
9607 </para>
9608 </glossdef>
9609 </glossentry>
9610
9611 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
9612 <info>
9613 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
9614 </info>
9615 <glossdef>
9616 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009617 Specifies a list of architectures compatible with
9618 the target machine.
9619 This variable is set automatically and should not
9620 normally be hand-edited.
9621 Entries are separated using spaces and listed in order
9622 of priority.
9623 The default value for
9624 <filename>PACKAGE_ARCHS</filename> is "all any noarch
9625 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
9626 </para>
9627 </glossdef>
9628 </glossentry>
9629
9630 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
9631 <info>
9632 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."
9633 </info>
9634 <glossdef>
9635 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009636 Enables easily adding packages to
9637 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
9638 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
9639 so that those added packages can pick up files that would normally be
9640 included in the default package.
9641 </para>
9642 </glossdef>
9643 </glossentry>
9644
9645 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
9646 <info>
9647 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."
9648 </info>
9649 <glossdef>
9650 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009651 This variable, which is set in the
9652 <filename>local.conf</filename> configuration file found in
9653 the <filename>conf</filename> folder of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009654 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009655 specifies the package manager the OpenEmbedded build system
9656 uses when packaging data.
9657 </para>
9658
9659 <para>
9660 You can provide one or more of the following arguments for
9661 the variable:
9662 <literallayout class='monospaced'>
9663 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
9664 </literallayout>
9665 <note><title>Warning</title>
9666 While it is a legal option, the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009667 <filename>package_tar</filename> class has limited
9668 functionality due to no support for package
9669 dependencies by that backend.
9670 Therefore, it is recommended that you do not use it.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009671 </note>
9672 The build system uses only the first argument in the list
9673 as the package manager when creating your image or SDK.
9674 However, packages will be created using any additional
9675 packaging classes you specify.
9676 For example, if you use the following in your
9677 <filename>local.conf</filename> file:
9678 <literallayout class='monospaced'>
9679 PACKAGE_CLASSES ?= "package_ipk"
9680 </literallayout>
9681 The OpenEmbedded build system uses the IPK package manager
9682 to create your image or SDK.
9683 </para>
9684
9685 <para>
9686 For information on packaging and build performance effects
9687 as a result of the package manager in use, see the
9688 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
9689 section.
9690 </para>
9691 </glossdef>
9692 </glossentry>
9693
9694 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
9695 <info>
9696 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)."
9697 </info>
9698 <glossdef>
9699 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009700 Determines how to split up the binary and debug information
9701 when creating <filename>*-dbg</filename> packages to be
9702 used with the GNU Project Debugger (GDB).
9703 </para>
9704
9705 <para>
9706 With the
9707 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
9708 you can control where debug information, which can include
9709 or exclude source files, is stored:
9710 <itemizedlist>
9711 <listitem><para>
9712 ".debug": Debug symbol files are placed next
9713 to the binary in a <filename>.debug</filename>
9714 directory on the target.
9715 For example, if a binary is installed into
9716 <filename>/bin</filename>, the corresponding debug
9717 symbol files are installed in
9718 <filename>/bin/.debug</filename>.
9719 Source files are placed in
9720 <filename>/usr/src/debug</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009721 </para></listitem>
9722 <listitem><para>
9723 "debug-file-directory": Debug symbol files are
9724 placed under <filename>/usr/lib/debug</filename>
9725 on the target, and separated by the path from where
9726 the binary is installed.
9727 For example, if a binary is installed in
9728 <filename>/bin</filename>, the corresponding debug
9729 symbols are installed in
9730 <filename>/usr/lib/debug/bin</filename>.
9731 Source files are placed in
9732 <filename>/usr/src/debug</filename>.
9733 </para></listitem>
9734 <listitem><para>
9735 "debug-without-src": The same behavior as
9736 ".debug" previously described with the exception
9737 that no source files are installed.
9738 </para></listitem>.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009739 <listitem><para>
9740 "debug-with-srcpkg": The same behavior as
9741 ".debug" previously described with the exception
9742 that all source files are placed in a separate
9743 <filename>*-src</filename> pkg.
Brad Bishop19323692019-04-05 15:28:33 -04009744 This is the default behavior.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009745 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009746 </itemizedlist>
9747 </para>
9748
9749 <para>
9750 You can find out more about debugging using GDB by reading
9751 the
9752 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-gdb-remotedebug'>Debugging With the GNU Project Debugger (GDB) Remotely</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009753 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009754 </para>
9755 </glossdef>
9756 </glossentry>
9757
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009758 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
9759 <info>
9760 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
9761 </info>
9762 <glossdef>
9763 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009764 Prevents specific packages from being installed when
9765 you are installing complementary packages.
9766 </para>
9767
9768 <para>
9769 You might find that you want to prevent installing certain
9770 packages when you are installing complementary packages.
9771 For example, if you are using
9772 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
9773 to install <filename>dev-pkgs</filename>, you might not want
9774 to install all packages from a particular multilib.
9775 If you find yourself in this situation, you can use the
9776 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
9777 to specify regular expressions to match the packages you
9778 want to exclude.
9779 </para>
9780 </glossdef>
9781 </glossentry>
9782
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009783 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
9784 <info>
9785 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
9786 </info>
9787 <glossdef>
9788 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009789 Lists packages that should not be installed into an image.
9790 For example:
9791 <literallayout class='monospaced'>
9792 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
9793 </literallayout>
9794 </para>
9795
9796 <para>
9797 You can set this variable globally in your
9798 <filename>local.conf</filename> file or you can attach it to
9799 a specific image recipe by using the recipe name override:
9800 <literallayout class='monospaced'>
9801 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
9802 </literallayout>
9803 </para>
9804
9805 <para>
9806 If you choose to not install
9807 a package using this variable and some other package is
9808 dependent on it (i.e. listed in a recipe's
9809 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9810 variable), the OpenEmbedded build system generates a fatal
9811 installation error.
9812 Because the build system halts the process with a fatal
9813 error, you can use the variable with an iterative
9814 development process to remove specific components from a
9815 system.
9816 </para>
9817
9818 <para>
9819 Support for this variable exists only when using the
9820 IPK and RPM packaging backend.
9821 Support does not exist for DEB.
9822 </para>
9823
9824 <para>
9825 See the
9826 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
9827 and the
9828 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9829 variables for related information.
9830 </para>
9831 </glossdef>
9832 </glossentry>
9833
9834 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
9835 <info>
9836 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."
9837 </info>
9838 <glossdef>
9839 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009840 Specifies the list of architectures compatible with the device CPU.
9841 This variable is useful when you build for several different devices that use
9842 miscellaneous processors such as XScale and ARM926-EJS.
9843 </para>
9844 </glossdef>
9845 </glossentry>
9846
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009847 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
9848 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009849 PACKAGE_FEED_ARCHS[doc] = "Optionally specifies user-defined package architectures when constructing package feed URIs."
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009850 </info>
9851 <glossdef>
9852 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04009853 Optionally specifies the package architectures used as
9854 part of the package feed URIs during the build.
9855 When used, the <filename>PACKAGE_FEED_ARCHS</filename>
9856 variable is appended to the final package feed URI, which
9857 is constructed using the
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009858 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9859 and
9860 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
9861 variables.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009862 <note><title>Tip</title>
9863 You can use the <filename>PACKAGE_FEEDS_ARCHS</filename>
9864 variable to whitelist specific package architectures.
9865 If you do not need to whitelist specific architectures,
9866 which is a common case, you can omit this variable.
9867 Omitting the variable results in all available
9868 architectures for the current machine being included
9869 into remote package feeds.
9870 </note>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009871 </para>
9872
9873 <para>
9874 Consider the following example where the
9875 <filename>PACKAGE_FEED_URIS</filename>,
9876 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9877 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9878 defined in your <filename>local.conf</filename> file:
9879 <literallayout class='monospaced'>
9880 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9881 https://example.com/packagerepos/updates"
9882 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9883 PACKAGE_FEED_ARCHS = "all core2-64"
9884 </literallayout>
9885 Given these settings, the resulting package feeds are
9886 as follows:
9887 <literallayout class='monospaced'>
9888 https://example.com/packagerepos/release/rpm/all
9889 https://example.com/packagerepos/release/rpm/core2-64
9890 https://example.com/packagerepos/release/rpm-dev/all
9891 https://example.com/packagerepos/release/rpm-dev/core2-64
9892 https://example.com/packagerepos/updates/rpm/all
9893 https://example.com/packagerepos/updates/rpm/core2-64
9894 https://example.com/packagerepos/updates/rpm-dev/all
9895 https://example.com/packagerepos/updates/rpm-dev/core2-64
9896 </literallayout>
9897 </para>
9898 </glossdef>
9899 </glossentry>
9900
9901 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
9902 <info>
9903 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
9904 </info>
9905 <glossdef>
9906 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009907 Specifies the base path used when constructing package feed
9908 URIs.
9909 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
9910 makes up the middle portion of a package feed URI used
9911 by the OpenEmbedded build system.
9912 The base path lies between the
9913 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9914 and
9915 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9916 variables.
9917 </para>
9918
9919 <para>
9920 Consider the following example where the
9921 <filename>PACKAGE_FEED_URIS</filename>,
9922 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9923 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9924 defined in your <filename>local.conf</filename> file:
9925 <literallayout class='monospaced'>
9926 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9927 https://example.com/packagerepos/updates"
9928 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9929 PACKAGE_FEED_ARCHS = "all core2-64"
9930 </literallayout>
9931 Given these settings, the resulting package feeds are
9932 as follows:
9933 <literallayout class='monospaced'>
9934 https://example.com/packagerepos/release/rpm/all
9935 https://example.com/packagerepos/release/rpm/core2-64
9936 https://example.com/packagerepos/release/rpm-dev/all
9937 https://example.com/packagerepos/release/rpm-dev/core2-64
9938 https://example.com/packagerepos/updates/rpm/all
9939 https://example.com/packagerepos/updates/rpm/core2-64
9940 https://example.com/packagerepos/updates/rpm-dev/all
9941 https://example.com/packagerepos/updates/rpm-dev/core2-64
9942 </literallayout>
9943 </para>
9944 </glossdef>
9945 </glossentry>
9946
9947 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
9948 <info>
9949 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
9950 </info>
9951 <glossdef>
9952 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009953 Specifies the front portion of the package feed URI
9954 used by the OpenEmbedded build system.
9955 Each final package feed URI is comprised of
9956 <filename>PACKAGE_FEED_URIS</filename>,
9957 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
9958 and
9959 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9960 variables.
9961 </para>
9962
9963 <para>
9964 Consider the following example where the
9965 <filename>PACKAGE_FEED_URIS</filename>,
9966 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9967 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9968 defined in your <filename>local.conf</filename> file:
9969 <literallayout class='monospaced'>
9970 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9971 https://example.com/packagerepos/updates"
9972 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9973 PACKAGE_FEED_ARCHS = "all core2-64"
9974 </literallayout>
9975 Given these settings, the resulting package feeds are
9976 as follows:
9977 <literallayout class='monospaced'>
9978 https://example.com/packagerepos/release/rpm/all
9979 https://example.com/packagerepos/release/rpm/core2-64
9980 https://example.com/packagerepos/release/rpm-dev/all
9981 https://example.com/packagerepos/release/rpm-dev/core2-64
9982 https://example.com/packagerepos/updates/rpm/all
9983 https://example.com/packagerepos/updates/rpm/core2-64
9984 https://example.com/packagerepos/updates/rpm-dev/all
9985 https://example.com/packagerepos/updates/rpm-dev/core2-64
9986 </literallayout>
9987 </para>
9988 </glossdef>
9989 </glossentry>
9990
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009991 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
9992 <info>
9993 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."
9994 </info>
9995 <glossdef>
9996 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009997 The final list of packages passed to the package manager
9998 for installation into the image.
9999 </para>
10000
10001 <para>
10002 Because the package manager controls actual installation
10003 of all packages, the list of packages passed using
10004 <filename>PACKAGE_INSTALL</filename> is not the final list
10005 of packages that are actually installed.
10006 This variable is internal to the image construction
10007 code.
10008 Consequently, in general, you should use the
10009 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
10010 variable to specify packages for installation.
10011 The exception to this is when working with
10012 the
10013 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
10014 image.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010015 When working with an initial RAM filesystem (initramfs)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010016 image, use the <filename>PACKAGE_INSTALL</filename>
10017 variable.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010018 For information on creating an initramfs, see the
10019 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010020 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010021 </para>
10022 </glossdef>
10023 </glossentry>
10024
10025 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
10026 <info>
10027 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."
10028 </info>
10029 <glossdef>
10030 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010031 Specifies a list of packages the OpenEmbedded build
10032 system attempts to install when creating an image.
10033 If a listed package fails to install, the build system
10034 does not generate an error.
10035 This variable is generally not user-defined.
10036 </para>
10037 </glossdef>
10038 </glossentry>
10039
10040 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
10041 <info>
10042 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."
10043 </info>
10044 <glossdef>
10045 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010046 Specifies a list of functions run to pre-process the
10047 <link linkend='var-PKGD'><filename>PKGD</filename></link>
10048 directory prior to splitting the files out to individual
10049 packages.
10050 </para>
10051 </glossdef>
10052 </glossentry>
10053
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010054 <glossentry id='var-PACKAGE_WRITE_DEPS'><glossterm>PACKAGE_WRITE_DEPS</glossterm>
10055 <info>
10056 PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools."
10057 </info>
10058 <glossdef>
10059 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010060 Specifies a list of dependencies for post-installation and
10061 pre-installation scripts on native/cross tools.
10062 If your post-installation or pre-installation script can
10063 execute at rootfs creation time rather than on the
10064 target but depends on a native tool in order to execute,
10065 you need to list the tools in
Brad Bishopd5ae7d92018-06-14 09:52:03 -070010066 <filename>PACKAGE_WRITE_DEPS</filename>.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010067 </para>
10068
10069 <para>
10070 For information on running post-installation scripts, see
10071 the
10072 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-post-installation-scripts'>Post-Installation Scripts</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010073 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010074 </para>
10075 </glossdef>
10076 </glossentry>
10077
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010078 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
10079 <info>
10080 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
10081 </info>
10082 <glossdef>
10083 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010084 This variable provides a means of enabling or disabling
10085 features of a recipe on a per-recipe basis.
10086 <filename>PACKAGECONFIG</filename> blocks are defined
10087 in recipes when you specify features and then arguments
10088 that define feature behaviors.
Andrew Geissler82c905d2020-04-13 13:39:40 -050010089 Here is the basic block structure (broken over multiple
10090 lines for readability):
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010091 <literallayout class='monospaced'>
10092 PACKAGECONFIG ??= "f1 f2 f3 ..."
Andrew Geissler82c905d2020-04-13 13:39:40 -050010093 PACKAGECONFIG[f1] = "\
10094 --with-f1, \
10095 --without-f1, \
10096 build-deps-for-f1, \
10097 runtime-deps-for-f1, \
10098 runtime-recommends-for-f1, \
10099 packageconfig-conflicts-for-f1 \
10100 "
10101 PACKAGECONFIG[f2] = "\
10102 ... and so on and so on ...
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010103 </literallayout>
10104 </para>
10105
10106 <para>
10107 The <filename>PACKAGECONFIG</filename>
10108 variable itself specifies a space-separated list of the
10109 features to enable.
10110 Following the features, you can determine the behavior of
Andrew Geissler82c905d2020-04-13 13:39:40 -050010111 each feature by providing up to six order-dependent
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010112 arguments, which are separated by commas.
10113 You can omit any argument you like but must retain the
10114 separating commas.
10115 The order is important and specifies the following:
10116 <orderedlist>
10117 <listitem><para>Extra arguments
10118 that should be added to the configure script
10119 argument list
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010120 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
10121 or
10122 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010123 if the feature is enabled.</para></listitem>
10124 <listitem><para>Extra arguments
10125 that should be added to <filename>EXTRA_OECONF</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010126 or <filename>PACKAGECONFIG_CONFARGS</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010127 if the feature is disabled.
10128 </para></listitem>
10129 <listitem><para>Additional build dependencies
10130 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
10131 that should be added if the feature is enabled.
10132 </para></listitem>
10133 <listitem><para>Additional runtime dependencies
10134 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10135 that should be added if the feature is enabled.
10136 </para></listitem>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010137 <listitem><para>Additional runtime recommendations
10138 (<link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>)
10139 that should be added if the feature is enabled.
10140 </para></listitem>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010141 <listitem><para>Any conflicting (that is, mutually
10142 exclusive) <filename>PACKAGECONFIG</filename>
10143 settings for this feature.
10144 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010145 </orderedlist>
10146 </para>
10147
10148 <para>
10149 Consider the following
10150 <filename>PACKAGECONFIG</filename> block taken from the
10151 <filename>librsvg</filename> recipe.
Andrew Geissler82c905d2020-04-13 13:39:40 -050010152 In this example the feature is <filename>gtk</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010153 which has three arguments that determine the feature's
10154 behavior.
10155 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010156 PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010157 </literallayout>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010158 The <filename>--with-gtk3</filename> and
10159 <filename>gtk+3</filename> arguments apply only if
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010160 the feature is enabled.
Andrew Geissler82c905d2020-04-13 13:39:40 -050010161 In this case, <filename>--with-gtk3</filename> is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010162 added to the configure script argument list and
Andrew Geissler82c905d2020-04-13 13:39:40 -050010163 <filename>gtk+3</filename> is added to
Brad Bishop316dfdd2018-06-25 12:45:53 -040010164 <filename>DEPENDS</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010165 On the other hand, if the feature is disabled say through
10166 a <filename>.bbappend</filename> file in another layer, then
Andrew Geissler82c905d2020-04-13 13:39:40 -050010167 the second argument <filename>--without-gtk3</filename> is
10168 added to the configure script instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010169 </para>
10170
10171 <para>
10172 The basic <filename>PACKAGECONFIG</filename> structure
10173 previously described holds true regardless of whether you
10174 are creating a block or changing a block.
10175 When creating a block, use the structure inside your
10176 recipe.
10177 </para>
10178
10179 <para>
10180 If you want to change an existing
10181 <filename>PACKAGECONFIG</filename> block, you can do so
10182 one of two ways:
10183 <itemizedlist>
10184 <listitem><para><emphasis>Append file:</emphasis>
10185 Create an append file named
10186 <replaceable>recipename</replaceable><filename>.bbappend</filename>
10187 in your layer and override the value of
10188 <filename>PACKAGECONFIG</filename>.
10189 You can either completely override the variable:
10190 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010191 PACKAGECONFIG = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010192 </literallayout>
10193 Or, you can just append the variable:
10194 <literallayout class='monospaced'>
10195 PACKAGECONFIG_append = " f4"
10196 </literallayout></para></listitem>
10197 <listitem><para><emphasis>Configuration file:</emphasis>
10198 This method is identical to changing the block
10199 through an append file except you edit your
10200 <filename>local.conf</filename> or
10201 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
10202 As with append files previously described,
10203 you can either completely override the variable:
10204 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010205 PACKAGECONFIG_pn-<replaceable>recipename</replaceable> = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010206 </literallayout>
10207 Or, you can just amend the variable:
10208 <literallayout class='monospaced'>
10209 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
10210 </literallayout></para></listitem>
10211 </itemizedlist>
10212 </para>
10213 </glossdef>
10214 </glossentry>
10215
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010216 <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
10217 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010218 PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from the PACKAGECONFIG setting."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010219 </info>
10220 <glossdef>
10221 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010222 A space-separated list of configuration options generated
10223 from the
10224 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
10225 setting.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010226 </para>
10227
10228 <para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010229 Classes such as
10230 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
10231 and
10232 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
10233 use <filename>PACKAGECONFIG_CONFARGS</filename> to pass
Brad Bishop316dfdd2018-06-25 12:45:53 -040010234 <filename>PACKAGECONFIG</filename> options to
10235 <filename>configure</filename> and
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010236 <filename>cmake</filename>, respectively.
10237 If you are using
10238 <filename>PACKAGECONFIG</filename> but not a class that
10239 handles the <filename>do_configure</filename> task, then
10240 you need to use
10241 <filename>PACKAGECONFIG_CONFARGS</filename> appropriately.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010242 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010243 </glossdef>
10244 </glossentry>
10245
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010246 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
10247 <info>
10248 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
10249 </info>
10250 <glossdef>
10251 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010252 For recipes inheriting the
10253 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
10254 class, setting
10255 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
10256 "1" specifies that the normal complementary packages
10257 (i.e. <filename>-dev</filename>,
10258 <filename>-dbg</filename>, and so forth) should not be
10259 automatically created by the
10260 <filename>packagegroup</filename> recipe, which is the
10261 default behavior.
10262 </para>
10263 </glossdef>
10264 </glossentry>
10265
10266 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
10267 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010268 PACKAGES[doc] = "The list of packages the recipe creates."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010269 </info>
10270 <glossdef>
10271 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040010272 The list of packages the recipe creates.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010273 The default value is the following:
10274 <literallayout class='monospaced'>
10275 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
10276 </literallayout>
10277 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010278
10279 <para>
10280 During packaging, the
10281 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
10282 task goes through <filename>PACKAGES</filename> and uses
10283 the
10284 <link linkend='var-FILES'><filename>FILES</filename></link>
10285 variable corresponding to each package to assign files to
10286 the package.
10287 If a file matches the <filename>FILES</filename> variable
10288 for more than one package in <filename>PACKAGES</filename>,
10289 it will be assigned to the earliest (leftmost) package.
10290 </para>
10291
10292 <para>
10293 Packages in the variable's list that are empty (i.e. where
10294 none of the patterns in
10295 <filename>FILES_</filename><replaceable>pkg</replaceable>
10296 match any files installed by the
10297 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10298 task) are not generated, unless generation is forced through
10299 the
10300 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
10301 variable.
10302 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010303 </glossdef>
10304 </glossentry>
10305
10306 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
10307 <info>
10308 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
10309 </info>
10310 <glossdef>
10311 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010312 A promise that your recipe satisfies runtime dependencies
10313 for optional modules that are found in other recipes.
10314 <filename>PACKAGES_DYNAMIC</filename>
10315 does not actually satisfy the dependencies, it only states that
10316 they should be satisfied.
10317 For example, if a hard, runtime dependency
10318 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10319 of another package is satisfied
10320 at build time through the <filename>PACKAGES_DYNAMIC</filename>
10321 variable, but a package with the module name is never actually
10322 produced, then the other package will be broken.
10323 Thus, if you attempt to include that package in an image,
10324 you will get a dependency failure from the packaging system
10325 during the
10326 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
10327 task.
10328 </para>
10329
10330 <para>
10331 Typically, if there is a chance that such a situation can
10332 occur and the package that is not created is valid
10333 without the dependency being satisfied, then you should use
10334 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
10335 (a soft runtime dependency) instead of
10336 <filename>RDEPENDS</filename>.
10337 </para>
10338
10339 <para>
10340 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
10341 variable when you are splitting packages, see the
10342 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010343 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010344 </para>
10345 </glossdef>
10346 </glossentry>
10347
10348 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
10349 <info>
10350 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
10351 </info>
10352 <glossdef>
10353 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010354 Specifies a list of functions run to perform additional
10355 splitting of files into individual packages.
10356 Recipes can either prepend to this variable or prepend
10357 to the <filename>populate_packages</filename> function
10358 in order to perform additional package splitting.
10359 In either case, the function should set
10360 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
10361 <link linkend='var-FILES'><filename>FILES</filename></link>,
10362 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10363 and other packaging variables appropriately in order to
10364 perform the desired splitting.
10365 </para>
10366 </glossdef>
10367 </glossentry>
10368
10369 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
10370 <info>
10371 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."
10372 </info>
10373 <glossdef>
10374 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010375 Extra options passed to the <filename>make</filename>
10376 command during the
10377 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
10378 task in order to specify parallel compilation on the local
10379 build host.
10380 This variable is usually in the form "-j <replaceable>x</replaceable>",
10381 where <replaceable>x</replaceable> represents the maximum
10382 number of parallel threads <filename>make</filename> can
10383 run.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010384 <note><title>Caution</title>
10385 In order for <filename>PARALLEL_MAKE</filename> to be
10386 effective, <filename>make</filename> must be called
10387 with
10388 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10389 An easy way to ensure this is to use the
10390 <filename>oe_runmake</filename> function.
10391 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010392 </para>
10393
10394 <para>
10395 By default, the OpenEmbedded build system automatically
10396 sets this variable to be equal to the number of cores the
10397 build system uses.
10398 <note>
10399 If the software being built experiences dependency
10400 issues during the <filename>do_compile</filename>
10401 task that result in race conditions, you can clear
10402 the <filename>PARALLEL_MAKE</filename> variable within
10403 the recipe as a workaround.
10404 For information on addressing race conditions, see the
10405 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010406 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010407 </note>
10408 For single socket systems (i.e. one CPU), you should not
10409 have to override this variable to gain optimal parallelism
10410 during builds.
10411 However, if you have very large systems that employ
10412 multiple physical CPUs, you might want to make sure the
10413 <filename>PARALLEL_MAKE</filename> variable is not
10414 set higher than "-j 20".
10415 </para>
10416
10417 <para>
10418 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010419 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
10420 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010421 </para>
10422 </glossdef>
10423 </glossentry>
10424
10425 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
10426 <info>
10427 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
10428 </info>
10429 <glossdef>
10430 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010431 Extra options passed to the
10432 <filename>make install</filename> command during the
10433 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10434 task in order to specify parallel installation.
10435 This variable defaults to the value of
10436 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010437 <note><title>Notes and Cautions</title>
10438 <para>In order for <filename>PARALLEL_MAKEINST</filename>
10439 to be
10440 effective, <filename>make</filename> must be called
10441 with
10442 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10443 An easy way to ensure this is to use the
10444 <filename>oe_runmake</filename> function.</para>
10445
10446 <para>If the software being built experiences
10447 dependency issues during the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010448 <filename>do_install</filename> task that result in
10449 race conditions, you can clear the
10450 <filename>PARALLEL_MAKEINST</filename> variable within
10451 the recipe as a workaround.
10452 For information on addressing race conditions, see the
10453 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010454 section in the Yocto Project Development Tasks Manual.
10455 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010456 </note>
10457 </para>
10458 </glossdef>
10459 </glossentry>
10460
10461 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
10462 <info>
10463 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
10464 </info>
10465 <glossdef>
10466 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010467 Determines the action to take when a patch fails.
10468 You can set this variable to one of two values: "noop" and
10469 "user".
10470 </para>
10471
10472 <para>
10473 The default value of "noop" causes the build to simply fail
10474 when the OpenEmbedded build system cannot successfully
10475 apply a patch.
10476 Setting the value to "user" causes the build system to
10477 launch a shell and places you in the right location so that
10478 you can manually resolve the conflicts.
10479 </para>
10480
10481 <para>
10482 Set this variable in your
10483 <filename>local.conf</filename> file.
10484 </para>
10485 </glossdef>
10486 </glossentry>
10487
10488 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
10489 <info>
10490 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
10491 </info>
10492 <glossdef>
10493 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010494 Specifies the utility used to apply patches for a recipe
10495 during the
10496 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
10497 task.
10498 You can specify one of three utilities: "patch", "quilt", or
10499 "git".
10500 The default utility used is "quilt" except for the
10501 quilt-native recipe itself.
10502 Because the quilt tool is not available at the
10503 time quilt-native is being patched, it uses "patch".
10504 </para>
10505
10506 <para>
10507 If you wish to use an alternative patching tool, set the
10508 variable in the recipe using one of the following:
10509 <literallayout class='monospaced'>
10510 PATCHTOOL = "patch"
10511 PATCHTOOL = "quilt"
10512 PATCHTOOL = "git"
10513 </literallayout>
10514 </para>
10515 </glossdef>
10516 </glossentry>
10517
10518 <glossentry id='var-PE'><glossterm>PE</glossterm>
10519 <info>
10520 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."
10521 </info>
10522 <glossdef>
10523 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010524 The epoch of the recipe.
10525 By default, this variable is unset.
10526 The variable is used to make upgrades possible when the
10527 versioning scheme changes in some backwards incompatible
10528 way.
10529 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010530
10531 <para>
10532 <filename>PE</filename> is the default value of the
10533 <link linkend='var-PKGE'><filename>PKGE</filename></link>
10534 variable.
10535 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010536 </glossdef>
10537 </glossentry>
10538
10539 <glossentry id='var-PF'><glossterm>PF</glossterm>
10540 <info>
10541 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
10542 </info>
10543 <glossdef>
10544 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010545 Specifies the recipe or package name and includes all version and revision
10546 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
10547 <filename>bash-4.2-r1/</filename>).
10548 This variable is comprised of the following:
10549 <literallayout class='monospaced'>
10550 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
10551 </literallayout>
10552 </para>
10553 </glossdef>
10554 </glossentry>
10555
10556 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
10557 <info>
10558 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
10559 </info>
10560 <glossdef>
10561 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010562 When inheriting the
10563 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
10564 class, this variable identifies packages that contain
10565 the pixbuf loaders used with
10566 <filename>gdk-pixbuf</filename>.
10567 By default, the <filename>pixbufcache</filename> class
10568 assumes that the loaders are in the recipe's main package
10569 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
10570 Use this variable if the loaders you need are in a package
10571 other than that main package.
10572 </para>
10573 </glossdef>
10574 </glossentry>
10575
10576 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
10577 <info>
10578 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."
10579 </info>
10580 <glossdef>
10581 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010582 The name of the resulting package created by the
10583 OpenEmbedded build system.
10584 <note>
10585 When using the <filename>PKG</filename> variable, you
10586 must use a package name override.
10587 </note>
10588 </para>
10589
10590 <para>
10591 For example, when the
10592 <link linkend='ref-classes-debian'><filename>debian</filename></link>
10593 class renames the output package, it does so by setting
10594 <filename>PKG_<replaceable>packagename</replaceable></filename>.
10595 </para>
10596 </glossdef>
10597 </glossentry>
10598
10599 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
10600 <info>
10601 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
10602 </info>
10603 <glossdef>
10604 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010605 The path to <filename>pkg-config</filename> files for the
10606 current build context.
10607 <filename>pkg-config</filename> reads this variable
10608 from the environment.
10609 </para>
10610 </glossdef>
10611 </glossentry>
10612
10613 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
10614 <info>
10615 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
10616 </info>
10617 <glossdef>
10618 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010619 Points to the destination directory for files to be
10620 packaged before they are split into individual packages.
10621 This directory defaults to the following:
10622 <literallayout class='monospaced'>
10623 ${WORKDIR}/package
10624 </literallayout>
10625 </para>
10626
10627 <para>
10628 Do not change this default.
10629 </para>
10630 </glossdef>
10631 </glossentry>
10632
10633 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
10634 <info>
10635 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
10636 </info>
10637 <glossdef>
10638 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010639 Points to a shared, global-state directory that holds data
10640 generated during the packaging process.
10641 During the packaging process, the
10642 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10643 task packages data for each recipe and installs it into
10644 this temporary, shared area.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010645 This directory defaults to the following, which you should
10646 not change:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010647 <literallayout class='monospaced'>
10648 ${STAGING_DIR_HOST}/pkgdata
10649 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010650 For examples of how this data is used, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010651 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
10652 section in the Yocto Project Overview and Concepts Manual
10653 and the
10654 "<ulink url='&YOCTO_DOCS_DEV_URL;#viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></ulink>"
10655 section in the Yocto Project Development Tasks Manual.
10656 For more information on the shared, global-state directory,
10657 see
10658 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010659 </para>
10660 </glossdef>
10661 </glossentry>
10662
10663 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
10664 <info>
10665 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
10666 </info>
10667 <glossdef>
10668 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010669 Points to the parent directory for files to be packaged
10670 after they have been split into individual packages.
10671 This directory defaults to the following:
10672 <literallayout class='monospaced'>
10673 ${WORKDIR}/packages-split
10674 </literallayout>
10675 </para>
10676
10677 <para>
10678 Under this directory, the build system creates
10679 directories for each package specified in
10680 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
10681 Do not change this default.
10682 </para>
10683 </glossdef>
10684 </glossentry>
10685
10686 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
10687 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010688 PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010689 </info>
10690 <glossdef>
10691 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010692 Points to a temporary work area where the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010693 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010694 task saves package metadata.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010695 The <filename>PKGDESTWORK</filename> location defaults to
10696 the following:
10697 <literallayout class='monospaced'>
10698 ${WORKDIR}/pkgdata
10699 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010700 Do not change this default.
10701 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010702
10703 <para>
10704 The
10705 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10706 task copies the package metadata from
10707 <filename>PKGDESTWORK</filename> to
10708 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
10709 to make it available globally.
10710 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010711 </glossdef>
10712 </glossentry>
10713
10714 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
10715 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010716 PKGE[doc] = "The epoch of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010717 </info>
10718 <glossdef>
10719 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010720 The epoch of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010721 By default, <filename>PKGE</filename> is set to
10722 <link linkend='var-PE'><filename>PE</filename></link>.
10723 </para>
10724 </glossdef>
10725 </glossentry>
10726
10727 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
10728 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010729 PKGR[doc] = "The revision of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010730 </info>
10731 <glossdef>
10732 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010733 The revision of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010734 By default, <filename>PKGR</filename> is set to
10735 <link linkend='var-PR'><filename>PR</filename></link>.
10736 </para>
10737 </glossdef>
10738 </glossentry>
10739
10740 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
10741 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010742 PKGV[doc] = "The version of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010743 </info>
10744 <glossdef>
10745 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010746 The version of the package(s) built by the
10747 recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010748 By default, <filename>PKGV</filename> is set to
10749 <link linkend='var-PV'><filename>PV</filename></link>.
10750 </para>
10751 </glossdef>
10752 </glossentry>
10753
10754 <glossentry id='var-PN'><glossterm>PN</glossterm>
10755 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010756 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010757 </info>
10758 <glossdef>
10759 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010760 This variable can have two separate functions depending on the context: a recipe
10761 name or a resulting package name.
10762 </para>
10763
10764 <para>
10765 <filename>PN</filename> refers to a recipe name in the context of a file used
10766 by the OpenEmbedded build system as input to create a package.
10767 The name is normally extracted from the recipe file name.
10768 For example, if the recipe is named
10769 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
10770 will be "expat".
10771 </para>
10772
10773 <para>
10774 The variable refers to a package name in the context of a file created or produced by the
10775 OpenEmbedded build system.
10776 </para>
10777
10778 <para>
10779 If applicable, the <filename>PN</filename> variable also contains any special
10780 suffix or prefix.
10781 For example, using <filename>bash</filename> to build packages for the native
10782 machine, <filename>PN</filename> is <filename>bash-native</filename>.
10783 Using <filename>bash</filename> to build packages for the target and for Multilib,
10784 <filename>PN</filename> would be <filename>bash</filename> and
10785 <filename>lib64-bash</filename>, respectively.
10786 </para>
10787 </glossdef>
10788 </glossentry>
10789
10790 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
10791 <info>
10792 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
10793 </info>
10794 <glossdef>
10795 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010796 Lists recipes you do not want the OpenEmbedded build system
10797 to build.
10798 This variable works in conjunction with the
10799 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010800 class, which is inherited globally.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010801 </para>
10802
10803 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010804 To prevent a recipe from being built, use the
10805 <filename>PNBLACKLIST</filename> variable in your
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010806 <filename>local.conf</filename> file.
10807 Here is an example that prevents
10808 <filename>myrecipe</filename> from being built:
10809 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010810 PNBLACKLIST[myrecipe] = "Not supported by our organization."
10811 </literallayout>
10812 </para>
10813 </glossdef>
10814 </glossentry>
10815
10816 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
10817 <info>
10818 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."
10819 </info>
10820 <glossdef>
10821 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010822 Specifies a list of functions to call once the
10823 OpenEmbedded build system has created the host part of
10824 the SDK.
10825 You can specify functions separated by semicolons:
10826 <literallayout class='monospaced'>
10827 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
10828 </literallayout>
10829 </para>
10830
10831 <para>
10832 If you need to pass the SDK path to a command
10833 within a function, you can use
10834 <filename>${SDK_DIR}</filename>, which points to
10835 the parent directory used by the OpenEmbedded build
10836 system when creating SDK output.
10837 See the
10838 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10839 variable for more information.
10840 </para>
10841 </glossdef>
10842 </glossentry>
10843
10844 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
10845 <info>
10846 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."
10847 </info>
10848 <glossdef>
10849 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010850 Specifies a list of functions to call once the
10851 OpenEmbedded build system has created the target part of
10852 the SDK.
10853 You can specify functions separated by semicolons:
10854 <literallayout class='monospaced'>
10855 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
10856 </literallayout>
10857 </para>
10858
10859 <para>
10860 If you need to pass the SDK path to a command
10861 within a function, you can use
10862 <filename>${SDK_DIR}</filename>, which points to
10863 the parent directory used by the OpenEmbedded build
10864 system when creating SDK output.
10865 See the
10866 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10867 variable for more information.
10868 </para>
10869 </glossdef>
10870 </glossentry>
10871
10872 <glossentry id='var-PR'><glossterm>PR</glossterm>
10873 <info>
10874 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
10875 </info>
10876 <glossdef>
10877 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010878 The revision of the recipe. The default value for this
10879 variable is "r0".
10880 Subsequent revisions of the recipe conventionally have the
10881 values "r1", "r2", and so forth.
10882 When
10883 <link linkend='var-PV'><filename>PV</filename></link>
10884 increases, <filename>PR</filename> is conventionally reset
10885 to "r0".
10886 <note>
10887 The OpenEmbedded build system does not need the aid of
10888 <filename>PR</filename> to know when to rebuild a
10889 recipe.
10890 The build system uses the task
Brad Bishop316dfdd2018-06-25 12:45:53 -040010891 <ulink url='&YOCTO_DOCS_OM_URL;#overview-checksums'>input checksums</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010892 along with the
10893 <link linkend='structure-build-tmp-stamps'>stamp</link>
10894 and
Brad Bishop316dfdd2018-06-25 12:45:53 -040010895 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state cache</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010896 mechanisms.
10897 </note>
10898 The <filename>PR</filename> variable primarily becomes
10899 significant when a package manager dynamically installs
10900 packages on an already built image.
10901 In this case, <filename>PR</filename>, which is the default
10902 value of
10903 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
10904 helps the package manager distinguish which package is the
10905 most recent one in cases where many packages have the same
10906 <filename>PV</filename> (i.e. <filename>PKGV</filename>).
10907 A component having many packages with the same
10908 <filename>PV</filename> usually means that the packages all
10909 install the same upstream version, but with later
10910 (<filename>PR</filename>) version packages including
10911 packaging fixes.
10912 <note>
10913 <filename>PR</filename> does not need to be increased
10914 for changes that do not change the package contents or
10915 metadata.
10916 </note>
10917 Because manually managing <filename>PR</filename> can be
10918 cumbersome and error-prone, an automated solution exists.
10919 See the
10920 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010921 section in the Yocto Project Development Tasks Manual
10922 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010923 </para>
10924 </glossdef>
10925 </glossentry>
10926
10927 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
10928 <info>
10929 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
10930 </info>
10931 <glossdef>
10932 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040010933 If multiple recipes provide the same item, this variable
10934 determines which recipe is preferred and thus provides
10935 the item (i.e. the preferred provider).
10936 You should always suffix this variable with the name of the
10937 provided item.
10938 And, you should define the variable using the preferred
10939 recipe's name
10940 (<link linkend='var-PN'><filename>PN</filename></link>).
10941 Here is a common example:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010942 <literallayout class='monospaced'>
10943 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
Brad Bishop316dfdd2018-06-25 12:45:53 -040010944 </literallayout>
10945 In the previous example, multiple recipes are providing
10946 "virtual/kernel".
10947 The <filename>PREFERRED_PROVIDER</filename> variable is
10948 set with the name (<filename>PN</filename>) of the recipe
10949 you prefer to provide "virtual/kernel".
10950 </para>
10951
10952 <para>
10953 Following are more examples:
10954 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010955 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
10956 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
10957 </literallayout>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010958 For more information, see the
10959 "<ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>Using Virtual Providers</ulink>"
10960 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010961 <note>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010962 If you use a <filename>virtual/*</filename> item
10963 with <filename>PREFERRED_PROVIDER</filename>, then any
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010964 recipe that
10965 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010966 that item but is not selected (defined) by
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010967 <filename>PREFERRED_PROVIDER</filename> is prevented
10968 from building, which is usually desirable since this
10969 mechanism is designed to select between mutually
10970 exclusive alternative providers.
10971 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010972 </para>
10973 </glossdef>
10974 </glossentry>
10975
10976 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
10977 <info>
10978 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
10979 </info>
10980 <glossdef>
10981 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010982 If multiple versions of recipes exist, this
10983 variable determines which version is given preference.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010984 You must always suffix the variable with the
10985 <link linkend='var-PN'><filename>PN</filename></link>
10986 you want to select, and you should set the
10987 <link linkend='var-PV'><filename>PV</filename></link>
10988 accordingly for precedence.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010989 </para>
10990
10991 <para>
10992 The <filename>PREFERRED_VERSION</filename> variable
10993 supports limited wildcard use through the
10994 "<filename>%</filename>" character.
10995 You can use the character to match any number of
10996 characters, which can be useful when specifying versions
10997 that contain long revision numbers that potentially change.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010998 Here are two examples:
10999 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011000 PREFERRED_VERSION_python = "3.4.0"
Brad Bishopc342db32019-05-15 21:57:59 -040011001 PREFERRED_VERSION_linux-yocto = "5.0%"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011002 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011003 <note><title>Important</title>
11004 The use of the "<filename>%</filename>" character
11005 is limited in that it only works at the end of the
11006 string.
11007 You cannot use the wildcard character in any other
11008 location of the string.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011009 </note>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011010 </para>
11011
11012 <para>
11013 The specified version is matched against
11014 <link linkend='var-PV'><filename>PV</filename></link>,
11015 which does not necessarily match the version part of
11016 the recipe's filename.
11017 For example, consider two recipes
11018 <filename>foo_1.2.bb</filename> and
11019 <filename>foo_git.bb</filename> where
11020 <filename>foo_git.bb</filename> contains the following
11021 assignment:
11022 <literallayout class='monospaced'>
11023 PV = "1.1+git${SRCPV}"
11024 </literallayout>
11025 In this case, the correct way to select
11026 <filename>foo_git.bb</filename> is by using an
11027 assignment such as the following:
11028 <literallayout class='monospaced'>
11029 PREFERRED_VERSION_foo = "1.1+git%"
11030 </literallayout>
11031 Compare that previous example against the following
11032 incorrect example, which does not work:
11033 <literallayout class='monospaced'>
11034 PREFERRED_VERSION_foo = "git"
11035 </literallayout>
11036 </para>
11037
11038 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011039 Sometimes the <filename>PREFERRED_VERSION</filename>
11040 variable can be set by configuration files in a way that
11041 is hard to change.
11042 You can use
11043 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
11044 to set a machine-specific override.
11045 Here is an example:
11046 <literallayout class='monospaced'>
Brad Bishopc342db32019-05-15 21:57:59 -040011047 PREFERRED_VERSION_linux-yocto_qemux86 = "5.0%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011048 </literallayout>
11049 Although not recommended, worst case, you can also use the
11050 "forcevariable" override, which is the strongest override
11051 possible.
11052 Here is an example:
11053 <literallayout class='monospaced'>
Brad Bishopc342db32019-05-15 21:57:59 -040011054 PREFERRED_VERSION_linux-yocto_forcevariable = "5.0%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011055 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011056 <note>
11057 The <filename>_forcevariable</filename> override is
11058 not handled specially.
11059 This override only works because the default value of
Brad Bishop316dfdd2018-06-25 12:45:53 -040011060 <filename>OVERRIDES</filename> includes
11061 "forcevariable".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011062 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011063 </para>
11064 </glossdef>
11065 </glossentry>
11066
11067 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
11068 <info>
11069 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
11070 </info>
11071 <glossdef>
11072 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011073 Specifies additional paths from which the OpenEmbedded
11074 build system gets source code.
11075 When the build system searches for source code, it first
11076 tries the local download directory.
11077 If that location fails, the build system tries locations
11078 defined by <filename>PREMIRRORS</filename>, the upstream
11079 source, and then locations specified by
11080 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
11081 in that order.
11082 </para>
11083
11084 <para>
11085 Assuming your distribution
11086 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
11087 is "poky", the default value for
11088 <filename>PREMIRRORS</filename> is defined in the
11089 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011090 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011091 </para>
11092
11093 <para>
11094 Typically, you could add a specific server for the
11095 build system to attempt before any others by adding
11096 something like the following to the
11097 <filename>local.conf</filename> configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011098 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011099 <literallayout class='monospaced'>
11100 PREMIRRORS_prepend = "\
11101 git://.*/.* http://www.yoctoproject.org/sources/ \n \
11102 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
11103 http://.*/.* http://www.yoctoproject.org/sources/ \n \
11104 https://.*/.* http://www.yoctoproject.org/sources/ \n"
11105 </literallayout>
11106 These changes cause the build system to intercept
11107 Git, FTP, HTTP, and HTTPS requests and direct them to
11108 the <filename>http://</filename> sources mirror.
11109 You can use <filename>file://</filename> URLs to point
11110 to local directories or network shares as well.
11111 </para>
11112 </glossdef>
11113 </glossentry>
11114
11115 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
11116 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011117 PRIORITY[doc] = "Indicates the importance of a package. The default value is 'optional'. Other standard values are 'required', 'standard', and 'extra'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011118 </info>
11119 <glossdef>
11120 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011121 Indicates the importance of a package.
11122 </para>
11123
11124 <para>
11125 <filename>PRIORITY</filename> is considered to be part of
11126 the distribution policy because the importance of any given
11127 recipe depends on the purpose for which the distribution
11128 is being produced.
11129 Thus, <filename>PRIORITY</filename> is not normally set
11130 within recipes.
11131 </para>
11132
11133 <para>
11134 You can set <filename>PRIORITY</filename> to "required",
11135 "standard", "extra", and "optional", which is the default.
11136 </para>
11137 </glossdef>
11138 </glossentry>
11139
11140 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
11141 <info>
11142 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
11143 </info>
11144 <glossdef>
11145 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011146 Specifies libraries installed within a recipe that
11147 should be ignored by the OpenEmbedded build system's
11148 shared library resolver.
11149 This variable is typically used when software being
11150 built by a recipe has its own private versions of a
11151 library normally provided by another recipe.
11152 In this case, you would not want the package containing
11153 the private libraries to be set as a dependency on other
11154 unrelated packages that should instead depend on the
11155 package providing the standard version of the library.
11156 </para>
11157
11158 <para>
11159 Libraries specified in this variable should be specified
11160 by their file name.
11161 For example, from the Firefox recipe in meta-browser:
11162 <literallayout class='monospaced'>
11163 PRIVATE_LIBS = "libmozjs.so \
11164 libxpcom.so \
11165 libnspr4.so \
11166 libxul.so \
11167 libmozalloc.so \
11168 libplc4.so \
11169 libplds4.so"
11170 </literallayout>
11171 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011172
11173 <para>
11174 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011175 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11176 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011177 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011178 </glossdef>
11179 </glossentry>
11180
11181 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
11182 <info>
11183 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."
11184 </info>
11185 <glossdef>
11186 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011187 A list of aliases by which a particular recipe can be
11188 known.
11189 By default, a recipe's own
11190 <filename><link linkend='var-PN'>PN</link></filename>
11191 is implicitly already in its <filename>PROVIDES</filename>
Andrew Geissler82c905d2020-04-13 13:39:40 -050011192 list and therefore does not need to mention that it provides itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011193 If a recipe uses <filename>PROVIDES</filename>, the
11194 additional aliases are synonyms for the recipe and can
Andrew Geissler82c905d2020-04-13 13:39:40 -050011195 be useful for satisfying dependencies of other recipes during
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011196 the build as specified by
11197 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
11198 </para>
11199
11200 <para>
11201 Consider the following example
Andrew Geissler82c905d2020-04-13 13:39:40 -050011202 <filename>PROVIDES</filename> statement from the recipe
11203 file <filename>eudev_3.2.9.bb</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011204 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -050011205 PROVIDES = "udev"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011206 </literallayout>
11207 The <filename>PROVIDES</filename> statement results in
Andrew Geissler82c905d2020-04-13 13:39:40 -050011208 the "eudev" recipe also being available as simply "udev".
11209
11210 <note>
11211 Given that a recipe's own recipe name is already
11212 implicitly in its own <filename>PROVIDES</filename> list,
11213 it is unnecessary to add aliases with the "+=" operator;
11214 using a simple assignment will be sufficient. In other
11215 words, while you could write:
11216 <literallayout class='monospaced'>
11217 PROVIDES += "udev"
11218 </literallayout>
11219 in the above, the "+=" is overkill and unnecessary.
11220 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011221 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011222
11223 <para>
11224 In addition to providing recipes under alternate names,
11225 the <filename>PROVIDES</filename> mechanism is also used
11226 to implement virtual targets.
11227 A virtual target is a name that corresponds to some
11228 particular functionality (e.g. a Linux kernel).
11229 Recipes that provide the functionality in question list the
11230 virtual target in <filename>PROVIDES</filename>.
11231 Recipes that depend on the functionality in question can
Brad Bishop316dfdd2018-06-25 12:45:53 -040011232 include the virtual target in <filename>DEPENDS</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011233 to leave the choice of provider open.
11234 </para>
11235
11236 <para>
11237 Conventionally, virtual targets have names on the form
11238 "virtual/function" (e.g. "virtual/kernel").
11239 The slash is simply part of the name and has no
11240 syntactical significance.
11241 </para>
11242
11243 <para>
11244 The
11245 <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
11246 variable is used to select which particular recipe
11247 provides a virtual target.
11248 <note>
11249 <para>A corresponding mechanism for virtual runtime
11250 dependencies (packages) exists.
11251 However, the mechanism does not depend on any special
11252 functionality beyond ordinary variable assignments.
11253 For example,
11254 <filename>VIRTUAL-RUNTIME_dev_manager</filename>
11255 refers to the package of the component that manages
11256 the <filename>/dev</filename> directory.</para>
11257
11258 <para>Setting the "preferred provider" for runtime
11259 dependencies is as simple as using the following
11260 assignment in a configuration file:</para>
11261 <literallayout class='monospaced'>
11262 VIRTUAL-RUNTIME_dev_manager = "udev"
11263 </literallayout>
11264 </note>
11265 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011266 </glossdef>
11267 </glossentry>
11268
11269 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
11270 <info>
11271 PRSERV_HOST[doc] = "The network based PR service host and port."
11272 </info>
11273 <glossdef>
11274 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011275 The network based
11276 <link linkend='var-PR'><filename>PR</filename></link>
11277 service host and port.
11278 </para>
11279
11280 <para>
11281 The <filename>conf/local.conf.sample.extended</filename>
11282 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011283 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011284 shows how the <filename>PRSERV_HOST</filename> variable is
11285 set:
11286 <literallayout class='monospaced'>
11287 PRSERV_HOST = "localhost:0"
11288 </literallayout>
11289 You must set the variable if you want to automatically
11290 start a local
11291 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
11292 You can set <filename>PRSERV_HOST</filename> to other
11293 values to use a remote PR service.
11294 </para>
11295 </glossdef>
11296 </glossentry>
11297
11298 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
11299 <info>
11300 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
11301 </info>
11302 <glossdef>
11303 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011304 Specifies whether or not
11305 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
11306 (ptest) functionality is enabled when building a recipe.
11307 You should not set this variable directly.
11308 Enabling and disabling building Package Tests
11309 at build time should be done by adding "ptest" to (or
11310 removing it from)
11311 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
11312 </para>
11313 </glossdef>
11314 </glossentry>
11315
11316 <glossentry id='var-PV'><glossterm>PV</glossterm>
11317 <info>
11318 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
11319 </info>
11320 <glossdef>
11321 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011322 The version of the recipe.
11323 The version is normally extracted from the recipe filename.
11324 For example, if the recipe is named
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011325 <filename>expat_2.0.1.bb</filename>, then the default value
11326 of <filename>PV</filename> will be "2.0.1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011327 <filename>PV</filename> is generally not overridden within
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011328 a recipe unless it is building an unstable (i.e.
11329 development) version from a source code repository
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011330 (e.g. Git or Subversion).
11331 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011332
11333 <para>
11334 <filename>PV</filename> is the default value of the
11335 <link linkend='var-PKGV'><filename>PKGV</filename></link>
11336 variable.
11337 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011338 </glossdef>
11339 </glossentry>
11340
11341 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
11342 <info>
11343 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."
11344 </info>
11345 <glossdef>
11346 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011347 When used by recipes that inherit the
11348 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11349 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11350 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11351 or
11352 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11353 classes, denotes the Application Binary Interface (ABI)
11354 currently in use for Python.
11355 By default, the ABI is "m".
11356 You do not have to set this variable as the OpenEmbedded
11357 build system sets it for you.
11358 </para>
11359
11360 <para>
11361 The OpenEmbedded build system uses the ABI to construct
11362 directory names used when installing the Python headers
11363 and libraries in sysroot
11364 (e.g. <filename>.../python3.3m/...</filename>).
11365 </para>
11366
11367 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011368 Recipes that inherit the <filename>distutils</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011369 class during cross-builds also use this variable to
11370 locate the headers and libraries of the appropriate Python
11371 that the extension is targeting.
11372 </para>
11373 </glossdef>
11374 </glossentry>
11375
11376 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
11377 <info>
11378 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
11379 </info>
11380 <glossdef>
11381 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011382 When used by recipes that inherit the
11383 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11384 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11385 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11386 or
11387 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11388 classes, specifies the major Python version being built.
Brad Bishop96ff1982019-08-19 13:50:42 -040011389 For Python 3.x, <filename>PYTHON_PN</filename> would be
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011390 "python3".
11391 You do not have to set this variable as the
11392 OpenEmbedded build system automatically sets it for you.
11393 </para>
11394
11395 <para>
11396 The variable allows recipes to use common infrastructure
11397 such as the following:
11398 <literallayout class='monospaced'>
11399 DEPENDS += "${PYTHON_PN}-native"
11400 </literallayout>
11401 In the previous example, the version of the dependency
11402 is <filename>PYTHON_PN</filename>.
11403 </para>
11404 </glossdef>
11405 </glossentry>
11406
11407 </glossdiv>
11408
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011409 <glossdiv id='var-glossary-r'><title>R</title>
11410
11411 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
11412 <info>
11413 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
11414 </info>
11415 <glossdef>
11416 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011417 The minimal command and arguments to run
11418 <filename>ranlib</filename>.
11419 </para>
11420 </glossdef>
11421 </glossentry>
11422
11423 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
11424 <info>
11425 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."
11426 </info>
11427 <glossdef>
11428 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011429 The list of packages that conflict with packages.
11430 Note that packages will not be installed if conflicting
11431 packages are not first removed.
11432 </para>
11433
11434 <para>
11435 Like all package-controlling variables, you must always use
11436 them in conjunction with a package name override.
11437 Here is an example:
11438 <literallayout class='monospaced'>
11439 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
11440 </literallayout>
11441 </para>
11442
11443 <para>
11444 BitBake, which the OpenEmbedded build system uses, supports
11445 specifying versioned dependencies.
11446 Although the syntax varies depending on the packaging
11447 format, BitBake hides these differences from you.
11448 Here is the general syntax to specify versions with
11449 the <filename>RCONFLICTS</filename> variable:
11450 <literallayout class='monospaced'>
11451 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11452 </literallayout>
11453 For <filename>operator</filename>, you can specify the
11454 following:
11455 <literallayout class='monospaced'>
11456 =
11457 &lt;
11458 &gt;
11459 &lt;=
11460 &gt;=
11461 </literallayout>
11462 For example, the following sets up a dependency on version
11463 1.2 or greater of the package <filename>foo</filename>:
11464 <literallayout class='monospaced'>
11465 RCONFLICTS_${PN} = "foo (>= 1.2)"
11466 </literallayout>
11467 </para>
11468 </glossdef>
11469 </glossentry>
11470
11471 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
11472 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011473 RDEPENDS[doc] = "Lists runtime dependencies of a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011474 </info>
11475 <glossdef>
11476 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011477 Lists runtime dependencies of a package.
11478 These dependencies are other packages that must be
11479 installed in order for the package to function correctly.
11480 As an example, the following assignment declares that the
11481 package <filename>foo</filename> needs the packages
11482 <filename>bar</filename> and <filename>baz</filename> to
11483 be installed:
11484 <literallayout class='monospaced'>
11485 RDEPENDS_foo = "bar baz"
11486 </literallayout>
11487 The most common types of package runtime dependencies are
11488 automatically detected and added.
11489 Therefore, most recipes do not need to set
11490 <filename>RDEPENDS</filename>.
11491 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011492 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11493 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011494 </para>
11495
11496 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011497 The practical effect of the above
11498 <filename>RDEPENDS</filename> assignment is that
11499 <filename>bar</filename> and <filename>baz</filename>
11500 will be declared as dependencies inside the package
11501 <filename>foo</filename> when it is written out by one of
11502 the
11503 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
11504 tasks.
11505 Exactly how this is done depends on which package format
11506 is used, which is determined by
11507 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
11508 When the corresponding package manager installs the
11509 package, it will know to also install the packages on
11510 which it depends.
11511 </para>
11512
11513 <para>
11514 To ensure that the packages <filename>bar</filename> and
11515 <filename>baz</filename> get built, the previous
11516 <filename>RDEPENDS</filename> assignment also causes a task
11517 dependency to be added.
11518 This dependency is from the recipe's
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011519 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011520 (not to be confused with
11521 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
11522 task to the <filename>do_package_write_*</filename>
11523 task of the recipes that build <filename>bar</filename> and
11524 <filename>baz</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011525 </para>
11526
11527 <para>
11528 The names of the packages you list within
11529 <filename>RDEPENDS</filename> must be the names of other
11530 packages - they cannot be recipe names.
11531 Although package names and recipe names usually match,
11532 the important point here is that you are
11533 providing package names within the
11534 <filename>RDEPENDS</filename> variable.
11535 For an example of the default list of packages created from
11536 a recipe, see the
11537 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11538 variable.
11539 </para>
11540
11541 <para>
11542 Because the <filename>RDEPENDS</filename> variable applies
11543 to packages being built, you should always use the variable
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011544 in a form with an attached package name (remember that a
11545 single recipe can build multiple packages).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011546 For example, suppose you are building a development package
11547 that depends on the <filename>perl</filename> package.
11548 In this case, you would use the following
11549 <filename>RDEPENDS</filename> statement:
11550 <literallayout class='monospaced'>
11551 RDEPENDS_${PN}-dev += "perl"
11552 </literallayout>
11553 In the example, the development package depends on
11554 the <filename>perl</filename> package.
11555 Thus, the <filename>RDEPENDS</filename> variable has the
11556 <filename>${PN}-dev</filename> package name as part of the
11557 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011558 <note>
11559 <title>Caution</title>
11560 <filename>RDEPENDS_${PN}-dev</filename> includes
11561 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
11562 by default.
11563 This default is set in the BitBake configuration file
11564 (<filename>meta/conf/bitbake.conf</filename>).
11565 Be careful not to accidentally remove
11566 <filename>${PN}</filename> when modifying
11567 <filename>RDEPENDS_${PN}-dev</filename>.
11568 Use the "+=" operator rather than the "=" operator.
11569 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011570 </para>
11571
11572 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011573 The package names you use with
11574 <filename>RDEPENDS</filename> must appear as they would in
11575 the <filename>PACKAGES</filename> variable.
11576 The
11577 <link linkend='var-PKG'><filename>PKG</filename></link>
11578 variable allows a different name to be used for
11579 the final package (e.g. the
11580 <link linkend='ref-classes-debian'><filename>debian</filename></link>
11581 class uses this to rename packages), but this final package
11582 name cannot be used with <filename>RDEPENDS</filename>,
11583 which makes sense as <filename>RDEPENDS</filename> is meant
11584 to be independent of the package format used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011585 </para>
11586
11587 <para>
11588 BitBake, which the OpenEmbedded build system uses, supports
11589 specifying versioned dependencies.
11590 Although the syntax varies depending on the packaging
11591 format, BitBake hides these differences from you.
11592 Here is the general syntax to specify versions with
11593 the <filename>RDEPENDS</filename> variable:
11594 <literallayout class='monospaced'>
11595 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11596 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011597 For <replaceable>operator</replaceable>, you can specify the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011598 following:
11599 <literallayout class='monospaced'>
11600 =
11601 &lt;
11602 &gt;
11603 &lt;=
11604 &gt;=
11605 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011606 For <replaceable>version</replaceable>, provide the version
11607 number.
11608 <note><title>Tip</title>
11609 You can use
11610 <link linkend='var-EXTENDPKGV'><filename>EXTENDPKGV</filename></link>
11611 to provide a full package version specification.
11612 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011613 For example, the following sets up a dependency on version
11614 1.2 or greater of the package <filename>foo</filename>:
11615 <literallayout class='monospaced'>
11616 RDEPENDS_${PN} = "foo (>= 1.2)"
11617 </literallayout>
11618 </para>
11619
11620 <para>
11621 For information on build-time dependencies, see the
11622 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
11623 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011624 You can also see the
11625 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
11626 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
11627 sections in the BitBake User Manual for additional
11628 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011629 </para>
11630 </glossdef>
11631 </glossentry>
11632
11633 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
11634 <info>
11635 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."
11636 </info>
11637 <glossdef>
11638 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011639 When inheriting the
11640 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
11641 class, this
11642 variable identifies distribution features that must
11643 exist in the current configuration in order for the
11644 OpenEmbedded build system to build the recipe.
11645 In other words, if the
11646 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
11647 lists a feature that does not appear in
11648 <filename>DISTRO_FEATURES</filename> within the
11649 current configuration, an error occurs and the
11650 build stops.
11651 </para>
11652 </glossdef>
11653 </glossentry>
11654
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011655 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
11656 <info>
11657 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
11658 </info>
11659 <glossdef>
11660 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011661 With <filename>rm_work</filename> enabled, this
11662 variable specifies a list of recipes whose work directories
11663 should not be removed.
11664 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
11665 section for more details.
11666 </para>
11667 </glossdef>
11668 </glossentry>
11669
11670 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
11671 <info>
11672 ROOT_HOME[doc] = "Defines the root home directory."
11673 </info>
11674 <glossdef>
11675 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011676 Defines the root home directory.
11677 By default, this directory is set as follows in the
11678 BitBake configuration file:
11679 <literallayout class='monospaced'>
11680 ROOT_HOME ??= "/home/root"
11681 </literallayout>
11682 <note>
11683 This default value is likely used because some
11684 embedded solutions prefer to have a read-only root
11685 filesystem and prefer to keep writeable data in one
11686 place.
11687 </note>
11688 </para>
11689
11690 <para>
11691 You can override the default by setting the variable
11692 in any layer or in the <filename>local.conf</filename> file.
11693 Because the default is set using a "weak" assignment
11694 (i.e. "??="), you can use either of the following forms
11695 to define your override:
11696 <literallayout class='monospaced'>
11697 ROOT_HOME = "/root"
11698 ROOT_HOME ?= "/root"
11699 </literallayout>
11700 These override examples use <filename>/root</filename>,
11701 which is probably the most commonly used override.
11702 </para>
11703 </glossdef>
11704 </glossentry>
11705
11706 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
11707 <info>
11708 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
11709 </info>
11710 <glossdef>
11711 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011712 Indicates a filesystem image to include as the root
11713 filesystem.
11714 </para>
11715
11716 <para>
11717 The <filename>ROOTFS</filename> variable is an optional
11718 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011719 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011720 class.
11721 </para>
11722 </glossdef>
11723 </glossentry>
11724
11725 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
11726 <info>
11727 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
11728 </info>
11729 <glossdef>
11730 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011731 Specifies a list of functions to call after the
11732 OpenEmbedded build system has installed packages.
11733 You can specify functions separated by semicolons:
11734 <literallayout class='monospaced'>
11735 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11736 </literallayout>
11737 </para>
11738
11739 <para>
11740 If you need to pass the root filesystem path to a command
11741 within a function, you can use
11742 <filename>${IMAGE_ROOTFS}</filename>, which points to
11743 the directory that becomes the root filesystem image.
11744 See the
11745 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11746 variable for more information.
11747 </para>
11748 </glossdef>
11749 </glossentry>
11750
11751 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
11752 <info>
11753 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
11754 </info>
11755 <glossdef>
11756 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011757 Specifies a list of functions to call once the
11758 OpenEmbedded build system has created the root filesystem.
11759 You can specify functions separated by semicolons:
11760 <literallayout class='monospaced'>
11761 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11762 </literallayout>
11763 </para>
11764
11765 <para>
11766 If you need to pass the root filesystem path to a command
11767 within a function, you can use
11768 <filename>${IMAGE_ROOTFS}</filename>, which points to
11769 the directory that becomes the root filesystem image.
11770 See the
11771 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11772 variable for more information.
11773 </para>
11774 </glossdef>
11775 </glossentry>
11776
11777 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
11778 <info>
11779 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
11780 </info>
11781 <glossdef>
11782 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011783 Specifies a list of functions to call after the
11784 OpenEmbedded build system has removed unnecessary
11785 packages.
11786 When runtime package management is disabled in the
11787 image, several packages are removed including
11788 <filename>base-passwd</filename>,
11789 <filename>shadow</filename>, and
11790 <filename>update-alternatives</filename>.
11791 You can specify functions separated by semicolons:
11792 <literallayout class='monospaced'>
11793 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11794 </literallayout>
11795 </para>
11796
11797 <para>
11798 If you need to pass the root filesystem path to a command
11799 within a function, you can use
11800 <filename>${IMAGE_ROOTFS}</filename>, which points to
11801 the directory that becomes the root filesystem image.
11802 See the
11803 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11804 variable for more information.
11805 </para>
11806 </glossdef>
11807 </glossentry>
11808
11809 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
11810 <info>
11811 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
11812 </info>
11813 <glossdef>
11814 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011815 Specifies a list of functions to call before the
11816 OpenEmbedded build system has created the root filesystem.
11817 You can specify functions separated by semicolons:
11818 <literallayout class='monospaced'>
11819 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11820 </literallayout>
11821 </para>
11822
11823 <para>
11824 If you need to pass the root filesystem path to a command
11825 within a function, you can use
11826 <filename>${IMAGE_ROOTFS}</filename>, which points to
11827 the directory that becomes the root filesystem image.
11828 See the
11829 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11830 variable for more information.
11831 </para>
11832 </glossdef>
11833 </glossentry>
11834
11835 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
11836 <info>
11837 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."
11838 </info>
11839 <glossdef>
11840 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011841 A list of package name aliases that a package also provides.
11842 These aliases are useful for satisfying runtime dependencies
11843 of other packages both during the build and on the target
11844 (as specified by
11845 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
11846 <note>
11847 A package's own name is implicitly already in its
11848 <filename>RPROVIDES</filename> list.
11849 </note>
11850 </para>
11851
11852 <para>
11853 As with all package-controlling variables, you must always
11854 use the variable in conjunction with a package name override.
11855 Here is an example:
11856 <literallayout class='monospaced'>
11857 RPROVIDES_${PN} = "widget-abi-2"
11858 </literallayout>
11859 </para>
11860 </glossdef>
11861 </glossentry>
11862
11863 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
11864 <info>
11865 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."
11866 </info>
11867 <glossdef>
11868 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011869 A list of packages that extends the usability of a package
11870 being built.
11871 The package being built does not depend on this list of
11872 packages in order to successfully build, but rather
11873 uses them for extended usability.
11874 To specify runtime dependencies for packages, see the
11875 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
11876 variable.
11877 </para>
11878
11879 <para>
11880 The package manager will automatically install the
11881 <filename>RRECOMMENDS</filename> list of packages when
11882 installing the built package.
11883 However, you can prevent listed packages from being
11884 installed by using the
11885 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
11886 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
11887 and
11888 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
11889 variables.
11890 </para>
11891
11892 <para>
11893 Packages specified in
11894 <filename>RRECOMMENDS</filename> need not actually be
11895 produced.
11896 However, a recipe must exist that provides each package,
11897 either through the
11898 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11899 or
11900 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
11901 variables or the
11902 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
11903 variable, or an error will occur during the build.
11904 If such a recipe does exist and the package is not produced,
11905 the build continues without error.
11906 </para>
11907
11908 <para>
11909 Because the <filename>RRECOMMENDS</filename> variable
11910 applies to packages being built, you should always attach
11911 an override to the variable to specify the particular
11912 package whose usability is being extended.
11913 For example, suppose you are building a development package
11914 that is extended to support wireless functionality.
11915 In this case, you would use the following:
11916 <literallayout class='monospaced'>
11917 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
11918 </literallayout>
11919 In the example, the package name
11920 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
11921 must appear as it would in the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011922 <filename>PACKAGES</filename> namespace before any renaming
11923 of the output package by classes such as
11924 <filename>debian.bbclass</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011925 </para>
11926
11927 <para>
11928 BitBake, which the OpenEmbedded build system uses, supports
11929 specifying versioned recommends.
11930 Although the syntax varies depending on the packaging
11931 format, BitBake hides these differences from you.
11932 Here is the general syntax to specify versions with
11933 the <filename>RRECOMMENDS</filename> variable:
11934 <literallayout class='monospaced'>
11935 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11936 </literallayout>
11937 For <filename>operator</filename>, you can specify the
11938 following:
11939 <literallayout class='monospaced'>
11940 =
11941 &lt;
11942 &gt;
11943 &lt;=
11944 &gt;=
11945 </literallayout>
11946 For example, the following sets up a recommend on version
11947 1.2 or greater of the package <filename>foo</filename>:
11948 <literallayout class='monospaced'>
11949 RRECOMMENDS_${PN} = "foo (>= 1.2)"
11950 </literallayout>
11951 </para>
11952 </glossdef>
11953 </glossentry>
11954
11955 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
11956 <info>
11957 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."
11958 </info>
11959 <glossdef>
11960 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011961 A list of packages replaced by a package.
11962 The package manager uses this variable to determine which
11963 package should be installed to replace other package(s)
11964 during an upgrade.
11965 In order to also have the other package(s) removed at the
11966 same time, you must add the name of the other
11967 package to the
11968 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
11969 </para>
11970
11971 <para>
11972 As with all package-controlling variables, you must use
11973 this variable in conjunction with a package name
11974 override.
11975 Here is an example:
11976 <literallayout class='monospaced'>
11977 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
11978 </literallayout>
11979 </para>
11980
11981 <para>
11982 BitBake, which the OpenEmbedded build system uses, supports
11983 specifying versioned replacements.
11984 Although the syntax varies depending on the packaging
11985 format, BitBake hides these differences from you.
11986 Here is the general syntax to specify versions with
11987 the <filename>RREPLACES</filename> variable:
11988 <literallayout class='monospaced'>
11989 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11990 </literallayout>
11991 For <filename>operator</filename>, you can specify the
11992 following:
11993 <literallayout class='monospaced'>
11994 =
11995 &lt;
11996 &gt;
11997 &lt;=
11998 &gt;=
11999 </literallayout>
12000 For example, the following sets up a replacement using
12001 version 1.2 or greater of the package
12002 <filename>foo</filename>:
12003 <literallayout class='monospaced'>
12004 RREPLACES_${PN} = "foo (>= 1.2)"
12005 </literallayout>
12006 </para>
12007 </glossdef>
12008 </glossentry>
12009
12010 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
12011 <info>
12012 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."
12013 </info>
12014 <glossdef>
12015 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012016 A list of additional packages that you can suggest for
12017 installation by the package manager at the time a package
12018 is installed.
12019 Not all package managers support this functionality.
12020 </para>
12021
12022 <para>
12023 As with all package-controlling variables, you must always
12024 use this variable in conjunction with a package name
12025 override.
12026 Here is an example:
12027 <literallayout class='monospaced'>
12028 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
12029 </literallayout>
12030 </para>
12031 </glossdef>
12032 </glossentry>
12033
12034 </glossdiv>
12035
12036 <glossdiv id='var-glossary-s'><title>S</title>
12037
12038 <glossentry id='var-S'><glossterm>S</glossterm>
12039 <info>
12040 S[doc] = "The location in the Build Directory where unpacked package source code resides."
12041 </info>
12042 <glossdef>
12043 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012044 The location in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012045 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012046 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012047 By default, this directory is
12048 <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>,
12049 where <filename>${BPN}</filename> is the base recipe name
12050 and <filename>${PV}</filename> is the recipe version.
12051 If the source tarball extracts the code to a directory
12052 named anything other than <filename>${BPN}-${PV}</filename>,
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012053 or if the source code is fetched from an SCM such as
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012054 Git or Subversion, then you must set <filename>S</filename>
12055 in the recipe so that the OpenEmbedded build system
12056 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012057 </para>
12058
12059 <para>
12060 As an example, assume a
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012061 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012062 top-level folder named <filename>poky</filename> and a
12063 default Build Directory at <filename>poky/build</filename>.
12064 In this case, the work directory the build system uses
12065 to keep the unpacked recipe for <filename>db</filename>
12066 is the following:
12067 <literallayout class='monospaced'>
12068 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
12069 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012070 The unpacked source code resides in the
12071 <filename>db-5.1.19</filename> folder.
12072 </para>
12073
12074 <para>
12075 This next example assumes a Git repository.
12076 By default, Git repositories are cloned to
12077 <filename>${WORKDIR}/git</filename> during
12078 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
12079 Since this path is different from the default value of
12080 <filename>S</filename>, you must set it specifically
12081 so the source can be located:
12082 <literallayout class='monospaced'>
12083 SRC_URI = "git://path/to/repo.git"
12084 S = "${WORKDIR}/git"
12085 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012086 </para>
12087 </glossdef>
12088 </glossentry>
12089
12090 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
12091 <info>
12092 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."
12093 </info>
12094 <glossdef>
12095 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012096 Specifies a list of command-line utilities that should be
12097 checked for during the initial sanity checking process when
12098 running BitBake.
12099 If any of the utilities are not installed on the build host,
12100 then BitBake immediately exits with an error.
12101 </para>
12102 </glossdef>
12103 </glossentry>
12104
12105 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
12106 <info>
12107 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
12108 </info>
12109 <glossdef>
12110 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012111 A list of the host distribution identifiers that the
12112 build system has been tested against.
12113 Identifiers consist of the host distributor ID
12114 followed by the release,
12115 as reported by the <filename>lsb_release</filename> tool
12116 or as read from <filename>/etc/lsb-release</filename>.
12117 Separate the list items with explicit newline
12118 characters (<filename>\n</filename>).
12119 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
12120 and the current value of
12121 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
12122 does not appear in the list, then the build system reports
12123 a warning that indicates the current host distribution has
12124 not been tested as a build host.
12125 </para>
12126 </glossdef>
12127 </glossentry>
12128
12129 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
12130 <info>
12131 SDK_ARCH[doc] = "The target architecture for the SDK."
12132 </info>
12133 <glossdef>
12134 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012135 The target architecture for the SDK.
12136 Typically, you do not directly set this variable.
12137 Instead, use
12138 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
12139 </para>
12140 </glossdef>
12141 </glossentry>
12142
12143 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
12144 <info>
12145 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
12146 </info>
12147 <glossdef>
12148 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012149 The directory set up and used by the
12150 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012151 class to which the SDK is deployed.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012152 The <filename>populate_sdk_base</filename> class defines
12153 <filename>SDK_DEPLOY</filename> as follows:
12154 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012155 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012156 </literallayout>
12157 </para>
12158 </glossdef>
12159 </glossentry>
12160
12161 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
12162 <info>
12163 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
12164 </info>
12165 <glossdef>
12166 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012167 The parent directory used by the OpenEmbedded build system
12168 when creating SDK output.
12169 The
12170 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12171 class defines the variable as follows:
12172 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012173 SDK_DIR = "${WORKDIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012174 </literallayout>
12175 <note>
12176 The <filename>SDK_DIR</filename> directory is a
12177 temporary directory as it is part of
12178 <filename>WORKDIR</filename>.
12179 The final output directory is
12180 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12181 </note>
12182 </para>
12183 </glossdef>
12184 </glossentry>
12185
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012186 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
12187 <info>
12188 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
12189 </info>
12190 <glossdef>
12191 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012192 Controls whether or not shared state artifacts are copied
12193 into the extensible SDK.
12194 The default value of "full" copies all of the required
12195 shared state artifacts into the extensible SDK.
12196 The value "minimal" leaves these artifacts out of the
12197 SDK.
12198 <note>
12199 If you set the variable to "minimal", you need to
12200 ensure
12201 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
12202 is set in the SDK's configuration to enable the
12203 artifacts to be fetched as needed.
12204 </note>
12205 </para>
12206 </glossdef>
12207 </glossentry>
12208
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012209 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
12210 <info>
12211 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."
12212 </info>
12213 <glossdef>
12214 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012215 The manifest file for the host part of the SDK.
12216 This file lists all the installed packages that make up
Brad Bishop316dfdd2018-06-25 12:45:53 -040012217 the host part of the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012218 The file contains package information on a line-per-package
12219 basis as follows:
12220 <literallayout class='monospaced'>
12221 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12222 </literallayout>
12223 </para>
12224
12225 <para>
12226 The
12227 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12228 class defines the manifest file as follows:
12229 <literallayout class='monospaced'>
12230 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
12231 </literallayout>
12232 The location is derived using the
12233 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12234 and
12235 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12236 variables.
12237 </para>
12238 </glossdef>
12239 </glossentry>
12240
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012241 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
12242 <info>
12243 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
12244 </info>
12245 <glossdef>
12246 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012247 When set to "1", specifies to include the packagedata for
12248 all recipes in the "world" target in the extensible SDK.
12249 Including this data allows the
12250 <filename>devtool search</filename> command to find these
12251 recipes in search results, as well as allows the
12252 <filename>devtool add</filename> command to map
12253 dependencies more effectively.
12254 <note>
12255 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
12256 variable significantly increases build time because
12257 all of world needs to be built.
12258 Enabling the variable also slightly increases the size
12259 of the extensible SDK.
12260 </note>
12261 </para>
12262 </glossdef>
12263 </glossentry>
12264
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012265 <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
12266 <info>
12267 SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
12268 </info>
12269 <glossdef>
12270 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012271 When set to "1", specifies to include the toolchain in the
12272 extensible SDK.
12273 Including the toolchain is useful particularly when
12274 <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
12275 is set to "minimal" to keep the SDK reasonably small
12276 but you still want to provide a usable toolchain.
12277 For example, suppose you want to use the toolchain from an
Brad Bishopc342db32019-05-15 21:57:59 -040012278 IDE or from other tools and you do not
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012279 want to perform additional steps to install the toolchain.
12280 </para>
12281
12282 <para>
12283 The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
12284 defaults to "0" if <filename>SDK_EXT_TYPE</filename>
12285 is set to "minimal", and defaults to "1" if
12286 <filename>SDK_EXT_TYPE</filename> is set to "full".
12287 </para>
12288 </glossdef>
12289 </glossentry>
12290
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012291 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
12292 <info>
12293 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
12294 </info>
12295 <glossdef>
12296 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012297 A list of classes to remove from the
12298 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
12299 value globally within the extensible SDK configuration.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012300 The
12301 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12302 class sets the default value:
12303 <literallayout class='monospaced'>
12304 SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
12305 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012306 </para>
12307
12308 <para>
12309 Some classes are not generally applicable within
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012310 the extensible SDK context.
12311 You can use this variable to disable those classes.
12312 </para>
12313
12314 <para>
12315 For additional information on how to customize the
12316 extensible SDK's configuration, see the
12317 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12318 section in the Yocto Project Application Development and
12319 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012320 </para>
12321 </glossdef>
12322 </glossentry>
12323
12324 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
12325 <info>
12326 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
12327 </info>
12328 <glossdef>
12329 <para role="glossdeffirst">
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012330 A list of variables not allowed through from the
12331 OpenEmbedded build system configuration into the extensible
12332 SDK configuration.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012333 Usually, these are variables that are specific to the
12334 machine on which the build system is running and thus
12335 would be potentially problematic within the extensible SDK.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012336 </para>
12337
12338 <para>By default,
12339 <filename>SDK_LOCAL_CONF_BLACKLIST</filename> is set in the
12340 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12341 class and excludes the following variables:
12342 <literallayout class='monospaced'>
12343 <link linkend='var-CONF_VERSION'>CONF_VERSION</link>
12344 <link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link>
12345 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_NUMBER_PARSE_THREADS'>BB_NUMBER_PARSE_THREADS</ulink>
12346 <link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link>
12347 <link linkend='var-PRSERV_HOST'>PRSERV_HOST</link>
12348 <link linkend='var-SSTATE_MIRRORS'>SSTATE_MIRRORS</link>
12349 <link linkend='var-DL_DIR'>DL_DIR</link>
12350 <link linkend='var-SSTATE_DIR'>SSTATE_DIR</link>
12351 <link linkend='var-TMPDIR'>TMPDIR</link>
12352 <link linkend='var-BB_SERVER_TIMEOUT'>BB_SERVER_TIMEOUT</link>
12353 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012354 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012355
12356 <para>
12357 For additional information on how to customize the
12358 extensible SDK's configuration, see the
12359 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12360 section in the Yocto Project Application Development and
12361 the Extensible Software Development Kit (eSDK) manual.
12362 </para>
12363
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012364 </glossdef>
12365 </glossentry>
12366
12367 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
12368 <info>
12369 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
12370 </info>
12371 <glossdef>
12372 <para role="glossdeffirst">
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012373 A list of variables allowed through from the OpenEmbedded
12374 build system configuration into the extensible SDK
12375 configuration.
12376 By default, the list of variables is empty and is set in
12377 the
12378 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12379 class.
12380 </para>
12381
12382 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012383 This list overrides the variables specified using the
12384 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
12385 variable as well as any variables identified by automatic
12386 blacklisting due to the "/" character being found at the
12387 start of the value, which is usually indicative of being a
12388 path and thus might not be valid on the system where the
12389 SDK is installed.
12390 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012391
12392 <para>
12393 For additional information on how to customize the
12394 extensible SDK's configuration, see the
12395 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12396 section in the Yocto Project Application Development and
12397 the Extensible Software Development Kit (eSDK) manual.
12398 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012399 </glossdef>
12400 </glossentry>
12401
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012402 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
12403 <info>
12404 SDK_NAME[doc] = "The base name for SDK output files."
12405 </info>
12406 <glossdef>
12407 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012408 The base name for SDK output files.
12409 The name is derived from the
12410 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
12411 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12412 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12413 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
12414 and
12415 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
12416 variables:
12417 <literallayout class='monospaced'>
12418 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
12419 </literallayout>
12420 </para>
12421 </glossdef>
12422 </glossentry>
12423
12424 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
12425 <info>
12426 SDK_OS[doc] = "The operating system for which the SDK will be built."
12427 </info>
12428 <glossdef>
12429 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012430 Specifies the operating system for which the SDK
12431 will be built.
12432 The default value is the value of
12433 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
12434 </para>
12435 </glossdef>
12436 </glossentry>
12437
12438 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
12439 <info>
12440 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
12441 </info>
12442 <glossdef>
12443 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012444 The location used by the OpenEmbedded build system when
12445 creating SDK output.
12446 The
12447 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12448 class defines the variable as follows:
12449 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012450 SDK_DIR = "${WORKDIR}/sdk"
12451 SDK_OUTPUT = "${SDK_DIR}/image"
12452 SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012453 </literallayout>
12454 <note>
12455 The <filename>SDK_OUTPUT</filename> directory is a
12456 temporary directory as it is part of
Brad Bishop316dfdd2018-06-25 12:45:53 -040012457 <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12458 by way of
12459 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012460 The final output directory is
12461 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12462 </note>
12463 </para>
12464 </glossdef>
12465 </glossentry>
12466
12467 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
12468 <info>
12469 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."
12470 </info>
12471 <glossdef>
12472 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012473 Specifies a list of architectures compatible with
12474 the SDK machine.
12475 This variable is set automatically and should not
12476 normally be hand-edited.
12477 Entries are separated using spaces and listed in order
12478 of priority.
12479 The default value for
12480 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
12481 ${SDK_ARCH}-${SDKPKGSUFFIX}".
12482 </para>
12483 </glossdef>
12484 </glossentry>
12485
12486 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
12487 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012488 SDK_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system creates the SDK."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012489 </info>
12490 <glossdef>
12491 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012492 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012493 OpenEmbedded build system creates the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012494 You can specify functions separated by semicolons:
12495 <literallayout class='monospaced'>
12496 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12497 </literallayout>
12498 </para>
12499
12500 <para>
12501 If you need to pass an SDK path to a command within a
12502 function, you can use
12503 <filename>${SDK_DIR}</filename>, which points to
12504 the parent directory used by the OpenEmbedded build system
12505 when creating SDK output.
12506 See the
12507 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
12508 variable for more information.
12509 </para>
12510 </glossdef>
12511 </glossentry>
12512
12513 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
12514 <info>
12515 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
12516 </info>
12517 <glossdef>
12518 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012519 The toolchain binary prefix used for
12520 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012521 The OpenEmbedded build system uses the
12522 <filename>SDK_PREFIX</filename> value to set the
12523 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
12524 when building <filename>nativesdk</filename> recipes.
12525 The default value is "${SDK_SYS}-".
12526 </para>
12527 </glossdef>
12528 </glossentry>
12529
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012530 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
12531 <info>
12532 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
12533 </info>
12534 <glossdef>
12535 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012536 A list of shared state tasks added to the extensible SDK.
12537 By default, the following tasks are added:
12538 <literallayout class='monospaced'>
12539 do_populate_lic
12540 do_package_qa
12541 do_populate_sysroot
12542 do_deploy
12543 </literallayout>
12544 Despite the default value of "" for the
12545 <filename>SDK_RECRDEP_TASKS</filename> variable, the
12546 above four tasks are always added to the SDK.
12547 To specify tasks beyond these four, you need to use
12548 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
12549 you are defining additional tasks that are needed in
12550 order to build
12551 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
12552 </para>
12553 </glossdef>
12554 </glossentry>
12555
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012556 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
12557 <info>
12558 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
12559 </info>
12560 <glossdef>
12561 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012562 Specifies the system, including the architecture and the
12563 operating system, for which the SDK will be built.
12564 </para>
12565
12566 <para>
12567 The OpenEmbedded build system automatically sets this
12568 variable based on
12569 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12570 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
12571 and
12572 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
12573 You do not need to set the <filename>SDK_SYS</filename>
12574 variable yourself.
12575 </para>
12576 </glossdef>
12577 </glossentry>
12578
12579 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
12580 <info>
12581 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."
12582 </info>
12583 <glossdef>
12584 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012585 The manifest file for the target part of the SDK.
12586 This file lists all the installed packages that make up
12587 the target part of the SDK.
12588 The file contains package information on a line-per-package
12589 basis as follows:
12590 <literallayout class='monospaced'>
12591 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12592 </literallayout>
12593 </para>
12594
12595 <para>
12596 The
12597 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12598 class defines the manifest file as follows:
12599 <literallayout class='monospaced'>
12600 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
12601 </literallayout>
12602 The location is derived using the
12603 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12604 and
12605 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12606 variables.
12607 </para>
12608 </glossdef>
12609 </glossentry>
12610
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012611 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
12612 <info>
12613 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
12614 </info>
12615 <glossdef>
12616 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012617 A list of targets to install from shared state as part of
12618 the standard or extensible SDK installation.
12619 The default value is "${PN}" (i.e. the image from which
12620 the SDK is built).
12621 </para>
12622
12623 <para>
12624 The <filename>SDK_TARGETS</filename> variable is an
12625 internal variable and typically would not be changed.
12626 </para>
12627 </glossdef>
12628 </glossentry>
12629
12630 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
12631 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012632 SDK_TITLE[doc] = "The title to be printed when running the SDK installer."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012633 </info>
12634 <glossdef>
12635 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012636 The title to be printed when running the SDK installer.
12637 By default, this title is based on the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012638 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
12639 or
12640 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012641 variable and is set in the
12642 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12643 class as follows:
12644 <literallayout class='monospaced'>
12645 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
12646 </literallayout>
12647 For the default distribution "poky",
12648 <filename>SDK_TITLE</filename> is set to
12649 "Poky (Yocto Project Reference Distro)".
12650 </para>
12651
12652 <para>
12653 For information on how to change this default title,
12654 see the
12655 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-sdk-installer-title'>Changing the Extensible SDK Installer Title</ulink>"
12656 section in the Yocto Project Application Development and
12657 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012658 </para>
12659 </glossdef>
12660 </glossentry>
12661
12662 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
12663 <info>
12664 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
12665 </info>
12666 <glossdef>
12667 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012668 An optional URL for an update server for the extensible
12669 SDK.
12670 If set, the value is used as the default update server when
12671 running <filename>devtool sdk-update</filename> within the
12672 extensible SDK.
12673 </para>
12674 </glossdef>
12675 </glossentry>
12676
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012677 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
12678 <info>
12679 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
12680 </info>
12681 <glossdef>
12682 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012683 Specifies the name of the SDK vendor.
12684 </para>
12685 </glossdef>
12686 </glossentry>
12687
12688 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
12689 <info>
12690 SDK_VERSION[doc] = "Specifies the version for the SDK."
12691 </info>
12692 <glossdef>
12693 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012694 Specifies the version of the SDK.
12695 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012696 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012697 defines the <filename>SDK_VERSION</filename> as follows:
12698 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -040012699 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}','snapshot')}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012700 </literallayout>
12701 </para>
12702
12703 <para>
12704 For additional information, see the
12705 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
12706 and
12707 <link linkend='var-DATE'><filename>DATE</filename></link>
12708 variables.
12709 </para>
12710 </glossdef>
12711 </glossentry>
12712
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012713 <glossentry id='var-SDKEXTPATH'><glossterm>SDKEXTPATH</glossterm>
12714 <info>
12715 SDKEXTPATH[doc] = "The default installation directory for the extensible SDK."
12716 </info>
12717 <glossdef>
12718 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012719 The default installation directory for the Extensible SDK.
12720 By default, this directory is based on the
12721 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
12722 variable and is set in the
12723 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12724 class as follows:
12725 <literallayout class='monospaced'>
12726 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
12727 </literallayout>
12728 For the default distribution "poky", the
12729 <filename>SDKEXTPATH</filename> is set to "poky_sdk".
12730 </para>
12731
12732 <para>
12733 For information on how to change this default directory,
12734 see the
12735 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-default-sdk-installation-directory'>Changing the Default SDK Installation Directory</ulink>"
12736 section in the Yocto Project Application Development and
12737 the Extensible Software Development Kit (eSDK) manual.
12738 </para>
12739 </glossdef>
12740 </glossentry>
12741
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012742 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
12743 <info>
12744 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'."
12745 </info>
12746 <glossdef>
12747 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012748 Equivalent to
12749 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
12750 However, this variable applies to the SDK generated from an
12751 image using the following command:
12752 <literallayout class='monospaced'>
12753 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
12754 </literallayout>
12755 </para>
12756 </glossdef>
12757 </glossentry>
12758
12759 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
12760 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012761 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012762 </info>
12763 <glossdef>
12764 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012765 The machine for which the SDK is built.
12766 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012767 runs on the target you specify with the
12768 <filename>SDKMACHINE</filename> value.
12769 The value points to a corresponding
12770 <filename>.conf</filename> file under
12771 <filename>conf/machine-sdk/</filename>.
12772 </para>
12773
12774 <para>
12775 You can use "i686" and "x86_64" as possible values
12776 for this variable. The variable defaults to "i686"
12777 and is set in the local.conf file in the Build Directory.
12778 <literallayout class='monospaced'>
12779 SDKMACHINE ?= "i686"
12780 </literallayout>
12781 <note>
12782 You cannot set the <filename>SDKMACHINE</filename>
12783 variable in your distribution configuration file.
12784 If you do, the configuration will not take affect.
12785 </note>
12786 </para>
12787 </glossdef>
12788 </glossentry>
12789
12790 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
12791 <info>
12792 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
12793 </info>
12794 <glossdef>
12795 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012796 Defines the path offered to the user for installation
12797 of the SDK that is generated by the OpenEmbedded build
12798 system.
12799 The path appears as the default location for installing
12800 the SDK when you run the SDK's installation script.
12801 You can override the offered path when you run the
12802 script.
12803 </para>
12804 </glossdef>
12805 </glossentry>
12806
12807 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
12808 <info>
12809 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
12810 </info>
12811 <glossdef>
12812 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012813 The full path to the sysroot used for cross-compilation
12814 within an SDK as it will be when installed into the
12815 default
12816 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
12817 </para>
12818 </glossdef>
12819 </glossentry>
12820
12821 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
12822 <info>
12823 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
12824 </info>
12825 <glossdef>
12826 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012827 The section in which packages should be categorized.
12828 Package management utilities can make use of this variable.
12829 </para>
12830 </glossdef>
12831 </glossentry>
12832
12833 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
12834 <info>
12835 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."
12836 </info>
12837 <glossdef>
12838 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012839 Specifies the optimization flags passed to the C compiler
12840 when building for the target.
12841 The flags are passed through the default value of the
12842 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
12843 variable.
12844 </para>
12845
12846 <para>
12847 The <filename>SELECTED_OPTIMIZATION</filename> variable
12848 takes the value of
12849 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
12850 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
12851 If that is the case, the value of
12852 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
12853 </para>
12854 </glossdef>
12855 </glossentry>
12856
12857 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
12858 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012859 SERIAL_CONSOLE[doc] = "Defines the serial consoles (TTYs) to enable using getty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012860 </info>
12861 <glossdef>
12862 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040012863 Defines a serial console (TTY) to enable using
12864 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012865 Provide a value that specifies the baud rate followed by
12866 the TTY device name separated by a space.
12867 You cannot specify more than one TTY device:
12868 <literallayout class='monospaced'>
12869 SERIAL_CONSOLE = "115200 ttyS0"
12870 </literallayout>
12871 <note>
12872 The <filename>SERIAL_CONSOLE</filename> variable
12873 is deprecated.
12874 Please use the
12875 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
12876 variable.
12877 </note>
12878 </para>
12879 </glossdef>
12880 </glossentry>
12881
12882 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
12883 <info>
12884 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
12885 </info>
12886 <glossdef>
12887 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040012888 Defines a serial console (TTY) to enable using
12889 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012890 Provide a value that specifies the baud rate followed by
12891 the TTY device name separated by a semicolon.
12892 Use spaces to separate multiple devices:
12893 <literallayout class='monospaced'>
12894 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
12895 </literallayout>
12896 </para>
12897 </glossdef>
12898 </glossentry>
12899
12900 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
12901 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012902 SERIAL_CONSOLES_CHECK[doc] = "Selected SERIAL_CONSOLES to check against /proc/console before enabling using getty. Supported only by SysVinit."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012903 </info>
12904 <glossdef>
12905 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012906 Specifies serial consoles, which must be listed in
12907 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
12908 to check against <filename>/proc/console</filename>
12909 before enabling them using getty.
12910 This variable allows aliasing in the format:
12911 &lt;device&gt;:&lt;alias&gt;.
12912 If a device was listed as "sclp_line0"
12913 in <filename>/dev/</filename> and "ttyS0" was listed
12914 in <filename>/proc/console</filename>, you would do the
12915 following:
12916 <literallayout class='monospaced'>
12917 SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
12918 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012919 This variable is currently only supported with SysVinit
12920 (i.e. not with systemd).
12921 </para>
12922 </glossdef>
12923 </glossentry>
12924
12925 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
12926 <info>
12927 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."
12928 </info>
12929 <glossdef>
12930 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012931 A list of recipe dependencies that should not be used to
12932 determine signatures of tasks from one recipe when they
12933 depend on tasks from another recipe.
12934 For example:
12935 <literallayout class='monospaced'>
12936 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
12937 </literallayout>
12938 </para>
12939
12940 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012941 In the previous example, <filename>intone</filename>
12942 depends on <filename>mplayer2</filename>.
12943 </para>
12944
12945 <para>
12946 You can use the special token <filename>"*"</filename> on
12947 the left-hand side of the dependency to match all
12948 recipes except the one on the right-hand side.
12949 Here is an example:
12950 <literallayout class='monospaced'>
12951 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
12952 </literallayout>
12953 </para>
12954
12955 <para>
12956 In the previous example, all recipes except
12957 <filename>quilt-native</filename> ignore task
12958 signatures from the <filename>quilt-native</filename>
12959 recipe when determining their task signatures.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012960 </para>
12961
12962 <para>
12963 Use of this variable is one mechanism to remove dependencies
12964 that affect task signatures and thus force rebuilds when a
12965 recipe changes.
12966 <note><title>Caution</title>
12967 If you add an inappropriate dependency for a recipe
12968 relationship, the software might break during
12969 runtime if the interface of the second recipe was
12970 changed after the first recipe had been built.
12971 </note>
12972 </para>
12973 </glossdef>
12974 </glossentry>
12975
12976 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
12977 <info>
12978 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
12979 </info>
12980 <glossdef>
12981 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012982 A list of recipes that are completely stable and will
12983 never change.
12984 The ABI for the recipes in the list are presented by
12985 output from the tasks run to build the recipe.
12986 Use of this variable is one way to remove dependencies from
12987 one recipe on another that affect task signatures and
12988 thus force rebuilds when the recipe changes.
12989 <note><title>Caution</title>
12990 If you add an inappropriate variable to this list,
12991 the software might break at runtime if the
12992 interface of the recipe was changed after the other
12993 had been built.
12994 </note>
12995 </para>
12996 </glossdef>
12997 </glossentry>
12998
12999 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
13000 <info>
13001 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
13002 </info>
13003 <glossdef>
13004 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013005 Specifies the number of bits for the target system CPU.
13006 The value should be either "32" or "64".
13007 </para>
13008 </glossdef>
13009 </glossentry>
13010
13011 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
13012 <info>
13013 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'."
13014 </info>
13015 <glossdef>
13016 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013017 Specifies the endian byte order of the target system.
13018 The value should be either "le" for little-endian or "be" for big-endian.
13019 </para>
13020 </glossdef>
13021 </glossentry>
13022
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013023 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
13024 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050013025 SKIP_FILEDEPS[doc] = "Enables you to remove all files from the 'Provides' section of an RPM package."
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013026 </info>
13027 <glossdef>
13028 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013029 Enables removal of all files from the "Provides" section of
13030 an RPM package.
13031 Removal of these files is required for packages containing
13032 prebuilt binaries and libraries such as
13033 <filename>libstdc++</filename> and
13034 <filename>glibc</filename>.
13035 </para>
13036
13037 <para>
13038 To enable file removal, set the variable to "1" in your
13039 <filename>conf/local.conf</filename> configuration file
13040 in your:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013041 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013042 <literallayout class='monospaced'>
13043 SKIP_FILEDEPS = "1"
13044 </literallayout>
13045 </para>
13046 </glossdef>
13047 </glossentry>
13048
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013049 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
13050 <info>
13051 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."
13052 </info>
13053 <glossdef>
13054 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013055 Groups together machines based upon the same family
13056 of SOC (System On Chip).
13057 You typically set this variable in a common
13058 <filename>.inc</filename> file that you include in the
13059 configuration files of all the machines.
13060 <note>
13061 You must include
13062 <filename>conf/machine/include/soc-family.inc</filename>
13063 for this variable to appear in
13064 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
13065 </note>
13066 </para>
13067 </glossdef>
13068 </glossentry>
13069
13070 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
13071 <info>
13072 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
13073 </info>
13074 <glossdef>
13075 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013076 Defines the suffix for shared libraries used on the
13077 target platform.
13078 By default, this suffix is ".so.*" for all Linux-based
13079 systems and is defined in the
13080 <filename>meta/conf/bitbake.conf</filename> configuration
13081 file.
13082 </para>
13083
13084 <para>
13085 You will see this variable referenced in the default values
13086 of <filename>FILES_${PN}</filename>.
13087 </para>
13088 </glossdef>
13089 </glossentry>
13090
13091 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
13092 <info>
13093 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
13094 </info>
13095 <glossdef>
13096 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013097 Defines the suffix for the development symbolic link
13098 (symlink) for shared libraries on the target platform.
13099 By default, this suffix is ".so" for Linux-based
13100 systems and is defined in the
13101 <filename>meta/conf/bitbake.conf</filename> configuration
13102 file.
13103 </para>
13104
13105 <para>
13106 You will see this variable referenced in the default values
13107 of <filename>FILES_${PN}-dev</filename>.
13108 </para>
13109 </glossdef>
13110 </glossentry>
13111
13112 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
13113 <info>
13114 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
13115 </info>
13116 <glossdef>
13117 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013118 When you are fetching files to create a mirror of sources
13119 (i.e. creating a source mirror), setting
13120 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
13121 <filename>local.conf</filename> configuration file ensures
13122 the source for all recipes are fetched regardless of
13123 whether or not a recipe is compatible with the
13124 configuration.
13125 A recipe is considered incompatible with the currently
13126 configured machine when either or both the
13127 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
13128 variable and
13129 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
13130 variables specify compatibility with a machine other
13131 than that of the current machine or host.
13132 <note><title>Warning</title>
13133 Do not set the
13134 <filename>SOURCE_MIRROR_FETCH</filename> variable
13135 unless you are creating a source mirror.
13136 In other words, do not set the variable during a
13137 normal build.
13138 </note>
13139 </para>
13140 </glossdef>
13141 </glossentry>
13142
13143 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
13144 <info>
13145 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
13146 </info>
13147 <glossdef>
13148 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013149 Defines your own
13150 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13151 from which to first fetch source before attempting to fetch
13152 from the upstream specified in
13153 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
13154 </para>
13155
13156 <para>
13157 To use this variable, you must globally inherit the
13158 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
13159 class and then provide the URL to your mirrors.
13160 Here is the general syntax:
13161 <literallayout class='monospaced'>
13162 INHERIT += "own-mirrors"
13163 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
13164 </literallayout>
13165 <note>
13166 You can specify only a single URL in
13167 <filename>SOURCE_MIRROR_URL</filename>.
13168 </note>
13169 </para>
13170 </glossdef>
13171 </glossentry>
13172
13173 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
13174 <info>
13175 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
13176 </info>
13177 <glossdef>
13178 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013179 Maps commonly used license names to their SPDX counterparts
13180 found in <filename>meta/files/common-licenses/</filename>.
13181 For the default <filename>SPDXLICENSEMAP</filename>
13182 mappings, see the
13183 <filename>meta/conf/licenses.conf</filename> file.
13184 </para>
13185
13186 <para>
13187 For additional information, see the
13188 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
13189 variable.
13190 </para>
13191 </glossdef>
13192 </glossentry>
13193
13194 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
13195 <info>
13196 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."
13197 </info>
13198 <glossdef>
13199 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013200 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
13201 OpenEmbedded build system to create variants of recipes or packages.
13202 The list specifies the prefixes to strip off during certain circumstances
13203 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
13204 </para>
13205 </glossdef>
13206 </glossentry>
13207
Brad Bishop316dfdd2018-06-25 12:45:53 -040013208 <glossentry id='var-SPL_BINARY'><glossterm>SPL_BINARY</glossterm>
13209 <info>
13210 SPL_BINARY[doc] = "The file type of the Secondary Program Loader (SPL)."
13211 </info>
13212 <glossdef>
13213 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040013214 The file type for the Secondary Program Loader (SPL).
13215 Some devices use an SPL from which to boot (e.g. the
13216 BeagleBone development board).
13217 For such cases, you can declare the file type of the
13218 SPL binary in the <filename>u-boot.inc</filename> include
13219 file, which is used in the U-Boot recipe.
13220 </para>
13221
13222 <para>
13223 The SPL file type is set to "null" by default in the
13224 <filename>u-boot.inc</filename> file as follows:
13225 <literallayout class='monospaced'>
13226 # Some versions of u-boot build an SPL (Second Program Loader) image that
13227 # should be packaged along with the u-boot binary as well as placed in the
13228 # deploy directory. For those versions they can set the following variables
13229 # to allow packaging the SPL.
13230 SPL_BINARY ?= ""
13231 SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
13232 SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
13233 SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
13234 </literallayout>
13235 The <filename>SPL_BINARY</filename> variable helps form
13236 various <filename>SPL_*</filename> variables used by
13237 the OpenEmbedded build system.
13238 </para>
13239
13240 <para>
13241 See the BeagleBone machine configuration example in the
13242 "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-bitbake-layers-script'>Creating a new BSP Layer Using the <filename>bitbake-layers</filename> Script</ulink>"
13243 section in the Yocto Project Board Support Package
13244 Developer's Guide for additional information.
13245 </para>
13246 </glossdef>
13247 </glossentry>
13248
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013249 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
13250 <info>
13251 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."
13252 </info>
13253 <glossdef>
13254 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013255 The list of source files - local or remote.
13256 This variable tells the OpenEmbedded build system which bits
13257 to pull in for the build and how to pull them in.
13258 For example, if the recipe or append file only needs to
13259 fetch a tarball from the Internet, the recipe or
13260 append file uses a single <filename>SRC_URI</filename>
13261 entry.
13262 On the other hand, if the recipe or append file needs to
13263 fetch a tarball, apply two patches, and include a custom
13264 file, the recipe or append file would include four
13265 instances of the variable.
13266 </para>
13267
13268 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013269 The following list explains the available URI protocols.
13270 URI protocols are highly dependent on particular BitBake
13271 Fetcher submodules.
13272 Depending on the fetcher BitBake uses, various URL
13273 parameters are employed.
13274 For specifics on the supported Fetchers, see the
13275 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
13276 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013277 <itemizedlist>
13278 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
13279 Fetches files, which are usually files shipped with
13280 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013281 <link linkend='metadata'>Metadata</link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -040013282 from the local machine (e.g.
13283 <ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>patch</ulink>
13284 files).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013285 The path is relative to the
13286 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
13287 variable.
13288 Thus, the build system searches, in order, from the
13289 following directories, which are assumed to be a
13290 subdirectories of the directory in which the
13291 recipe file (<filename>.bb</filename>) or
13292 append file (<filename>.bbappend</filename>)
13293 resides:
13294 <itemizedlist>
13295 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
13296 The base recipe name without any special
13297 suffix or version numbers.
13298 </para></listitem>
13299 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
13300 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
13301 The base recipe name and version but without
13302 any special package name suffix.
13303 </para></listitem>
13304 <listitem><para><emphasis>files -</emphasis>
13305 Files within a directory, which is named
13306 <filename>files</filename> and is also
13307 alongside the recipe or append file.
13308 </para></listitem>
13309 </itemizedlist>
13310 <note>
13311 If you want the build system to pick up files
13312 specified through a
13313 <filename>SRC_URI</filename>
13314 statement from your append file, you need to be
13315 sure to extend the
13316 <filename>FILESPATH</filename>
13317 variable by also using the
13318 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
13319 variable from within your append file.
13320 </note>
13321 </para></listitem>
13322 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
13323 Bazaar revision control repository.</para></listitem>
13324 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
13325 Git revision control repository.</para></listitem>
13326 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
13327 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
13328 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
13329 a repo (Git) repository.</para></listitem>
13330 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
13331 Fetches files from a ClearCase repository.
13332 </para></listitem>
13333 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
13334 the Internet using <filename>http</filename>.</para></listitem>
13335 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
13336 from the Internet using <filename>https</filename>.</para></listitem>
13337 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
13338 from the Internet using <filename>ftp</filename>.</para></listitem>
13339 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
13340 a CVS revision control repository.</para></listitem>
13341 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
13342 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
13343 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
13344 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
13345 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
13346 a secure shell.</para></listitem>
13347 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
13348 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
Brad Bishopc342db32019-05-15 21:57:59 -040013349 <listitem><para><emphasis><filename>npm://</filename> -</emphasis> Fetches JavaScript
13350 modules from a registry.
13351 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013352 </itemizedlist>
13353 </para>
13354
13355 <para>
13356 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
13357 Here are standard options:
13358 <itemizedlist>
13359 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
13360 the patch or not.
13361 The default action is to apply the patch.</para></listitem>
13362 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
13363 striplevel to use when applying the patch.
13364 The default level is 1.</para></listitem>
13365 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
13366 the directory in which the patch should be applied.
13367 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
13368 </para></listitem>
13369 </itemizedlist>
13370 </para>
13371
13372 <para>
13373 Here are options specific to recipes building code from a revision control system:
13374 <itemizedlist>
13375 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
13376 Apply the patch only if
13377 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
13378 is equal to or greater than <filename>mindate</filename>.
13379 </para></listitem>
13380 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
13381 Apply the patch only if <filename>SRCDATE</filename>
Andrew Geissler5fa08482019-03-20 15:58:14 -050013382 is not later than <filename>maxdate</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013383 </para></listitem>
13384 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
13385 Apply the patch only if <filename>SRCREV</filename>
13386 is equal to or greater than <filename>minrev</filename>.
13387 </para></listitem>
13388 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
13389 Apply the patch only if <filename>SRCREV</filename>
13390 is not later than <filename>maxrev</filename>.
13391 </para></listitem>
13392 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
13393 Apply the patch only if <filename>SRCREV</filename>
13394 is equal to <filename>rev</filename>.
13395 </para></listitem>
13396 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
13397 Apply the patch only if <filename>SRCREV</filename>
13398 is not equal to <filename>rev</filename>.
13399 </para></listitem>
13400 </itemizedlist>
13401 </para>
13402
13403 <para>
13404 Here are some additional options worth mentioning:
13405 <itemizedlist>
13406 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
13407 whether or not to unpack the file if it is an archive.
13408 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013409 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
13410 (or extracts its contents) into the specified
13411 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
13412 when the Git fetcher is used.
13413 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013414 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
13415 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013416 subdirectory of <filename>WORKDIR</filename>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013417 when the local (<filename>file://</filename>)
13418 fetcher is used.
13419 </para></listitem>
13420 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
13421 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013422 subdirectory of <filename>WORKDIR</filename> when
13423 the CVS fetcher is used.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013424 </para></listitem>
13425 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
13426 Limits the checkout to a specific subpath of the
13427 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013428 </para></listitem>
13429 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
13430 name to be used for association with <filename>SRC_URI</filename> checksums
13431 when you have more than one file specified in <filename>SRC_URI</filename>.
13432 </para></listitem>
13433 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
13434 the filename used when storing the downloaded file.</para></listitem>
13435 </itemizedlist>
13436 </para>
13437 </glossdef>
13438 </glossentry>
13439
13440 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
13441 <info>
13442 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."
13443 </info>
13444 <glossdef>
13445 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013446 By default, the OpenEmbedded build system automatically detects whether
13447 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
13448 contains files that are machine-specific.
13449 If so, the build system automatically changes
13450 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
13451 Setting this variable to "0" disables this behavior.
13452 </para>
13453 </glossdef>
13454 </glossentry>
13455
13456 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
13457 <info>
13458 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)."
13459 </info>
13460 <glossdef>
13461 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013462 The date of the source code used to build the package.
13463 This variable applies only if the source was fetched from a Source Code Manager (SCM).
13464 </para>
13465 </glossdef>
13466 </glossentry>
13467
13468 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
13469 <info>
13470 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
13471 </info>
13472 <glossdef>
13473 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013474 Returns the version string of the current package.
13475 This string is used to help define the value of
13476 <link linkend='var-PV'><filename>PV</filename></link>.
13477 </para>
13478
13479 <para>
13480 The <filename>SRCPV</filename> variable is defined in the
13481 <filename>meta/conf/bitbake.conf</filename> configuration
13482 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013483 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013484 as follows:
13485 <literallayout class='monospaced'>
13486 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
13487 </literallayout>
13488 </para>
13489
13490 <para>
13491 Recipes that need to define <filename>PV</filename> do so
13492 with the help of the <filename>SRCPV</filename>.
13493 For example, the <filename>ofono</filename> recipe
13494 (<filename>ofono_git.bb</filename>) located in
13495 <filename>meta/recipes-connectivity</filename> in the
13496 Source Directory defines <filename>PV</filename> as
13497 follows:
13498 <literallayout class='monospaced'>
13499 PV = "0.12-git${SRCPV}"
13500 </literallayout>
13501 </para>
13502 </glossdef>
13503 </glossentry>
13504
13505 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
13506 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013507 SRCREV[doc] = "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial, and Bazaar only."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013508 </info>
13509 <glossdef>
13510 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013511 The revision of the source code used to build the package.
Brad Bishop316dfdd2018-06-25 12:45:53 -040013512 This variable applies to Subversion, Git, Mercurial, and
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013513 Bazaar only.
13514 Note that if you want to build a fixed revision and you
13515 want to avoid performing a query on the remote repository
13516 every time BitBake parses your recipe, you should specify
13517 a <filename>SRCREV</filename> that is a
13518 full revision identifier and not just a tag.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013519 <note>
13520 For information on limitations when inheriting the
13521 latest revision of software using
13522 <filename>SRCREV</filename>, see the
13523 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
13524 variable description and the
13525 "<ulink url='&YOCTO_DOCS_DEV_URL;#automatically-incrementing-a-binary-package-revision-number'>Automatically Incrementing a Binary Package Revision Number</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013526 section, which is in the Yocto Project Development
13527 Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013528 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013529 </para>
13530
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013531 </glossdef>
13532 </glossentry>
13533
13534 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
13535 <info>
13536 SSTATE_DIR[doc] = "The directory for the shared state cache."
13537 </info>
13538 <glossdef>
13539 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013540 The directory for the shared state cache.
13541 </para>
13542 </glossdef>
13543 </glossentry>
13544
13545 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
13546 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013547 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 is disabled by setting BB_NO_NETWORK to "1"."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013548 </info>
13549 <glossdef>
13550 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013551 If set to "1", allows fetches from
13552 mirrors that are specified in
13553 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013554 to work even when fetching from the network is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013555 disabled by setting <filename>BB_NO_NETWORK</filename>
13556 to "1".
13557 Using the
13558 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
13559 variable is useful if you have set
13560 <filename>SSTATE_MIRRORS</filename> to point to an
13561 internal server for your shared state cache, but
13562 you want to disable any other fetching from the network.
13563 </para>
13564 </glossdef>
13565 </glossentry>
13566
13567 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
13568 <info>
13569 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."
13570 </info>
13571 <glossdef>
13572 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013573 Configures the OpenEmbedded build system to search other
13574 mirror locations for prebuilt cache data objects before
13575 building out the data.
13576 This variable works like fetcher
13577 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
13578 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13579 and points to the cache locations to check for the shared
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013580 state (sstate) objects.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013581 </para>
13582
13583 <para>
13584 You can specify a filesystem directory or a remote URL such
13585 as HTTP or FTP.
13586 The locations you specify need to contain the shared state
13587 cache (sstate-cache) results from previous builds.
13588 The sstate-cache you point to can also be from builds on
13589 other machines.
13590 </para>
13591
13592 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013593 When pointing to sstate build artifacts on another machine
13594 that uses a different GCC version for native builds,
Andrew Geissler4b740dc2020-05-05 08:54:39 -050013595 you must configure <filename>SSTATE_MIRRORS</filename>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013596 with a regular expression that maps local search paths
13597 to server paths.
13598 The paths need to take into account
13599 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
13600 set by the
13601 <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
13602 class.
13603 For example, the following maps the local search path
13604 <filename>universal-4.9</filename> to the server-provided
13605 path <replaceable>server_url_sstate_path</replaceable>:
13606 <literallayout class='monospaced'>
13607 SSTATE_MIRRORS ?= file://universal-4.9/(.*) http://<replaceable>server_url_sstate_path</replaceable>/universal-4.8/\1 \n
13608 </literallayout>
13609 </para>
13610
13611 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013612 If a mirror uses the same structure as
13613 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
13614 you need to add
13615 "PATH" at the end as shown in the examples below.
13616 The build system substitutes the correct path within the
13617 directory structure.
13618 <literallayout class='monospaced'>
13619 SSTATE_MIRRORS ?= "\
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013620 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013621 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
13622 </literallayout>
13623 </para>
13624 </glossdef>
13625 </glossentry>
13626
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013627 <glossentry id='var-SSTATE_SCAN_FILES'><glossterm>SSTATE_SCAN_FILES</glossterm>
13628 <info>
13629 SSTATE_SCAN_FILES[doc] = "Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths."
13630 </info>
13631 <glossdef>
13632 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013633 Controls the list of files the OpenEmbedded build system
13634 scans for hardcoded installation paths. The variable uses a
13635 space-separated list of filenames (not paths) with standard
13636 wildcard characters allowed.
13637 </para>
13638
13639 <para>
13640 During a build, the OpenEmbedded build system creates a
13641 shared state (sstate) object during the first stage of
13642 preparing the sysroots. That object is scanned for
13643 hardcoded paths for original installation locations.
13644 The list of files that are scanned for paths is controlled
13645 by the <filename>SSTATE_SCAN_FILES</filename> variable.
13646 Typically, recipes add files they want to be scanned to the
13647 value of <filename>SSTATE_SCAN_FILES</filename> rather than
13648 the variable being comprehensively set. The
13649 <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
13650 class specifies the default list of files.
13651 </para>
13652
13653 <para>
13654 For details on the process, see the
13655 <link linkend='ref-classes-staging'><filename>staging</filename></link>
13656 class.
13657 </para>
13658 </glossdef>
13659 </glossentry>
13660
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013661 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
13662 <info>
13663 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
13664 </info>
13665 <glossdef>
13666 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013667 Specifies the path to the <filename>/lib</filename>
13668 subdirectory of the sysroot directory for the
13669 build host.
13670 </para>
13671 </glossdef>
13672 </glossentry>
13673
13674 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
13675 <info>
13676 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)."
13677 </info>
13678 <glossdef>
13679 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013680 Specifies the path to the <filename>/lib</filename>
13681 subdirectory of the sysroot directory for the target
13682 for which the current recipe is being built
13683 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13684 </para>
13685 </glossdef>
13686 </glossentry>
13687
13688 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
13689 <info>
13690 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)."
13691 </info>
13692 <glossdef>
13693 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013694 Specifies the path to the
13695 <filename>/usr/bin</filename> subdirectory of the
13696 sysroot directory for the target for which the current
13697 recipe is being built
13698 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13699 </para>
13700 </glossdef>
13701 </glossentry>
13702
13703 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
13704 <info>
13705 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."
13706 </info>
13707 <glossdef>
13708 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013709 Specifies the path to the directory containing binary
13710 configuration scripts.
13711 These scripts provide configuration information for
13712 other software that wants to make use of libraries or
13713 include files provided by the software associated with
13714 the script.
13715 <note>
13716 This style of build configuration has been largely
13717 replaced by <filename>pkg-config</filename>.
13718 Consequently, if <filename>pkg-config</filename>
13719 is supported by the library to which you are linking,
13720 it is recommended you use
13721 <filename>pkg-config</filename> instead of a
13722 provided configuration script.
13723 </note>
13724 </para>
13725 </glossdef>
13726 </glossentry>
13727
13728 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
13729 <info>
13730 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
13731 </info>
13732 <glossdef>
13733 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013734 Specifies the path to the
13735 <filename>/usr/bin</filename> subdirectory of the
13736 sysroot directory for the build host.
13737 </para>
13738 </glossdef>
13739 </glossentry>
13740
13741 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
13742 <info>
13743 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)."
13744 </info>
13745 <glossdef>
13746 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013747 Specifies the path to the <filename>/usr/share</filename>
13748 subdirectory of the sysroot directory for the target
13749 for which the current recipe is being built
13750 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13751 </para>
13752 </glossdef>
13753 </glossentry>
13754
13755 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
13756 <info>
13757 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
13758 </info>
13759 <glossdef>
13760 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013761 Specifies the path to the <filename>/usr/share</filename>
13762 subdirectory of the sysroot directory for the build host.
13763 </para>
13764 </glossdef>
13765 </glossentry>
13766
13767 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
13768 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013769 STAGING_DIR[doc] = "Helps construct the recipe-sysroots directory, which is used during packaging."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013770 </info>
13771 <glossdef>
13772 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040013773 Helps construct the <filename>recipe-sysroots</filename>
13774 directory, which is used during packaging.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013775 </para>
13776
13777 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013778 For information on how staging for recipe-specific
13779 sysroots occurs, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013780 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013781 task, the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013782 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-sharing-files-between-recipes'>Sharing Files Between Recipes</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -040013783 section in the Yocto Project Development Tasks Manual, the
13784 "<ulink url='&YOCTO_DOCS_OM_URL;#configuration-compilation-and-staging-dev-environment'>Configuration, Compilation, and Staging</ulink>"
13785 section in the Yocto Project Overview and Concepts Manual,
13786 and the
13787 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
13788 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013789 <note>
13790 Recipes should never write files directly under
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013791 the <filename>STAGING_DIR</filename> directory because
13792 the OpenEmbedded build system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013793 manages the directory automatically.
13794 Instead, files should be installed to
13795 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
13796 within your recipe's
13797 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
13798 task and then the OpenEmbedded build system will
13799 stage a subset of those files into the sysroot.
13800 </note>
13801 </para>
13802 </glossdef>
13803 </glossentry>
13804
13805 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
13806 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013807 STAGING_DIR_HOST[doc] = "Specifies the path to the sysroot directory for the system that the component is built to run on."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013808 </info>
13809 <glossdef>
13810 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013811 Specifies the path to the sysroot directory for the system
Brad Bishop316dfdd2018-06-25 12:45:53 -040013812 on which the component is built to run (the system that
13813 hosts the component).
13814 For most recipes, this sysroot is the one in which that
13815 recipe's
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013816 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013817 task copies files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013818 Exceptions include <filename>-native</filename> recipes,
13819 where the <filename>do_populate_sysroot</filename> task
13820 instead uses
13821 <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
13822 Depending on the type of recipe and the build target,
13823 <filename>STAGING_DIR_HOST</filename> can have the
13824 following values:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013825 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013826 <listitem><para>
13827 For recipes building for the target machine, the
13828 value is
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013829 "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
13830 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013831 <listitem><para>
13832 For native recipes building for the build host, the
13833 value is empty given the assumption that when
13834 building for the build host, the build host's own
13835 directories should be used.
13836 <note>
13837 <para><filename>-native</filename> recipes are
13838 not installed into host paths like such as
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013839 <filename>/usr</filename>.
13840 Rather, these recipes are installed into
13841 <filename>STAGING_DIR_NATIVE</filename>.
13842 When compiling <filename>-native</filename>
13843 recipes, standard build environment variables
13844 such as
13845 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
13846 and
13847 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
13848 are set up so that both host paths and
13849 <filename>STAGING_DIR_NATIVE</filename> are
13850 searched for libraries and headers using, for
13851 example, GCC's <filename>-isystem</filename>
13852 option.</para>
13853
Brad Bishop316dfdd2018-06-25 12:45:53 -040013854 <para>Thus, the emphasis is that the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013855 <filename>STAGING_DIR*</filename> variables
13856 should be viewed as input variables by tasks
13857 such as
13858 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
13859 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
13860 and
13861 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
13862 Having the real system root correspond to
13863 <filename>STAGING_DIR_HOST</filename> makes
13864 conceptual sense for
13865 <filename>-native</filename> recipes, as
13866 they make use of host headers and libraries.
13867 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013868 </note>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013869 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013870 </itemizedlist>
13871 </para>
13872 </glossdef>
13873 </glossentry>
13874
13875 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
13876 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013877 STAGING_DIR_NATIVE[doc] = "Specifies the path to the sysroot directory used when building components that run on the build host itself."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013878 </info>
13879 <glossdef>
13880 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013881 Specifies the path to the sysroot directory used when
13882 building components that run on the build host itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013883 </para>
13884 </glossdef>
13885 </glossentry>
13886
13887 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
13888 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013889 STAGING_DIR_TARGET[doc] = "Specifies the path to the sysroot used for the system for which the component generates code."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013890 </info>
13891 <glossdef>
13892 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013893 Specifies the path to the sysroot used for the system for
13894 which the component generates code.
13895 For components that do not generate code, which is the
13896 majority, <filename>STAGING_DIR_TARGET</filename> is set
13897 to match
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013898 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
13899 </para>
13900
13901 <para>
13902 Some recipes build binaries that can run on the target
13903 system but those binaries in turn generate code for
13904 another different system (e.g. cross-canadian recipes).
13905 Using terminology from GNU, the primary system is referred
13906 to as the "HOST" and the secondary, or different, system is
13907 referred to as the "TARGET".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013908 Thus, the binaries run on the "HOST" system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013909 and generate binaries for the "TARGET" system.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013910 The <filename>STAGING_DIR_HOST</filename> variable points
13911 to the sysroot used for the "HOST" system, while
13912 <filename>STAGING_DIR_TARGET</filename>
13913 points to the sysroot used for the "TARGET" system.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013914 </para>
13915 </glossdef>
13916 </glossentry>
13917
13918 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
13919 <info>
13920 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
13921 </info>
13922 <glossdef>
13923 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013924 Specifies the path to the <filename>/etc</filename>
13925 subdirectory of the sysroot directory for the
13926 build host.
13927 </para>
13928 </glossdef>
13929 </glossentry>
13930
13931 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
13932 <info>
13933 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)."
13934 </info>
13935 <glossdef>
13936 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013937 Specifies the path to the <filename>/usr</filename>
13938 subdirectory of the sysroot directory for the target
13939 for which the current recipe is being built
13940 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13941 </para>
13942 </glossdef>
13943 </glossentry>
13944
13945 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
13946 <info>
13947 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)."
13948 </info>
13949 <glossdef>
13950 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013951 Specifies the path to the
13952 <filename>/usr/include</filename> subdirectory of the
13953 sysroot directory for the target for which the current
13954 recipe being built
13955 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13956 </para>
13957 </glossdef>
13958 </glossentry>
13959
13960 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
13961 <info>
13962 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
13963 </info>
13964 <glossdef>
13965 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013966 Specifies the path to the <filename>/usr/include</filename>
13967 subdirectory of the sysroot directory for the build host.
13968 </para>
13969 </glossdef>
13970 </glossentry>
13971
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013972 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
13973 <info>
13974 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
13975 </info>
13976 <glossdef>
13977 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013978 Points to the directory containing the kernel build
13979 artifacts.
13980 Recipes building software that needs to access kernel
13981 build artifacts
13982 (e.g. <filename>systemtap-uprobes</filename>) can look in
13983 the directory specified with the
13984 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
13985 find these artifacts after the kernel has been built.
13986 </para>
13987 </glossdef>
13988 </glossentry>
13989
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013990 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
13991 <info>
13992 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
13993 </info>
13994 <glossdef>
13995 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013996 The directory with kernel headers that are required to build out-of-tree
13997 modules.
13998 </para>
13999 </glossdef>
14000 </glossentry>
14001
14002 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
14003 <info>
14004 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)."
14005 </info>
14006 <glossdef>
14007 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014008 Specifies the path to the <filename>/usr/lib</filename>
14009 subdirectory of the sysroot directory for the target for
14010 which the current recipe is being built
14011 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14012 </para>
14013 </glossdef>
14014 </glossentry>
14015
14016 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
14017 <info>
14018 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
14019 </info>
14020 <glossdef>
14021 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014022 Specifies the path to the <filename>/usr/lib</filename>
14023 subdirectory of the sysroot directory for the build host.
14024 </para>
14025 </glossdef>
14026 </glossentry>
14027
14028 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
14029 <info>
14030 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."
14031 </info>
14032 <glossdef>
14033 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014034 Specifies the base path used to create recipe stamp files.
14035 The path to an actual stamp file is constructed by evaluating this
14036 string and then appending additional information.
14037 Currently, the default assignment for <filename>STAMP</filename>
14038 as set in the <filename>meta/conf/bitbake.conf</filename> file
14039 is:
14040 <literallayout class='monospaced'>
14041 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
14042 </literallayout>
14043 </para>
14044
14045 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014046 For information on how BitBake uses stamp files to determine
14047 if a task should be rerun, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040014048 "<ulink url='&YOCTO_DOCS_OM_URL;#stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</ulink>"
14049 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014050 </para>
14051
14052 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014053 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
14054 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
14055 <link linkend='var-PN'><filename>PN</filename></link>,
14056 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
14057 <link linkend='var-PV'><filename>PV</filename></link>, and
14058 <link linkend='var-PR'><filename>PR</filename></link> for related variable
14059 information.
14060 </para>
14061 </glossdef>
14062 </glossentry>
14063
14064 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
14065 <info>
14066 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
14067 </info>
14068 <glossdef>
14069 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014070 Specifies the base directory in which the OpenEmbedded
14071 build system places stamps.
14072 The default directory is
14073 <filename>${TMPDIR}/stamps</filename>.
14074 </para>
14075 </glossdef>
14076 </glossentry>
14077
14078 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
14079 <info>
14080 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
14081 </info>
14082 <glossdef>
14083 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014084 The minimal command and arguments to run
14085 <filename>strip</filename>, which is used to strip
14086 symbols.
14087 </para>
14088 </glossdef>
14089 </glossentry>
14090
14091 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
14092 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014093 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014094 </info>
14095 <glossdef>
14096 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014097 The short (72 characters or less) summary of the binary package for packaging
Brad Bishop316dfdd2018-06-25 12:45:53 -040014098 systems such as <filename>opkg</filename>, <filename>rpm</filename>, or
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014099 <filename>dpkg</filename>.
14100 By default, <filename>SUMMARY</filename> is used to define
14101 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
14102 variable if <filename>DESCRIPTION</filename> is not set
14103 in the recipe.
14104 </para>
14105 </glossdef>
14106 </glossentry>
14107
14108 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
14109 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014110 SVNDIR[doc] = "The directory where Subversion checkouts are stored."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014111 </info>
14112 <glossdef>
14113 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014114 The directory in which files checked out of a Subversion
14115 system are stored.
14116 </para>
14117 </glossdef>
14118 </glossentry>
14119
14120 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
14121 <info>
14122 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
14123 </info>
14124 <glossdef>
14125 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014126 Specifies the kernel boot default console.
14127 If you want to use a console other than the default,
14128 set this variable in your recipe as follows where "X" is
14129 the console number you want to use:
14130 <literallayout class='monospaced'>
14131 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
14132 </literallayout>
14133 </para>
14134
14135 <para>
14136 The
14137 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14138 class initially sets this variable to null but then checks
14139 for a value later.
14140 </para>
14141 </glossdef>
14142 </glossentry>
14143
14144 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
14145 <info>
14146 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
14147 </info>
14148 <glossdef>
14149 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014150 Lists additional options to add to the syslinux file.
14151 You need to set this variable in your recipe.
14152 If you want to list multiple options, separate the options
14153 with a semicolon character (<filename>;</filename>).
14154 </para>
14155
14156 <para>
14157 The
14158 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14159 class uses this variable to create a set of options.
14160 </para>
14161 </glossdef>
14162 </glossentry>
14163
14164 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
14165 <info>
14166 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
14167 </info>
14168 <glossdef>
14169 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014170 Specifies the alternate serial port or turns it off.
14171 To turn off serial, set this variable to an empty string
14172 in your recipe.
14173 The variable's default value is set in the
14174 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014175 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014176 <literallayout class='monospaced'>
14177 SYSLINUX_SERIAL ?= "0 115200"
14178 </literallayout>
14179 </para>
14180
14181 <para>
14182 The class checks for and uses the variable as needed.
14183 </para>
14184 </glossdef>
14185 </glossentry>
14186
14187 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
14188 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014189 SYSLINUX_SPLASH[doc] = "An .LSS file used as the background for the VGA boot menu when you use the boot menu."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014190 </info>
14191 <glossdef>
14192 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014193 An <filename>.LSS</filename> file used as the background
Brad Bishop316dfdd2018-06-25 12:45:53 -040014194 for the VGA boot menu when you use the boot menu.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014195 You need to set this variable in your recipe.
14196 </para>
14197
14198 <para>
14199 The
14200 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14201 class checks for this variable and if found, the
14202 OpenEmbedded build system installs the splash screen.
14203 </para>
14204 </glossdef>
14205 </glossentry>
14206
14207 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
14208 <info>
14209 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
14210 </info>
14211 <glossdef>
14212 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014213 Specifies the alternate console=tty... kernel boot argument.
14214 The variable's default value is set in the
14215 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014216 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014217 <literallayout class='monospaced'>
14218 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
14219 </literallayout>
14220 </para>
14221
14222 <para>
14223 The class checks for and uses the variable as needed.
14224 </para>
14225 </glossdef>
14226 </glossentry>
14227
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014228 <glossentry id='var-SYSROOT_DESTDIR'><glossterm>SYSROOT_DESTDIR</glossterm>
14229 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014230 SYSROOT_DESTDIR[doc] = "Points to the temporary work directory (default ${WORKDIR}/sysroot-destdir) where the files populated into the sysroot are assembled during the do_populate_sysroot task."
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014231 </info>
14232 <glossdef>
14233 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014234 Points to the temporary directory under the work directory
14235 (default
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014236 "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
Brad Bishop316dfdd2018-06-25 12:45:53 -040014237 where the files populated into the sysroot are assembled
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014238 during the
14239 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14240 task.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014241 </para>
14242 </glossdef>
14243 </glossentry>
14244
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014245 <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
14246 <info>
14247 SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
14248 </info>
14249 <glossdef>
14250 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014251 Directories that are staged into the sysroot by the
14252 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14253 task.
14254 By default, the following directories are staged:
14255 <literallayout class='monospaced'>
14256 SYSROOT_DIRS = " \
14257 ${includedir} \
14258 ${libdir} \
14259 ${base_libdir} \
14260 ${nonarch_base_libdir} \
14261 ${datadir} \
14262 "
14263 </literallayout>
14264 </para>
14265 </glossdef>
14266 </glossentry>
14267
14268 <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
14269 <info>
14270 SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
14271 </info>
14272 <glossdef>
14273 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014274 Directories that are not staged into the sysroot by the
14275 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14276 task.
14277 You can use this variable to exclude certain subdirectories
14278 of directories listed in
14279 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14280 from staging.
14281 By default, the following directories are not staged:
14282 <literallayout class='monospaced'>
14283 SYSROOT_DIRS_BLACKLIST = " \
14284 ${mandir} \
14285 ${docdir} \
14286 ${infodir} \
14287 ${datadir}/locale \
14288 ${datadir}/applications \
14289 ${datadir}/fonts \
14290 ${datadir}/pixmaps \
14291 "
14292 </literallayout>
14293 </para>
14294 </glossdef>
14295 </glossentry>
14296
14297 <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
14298 <info>
14299 SYSROOT_DIRS_NATIVE[doc] = "Extra directories staged into the sysroot by the do_populate_sysroot task for -native recipes, in addition to those specified in SYSROOT_DIRS."
14300 </info>
14301 <glossdef>
14302 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014303 Extra directories staged into the sysroot by the
14304 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14305 task for <filename>-native</filename> recipes, in addition
14306 to those specified in
14307 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
14308 By default, the following extra directories are staged:
14309 <literallayout class='monospaced'>
14310 SYSROOT_DIRS_NATIVE = " \
14311 ${bindir} \
14312 ${sbindir} \
14313 ${base_bindir} \
14314 ${base_sbindir} \
14315 ${libexecdir} \
14316 ${sysconfdir} \
14317 ${localstatedir} \
14318 "
14319 </literallayout>
14320 <note>
14321 Programs built by <filename>-native</filename> recipes
14322 run directly from the sysroot
14323 (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
14324 which is why additional directories containing program
14325 executables and supporting files need to be staged.
14326 </note>
14327 </para>
14328 </glossdef>
14329 </glossentry>
14330
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014331 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
14332 <info>
14333 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."
14334 </info>
14335 <glossdef>
14336 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014337 A list of functions to execute after files are staged into
14338 the sysroot.
14339 These functions are usually used to apply additional
14340 processing on the staged files, or to stage additional
14341 files.
14342 </para>
14343 </glossdef>
14344 </glossentry>
14345
14346 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
14347 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014348 SYSTEMD_AUTO_ENABLE[doc] = "For recipes that inherit the systemd class, this variable specifies whether the specified service in SYSTEMD_SERVICE should start automatically or not."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014349 </info>
14350 <glossdef>
14351 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014352 When inheriting the
14353 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014354 class, this variable specifies whether the specified service
14355 in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014356 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014357 should start automatically or not.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014358 By default, the service is enabled to automatically start
14359 at boot time.
14360 The default setting is in the
14361 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14362 class as follows:
14363 <literallayout class='monospaced'>
14364 SYSTEMD_AUTO_ENABLE ??= "enable"
14365 </literallayout>
14366 </para>
14367
14368 <para>
14369 You can disable the service by setting the variable to
14370 "disable".
14371 </para>
14372 </glossdef>
14373 </glossentry>
14374
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014375 <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
14376 <info>
14377 SYSTEMD_BOOT_CFG[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_CFG variable specifies the configuration file that should be used."
14378 </info>
14379 <glossdef>
14380 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014381 When
14382 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14383 is set to "systemd-boot", the
14384 <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
14385 configuration file that should be used.
14386 By default, the
14387 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14388 class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
14389 follows:
14390 <literallayout class='monospaced'>
14391 SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
14392 </literallayout>
14393 </para>
14394
14395 <para>
14396 For information on Systemd-boot, see the
14397 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14398 </para>
14399 </glossdef>
14400 </glossentry>
14401
14402 <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
14403 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014404 SYSTEMD_BOOT_ENTRIES[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_ENTRIES variable specifies a list of entry files (*.conf) to install that contain one boot entry per file."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014405 </info>
14406 <glossdef>
14407 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014408 When
14409 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14410 is set to "systemd-boot", the
14411 <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
14412 a list of entry files
Brad Bishop316dfdd2018-06-25 12:45:53 -040014413 (<filename>*.conf</filename>) to install that contain
14414 one boot entry per file.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014415 By default, the
14416 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14417 class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
14418 follows:
14419 <literallayout class='monospaced'>
14420 SYSTEMD_BOOT_ENTRIES ?= ""
14421 </literallayout>
14422 </para>
14423
14424 <para>
14425 For information on Systemd-boot, see the
14426 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14427 </para>
14428 </glossdef>
14429 </glossentry>
14430
14431 <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
14432 <info>
14433 SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
14434 </info>
14435 <glossdef>
14436 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014437 When
14438 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14439 is set to "systemd-boot", the
14440 <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
14441 the boot menu timeout in seconds.
14442 By default, the
14443 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14444 class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
14445 follows:
14446 <literallayout class='monospaced'>
14447 SYSTEMD_BOOT_TIMEOUT ?= "10"
14448 </literallayout>
14449 </para>
14450
14451 <para>
14452 For information on Systemd-boot, see the
14453 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14454 </para>
14455 </glossdef>
14456 </glossentry>
14457
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014458 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
14459 <info>
14460 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."
14461 </info>
14462 <glossdef>
14463 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014464 When inheriting the
14465 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14466 class, this variable locates the systemd unit files when
14467 they are not found in the main recipe's package.
14468 By default, the
14469 <filename>SYSTEMD_PACKAGES</filename> variable is set
14470 such that the systemd unit files are assumed to reside in
14471 the recipes main package:
14472 <literallayout class='monospaced'>
14473 SYSTEMD_PACKAGES ?= "${PN}"
14474 </literallayout>
14475 </para>
14476
14477 <para>
14478 If these unit files are not in this recipe's main
14479 package, you need to use
14480 <filename>SYSTEMD_PACKAGES</filename> to list the package
14481 or packages in which the build system can find the systemd
14482 unit files.
14483 </para>
14484 </glossdef>
14485 </glossentry>
14486
14487 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
14488 <info>
14489 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
14490 </info>
14491 <glossdef>
14492 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014493 When inheriting the
14494 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14495 class, this variable specifies the systemd service name for
14496 a package.
14497 </para>
14498
14499 <para>
14500 When you specify this file in your recipe, use a package
14501 name override to indicate the package to which the value
14502 applies.
14503 Here is an example from the connman recipe:
14504 <literallayout class='monospaced'>
14505 SYSTEMD_SERVICE_${PN} = "connman.service"
14506 </literallayout>
14507 </para>
14508 </glossdef>
14509 </glossentry>
14510
14511 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
14512 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014513 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should run a getty, the default is '1'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014514 </info>
14515 <glossdef>
14516 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014517 When using
14518 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14519 specifies a space-separated list of the virtual terminals
Brad Bishop316dfdd2018-06-25 12:45:53 -040014520 that should run a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014521 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14522 (allowing login), assuming
14523 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
14524 is not set to "0".
14525 </para>
14526
14527 <para>
14528 The default value for
14529 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
14530 (i.e. only run a getty on the first virtual terminal).
14531 </para>
14532 </glossdef>
14533 </glossentry>
14534
14535 </glossdiv>
14536
14537 <glossdiv id='var-glossary-t'><title>T</title>
14538
14539 <glossentry id='var-T'><glossterm>T</glossterm>
14540 <info>
14541 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."
14542 </info>
14543 <glossdef>
14544 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014545 This variable points to a directory were BitBake places
14546 temporary files, which consist mostly of task logs and
14547 scripts, when building a particular recipe.
14548 The variable is typically set as follows:
14549 <literallayout class='monospaced'>
14550 T = "${WORKDIR}/temp"
14551 </literallayout>
14552 </para>
14553
14554 <para>
14555 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
14556 is the directory into which BitBake unpacks and builds the
14557 recipe.
14558 The default <filename>bitbake.conf</filename> file sets this variable.</para>
14559 <para>The <filename>T</filename> variable is not to be confused with
14560 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
14561 which points to the root of the directory tree where BitBake
14562 places the output of an entire build.
14563 </para>
14564 </glossdef>
14565 </glossentry>
14566
14567 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
14568 <info>
14569 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
14570 </info>
14571 <glossdef>
14572 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014573 The target machine's architecture.
14574 The OpenEmbedded build system supports many
14575 architectures.
14576 Here is an example list of architectures supported.
14577 This list is by no means complete as the architecture
14578 is configurable:
14579 <literallayout class='monospaced'>
14580 arm
14581 i586
14582 x86_64
14583 powerpc
14584 powerpc64
14585 mips
14586 mipsel
14587 </literallayout>
14588 </para>
14589
14590 <para>
14591 For additional information on machine architectures, see
14592 the
14593 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
14594 variable.
14595 </para>
14596 </glossdef>
14597 </glossentry>
14598
14599 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
14600 <info>
14601 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
14602 </info>
14603 <glossdef>
14604 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014605 Specifies architecture-specific assembler flags for the
14606 target system.
14607 <filename>TARGET_AS_ARCH</filename> is initialized from
14608 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
14609 by default in the BitBake configuration file
14610 (<filename>meta/conf/bitbake.conf</filename>):
14611 <literallayout class='monospaced'>
14612 TARGET_AS_ARCH = "${TUNE_ASARGS}"
14613 </literallayout>
14614 </para>
14615 </glossdef>
14616 </glossentry>
14617
14618 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
14619 <info>
14620 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
14621 </info>
14622 <glossdef>
14623 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014624 Specifies architecture-specific C compiler flags for the
14625 target system.
14626 <filename>TARGET_CC_ARCH</filename> is initialized from
14627 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14628 by default.
14629 <note>
14630 It is a common workaround to append
14631 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14632 to <filename>TARGET_CC_ARCH</filename>
14633 in recipes that build software for the target that
14634 would not otherwise respect the exported
14635 <filename>LDFLAGS</filename> variable.
14636 </note>
14637 </para>
14638 </glossdef>
14639 </glossentry>
14640
14641 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
14642 <info>
14643 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
14644 </info>
14645 <glossdef>
14646 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014647 This is a specific kernel compiler flag for a CPU or
14648 Application Binary Interface (ABI) tune.
14649 The flag is used rarely and only for cases where a
14650 userspace
14651 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14652 is not compatible with the kernel compilation.
14653 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
14654 allows the kernel (and associated modules) to use a
14655 different configuration.
14656 See the
14657 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
14658 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014659 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014660 for an example.
14661 </para>
14662 </glossdef>
14663 </glossentry>
14664
14665 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
14666 <info>
14667 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
14668 </info>
14669 <glossdef>
14670 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014671 Specifies the flags to pass to the C compiler when building
14672 for the target.
14673 When building in the target context,
14674 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14675 is set to the value of this variable by default.
14676 </para>
14677
14678 <para>
14679 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014680 the <filename>CFLAGS</filename> variable in the environment
14681 to the <filename>TARGET_CFLAGS</filename> value so that
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014682 executables built using the SDK also have the flags
14683 applied.
14684 </para>
14685 </glossdef>
14686 </glossentry>
14687
14688 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
14689 <info>
14690 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."
14691 </info>
14692 <glossdef>
14693 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014694 Specifies the flags to pass to the C pre-processor
14695 (i.e. to both the C and the C++ compilers) when building
14696 for the target.
14697 When building in the target context,
14698 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14699 is set to the value of this variable by default.
14700 </para>
14701
14702 <para>
14703 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014704 the <filename>CPPFLAGS</filename> variable in the
14705 environment to the <filename>TARGET_CPPFLAGS</filename>
14706 value so that executables built using the SDK also have
14707 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014708 </para>
14709 </glossdef>
14710 </glossentry>
14711
14712 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
14713 <info>
14714 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
14715 </info>
14716 <glossdef>
14717 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014718 Specifies the flags to pass to the C++ compiler when
14719 building for the target.
14720 When building in the target context,
14721 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
14722 is set to the value of this variable by default.
14723 </para>
14724
14725 <para>
14726 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014727 the <filename>CXXFLAGS</filename> variable in the
14728 environment to the <filename>TARGET_CXXFLAGS</filename>
14729 value so that executables built using the SDK also have
14730 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014731 </para>
14732 </glossdef>
14733 </glossentry>
14734
14735 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
14736 <info>
14737 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."
14738 </info>
14739 <glossdef>
14740 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014741 Specifies the method for handling FPU code.
14742 For FPU-less targets, which include most ARM CPUs, the variable must be
14743 set to "soft".
14744 If not, the kernel emulation gets used, which results in a performance penalty.
14745 </para>
14746 </glossdef>
14747 </glossentry>
14748
14749 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
14750 <info>
14751 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
14752 </info>
14753 <glossdef>
14754 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014755 Specifies architecture-specific linker flags for the
14756 target system.
14757 <filename>TARGET_LD_ARCH</filename> is initialized from
14758 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
14759 by default in the BitBake configuration file
14760 (<filename>meta/conf/bitbake.conf</filename>):
14761 <literallayout class='monospaced'>
14762 TARGET_LD_ARCH = "${TUNE_LDARGS}"
14763 </literallayout>
14764 </para>
14765 </glossdef>
14766 </glossentry>
14767
14768 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
14769 <info>
14770 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
14771 </info>
14772 <glossdef>
14773 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014774 Specifies the flags to pass to the linker when building
14775 for the target.
14776 When building in the target context,
14777 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14778 is set to the value of this variable by default.
14779 </para>
14780
14781 <para>
14782 Additionally, the SDK's environment setup script sets
14783 the
14784 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14785 variable in the environment to the
14786 <filename>TARGET_LDFLAGS</filename> value so that
14787 executables built using the SDK also have the flags
14788 applied.
14789 </para>
14790 </glossdef>
14791 </glossentry>
14792
14793 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
14794 <info>
14795 TARGET_OS[doc] = "Specifies the target's operating system."
14796 </info>
14797 <glossdef>
14798 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014799 Specifies the target's operating system.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014800 The variable can be set to "linux" for glibc-based systems
14801 (GNU C Library) and to "linux-musl" for musl libc.
14802 For ARM/EABI targets, "linux-gnueabi" and "linux-musleabi"
14803 possible values exist.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014804 </para>
14805 </glossdef>
14806 </glossentry>
14807
14808 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
14809 <info>
14810 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
14811 </info>
14812 <glossdef>
14813 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014814 Specifies the prefix used for the toolchain binary target
14815 tools.
14816 </para>
14817
14818 <para>
14819 Depending on the type of recipe and the build target,
14820 <filename>TARGET_PREFIX</filename> is set as follows:
14821 <itemizedlist>
14822 <listitem><para>
14823 For recipes building for the target machine,
14824 the value is
14825 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
14826 </para></listitem>
14827 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014828 For native recipes, the build system sets the
14829 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014830 <filename>BUILD_PREFIX</filename>.
14831 </para></listitem>
14832 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014833 For native SDK recipes
14834 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014835 build system sets the variable to the value of
14836 <filename>SDK_PREFIX</filename>.
14837 </para></listitem>
14838 </itemizedlist>
14839 </para>
14840 </glossdef>
14841 </glossentry>
14842
14843 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
14844 <info>
14845 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
14846 </info>
14847 <glossdef>
14848 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014849 Specifies the system, including the architecture and the
14850 operating system, for which the build is occurring in
14851 the context of the current recipe.
14852 </para>
14853
14854 <para>
14855 The OpenEmbedded build system automatically sets this
14856 variable based on
14857 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
14858 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
14859 and
14860 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
14861 variables.
14862 <note>
14863 You do not need to set the
14864 <filename>TARGET_SYS</filename> variable yourself.
14865 </note>
14866 </para>
14867
14868 <para>
14869 Consider these two examples:
14870 <itemizedlist>
14871 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014872 Given a native recipe on a 32-bit, x86 machine
14873 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014874 </para></listitem>
14875 <listitem><para>
14876 Given a recipe being built for a little-endian,
14877 MIPS target running Linux, the value might be
14878 "mipsel-linux".
14879 </para></listitem>
14880 </itemizedlist>
14881 </para>
14882 </glossdef>
14883 </glossentry>
14884
14885 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
14886 <info>
14887 TARGET_VENDOR[doc] = "The name of the target vendor."
14888 </info>
14889 <glossdef>
14890 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014891 Specifies the name of the target vendor.
14892 </para>
14893 </glossdef>
14894 </glossentry>
14895
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080014896 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
14897 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050014898 TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc', 'musl' or 'newlib'."
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080014899 </info>
14900 <glossdef>
14901 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080014902 Specifies the GNU standard C library
14903 (<filename>libc</filename>) variant to use during the
14904 build process.
14905 This variable replaces <filename>POKYLIBC</filename>,
14906 which is no longer supported.
14907 </para>
14908
14909 <para>
14910 You can select "glibc", "musl", "newlib", or "baremetal"
14911 </para>
14912 </glossdef>
14913 </glossentry>
14914
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014915 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
14916 <info>
14917 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
14918 </info>
14919 <glossdef>
14920 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014921 Specifies a suffix to be appended onto the
14922 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14923 value.
14924 The suffix identifies the <filename>libc</filename> variant
14925 for building.
14926 When you are building for multiple variants with the same
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014927 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014928 this mechanism ensures that output for different
14929 <filename>libc</filename> variants is kept separate to
14930 avoid potential conflicts.
14931 </para>
14932
14933 <para>
14934 In the <filename>defaultsetup.conf</filename> file, the
14935 default value of <filename>TCLIBCAPPEND</filename> is
14936 "-${TCLIBC}".
14937 However, distros such as poky, which normally only support
14938 one <filename>libc</filename> variant, set
14939 <filename>TCLIBCAPPEND</filename> to "" in their distro
14940 configuration file resulting in no suffix being applied.
14941 </para>
14942 </glossdef>
14943 </glossentry>
14944
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014945 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
14946 <info>
14947 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
14948 </info>
14949 <glossdef>
14950 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014951 Specifies the toolchain selector.
14952 <filename>TCMODE</filename> controls the characteristics
14953 of the generated packages and images by telling the
14954 OpenEmbedded build system which toolchain profile to use.
14955 By default, the OpenEmbedded build system builds its own
14956 internal toolchain.
14957 The variable's default value is "default", which uses
14958 that internal toolchain.
14959 <note>
14960 If <filename>TCMODE</filename> is set to a value
14961 other than "default", then it is your responsibility
14962 to ensure that the toolchain is compatible with the
14963 default toolchain.
14964 Using older or newer versions of these components
14965 might cause build problems.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014966 See the Release Notes for the Yocto Project release
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014967 for the specific components with which the toolchain
14968 must be compatible.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014969 To access the Release Notes, go to the
14970 <ulink url='&YOCTO_HOME_URL;/software-overview/downloads/'>Downloads</ulink>
14971 page on the Yocto Project website and click on the
14972 "RELEASE INFORMATION" link for the appropriate
14973 release.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014974 </note>
14975 </para>
14976
14977 <para>
14978 The <filename>TCMODE</filename> variable is similar to
14979 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
14980 which controls the variant of the GNU standard C library
14981 (<filename>libc</filename>) used during the build process:
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014982 <filename>glibc</filename> or <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014983 </para>
14984
14985 <para>
14986 With additional layers, it is possible to use a pre-compiled
14987 external toolchain.
14988 One example is the Sourcery G++ Toolchain.
14989 The support for this toolchain resides in the separate
14990 <trademark class='registered'>Mentor Graphics</trademark>
14991 <filename>meta-sourcery</filename> layer at
14992 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
14993 </para>
14994
14995 <para>
14996 The layer's <filename>README</filename> file contains
14997 information on how to use the Sourcery G++ Toolchain as
14998 an external toolchain.
14999 In summary, you must be sure to add the layer to your
15000 <filename>bblayers.conf</filename> file in front of the
15001 <filename>meta</filename> layer and then set the
15002 <filename>EXTERNAL_TOOLCHAIN</filename>
15003 variable in your <filename>local.conf</filename> file
15004 to the location in which you installed the toolchain.
15005 </para>
15006
15007 <para>
15008 The fundamentals used for this example apply to any
15009 external toolchain.
15010 You can use <filename>meta-sourcery</filename> as a
15011 template for adding support for other external toolchains.
15012 </para>
15013 </glossdef>
15014 </glossentry>
15015
15016 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
15017 <info>
15018 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
15019 </info>
15020 <glossdef>
15021 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015022 The location the OpenEmbedded build system uses to export
15023 tests when the
15024 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
15025 variable is set to "1".
15026 </para>
15027
15028 <para>
15029 The <filename>TEST_EXPORT_DIR</filename> variable defaults
15030 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
15031 </para>
15032 </glossdef>
15033 </glossentry>
15034
15035 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
15036 <info>
15037 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."
15038 </info>
15039 <glossdef>
15040 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015041 Specifies to export the tests only.
15042 Set this variable to "1" if you do not want to run the
15043 tests but you want them to be exported in a manner that
15044 you to run them outside of the build system.
15045 </para>
15046 </glossdef>
15047 </glossentry>
15048
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015049 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
15050 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040015051 TEST_LOG_DIR[doc] = "Holds the SSH log and the boot log for QEMU machines. The TEST_LOG_DIR variable defaults to "${WORKDIR}/testimage"."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015052 </info>
15053 <glossdef>
15054 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015055 Holds the SSH log and the boot log for QEMU machines.
15056 The <filename>TEST_LOG_DIR</filename> variable defaults
15057 to <filename>"${WORKDIR}/testimage"</filename>.
15058 <note>
15059 Actual test results reside in the task log
15060 (<filename>log.do_testimage</filename>), which is in
15061 the <filename>${WORKDIR}/temp/</filename> directory.
15062 </note>
15063 </para>
15064 </glossdef>
15065 </glossentry>
15066
15067 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
15068 <info>
15069 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
15070 </info>
15071 <glossdef>
15072 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015073 For automated hardware testing, specifies the command to
15074 use to control the power of the target machine under test.
15075 Typically, this command would point to a script that
15076 performs the appropriate action (e.g. interacting
15077 with a web-enabled power strip).
15078 The specified command should expect to receive as the last
15079 argument "off", "on" or "cycle" specifying to power off,
15080 on, or cycle (power off and then power on) the device,
15081 respectively.
15082 </para>
15083 </glossdef>
15084 </glossentry>
15085
15086 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
15087 <info>
15088 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
15089 </info>
15090 <glossdef>
15091 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015092 For automated hardware testing, specifies additional
15093 arguments to pass through to the command specified in
15094 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
15095 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
15096 is optional.
15097 You can use it if you wish, for example, to separate the
15098 machine-specific and non-machine-specific parts of the
15099 arguments.
15100 </para>
15101 </glossdef>
15102 </glossentry>
15103
15104 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
15105 <info>
15106 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
15107 </info>
15108 <glossdef>
15109 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015110 The time in seconds allowed for an image to boot before
15111 automated runtime tests begin to run against an
15112 image.
15113 The default timeout period to allow the boot process to
15114 reach the login prompt is 500 seconds.
15115 You can specify a different value in the
15116 <filename>local.conf</filename> file.
15117 </para>
15118
15119 <para>
15120 For more information on testing images, see the
15121 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015122 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015123 </para>
15124 </glossdef>
15125 </glossentry>
15126
15127 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
15128 <info>
15129 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."
15130 </info>
15131 <glossdef>
15132 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015133 For automated hardware testing, specifies the command
15134 to use to connect to the serial console of the target
15135 machine under test.
15136 This command simply needs to connect to the serial console
15137 and forward that connection to standard input and output
15138 as any normal terminal program does.
15139 </para>
15140
15141 <para>
15142 For example, to use the Picocom terminal program on
15143 serial device <filename>/dev/ttyUSB0</filename> at
15144 115200bps, you would set the variable as follows:
15145 <literallayout class='monospaced'>
15146 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
15147 </literallayout>
15148 </para>
15149 </glossdef>
15150 </glossentry>
15151
15152 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
15153 <info>
15154 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
15155 </info>
15156 <glossdef>
15157 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015158 For automated hardware testing, specifies additional
15159 arguments to pass through to the command specified in
15160 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
15161 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
15162 is optional.
15163 You can use it if you wish, for example, to separate the
15164 machine-specific and non-machine-specific parts of the
15165 command.
15166 </para>
15167 </glossdef>
15168 </glossentry>
15169
15170 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
15171 <info>
15172 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
15173 </info>
15174 <glossdef>
15175 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015176 The IP address of the build machine (host machine).
15177 This IP address is usually automatically detected.
15178 However, if detection fails, this variable needs to be set
15179 to the IP address of the build machine (i.e. where
15180 the build is taking place).
15181 <note>
15182 The <filename>TEST_SERVER_IP</filename> variable
15183 is only used for a small number of tests such as
Brad Bishop6e60e8b2018-02-01 10:27:11 -050015184 the "dnf" test suite, which needs to download
15185 packages from
15186 <filename>WORKDIR/oe-rootfs-repo</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015187 </note>
15188 </para>
15189 </glossdef>
15190 </glossentry>
15191
15192 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
15193 <info>
15194 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
15195 </info>
15196 <glossdef>
15197 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015198 Specifies the target controller to use when running tests
15199 against a test image.
Andrew Geissler82c905d2020-04-13 13:39:40 -050015200 The default controller to use is "qemu":
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015201 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015202 TEST_TARGET = "qemu"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015203 </literallayout>
15204 </para>
15205
15206 <para>
15207 A target controller is a class that defines how an
15208 image gets deployed on a target and how a target is started.
15209 A layer can extend the controllers by adding a module
15210 in the layer's <filename>/lib/oeqa/controllers</filename>
15211 directory and by inheriting the
15212 <filename>BaseTarget</filename> class, which is an abstract
15213 class that cannot be used as a value of
15214 <filename>TEST_TARGET</filename>.
15215 </para>
15216
15217 <para>
15218 You can provide the following arguments with
15219 <filename>TEST_TARGET</filename>:
15220 <itemizedlist>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015221 <listitem><para><emphasis>"qemu":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015222 Boots a QEMU image and runs the tests.
15223 See the
15224 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015225 section in the Yocto Project Development Tasks
15226 Manual for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015227 </para></listitem>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015228 <listitem><para><emphasis>"simpleremote":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015229 Runs the tests on target hardware that is already
15230 up and running.
15231 The hardware can be on the network or it can be
15232 a device running an image on QEMU.
15233 You must also set
15234 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015235 when you use "simpleremote".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015236 <note>
15237 This argument is defined in
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015238 <filename>meta/lib/oeqa/controllers/simpleremote.py</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015239 </note>
15240 </para></listitem>
15241 </itemizedlist>
15242 </para>
15243
15244 <para>
15245 For information on running tests on hardware, see the
15246 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015247 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015248 </para>
15249 </glossdef>
15250 </glossentry>
15251
15252 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
15253 <info>
15254 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
15255 </info>
15256 <glossdef>
15257 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015258 The IP address of your hardware under test.
15259 The <filename>TEST_TARGET_IP</filename> variable has no
15260 effect when
15261 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
15262 is set to "qemu".
15263 </para>
15264
15265 <para>
15266 When you specify the IP address, you can also include a
15267 port.
15268 Here is an example:
15269 <literallayout class='monospaced'>
15270 TEST_TARGET_IP = "192.168.1.4:2201"
15271 </literallayout>
15272 Specifying a port is useful when SSH is started on a
15273 non-standard port or in cases when your hardware under test
15274 is behind a firewall or network that is not directly
15275 accessible from your host and you need to do port address
15276 translation.
15277 </para>
15278 </glossdef>
15279 </glossentry>
15280
15281 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
15282 <info>
15283 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
15284 </info>
15285 <glossdef>
15286 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015287 An ordered list of tests (modules) to run against
15288 an image when performing automated runtime testing.
15289 </para>
15290
15291 <para>
15292 The OpenEmbedded build system provides a core set of tests
15293 that can be used against images.
15294 <note>
15295 Currently, there is only support for running these tests
15296 under QEMU.
15297 </note>
15298 Tests include <filename>ping</filename>,
15299 <filename>ssh</filename>, <filename>df</filename> among
15300 others.
15301 You can add your own tests to the list of tests by
15302 appending <filename>TEST_SUITES</filename> as follows:
15303 <literallayout class='monospaced'>
15304 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
15305 </literallayout>
15306 Alternatively, you can provide the "auto" option to
15307 have all applicable tests run against the image.
15308 <literallayout class='monospaced'>
15309 TEST_SUITES_append = " auto"
15310 </literallayout>
15311 Using this option causes the build system to automatically
15312 run tests that are applicable to the image.
15313 Tests that are not applicable are skipped.
15314 </para>
15315
15316 <para>
15317 The order in which tests are run is important.
15318 Tests that depend on another test must appear later in the
15319 list than the test on which they depend.
15320 For example, if you append the list of tests with two
15321 tests (<filename>test_A</filename> and
15322 <filename>test_B</filename>) where
15323 <filename>test_B</filename> is dependent on
15324 <filename>test_A</filename>, then you must order the tests
15325 as follows:
15326 <literallayout class='monospaced'>
15327 TEST_SUITES = " test_A test_B"
15328 </literallayout>
15329 </para>
15330
15331 <para>
15332 For more information on testing images, see the
15333 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015334 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015335 </para>
15336 </glossdef>
15337 </glossentry>
15338
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015339 <glossentry id='var-TESTIMAGE_AUTO'><glossterm>TESTIMAGE_AUTO</glossterm>
15340 <info>
15341 TESTIMAGE_AUTO[doc] = "Enables automatic testing of an image once it is built."
15342 </info>
15343 <glossdef>
15344 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015345 Automatically runs the series of automated tests for
15346 images when an image is successfully built.
15347 Setting <filename>TESTIMAGE_AUTO</filename> to "1"
15348 causes any image that successfully builds to automatically
15349 boot under QEMU.
15350 Using the variable also adds in dependencies so that any
15351 SDK for which testing is requested is automatically built
15352 first.
15353 </para>
15354
15355 <para>
15356 These tests are written in Python making use of the
15357 <filename>unittest</filename> module, and the majority of
15358 them run commands on the target system over
15359 <filename>ssh</filename>.
15360 You can set this variable to "1" in your
15361 <filename>local.conf</filename> file in the
15362 <link linkend='build-directory'>Build Directory</link>
15363 to have the OpenEmbedded build system automatically run
15364 these tests after an image successfully builds:
15365 <literallayout class='monospaced'>
15366 TESTIMAGE_AUTO = "1"
15367 </literallayout>
15368 For more information on enabling, running, and writing
15369 these tests, see the
15370 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
15371 section in the Yocto Project Development Tasks Manual and
15372 the
15373 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
15374 section.
15375 </para>
15376 </glossdef>
15377 </glossentry>
15378
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015379 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
15380 <info>
15381 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
15382 </info>
15383 <glossdef>
15384 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015385 The directory in which the file BitBake is currently
15386 parsing is located.
15387 Do not manually set this variable.
15388 </para>
15389 </glossdef>
15390 </glossentry>
15391
15392 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
15393 <info>
15394 TIME[doc] = "The time the build was started using HMS format."
15395 </info>
15396 <glossdef>
15397 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015398 The time the build was started.
15399 Times appear using the hour, minute, and second (HMS)
15400 format (e.g. "140159" for one minute and fifty-nine
15401 seconds past 1400 hours).
15402 </para>
15403 </glossdef>
15404 </glossentry>
15405
15406 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
15407 <info>
15408 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."
15409 </info>
15410 <glossdef>
15411 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015412 This variable is the base directory the OpenEmbedded
15413 build system uses for all build output and intermediate
15414 files (other than the shared state cache).
15415 By default, the <filename>TMPDIR</filename> variable points
15416 to <filename>tmp</filename> within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015417 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015418 </para>
15419
15420 <para>
15421 If you want to establish this directory in a location other
15422 than the default, you can uncomment and edit the following
15423 statement in the
15424 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015425 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015426 <literallayout class='monospaced'>
15427 #TMPDIR = "${TOPDIR}/tmp"
15428 </literallayout>
15429 An example use for this scenario is to set
15430 <filename>TMPDIR</filename> to a local disk, which does
15431 not use NFS, while having the Build Directory use NFS.
15432 </para>
15433
15434 <para>
15435 The filesystem used by <filename>TMPDIR</filename> must
15436 have standard filesystem semantics (i.e. mixed-case files
15437 are unique, POSIX file locking, and persistent inodes).
15438 Due to various issues with NFS and bugs in some
15439 implementations, NFS does not meet this minimum
15440 requirement.
15441 Consequently, <filename>TMPDIR</filename> cannot be on
15442 NFS.
15443 </para>
15444 </glossdef>
15445 </glossentry>
15446
15447 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
15448 <info>
15449 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
15450 </info>
15451 <glossdef>
15452 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015453 This variable lists packages the OpenEmbedded build system
15454 uses when building an SDK, which contains a
15455 cross-development environment.
15456 The packages specified by this variable are part of the
15457 toolchain set that runs on the
15458 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
15459 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015460 <filename>nativesdk-</filename>.
15461 For example, consider the following command when
15462 building an SDK:
15463 <literallayout class='monospaced'>
15464 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
15465 </literallayout>
15466 In this case, a default list of packages is set in this
15467 variable, but you can add additional packages to the list.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015468 See the
15469 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-adding-individual-packages'>Adding Individual Packages to the Standard SDK</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015470 section in the Yocto Project Application Development and
15471 the Extensible Software Development Kit (eSDK) manual
15472 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015473 </para>
15474
15475 <para>
15476 For background information on cross-development toolchains
15477 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015478 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15479 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015480 For information on setting up a cross-development
15481 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015482 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15483 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015484 </para>
15485 </glossdef>
15486 </glossentry>
15487
15488 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
15489 <info>
15490 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
15491 </info>
15492 <glossdef>
15493 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015494 This variable defines the name used for the toolchain
15495 output.
15496 The
15497 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
15498 class sets the
15499 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
15500 follows:
15501 <literallayout class='monospaced'>
15502 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
15503 </literallayout>
15504 See the
15505 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
15506 and
15507 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
15508 variables for additional information.
15509 </para>
15510 </glossdef>
15511 </glossentry>
15512
15513 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
15514 <info>
15515 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."
15516 </info>
15517 <glossdef>
15518 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015519 This variable lists packages the OpenEmbedded build system
15520 uses when it creates the target part of an SDK
15521 (i.e. the part built for the target hardware), which
15522 includes libraries and headers.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015523 Use this variable to add individual packages to the
15524 part of the SDK that runs on the target.
15525 See the
15526 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-adding-individual-packages'>Adding Individual Packages to the Standard SDK</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015527 section in the Yocto Project Application Development and
15528 the Extensible Software Development Kit (eSDK) manual for
15529 more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015530 </para>
15531
15532 <para>
15533 For background information on cross-development toolchains
15534 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015535 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15536 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015537 For information on setting up a cross-development
15538 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015539 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15540 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015541 </para>
15542 </glossdef>
15543 </glossentry>
15544
15545 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
15546 <info>
15547 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
15548 </info>
15549 <glossdef>
15550 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015551 The top-level
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015552 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015553 BitBake automatically sets this variable when you
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015554 initialize your build environment using
15555 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015556 </para>
15557 </glossdef>
15558 </glossentry>
15559
15560 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
15561 <info>
15562 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."
15563 </info>
15564 <glossdef>
15565 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015566 A sanitized version of
15567 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
15568 This variable is used where the architecture is needed in
15569 a value where underscores are not allowed, for example
15570 within package filenames.
15571 In this case, dash characters replace any underscore
Brad Bishop316dfdd2018-06-25 12:45:53 -040015572 characters used in <filename>TARGET_ARCH</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015573 </para>
15574
15575 <para>
15576 Do not edit this variable.
15577 </para>
15578 </glossdef>
15579 </glossentry>
15580
15581 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
15582 <info>
15583 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
15584 </info>
15585 <glossdef>
15586 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015587 The GNU canonical architecture for a specific architecture
15588 (i.e. <filename>arm</filename>,
15589 <filename>armeb</filename>,
15590 <filename>mips</filename>,
15591 <filename>mips64</filename>, and so forth).
15592 BitBake uses this value to setup configuration.
15593 </para>
15594
15595 <para>
15596 <filename>TUNE_ARCH</filename> definitions are specific to
15597 a given architecture.
15598 The definitions can be a single static definition, or
15599 can be dynamically adjusted.
15600 You can see details for a given CPU family by looking at
15601 the architecture's <filename>README</filename> file.
15602 For example, the
15603 <filename>meta/conf/machine/include/mips/README</filename>
15604 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015605 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015606 provides information for <filename>TUNE_ARCH</filename>
15607 specific to the <filename>mips</filename> architecture.
15608 </para>
15609
15610 <para>
15611 <filename>TUNE_ARCH</filename> is tied closely to
15612 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
15613 which defines the target machine's architecture.
15614 The BitBake configuration file
15615 (<filename>meta/conf/bitbake.conf</filename>) sets
15616 <filename>TARGET_ARCH</filename> as follows:
15617 <literallayout class='monospaced'>
15618 TARGET_ARCH = "${TUNE_ARCH}"
15619 </literallayout>
15620 </para>
15621
15622 <para>
15623 The following list, which is by no means complete since
15624 architectures are configurable, shows supported machine
15625 architectures:
15626 <literallayout class='monospaced'>
15627 arm
15628 i586
15629 x86_64
15630 powerpc
15631 powerpc64
15632 mips
15633 mipsel
15634 </literallayout>
15635 </para>
15636 </glossdef>
15637 </glossentry>
15638
15639 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
15640 <info>
15641 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
15642 </info>
15643 <glossdef>
15644 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015645 Specifies architecture-specific assembler flags for
15646 the target system.
15647 The set of flags is based on the selected tune features.
15648 <filename>TUNE_ASARGS</filename> is set using
15649 the tune include files, which are typically under
15650 <filename>meta/conf/machine/include/</filename> and are
15651 influenced through
15652 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15653 For example, the
15654 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15655 file defines the flags for the x86 architecture as follows:
15656 <literallayout class='monospaced'>
15657 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
15658 </literallayout>
15659 <note>
15660 Board Support Packages (BSPs) select the tune.
15661 The selected tune, in turn, affects the tune variables
15662 themselves (i.e. the tune can supply its own
15663 set of flags).
15664 </note>
15665 </para>
15666 </glossdef>
15667 </glossentry>
15668
15669 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
15670 <info>
15671 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
15672 </info>
15673 <glossdef>
15674 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015675 Specifies architecture-specific C compiler flags for
15676 the target system.
15677 The set of flags is based on the selected tune features.
15678 <filename>TUNE_CCARGS</filename> is set using
15679 the tune include files, which are typically under
15680 <filename>meta/conf/machine/include/</filename> and are
15681 influenced through
15682 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15683 <note>
15684 Board Support Packages (BSPs) select the tune.
15685 The selected tune, in turn, affects the tune variables
15686 themselves (i.e. the tune can supply its own
15687 set of flags).
15688 </note>
15689 </para>
15690 </glossdef>
15691 </glossentry>
15692
15693 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
15694 <info>
15695 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
15696 </info>
15697 <glossdef>
15698 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015699 Specifies architecture-specific linker flags for
15700 the target system.
15701 The set of flags is based on the selected tune features.
15702 <filename>TUNE_LDARGS</filename> is set using
15703 the tune include files, which are typically under
15704 <filename>meta/conf/machine/include/</filename> and are
15705 influenced through
15706 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15707 For example, the
15708 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15709 file defines the flags for the x86 architecture as follows:
15710 <literallayout class='monospaced'>
15711 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
15712 </literallayout>
15713 <note>
15714 Board Support Packages (BSPs) select the tune.
15715 The selected tune, in turn, affects the tune variables
15716 themselves (i.e. the tune can supply its own
15717 set of flags).
15718 </note>
15719 </para>
15720 </glossdef>
15721 </glossentry>
15722
15723 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
15724 <info>
15725 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
15726 </info>
15727 <glossdef>
15728 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015729 Features used to "tune" a compiler for optimal use
15730 given a specific processor.
15731 The features are defined within the tune files and allow
15732 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
15733 dynamically generated based on the features.
15734 </para>
15735
15736 <para>
15737 The OpenEmbedded build system verifies the features
15738 to be sure they are not conflicting and that they are
15739 supported.
15740 </para>
15741
15742 <para>
15743 The BitBake configuration file
15744 (<filename>meta/conf/bitbake.conf</filename>) defines
15745 <filename>TUNE_FEATURES</filename> as follows:
15746 <literallayout class='monospaced'>
15747 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
15748 </literallayout>
15749 See the
15750 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
15751 variable for more information.
15752 </para>
15753 </glossdef>
15754 </glossentry>
15755
15756 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
15757 <info>
15758 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
15759 </info>
15760 <glossdef>
15761 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015762 The package architecture understood by the packaging
15763 system to define the architecture, ABI, and tuning of
15764 output packages.
15765 The specific tune is defined using the "_tune" override
15766 as follows:
15767 <literallayout class='monospaced'>
15768 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
15769 </literallayout>
15770 </para>
15771
15772 <para>
15773 These tune-specific package architectures are defined in
15774 the machine include files.
15775 Here is an example of the "core2-32" tuning as used
15776 in the
15777 <filename>meta/conf/machine/include/tune-core2.inc</filename>
15778 file:
15779 <literallayout class='monospaced'>
15780 TUNE_PKGARCH_tune-core2-32 = "core2-32"
15781 </literallayout>
15782 </para>
15783 </glossdef>
15784 </glossentry>
15785
15786 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
15787 <info>
15788 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."
15789 </info>
15790 <glossdef>
15791 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015792 An underlying Application Binary Interface (ABI) used by
15793 a particular tuning in a given toolchain layer.
15794 Providers that use prebuilt libraries can use the
15795 <filename>TUNEABI</filename>,
15796 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15797 and
15798 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15799 variables to check compatibility of tunings against their
15800 selection of libraries.
15801 </para>
15802
15803 <para>
15804 If <filename>TUNEABI</filename> is undefined, then every
15805 tuning is allowed.
15806 See the
15807 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15808 class to see how the variable is used.
15809 </para>
15810 </glossdef>
15811 </glossentry>
15812
15813 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
15814 <info>
15815 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
15816 </info>
15817 <glossdef>
15818 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015819 If set, the OpenEmbedded system ignores the
15820 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15821 variable.
15822 Providers that use prebuilt libraries can use the
15823 <filename>TUNEABI_OVERRIDE</filename>,
15824 <filename>TUNEABI_WHITELIST</filename>,
15825 and
15826 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15827 variables to check compatibility of a tuning against their
15828 selection of libraries.
15829 </para>
15830
15831 <para>
15832 See the
15833 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15834 class to see how the variable is used.
15835 </para>
15836 </glossdef>
15837 </glossentry>
15838
15839 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
15840 <info>
15841 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
15842 </info>
15843 <glossdef>
15844 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015845 A whitelist of permissible
15846 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15847 values.
15848 If <filename>TUNEABI_WHITELIST</filename> is not set,
15849 all tunes are allowed.
15850 Providers that use prebuilt libraries can use the
15851 <filename>TUNEABI_WHITELIST</filename>,
15852 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15853 and <filename>TUNEABI</filename> variables to check
15854 compatibility of a tuning against their selection of
15855 libraries.
15856 </para>
15857
15858 <para>
15859 See the
15860 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15861 class to see how the variable is used.
15862 </para>
15863 </glossdef>
15864 </glossentry>
15865
15866 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
15867 <info>
15868 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
15869 </info>
15870 <glossdef>
15871 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015872 Specifies CPU or Application Binary Interface (ABI)
15873 tuning features that conflict with <replaceable>feature</replaceable>.
15874 </para>
15875
15876 <para>
15877 Known tuning conflicts are specified in the machine include
15878 files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015879 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015880 Here is an example from the
15881 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
15882 include file that lists the "o32" and "n64" features as
15883 conflicting with the "n32" feature:
15884 <literallayout class='monospaced'>
15885 TUNECONFLICTS[n32] = "o32 n64"
15886 </literallayout>
15887 </para>
15888 </glossdef>
15889 </glossentry>
15890
15891 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
15892 <info>
15893 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
15894 </info>
15895 <glossdef>
15896 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015897 Specifies a valid CPU or Application Binary Interface (ABI)
15898 tuning feature.
15899 The specified feature is stored as a flag.
15900 Valid features are specified in the machine include files
15901 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
15902 Here is an example from that file:
15903 <literallayout class='monospaced'>
15904 TUNEVALID[bigendian] = "Enable big-endian mode."
15905 </literallayout>
15906 </para>
15907
15908 <para>
15909 See the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015910 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015911 for these features.
15912 </para>
15913 </glossdef>
15914 </glossentry>
15915
15916 </glossdiv>
15917
15918 <glossdiv id='var-glossary-u'><title>U</title>
15919
15920 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
15921 <info>
15922 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
15923 </info>
15924 <glossdef>
15925 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015926 Configures the
15927 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
15928 and can also define
15929 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
15930 for individual cases.
15931 </para>
15932
15933 <para>
15934 Following is an example from the
15935 <filename>meta-fsl-arm</filename> layer.
15936 <literallayout class='monospaced'>
15937 UBOOT_CONFIG ??= "sd"
15938 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
15939 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
15940 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
15941 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
15942 </literallayout>
15943 In this example, "sd" is selected as the configuration
15944 of the possible four for the
15945 <filename>UBOOT_MACHINE</filename>.
15946 The "sd" configuration defines "mx6qsabreauto_config"
15947 as the value for <filename>UBOOT_MACHINE</filename>, while
15948 the "sdcard" specifies the
15949 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
15950 image.
15951 </para>
15952
15953 <para>
15954 For more information on how the
15955 <filename>UBOOT_CONFIG</filename> is handled, see the
15956 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
15957 class.
15958 </para>
15959 </glossdef>
15960 </glossentry>
15961
15962 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
15963 <info>
15964 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
15965 </info>
15966 <glossdef>
15967 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015968 Specifies the entry point for the U-Boot image.
15969 During U-Boot image creation, the
15970 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
15971 as a command-line parameter to the
15972 <filename>uboot-mkimage</filename> utility.
15973 </para>
15974 </glossdef>
15975 </glossentry>
15976
15977 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
15978 <info>
15979 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
15980 </info>
15981 <glossdef>
15982 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015983 Specifies the load address for the U-Boot image.
15984 During U-Boot image creation, the
15985 <filename>UBOOT_LOADADDRESS</filename> variable is passed
15986 as a command-line parameter to the
15987 <filename>uboot-mkimage</filename> utility.
15988 </para>
15989 </glossdef>
15990 </glossentry>
15991
15992 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
15993 <info>
15994 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
15995 </info>
15996 <glossdef>
15997 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015998 Appends a string to the name of the local version of the
15999 U-Boot image.
16000 For example, assuming the version of the U-Boot image
Andrew Geissler82c905d2020-04-13 13:39:40 -050016001 built was "2013.10", the full version string reported by
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016002 U-Boot would be "2013.10-yocto" given the following
16003 statement:
16004 <literallayout class='monospaced'>
16005 UBOOT_LOCALVERSION = "-yocto"
16006 </literallayout>
16007 </para>
16008 </glossdef>
16009 </glossentry>
16010
16011 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
16012 <info>
16013 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
16014 </info>
16015 <glossdef>
16016 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016017 Specifies the value passed on the
16018 <filename>make</filename> command line when building
16019 a U-Boot image.
16020 The value indicates the target platform configuration.
16021 You typically set this variable from the machine
16022 configuration file (i.e.
16023 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
16024 </para>
16025
16026 <para>
16027 Please see the "Selection of Processor Architecture and
16028 Board Type" section in the U-Boot README for valid values
16029 for this variable.
16030 </para>
16031 </glossdef>
16032 </glossentry>
16033
16034 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
16035 <info>
16036 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
16037 </info>
16038 <glossdef>
16039 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016040 Specifies the target called in the
16041 <filename>Makefile</filename>.
16042 The default target is "all".
16043 </para>
16044 </glossdef>
16045 </glossentry>
16046
16047 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
16048 <info>
16049 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
16050 </info>
16051 <glossdef>
16052 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016053 Points to the generated U-Boot extension.
16054 For example, <filename>u-boot.sb</filename> has a
16055 <filename>.sb</filename> extension.
16056 </para>
16057
16058 <para>
16059 The default U-Boot extension is
16060 <filename>.bin</filename>
16061 </para>
16062 </glossdef>
16063 </glossentry>
16064
16065 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
16066 <info>
16067 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
16068 </info>
16069 <glossdef>
16070 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016071 Specifies the target used for building U-Boot.
16072 The target is passed directly as part of the "make" command
16073 (e.g. SPL and AIS).
16074 If you do not specifically set this variable, the
16075 OpenEmbedded build process passes and uses "all" for the
16076 target during the U-Boot building process.
16077 </para>
16078 </glossdef>
16079 </glossentry>
16080
16081 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
16082 <info>
16083 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."
16084 </info>
16085 <glossdef>
16086 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016087 Specifies a list of options that, if reported by the
16088 configure script as being invalid, should not generate a
16089 warning during the
16090 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
16091 task.
16092 Normally, invalid configure options are simply not passed
16093 to the configure script (e.g. should be removed from
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016094 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
16095 or
16096 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016097 However, common options, for example, exist that are passed
16098 to all configure scripts at a class level that might not
16099 be valid for some configure scripts.
16100 It follows that no benefit exists in seeing a warning about
16101 these options.
16102 For these cases, the options are added to
16103 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
16104 </para>
16105
16106 <para>
16107 The configure arguments check that uses
16108 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
16109 of the
16110 <link linkend='ref-classes-insane'><filename>insane</filename></link>
16111 class and is only enabled if the recipe inherits the
16112 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
16113 class.
16114 </para>
16115 </glossdef>
16116 </glossentry>
16117
16118 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
16119 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016120 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is enabled."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016121 </info>
16122 <glossdef>
16123 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016124 For recipes inheriting the
16125 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
16126 class, <filename>UPDATERCPN</filename> specifies
Brad Bishop316dfdd2018-06-25 12:45:53 -040016127 the package that contains the initscript that is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016128 enabled.
16129 </para>
16130
16131 <para>
16132 The default value is "${PN}".
16133 Given that almost all recipes that install initscripts
16134 package them in the main package for the recipe, you
16135 rarely need to set this variable in individual recipes.
16136 </para>
16137 </glossdef>
16138 </glossentry>
16139
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016140 <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
16141 <info>
16142 UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
16143 </info>
16144 <glossdef>
16145 <para role="glossdeffirst">
Brad Bishop15ae2502019-06-18 21:44:24 -040016146 You can perform a per-recipe check for what the latest
16147 upstream source code version is by calling
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016148 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
16149 If the recipe source code is provided from Git
16150 repositories, the OpenEmbedded build system determines the
16151 latest upstream version by picking the latest tag from the
16152 list of all repository tags.
Brad Bishop15ae2502019-06-18 21:44:24 -040016153 </para>
16154
16155 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016156 You can use the
16157 <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
16158 variable to provide a regular expression to filter only the
16159 relevant tags should the default filter not work
16160 correctly.
16161 <literallayout class='monospaced'>
16162 UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
16163 </literallayout>
16164 </para>
16165 </glossdef>
16166 </glossentry>
16167
16168 <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
16169 <info>
16170 UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
16171 </info>
16172 <glossdef>
16173 <para role="glossdeffirst">
Brad Bishop15ae2502019-06-18 21:44:24 -040016174 Use the <filename>UPSTREAM_CHECK_REGEX</filename> variable
16175 to specify a different regular expression instead of the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016176 default one when the package checking system is parsing
16177 the page found using
16178 <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
16179 <literallayout class='monospaced'>
16180 UPSTREAM_CHECK_REGEX = "package_regex"
16181 </literallayout>
16182 </para>
16183 </glossdef>
16184 </glossentry>
16185
16186 <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
16187 <info>
16188 UPSTREAM_CHECK_URI[doc] = "The URL used by the package checking system to get the latest version of the package when source files are fetched from an upstream Git repository."
16189 </info>
16190 <glossdef>
16191 <para role="glossdeffirst">
Brad Bishop15ae2502019-06-18 21:44:24 -040016192 You can perform a per-recipe check for what the latest
16193 upstream source code version is by calling
16194 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016195 If the source code is provided from tarballs, the latest
16196 version is determined by fetching the directory listing
16197 where the tarball is and attempting to find a later tarball.
16198 When this approach does not work, you can use
16199 <filename>UPSTREAM_CHECK_URI</filename> to
16200 provide a different URI that contains the link to the
16201 latest tarball.
16202 <literallayout class='monospaced'>
16203 UPSTREAM_CHECK_URI = "recipe_url"
16204 </literallayout>
16205 </para>
16206 </glossdef>
16207 </glossentry>
16208
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016209 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
16210 <info>
16211 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
16212 </info>
16213 <glossdef>
16214 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016215 Determines if <filename>devtmpfs</filename> is used for
16216 <filename>/dev</filename> population.
16217 The default value used for <filename>USE_DEVFS</filename>
16218 is "1" when no value is specifically set.
16219 Typically, you would set <filename>USE_DEVFS</filename>
16220 to "0" for a statically populated <filename>/dev</filename>
16221 directory.
16222 </para>
16223
16224 <para>
16225 See the
16226 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016227 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016228 information on how to use this variable.
16229 </para>
16230 </glossdef>
16231 </glossentry>
16232
16233 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
16234 <info>
16235 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."
16236 </info>
16237 <glossdef>
16238 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016239 When using
16240 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
16241 determines whether or not to run a
16242 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
16243 on any virtual terminals in order to enable logging in
16244 through those terminals.
16245 </para>
16246
16247 <para>
16248 The default value used for <filename>USE_VT</filename>
16249 is "1" when no default value is specifically set.
16250 Typically, you would set <filename>USE_VT</filename>
16251 to "0" in the machine configuration file for machines
16252 that do not have a graphical display attached and
16253 therefore do not need virtual terminal functionality.
16254 </para>
16255 </glossdef>
16256 </glossentry>
16257
16258 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
16259 <info>
16260 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
16261 </info>
16262 <glossdef>
16263 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016264 A list of classes to globally inherit.
16265 These classes are used by the OpenEmbedded build system
16266 to enable extra features (e.g.
16267 <filename>buildstats</filename>,
16268 <filename>image-mklibs</filename>, and so forth).
16269 </para>
16270
16271 <para>
16272 The default list is set in your
16273 <filename>local.conf</filename> file:
16274 <literallayout class='monospaced'>
16275 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
16276 </literallayout>
16277 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050016278 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016279 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016280 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016281 </para>
16282 </glossdef>
16283 </glossentry>
16284
16285 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
16286 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050016287 USERADD_ERROR_DYNAMIC[doc] = "If set to 'error', forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in any of the files listed in USERADD_UID_TABLES and USERADD_GID_TABLES. If set to 'warn', a warning will be issued instead."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016288 </info>
16289 <glossdef>
16290 <para role="glossdeffirst">
Andrew Geissler82c905d2020-04-13 13:39:40 -050016291
16292 If set to <filename>error</filename>, forces the
16293 OpenEmbedded build system to produce an error if the user
16294 identification (<filename>uid</filename>) and group
16295 identification (<filename>gid</filename>) values are not
16296 defined in any of the files listed
16297 in <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16298 and <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>. If
16299 set to <filename>warn</filename>, a warning will be issued
16300 instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016301 </para>
16302
16303 <para>
16304 The default behavior for the build system is to dynamically
16305 apply <filename>uid</filename> and
16306 <filename>gid</filename> values.
16307 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
16308 variable is by default not set.
16309 If you plan on using statically assigned
16310 <filename>gid</filename> and <filename>uid</filename>
16311 values, you should set
16312 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
16313 your <filename>local.conf</filename> file as
16314 follows:
16315 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016316 USERADD_ERROR_DYNAMIC = "error"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016317 </literallayout>
16318 Overriding the default behavior implies you are going to
16319 also take steps to set static <filename>uid</filename> and
16320 <filename>gid</filename> values through use of the
16321 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
16322 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
16323 and
16324 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16325 variables.
16326 </para>
Andrew Geissler82c905d2020-04-13 13:39:40 -050016327
16328 <note>
16329 There is a difference in behavior between
16330 setting <filename>USERADD_ERROR_DYNAMIC</filename>
16331 to <filename>error</filename> and setting it
16332 to <filename>warn</filename>. When it is set
16333 to <filename>warn</filename>, the build system will report a
16334 warning for every undefined <filename>uid</filename> and
16335 <filename>gid</filename> in any recipe. But when it is set
16336 to <filename>error</filename>, it will only report errors
16337 for recipes that are actually built. This saves you from
16338 having to add static IDs for recipes that you know will
16339 never be built.
16340 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016341 </glossdef>
16342 </glossentry>
16343
16344 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
16345 <info>
16346 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."
16347 </info>
16348 <glossdef>
16349 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016350 Specifies a password file to use for obtaining static
16351 group identification (<filename>gid</filename>) values
16352 when the OpenEmbedded build system adds a group to the
16353 system during package installation.
16354 </para>
16355
16356 <para>
16357 When applying static group identification
16358 (<filename>gid</filename>) values, the OpenEmbedded build
16359 system looks in
16360 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16361 for a <filename>files/group</filename> file and then applies
16362 those <filename>uid</filename> values.
16363 Set the variable as follows in your
16364 <filename>local.conf</filename> file:
16365 <literallayout class='monospaced'>
16366 USERADD_GID_TABLES = "files/group"
16367 </literallayout>
16368 </para>
16369
16370 <note>
16371 Setting the
16372 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16373 variable to "useradd-staticids" causes the build system
16374 to use static <filename>gid</filename> values.
16375 </note>
16376 </glossdef>
16377 </glossentry>
16378
16379 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
16380 <info>
16381 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."
16382 </info>
16383 <glossdef>
16384 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016385 When inheriting the
16386 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16387 class, this variable
16388 specifies the individual packages within the recipe that
16389 require users and/or groups to be added.
16390 </para>
16391
16392 <para>
16393 You must set this variable if the recipe inherits the
16394 class.
16395 For example, the following enables adding a user for the
16396 main package in a recipe:
16397 <literallayout class='monospaced'>
16398 USERADD_PACKAGES = "${PN}"
16399 </literallayout>
16400 <note>
Andrew Geissler99467da2019-02-25 18:54:23 -060016401 It follows that if you are going to use the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016402 <filename>USERADD_PACKAGES</filename> variable,
16403 you need to set one or more of the
16404 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
16405 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
16406 or
16407 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
16408 variables.
16409 </note>
16410 </para>
16411
16412 </glossdef>
16413 </glossentry>
16414
16415 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
16416 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016417 USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should pass to the useradd command if you add a user to the system when the package is installed."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016418 </info>
16419 <glossdef>
16420 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016421 When inheriting the
16422 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16423 class, this variable
Brad Bishop316dfdd2018-06-25 12:45:53 -040016424 specifies for a package what parameters should pass
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016425 to the <filename>useradd</filename> command
Brad Bishop316dfdd2018-06-25 12:45:53 -040016426 if you add a user to the system when the package
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016427 is installed.
16428 </para>
16429
16430 <para>
16431 Here is an example from the <filename>dbus</filename>
16432 recipe:
16433 <literallayout class='monospaced'>
16434 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
16435 --no-create-home --shell /bin/false \
16436 --user-group messagebus"
16437 </literallayout>
16438 For information on the standard Linux shell command
16439 <filename>useradd</filename>, see
16440 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
16441 </para>
16442 </glossdef>
16443 </glossentry>
16444
16445 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
16446 <info>
16447 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."
16448 </info>
16449 <glossdef>
16450 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016451 Specifies a password file to use for obtaining static
16452 user identification (<filename>uid</filename>) values
16453 when the OpenEmbedded build system adds a user to the
16454 system during package installation.
16455 </para>
16456
16457 <para>
16458 When applying static user identification
16459 (<filename>uid</filename>) values, the OpenEmbedded build
16460 system looks in
16461 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16462 for a <filename>files/passwd</filename> file and then applies
16463 those <filename>uid</filename> values.
16464 Set the variable as follows in your
16465 <filename>local.conf</filename> file:
16466 <literallayout class='monospaced'>
16467 USERADD_UID_TABLES = "files/passwd"
16468 </literallayout>
16469 </para>
16470
16471 <note>
16472 Setting the
16473 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16474 variable to "useradd-staticids" causes the build system
16475 to use static <filename>uid</filename> values.
16476 </note>
16477 </glossdef>
16478 </glossentry>
16479
16480 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
16481 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016482 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."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016483 </info>
16484 <glossdef>
16485 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016486 When set to "useradd-staticids", causes the
16487 OpenEmbedded build system to base all user and group
16488 additions on a static
16489 <filename>passwd</filename> and
16490 <filename>group</filename> files found in
16491 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
16492 </para>
16493
16494 <para>
16495 To use static user identification (<filename>uid</filename>)
16496 and group identification (<filename>gid</filename>)
16497 values, set the variable
16498 as follows in your <filename>local.conf</filename> file:
16499 <literallayout class='monospaced'>
16500 USERADDEXTENSION = "useradd-staticids"
16501 </literallayout>
16502 <note>
16503 Setting this variable to use static
16504 <filename>uid</filename> and <filename>gid</filename>
16505 values causes the OpenEmbedded build system to employ
16506 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016507 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016508 class.
16509 </note>
16510 </para>
16511
16512 <para>
16513 If you use static <filename>uid</filename> and
16514 <filename>gid</filename> information, you must also
16515 specify the <filename>files/passwd</filename> and
16516 <filename>files/group</filename> files by setting the
16517 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16518 and
16519 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16520 variables.
16521 Additionally, you should also set the
16522 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
16523 variable.
16524 </para>
16525 </glossdef>
16526 </glossentry>
16527
16528 </glossdiv>
16529
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016530 <glossdiv id='var-glossary-v'><title>V</title>
16531
16532 <glossentry id='var-VOLATILE_LOG_DIR'><glossterm>VOLATILE_LOG_DIR</glossterm>
16533 <info>
16534 VOLATILE_LOG_DIR[doc] = "Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files."
16535 </info>
16536 <glossdef>
16537 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016538 Specifies the persistence of the target's
16539 <filename>/var/log</filename> directory, which is used to
16540 house postinstall target log files.
16541 </para>
16542
16543 <para>
16544 By default, <filename>VOLATILE_LOG_DIR</filename> is set
16545 to "yes", which means the file is not persistent.
16546 You can override this setting by setting the
16547 variable to "no" to make the log directory persistent.
16548 </para>
16549 </glossdef>
16550 </glossentry>
16551
16552 </glossdiv>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016553
16554 <glossdiv id='var-glossary-w'><title>W</title>
16555
16556 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
16557 <info>
16558 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
16559 </info>
16560 <glossdef>
16561 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016562 Specifies the quality assurance checks whose failures are
16563 reported as warnings by the OpenEmbedded build system.
16564 You set this variable in your distribution configuration
16565 file.
16566 For a list of the checks you can control with this variable,
16567 see the
16568 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
16569 section.
16570 </para>
16571 </glossdef>
16572 </glossentry>
16573
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016574 <glossentry id='var-WKS_FILE_DEPENDS'><glossterm>WKS_FILE_DEPENDS</glossterm>
16575 <info>
16576 WKS_FILE_DEPENDS[doc] = "Lists a recipe's build-time dependencies specific to Wic."
16577 </info>
16578 <glossdef>
16579 <para role="glossdeffirst">
16580 When placed in the recipe that builds your image, this
16581 variable lists build-time dependencies.
16582 The <filename>WKS_FILE_DEPENDS</filename> variable is only
16583 applicable when Wic images are active (i.e. when
16584 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
16585 contains entries related to Wic).
16586 If your recipe does not create Wic images, the variable
16587 has no effect.
16588 </para>
16589
16590 <para>
16591 The <filename>WKS_FILE_DEPENDS</filename> variable is
16592 similar to the
16593 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
16594 variable.
16595 When you use the variable in your recipe that builds the
16596 Wic image, dependencies you list in the
16597 <filename>WIC_FILE_DEPENDS</filename> variable are added to
16598 the <filename>DEPENDS</filename> variable.
16599 </para>
16600
16601 <para>
16602 With the <filename>WKS_FILE_DEPENDS</filename> variable,
16603 you have the possibility to specify a list of additional
16604 dependencies (e.g. native tools, bootloaders, and so forth),
16605 that are required to build Wic images.
16606 Following is an example:
16607 <literallayout class='monospaced'>
16608 WKS_FILE_DEPENDS = "<replaceable>some-native-tool</replaceable>"
16609 </literallayout>
16610 In the previous example,
16611 <replaceable>some-native-tool</replaceable> would be
16612 replaced with an actual native tool on which the build
16613 would depend.
16614 </para>
16615 </glossdef>
16616 </glossentry>
16617
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016618 <glossentry id='var-WKS_FILE'><glossterm>WKS_FILE</glossterm>
16619 <info>
16620 WKS_FILE[doc] = "Specifies the name of the wic kickstart file."
16621 </info>
16622 <glossdef>
16623 <para role="glossdeffirst">
16624 Specifies the location of the Wic
16625 kickstart file that is used by the OpenEmbedded build
16626 system to create a partitioned image
16627 (<replaceable>image</replaceable><filename>.wic</filename>).
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016628 For information on how to create a partitioned image, see
16629 the
16630 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
16631 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016632 For details on the kickstart file format, see the
Andrew Geissler82c905d2020-04-13 13:39:40 -050016633 "<link linkend='ref-kickstart'>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</link>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016634 Chapter.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016635 </para>
16636 </glossdef>
16637 </glossentry>
16638
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016639 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
16640 <info>
16641 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."
16642 </info>
16643 <glossdef>
16644 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016645 The pathname of the work directory in which the OpenEmbedded
16646 build system builds a recipe.
16647 This directory is located within the
16648 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
16649 directory structure and is specific to the recipe being
16650 built and the system for which it is being built.
16651 </para>
16652
16653 <para>
16654 The <filename>WORKDIR</filename> directory is defined as
16655 follows:
16656 <literallayout class='monospaced'>
16657 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
16658 </literallayout>
16659 The actual directory depends on several things:
16660 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016661 <listitem><filename>TMPDIR</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016662 The top-level build output directory</listitem>
16663 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
16664 The target system identifier</listitem>
16665 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
16666 The recipe name</listitem>
16667 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
16668 The epoch - (if
16669 <link linkend='var-PE'><filename>PE</filename></link>
16670 is not specified, which is usually the case for most
16671 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
16672 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
16673 The recipe version</listitem>
16674 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
16675 The recipe revision</listitem>
16676 </itemizedlist>
16677 </para>
16678
16679 <para>
16680 As an example, assume a Source Directory top-level folder
16681 name <filename>poky</filename>, a default Build Directory at
16682 <filename>poky/build</filename>, and a
16683 <filename>qemux86-poky-linux</filename> machine target
16684 system.
16685 Furthermore, suppose your recipe is named
16686 <filename>foo_1.3.0-r0.bb</filename>.
16687 In this case, the work directory the build system uses to
16688 build the package would be as follows:
16689 <literallayout class='monospaced'>
16690 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
16691 </literallayout>
16692 </para>
16693 </glossdef>
16694 </glossentry>
16695
16696 </glossdiv>
16697
16698 <glossdiv id='var-glossary-x'><title>X</title>
16699
16700 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
16701 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050016702 XSERVER[doc] = "Specifies the packages that should be installed to provide an X server and drivers for the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016703 </info>
16704 <glossdef>
16705 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016706 Specifies the packages that should be installed to
16707 provide an X server and drivers for the current machine,
16708 assuming your image directly includes
16709 <filename>packagegroup-core-x11-xserver</filename> or,
16710 perhaps indirectly, includes "x11-base" in
16711 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
16712 </para>
16713
16714 <para>
16715 The default value of <filename>XSERVER</filename>, if not
16716 specified in the machine configuration, is
16717 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
16718 </para>
16719 </glossdef>
16720 </glossentry>
16721
16722 </glossdiv>
16723
16724<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
16725<!-- </glossdiv>-->
16726
16727<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
16728<!-- </glossdiv>-->
16729
16730</glossary>
16731</chapter>
16732<!--
16733vim: expandtab tw=80 ts=4
16734-->