blob: 9fe744aff5309fa793d9011d9e48440ff3e90859 [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; ] >
Andrew Geissler475cb722020-07-10 16:00:51 -05004<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005
6<!-- Dummy chapter -->
7<chapter id='ref-variables-glos'>
8
9<title>Variables Glossary</title>
10
11<para>
12 This chapter lists common variables used in the OpenEmbedded build system and gives an overview
13 of their function and contents.
14</para>
15
16<glossary id='ref-variables-glossary'>
17
18
19 <para>
20 <link linkend='var-ABIEXTENSION'>A</link>
21 <link linkend='var-B'>B</link>
22 <link linkend='var-CACHE'>C</link>
23 <link linkend='var-D'>D</link>
24 <link linkend='var-EFI_PROVIDER'>E</link>
25 <link linkend='var-FEATURE_PACKAGES'>F</link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040026 <link linkend='var-GCCPIE'>G</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050027 <link linkend='var-HOMEPAGE'>H</link>
28 <link linkend='var-ICECC_DISABLED'>I</link>
29<!-- <link linkend='var-glossary-j'>J</link> -->
30 <link linkend='var-KARCH'>K</link>
31 <link linkend='var-LABELS'>L</link>
32 <link linkend='var-MACHINE'>M</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050033 <link linkend='var-NATIVELSBSTRING'>N</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050034 <link linkend='var-OBJCOPY'>O</link>
35 <link linkend='var-P'>P</link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050036<!-- <link linkend='var-glossary-q'>Q</link> -->
Patrick Williamsc124f4f2015-09-15 14:41:29 -050037 <link linkend='var-RANLIB'>R</link>
38 <link linkend='var-S'>S</link>
39 <link linkend='var-T'>T</link>
40 <link linkend='var-UBOOT_CONFIG'>U</link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050041 <link linkend='var-VOLATILE_LOG_DIR'>V</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050042 <link linkend='var-WARN_QA'>W</link>
43 <link linkend='var-XSERVER'>X</link>
44<!-- <link linkend='var-glossary-y'>Y</link> -->
45<!-- <link linkend='var-glossary-z'>Z</link>-->
46 </para>
47
48 <glossdiv id='var-glossary-a'><title>A</title>
49
50 <glossentry id='var-ABIEXTENSION'><glossterm>ABIEXTENSION</glossterm>
51 <info>
52 ABIEXTENSION[doc] = "Extension to the Application Binary Interface (ABI) field of the GNU canonical architecture name (e.g. "eabi")."
53 </info>
54 <glossdef>
55 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050056 Extension to the Application Binary Interface (ABI)
57 field of the GNU canonical architecture name
58 (e.g. "eabi").
59 </para>
60
61 <para>
62 ABI extensions are set in the machine include files.
63 For example, the
64 <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>
65 file sets the following extension:
66 <literallayout class='monospaced'>
67 ABIEXTENSION = "eabi"
68 </literallayout>
69 </para>
70 </glossdef>
71 </glossentry>
72
73 <glossentry id='var-ALLOW_EMPTY'><glossterm>ALLOW_EMPTY</glossterm>
74 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040075 ALLOW_EMPTY[doc] = "Specifies whether to produce an output package even if it is empty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050076 </info>
77 <glossdef>
78 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040079 Specifies whether to produce an output package even if it is
80 empty.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050081 By default, BitBake does not produce empty packages.
82 This default behavior can cause issues when there is an
83 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> or
84 some other hard runtime requirement on the existence of the package.
85 </para>
86
87 <para>
88 Like all package-controlling variables, you must always use them in
89 conjunction with a package name override, as in:
90 <literallayout class='monospaced'>
91 ALLOW_EMPTY_${PN} = "1"
92 ALLOW_EMPTY_${PN}-dev = "1"
93 ALLOW_EMPTY_${PN}-staticdev = "1"
94 </literallayout>
95 </para>
96 </glossdef>
97 </glossentry>
98
99 <glossentry id='var-ALTERNATIVE'><glossterm>ALTERNATIVE</glossterm>
100 <info>
101 ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
102 </info>
103 <glossdef>
104 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500105 Lists commands in a package that need an alternative
106 binary naming scheme.
107 Sometimes the same command is provided in multiple packages.
108 When this occurs, the OpenEmbedded build system needs to
109 use the alternatives system to create a different binary
110 naming scheme so the commands can co-exist.
111 </para>
112
113 <para>
114 To use the variable, list out the package's commands
115 that also exist as part of another package.
116 For example, if the <filename>busybox</filename> package
117 has four commands that also exist as part of another
118 package, you identify them as follows:
119 <literallayout class='monospaced'>
120 ALTERNATIVE_busybox = "sh sed test bracket"
121 </literallayout>
122 For more information on the alternatives system, see the
123 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
124 section.
125 </para>
126 </glossdef>
127 </glossentry>
128
129 <glossentry id='var-ALTERNATIVE_LINK_NAME'><glossterm>ALTERNATIVE_LINK_NAME</glossterm>
130 <info>
131 ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
132 </info>
133 <glossdef>
134 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500135 Used by the alternatives system to map duplicated commands
136 to actual locations.
137 For example, if the <filename>bracket</filename> command
138 provided by the <filename>busybox</filename> package is
139 duplicated through another package, you must use the
140 <filename>ALTERNATIVE_LINK_NAME</filename> variable to
141 specify the actual location:
142 <literallayout class='monospaced'>
143 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
144 </literallayout>
145 </para>
146
147 <para>
148 In this example, the binary for the
149 <filename>bracket</filename> command (i.e.
150 <filename>[</filename>) from the
151 <filename>busybox</filename> package resides in
152 <filename>/usr/bin/</filename>.
153 <note>
154 If <filename>ALTERNATIVE_LINK_NAME</filename> is not
155 defined, it defaults to
156 <filename>${bindir}/<replaceable>name</replaceable></filename>.
157 </note>
158 </para>
159
160 <para>
161 For more information on the alternatives system, see the
162 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
163 section.
164 </para>
165 </glossdef>
166 </glossentry>
167
168 <glossentry id='var-ALTERNATIVE_PRIORITY'><glossterm>ALTERNATIVE_PRIORITY</glossterm>
169 <info>
170 ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
171 </info>
172 <glossdef>
173 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500174 Used by the alternatives system to create default
175 priorities for duplicated commands.
176 You can use the variable to create a single default
177 regardless of the command name or package, a default for
178 specific duplicated commands regardless of the package, or
179 a default for specific commands tied to particular packages.
180 Here are the available syntax forms:
181 <literallayout class='monospaced'>
182 ALTERNATIVE_PRIORITY = "<replaceable>priority</replaceable>"
183 ALTERNATIVE_PRIORITY[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
184 ALTERNATIVE_PRIORITY_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
185 </literallayout>
186 </para>
187
188 <para>
189 For more information on the alternatives system, see the
190 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
191 section.
192 </para>
193 </glossdef>
194 </glossentry>
195
196 <glossentry id='var-ALTERNATIVE_TARGET'><glossterm>ALTERNATIVE_TARGET</glossterm>
197 <info>
198 ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
199 </info>
200 <glossdef>
201 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500202 Used by the alternatives system to create default link
203 locations for duplicated commands.
204 You can use the variable to create a single default
205 location for all duplicated commands regardless of the
206 command name or package, a default for
207 specific duplicated commands regardless of the package, or
208 a default for specific commands tied to particular packages.
209 Here are the available syntax forms:
210 <literallayout class='monospaced'>
211 ALTERNATIVE_TARGET = "<replaceable>target</replaceable>"
212 ALTERNATIVE_TARGET[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
213 ALTERNATIVE_TARGET_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
214 </literallayout>
215 <note>
216 <para>
217 If <filename>ALTERNATIVE_TARGET</filename> is not
218 defined, it inherits the value from the
219 <link linkend='var-ALTERNATIVE_LINK_NAME'><filename>ALTERNATIVE_LINK_NAME</filename></link>
220 variable.
221 </para>
222
223 <para>
224 If <filename>ALTERNATIVE_LINK_NAME</filename> and
225 <filename>ALTERNATIVE_TARGET</filename> are the
226 same, the target for
227 <filename>ALTERNATIVE_TARGET</filename>
228 has "<filename>.{BPN}</filename>" appended to it.
229 </para>
230
231 <para>
232 Finally, if the file referenced has not been
233 renamed, the alternatives system will rename it to
234 avoid the need to rename alternative files in the
235 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
236 task while
237 retaining support for the command if necessary.
238 </para>
239 </note>
240 </para>
241
242 <para>
243 For more information on the alternatives system, see the
244 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
245 section.
246 </para>
247 </glossdef>
248 </glossentry>
249
250 <glossentry id='var-APPEND'><glossterm>APPEND</glossterm>
251 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400252 APPEND[doc] = "An override list of append strings for target specified using LABELS."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500253 </info>
254 <glossdef>
255 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -0400256 An override list of append strings for each target
257 specified with
258 <link linkend='var-LABELS'><filename>LABELS</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500259 </para>
260
261 <para>
262 See the
263 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
264 class for more information on how this variable is used.
265 </para>
266 </glossdef>
267 </glossentry>
268
269 <glossentry id='var-AR'><glossterm>AR</glossterm>
270 <info>
271 AR[doc] = "Minimal command and arguments to run 'ar'."
272 </info>
273 <glossdef>
274 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500275 The minimal command and arguments used to run
276 <filename>ar</filename>.
277 </para>
278 </glossdef>
279 </glossentry>
280
281 <glossentry id='var-ARCHIVER_MODE'><glossterm>ARCHIVER_MODE</glossterm>
282 <info>
283 ARCHIVER_MODE[doc] = "Controls archive creation used when releasing source files."
284 </info>
285 <glossdef>
286 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500287 When used with the
288 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
289 class, determines the type of information used to create
290 a released archive.
291 You can use this variable to create archives of patched
292 source, original source, configured source, and so forth
293 by employing the following variable flags (varflags):
294 <literallayout class='monospaced'>
295 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source
296 # files.
297
298 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is
299 # the default.
300
301 ARCHIVER_MODE[src] = "configured" # Uses configured source files.
302
303 ARCHIVER_MODE[diff] = "1" # Uses patches between do_unpack and
304 # do_patch.
305
306 ARCHIVER_MODE[diff-exclude] ?= "<replaceable>file</replaceable> <replaceable>file</replaceable> ..." # Lists files and directories to
307 # exclude from diff.
308
309 ARCHIVER_MODE[dumpdata] = "1" # Uses environment data.
310
311 ARCHIVER_MODE[recipe] = "1" # Uses recipe and include files.
312
313 ARCHIVER_MODE[srpm] = "1" # Uses RPM package files.
314 </literallayout>
315 For information on how the variable works, see the
316 <filename>meta/classes/archiver.bbclass</filename> file
317 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500318 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500319 </para>
320 </glossdef>
321 </glossentry>
322
323 <glossentry id='var-AS'><glossterm>AS</glossterm>
324 <info>
325 AS[doc] = "Minimal command and arguments to run the assembler."
326 </info>
327 <glossdef>
328 <para role="glossdeffirst">
Brad Bishop79641f22019-09-10 07:20:22 -0400329 Minimal command and arguments needed to run the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500330 assembler.
331 </para>
332 </glossdef>
333 </glossentry>
334
335 <glossentry id='var-ASSUME_PROVIDED'><glossterm>ASSUME_PROVIDED</glossterm>
336 <info>
337 ASSUME_PROVIDED[doc] = "Lists recipe names (PN values) BitBake does not attempt to build."
338 </info>
339 <glossdef>
340 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500341 Lists recipe names
342 (<link linkend='var-PN'><filename>PN</filename></link>
343 values) BitBake does not attempt to build.
344 Instead, BitBake assumes these recipes have already been
345 built.
346 </para>
347
348 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400349 In OpenEmbedded-Core, <filename>ASSUME_PROVIDED</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500350 mostly specifies native tools that should not be built.
351 An example is <filename>git-native</filename>, which when
352 specified, allows for the Git binary from the host to be
353 used rather than building <filename>git-native</filename>.
354 </para>
355 </glossdef>
356 </glossentry>
357
358 <glossentry id='var-ASSUME_SHLIBS'><glossterm>ASSUME_SHLIBS</glossterm>
359 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -0500360 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 -0500361 </info>
362 <glossdef>
363 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500364 Provides additional <filename>shlibs</filename> provider
365 mapping information, which adds to or overwrites the
366 information provided automatically by the system.
367 Separate multiple entries using spaces.
368 </para>
369
370 <para>
371 As an example, use the following form to add an
372 <filename>shlib</filename> provider of
373 <replaceable>shlibname</replaceable> in
374 <replaceable>packagename</replaceable> with the optional
375 <replaceable>version</replaceable>:
376 <literallayout class='monospaced'>
377 <replaceable>shlibname:packagename</replaceable>[_<replaceable>version</replaceable>]
378 </literallayout>
379 </para>
380
381 <para>
382 Here is an example that adds a shared library named
383 <filename>libEGL.so.1</filename> as being provided by
384 the <filename>libegl-implementation</filename> package:
385 <literallayout class='monospaced'>
386 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
387 </literallayout>
388 </para>
389 </glossdef>
390 </glossentry>
391
392 <glossentry id='var-AUTHOR'><glossterm>AUTHOR</glossterm>
393 <info>
394 AUTHOR[doc] = "Email address used to contact the original author or authors in order to send patches and forward bugs."
395 </info>
396 <glossdef>
397 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500398 The email address used to contact the original author
399 or authors in order to send patches and forward bugs.
400 </para>
401 </glossdef>
402 </glossentry>
403
404 <glossentry id='var-AUTO_LIBNAME_PKGS'><glossterm>AUTO_LIBNAME_PKGS</glossterm>
405 <info>
406 AUTO_LIBNAME_PKGS[doc] = "Specifies which packages should be checked for libraries and renamed according to Debian library package naming."
407 </info>
408 <glossdef>
409 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500410 When the
411 <link linkend='ref-classes-debian'><filename>debian</filename></link>
412 class is inherited, which is the default behavior,
413 <filename>AUTO_LIBNAME_PKGS</filename> specifies which
414 packages should be checked for libraries and renamed
415 according to Debian library package naming.
416 </para>
417
418 <para>
419 The default value is "${PACKAGES}", which causes the
420 debian class to act on all packages that are
421 explicitly generated by the recipe.
422 </para>
423 </glossdef>
424 </glossentry>
425
426 <glossentry id='var-AUTO_SYSLINUXMENU'><glossterm>AUTO_SYSLINUXMENU</glossterm>
427 <info>
428 AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
429 </info>
430 <glossdef>
431 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500432 Enables creating an automatic menu for the syslinux
433 bootloader.
434 You must set this variable in your recipe.
435 The
436 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
437 class checks this variable.
438 </para>
439 </glossdef>
440 </glossentry>
441
442 <glossentry id='var-AUTOREV'><glossterm>AUTOREV</glossterm>
443 <info>
444 AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
445 </info>
446 <glossdef>
447 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500448 When
449 <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
450 is set to the value of this variable, it specifies to use
451 the latest source revision in the repository.
452 Here is an example:
453 <literallayout class='monospaced'>
454 SRCREV = "${AUTOREV}"
455 </literallayout>
456 </para>
457
458 <para>
459 If you use the previous statement to retrieve the latest
460 version of software, you need to be sure
461 <link linkend='var-PV'><filename>PV</filename></link>
462 contains
463 <filename>${</filename><link linkend='var-SRCPV'><filename>SRCPV</filename></link><filename>}</filename>.
464 For example, suppose you have a kernel recipe that
465 inherits the
466 <link linkend='ref-classes-kernel'>kernel</link> class
467 and you use the previous statement.
468 In this example, <filename>${SRCPV}</filename> does not
469 automatically get into <filename>PV</filename>.
470 Consequently, you need to change <filename>PV</filename>
471 in your recipe so that it does contain
472 <filename>${SRCPV}</filename>.
473 </para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500474
475 <para>
476 For more information see the
477 "<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 -0500478 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500479 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500480 </glossdef>
481 </glossentry>
482
Andrew Geissler82c905d2020-04-13 13:39:40 -0500483 <glossentry id='var-AVAILABLE_LICENSES'><glossterm>AVAILABLE_LICENSES</glossterm>
484 <info>
485 AVAILABLE_LICENSES[doc] = "List of licenses found in the directories specified by COMMON_LICENSE_DIR and LICENSE_PATH."
486 </info>
487 <glossdef>
488 <para role="glossdeffirst">
Andrew Geissler82c905d2020-04-13 13:39:40 -0500489
490 List of licenses found in the directories specified
491 by <link linkend='var-COMMON_LICENSE_DIR'><filename>COMMON_LICENSE_DIR</filename></link>
492 and <link linkend='var-LICENSE_PATH'><filename>LICENSE_PATH</filename></link>.
493
494 <note>
495 It is assumed that all changes
496 to <filename>COMMON_LICENSE_DIR</filename>
497 and <filename>LICENSE_PATH</filename> have been done
498 before <filename>AVAILABLE_LICENSES</filename> is
499 defined
500 (in <link linkend='ref-classes-license'>license.bbclass</link>).
501 </note>
502 </para>
503 </glossdef>
504 </glossentry>
505
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500506 <glossentry id='var-AVAILTUNES'><glossterm>AVAILTUNES</glossterm>
507 <info>
508 AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system."
509 </info>
510 <glossdef>
511 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500512 The list of defined CPU and Application Binary Interface
513 (ABI) tunings (i.e. "tunes") available for use by the
514 OpenEmbedded build system.
515 </para>
516
517 <para>
518 The list simply presents the tunes that are available.
519 Not all tunes may be compatible with a particular
520 machine configuration, or with each other in a
521 <ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Multilib</ulink>
522 configuration.
523 </para>
524
525 <para>
526 To add a tune to the list, be sure to append it with
527 spaces using the "+=" BitBake operator.
528 Do not simply replace the list by using the "=" operator.
529 See the
530 "<ulink url='&YOCTO_DOCS_BB_URL;#basic-syntax'>Basic Syntax</ulink>"
531 section in the BitBake User Manual for more information.
532 </para>
533 </glossdef>
534 </glossentry>
535
536 </glossdiv>
537
538 <glossdiv id='var-glossary-b'><title>B</title>
539
540 <glossentry id='var-B'><glossterm>B</glossterm>
541 <info>
542 B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
543 </info>
544 <glossdef>
545 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500546 The directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500547 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500548 in which the OpenEmbedded build system places generated
549 objects during a recipe's build process.
550 By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
551 directory, which is defined as:
552 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600553 S = "${WORKDIR}/${BP}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500554 </literallayout>
555 </para>
556
557 <para>
558 You can separate the (<filename>S</filename>) directory
559 and the directory pointed to by the <filename>B</filename>
560 variable.
561 Most Autotools-based recipes support separating these
562 directories.
563 The build system defaults to using separate directories for
564 <filename>gcc</filename> and some kernel recipes.
565 </para>
566 </glossdef>
567 </glossentry>
568
569 <glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
570 <info>
571 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."
572 </info>
573 <glossdef>
574 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500575 Lists "recommended-only" packages to not install.
576 Recommended-only packages are packages installed only
577 through the
578 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
579 variable.
580 You can prevent any of these "recommended" packages from
581 being installed by listing them with the
582 <filename>BAD_RECOMMENDATIONS</filename> variable:
583 <literallayout class='monospaced'>
584 BAD_RECOMMENDATIONS = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
585 </literallayout>
586 </para>
587
588 <para>
589 You can set this variable globally in your
590 <filename>local.conf</filename> file or you can attach it to
591 a specific image recipe by using the recipe name override:
592 <literallayout class='monospaced'>
593 BAD_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
594 </literallayout>
595 </para>
596
597 <para>
598 It is important to realize that if you choose to not install
599 packages using this variable and some other packages are
600 dependent on them (i.e. listed in a recipe's
601 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
602 variable), the OpenEmbedded build system ignores your
603 request and will install the packages to avoid dependency
604 errors.
605 </para>
606
607 <para>
608 Support for this variable exists only when using the
609 IPK and RPM packaging backend.
610 Support does not exist for DEB.
611 </para>
612
613 <para>
614 See the
615 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
616 and the
617 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
618 variables for related information.
619 </para>
620 </glossdef>
621 </glossentry>
622
623 <glossentry id='var-BASE_LIB'><glossterm>BASE_LIB</glossterm>
624 <info>
625 BASE_LIB[doc] = "The library directory name for the CPU or Application Binary Interface (ABI) tune."
626 </info>
627 <glossdef>
628 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500629 The library directory name for the CPU or Application
630 Binary Interface (ABI) tune.
631 The <filename>BASE_LIB</filename> applies only in the
632 Multilib context.
633 See the
634 "<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 -0500635 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500636 information on Multilib.
637 </para>
638
639 <para>
640 The <filename>BASE_LIB</filename> variable is defined in
641 the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500642 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500643 If Multilib is not being used, the value defaults to "lib".
644 </para>
645 </glossdef>
646 </glossentry>
647
648 <glossentry id='var-BASE_WORKDIR'><glossterm>BASE_WORKDIR</glossterm>
649 <info>
650 BASE_WORKDIR[doc] = "Points to the base of the work directory for all recipes."
651 </info>
652 <glossdef>
653 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500654 Points to the base of the work directory for all recipes.
655 The default value is "${TMPDIR}/work".
656 </para>
657 </glossdef>
658 </glossentry>
659
660 <glossentry id='var-BB_ALLOWED_NETWORKS'><glossterm>BB_ALLOWED_NETWORKS</glossterm>
661 <info>
662 BB_ALLOWED_NETWORKS[doc] = "A list of hosts that the fetcher is allowed to use to obtain the required source code."
663 </info>
664 <glossdef>
665 <para>
666 Specifies a space-delimited list of hosts that the fetcher
667 is allowed to use to obtain the required source code.
668 Following are considerations surrounding this variable:
669 <itemizedlist>
670 <listitem><para>
671 This host list is only used if
672 <filename>BB_NO_NETWORK</filename> is either not
673 set or set to "0".
674 </para></listitem>
675 <listitem><para>
676 Limited support for wildcard matching against the
677 beginning of host names exists.
678 For example, the following setting matches
679 <filename>git.gnu.org</filename>,
680 <filename>ftp.gnu.org</filename>, and
681 <filename>foo.git.gnu.org</filename>.
682 <literallayout class='monospaced'>
683 BB_ALLOWED_NETWORKS = "*.gnu.org"
684 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800685 <note><title>Important</title>
686 <para>The use of the "<filename>*</filename>"
687 character only works at the beginning of
688 a host name and it must be isolated from
689 the remainder of the host name.
690 You cannot use the wildcard character in any
691 other location of the name or combined with
692 the front part of the name.</para>
693
694 <para>For example,
695 <filename>*.foo.bar</filename> is supported,
696 while <filename>*aa.foo.bar</filename> is not.
697 </para>
698 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500699 </para></listitem>
700 <listitem><para>
701 Mirrors not in the host list are skipped and
702 logged in debug.
703 </para></listitem>
704 <listitem><para>
705 Attempts to access networks not in the host list
706 cause a failure.
707 </para></listitem>
708 </itemizedlist>
709 Using <filename>BB_ALLOWED_NETWORKS</filename> in
710 conjunction with
711 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
712 is very useful.
713 Adding the host you want to use to
714 <filename>PREMIRRORS</filename> results in the source code
715 being fetched from an allowed location and avoids raising
716 an error when a host that is not allowed is in a
717 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
718 statement.
719 This is because the fetcher does not attempt to use the
720 host listed in <filename>SRC_URI</filename> after a
721 successful fetch from the
722 <filename>PREMIRRORS</filename> occurs.
723 </para>
724 </glossdef>
725 </glossentry>
726
727 <glossentry id='var-BB_DANGLINGAPPENDS_WARNONLY'><glossterm>BB_DANGLINGAPPENDS_WARNONLY</glossterm>
728 <info>
729 BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
730 </info>
731 <glossdef>
732 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500733 Defines how BitBake handles situations where an append
734 file (<filename>.bbappend</filename>) has no
735 corresponding recipe file (<filename>.bb</filename>).
736 This condition often occurs when layers get out of sync
737 (e.g. <filename>oe-core</filename> bumps a
738 recipe version and the old recipe no longer exists and the
739 other layer has not been updated to the new version
740 of the recipe yet).
741 </para>
742
743 <para>
744 The default fatal behavior is safest because it is
745 the sane reaction given something is out of sync.
746 It is important to realize when your changes are no longer
747 being applied.
748 </para>
749
750 <para>
751 You can change the default behavior by setting this
752 variable to "1", "yes", or "true"
753 in your <filename>local.conf</filename> file, which is
754 located in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500755 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500756 Here is an example:
757 <literallayout class='monospaced'>
758 BB_DANGLINGAPPENDS_WARNONLY = "1"
759 </literallayout>
760 </para>
761 </glossdef>
762 </glossentry>
763
764 <glossentry id='var-BB_DISKMON_DIRS'><glossterm>BB_DISKMON_DIRS</glossterm>
765 <info>
766 BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
767 </info>
768 <glossdef>
769 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500770 Monitors disk space and available inodes during the build
771 and allows you to control the build based on these
772 parameters.
773 </para>
774
775 <para>
776 Disk space monitoring is disabled by default.
777 To enable monitoring, add the <filename>BB_DISKMON_DIRS</filename>
778 variable to your <filename>conf/local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500779 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500780 Use the following form:
781 <literallayout class='monospaced'>
782 BB_DISKMON_DIRS = "<replaceable>action</replaceable>,<replaceable>dir</replaceable>,<replaceable>threshold</replaceable> [...]"
783
784 where:
785
786 <replaceable>action</replaceable> is:
787 ABORT: Immediately abort the build when
788 a threshold is broken.
789 STOPTASKS: Stop the build after the currently
790 executing tasks have finished when
791 a threshold is broken.
792 WARN: Issue a warning but continue the
793 build when a threshold is broken.
794 Subsequent warnings are issued as
Brad Bishop316dfdd2018-06-25 12:45:53 -0400795 defined by the BB_DISKMON_WARNINTERVAL
796 variable, which must be defined in
797 the conf/local.conf file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500798
799 <replaceable>dir</replaceable> is:
800 Any directory you choose. You can specify one or
801 more directories to monitor by separating the
802 groupings with a space. If two directories are
803 on the same device, only the first directory
804 is monitored.
805
806 <replaceable>threshold</replaceable> is:
807 Either the minimum available disk space,
808 the minimum number of free inodes, or
809 both. You must specify at least one. To
810 omit one or the other, simply omit the value.
811 Specify the threshold using G, M, K for Gbytes,
812 Mbytes, and Kbytes, respectively. If you do
813 not specify G, M, or K, Kbytes is assumed by
814 default. Do not use GB, MB, or KB.
815 </literallayout>
816 </para>
817
818 <para>
819 Here are some examples:
820 <literallayout class='monospaced'>
821 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
822 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
823 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
824 </literallayout>
825 The first example works only if you also provide
826 the <link linkend='var-BB_DISKMON_WARNINTERVAL'><filename>BB_DISKMON_WARNINTERVAL</filename></link> variable
827 in the <filename>conf/local.conf</filename>.
828 This example causes the build system to immediately
829 abort when either the disk space in <filename>${TMPDIR}</filename> drops
830 below 1 Gbyte or the available free inodes drops below
831 100 Kbytes.
832 Because two directories are provided with the variable, the
833 build system also issue a
834 warning when the disk space in the
835 <filename>${SSTATE_DIR}</filename> directory drops
836 below 1 Gbyte or the number of free inodes drops
837 below 100 Kbytes.
838 Subsequent warnings are issued during intervals as
839 defined by the <filename>BB_DISKMON_WARNINTERVAL</filename>
840 variable.
841 </para>
842
843 <para>
844 The second example stops the build after all currently
845 executing tasks complete when the minimum disk space
846 in the <filename>${<link linkend='var-TMPDIR'>TMPDIR</link>}</filename>
847 directory drops below 1 Gbyte.
848 No disk monitoring occurs for the free inodes in this case.
849 </para>
850
851 <para>
852 The final example immediately aborts the build when the
853 number of free inodes in the <filename>${TMPDIR}</filename> directory
854 drops below 100 Kbytes.
855 No disk space monitoring for the directory itself occurs
856 in this case.
857 </para>
858 </glossdef>
859 </glossentry>
860
861 <glossentry id='var-BB_DISKMON_WARNINTERVAL'><glossterm>BB_DISKMON_WARNINTERVAL</glossterm>
862 <info>
863 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."
864 </info>
865 <glossdef>
866 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500867 Defines the disk space and free inode warning intervals.
868 To set these intervals, define the variable in your
869 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500870 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500871 </para>
872
873 <para>
874 If you are going to use the
875 <filename>BB_DISKMON_WARNINTERVAL</filename> variable, you must
876 also use the
877 <link linkend='var-BB_DISKMON_DIRS'><filename>BB_DISKMON_DIRS</filename></link> variable
878 and define its action as "WARN".
879 During the build, subsequent warnings are issued each time
880 disk space or number of free inodes further reduces by
881 the respective interval.
882 </para>
883
884 <para>
885 If you do not provide a <filename>BB_DISKMON_WARNINTERVAL</filename>
886 variable and you do use <filename>BB_DISKMON_DIRS</filename> with
887 the "WARN" action, the disk monitoring interval defaults to
888 the following:
889 <literallayout class='monospaced'>
890 BB_DISKMON_WARNINTERVAL = "50M,5K"
891 </literallayout>
892 </para>
893
894 <para>
895 When specifying the variable in your configuration file,
896 use the following form:
897 <literallayout class='monospaced'>
898 BB_DISKMON_WARNINTERVAL = "<replaceable>disk_space_interval</replaceable>,<replaceable>disk_inode_interval</replaceable>"
899
900 where:
901
902 <replaceable>disk_space_interval</replaceable> is:
903 An interval of memory expressed in either
904 G, M, or K for Gbytes, Mbytes, or Kbytes,
905 respectively. You cannot use GB, MB, or KB.
906
907 <replaceable>disk_inode_interval</replaceable> is:
908 An interval of free inodes expressed in either
909 G, M, or K for Gbytes, Mbytes, or Kbytes,
910 respectively. You cannot use GB, MB, or KB.
911 </literallayout>
912 </para>
913
914 <para>
915 Here is an example:
916 <literallayout class='monospaced'>
917 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
918 BB_DISKMON_WARNINTERVAL = "50M,5K"
919 </literallayout>
920 These variables cause the OpenEmbedded build system to
921 issue subsequent warnings each time the available
922 disk space further reduces by 50 Mbytes or the number
923 of free inodes further reduces by 5 Kbytes in the
924 <filename>${SSTATE_DIR}</filename> directory.
925 Subsequent warnings based on the interval occur each time
926 a respective interval is reached beyond the initial warning
927 (i.e. 1 Gbytes and 100 Kbytes).
928 </para>
929 </glossdef>
930 </glossentry>
931
932 <glossentry id='var-BB_GENERATE_MIRROR_TARBALLS'><glossterm>BB_GENERATE_MIRROR_TARBALLS</glossterm>
933 <info>
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400934 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 -0500935 </info>
936 <glossdef>
937 <para role="glossdeffirst">
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400938 Causes tarballs of the source control repositories
939 (e.g. Git repositories), including metadata, to be placed
940 in the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500941 <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
942 directory.
943 </para>
944
945 <para>
946 For performance reasons, creating and placing tarballs of
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400947 these repositories is not the default action by the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500948 OpenEmbedded build system.
949 <literallayout class='monospaced'>
950 BB_GENERATE_MIRROR_TARBALLS = "1"
951 </literallayout>
952 Set this variable in your <filename>local.conf</filename>
953 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500954 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500955 </para>
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400956
957 <para>
958 Once you have the tarballs containing your source files,
959 you can clean up your <filename>DL_DIR</filename>
960 directory by deleting any Git or other source control
961 work directories.
962 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500963 </glossdef>
964 </glossentry>
965
966 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
967 <info>
968 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."
969 </info>
970 <glossdef>
971 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500972 The maximum number of tasks BitBake should run in parallel
973 at any one time.
974 The OpenEmbedded build system automatically configures
975 this variable to be equal to the number of cores on the
976 build system.
977 For example, a system with a dual core processor that
978 also uses hyper-threading causes the
979 <filename>BB_NUMBER_THREADS</filename> variable to default
980 to "4".
981 </para>
982
983 <para>
984 For single socket systems (i.e. one CPU), you should not
985 have to override this variable to gain optimal parallelism
986 during builds.
987 However, if you have very large systems that employ
988 multiple physical CPUs, you might want to make sure the
989 <filename>BB_NUMBER_THREADS</filename> variable is not
990 set higher than "20".
991 </para>
992
993 <para>
994 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -0400995 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
996 section in the Yocto Project Development Tasks Manual.
997 </para>
998 </glossdef>
999 </glossentry>
1000
1001 <glossentry id='var-BB_SERVER_TIMEOUT'><glossterm>BB_SERVER_TIMEOUT</glossterm>
1002 <info>
1003 BB_SERVER_TIMEOUT [doc] = "Specifies the time (in seconds) after which to unload the BitBake server due to inactivity."
1004 </info>
1005 <glossdef>
1006 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04001007 Specifies the time (in seconds) after which to unload the
1008 BitBake server due to inactivity.
1009 Set <filename>BB_SERVER_TIMEOUT</filename> to determine how
1010 long the BitBake server stays resident between invocations.
1011 </para>
1012
1013 <para>
1014 For example, the following statement in your
1015 <filename>local.conf</filename> file instructs the server
1016 to be unloaded after 20 seconds of inactivity:
1017 <literallayout class='monospaced'>
1018 BB_SERVER_TIMEOUT = "20"
1019 </literallayout>
1020 If you want the server to never be unloaded, set
1021 <filename>BB_SERVER_TIMEOUT</filename> to "-1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001022 </para>
1023 </glossdef>
1024 </glossentry>
1025
1026 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
1027 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001028 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 -05001029 </info>
1030 <glossdef>
1031 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001032 Allows you to extend a recipe so that it builds variants of the software.
1033 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
1034 which is a copy of Quilt built to run on the build system;
1035 "crosses" such as <filename>gcc-cross</filename>,
1036 which is a compiler built to run on the build machine but produces binaries
1037 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
1038 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
1039 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
1040 </para>
1041
1042 <para>
1043 To build a different variant of the recipe with a minimal amount of code, it usually
1044 is as simple as adding the following to your recipe:
1045 <literallayout class='monospaced'>
1046 BBCLASSEXTEND =+ "native nativesdk"
1047 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
1048 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001049 <note>
1050 <para>
1051 Internally, the <filename>BBCLASSEXTEND</filename>
1052 mechanism generates recipe variants by rewriting
1053 variable values and applying overrides such as
1054 <filename>_class-native</filename>.
1055 For example, to generate a native version of a recipe,
1056 a
1057 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
1058 on "foo" is rewritten to a <filename>DEPENDS</filename>
1059 on "foo-native".
1060 </para>
1061
1062 <para>
1063 Even when using <filename>BBCLASSEXTEND</filename>, the
1064 recipe is only parsed once.
1065 Parsing once adds some limitations.
1066 For example, it is not possible to
1067 include a different file depending on the variant,
1068 since <filename>include</filename> statements are
1069 processed when the recipe is parsed.
1070 </para>
1071 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001072 </para>
1073 </glossdef>
1074 </glossentry>
1075
1076 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1077 <info>
1078 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1079 </info>
1080 <glossdef>
1081 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001082 Lists the names of configured layers.
1083 These names are used to find the other <filename>BBFILE_*</filename>
1084 variables.
1085 Typically, each layer will append its name to this variable in its
1086 <filename>conf/layer.conf</filename> file.
1087 </para>
1088 </glossdef>
1089 </glossentry>
1090
1091 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1092 <info>
1093 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."
1094 </info>
1095 <glossdef>
1096 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001097 Variable that expands to match files from
1098 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1099 in a particular layer.
1100 This variable is used in the <filename>conf/layer.conf</filename> file and must
1101 be suffixed with the name of the specific layer (e.g.
1102 <filename>BBFILE_PATTERN_emenlow</filename>).
1103 </para>
1104 </glossdef>
1105 </glossentry>
1106
1107 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1108 <info>
1109 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."
1110 </info>
1111 <glossdef>
1112 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001113 Assigns the priority for recipe files in each layer.
1114 </para>
1115
1116 <para>
1117 This variable is useful in situations where the same recipe appears in
1118 more than one layer.
1119 Setting this variable allows you to prioritize a
1120 layer against other layers that contain the same recipe - effectively
1121 letting you control the precedence for the multiple layers.
1122 The precedence established through this variable stands regardless of a
1123 recipe's version
1124 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1125 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1126 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1127 lower precedence.
1128 </para>
1129
1130 <para>
1131 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1132 precedence.
1133 For example, the value 6 has a higher precedence than the value 5.
1134 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1135 dependencies (see the
1136 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1137 more information.
1138 The default priority, if unspecified
1139 for a layer with no dependencies, is the lowest defined priority + 1
1140 (or 1 if no priorities are defined).
1141 </para>
1142 <tip>
1143 You can use the command <filename>bitbake-layers show-layers</filename> to list
1144 all configured layers along with their priorities.
1145 </tip>
1146 </glossdef>
1147 </glossentry>
1148
1149 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1150 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001151 BBFILES[doc] = "A space-separated list of recipe files BitBake uses to build software."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001152 </info>
1153 <glossdef>
1154 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001155 A space-separated list of recipe files BitBake uses to
1156 build software.
1157 </para>
1158
1159 <para>
1160 When specifying recipe files, you can pattern match using
1161 Python's
1162 <ulink url='https://docs.python.org/3/library/glob.html'><filename>glob</filename></ulink>
1163 syntax.
1164 For details on the syntax, see the documentation by
1165 following the previous link.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001166 </para>
1167 </glossdef>
1168 </glossentry>
1169
Brad Bishop316dfdd2018-06-25 12:45:53 -04001170 <glossentry id='var-BBFILES_DYNAMIC'><glossterm>BBFILES_DYNAMIC</glossterm>
1171 <info>
1172 BBFILES_DYNAMIC[doc] = "Activates content when identified layers are present."
1173 </info>
1174 <glossdef>
1175 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04001176 Activates content when identified layers are present.
1177 You identify the layers by the collections that the layers
1178 define.
1179 </para>
1180
1181 <para>
1182 Use the <filename>BBFILES_DYNAMIC</filename> variable to
1183 avoid <filename>.bbappend</filename> files whose
1184 corresponding <filename>.bb</filename> file is in a layer
1185 that attempts to modify other layers through
1186 <filename>.bbappend</filename> but does not want to
1187 introduce a hard dependency on those other layers.
1188 </para>
1189
1190 <para>
1191 Use the following form for
1192 <filename>BBFILES_DYNAMIC</filename>:
1193 <literallayout class='monospaced'>
1194 <replaceable>collection_name</replaceable>:<replaceable>filename_pattern</replaceable>
1195 </literallayout>
1196 The following example identifies two collection names and
1197 two filename patterns:
1198 <literallayout class='monospaced'>
1199 BBFILES_DYNAMIC += " \
1200 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
1201 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
1202 "
1203 </literallayout>
1204 This next example shows an error message that occurs
1205 because invalid entries are found, which cause parsing to
1206 abort:
1207 <literallayout class='monospaced'>
1208 ERROR: BBFILES_DYNAMIC entries must be of the form &lt;collection name&gt;:&lt;filename pattern&gt;, not:
1209 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
1210 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
1211 </literallayout>
1212 </para>
1213 </glossdef>
1214 </glossentry>
1215
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001216 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1217 <info>
1218 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1219 </info>
1220 <glossdef>
1221 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001222 Variable that controls how BitBake displays logs on build failure.
1223 </para>
1224 </glossdef>
1225 </glossentry>
1226
1227 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1228 <info>
1229 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1230 </info>
1231 <glossdef>
1232 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001233 If
1234 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1235 is set, specifies the maximum number of lines from the
1236 task log file to print when reporting a failed task.
1237 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1238 the entire log is printed.
1239 </para>
1240 </glossdef>
1241 </glossentry>
1242
1243 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1244 <info>
1245 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1246 </info>
1247 <glossdef>
1248 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001249 Lists the layers to enable during the build.
1250 This variable is defined in the <filename>bblayers.conf</filename> configuration
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001251 file in the
1252 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001253 Here is an example:
1254 <literallayout class='monospaced'>
1255 BBLAYERS = " \
1256 /home/scottrif/poky/meta \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001257 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001258 /home/scottrif/poky/meta-yocto-bsp \
1259 /home/scottrif/poky/meta-mykernel \
1260 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001261 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001262 </para>
1263
1264 <para>
1265 This example enables four layers, one of which is a custom, user-defined layer
1266 named <filename>meta-mykernel</filename>.
1267 </para>
1268 </glossdef>
1269 </glossentry>
1270
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001271 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1272 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001273 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001274 </info>
1275 <glossdef>
1276 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001277 Prevents BitBake from processing recipes and recipe
1278 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001279 </para>
1280
1281 <para>
1282 You can use the <filename>BBMASK</filename> variable
1283 to "hide" these <filename>.bb</filename> and
1284 <filename>.bbappend</filename> files.
1285 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001286 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001287 It is as if BitBake does not see them at all.
1288 Consequently, matching files are not parsed or otherwise
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001289 used by BitBake.
1290 </para>
1291
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001292 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001293 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001294 expression compiler.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001295 Consequently, the syntax follows Python's Regular
1296 Expression (re) syntax.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001297 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001298 the files.
1299 For complete syntax information, see Python's
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001300 documentation at
1301 <ulink url='http://docs.python.org/3/library/re.html#re'></ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001302 </para>
1303
1304 <para>
1305 The following example uses a complete regular expression
1306 to tell BitBake to ignore all recipe and recipe append
1307 files in the <filename>meta-ti/recipes-misc/</filename>
1308 directory:
1309 <literallayout class='monospaced'>
1310 BBMASK = "meta-ti/recipes-misc/"
1311 </literallayout>
1312 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001313 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001314 This next example masks out multiple directories and
1315 individual recipes:
1316 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001317 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1318 BBMASK += "/meta-oe/recipes-support/"
1319 BBMASK += "/meta-foo/.*/openldap"
1320 BBMASK += "opencv.*\.bbappend"
1321 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001322 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001323 <note>
1324 When specifying a directory name, use the trailing
1325 slash character to ensure you match just that directory
1326 name.
1327 </note>
1328 </para>
1329 </glossdef>
1330 </glossentry>
1331
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001332 <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
1333 <info>
Brad Bishopf3f93bb2019-10-16 14:33:32 -04001334 BBMULTICONFIG[doc] = "Specifies each additional separate configuration when you are building targets with multiple configurations."
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001335 </info>
1336 <glossdef>
1337 <para role="glossdeffirst">
Brad Bishop64c979e2019-11-04 13:55:29 -05001338 Specifies each additional separate configuration when you
1339 are building targets with multiple configurations.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001340 Use this variable in your
1341 <filename>conf/local.conf</filename> configuration file.
1342 Specify a <replaceable>multiconfigname</replaceable> for
1343 each configuration file you are using.
1344 For example, the following line specifies three
1345 configuration files:
1346 <literallayout class='monospaced'>
Brad Bishop96ff1982019-08-19 13:50:42 -04001347 BBMULTICONFIG = "configA configB configC"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001348 </literallayout>
1349 Each configuration file you use must reside in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001350 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001351 <filename>conf/multiconfig</filename> directory
1352 (e.g.
1353 <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
1354 </para>
1355
1356 <para>
1357 For information on how to use
1358 <filename>BBMULTICONFIG</filename> in an environment that
1359 supports building targets with multiple configurations,
1360 see the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001361 "<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 -05001362 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001363 </para>
1364 </glossdef>
1365 </glossentry>
1366
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001367 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1368 <info>
1369 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1370 </info>
1371 <glossdef>
1372 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001373 Used by BitBake to locate
1374 <filename>.bbclass</filename> and configuration files.
1375 This variable is analogous to the
1376 <filename>PATH</filename> variable.
1377 <note>
1378 If you run BitBake from a directory outside of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001379 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001380 you must be sure to set
1381 <filename>BBPATH</filename> to point to the
1382 Build Directory.
1383 Set the variable as you would any environment variable
1384 and then run BitBake:
1385 <literallayout class='monospaced'>
1386 $ BBPATH = "<replaceable>build_directory</replaceable>"
1387 $ export BBPATH
1388 $ bitbake <replaceable>target</replaceable>
1389 </literallayout>
1390 </note>
1391 </para>
1392 </glossdef>
1393 </glossentry>
1394
1395 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1396 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001397 BBSERVER[doc] = "Points to the BitBake remote server."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001398 </info>
1399 <glossdef>
1400 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001401 If defined in the BitBake environment,
1402 <filename>BBSERVER</filename> points to the BitBake
1403 remote server.
1404 </para>
1405
1406 <para>
1407 Use the following format to export the variable to the
1408 BitBake environment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001409 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -05001410 export BBSERVER=localhost:$port
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001411 </literallayout>
1412 </para>
1413
1414 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001415 By default, <filename>BBSERVER</filename> also appears in
1416 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>.
1417 Consequently, <filename>BBSERVER</filename> is excluded
1418 from checksum and dependency data.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001419 </para>
1420 </glossdef>
1421 </glossentry>
1422
1423 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1424 <info>
1425 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."
1426 </info>
1427 <glossdef>
1428 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001429 When inheriting the
1430 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1431 class, this variable specifies binary configuration
1432 scripts to disable in favor of using
1433 <filename>pkg-config</filename> to query the information.
1434 The <filename>binconfig-disabled</filename> class will
1435 modify the specified scripts to return an error so that
1436 calls to them can be easily found and replaced.
1437 </para>
1438
1439 <para>
1440 To add multiple scripts, separate them by spaces.
1441 Here is an example from the <filename>libpng</filename>
1442 recipe:
1443 <literallayout class='monospaced'>
1444 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1445 </literallayout>
1446 </para>
1447 </glossdef>
1448 </glossentry>
1449
1450 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1451 <info>
1452 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1453 </info>
1454 <glossdef>
1455 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001456 When inheriting the
1457 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1458 class, this variable specifies a wildcard for
1459 configuration scripts that need editing.
1460 The scripts are edited to correct any paths that have been
1461 set up during compilation so that they are correct for
1462 use when installed into the sysroot and called by the
1463 build processes of other recipes.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001464 <note>
1465 The <filename>BINCONFIG_GLOB</filename> variable
1466 uses
1467 <ulink url='http://tldp.org/LDP/abs/html/globbingref.html'>shell globbing</ulink>,
1468 which is recognition and expansion of wildcards during
1469 pattern matching.
1470 Shell globbing is very similar to
1471 <ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>
1472 and
1473 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>.
1474 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001475 </para>
1476
1477 <para>
1478 For more information on how this variable works, see
1479 <filename>meta/classes/binconfig.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001480 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001481 You can also find general information on the class in the
1482 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1483 section.
1484 </para>
1485 </glossdef>
1486 </glossentry>
1487
1488 <glossentry id='var-BP'><glossterm>BP</glossterm>
1489 <info>
1490 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}"
1491 </info>
1492 <glossdef>
1493 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001494 The base recipe name and version but without any special
1495 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1496 and so forth).
1497 <filename>BP</filename> is comprised of the following:
1498 <literallayout class="monospaced">
1499 ${BPN}-${PV}
1500 </literallayout>
1501 </para>
1502 </glossdef>
1503 </glossentry>
1504
1505 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1506 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001507 BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001508 </info>
1509 <glossdef>
1510 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001511 This variable is a version of the
1512 <link linkend='var-PN'><filename>PN</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001513 variable with common prefixes and suffixes
1514 removed, such as <filename>nativesdk-</filename>,
1515 <filename>-cross</filename>,
1516 <filename>-native</filename>, and multilib's
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001517 <filename>lib64-</filename> and
1518 <filename>lib32-</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001519 The exact lists of prefixes and suffixes removed are
1520 specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001521 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001522 and
1523 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1524 variables, respectively.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001525 </para>
1526 </glossdef>
1527 </glossentry>
1528
1529 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1530 <info>
1531 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1532 </info>
1533 <glossdef>
1534 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001535 Specifies a URL for an upstream bug tracking website for
1536 a recipe.
1537 The OpenEmbedded build system does not use this variable.
1538 Rather, the variable is a useful pointer in case a bug
1539 in the software being built needs to be manually reported.
1540 </para>
1541 </glossdef>
1542 </glossentry>
1543
1544 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1545 <info>
1546 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1547 </info>
1548 <glossdef>
1549 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001550 Specifies the architecture of the build host
1551 (e.g. <filename>i686</filename>).
1552 The OpenEmbedded build system sets the value of
1553 <filename>BUILD_ARCH</filename> from the machine name
1554 reported by the <filename>uname</filename> command.
1555 </para>
1556 </glossdef>
1557 </glossentry>
1558
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001559 <glossentry id='var-BUILD_AS_ARCH'><glossterm>BUILD_AS_ARCH</glossterm>
1560 <info>
1561 BUILD_AS_ARCH[doc] = "Specifies the architecture-specific assembler flags for the build host."
1562 </info>
1563 <glossdef>
1564 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001565 Specifies the architecture-specific assembler flags for
1566 the build host. By default, the value of
1567 <filename>BUILD_AS_ARCH</filename> is empty.
1568 </para>
1569 </glossdef>
1570 </glossentry>
1571
1572 <glossentry id='var-BUILD_CC_ARCH'><glossterm>BUILD_CC_ARCH</glossterm>
1573 <info>
1574 BUILD_CC_ARCH[doc] = "Specifies the architecture-specific C compiler flags for the build host."
1575 </info>
1576 <glossdef>
1577 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001578 Specifies the architecture-specific C compiler flags for
1579 the build host. By default, the value of
1580 <filename>BUILD_CC_ARCH</filename> is empty.
1581 </para>
1582 </glossdef>
1583 </glossentry>
1584
1585 <glossentry id='var-BUILD_CCLD'><glossterm>BUILD_CCLD</glossterm>
1586 <info>
1587 BUILD_CCLD[doc] = "Specifies the linker command to be used for the build host when the C compiler is being used as the linker."
1588 </info>
1589 <glossdef>
1590 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001591 Specifies the linker command to be used for the build host
1592 when the C compiler is being used as the linker. By default,
1593 <filename>BUILD_CCLD</filename> points to GCC and passes as
1594 arguments the value of
1595 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1596 assuming <filename>BUILD_CC_ARCH</filename> is set.
1597 </para>
1598 </glossdef>
1599 </glossentry>
1600
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001601 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1602 <info>
1603 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1604 </info>
1605 <glossdef>
1606 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001607 Specifies the flags to pass to the C compiler when building
1608 for the build host.
1609 When building in the <filename>-native</filename> context,
1610 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1611 is set to the value of this variable by default.
1612 </para>
1613 </glossdef>
1614 </glossentry>
1615
1616 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1617 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001618 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 -05001619 </info>
1620 <glossdef>
1621 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04001622 Specifies the flags to pass to the C preprocessor
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001623 (i.e. to both the C and the C++ compilers) when building
1624 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001625 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001626 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1627 is set to the value of this variable by default.
1628 </para>
1629 </glossdef>
1630 </glossentry>
1631
1632 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1633 <info>
1634 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1635 </info>
1636 <glossdef>
1637 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001638 Specifies the flags to pass to the C++ compiler when
1639 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001640 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001641 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1642 is set to the value of this variable by default.
1643 </para>
1644 </glossdef>
1645 </glossentry>
1646
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001647 <glossentry id='var-BUILD_FC'><glossterm>BUILD_FC</glossterm>
1648 <info>
1649 BUILD_FC[doc] = "Specifies the Fortran compiler command for the build host."
1650 </info>
1651 <glossdef>
1652 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001653 Specifies the Fortran compiler command for the build host.
1654 By default, <filename>BUILD_FC</filename> points to
1655 Gfortran and passes as arguments the value of
1656 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1657 assuming <filename>BUILD_CC_ARCH</filename> is set.
1658 </para>
1659 </glossdef>
1660 </glossentry>
1661
1662 <glossentry id='var-BUILD_LD'><glossterm>BUILD_LD</glossterm>
1663 <info>
1664 BUILD_LD[doc] = "Specifies the linker command for the build host."
1665 </info>
1666 <glossdef>
1667 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001668 Specifies the linker command for the build host. By default,
1669 <filename>BUILD_LD</filename> points to the GNU linker (ld)
1670 and passes as arguments the value of
1671 <link linkend='var-BUILD_LD_ARCH'><filename>BUILD_LD_ARCH</filename></link>,
1672 assuming <filename>BUILD_LD_ARCH</filename> is set.
1673 </para>
1674 </glossdef>
1675 </glossentry>
1676
1677 <glossentry id='var-BUILD_LD_ARCH'><glossterm>BUILD_LD_ARCH</glossterm>
1678 <info>
1679 BUILD_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the build."
1680 </info>
1681 <glossdef>
1682 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001683 Specifies architecture-specific linker flags for the build
1684 host. By default, the value of
1685 <filename>BUILD_LD_ARCH</filename> is empty.
1686 </para>
1687 </glossdef>
1688 </glossentry>
1689
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001690 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1691 <info>
1692 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1693 </info>
1694 <glossdef>
1695 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001696 Specifies the flags to pass to the linker when building
1697 for the build host.
1698 When building in the <filename>-native</filename> context,
1699 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1700 is set to the value of this variable by default.
1701 </para>
1702 </glossdef>
1703 </glossentry>
1704
1705 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1706 <info>
1707 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1708 </info>
1709 <glossdef>
1710 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001711 Specifies the optimization flags passed to the C compiler
1712 when building for the build host or the SDK.
1713 The flags are passed through the
1714 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1715 and
1716 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1717 default values.
1718 </para>
1719
1720 <para>
1721 The default value of the
1722 <filename>BUILD_OPTIMIZATION</filename> variable is
1723 "-O2 -pipe".
1724 </para>
1725 </glossdef>
1726 </glossentry>
1727
1728 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1729 <info>
1730 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1731 </info>
1732 <glossdef>
1733 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001734 Specifies the operating system in use on the build
1735 host (e.g. "linux").
1736 The OpenEmbedded build system sets the value of
1737 <filename>BUILD_OS</filename> from the OS reported by
1738 the <filename>uname</filename> command - the first word,
1739 converted to lower-case characters.
1740 </para>
1741 </glossdef>
1742 </glossentry>
1743
1744 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1745 <info>
1746 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1747 </info>
1748 <glossdef>
1749 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001750 The toolchain binary prefix used for native recipes.
1751 The OpenEmbedded build system uses the
1752 <filename>BUILD_PREFIX</filename> value to set the
1753 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001754 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001755 </para>
1756 </glossdef>
1757 </glossentry>
1758
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001759 <glossentry id='var-BUILD_STRIP'><glossterm>BUILD_STRIP</glossterm>
1760 <info>
1761 BUILD_STRIP[doc] = "Specifies the command to be used to strip debugging symbols from binaries produced for the build host."
1762 </info>
1763 <glossdef>
1764 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001765 Specifies the command to be used to strip debugging symbols
1766 from binaries produced for the build host. By default,
1767 <filename>BUILD_STRIP</filename> points to
1768 <filename>${</filename><link linkend='var-BUILD_PREFIX'><filename>BUILD_PREFIX</filename></link><filename>}strip</filename>.
1769 </para>
1770 </glossdef>
1771 </glossentry>
1772
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001773 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1774 <info>
1775 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1776 </info>
1777 <glossdef>
1778 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001779 Specifies the system, including the architecture and
1780 the operating system, to use when building for the build
1781 host (i.e. when building <filename>native</filename>
1782 recipes).
1783 </para>
1784
1785 <para>
1786 The OpenEmbedded build system automatically sets this
1787 variable based on
1788 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1789 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1790 and
1791 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1792 You do not need to set the <filename>BUILD_SYS</filename>
1793 variable yourself.
1794 </para>
1795 </glossdef>
1796 </glossentry>
1797
1798 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1799 <info>
1800 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1801 </info>
1802 <glossdef>
1803 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001804 Specifies the vendor name to use when building for the
1805 build host.
1806 The default value is an empty string ("").
1807 </para>
1808 </glossdef>
1809 </glossentry>
1810
1811 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1812 <info>
1813 BUILDDIR[doc] = "Points to the location of the Build Directory."
1814 </info>
1815 <glossdef>
1816 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001817 Points to the location of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001818 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001819 You can define this directory indirectly through the
1820 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001821 script by passing in a Build Directory path when you run
1822 the script.
1823 If you run the script and do not provide a Build Directory
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001824 path, the <filename>BUILDDIR</filename> defaults to
1825 <filename>build</filename> in the current directory.
1826 </para>
1827 </glossdef>
1828 </glossentry>
1829
1830 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1831 <info>
1832 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."
1833 </info>
1834 <glossdef>
1835 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001836 When inheriting the
1837 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1838 class, this variable specifies whether or not to commit the
1839 build history output in a local Git repository.
1840 If set to "1", this local repository will be maintained
1841 automatically by the
1842 <filename>buildhistory</filename>
1843 class and a commit will be created on every
1844 build for changes to each top-level subdirectory of the
1845 build history output (images, packages, and sdk).
1846 If you want to track changes to build history over
1847 time, you should set this value to "1".
1848 </para>
1849
1850 <para>
1851 By default, the <filename>buildhistory</filename> class
1852 does not commit the build history output in a local
1853 Git repository:
1854 <literallayout class='monospaced'>
1855 BUILDHISTORY_COMMIT ?= "0"
1856 </literallayout>
1857 </para>
1858 </glossdef>
1859 </glossentry>
1860
1861 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1862 <info>
1863 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1864 </info>
1865 <glossdef>
1866 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001867 When inheriting the
1868 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1869 class, this variable specifies the author to use for each
1870 Git commit.
1871 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1872 variable to work, the
1873 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1874 variable must be set to "1".
1875 </para>
1876
1877 <para>
1878 Git requires that the value you provide for the
1879 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
Brad Bishop316dfdd2018-06-25 12:45:53 -04001880 takes the form of "name <replaceable>email@host</replaceable>".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001881 Providing an email address or host that is not valid does
1882 not produce an error.
1883 </para>
1884
1885 <para>
1886 By default, the <filename>buildhistory</filename> class
1887 sets the variable as follows:
1888 <literallayout class='monospaced'>
1889 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1890 </literallayout>
1891 </para>
1892 </glossdef>
1893 </glossentry>
1894
1895 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1896 <info>
1897 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1898 </info>
1899 <glossdef>
1900 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001901 When inheriting the
1902 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1903 class, this variable specifies the directory in which
1904 build history information is kept.
1905 For more information on how the variable works, see the
1906 <filename>buildhistory.class</filename>.
1907 </para>
1908
1909 <para>
1910 By default, the <filename>buildhistory</filename> class
1911 sets the directory as follows:
1912 <literallayout class='monospaced'>
1913 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1914 </literallayout>
1915 </para>
1916 </glossdef>
1917 </glossentry>
1918
1919 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1920 <info>
1921 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1922 </info>
1923 <glossdef>
1924 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001925 When inheriting the
1926 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1927 class, this variable specifies the build history features
1928 to be enabled.
1929 For more information on how build history works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04001930 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
1931 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001932 </para>
1933
1934 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001935 You can specify these features in the form of a
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001936 space-separated list:
1937 <itemizedlist>
1938 <listitem><para><emphasis>image:</emphasis>
1939 Analysis of the contents of images, which
1940 includes the list of installed packages among other
1941 things.
1942 </para></listitem>
1943 <listitem><para><emphasis>package:</emphasis>
1944 Analysis of the contents of individual packages.
1945 </para></listitem>
1946 <listitem><para><emphasis>sdk:</emphasis>
1947 Analysis of the contents of the software
1948 development kit (SDK).
1949 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001950 <listitem><para><emphasis>task:</emphasis>
1951 Save output file signatures for
1952 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state</ulink>
1953 (sstate) tasks.
1954 This saves one file per task and lists the SHA-256
1955 checksums for each file staged (i.e. the output of
1956 the task).
1957 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001958 </itemizedlist>
1959 </para>
1960
1961 <para>
1962 By default, the <filename>buildhistory</filename> class
Brad Bishop316dfdd2018-06-25 12:45:53 -04001963 enables the following features:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001964 <literallayout class='monospaced'>
1965 BUILDHISTORY_FEATURES ?= "image package sdk"
1966 </literallayout>
1967 </para>
1968 </glossdef>
1969 </glossentry>
1970
1971 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
1972 <info>
1973 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."
1974 </info>
1975 <glossdef>
1976 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001977 When inheriting the
1978 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1979 class, this variable specifies a list of paths to files
1980 copied from the
1981 image contents into the build history directory under
1982 an "image-files" directory in the directory for
1983 the image, so that you can track the contents of each file.
1984 The default is to copy <filename>/etc/passwd</filename>
1985 and <filename>/etc/group</filename>, which allows you to
1986 monitor for changes in user and group entries.
1987 You can modify the list to include any file.
1988 Specifying an invalid path does not produce an error.
1989 Consequently, you can include files that might
1990 not always be present.
1991 </para>
1992
1993 <para>
1994 By default, the <filename>buildhistory</filename> class
1995 provides paths to the following files:
1996 <literallayout class='monospaced'>
1997 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1998 </literallayout>
1999 </para>
2000 </glossdef>
2001 </glossentry>
2002
2003 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
2004 <info>
2005 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
2006 </info>
2007 <glossdef>
2008 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002009 When inheriting the
2010 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2011 class, this variable optionally specifies a remote
2012 repository to which build history pushes Git changes.
2013 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
2014 to work,
2015 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
2016 must be set to "1".
2017 </para>
2018
2019 <para>
2020 The repository should correspond to a remote
2021 address that specifies a repository as understood by
2022 Git, or alternatively to a remote name that you have
2023 set up manually using <filename>git remote</filename>
2024 within the local repository.
2025 </para>
2026
2027 <para>
2028 By default, the <filename>buildhistory</filename> class
2029 sets the variable as follows:
2030 <literallayout class='monospaced'>
2031 BUILDHISTORY_PUSH_REPO ?= ""
2032 </literallayout>
2033 </para>
2034 </glossdef>
2035 </glossentry>
2036
2037 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
2038 <info>
2039 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
2040 </info>
2041 <glossdef>
2042 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002043 Specifies the flags to pass to the C compiler when building
2044 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002045 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002046 context,
2047 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
2048 is set to the value of this variable by default.
2049 </para>
2050 </glossdef>
2051 </glossentry>
2052
2053 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
2054 <info>
2055 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."
2056 </info>
2057 <glossdef>
2058 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002059 Specifies the flags to pass to the C pre-processor
2060 (i.e. to both the C and the C++ compilers) when building
2061 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002062 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002063 context,
2064 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
2065 is set to the value of this variable by default.
2066 </para>
2067 </glossdef>
2068 </glossentry>
2069
2070 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
2071 <info>
2072 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
2073 </info>
2074 <glossdef>
2075 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002076 Specifies the flags to pass to the C++ compiler when
2077 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002078 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002079 context,
2080 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
2081 is set to the value of this variable by default.
2082 </para>
2083 </glossdef>
2084 </glossentry>
2085
2086 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
2087 <info>
2088 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
2089 </info>
2090 <glossdef>
2091 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002092 Specifies the flags to pass to the linker when building
2093 for the SDK.
2094 When building in the <filename>nativesdk-</filename>
2095 context,
2096 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
2097 is set to the value of this variable by default.
2098 </para>
2099 </glossdef>
2100 </glossentry>
2101
2102 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
2103 <info>
2104 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
2105 </info>
2106 <glossdef>
2107 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002108 Points to the location of the directory that holds build
2109 statistics when you use and enable the
2110 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
2111 class.
2112 The <filename>BUILDSTATS_BASE</filename> directory defaults
2113 to
2114 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
2115 </para>
2116 </glossdef>
2117 </glossentry>
2118
2119 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
2120 <info>
2121 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."
2122 </info>
2123 <glossdef>
2124 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002125 For the BusyBox recipe, specifies whether to split the
2126 output executable file into two parts: one for features
2127 that require <filename>setuid root</filename>, and one for
2128 the remaining features (i.e. those that do not require
2129 <filename>setuid root</filename>).
2130 </para>
2131
2132 <para>
2133 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
Brad Bishop64c979e2019-11-04 13:55:29 -05002134 defaults to "1", which results in splitting the output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002135 executable file.
Brad Bishop64c979e2019-11-04 13:55:29 -05002136 Set the variable to "0" to get a single output executable
2137 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002138 </para>
2139 </glossdef>
2140 </glossentry>
2141
2142 </glossdiv>
2143
2144 <glossdiv id='var-glossary-c'><title>C</title>
2145
2146 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
2147 <info>
2148 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
2149 </info>
2150 <glossdef>
2151 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002152 Specifies the directory BitBake uses to store a cache
2153 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002154 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002155 so it does not need to be parsed every time BitBake is
2156 started.
2157 </para>
2158 </glossdef>
2159 </glossentry>
2160
2161 <glossentry id='var-CC'><glossterm>CC</glossterm>
2162 <info>
2163 CC[doc] = "Minimum command and arguments to run the C compiler."
2164 </info>
2165 <glossdef>
2166 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002167 The minimal command and arguments used to run the C
2168 compiler.
2169 </para>
2170 </glossdef>
2171 </glossentry>
2172
2173 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
2174 <info>
2175 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
2176 </info>
2177 <glossdef>
2178 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002179 Specifies the flags to pass to the C compiler.
2180 This variable is exported to an environment
2181 variable and thus made visible to the software being
2182 built during the compilation step.
2183 </para>
2184
2185 <para>
2186 Default initialization for <filename>CFLAGS</filename>
2187 varies depending on what is being built:
2188 <itemizedlist>
2189 <listitem><para>
2190 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2191 when building for the target
2192 </para></listitem>
2193 <listitem><para>
2194 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2195 when building for the build host (i.e.
2196 <filename>-native</filename>)
2197 </para></listitem>
2198 <listitem><para>
2199 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2200 when building for an SDK (i.e.
2201 <filename>nativesdk-</filename>)
2202 </para></listitem>
2203 </itemizedlist>
2204 </para>
2205 </glossdef>
2206 </glossentry>
2207
2208 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2209 <info>
2210 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2211 </info>
2212 <glossdef>
2213 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002214 An internal variable specifying the special class override
2215 that should currently apply (e.g. "class-target",
2216 "class-native", and so forth).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002217 The classes that use this variable (e.g.
2218 <link linkend='ref-classes-native'><filename>native</filename></link>,
2219 <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
2220 and so forth) set the variable to appropriate values.
2221 <note>
2222 <filename>CLASSOVERRIDE</filename> gets its default
2223 "class-target" value from the
2224 <filename>bitbake.conf</filename> file.
2225 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002226 </para>
2227
2228 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002229 As an example, the following override allows you to install
2230 extra files, but only when building for the target:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002231 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002232 do_install_append_class-target() {
2233 install my-extra-file ${D}${sysconfdir}
2234 }
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002235 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002236 Here is an example where <filename>FOO</filename>
2237 is set to "native" when building for the build host, and
2238 to "other" when not building for the build host:
2239 <literallayout class='monospaced'>
2240 FOO_class-native = "native"
2241 FOO = "other"
2242 </literallayout>
2243 The underlying mechanism behind
2244 <filename>CLASSOVERRIDE</filename> is simply that it is
2245 included in the default value of
2246 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002247 </para>
2248 </glossdef>
2249 </glossentry>
2250
2251 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2252 <info>
2253 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2254 </info>
2255 <glossdef>
2256 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002257 If set to "1" within a recipe,
2258 <filename>CLEANBROKEN</filename> specifies that
2259 the <filename>make clean</filename> command does
2260 not work for the software being built.
2261 Consequently, the OpenEmbedded build system will not try
2262 to run <filename>make clean</filename> during the
2263 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2264 task, which is the default behavior.
2265 </para>
2266 </glossdef>
2267 </glossentry>
2268
2269 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2270 <info>
2271 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2272 </info>
2273 <glossdef>
2274 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002275 Provides a list of hardware features that are enabled in
2276 both
2277 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2278 and
2279 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2280 This select list of features contains features that make
2281 sense to be controlled both at the machine and distribution
2282 configuration level.
2283 For example, the "bluetooth" feature requires hardware
2284 support but should also be optional at the distribution
2285 level, in case the hardware supports Bluetooth but you
2286 do not ever intend to use it.
2287 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002288 </glossdef>
2289 </glossentry>
2290
2291 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2292 <info>
2293 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2294 </info>
2295 <glossdef>
2296 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002297 Points to <filename>meta/files/common-licenses</filename>
2298 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002299 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002300 which is where generic license files reside.
2301 </para>
2302 </glossdef>
2303 </glossentry>
2304
2305 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2306 <info>
2307 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."
2308 </info>
2309 <glossdef>
2310 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002311 A regular expression that resolves to one or more hosts
2312 (when the recipe is native) or one or more targets (when
2313 the recipe is non-native) with which a recipe is compatible.
2314 The regular expression is matched against
2315 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2316 You can use the variable to stop recipes from being built
2317 for classes of systems with which the recipes are not
2318 compatible.
2319 Stopping these builds is particularly useful with kernels.
2320 The variable also helps to increase parsing speed
2321 since the build system skips parsing recipes not
2322 compatible with the current system.
2323 </para>
2324 </glossdef>
2325 </glossentry>
2326
2327 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2328 <info>
2329 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2330 </info>
2331 <glossdef>
2332 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002333 A regular expression that resolves to one or more
2334 target machines with which a recipe is compatible.
2335 The regular expression is matched against
2336 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2337 You can use the variable to stop recipes from being built
2338 for machines with which the recipes are not compatible.
2339 Stopping these builds is particularly useful with kernels.
2340 The variable also helps to increase parsing speed
2341 since the build system skips parsing recipes not
2342 compatible with the current machine.
2343 </para>
2344 </glossdef>
2345 </glossentry>
2346
2347 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2348 <info>
2349 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2350 </info>
2351 <glossdef>
2352 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002353 Defines wildcards to match when installing a list of
2354 complementary packages for all the packages explicitly
2355 (or implicitly) installed in an image.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08002356 <note>
2357 The <filename>COMPLEMENTARY_GLOB</filename> variable
2358 uses Unix filename pattern matching
2359 (<ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>),
2360 which is similar to the Unix style pathname pattern
2361 expansion
2362 (<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>).
2363 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002364 The resulting list of complementary packages is associated
2365 with an item that can be added to
2366 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2367 An example usage of this is the "dev-pkgs" item that when
2368 added to <filename>IMAGE_FEATURES</filename> will
2369 install -dev packages (containing headers and other
2370 development files) for every package in the image.
2371 </para>
2372
2373 <para>
2374 To add a new feature item pointing to a wildcard, use a
2375 variable flag to specify the feature item name and
2376 use the value to specify the wildcard.
2377 Here is an example:
2378 <literallayout class='monospaced'>
2379 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2380 </literallayout>
2381 </para>
2382 </glossdef>
2383 </glossentry>
2384
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002385 <glossentry id='var-COMPONENTS_DIR'><glossterm>COMPONENTS_DIR</glossterm>
2386 <info>
2387 COMPONENTS_DIR[doc] = "Stores sysroot components for each recipe."
2388 </info>
2389 <glossdef>
2390 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002391 Stores sysroot components for each recipe.
2392 The OpenEmbedded build system uses
2393 <filename>COMPONENTS_DIR</filename> when constructing
2394 recipe-specific sysroots for other recipes.
2395 </para>
2396
2397 <para>
2398 The default is
2399 "<filename>${</filename><link linkend='var-STAGING_DIR'><filename>STAGING_DIR</filename></link><filename>}-components</filename>."
2400 (i.e. "<filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots-components</filename>").
2401 </para>
2402 </glossdef>
2403 </glossentry>
2404
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002405 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2406 <info>
2407 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2408 </info>
2409 <glossdef>
2410 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002411 Tracks the version of the local configuration file
2412 (i.e. <filename>local.conf</filename>).
2413 The value for <filename>CONF_VERSION</filename>
2414 increments each time <filename>build/conf/</filename>
2415 compatibility changes.
2416 </para>
2417 </glossdef>
2418 </glossentry>
2419
2420 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2421 <info>
2422 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2423 </info>
2424 <glossdef>
2425 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002426 Identifies editable or configurable files that are part of a package.
2427 If the Package Management System (PMS) is being used to update
2428 packages on the target system, it is possible that
2429 configuration files you have changed after the original installation
2430 and that you now want to remain unchanged are overwritten.
2431 In other words, editable files might exist in the package that you do not
2432 want reset as part of the package update process.
2433 You can use the <filename>CONFFILES</filename> variable to list the files in the
2434 package that you wish to prevent the PMS from overwriting during this update process.
2435 </para>
2436
2437 <para>
2438 To use the <filename>CONFFILES</filename> variable, provide a package name
2439 override that identifies the resulting package.
2440 Then, provide a space-separated list of files.
2441 Here is an example:
2442 <literallayout class='monospaced'>
2443 CONFFILES_${PN} += "${sysconfdir}/file1 \
2444 ${sysconfdir}/file2 ${sysconfdir}/file3"
2445 </literallayout>
2446 </para>
2447
2448 <para>
2449 A relationship exists between the <filename>CONFFILES</filename> and
2450 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2451 The files listed within <filename>CONFFILES</filename> must be a subset of
2452 the files listed within <filename>FILES</filename>.
2453 Because the configuration files you provide with <filename>CONFFILES</filename>
2454 are simply being identified so that the PMS will not overwrite them,
2455 it makes sense that
2456 the files must already be included as part of the package through the
2457 <filename>FILES</filename> variable.
2458 </para>
2459
2460 <note>
2461 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2462 it is good practice to use appropriate path variables.
2463 For example, <filename>${sysconfdir}</filename> rather than
2464 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2465 than <filename>/usr/bin</filename>.
2466 You can find a list of these variables at the top of the
2467 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002468 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002469 </note>
2470 </glossdef>
2471 </glossentry>
2472
2473 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2474 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002475 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 -05002476 </info>
2477 <glossdef>
2478 <para role="glossdeffirst">
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002479 Identifies the initial RAM filesystem (initramfs) source
2480 files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002481 The OpenEmbedded build system receives and uses
2482 this kernel Kconfig variable as an environment variable.
2483 By default, the variable is set to null ("").
2484 </para>
2485
2486 <para>
2487 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2488 either a single cpio archive with a
2489 <filename>.cpio</filename> suffix or a
2490 space-separated list of directories and files for building
2491 the initramfs image.
2492 A cpio archive should contain a filesystem archive
2493 to be used as an initramfs image.
2494 Directories should contain a filesystem layout to be
2495 included in the initramfs image.
2496 Files should contain entries according to the format
2497 described by the
2498 <filename>usr/gen_init_cpio</filename> program in the
2499 kernel tree.
2500 </para>
2501
2502 <para>
2503 If you specify multiple directories and files, the
2504 initramfs image will be the aggregate of all of them.
2505 </para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002506
2507 <para>
2508 For information on creating an initramfs, see the
2509 "<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 -05002510 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002511 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002512 </glossdef>
2513 </glossentry>
2514
2515 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2516 <info>
2517 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."
2518 </info>
2519 <glossdef>
2520 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002521 A list of files that contains <filename>autoconf</filename> test results relevant
2522 to the current build.
2523 This variable is used by the Autotools utilities when running
2524 <filename>configure</filename>.
2525 </para>
2526 </glossdef>
2527 </glossentry>
2528
2529 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2530 <info>
2531 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2532 </info>
2533 <glossdef>
2534 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002535 The minimal arguments for GNU configure.
2536 </para>
2537 </glossdef>
2538 </glossentry>
2539
2540 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2541 <info>
2542 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."
2543 </info>
2544 <glossdef>
2545 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002546 When inheriting the
2547 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2548 class, this
2549 variable identifies distribution features that would
2550 be in conflict should the recipe
2551 be built.
2552 In other words, if the
2553 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2554 lists a feature that also appears in
2555 <filename>DISTRO_FEATURES</filename> within the
2556 current configuration, an error occurs and the
2557 build stops.
2558 </para>
2559 </glossdef>
2560 </glossentry>
2561
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002562 <glossentry id='var-COPYLEFT_LICENSE_EXCLUDE'><glossterm>COPYLEFT_LICENSE_EXCLUDE</glossterm>
2563 <info>
2564 COPYLEFT_LICENSE_EXCLUDE[doc] = "Licenses to exclude in the source archived by the archiver class."
2565 </info>
2566 <glossdef>
2567 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002568 A space-separated list of licenses to exclude from the
2569 source archived by the
2570 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2571 class.
2572 In other words, if a license in a recipe's
2573 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2574 value is in the value of
2575 <filename>COPYLEFT_LICENSE_EXCLUDE</filename>, then its
2576 source is not archived by the class.
2577 <note>
2578 The <filename>COPYLEFT_LICENSE_EXCLUDE</filename>
2579 variable takes precedence over the
2580 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2581 variable.
2582 </note>
2583 The default value, which is "CLOSED Proprietary", for
2584 <filename>COPYLEFT_LICENSE_EXCLUDE</filename> is set
2585 by the
2586 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2587 class, which is inherited by the
2588 <filename>archiver</filename> class.
2589 </para>
2590 </glossdef>
2591 </glossentry>
2592
2593 <glossentry id='var-COPYLEFT_LICENSE_INCLUDE'><glossterm>COPYLEFT_LICENSE_INCLUDE</glossterm>
2594 <info>
2595 COPYLEFT_LICENSE_INCLUDE[doc] = "Licenses to include in the source archived by the archiver class."
2596 </info>
2597 <glossdef>
2598 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002599 A space-separated list of licenses to include in the
2600 source archived by the
2601 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2602 class.
2603 In other words, if a license in a recipe's
2604 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2605 value is in the value of
2606 <filename>COPYLEFT_LICENSE_INCLUDE</filename>, then its
2607 source is archived by the class.
2608 </para>
2609
2610 <para>
2611 The default value is set by the
2612 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2613 class, which is inherited by the
2614 <filename>archiver</filename> class.
2615 The default value includes "GPL*", "LGPL*", and "AGPL*".
2616 </para>
2617 </glossdef>
2618 </glossentry>
2619
2620 <glossentry id='var-COPYLEFT_PN_EXCLUDE'><glossterm>COPYLEFT_PN_EXCLUDE</glossterm>
2621 <info>
2622 COPYLEFT_PN_EXCLUDE[doc] = "Recipes to exclude in the source archived by the archiver class."
2623 </info>
2624 <glossdef>
2625 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002626 A list of recipes to exclude in the source archived
2627 by the
2628 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2629 class.
2630 The <filename>COPYLEFT_PN_EXCLUDE</filename> variable
2631 overrides the license inclusion and exclusion caused
2632 through the
2633 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2634 and
2635 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2636 variables, respectively.
2637 </para>
2638
2639 <para>
2640 The default value, which is "" indicating to not explicitly
2641 exclude any recipes by name, for
2642 <filename>COPYLEFT_PN_EXCLUDE</filename> is set
2643 by the
2644 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2645 class, which is inherited by the
2646 <filename>archiver</filename> class.
2647 </para>
2648 </glossdef>
2649 </glossentry>
2650
2651 <glossentry id='var-COPYLEFT_PN_INCLUDE'><glossterm>COPYLEFT_PN_INCLUDE</glossterm>
2652 <info>
2653 COPYLEFT_PN_INCLUDE[doc] = "Recipes to include in the source archived by the archiver class."
2654 </info>
2655 <glossdef>
2656 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002657 A list of recipes to include in the source archived
2658 by the
2659 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2660 class.
2661 The <filename>COPYLEFT_PN_INCLUDE</filename> variable
2662 overrides the license inclusion and exclusion caused
2663 through the
2664 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2665 and
2666 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2667 variables, respectively.
2668 </para>
2669
2670 <para>
2671 The default value, which is "" indicating to not explicitly
2672 include any recipes by name, for
2673 <filename>COPYLEFT_PN_INCLUDE</filename> is set
2674 by the
2675 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2676 class, which is inherited by the
2677 <filename>archiver</filename> class.
2678 </para>
2679 </glossdef>
2680 </glossentry>
2681
2682 <glossentry id='var-COPYLEFT_RECIPE_TYPES'><glossterm>COPYLEFT_RECIPE_TYPES</glossterm>
2683 <info>
2684 COPYLEFT_RECIPE_TYPES[doc] = "Recipe types to include in the source archived by the archiver class."
2685 </info>
2686 <glossdef>
2687 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002688 A space-separated list of recipe types to include
2689 in the source archived by the
2690 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2691 class.
2692 Recipe types are <filename>target</filename>,
2693 <filename>native</filename>,
2694 <filename>nativesdk</filename>,
2695 <filename>cross</filename>,
2696 <filename>crosssdk</filename>, and
2697 <filename>cross-canadian</filename>.
2698 </para>
2699
2700 <para>
2701 The default value, which is "target*", for
2702 <filename>COPYLEFT_RECIPE_TYPES</filename> is set
2703 by the
2704 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2705 class, which is inherited by the
2706 <filename>archiver</filename> class.
2707 </para>
2708 </glossdef>
2709 </glossentry>
2710
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002711 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2712 <info>
2713 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."
2714 </info>
2715 <glossdef>
2716 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002717 If set to "1" along with the
2718 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2719 variable, the OpenEmbedded build system copies
2720 into the image the license files, which are located in
2721 <filename>/usr/share/common-licenses</filename>,
2722 for each package.
2723 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002724 in directories within the image itself during build time.
2725 <note>
2726 The <filename>COPY_LIC_DIRS</filename> does not
2727 offer a path for adding licenses for newly installed
2728 packages to an image, which might be most suitable
2729 for read-only filesystems that cannot be upgraded.
2730 See the
2731 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2732 variable for additional information.
2733 You can also reference the
2734 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002735 section in the Yocto Project Development Tasks Manual
2736 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002737 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002738 </para>
2739 </glossdef>
2740 </glossentry>
2741
2742 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2743 <info>
2744 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."
2745 </info>
2746 <glossdef>
2747 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002748 If set to "1", the OpenEmbedded build system copies
2749 the license manifest for the image to
2750 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002751 within the image itself during build time.
2752 <note>
2753 The <filename>COPY_LIC_MANIFEST</filename> does not
2754 offer a path for adding licenses for newly installed
2755 packages to an image, which might be most suitable
2756 for read-only filesystems that cannot be upgraded.
2757 See the
2758 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2759 variable for additional information.
2760 You can also reference the
2761 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002762 section in the Yocto Project Development Tasks Manual
2763 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002764 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002765 </para>
2766 </glossdef>
2767 </glossentry>
2768
2769 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2770 <info>
2771 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."
2772 </info>
2773 <glossdef>
2774 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002775 Specifies the list of packages to be added to the image.
2776 You should only set this variable in the
2777 <filename>local.conf</filename> configuration file found
2778 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002779 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002780 </para>
2781
2782 <para>
2783 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2784 </para>
2785 </glossdef>
2786 </glossentry>
2787
2788 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2789 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002790 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. meta)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002791 </info>
2792 <glossdef>
2793 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04002794 Specifies the parent directory of the OpenEmbedded-Core
2795 Metadata layer (i.e. <filename>meta</filename>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002796 </para>
2797
2798 <para>
2799 It is an important distinction that
2800 <filename>COREBASE</filename> points to the parent of this
2801 layer and not the layer itself.
2802 Consider an example where you have cloned the Poky Git
2803 repository and retained the <filename>poky</filename>
2804 name for your local copy of the repository.
2805 In this case, <filename>COREBASE</filename> points to
2806 the <filename>poky</filename> folder because it is the
2807 parent directory of the <filename>poky/meta</filename>
2808 layer.
2809 </para>
2810 </glossdef>
2811 </glossentry>
2812
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002813 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2814 <info>
2815 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2816 </info>
2817 <glossdef>
2818 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002819 Lists files from the
2820 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2821 directory that should be copied other than the layers
2822 listed in the <filename>bblayers.conf</filename> file.
2823 The <filename>COREBASE_FILES</filename> variable exists
2824 for the purpose of copying metadata from the
2825 OpenEmbedded build system into the extensible
2826 SDK.
2827 </para>
2828
2829 <para>
2830 Explicitly listing files in <filename>COREBASE</filename>
2831 is needed because it typically contains build
2832 directories and other files that should not normally
2833 be copied into the extensible SDK.
2834 Consequently, the value of
2835 <filename>COREBASE_FILES</filename> is used in order to
2836 only copy the files that are actually needed.
2837 </para>
2838 </glossdef>
2839 </glossentry>
2840
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002841 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2842 <info>
2843 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2844 </info>
2845 <glossdef>
2846 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002847 The minimal command and arguments used to run the C
2848 preprocessor.
2849 </para>
2850 </glossdef>
2851 </glossentry>
2852
2853 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2854 <info>
2855 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2856 </info>
2857 <glossdef>
2858 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002859 Specifies the flags to pass to the C pre-processor
2860 (i.e. to both the C and the C++ compilers).
2861 This variable is exported to an environment
2862 variable and thus made visible to the software being
2863 built during the compilation step.
2864 </para>
2865
2866 <para>
2867 Default initialization for <filename>CPPFLAGS</filename>
2868 varies depending on what is being built:
2869 <itemizedlist>
2870 <listitem><para>
2871 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2872 when building for the target
2873 </para></listitem>
2874 <listitem><para>
2875 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2876 when building for the build host (i.e.
2877 <filename>-native</filename>)
2878 </para></listitem>
2879 <listitem><para>
2880 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2881 when building for an SDK (i.e.
2882 <filename>nativesdk-</filename>)
2883 </para></listitem>
2884 </itemizedlist>
2885 </para>
2886 </glossdef>
2887 </glossentry>
2888
2889 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2890 <info>
2891 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2892 </info>
2893 <glossdef>
2894 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002895 The toolchain binary prefix for the target tools.
2896 The <filename>CROSS_COMPILE</filename> variable is the
2897 same as the
2898 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2899 variable.
2900 <note>
2901 The OpenEmbedded build system sets the
2902 <filename>CROSS_COMPILE</filename> variable only in
2903 certain contexts (e.g. when building for kernel
2904 and kernel module recipes).
2905 </note>
2906 </para>
2907 </glossdef>
2908 </glossentry>
2909
2910 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2911 <info>
2912 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2913 </info>
2914 <glossdef>
2915 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002916 The directory in which files checked out under the
2917 CVS system are stored.
2918 </para>
2919 </glossdef>
2920 </glossentry>
2921
2922 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2923 <info>
2924 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2925 </info>
2926 <glossdef>
2927 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002928 The minimal command and arguments used to run the C++
2929 compiler.
2930 </para>
2931 </glossdef>
2932 </glossentry>
2933
2934 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
2935 <info>
2936 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
2937 </info>
2938 <glossdef>
2939 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002940 Specifies the flags to pass to the C++ compiler.
2941 This variable is exported to an environment
2942 variable and thus made visible to the software being
2943 built during the compilation step.
2944 </para>
2945
2946 <para>
2947 Default initialization for <filename>CXXFLAGS</filename>
2948 varies depending on what is being built:
2949 <itemizedlist>
2950 <listitem><para>
2951 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
2952 when building for the target
2953 </para></listitem>
2954 <listitem><para>
2955 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
2956 when building for the build host (i.e.
2957 <filename>-native</filename>)
2958 </para></listitem>
2959 <listitem><para>
2960 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
2961 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002962 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002963 </para></listitem>
2964 </itemizedlist>
2965 </para>
2966 </glossdef>
2967 </glossentry>
2968
2969 </glossdiv>
2970
2971 <glossdiv id='var-glossary-d'><title>D</title>
2972
2973 <glossentry id='var-D'><glossterm>D</glossterm>
2974 <info>
2975 D[doc] = "The destination directory."
2976 </info>
2977 <glossdef>
2978 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002979 The destination directory.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002980 The location in the
2981 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002982 where components are installed by the
2983 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
2984 task.
2985 This location defaults to:
2986 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002987 ${WORKDIR}/image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002988 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002989 <note><title>Caution</title>
2990 Tasks that read from or write to this directory should
2991 run under
Brad Bishop316dfdd2018-06-25 12:45:53 -04002992 <ulink url='&YOCTO_DOCS_OM_URL;#fakeroot-and-pseudo'>fakeroot</ulink>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002993 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002994 </para>
2995 </glossdef>
2996 </glossentry>
2997
2998 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
2999 <info>
3000 DATE[doc] = "The date the build was started using YMD format."
3001 </info>
3002 <glossdef>
3003 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003004 The date the build was started.
3005 Dates appear using the year, month, and day (YMD) format
3006 (e.g. "20150209" for February 9th, 2015).
3007 </para>
3008 </glossdef>
3009 </glossentry>
3010
3011 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
3012 <info>
3013 DATETIME[doc] = "The date and time the build was started."
3014 </info>
3015 <glossdef>
3016 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003017 The date and time on which the current build started.
3018 The format is suitable for timestamps.
3019 </para>
3020 </glossdef>
3021 </glossentry>
3022
3023 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
3024 <info>
3025 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
3026 </info>
3027 <glossdef>
3028 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003029 When the
3030 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3031 class is inherited, which is the default behavior,
3032 <filename>DEBIAN_NOAUTONAME</filename> specifies a
3033 particular package should not be renamed according to
3034 Debian library package naming.
3035 You must use the package name as an override when you
3036 set this variable.
3037 Here is an example from the <filename>fontconfig</filename>
3038 recipe:
3039 <literallayout class='monospaced'>
3040 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
3041 </literallayout>
3042 </para>
3043 </glossdef>
3044 </glossentry>
3045
3046 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
3047 <info>
3048 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
3049 </info>
3050 <glossdef>
3051 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003052 When the
3053 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3054 class is inherited, which is the default behavior,
3055 <filename>DEBIANNAME</filename> allows you to override the
3056 library name for an individual package.
3057 Overriding the library name in these cases is rare.
3058 You must use the package name as an override when you
3059 set this variable.
3060 Here is an example from the <filename>dbus</filename>
3061 recipe:
3062 <literallayout class='monospaced'>
3063 DEBIANNAME_${PN} = "dbus-1"
3064 </literallayout>
3065 </para>
3066 </glossdef>
3067 </glossentry>
3068
3069 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
3070 <info>
3071 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
3072 </info>
3073 <glossdef>
3074 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003075 Specifies to build packages with debugging information.
3076 This influences the value of the
3077 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
3078 variable.
3079 </para>
3080 </glossdef>
3081 </glossentry>
3082
3083 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
3084 <info>
3085 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'."
3086 </info>
3087 <glossdef>
3088 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003089 The options to pass in
3090 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
3091 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
3092 a system for debugging.
3093 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
3094 </para>
3095 </glossdef>
3096 </glossentry>
3097
3098 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
3099 <info>
3100 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
3101 </info>
3102 <glossdef>
3103 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003104 Specifies a weak bias for recipe selection priority.
3105 </para>
3106
3107 <para>
3108 The most common usage of this is variable is to set
3109 it to "-1" within a recipe for a development version of a
3110 piece of software.
3111 Using the variable in this way causes the stable version
3112 of the recipe to build by default in the absence of
3113 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
3114 being used to build the development version.
3115 </para>
3116
3117 <note>
3118 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
3119 is weak and is overridden by
3120 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
3121 if that variable is different between two layers
3122 that contain different versions of the same recipe.
3123 </note>
3124 </glossdef>
3125 </glossentry>
3126
3127 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
3128 <info>
3129 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
3130 </info>
3131 <glossdef>
3132 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003133 The default CPU and Application Binary Interface (ABI)
3134 tunings (i.e. the "tune") used by the OpenEmbedded build
3135 system.
3136 The <filename>DEFAULTTUNE</filename> helps define
3137 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
3138 </para>
3139
3140 <para>
3141 The default tune is either implicitly or explicitly set
3142 by the machine
3143 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
3144 However, you can override the setting using available tunes
3145 as defined with
3146 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
3147 </para>
3148 </glossdef>
3149 </glossentry>
3150
3151 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
3152 <info>
3153 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
3154 </info>
3155 <glossdef>
3156 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003157 Lists a recipe's build-time dependencies.
3158 These are dependencies on other recipes whose
3159 contents (e.g. headers and shared libraries) are needed
3160 by the recipe at build time.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003161 </para>
3162
3163 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003164 As an example, consider a recipe <filename>foo</filename>
3165 that contains the following assignment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003166 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003167 DEPENDS = "bar"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003168 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003169 The practical effect of the previous assignment is that
3170 all files installed by bar will be available in the
3171 appropriate staging sysroot, given by the
3172 <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
3173 variables, by the time the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003174 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003175 task for <filename>foo</filename> runs.
3176 This mechanism is implemented by having
3177 <filename>do_configure</filename> depend on the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003178 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003179 task of each recipe listed in <filename>DEPENDS</filename>,
3180 through a
3181 <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
3182 declaration in the
3183 <link linkend='ref-classes-base'><filename>base</filename></link>
3184 class.
3185 <note>
3186 It seldom is necessary to reference, for example,
3187 <filename>STAGING_DIR_HOST</filename> explicitly.
3188 The standard classes and build-related variables are
3189 configured to automatically use the appropriate staging
3190 sysroots.
3191 </note>
3192 As another example, <filename>DEPENDS</filename> can also
3193 be used to add utilities that run on the build machine
3194 during the build.
3195 For example, a recipe that makes use of a code generator
3196 built by the recipe <filename>codegen</filename> might have
3197 the following:
3198 <literallayout class='monospaced'>
3199 DEPENDS = "codegen-native"
3200 </literallayout>
3201 For more information, see the
3202 <link linkend='ref-classes-native'><filename>native</filename></link>
3203 class and the
3204 <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
3205 variable.
3206 <note>
3207 <title>Notes</title>
3208 <itemizedlist>
3209 <listitem><para>
3210 <filename>DEPENDS</filename> is a list of
3211 recipe names.
3212 Or, to be more precise, it is a list of
3213 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
3214 names, which usually match recipe names.
3215 Putting a package name such as "foo-dev" in
3216 <filename>DEPENDS</filename> does not make
3217 sense.
3218 Use "foo" instead, as this will put files
3219 from all the packages that make up
3220 <filename>foo</filename>, which includes
3221 those from <filename>foo-dev</filename>, into
3222 the sysroot.
3223 </para></listitem>
3224 <listitem><para>
3225 One recipe having another recipe in
3226 <filename>DEPENDS</filename> does not by itself
3227 add any runtime dependencies between the
3228 packages produced by the two recipes.
3229 However, as explained in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003230 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
3231 section in the Yocto Project Overview and
3232 Concepts Manual, runtime dependencies will
3233 often be added automatically, meaning
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003234 <filename>DEPENDS</filename> alone is
3235 sufficient for most recipes.
3236 </para></listitem>
3237 <listitem><para>
3238 Counterintuitively,
3239 <filename>DEPENDS</filename> is often necessary
3240 even for recipes that install precompiled
3241 components.
3242 For example, if <filename>libfoo</filename>
3243 is a precompiled library that links against
3244 <filename>libbar</filename>, then
3245 linking against <filename>libfoo</filename>
3246 requires both <filename>libfoo</filename>
3247 and <filename>libbar</filename> to be available
3248 in the sysroot.
3249 Without a <filename>DEPENDS</filename> from the
3250 recipe that installs <filename>libfoo</filename>
3251 to the recipe that installs
3252 <filename>libbar</filename>, other recipes might
3253 fail to link against
3254 <filename>libfoo</filename>.
3255 </para></listitem>
3256 </itemizedlist>
3257 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003258 </para>
3259
3260 <para>
3261 For information on runtime dependencies, see the
3262 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
3263 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003264 You can also see the
3265 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
3266 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
3267 sections in the BitBake User Manual for additional
3268 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003269 </para>
3270 </glossdef>
3271 </glossentry>
3272
3273 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
3274 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003275 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 -05003276 </info>
3277 <glossdef>
3278 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003279 Points to the general area that the OpenEmbedded build
Brad Bishop316dfdd2018-06-25 12:45:53 -04003280 system uses to place images, packages, SDKs, and other output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003281 files that are ready to be used outside of the build system.
3282 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003283 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003284 as <filename>${TMPDIR}/deploy</filename>.
3285 </para>
3286
3287 <para>
3288 For more information on the structure of the Build
3289 Directory, see
3290 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3291 section.
3292 For more detail on the contents of the
3293 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003294 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>",
3295 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>",
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003296 and
Brad Bishop316dfdd2018-06-25 12:45:53 -04003297 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3298 sections all in the Yocto Project Overview and Concepts
3299 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003300 </para>
3301 </glossdef>
3302 </glossentry>
3303
3304 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
3305 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003306 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 -05003307 </info>
3308 <glossdef>
3309 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003310 Points to the area that the OpenEmbedded build system uses
3311 to place Debian packages that are ready to be used outside
3312 of the build system.
3313 This variable applies only when
3314 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3315 contains "package_deb".
3316 </para>
3317
3318 <para>
3319 The BitBake configuration file initially defines the
3320 <filename>DEPLOY_DIR_DEB</filename> variable as a
3321 sub-folder of
3322 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3323 <literallayout class='monospaced'>
3324 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
3325 </literallayout>
3326 </para>
3327
3328 <para>
3329 The
3330 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
3331 class uses the
3332 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
3333 the
3334 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
3335 task writes Debian packages into the appropriate folder.
3336 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003337 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3338 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003339 </para>
3340 </glossdef>
3341 </glossentry>
3342
3343 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
3344 <info>
3345 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."
3346 </info>
3347 <glossdef>
3348 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003349 Points to the area that the OpenEmbedded build system uses
3350 to place images and other associated output files that are
3351 ready to be deployed onto the target machine.
3352 The directory is machine-specific as it contains the
3353 <filename>${MACHINE}</filename> name.
3354 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003355 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003356 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
3357 </para>
3358
3359 <para>
3360 For more information on the structure of the Build
3361 Directory, see
3362 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3363 section.
3364 For more detail on the contents of the
3365 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003366 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>"
3367 and
3368 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3369 sections both in the Yocto Project Overview and Concepts
3370 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003371 </para>
3372 </glossdef>
3373 </glossentry>
3374
3375 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
3376 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003377 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 -05003378 </info>
3379 <glossdef>
3380 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003381 Points to the area that the OpenEmbedded build system uses
3382 to place IPK packages that are ready to be used outside of
3383 the build system.
3384 This variable applies only when
3385 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3386 contains "package_ipk".
3387 </para>
3388
3389 <para>
3390 The BitBake configuration file initially defines this
3391 variable as a sub-folder of
3392 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3393 <literallayout class='monospaced'>
3394 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
3395 </literallayout>
3396 </para>
3397
3398 <para>
3399 The
3400 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
3401 class uses the
3402 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
3403 the
3404 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
3405 task writes IPK packages into the appropriate folder.
3406 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003407 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3408 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003409 </para>
3410 </glossdef>
3411 </glossentry>
3412
3413 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
3414 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003415 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 -05003416 </info>
3417 <glossdef>
3418 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003419 Points to the area that the OpenEmbedded build system uses
3420 to place RPM packages that are ready to be used outside
3421 of the build system.
3422 This variable applies only when
3423 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3424 contains "package_rpm".
3425 </para>
3426
3427 <para>
3428 The BitBake configuration file initially defines this
3429 variable as a sub-folder of
3430 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3431 <literallayout class='monospaced'>
3432 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
3433 </literallayout>
3434 </para>
3435
3436 <para>
3437 The
3438 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
3439 class uses the
3440 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
3441 the
3442 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
3443 task writes RPM packages into the appropriate folder.
3444 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003445 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3446 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003447 </para>
3448 </glossdef>
3449 </glossentry>
3450
3451 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
3452 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003453 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 -05003454 </info>
3455 <glossdef>
3456 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003457 Points to the area that the OpenEmbedded build system uses
3458 to place tarballs that are ready to be used outside of
3459 the build system.
3460 This variable applies only when
3461 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3462 contains "package_tar".
3463 </para>
3464
3465 <para>
3466 The BitBake configuration file initially defines this
3467 variable as a sub-folder of
3468 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3469 <literallayout class='monospaced'>
3470 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
3471 </literallayout>
3472 </para>
3473
3474 <para>
3475 The
3476 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
3477 class uses the
3478 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
3479 the
3480 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
3481 task writes TAR packages into the appropriate folder.
3482 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003483 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3484 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003485 </para>
3486 </glossdef>
3487 </glossentry>
3488
3489 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3490 <info>
3491 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3492 </info>
3493 <glossdef>
3494 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003495 When inheriting the
3496 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3497 class, the <filename>DEPLOYDIR</filename> points to a
3498 temporary work area for deployed files that is set in the
3499 <filename>deploy</filename> class as follows:
3500 <literallayout class='monospaced'>
3501 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3502 </literallayout>
3503 </para>
3504
3505 <para>
3506 Recipes inheriting the <filename>deploy</filename> class
3507 should copy files to be deployed into
3508 <filename>DEPLOYDIR</filename>, and the class will take
3509 care of copying them into
3510 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3511 afterwards.
3512 </para>
3513 </glossdef>
3514 </glossentry>
3515
3516 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3517 <info>
3518 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3519 </info>
3520 <glossdef>
3521 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003522 The package description used by package managers.
3523 If not set, <filename>DESCRIPTION</filename> takes
3524 the value of the
3525 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3526 variable.
3527 </para>
3528 </glossdef>
3529 </glossentry>
3530
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003531 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3532 <info>
3533 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3534 </info>
3535 <glossdef>
3536 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003537 The short name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003538 For information on the long name of the distribution, see
3539 the
3540 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
3541 variable.
3542 </para>
3543
3544 <para>
3545 The <filename>DISTRO</filename> variable corresponds to a
3546 distribution configuration file whose root name is the
3547 same as the variable's argument and whose filename
3548 extension is <filename>.conf</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003549 For example, the distribution configuration file for the
3550 Poky distribution is named <filename>poky.conf</filename>
3551 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003552 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003553 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003554 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003555 </para>
3556
3557 <para>
3558 Within that <filename>poky.conf</filename> file, the
3559 <filename>DISTRO</filename> variable is set as follows:
3560 <literallayout class='monospaced'>
3561 DISTRO = "poky"
3562 </literallayout>
3563 </para>
3564
3565 <para>
3566 Distribution configuration files are located in a
3567 <filename>conf/distro</filename> directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003568 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003569 that contains the distribution configuration.
3570 The value for <filename>DISTRO</filename> must not contain
3571 spaces, and is typically all lower-case.
3572 <note>
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003573 If the <filename>DISTRO</filename> variable is blank,
3574 a set of default configurations are used, which are
3575 specified within
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003576 <filename>meta/conf/distro/defaultsetup.conf</filename>
3577 also in the Source Directory.
3578 </note>
3579 </para>
3580 </glossdef>
3581 </glossentry>
3582
3583 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3584 <info>
3585 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3586 </info>
3587 <glossdef>
3588 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003589 Specifies a codename for the distribution being built.
3590 </para>
3591 </glossdef>
3592 </glossentry>
3593
3594 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3595 <info>
3596 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."
3597 </info>
3598 <glossdef>
3599 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003600 Specifies a list of distro-specific packages to add to all images.
3601 This variable takes affect through
3602 <filename>packagegroup-base</filename> so the
3603 variable only really applies to the more full-featured
3604 images that include <filename>packagegroup-base</filename>.
3605 You can use this variable to keep distro policy out of
3606 generic images.
3607 As with all other distro variables, you set this variable
3608 in the distro <filename>.conf</filename> file.
3609 </para>
3610 </glossdef>
3611 </glossentry>
3612
3613 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3614 <info>
3615 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."
3616 </info>
3617 <glossdef>
3618 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003619 Specifies a list of distro-specific packages to add to all images
3620 if the packages exist.
3621 The packages might not exist or be empty (e.g. kernel modules).
3622 The list of packages are automatically installed but you can
3623 remove them.
3624 </para>
3625 </glossdef>
3626 </glossentry>
3627
3628 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3629 <info>
3630 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3631 </info>
3632 <glossdef>
3633 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003634 The software support you want in your distribution for
3635 various features.
3636 You define your distribution features in the distribution
3637 configuration file.
3638 </para>
3639
3640 <para>
3641 In most cases, the presence or absence of a feature in
3642 <filename>DISTRO_FEATURES</filename> is translated to the
3643 appropriate option supplied to the configure script
3644 during the
3645 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3646 task for recipes that optionally support the feature.
3647 For example, specifying "x11" in
3648 <filename>DISTRO_FEATURES</filename>, causes
3649 every piece of software built for the target that can
3650 optionally support X11 to have its X11 support enabled.
3651 </para>
3652
3653 <para>
3654 Two more examples are Bluetooth and NFS support.
3655 For a more complete list of features that ships with the
3656 Yocto Project and that you can provide with this variable,
3657 see the
3658 "<link linkend='ref-features-distro'>Distro Features</link>"
3659 section.
3660 </para>
3661 </glossdef>
3662 </glossentry>
3663
3664 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3665 <info>
3666 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."
3667 </info>
3668 <glossdef>
3669 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003670 Features to be added to
3671 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3672 if not also present in
3673 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3674 </para>
3675
3676 <para>
3677 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3678 It is not intended to be user-configurable.
3679 It is best to just reference the variable to see which distro features are
3680 being backfilled for all distro configurations.
Andrew Geissler82c905d2020-04-13 13:39:40 -05003681 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003682 more information.
3683 </para>
3684 </glossdef>
3685 </glossentry>
3686
3687 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3688 <info>
3689 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3690 </info>
3691 <glossdef>
3692 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003693 Features from
3694 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3695 that should not be backfilled (i.e. added to
3696 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3697 during the build.
3698 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3699 more information.
3700 </para>
3701 </glossdef>
3702 </glossentry>
3703
3704 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3705 <info>
3706 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3707 </info>
3708 <glossdef>
3709 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003710 A convenience variable that gives you the default
3711 list of distro features with the exception of any
3712 features specific to the C library
3713 (<filename>libc</filename>).
3714 </para>
3715
3716 <para>
3717 When creating a custom distribution, you might find it
3718 useful to be able to reuse the default
3719 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3720 options without the need to write out the full set.
3721 Here is an example that uses
3722 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3723 custom distro configuration file:
3724 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -04003725 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003726 </literallayout>
3727 </para>
3728 </glossdef>
3729 </glossentry>
3730
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003731 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVE'><glossterm>DISTRO_FEATURES_FILTER_NATIVE</glossterm>
3732 <info>
3733 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."
3734 </info>
3735 <glossdef>
3736 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003737 Specifies a list of features that if present in
3738 the target
3739 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3740 value should be included in
3741 <filename>DISTRO_FEATURES</filename> when building native
3742 recipes.
3743 This variable is used in addition to the features
3744 filtered using the
3745 <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
3746 variable.
3747 </para>
3748 </glossdef>
3749 </glossentry>
3750
3751 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVESDK'><glossterm>DISTRO_FEATURES_FILTER_NATIVESDK</glossterm>
3752 <info>
3753 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."
3754 </info>
3755 <glossdef>
3756 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003757 Specifies a list of features that if present in the target
3758 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3759 value should be included in
3760 <filename>DISTRO_FEATURES</filename> when building
3761 nativesdk recipes.
3762 This variable is used in addition to the features
3763 filtered using the
3764 <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
3765 variable.
3766 </para>
3767 </glossdef>
3768 </glossentry>
3769
Brad Bishop19323692019-04-05 15:28:33 -04003770<!--
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003771 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3772 <info>
3773 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3774 </info>
3775 <glossdef>
3776 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003777 A convenience variable that specifies the list of distro
3778 features that are specific to the C library
3779 (<filename>libc</filename>).
3780 Typically, these features are prefixed with "libc-" and
3781 control which features are enabled at during the build
3782 within the C library itself.
3783 </para>
3784 </glossdef>
3785 </glossentry>
Brad Bishop19323692019-04-05 15:28:33 -04003786-->
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003787
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003788 <glossentry id='var-DISTRO_FEATURES_NATIVE'><glossterm>DISTRO_FEATURES_NATIVE</glossterm>
3789 <info>
3790 DISTRO_FEATURES_NATIVE[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes."
3791 </info>
3792 <glossdef>
3793 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003794 Specifies a list of features that should be included in
3795 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3796 when building native recipes.
3797 This variable is used in addition to the features
3798 filtered using the
3799 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>
3800 variable.
3801 </para>
3802 </glossdef>
3803 </glossentry>
3804
3805 <glossentry id='var-DISTRO_FEATURES_NATIVESDK'><glossterm>DISTRO_FEATURES_NATIVESDK</glossterm>
3806 <info>
3807 DISTRO_FEATURES_NATIVESDK[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes."
3808 </info>
3809 <glossdef>
3810 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003811 Specifies a list of features that should be included in
3812 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3813 when building nativesdk recipes.
3814 This variable is used in addition to the features
3815 filtered using the
3816 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>
3817 variable.
3818 </para>
3819 </glossdef>
3820 </glossentry>
3821
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003822 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3823 <info>
3824 DISTRO_NAME[doc] = "The long name of the distribution."
3825 </info>
3826 <glossdef>
3827 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003828 The long name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003829 For information on the short name of the distribution, see
3830 the
3831 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
3832 variable.
3833 </para>
3834
3835 <para>
3836 The <filename>DISTRO_NAME</filename> variable corresponds
3837 to a distribution configuration file whose root name is the
3838 same as the variable's argument and whose filename
3839 extension is <filename>.conf</filename>.
3840 For example, the distribution configuration file for the
3841 Poky distribution is named <filename>poky.conf</filename>
3842 and resides in the
3843 <filename>meta-poky/conf/distro</filename> directory of
3844 the
3845 <link linkend='source-directory'>Source Directory</link>.
3846 </para>
3847
3848 <para>
3849 Within that <filename>poky.conf</filename> file, the
3850 <filename>DISTRO_NAME</filename> variable is set as
3851 follows:
3852 <literallayout class='monospaced'>
3853 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
3854 </literallayout>
3855 </para>
3856
3857 <para>
3858 Distribution configuration files are located in a
3859 <filename>conf/distro</filename> directory within the
3860 <link linkend='metadata'>Metadata</link>
3861 that contains the distribution configuration.
3862 <note>
3863 If the <filename>DISTRO_NAME</filename> variable is
3864 blank, a set of default configurations are used, which
3865 are specified within
3866 <filename>meta/conf/distro/defaultsetup.conf</filename>
3867 also in the Source Directory.
3868 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003869 </para>
3870 </glossdef>
3871 </glossentry>
3872
3873 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3874 <info>
3875 DISTRO_VERSION[doc] = "The version of the distribution."
3876 </info>
3877 <glossdef>
3878 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003879 The version of the distribution.
3880 </para>
3881 </glossdef>
3882 </glossentry>
3883
3884 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3885 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003886 DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003887 </info>
3888 <glossdef>
3889 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003890 A colon-separated list of overrides specific to the
3891 current distribution.
3892 By default, this list includes the value of
3893 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
3894 </para>
3895
3896 <para>
3897 You can extend <filename>DISTROOVERRIDES</filename>
3898 to add extra overrides that should apply to
3899 the distribution.
3900 </para>
3901
3902 <para>
3903 The underlying mechanism behind
3904 <filename>DISTROOVERRIDES</filename> is simply that it
3905 is included in the default value of
3906 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003907 </para>
3908 </glossdef>
3909 </glossentry>
3910
3911 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
3912 <info>
3913 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."
3914 </info>
3915 <glossdef>
3916 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003917 The central download directory used by the build process to
3918 store downloads.
3919 By default, <filename>DL_DIR</filename> gets files
3920 suitable for mirroring for everything except Git
3921 repositories.
3922 If you want tarballs of Git repositories, use the
3923 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
3924 variable.
3925 </para>
3926
3927 <para>
3928 You can set this directory by defining the
3929 <filename>DL_DIR</filename> variable in the
3930 <filename>conf/local.conf</filename> file.
3931 This directory is self-maintaining and you should not have
3932 to touch it.
3933 By default, the directory is <filename>downloads</filename>
3934 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003935 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003936 <literallayout class='monospaced'>
3937 #DL_DIR ?= "${TOPDIR}/downloads"
3938 </literallayout>
3939 To specify a different download directory, simply remove
3940 the comment from the line and provide your directory.
3941 </para>
3942
3943 <para>
3944 During a first build, the system downloads many different
3945 source code tarballs from various upstream projects.
3946 Downloading can take a while, particularly if your network
3947 connection is slow.
3948 Tarballs are all stored in the directory defined by
3949 <filename>DL_DIR</filename> and the build system looks there
3950 first to find source tarballs.
3951 <note>
3952 When wiping and rebuilding, you can preserve this
3953 directory to speed up this part of subsequent
3954 builds.
3955 </note>
3956 </para>
3957
3958 <para>
3959 You can safely share this directory between multiple builds
3960 on the same development machine.
3961 For additional information on how the build process gets
3962 source files when working behind a firewall or proxy server,
3963 see this specific question in the
3964 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
3965 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003966 You can also refer to the
3967 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
3968 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003969 </para>
3970 </glossdef>
3971 </glossentry>
3972
3973 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
3974 <info>
3975 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."
3976 </info>
3977 <glossdef>
3978 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003979 When inheriting the
3980 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
3981 class, this variable sets the compression policy used when
3982 the OpenEmbedded build system compresses man pages and info
3983 pages.
3984 By default, the compression method used is gz (gzip).
3985 Other policies available are xz and bz2.
3986 </para>
3987
3988 <para>
3989 For information on policies and on how to use this
3990 variable, see the comments in the
3991 <filename>meta/classes/compress_doc.bbclass</filename> file.
3992 </para>
3993 </glossdef>
3994 </glossentry>
3995
3996 </glossdiv>
3997
3998 <glossdiv id='var-glossary-e'><title>E</title>
3999
4000 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
4001 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004002 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 -05004003 </info>
4004 <glossdef>
4005 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004006 When building bootable images (i.e. where
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004007 <filename>hddimg</filename>, <filename>iso</filename>,
4008 or <filename>wic.vmdk</filename> is in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004009 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
4010 the <filename>EFI_PROVIDER</filename> variable specifies
4011 the EFI bootloader to use.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004012 The default is "grub-efi", but "systemd-boot" can be used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004013 instead.
4014 </para>
4015
4016 <para>
4017 See the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004018 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05004019 and
4020 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
4021 classes for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004022 </para>
4023 </glossdef>
4024 </glossentry>
4025
4026 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
4027 <info>
4028 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."
4029 </info>
4030 <glossdef>
4031 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004032 Variable that controls which locales for
4033 <filename>glibc</filename> are generated during the
4034 build (useful if the target device has 64Mbytes
4035 of RAM or less).
4036 </para>
4037 </glossdef>
4038 </glossentry>
4039
4040 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
4041 <info>
4042 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."
4043 </info>
4044 <glossdef>
4045 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004046 When used with the
4047 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
4048 class, specifies the path used for storing the debug files
4049 created by the
4050 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
4051 which allows you to submit build errors you encounter to a
4052 central database.
4053 By default, the value of this variable is
4054 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
4055 </para>
4056
4057 <para>
4058 You can set <filename>ERR_REPORT_DIR</filename> to the path
4059 you want the error reporting tool to store the debug files
4060 as follows in your <filename>local.conf</filename> file:
4061 <literallayout class='monospaced'>
4062 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
4063 </literallayout>
4064 </para>
4065 </glossdef>
4066 </glossentry>
4067
4068 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
4069 <info>
4070 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
4071 </info>
4072 <glossdef>
4073 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004074 Specifies the quality assurance checks whose failures are
4075 reported as errors by the OpenEmbedded build system.
4076 You set this variable in your distribution configuration
4077 file.
4078 For a list of the checks you can control with this variable,
4079 see the
4080 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
4081 section.
4082 </para>
4083 </glossdef>
4084 </glossentry>
4085
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004086 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
4087 <info>
4088 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
4089 </info>
4090 <glossdef>
4091 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004092 Triggers the OpenEmbedded build system's shared libraries
4093 resolver to exclude an entire package when scanning for
4094 shared libraries.
4095 <note>
4096 The shared libraries resolver's functionality results
4097 in part from the internal function
4098 <filename>package_do_shlibs</filename>, which is part of
4099 the
4100 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
4101 task.
4102 You should be aware that the shared libraries resolver
4103 might implicitly define some dependencies between
4104 packages.
4105 </note>
4106 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
4107 similar to the
4108 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
4109 variable, which excludes a package's particular libraries
4110 only and not the whole package.
4111 </para>
4112
4113 <para>
4114 Use the
4115 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
4116 setting it to "1" for a particular package:
4117 <literallayout class='monospaced'>
4118 EXCLUDE_FROM_SHLIBS = "1"
4119 </literallayout>
4120 </para>
4121 </glossdef>
4122 </glossentry>
4123
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004124 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
4125 <info>
4126 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
4127 </info>
4128 <glossdef>
4129 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004130 Directs BitBake to exclude a recipe from world builds (i.e.
4131 <filename>bitbake world</filename>).
4132 During world builds, BitBake locates, parses and builds all
4133 recipes found in every layer exposed in the
4134 <filename>bblayers.conf</filename> configuration file.
4135 </para>
4136
4137 <para>
4138 To exclude a recipe from a world build using this variable,
4139 set the variable to "1" in the recipe.
4140 </para>
4141
4142 <note>
4143 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
4144 may still be built during a world build in order to satisfy
4145 dependencies of other recipes.
4146 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
4147 only ensures that the recipe is not explicitly added
4148 to the list of build targets in a world build.
4149 </note>
4150 </glossdef>
4151 </glossentry>
4152
4153 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
4154 <info>
4155 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."
4156 </info>
4157 <glossdef>
4158 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004159 Used with file and pathnames to create a prefix for a recipe's
4160 version based on the recipe's
4161 <link linkend='var-PE'><filename>PE</filename></link> value.
4162 If <filename>PE</filename> is set and greater than zero for a recipe,
4163 <filename>EXTENDPE</filename> becomes that value (e.g if
4164 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
4165 becomes "1_").
4166 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
4167 zero, <filename>EXTENDPE</filename> becomes "".</para>
4168 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
4169 variable for an example.
4170 </para>
4171 </glossdef>
4172 </glossentry>
4173
4174 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
4175 <info>
4176 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
4177 </info>
4178 <glossdef>
4179 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004180 The full package version specification as it appears on the
4181 final packages produced by a recipe.
4182 The variable's value is normally used to fix a runtime
4183 dependency to the exact same version of another package
4184 in the same recipe:
4185 <literallayout class='monospaced'>
4186 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
4187 </literallayout>
4188 </para>
4189
4190 <para>
4191 The dependency relationships are intended to force the
4192 package manager to upgrade these types of packages in
4193 lock-step.
4194 </para>
4195 </glossdef>
4196 </glossentry>
4197
4198 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
4199 <info>
4200 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
4201 </info>
4202 <glossdef>
4203 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004204 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4205 variable indicates that these tools are not in the
4206 source tree.
4207 </para>
4208
4209 <para>
4210 When kernel tools are available in the tree, they are
4211 preferred over any externally installed tools.
4212 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4213 variable tells the OpenEmbedded build system to prefer
4214 the installed external tools.
4215 See the
4216 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
4217 class in <filename>meta/classes</filename> to see how
4218 the variable is used.
4219 </para>
4220 </glossdef>
4221 </glossentry>
4222
4223 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
4224 <info>
4225 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
4226 </info>
4227 <glossdef>
4228 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004229 When inheriting the
4230 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4231 class, this variable points to the source tree, which is
4232 outside of the OpenEmbedded build system.
4233 When set, this variable sets the
4234 <link linkend='var-S'><filename>S</filename></link>
4235 variable, which is what the OpenEmbedded build system uses
4236 to locate unpacked recipe source code.
4237 </para>
4238
4239 <para>
4240 For more information on
4241 <filename>externalsrc.bbclass</filename>, see the
4242 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4243 section.
4244 You can also find information on how to use this variable
4245 in the
4246 "<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 -05004247 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004248 </para>
4249 </glossdef>
4250 </glossentry>
4251
4252 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
4253 <info>
4254 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."
4255 </info>
4256 <glossdef>
4257 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004258 When inheriting the
4259 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4260 class, this variable points to the directory in which the
4261 recipe's source code is built, which is outside of the
4262 OpenEmbedded build system.
4263 When set, this variable sets the
4264 <link linkend='var-B'><filename>B</filename></link>
4265 variable, which is what the OpenEmbedded build system uses
4266 to locate the Build Directory.
4267 </para>
4268
4269 <para>
4270 For more information on
4271 <filename>externalsrc.bbclass</filename>, see the
4272 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4273 section.
4274 You can also find information on how to use this variable
4275 in the
4276 "<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 -05004277 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004278 </para>
4279 </glossdef>
4280 </glossentry>
4281
4282 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
4283 <info>
4284 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
4285 </info>
4286 <glossdef>
4287 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004288 For recipes inheriting the
4289 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
4290 class, you can use <filename>EXTRA_AUTORECONF</filename> to
4291 specify extra options to pass to the
4292 <filename>autoreconf</filename> command that is
4293 executed during the
4294 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
4295 task.
4296 </para>
4297
4298 <para>
4299 The default value is "--exclude=autopoint".
4300 </para>
4301 </glossdef>
4302 </glossentry>
4303
4304 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
4305 <info>
4306 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."
4307 </info>
4308 <glossdef>
4309 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004310 A list of additional features to include in an image.
4311 When listing more than one feature, separate them with
4312 a space.
4313 </para>
4314
4315 <para>
4316 Typically, you configure this variable in your
4317 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004318 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004319 Although you can use this variable from within a recipe,
4320 best practices dictate that you do not.
4321 <note>
4322 To enable primary features from within the image
4323 recipe, use the
4324 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
4325 variable.
4326 </note>
4327 </para>
4328
4329 <para>
4330 Here are some examples of features you can add:
4331 <literallayout class='monospaced'>
4332"dbg-pkgs" - Adds -dbg packages for all installed packages
4333 including symbol information for debugging and
4334 profiling.
4335
4336"debug-tweaks" - Makes an image suitable for debugging.
4337 For example, allows root logins without
4338 passwords and enables post-installation
4339 logging. See the 'allow-empty-password'
4340 and 'post-install-logging' features in
4341 the "<link linkend='ref-features-image'>Image Features</link>" section for
4342 more information.
4343
4344"dev-pkgs" - Adds -dev packages for all installed packages.
4345 This is useful if you want to develop against
4346 the libraries in the image.
4347
4348"read-only-rootfs" - Creates an image whose root
4349 filesystem is read-only. See the
4350 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
4351 section in the Yocto Project
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004352 Development Tasks Manual for
4353 more information
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004354
4355"tools-debug" - Adds debugging tools such as gdb and
4356 strace.
4357
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004358"tools-sdk" - Adds development tools such as gcc, make,
4359 pkgconfig and so forth.
4360
4361"tools-testapps" - Adds useful testing tools such as
4362 ts_print, aplay, arecord and so
4363 forth.
4364
4365 </literallayout>
4366 </para>
4367
4368 <para>
4369 For a complete list of image features that ships with the
4370 Yocto Project, see the
4371 "<link linkend="ref-features-image">Image Features</link>"
4372 section.
4373 </para>
4374
4375 <para>
4376 For an example that shows how to customize your image by
4377 using this variable, see the
4378 "<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 -05004379 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004380 </para>
4381 </glossdef>
4382 </glossentry>
4383
4384 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
4385 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04004386 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 -05004387 </info>
4388 <glossdef>
4389 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004390 Specifies additional options for the image
4391 creation command that has been specified in
4392 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004393 When setting this variable, use an override for the
4394 associated image type.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004395 Here is an example:
4396 <literallayout class='monospaced'>
4397 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
4398 </literallayout>
4399 </para>
4400 </glossdef>
4401 </glossentry>
4402
4403 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
4404 <info>
4405 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."
4406 </info>
4407 <glossdef>
4408 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004409 A list of recipes to build that do not provide packages
4410 for installing into the root filesystem.
4411 </para>
4412
4413 <para>
4414 Sometimes a recipe is required to build the final image but is not
4415 needed in the root filesystem.
4416 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
4417 list these recipes and thus specify the dependencies.
4418 A typical example is a required bootloader in a machine configuration.
4419 </para>
4420
4421 <note>
4422 To add packages to the root filesystem, see the various
4423 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
4424 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
4425 variables.
4426 </note>
4427 </glossdef>
4428 </glossentry>
4429
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004430 <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
4431 <info>
4432 EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
4433 </info>
4434 <glossdef>
4435 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004436 A list of subdirectories of
4437 <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
4438 added to the beginning of the environment variable
4439 <filename>PATH</filename>.
4440 As an example, the following prepends
4441 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
4442 to <filename>PATH</filename>:
4443 <literallayout class='monospaced'>
4444 EXTRANATIVEPATH = "foo bar"
4445 </literallayout>
4446 </para>
4447 </glossdef>
4448 </glossentry>
4449
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004450 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
4451 <info>
4452 EXTRA_OECMAKE[doc] = "Additional cmake options."
4453 </info>
4454 <glossdef>
4455 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004456 Additional
4457 <ulink url='https://cmake.org/overview/'>CMake</ulink>
4458 options.
4459 See the
4460 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
4461 class for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004462 </para>
4463 </glossdef>
4464 </glossentry>
4465
4466 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
4467 <info>
4468 EXTRA_OECONF[doc] = "Additional configure script options."
4469 </info>
4470 <glossdef>
4471 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004472 Additional <filename>configure</filename> script options.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004473 See
4474 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
4475 for additional information on passing configure script
4476 options.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004477 </para>
4478 </glossdef>
4479 </glossentry>
4480
4481 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
4482 <info>
4483 EXTRA_OEMAKE[doc] = "Additional GNU make options."
4484 </info>
4485 <glossdef>
4486 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004487 Additional GNU <filename>make</filename> options.
4488 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004489
4490 <para>
4491 Because the <filename>EXTRA_OEMAKE</filename> defaults to
4492 "", you need to set the variable to specify any required
4493 GNU options.
4494 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004495
4496 <para>
4497 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4498 and
4499 <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
4500 also make use of
4501 <filename>EXTRA_OEMAKE</filename> to pass the required
4502 flags.
4503 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004504 </glossdef>
4505 </glossentry>
4506
4507 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
4508 <info>
4509 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."
4510 </info>
4511 <glossdef>
4512 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004513 When inheriting the
4514 <link linkend='ref-classes-scons'><filename>scons</filename></link>
4515 class, this variable specifies additional configuration
4516 options you want to pass to the
4517 <filename>scons</filename> command line.
4518 </para>
4519 </glossdef>
4520 </glossentry>
4521
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004522 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
4523 <info>
4524 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
4525 </info>
4526 <glossdef>
4527 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004528 When inheriting the
4529 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
4530 class, this variable provides image level user and group
4531 operations.
4532 This is a more global method of providing user and group
4533 configuration as compared to using the
4534 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4535 class, which ties user and group configurations to a
4536 specific recipe.
4537 </para>
4538
4539 <para>
4540 The set list of commands you can configure using the
4541 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4542 <filename>extrausers</filename> class.
4543 These commands map to the normal Unix commands of the same
4544 names:
4545 <literallayout class='monospaced'>
4546 # EXTRA_USERS_PARAMS = "\
4547 # useradd -p '' tester; \
4548 # groupadd developers; \
4549 # userdel nobody; \
4550 # groupdel -g video; \
4551 # groupmod -g 1020 developers; \
4552 # usermod -s /bin/sh tester; \
4553 # "
4554 </literallayout>
4555 </para>
4556 </glossdef>
4557 </glossentry>
4558
4559 </glossdiv>
4560
4561 <glossdiv id='var-glossary-f'><title>F</title>
4562
4563 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4564 <info>
4565 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."
4566 </info>
4567 <glossdef>
4568 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004569 Defines one or more packages to include in an image when
4570 a specific item is included in
4571 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4572 When setting the value, <filename>FEATURE_PACKAGES</filename>
4573 should have the name of the feature item as an override.
4574 Here is an example:
4575 <literallayout class='monospaced'>
4576 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4577 </literallayout>
4578 </para>
4579
4580 <para>
4581 In this example, if "widget" were added to
4582 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4583 <replaceable>package2</replaceable> would be included in the image.
4584 <note>
4585 Packages installed by features defined through
4586 <filename>FEATURE_PACKAGES</filename> are often package
4587 groups.
4588 While similarly named, you should not confuse the
4589 <filename>FEATURE_PACKAGES</filename> variable with
4590 package groups, which are discussed elsewhere in the
4591 documentation.
4592 </note>
4593 </para>
4594 </glossdef>
4595 </glossentry>
4596
4597 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4598 <info>
4599 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."
4600 </info>
4601 <glossdef>
4602 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004603 Points to the base URL of the server and location within
4604 the document-root that provides the metadata and
4605 packages required by OPKG to support runtime package
4606 management of IPK packages.
4607 You set this variable in your
4608 <filename>local.conf</filename> file.
4609 </para>
4610
4611 <para>
4612 Consider the following example:
4613 <literallayout class='monospaced'>
4614 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4615 </literallayout>
4616 This example assumes you are serving your packages over
4617 HTTP and your databases are located in a directory
4618 named <filename>BOARD-dir</filename>, which is underneath
4619 your HTTP server's document-root.
4620 In this case, the OpenEmbedded build system generates a set
4621 of configuration files for you in your target that work
4622 with the feed.
4623 </para>
4624 </glossdef>
4625 </glossentry>
4626
4627 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4628 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004629 FILES[doc] = "The list of directories or files that are placed in a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004630 </info>
4631 <glossdef>
4632 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004633 The list of files and directories that are placed in a
4634 package.
4635 The
4636 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
4637 variable lists the packages generated by a recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004638 </para>
4639
4640 <para>
4641 To use the <filename>FILES</filename> variable, provide a
4642 package name override that identifies the resulting package.
4643 Then, provide a space-separated list of files or paths
4644 that identify the files you want included as part of the
4645 resulting package.
4646 Here is an example:
4647 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004648 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004649 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004650 <note><title>Notes</title>
4651 <itemizedlist>
4652 <listitem><para>
4653 When specifying files or paths, you can pattern
4654 match using Python's
4655 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>
4656 syntax.
4657 For details on the syntax, see the
4658 documentation by following the previous link.
4659 </para></listitem>
4660 <listitem><para>
4661 When specifying paths as part of the
4662 <filename>FILES</filename> variable, it is
4663 good practice to use appropriate path
4664 variables.
4665 For example, use <filename>${sysconfdir}</filename>
4666 rather than <filename>/etc</filename>, or
4667 <filename>${bindir}</filename> rather than
4668 <filename>/usr/bin</filename>.
4669 You can find a list of these variables at the
4670 top of the
4671 <filename>meta/conf/bitbake.conf</filename>
4672 file in the
4673 <link linkend='source-directory'>Source Directory</link>.
4674 You will also find the default values of the
4675 various <filename>FILES_*</filename> variables
4676 in this file.
4677 </para></listitem>
4678 </itemizedlist>
4679 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004680 </para>
4681
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004682 <para>
4683 If some of the files you provide with the
4684 <filename>FILES</filename> variable are editable and you
4685 know they should not be overwritten during the package
4686 update process by the Package Management System (PMS), you
4687 can identify these files so that the PMS will not
4688 overwrite them.
4689 See the
4690 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4691 variable for information on how to identify these files to
4692 the PMS.
4693 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004694 </glossdef>
4695 </glossentry>
4696
4697 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4698 <info>
4699 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4700 </info>
4701 <glossdef>
4702 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004703 Defines the file specification to match
4704 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4705 In other words, <filename>FILES_SOLIBSDEV</filename>
4706 defines the full path name of the development symbolic link
4707 (symlink) for shared libraries on the target platform.
4708 </para>
4709
4710 <para>
4711 The following statement from the
4712 <filename>bitbake.conf</filename> shows how it is set:
4713 <literallayout class='monospaced'>
4714 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4715 </literallayout>
4716 </para>
4717 </glossdef>
4718 </glossentry>
4719
4720 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4721 <info>
4722 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4723 </info>
4724 <glossdef>
4725 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004726 Extends the search path the OpenEmbedded build system uses
4727 when looking for files and patches as it processes recipes
4728 and append files.
4729 The default directories BitBake uses when it processes
4730 recipes are initially defined by the
4731 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4732 variable.
4733 You can extend <filename>FILESPATH</filename> variable
4734 by using <filename>FILESEXTRAPATHS</filename>.
4735 </para>
4736
4737 <para>
4738 Best practices dictate that you accomplish this by using
4739 <filename>FILESEXTRAPATHS</filename> from within a
4740 <filename>.bbappend</filename> file and that you prepend
4741 paths as follows:
4742 <literallayout class='monospaced'>
4743 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4744 </literallayout>
4745 In the above example, the build system first looks for files
4746 in a directory that has the same name as the corresponding
4747 append file.
4748 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004749 <para>When extending
4750 <filename>FILESEXTRAPATHS</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004751 be sure to use the immediate expansion
4752 (<filename>:=</filename>) operator.
4753 Immediate expansion makes sure that BitBake evaluates
4754 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4755 at the time the directive is encountered rather than at
4756 some later time when expansion might result in a
4757 directory that does not contain the files you need.
4758 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004759
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004760 <para>Also, include the trailing separating colon
4761 character if you are prepending.
4762 The trailing colon character is necessary because you
4763 are directing BitBake to extend the path by prepending
4764 directories to the search path.</para>
4765 </note>
4766 Here is another common use:
4767 <literallayout class='monospaced'>
4768 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4769 </literallayout>
4770 In this example, the build system extends the
4771 <filename>FILESPATH</filename> variable to include a
4772 directory named <filename>files</filename> that is in the
4773 same directory as the corresponding append file.
4774 </para>
4775
4776 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004777 This next example specifically adds three paths:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004778 <literallayout class='monospaced'>
4779 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4780 </literallayout>
4781 </para>
4782
4783 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004784 A final example shows how you can extend the search path
4785 and include a
4786 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>-specific
4787 override, which is useful in a BSP layer:
4788 <literallayout class='monospaced'>
4789 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
4790 </literallayout>
4791 The previous statement appears in the
4792 <filename>linux-yocto-dev.bbappend</filename> file, which
4793 is found in the Yocto Project
Brad Bishop316dfdd2018-06-25 12:45:53 -04004794 <ulink url='&YOCTO_DOCS_OM_URL;#source-repositories'>Source Repositories</ulink>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004795 in
4796 <filename>meta-intel/common/recipes-kernel/linux</filename>.
4797 Here, the machine override is a special
4798 <link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
4799 definition for multiple <filename>meta-intel</filename>
4800 machines.
4801 <note>
4802 For a layer that supports a single BSP, the override
4803 could just be the value of <filename>MACHINE</filename>.
4804 </note>
4805 </para>
4806
4807 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004808 By prepending paths in <filename>.bbappend</filename>
4809 files, you allow multiple append files that reside in
4810 different layers but are used for the same recipe to
4811 correctly extend the path.
4812 </para>
4813 </glossdef>
4814 </glossentry>
4815
4816 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4817 <info>
4818 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4819 </info>
4820 <glossdef>
4821 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004822 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4823 used by the OpenEmbedded build system for creating
4824 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
Brad Bishop19323692019-04-05 15:28:33 -04004825 The <filename>FILESOVERRIDES</filename> variable uses
4826 overrides to automatically extend the
4827 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4828 variable.
4829 For an example of how that works, see the
4830 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4831 variable description.
4832 Additionally, you find more information on how overrides
4833 are handled in the
4834 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
4835 section of the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004836 </para>
4837
4838 <para>
4839 By default, the <filename>FILESOVERRIDES</filename>
4840 variable is defined as:
4841 <literallayout class='monospaced'>
4842 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4843 </literallayout>
4844
4845 <note>
4846 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4847 variable.
4848 The values match up with expected overrides and are
4849 used in an expected manner by the build system.
4850 </note>
4851 </para>
4852 </glossdef>
4853 </glossentry>
4854
4855 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4856 <info>
4857 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."
4858 </info>
4859 <glossdef>
4860 <para role="glossdeffirst">
Brad Bishop19323692019-04-05 15:28:33 -04004861 The default set of directories the OpenEmbedded build
4862 system uses when searching for patches and files.
4863 </para>
4864
4865 <para>
4866 During the build process, BitBake searches each directory
4867 in <filename>FILESPATH</filename> in the specified order
4868 when looking for files and patches specified by each
Brad Bishop316dfdd2018-06-25 12:45:53 -04004869 <filename>file://</filename> URI in a recipe's
4870 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
4871 statements.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004872 </para>
4873
4874 <para>
4875 The default value for the <filename>FILESPATH</filename>
4876 variable is defined in the <filename>base.bbclass</filename>
4877 class found in <filename>meta/classes</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004878 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004879 <literallayout class='monospaced'>
4880 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4881 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4882 </literallayout>
Brad Bishop19323692019-04-05 15:28:33 -04004883 The <filename>FILESPATH</filename> variable is automatically
4884 extended using the overrides from the
4885 <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link>
4886 variable.
4887 <note><title>Notes</title>
4888 <itemizedlist>
4889 <listitem><para>
4890 Do not hand-edit the
4891 <filename>FILESPATH</filename> variable.
4892 If you want the build system to look in
4893 directories other than the defaults, extend the
4894 <filename>FILESPATH</filename> variable by
4895 using the
4896 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4897 variable.
4898 </para></listitem>
4899 <listitem><para>
4900 Be aware that the default
4901 <filename>FILESPATH</filename> directories do
4902 not map to directories in custom layers
4903 where append files
4904 (<filename>.bbappend</filename>) are used.
4905 If you want the build system to find patches
4906 or files that reside with your append files,
4907 you need to extend the
4908 <filename>FILESPATH</filename> variable by
4909 using the <filename>FILESEXTRAPATHS</filename>
4910 variable.
4911 </para></listitem>
4912 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004913 </note>
Brad Bishop19323692019-04-05 15:28:33 -04004914 </para>
4915
4916 <para>
4917 You can take advantage of this searching behavior in
4918 useful ways.
4919 For example, consider a case where the following
4920 directory structure exists for general and machine-specific
4921 configurations:
4922 <literallayout class='monospaced'>
4923 files/defconfig
4924 files/MACHINEA/defconfig
4925 files/MACHINEB/defconfig
4926 </literallayout>
4927 Also in the example, the <filename>SRC_URI</filename>
4928 statement contains "file://defconfig".
4929 Given this scenario, you can set
4930 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
4931 to "MACHINEA" and cause the build system to use files
4932 from <filename>files/MACHINEA</filename>.
4933 Set <filename>MACHINE</filename> to "MACHINEB" and the
4934 build system uses files from
4935 <filename>files/MACHINEB</filename>.
4936 Finally, for any machine other than "MACHINEA" and
4937 "MACHINEB", the build system uses files from
4938 <filename>files/defconfig</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004939 </para>
4940
4941 <para>
4942 You can find out more about the patching process in the
4943 "<ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>Patching</ulink>"
4944 section in the Yocto Project Overview and Concepts Manual
4945 and the
4946 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code'>Patching Code</ulink>"
4947 section in the Yocto Project Development Tasks Manual.
4948 See the
4949 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
4950 task as well.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004951 </para>
4952 </glossdef>
4953 </glossentry>
4954
4955 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
4956 <info>
4957 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
4958 </info>
4959 <glossdef>
4960 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004961 Allows you to define your own file permissions settings table as part of
4962 your configuration for the packaging process.
4963 For example, suppose you need a consistent set of custom permissions for
4964 a set of groups and users across an entire work project.
4965 It is best to do this in the packages themselves but this is not always
4966 possible.
4967 </para>
4968
4969 <para>
4970 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
4971 is located in the <filename>meta/files</filename> folder in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004972 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004973 If you create your own file permissions setting table, you should place it in your
4974 layer or the distro's layer.
4975 </para>
4976
4977 <para>
4978 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
4979 <filename>conf/local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004980 <link linkend='build-directory'>Build Directory</link>, to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004981 point to your custom <filename>fs-perms.txt</filename>.
4982 You can specify more than a single file permissions setting table.
4983 The paths you specify to these files must be defined within the
4984 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
4985 </para>
4986
4987 <para>
4988 For guidance on how to create your own file permissions settings table file,
4989 examine the existing <filename>fs-perms.txt</filename>.
4990 </para>
4991 </glossdef>
4992 </glossentry>
4993
4994 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
4995 <info>
4996 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'."
4997 </info>
4998 <glossdef>
4999 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005000 When inheriting the
5001 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5002 class, this variable specifies the runtime dependencies
5003 for font packages.
5004 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
5005 is set to "fontconfig-utils".
5006 </para>
5007 </glossdef>
5008 </glossentry>
5009
5010 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
5011 <info>
5012 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
5013 </info>
5014 <glossdef>
5015 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005016 When inheriting the
5017 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5018 class, this variable identifies packages containing font
5019 files that need to be cached by Fontconfig.
5020 By default, the <filename>fontcache</filename> class assumes
5021 that fonts are in the recipe's main package
5022 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5023 Use this variable if fonts you need are in a package
5024 other than that main package.
5025 </para>
5026 </glossdef>
5027 </glossentry>
5028
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005029 <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
5030 <info>
5031 FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
5032 </info>
5033 <glossdef>
5034 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005035 Forces the removal of the packages listed in
5036 <filename>ROOTFS_RO_UNNEEDED</filename> during the
5037 generation of the root filesystem.
5038 </para>
5039
5040 <para>
5041 Set the variable to "1" to force the removal of these
5042 packages.
5043 </para>
5044 </glossdef>
5045 </glossentry>
5046
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005047 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
5048 <info>
5049 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'."
5050 </info>
5051 <glossdef>
5052 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005053 The options to pass in
5054 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
5055 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
5056 when compiling an optimized system.
5057 This variable defaults to
5058 "-O2 -pipe ${DEBUG_FLAGS}".
5059 </para>
5060 </glossdef>
5061 </glossentry>
5062 </glossdiv>
5063
5064 <glossdiv id='var-glossary-g'><title>G</title>
5065
Brad Bishop316dfdd2018-06-25 12:45:53 -04005066 <glossentry id='var-GCCPIE'><glossterm>GCCPIE</glossterm>
5067 <info>
5068 GCCPIE[doc] = "Enables Position Independent Executables (PIE) within the GNU C Compiler (GCC)."
5069 </info>
5070 <glossdef>
5071 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04005072 Enables Position Independent Executables (PIE) within the
5073 GNU C Compiler (GCC).
5074 Enabling PIE in the GCC makes Return Oriented Programming
5075 (ROP) attacks much more difficult to
5076 execute.
5077 </para>
5078
5079 <para>
5080 By default the <filename>security_flags.inc</filename>
5081 file enables PIE by setting the variable as follows:
5082 <literallayout class='monospaced'>
5083 GCCPIE ?= "--enable-default-pie"
5084 </literallayout>
5085 </para>
5086 </glossdef>
5087 </glossentry>
5088
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08005089 <glossentry id='var-GCCVERSION'><glossterm>GCCVERSION</glossterm>
5090 <info>
5091 GCCVERSION[doc] = "Specifies the default version of the GNU C Compiler (GCC) to use."
5092 </info>
5093 <glossdef>
5094 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08005095 Specifies the default version of the GNU C Compiler (GCC)
5096 used for compilation.
5097 By default, <filename>GCCVERSION</filename> is set to
5098 "8.x" in the
5099 <filename>meta/conf/distro/include/tcmode-default.inc</filename>
5100 include file:
5101 <literallayout class='monospaced'>
5102 GCCVERSION ?= "8.%"
5103 </literallayout>
5104 You can override this value by setting it in a configuration
5105 file such as the <filename>local.conf</filename>.
5106 </para>
5107 </glossdef>
5108 </glossentry>
5109
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005110 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
5111 <info>
5112 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
5113 </info>
5114 <glossdef>
5115 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005116 The minimal command and arguments to run the GNU Debugger.
5117 </para>
5118 </glossdef>
5119 </glossentry>
5120
5121 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
5122 <info>
5123 GITDIR[doc] = "The directory where Git clones will be stored."
5124 </info>
5125 <glossdef>
5126 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005127 The directory in which a local copy of a Git repository
5128 is stored when it is cloned.
5129 </para>
5130 </glossdef>
5131 </glossentry>
5132
5133 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
5134 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005135 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 -05005136 </info>
5137 <glossdef>
5138 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005139 Specifies the list of GLIBC locales to generate should you
Brad Bishop316dfdd2018-06-25 12:45:53 -04005140 not wish to generate all LIBC locals, which can be time
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005141 consuming.
5142 <note>
5143 If you specifically remove the locale
5144 <filename>en_US.UTF-8</filename>, you must set
5145 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
5146 appropriately.
5147 </note>
5148 </para>
5149
5150 <para>
5151 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
5152 in your <filename>local.conf</filename> file.
5153 By default, all locales are generated.
5154 <literallayout class='monospaced'>
5155 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
5156 </literallayout>
5157 </para>
5158 </glossdef>
5159 </glossentry>
5160
5161 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
5162 <info>
5163 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."
5164 </info>
5165 <glossdef>
5166 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005167 When inheriting the
5168 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5169 class, this variable
5170 specifies for a package what parameters should be passed
5171 to the <filename>groupadd</filename> command
5172 if you wish to add a group to the system when the package
5173 is installed.
5174 </para>
5175
5176 <para>
5177 Here is an example from the <filename>dbus</filename>
5178 recipe:
5179 <literallayout class='monospaced'>
5180 GROUPADD_PARAM_${PN} = "-r netdev"
5181 </literallayout>
5182 For information on the standard Linux shell command
5183 <filename>groupadd</filename>, see
5184 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
5185 </para>
5186 </glossdef>
5187 </glossentry>
5188
5189 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
5190 <info>
5191 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."
5192 </info>
5193 <glossdef>
5194 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005195 When inheriting the
5196 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5197 class, this variable
5198 specifies for a package what parameters should be passed
5199 to the <filename>groupmems</filename> command
5200 if you wish to modify the members of a group when the
5201 package is installed.
5202 </para>
5203
5204 <para>
5205 For information on the standard Linux shell command
5206 <filename>groupmems</filename>, see
5207 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
5208 </para>
5209 </glossdef>
5210 </glossentry>
5211
5212 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
5213 <info>
5214 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
5215 </info>
5216 <glossdef>
5217 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005218 Configures the GNU GRand Unified Bootloader (GRUB) to have
5219 graphics and serial in the boot menu.
5220 Set this variable to "1" in your
5221 <filename>local.conf</filename> or distribution
5222 configuration file to enable graphics and serial
5223 in the menu.
5224 </para>
5225
5226 <para>
5227 See the
5228 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5229 class for more information on how this variable is used.
5230 </para>
5231 </glossdef>
5232 </glossentry>
5233
5234 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
5235 <info>
5236 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
5237 </info>
5238 <glossdef>
5239 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005240 Additional options to add to the GNU GRand Unified
5241 Bootloader (GRUB) configuration.
5242 Use a semi-colon character (<filename>;</filename>) to
5243 separate multiple options.
5244 </para>
5245
5246 <para>
5247 The <filename>GRUB_OPTS</filename> variable is optional.
5248 See the
5249 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5250 class for more information on how this variable is used.
5251 </para>
5252 </glossdef>
5253 </glossentry>
5254
5255 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
5256 <info>
5257 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
5258 </info>
5259 <glossdef>
5260 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005261 Specifies the timeout before executing the default
5262 <filename>LABEL</filename> in the GNU GRand Unified
5263 Bootloader (GRUB).
5264 </para>
5265
5266 <para>
5267 The <filename>GRUB_TIMEOUT</filename> variable is optional.
5268 See the
5269 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5270 class for more information on how this variable is used.
5271 </para>
5272 </glossdef>
5273 </glossentry>
5274
5275 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
5276 <info>
5277 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."
5278 </info>
5279 <glossdef>
5280 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005281 When inheriting the
5282 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
5283 class, this variable specifies the packages that contain the
5284 GTK+ input method modules being installed when the modules
5285 are in packages other than the main package.
5286 </para>
5287 </glossdef>
5288 </glossentry>
5289
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005290 </glossdiv>
5291
5292 <glossdiv id='var-glossary-h'><title>H</title>
5293
5294 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
5295 <info>
5296 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
5297 </info>
5298 <glossdef>
5299 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005300 Website where more information about the software the recipe is building
5301 can be found.
5302 </para>
5303 </glossdef>
5304 </glossentry>
5305
5306 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
5307 <info>
5308 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
5309
5310 </info>
5311 <glossdef>
5312 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005313 The name of the target architecture, which is normally
5314 the same as
5315 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
5316 The OpenEmbedded build system supports many
5317 architectures.
5318 Here is an example list of architectures supported.
5319 This list is by no means complete as the architecture
5320 is configurable:
5321 <literallayout class='monospaced'>
5322 arm
5323 i586
5324 x86_64
5325 powerpc
5326 powerpc64
5327 mips
5328 mipsel
5329 </literallayout>
5330 </para>
5331 </glossdef>
5332 </glossentry>
5333
5334 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
5335 <info>
5336 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
5337 </info>
5338 <glossdef>
5339 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005340 Specifies architecture-specific compiler flags that are
5341 passed to the C compiler.
5342 </para>
5343
5344 <para>
5345 Default initialization for <filename>HOST_CC_ARCH</filename>
5346 varies depending on what is being built:
5347 <itemizedlist>
5348 <listitem><para>
5349 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
5350 when building for the target
5351 </para></listitem>
5352 <listitem><para>
5353 <filename>BUILD_CC_ARCH</filename>
5354 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005355 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005356 </para></listitem>
5357 <listitem><para>
5358 <filename>BUILDSDK_CC_ARCH</filename>
5359 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005360 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005361 </para></listitem>
5362 </itemizedlist>
5363 </para>
5364 </glossdef>
5365 </glossentry>
5366
5367 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
5368 <info>
5369 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
5370 </info>
5371 <glossdef>
5372 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005373 Specifies the name of the target operating system, which
5374 is normally the same as the
5375 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
5376 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005377 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005378 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005379 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005380 </para>
5381 </glossdef>
5382 </glossentry>
5383
5384 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
5385 <info>
5386 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
5387 </info>
5388 <glossdef>
5389 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005390 Specifies the prefix for the cross-compile toolchain.
5391 <filename>HOST_PREFIX</filename> is normally the same as
5392 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
5393 </para>
5394 </glossdef>
5395 </glossentry>
5396
5397 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
5398 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005399 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 -05005400 </info>
5401 <glossdef>
5402 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005403 Specifies the system, including the architecture and the
5404 operating system, for which the build is occurring
5405 in the context of the current recipe.
5406 </para>
5407
5408 <para>
5409 The OpenEmbedded build system automatically sets this
5410 variable based on
5411 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
5412 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
5413 and
5414 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
5415 variables.
5416 <note>
5417 You do not need to set the variable yourself.
5418 </note>
5419 </para>
5420
5421 <para>
5422 Consider these two examples:
5423 <itemizedlist>
5424 <listitem><para>Given a native recipe on a 32-bit
5425 x86 machine running Linux, the value is
5426 "i686-linux".
5427 </para></listitem>
5428 <listitem><para>Given a recipe being built for a
5429 little-endian MIPS target running Linux,
5430 the value might be "mipsel-linux".
5431 </para></listitem>
5432 </itemizedlist>
5433 </para>
5434 </glossdef>
5435 </glossentry>
5436
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005437 <glossentry id='var-HOSTTOOLS'><glossterm>HOSTTOOLS</glossterm>
5438 <info>
5439 HOSTTOOLS[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5440 </info>
5441 <glossdef>
5442 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005443 A space-separated list (filter) of tools on the build host
5444 that should be allowed to be called from within build tasks.
5445 Using this filter helps reduce the possibility of host
5446 contamination.
5447 If a tool specified in the value of
5448 <filename>HOSTTOOLS</filename> is not found on the
5449 build host, the OpenEmbedded build system produces
5450 an error and the build is not started.
5451 </para>
5452
5453 <para>
5454 For additional information, see
5455 <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>.
5456 </para>
5457 </glossdef>
5458 </glossentry>
5459
5460 <glossentry id='var-HOSTTOOLS_NONFATAL'><glossterm>HOSTTOOLS_NONFATAL</glossterm>
5461 <info>
5462 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."
5463 </info>
5464 <glossdef>
5465 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005466 A space-separated list (filter) of tools on the build host
5467 that should be allowed to be called from within build tasks.
5468 Using this filter helps reduce the possibility of host
5469 contamination.
5470 Unlike
5471 <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -04005472 the OpenEmbedded build system does not produce an error
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005473 if a tool specified in the value of
5474 <filename>HOSTTOOLS_NONFATAL</filename> is not found on the
5475 build host.
5476 Thus, you can use <filename>HOSTTOOLS_NONFATAL</filename>
5477 to filter optional host tools.
5478 </para>
5479 </glossdef>
5480 </glossentry>
5481
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005482 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
5483 <info>
5484 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
5485 </info>
5486 <glossdef>
5487 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005488 Specifies the name of the vendor.
5489 <filename>HOST_VENDOR</filename> is normally the same as
Brad Bishop316dfdd2018-06-25 12:45:53 -04005490 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005491 </para>
5492 </glossdef>
5493 </glossentry>
5494
5495 </glossdiv>
5496
5497 <glossdiv id='var-glossary-i'><title>I</title>
5498
5499 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
5500 <info>
5501 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
5502 </info>
5503 <glossdef>
5504 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005505 Disables or enables the <filename>icecc</filename>
5506 (Icecream) function.
5507 For more information on this function and best practices
5508 for using this variable, see the
5509 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
5510 section.
5511 </para>
5512
5513 <para>
5514 Setting this variable to "1" in your
5515 <filename>local.conf</filename> disables the function:
5516 <literallayout class='monospaced'>
5517 ICECC_DISABLED ??= "1"
5518 </literallayout>
5519 To enable the function, set the variable as follows:
5520 <literallayout class='monospaced'>
5521 ICECC_DISABLED = ""
5522 </literallayout>
5523 </para>
5524 </glossdef>
5525 </glossentry>
5526
5527 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
5528 <info>
5529 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
5530 </info>
5531 <glossdef>
5532 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005533 Points to the <filename>icecc-create-env</filename> script
5534 that you provide.
5535 This variable is used by the
5536 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5537 class.
5538 You set this variable in your
5539 <filename>local.conf</filename> file.
5540 </para>
5541
5542 <para>
5543 If you do not point to a script that you provide, the
5544 OpenEmbedded build system uses the default script provided
5545 by the <filename>icecc-create-env.bb</filename> recipe,
5546 which is a modified version and not the one that comes with
5547 <filename>icecc</filename>.
5548 </para>
5549 </glossdef>
5550 </glossentry>
5551
5552 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
5553 <info>
5554 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
5555 </info>
5556 <glossdef>
5557 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005558 Extra options passed to the <filename>make</filename>
5559 command during the
5560 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
5561 task that specify parallel compilation.
5562 This variable usually takes the form of
5563 "-j <replaceable>x</replaceable>", where
5564 <replaceable>x</replaceable> represents the maximum
5565 number of parallel threads <filename>make</filename> can
5566 run.
5567 <note>
5568 The options passed affect builds on all enabled
5569 machines on the network, which are machines running the
5570 <filename>iceccd</filename> daemon.
5571 </note>
5572 </para>
5573
5574 <para>
5575 If your enabled machines support multiple cores,
5576 coming up with the maximum number of parallel threads
5577 that gives you the best performance could take some
5578 experimentation since machine speed, network lag,
5579 available memory, and existing machine loads can all
5580 affect build time.
5581 Consequently, unlike the
5582 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5583 variable, there is no rule-of-thumb for setting
5584 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
5585 optimal performance.
5586 </para>
5587
5588 <para>
5589 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
5590 the build system does not use it (i.e. the system does
5591 not detect and assign the number of cores as is done with
5592 <filename>PARALLEL_MAKE</filename>).
5593 </para>
5594 </glossdef>
5595 </glossentry>
5596
5597 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
5598 <info>
5599 ICECC_PATH[doc] = "The location of the icecc binary."
5600 </info>
5601 <glossdef>
5602 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005603 The location of the <filename>icecc</filename> binary.
5604 You can set this variable in your
5605 <filename>local.conf</filename> file.
5606 If your <filename>local.conf</filename> file does not define
5607 this variable, the
5608 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5609 class attempts to define it by locating
5610 <filename>icecc</filename> using <filename>which</filename>.
5611 </para>
5612 </glossdef>
5613 </glossentry>
5614
5615 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
5616 <info>
5617 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
5618 </info>
5619 <glossdef>
5620 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005621 Identifies user classes that you do not want the
5622 Icecream distributed compile support to consider.
5623 This variable is used by the
5624 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5625 class.
5626 You set this variable in your
5627 <filename>local.conf</filename> file.
5628 </para>
5629
5630 <para>
5631 When you list classes using this variable, you are
5632 "blacklisting" them from distributed compilation across
5633 remote hosts.
5634 Any classes you list will be distributed and compiled
5635 locally.
5636 </para>
5637 </glossdef>
5638 </glossentry>
5639
5640 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5641 <info>
5642 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5643 </info>
5644 <glossdef>
5645 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005646 Identifies user recipes that you do not want the
5647 Icecream distributed compile support to consider.
5648 This variable is used by the
5649 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5650 class.
5651 You set this variable in your
5652 <filename>local.conf</filename> file.
5653 </para>
5654
5655 <para>
5656 When you list packages using this variable, you are
5657 "blacklisting" them from distributed compilation across
5658 remote hosts.
5659 Any packages you list will be distributed and compiled
5660 locally.
5661 </para>
5662 </glossdef>
5663 </glossentry>
5664
5665 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5666 <info>
5667 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."
5668 </info>
5669 <glossdef>
5670 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005671 Identifies user recipes that use an empty
5672 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5673 variable that you want to force remote distributed
5674 compilation on using the Icecream distributed compile
5675 support.
5676 This variable is used by the
5677 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5678 class.
5679 You set this variable in your
5680 <filename>local.conf</filename> file.
5681 </para>
5682 </glossdef>
5683 </glossentry>
5684
5685 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5686 <info>
5687 IMAGE_BASENAME[doc] = "The base name of image output files."
5688 </info>
5689 <glossdef>
5690 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005691 The base name of image output files.
5692 This variable defaults to the recipe name
5693 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5694 </para>
5695 </glossdef>
5696 </glossentry>
5697
5698 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5699 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005700 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 -05005701 </info>
5702 <glossdef>
5703 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005704 A space-separated list of files installed into the
Brad Bishop316dfdd2018-06-25 12:45:53 -04005705 boot partition when preparing an image using the Wic tool
5706 with the <filename>bootimg-partition</filename> source
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005707 plugin.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005708 By default, the files are installed under the same name as
5709 the source files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005710 To change the installed name, separate it from the
5711 original name with a semi-colon (;).
5712 Source files need to be located in
5713 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5714 Here are two examples:
5715
5716 <literallayout class="monospaced">
5717 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5718 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5719 </literallayout>
5720 </para>
5721
5722 <para>
5723 Alternatively, source files can be picked up using
5724 a glob pattern.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005725 In this case, the destination file must have the same name
5726 as the base name of the source file path.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005727 To install files into a directory within the
5728 target location, pass its name after a semi-colon
5729 (;).
5730 Here are two examples:
5731 <literallayout class="monospaced">
5732 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5733 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5734 </literallayout>
5735 The first example installs all files from
5736 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5737 into the root of the target partition.
5738 The second example installs the same files into a
5739 <filename>boot</filename> directory within the
5740 target partition.
5741 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005742
5743 <para>
5744 You can find information on how to use the Wic tool in the
5745 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
5746 section of the Yocto Project Development Tasks Manual.
5747 Reference material for Wic is located in the
5748 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-kickstart'>OpenEmbedded Kickstart (.wks) Reference</ulink>"
5749 chapter.
5750 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005751 </glossdef>
5752 </glossentry>
5753
5754 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5755 <info>
5756 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5757 </info>
5758 <glossdef>
5759 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005760 A list of classes that all images should inherit.
5761 You typically use this variable to specify the list of
5762 classes that register the different types of images
5763 the OpenEmbedded build system creates.
5764 </para>
5765
5766 <para>
5767 The default value for <filename>IMAGE_CLASSES</filename> is
5768 <filename>image_types</filename>.
5769 You can set this variable in your
5770 <filename>local.conf</filename> or in a distribution
5771 configuration file.
5772 </para>
5773
5774 <para>
5775 For more information, see
5776 <filename>meta/classes/image_types.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005777 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005778 </para>
5779 </glossdef>
5780 </glossentry>
5781
5782 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5783 <info>
5784 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)."
5785 </info>
5786 <glossdef>
5787 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005788 Specifies the command to create the image file for a
5789 specific image type, which corresponds to the value set
5790 set in
5791 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5792 (e.g. <filename>ext3</filename>,
5793 <filename>btrfs</filename>, and so forth).
5794 When setting this variable, you should use
5795 an override for the associated type.
5796 Here is an example:
5797 <literallayout class='monospaced'>
5798 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5799 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5800 ${EXTRA_IMAGECMD}"
5801 </literallayout>
5802 </para>
5803
5804 <para>
5805 You typically do not need to set this variable unless
5806 you are adding support for a new image type.
5807 For more examples on how to set this variable, see the
5808 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5809 class file, which is
5810 <filename>meta/classes/image_types.bbclass</filename>.
5811 </para>
5812 </glossdef>
5813 </glossentry>
5814
5815 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5816 <info>
5817 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."
5818 </info>
5819 <glossdef>
5820 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005821 Specifies one or more files that contain custom device
5822 tables that are passed to the
5823 <filename>makedevs</filename> command as part of creating
5824 an image.
5825 These files list basic device nodes that should be
5826 created under <filename>/dev</filename> within the image.
5827 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5828 <filename>files/device_table-minimal.txt</filename> is
5829 used, which is located by
5830 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5831 For details on how you should write device table files,
5832 see <filename>meta/files/device_table-minimal.txt</filename>
5833 as an example.
5834 </para>
5835 </glossdef>
5836 </glossentry>
5837
5838 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5839 <info>
5840 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5841 </info>
5842 <glossdef>
5843 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005844 The primary list of features to include in an image.
5845 Typically, you configure this variable in an image recipe.
5846 Although you can use this variable from your
5847 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005848 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005849 best practices dictate that you do not.
5850 <note>
5851 To enable extra features from outside the image recipe,
5852 use the
5853 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5854 </note>
5855 </para>
5856
5857 <para>
5858 For a list of image features that ships with the Yocto
5859 Project, see the
5860 "<link linkend="ref-features-image">Image Features</link>"
5861 section.
5862 </para>
5863
5864 <para>
5865 For an example that shows how to customize your image by
5866 using this variable, see the
5867 "<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 -05005868 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005869 </para>
5870 </glossdef>
5871 </glossentry>
5872
5873 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5874 <info>
5875 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5876 </info>
5877 <glossdef>
5878 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005879 Specifies the formats the OpenEmbedded build system uses
5880 during the build when creating the root filesystem.
5881 For example, setting <filename>IMAGE_FSTYPES</filename>
5882 as follows causes the build system to create root
5883 filesystems using two formats: <filename>.ext3</filename>
5884 and <filename>.tar.bz2</filename>:
5885 <literallayout class='monospaced'>
5886 IMAGE_FSTYPES = "ext3 tar.bz2"
5887 </literallayout>
5888 </para>
5889
5890 <para>
5891 For the complete list of supported image formats from which
5892 you can choose, see
5893 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5894 </para>
5895
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005896 <note><title>Notes</title>
5897 <itemizedlist>
5898 <listitem><para>
Brad Bishop19323692019-04-05 15:28:33 -04005899 If an image recipe uses the "inherit image" line
5900 and you are setting
5901 <filename>IMAGE_FSTYPES</filename> inside the
5902 recipe, you must set
5903 <filename>IMAGE_FSTYPES</filename> prior to
5904 using the "inherit image" line.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005905 </para></listitem>
5906 <listitem><para>
5907 Due to the way the OpenEmbedded build system
5908 processes this variable, you cannot update its
5909 contents by using <filename>_append</filename> or
5910 <filename>_prepend</filename>.
5911 You must use the <filename>+=</filename>
5912 operator to add one or more options to the
5913 <filename>IMAGE_FSTYPES</filename> variable.
5914 </para></listitem>
5915 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005916 </note>
5917 </glossdef>
5918 </glossentry>
5919
5920 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
5921 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005922 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 -05005923 </info>
5924 <glossdef>
5925 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04005926 Used by recipes to specify the packages to install into an
5927 image through the
5928 <link linkend='ref-classes-image'><filename>image</filename></link>
5929 class.
5930 Use the <filename>IMAGE_INSTALL</filename> variable with
5931 care to avoid ordering issues.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005932 </para>
5933
5934 <para>
5935 Image recipes set <filename>IMAGE_INSTALL</filename>
5936 to specify the packages to install into an image through
5937 <filename>image.bbclass</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005938 Additionally, "helper" classes such as the
5939 <link linkend='ref-classes-core-image'><filename>core-image</filename></link>
5940 class exist that can take lists used with
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005941 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005942 and turn them into auto-generated entries in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005943 <filename>IMAGE_INSTALL</filename> in addition to its
5944 default contents.
5945 </para>
5946
5947 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005948 When you use this variable, it is best to use it as follows:
5949 <literallayout class='monospaced'>
5950 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
5951 </literallayout>
5952 Be sure to include the space between the quotation character
5953 and the start of the package name or names.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005954 <note><title>Caution</title>
5955 <itemizedlist>
5956 <listitem><para>
5957 When working with a
5958 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
5959 image, do not use the
5960 <filename>IMAGE_INSTALL</filename> variable to
5961 specify packages for installation.
5962 Instead, use the
5963 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
5964 variable, which allows the initial RAM
5965 filesystem (initramfs) recipe to use a fixed
5966 set of packages and not be affected by
5967 <filename>IMAGE_INSTALL</filename>.
5968 For information on creating an initramfs, see
5969 the
5970 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
5971 section in the Yocto Project Development Tasks
5972 Manual.
5973 </para></listitem>
5974 <listitem><para>
5975 Using <filename>IMAGE_INSTALL</filename> with
5976 the
5977 <ulink url='&YOCTO_DOCS_BB_URL;#appending-and-prepending'><filename>+=</filename></ulink>
5978 BitBake operator within the
5979 <filename>/conf/local.conf</filename> file or
5980 from within an image recipe is not recommended.
5981 Use of this operator in these ways can cause
5982 ordering issues.
5983 Since <filename>core-image.bbclass</filename>
5984 sets <filename>IMAGE_INSTALL</filename> to a
5985 default value using the
5986 <ulink url='&YOCTO_DOCS_BB_URL;#setting-a-default-value'><filename>?=</filename></ulink>
5987 operator, using a <filename>+=</filename>
5988 operation against
5989 <filename>IMAGE_INSTALL</filename> results in
5990 unexpected behavior when used within
5991 <filename>conf/local.conf</filename>.
5992 Furthermore, the same operation from within
5993 an image recipe may or may not succeed
5994 depending on the specific situation.
5995 In both these cases, the behavior is contrary
5996 to how most users expect the
5997 <filename>+=</filename> operator to work.
5998 </para></listitem>
5999 </itemizedlist>
6000 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006001 </para>
6002 </glossdef>
6003 </glossentry>
6004
6005 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
6006 <info>
6007 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
6008 </info>
6009 <glossdef>
6010 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006011 Specifies the list of locales to install into the image
6012 during the root filesystem construction process.
6013 The OpenEmbedded build system automatically splits locale
6014 files, which are used for localization, into separate
6015 packages.
6016 Setting the <filename>IMAGE_LINGUAS</filename> variable
6017 ensures that any locale packages that correspond to packages
6018 already selected for installation into the image are also
6019 installed.
6020 Here is an example:
6021 <literallayout class='monospaced'>
6022 IMAGE_LINGUAS = "pt-br de-de"
6023 </literallayout>
6024 </para>
6025
6026 <para>
6027 In this example, the build system ensures any Brazilian
6028 Portuguese and German locale files that correspond to
6029 packages in the image are installed (i.e.
6030 <filename>*-locale-pt-br</filename>
6031 and <filename>*-locale-de-de</filename> as well as
6032 <filename>*-locale-pt</filename>
6033 and <filename>*-locale-de</filename>, since some software
6034 packages only provide locale files by language and not by
6035 country-specific language).
6036 </para>
6037
6038 <para>
6039 See the
6040 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
6041 variable for information on generating GLIBC locales.
6042 </para>
6043 </glossdef>
6044 </glossentry>
6045
6046 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
6047 <info>
6048 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
6049 </info>
6050 <glossdef>
6051 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006052 The manifest file for the image.
6053 This file lists all the installed packages that make up
6054 the image.
6055 The file contains package information on a line-per-package
6056 basis as follows:
6057 <literallayout class='monospaced'>
6058 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
6059 </literallayout>
6060 </para>
6061
6062 <para>
6063 The
6064 <link linkend='ref-classes-image'><filename>image</filename></link>
6065 class defines the manifest file as follows:
6066 <literallayout class='monospaced'>
6067 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
6068 </literallayout>
6069 The location is derived using the
6070 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
6071 and
6072 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
6073 variables.
6074 You can find information on how the image
6075 is created in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006076 "<ulink url='&YOCTO_DOCS_OM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
6077 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006078 </para>
6079 </glossdef>
6080 </glossentry>
6081
6082 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
6083 <info>
6084 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
6085 </info>
6086 <glossdef>
6087 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006088 The name of the output image files minus the extension.
6089 This variable is derived using the
6090 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
6091 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6092 and
6093 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6094 variables:
6095 <literallayout class='monospaced'>
6096 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
6097 </literallayout>
6098 </para>
6099 </glossdef>
6100 </glossentry>
6101
6102 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
6103 <info>
6104 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."
6105 </info>
6106 <glossdef>
6107 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006108 Defines a multiplier that the build system applies to the initial image
6109 size for cases when the multiplier times the returned disk usage value
6110 for the image is greater than the sum of
6111 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6112 and
6113 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
6114 The result of the multiplier applied to the initial image size creates
6115 free disk space in the image as overhead.
6116 By default, the build process uses a multiplier of 1.3 for this variable.
6117 This default value results in 30% free disk space added to the image when this
6118 method is used to determine the final generated image size.
6119 You should be aware that post install scripts and the package management
6120 system uses disk space inside this overhead area.
6121 Consequently, the multiplier does not produce an image with
6122 all the theoretical free disk space.
6123 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6124 for information on how the build system determines the overall image size.
6125 </para>
6126
6127 <para>
6128 The default 30% free disk space typically gives the image enough room to boot
6129 and allows for basic post installs while still leaving a small amount of
6130 free disk space.
6131 If 30% free space is inadequate, you can increase the default value.
6132 For example, the following setting gives you 50% free space added to the image:
6133 <literallayout class='monospaced'>
6134 IMAGE_OVERHEAD_FACTOR = "1.5"
6135 </literallayout>
6136 </para>
6137
6138 <para>
6139 Alternatively, you can ensure a specific amount of free disk space is added
6140 to the image by using the
6141 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6142 variable.
6143 </para>
6144 </glossdef>
6145 </glossentry>
6146
6147 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
6148 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006149 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 -05006150 </info>
6151 <glossdef>
6152 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04006153 Defines the package type (i.e. DEB, RPM, IPK, or TAR) used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006154 by the OpenEmbedded build system.
6155 The variable is defined appropriately by the
6156 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
6157 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
6158 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
6159 or
6160 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
6161 class.
6162 <note><title>Warning</title>
6163 The <filename>package_tar</filename> class is broken
6164 and is not supported.
6165 It is recommended that you do not use it.
6166 </note>
6167 </para>
6168
6169 <para>
6170 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006171 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006172 and
6173 <link linkend='ref-classes-image'><filename>image</filename></link>
6174 classes use the <filename>IMAGE_PKGTYPE</filename> for
6175 packaging up images and SDKs.
6176 </para>
6177
6178 <para>
6179 You should not set the <filename>IMAGE_PKGTYPE</filename>
6180 manually.
6181 Rather, the variable is set indirectly through the
6182 appropriate
6183 <link linkend='ref-classes-package'><filename>package_*</filename></link>
6184 class using the
6185 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
6186 variable.
6187 The OpenEmbedded build system uses the first package type
6188 (e.g. DEB, RPM, or IPK) that appears with the variable
6189 <note>
6190 Files using the <filename>.tar</filename> format are
6191 never used as a substitute packaging format for DEB,
6192 RPM, and IPK formatted files for your image or SDK.
6193 </note>
6194 </para>
6195 </glossdef>
6196 </glossentry>
6197
6198 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
6199 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006200 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 -05006201 </info>
6202 <glossdef>
6203 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006204 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006205 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006206 output files.
6207 You can specify functions separated by semicolons:
6208 <literallayout class='monospaced'>
6209 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6210 </literallayout>
6211 </para>
6212
6213 <para>
6214 If you need to pass the root filesystem path to a command
6215 within the function, you can use
6216 <filename>${IMAGE_ROOTFS}</filename>, which points to
6217 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006218 See the
6219 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6220 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006221 </para>
6222 </glossdef>
6223 </glossentry>
6224
6225 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
6226 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006227 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 -05006228 </info>
6229 <glossdef>
6230 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006231 Specifies a list of functions to call before the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006232 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006233 output files.
6234 You can specify functions separated by semicolons:
6235 <literallayout class='monospaced'>
6236 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6237 </literallayout>
6238 </para>
6239
6240 <para>
6241 If you need to pass the root filesystem path to a command
6242 within the function, you can use
6243 <filename>${IMAGE_ROOTFS}</filename>, which points to
6244 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006245 See the
6246 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6247 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006248 </para>
6249 </glossdef>
6250 </glossentry>
6251
6252 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
6253 <info>
6254 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
6255 </info>
6256 <glossdef>
6257 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006258 The location of the root filesystem while it is under
6259 construction (i.e. during the
6260 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
6261 task).
6262 This variable is not configurable.
6263 Do not change it.
6264 </para>
6265 </glossdef>
6266 </glossentry>
6267
6268 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
6269 <info>
6270 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
6271 </info>
6272 <glossdef>
6273 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006274 Specifies the alignment for the output image file in
6275 Kbytes.
6276 If the size of the image is not a multiple of
6277 this value, then the size is rounded up to the nearest
6278 multiple of the value.
6279 The default value is "1".
6280 See
6281 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
6282 for additional information.
6283 </para>
6284 </glossdef>
6285 </glossentry>
6286
6287 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
6288 <info>
6289 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
6290 </info>
6291 <glossdef>
6292 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006293 Defines additional free disk space created in the image in Kbytes.
6294 By default, this variable is set to "0".
6295 This free disk space is added to the image after the build system determines
6296 the image size as described in
6297 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
6298 </para>
6299
6300 <para>
6301 This variable is particularly useful when you want to ensure that a
6302 specific amount of free disk space is available on a device after an image
6303 is installed and running.
6304 For example, to be sure 5 Gbytes of free disk space is available, set the
6305 variable as follows:
6306 <literallayout class='monospaced'>
6307 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
6308 </literallayout>
6309 </para>
6310
6311 <para>
6312 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
6313 of extra space with the line:
6314 <literallayout class='monospaced'>
6315 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
6316 </literallayout>
6317 </para>
6318 </glossdef>
6319 </glossentry>
6320
6321 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
6322 <info>
6323 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
6324 </info>
6325 <glossdef>
6326 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006327 Defines the size in Kbytes for the generated image.
6328 The OpenEmbedded build system determines the final size for the generated
6329 image using an algorithm that takes into account the initial disk space used
6330 for the generated image, a requested size for the image, and requested
6331 additional free disk space to be added to the image.
6332 Programatically, the build system determines the final size of the
6333 generated image as follows:
6334 <literallayout class='monospaced'>
6335 if (image-du * overhead) &lt; rootfs-size:
6336 internal-rootfs-size = rootfs-size + xspace
6337 else:
6338 internal-rootfs-size = (image-du * overhead) + xspace
6339
6340 where:
6341
6342 image-du = Returned value of the du command on
6343 the image.
6344
6345 overhead = IMAGE_OVERHEAD_FACTOR
6346
6347 rootfs-size = IMAGE_ROOTFS_SIZE
6348
6349 internal-rootfs-size = Initial root filesystem
6350 size before any modifications.
6351
6352 xspace = IMAGE_ROOTFS_EXTRA_SPACE
6353 </literallayout>
6354 </para>
6355
6356 <para>
6357 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
6358 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
6359 variables for related information.
6360<!-- In the above example, <filename>overhead</filename> is defined by the
6361 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
6362 variable, <filename>xspace</filename> is defined by the
6363 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6364 variable, and <filename>du</filename> is the results of the disk usage command
6365 on the initially generated image. -->
6366 </para>
6367 </glossdef>
6368 </glossentry>
6369
6370 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
6371 <info>
6372 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
6373 </info>
6374 <glossdef>
6375 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006376 Specifies a dependency from one image type on another.
6377 Here is an example from the
6378 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6379 class:
6380 <literallayout class='monospaced'>
6381 IMAGE_TYPEDEP_live = "ext3"
6382 </literallayout>
6383 </para>
6384
6385 <para>
6386 In the previous example, the variable ensures that when
6387 "live" is listed with the
6388 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6389 variable, the OpenEmbedded build system produces an
6390 <filename>ext3</filename> image first since one of the
6391 components of the live
6392 image is an <filename>ext3</filename>
6393 formatted partition containing the root
6394 filesystem.
6395 </para>
6396 </glossdef>
6397 </glossentry>
6398
6399 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
6400 <info>
6401 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
6402 </info>
6403 <glossdef>
6404 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006405 Specifies the complete list of supported image types
6406 by default:
6407 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006408 btrfs
Brad Bishop79641f22019-09-10 07:20:22 -04006409 container
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006410 cpio
6411 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006412 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006413 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006414 cpio.xz
6415 cramfs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006416 ext2
6417 ext2.bz2
6418 ext2.gz
6419 ext2.lzma
6420 ext3
6421 ext3.gz
6422 ext4
6423 ext4.gz
Brad Bishop79641f22019-09-10 07:20:22 -04006424 f2fs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006425 hddimg
6426 iso
6427 jffs2
6428 jffs2.sum
6429 multiubi
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006430 squashfs
Brad Bishop79641f22019-09-10 07:20:22 -04006431 squashfs-lz4
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006432 squashfs-lzo
6433 squashfs-xz
6434 tar
6435 tar.bz2
6436 tar.gz
6437 tar.lz4
6438 tar.xz
Andrew Geissler4b740dc2020-05-05 08:54:39 -05006439 tar.zst
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006440 ubi
6441 ubifs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006442 wic
6443 wic.bz2
6444 wic.gz
6445 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006446 </literallayout>
6447 </para>
6448
6449 <para>
6450 For more information about these types of images, see
6451 <filename>meta/classes/image_types*.bbclass</filename>
6452 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006453 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006454 </para>
6455 </glossdef>
6456 </glossentry>
6457
6458 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
6459 <info>
6460 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
6461 </info>
6462 <glossdef>
6463 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006464 Helps define the recipe revision for recipes that share
6465 a common <filename>include</filename> file.
6466 You can think of this variable as part of the recipe revision
6467 as set from within an include file.
6468 </para>
6469
6470 <para>
6471 Suppose, for example, you have a set of recipes that
6472 are used across several projects.
6473 And, within each of those recipes the revision
6474 (its <link linkend='var-PR'><filename>PR</filename></link>
6475 value) is set accordingly.
6476 In this case, when the revision of those recipes changes,
6477 the burden is on you to find all those recipes and
6478 be sure that they get changed to reflect the updated
6479 version of the recipe.
6480 In this scenario, it can get complicated when recipes
6481 that are used in many places and provide common functionality
6482 are upgraded to a new revision.
6483 </para>
6484
6485 <para>
6486 A more efficient way of dealing with this situation is
6487 to set the <filename>INC_PR</filename> variable inside
6488 the <filename>include</filename> files that the recipes
6489 share and then expand the <filename>INC_PR</filename>
6490 variable within the recipes to help
6491 define the recipe revision.
6492 </para>
6493
6494 <para>
6495 The following provides an example that shows how to use
6496 the <filename>INC_PR</filename> variable
6497 given a common <filename>include</filename> file that
6498 defines the variable.
6499 Once the variable is defined in the
6500 <filename>include</filename> file, you can use the
6501 variable to set the <filename>PR</filename> values in
6502 each recipe.
6503 You will notice that when you set a recipe's
6504 <filename>PR</filename> you can provide more granular
6505 revisioning by appending values to the
6506 <filename>INC_PR</filename> variable:
6507 <literallayout class='monospaced'>
Brad Bishopb1114e52019-02-13 07:56:10 -05006508 recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
6509 recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
6510 recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
6511 recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006512 </literallayout>
6513 The first line of the example establishes the baseline
6514 revision to be used for all recipes that use the
6515 <filename>include</filename> file.
6516 The remaining lines in the example are from individual
6517 recipes and show how the <filename>PR</filename> value
6518 is set.
6519 </para>
6520 </glossdef>
6521 </glossentry>
6522
6523 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
6524 <info>
6525 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
6526 </info>
6527 <glossdef>
6528 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006529 Specifies a space-separated list of license names
6530 (as they would appear in
6531 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
6532 that should be excluded from the build.
6533 Recipes that provide no alternatives to listed incompatible
6534 licenses are not built.
6535 Packages that are individually licensed with the specified
6536 incompatible licenses will be deleted.
6537 </para>
6538
6539 <note>
6540 This functionality is only regularly tested using
6541 the following setting:
6542 <literallayout class='monospaced'>
6543 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
6544 </literallayout>
6545 Although you can use other settings, you might be required
6546 to remove dependencies on or provide alternatives to
6547 components that are required to produce a functional system
6548 image.
6549 </note>
Andrew Geissler82c905d2020-04-13 13:39:40 -05006550
6551 <note><title>Tips</title>
6552 It is possible to define a list of licenses that are allowed
6553 to be used instead of the licenses that are excluded. To do
6554 this, define a
6555 variable <filename>COMPATIBLE_LICENSES</filename> with the
6556 names of the licences that are allowed. Then
6557 define <filename>INCOMPATIBLE_LICENSE</filename> as:
6558 <literallayout class='monospaced'>
6559 INCOMPATIBLE_LICENSE = "${@' '.join(sorted(set(d.getVar('AVAILABLE_LICENSES').split()) - set(d.getVar('COMPATIBLE_LICENSES').split())))}"
6560 </literallayout>
6561 This will result
6562 in <filename>INCOMPATIBLE_LICENSE</filename> containing the
6563 names of all licences
6564 from <link linkend='var-AVAILABLE_LICENSES'><filename>AVAILABLE_LICENSES</filename></link>
6565 except the ones specified
6566 in <filename>COMPATIBLE_LICENSES</filename>, thus only
6567 allowing the latter licences to be used.
6568 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006569 </glossdef>
6570 </glossentry>
6571
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006572 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
6573 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006574 INHERIT[doc] = "Causes the named class or classes to be inherited globally."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006575 </info>
6576 <glossdef>
6577 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006578 Causes the named class or classes to be inherited globally.
6579 Anonymous functions in the class or classes
6580 are not executed for the
6581 base configuration and in each individual recipe.
6582 The OpenEmbedded build system ignores changes to
6583 <filename>INHERIT</filename> in individual recipes.
6584 </para>
6585
6586 <para>
6587 For more information on <filename>INHERIT</filename>, see
6588 the
6589 "<ulink url="&YOCTO_DOCS_BB_URL;#inherit-configuration-directive"><filename>INHERIT</filename> Configuration Directive</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04006590 section in the Bitbake User Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006591 </para>
6592 </glossdef>
6593 </glossentry>
6594
6595 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
6596 <info>
6597 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6598 </info>
6599 <glossdef>
6600 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006601 Lists classes that will be inherited at the
6602 distribution level.
6603 It is unlikely that you want to edit this variable.
6604 </para>
6605
6606 <para>
6607 The default value of the variable is set as follows in the
6608 <filename>meta/conf/distro/defaultsetup.conf</filename>
6609 file:
6610 <literallayout class='monospaced'>
6611 INHERIT_DISTRO ?= "debian devshell sstate license"
6612 </literallayout>
6613 </para>
6614 </glossdef>
6615 </glossentry>
6616
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006617 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
6618 <info>
6619 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
6620 </info>
6621 <glossdef>
6622 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006623 Prevents the default dependencies, namely the C compiler
6624 and standard C library (libc), from being added to
6625 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
6626 This variable is usually used within recipes that do not
6627 require any compilation using the C compiler.
6628 </para>
6629
6630 <para>
6631 Set the variable to "1" to prevent the default dependencies
6632 from being added.
6633 </para>
6634 </glossdef>
6635 </glossentry>
6636
6637 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
6638 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006639 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 -05006640 </info>
6641 <glossdef>
6642 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006643 Prevents the OpenEmbedded build system from splitting
6644 out debug information during packaging.
6645 By default, the build system splits out debugging
6646 information during the
6647 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
6648 task.
6649 For more information on how debug information is split out,
6650 see the
6651 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
6652 variable.
6653 </para>
6654
6655 <para>
6656 To prevent the build system from splitting out
6657 debug information during packaging, set the
6658 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
6659 as follows:
6660 <literallayout class='monospaced'>
6661 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6662 </literallayout>
6663 </para>
6664 </glossdef>
6665 </glossentry>
6666
6667 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
6668 <info>
6669 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
6670 </info>
6671 <glossdef>
6672 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006673 If set to "1", causes the build to not strip binaries in
6674 resulting packages and prevents the
6675 <filename>-dbg</filename> package from containing the
6676 source files.
6677 </para>
6678
6679 <para>
6680 By default, the OpenEmbedded build system strips
6681 binaries and puts the debugging symbols into
6682 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
6683 Consequently, you should not set
6684 <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
6685 to debug in general.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006686 </para>
6687 </glossdef>
6688 </glossentry>
6689
Brad Bishop19323692019-04-05 15:28:33 -04006690 <glossentry id='var-INHIBIT_SYSROOT_STRIP'><glossterm>INHIBIT_SYSROOT_STRIP</glossterm>
6691 <info>
6692 INHIBIT_SYSROOT_STRIP[doc] = "If set to "1", causes the build to not strip binaries in the resulting sysroot."
6693 </info>
6694 <glossdef>
6695 <para role="glossdeffirst">
Brad Bishop19323692019-04-05 15:28:33 -04006696 If set to "1", causes the build to not strip binaries in
6697 the resulting sysroot.
6698 </para>
6699
6700 <para>
6701 By default, the OpenEmbedded build system strips
6702 binaries in the resulting sysroot.
6703 When you specifically set the
6704 <filename>INHIBIT_SYSROOT_STRIP</filename> variable to
6705 "1" in your recipe, you inhibit this stripping.
6706 </para>
6707
6708 <para>
6709 If you want to use this variable, include the
6710 <link linkend='ref-classes-staging'><filename>staging</filename></link>
6711 class.
6712 This class uses a <filename>sys_strip()</filename>
6713 function to test for the variable and acts accordingly.
6714 <note>
6715 Use of the <filename>INHIBIT_SYSROOT_STRIP</filename>
6716 variable occurs in rare and special circumstances.
6717 For example, suppose you are building bare-metal
6718 firmware by using an external GCC toolchain.
6719 Furthermore, even if the toolchain's binaries are
6720 strippable, other files exist that are needed for the
6721 build that are not strippable.
6722 </note>
6723 </para>
6724 </glossdef>
6725 </glossentry>
6726
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006727 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6728 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006729 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 -05006730 </info>
6731 <glossdef>
6732 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006733 Defines the format for the output image of an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006734 RAM filesystem (initramfs), which is used during boot.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006735 Supported formats are the same as those supported by the
6736 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6737 variable.
6738 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006739
6740 <para>
6741 The default value of this variable, which is set in the
6742 <filename>meta/conf/bitbake.conf</filename> configuration
6743 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006744 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006745 is "cpio.gz".
6746 The Linux kernel's initramfs mechanism, as opposed to the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006747 initial RAM filesystem
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006748 <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
6749 mechanism, expects an optionally compressed cpio
6750 archive.
6751 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006752 </glossdef>
6753 </glossentry>
6754
6755 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6756 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006757 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 -05006758 </info>
6759 <glossdef>
6760 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006761 Specifies the
6762 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
6763 name of an image recipe that is used to build an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006764 RAM filesystem (initramfs) image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006765 In other words, the <filename>INITRAMFS_IMAGE</filename>
6766 variable causes an additional recipe to be built as
6767 a dependency to whatever root filesystem recipe you
6768 might be using (e.g. <filename>core-image-sato</filename>).
6769 The initramfs image recipe you provide should set
6770 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6771 to
6772 <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
6773 </para>
6774
6775 <para>
6776 An initramfs image provides a temporary root filesystem
6777 used for early system initialization (e.g. loading of
6778 modules needed to locate and mount the "real" root
6779 filesystem).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006780 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006781 See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
6782 recipe in the
6783 <link linkend='source-directory'>Source Directory</link>
6784 for an example initramfs recipe.
6785 To select this sample recipe as the one built
6786 to provide the initramfs image,
6787 set <filename>INITRAMFS_IMAGE</filename> to
6788 "core-image-minimal-initramfs".
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006789 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006790 </para>
6791
6792 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006793 You can also find more information by referencing the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006794 <filename>meta-poky/conf/local.conf.sample.extended</filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006795 configuration file in the Source Directory,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006796 the
6797 <link linkend='ref-classes-image'><filename>image</filename></link>
6798 class, and the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006799 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006800 class to see how to use the
6801 <filename>INITRAMFS_IMAGE</filename> variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006802 </para>
6803
6804 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006805 If <filename>INITRAMFS_IMAGE</filename> is empty, which is
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006806 the default, then no initramfs image is built.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006807 </para>
6808
6809 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006810 For more information, you can also see the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006811 <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
6812 variable, which allows the generated image to be bundled
6813 inside the kernel image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006814 Additionally, for information on creating an initramfs
6815 image, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006816 "<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 -05006817 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006818 </para>
6819 </glossdef>
6820 </glossentry>
6821
6822 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6823 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006824 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 -05006825 </info>
6826 <glossdef>
6827 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006828 Controls whether or not the image recipe specified by
6829 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006830 is run through an extra pass
6831 (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
6832 during kernel compilation in order to build a single binary
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006833 that contains both the kernel image and the initial RAM
6834 filesystem (initramfs) image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006835 This makes use of the
6836 <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
6837 kernel feature.
6838 <note>
6839 Using an extra compilation pass to bundle the initramfs
6840 avoids a circular dependency between the kernel recipe and
6841 the initramfs recipe should the initramfs include kernel
6842 modules.
6843 Should that be the case, the initramfs recipe depends on
6844 the kernel for the kernel modules, and the kernel depends
6845 on the initramfs recipe since the initramfs is bundled
6846 inside the kernel image.
6847 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006848 </para>
6849
6850 <para>
6851 The combined binary is deposited into the
6852 <filename>tmp/deploy</filename> directory, which is part
6853 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006854 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006855 </para>
6856
6857 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006858 Setting the variable to "1" in a configuration file causes the
6859 OpenEmbedded build system to generate a kernel image with the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006860 initramfs specified in <filename>INITRAMFS_IMAGE</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006861 bundled within:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006862 <literallayout class='monospaced'>
6863 INITRAMFS_IMAGE_BUNDLE = "1"
6864 </literallayout>
6865 By default, the
6866 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6867 class sets this variable to a null string as follows:
6868 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006869 INITRAMFS_IMAGE_BUNDLE ?= ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006870 </literallayout>
6871 <note>
6872 You must set the
6873 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6874 a configuration file.
6875 You cannot set the variable in a recipe file.
6876 </note>
6877 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006878 <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 -05006879 file for additional information.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006880 Also, for information on creating an initramfs, see the
6881 "<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 -05006882 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006883 </para>
6884 </glossdef>
6885 </glossentry>
6886
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006887 <glossentry id='var-INITRAMFS_LINK_NAME'><glossterm>INITRAMFS_LINK_NAME</glossterm>
6888 <info>
6889 INITRAMFS_LINK_NAME[doc] = "The link name of the initial RAM filesystem image."
6890 </info>
6891 <glossdef>
6892 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006893 The link name of the initial RAM filesystem image.
6894 This variable is set in the
6895 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
6896 file as follows:
6897 <literallayout class='monospaced'>
6898 INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}"
6899 </literallayout>
6900 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
6901 variable, which is set in the same file, has the following
6902 value:
6903 <literallayout class='monospaced'>
6904 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
6905 </literallayout>
6906 </para>
6907
6908 <para>
6909 See the
6910 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
6911 variable for additional information.
6912 </para>
6913 </glossdef>
6914 </glossentry>
6915
6916 <glossentry id='var-INITRAMFS_NAME'><glossterm>INITRAMFS_NAME</glossterm>
6917 <info>
6918 INITRAMFS_NAME[doc] = "The base name of the initial RAM filesystem image."
6919 </info>
6920 <glossdef>
6921 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006922 The base name of the initial RAM filesystem image.
6923 This variable is set in the
6924 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
6925 file as follows:
6926 <literallayout class='monospaced'>
6927 INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
6928 </literallayout>
6929 The value of the
6930 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
6931 variable, which is set in the same file, has the following
6932 value:
6933 <literallayout class='monospaced'>
6934 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
6935 </literallayout>
6936 </para>
6937 </glossdef>
6938 </glossentry>
6939
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006940 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6941 <info>
6942 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6943 </info>
6944 <glossdef>
6945 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006946 Indicates list of filesystem images to concatenate and use
6947 as an initial RAM disk (<filename>initrd</filename>).
6948 </para>
6949
6950 <para>
6951 The <filename>INITRD</filename> variable is an optional
6952 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006953 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006954 class.
6955 </para>
6956 </glossdef>
6957 </glossentry>
6958
6959 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6960 <info>
6961 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."
6962 </info>
6963 <glossdef>
6964 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006965 When building a "live" bootable image (i.e. when
6966 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6967 contains "live"), <filename>INITRD_IMAGE</filename>
6968 specifies the image recipe that should be built
6969 to provide the initial RAM disk image.
6970 The default value is "core-image-minimal-initramfs".
6971 </para>
6972
6973 <para>
6974 See the
6975 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6976 class for more information.
6977 </para>
6978 </glossdef>
6979 </glossentry>
6980
6981 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6982 <info>
6983 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6984 </info>
6985 <glossdef>
6986 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006987 The filename of the initialization script as installed to
6988 <filename>${sysconfdir}/init.d</filename>.
6989 </para>
6990
6991 <para>
6992 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6993 The variable is mandatory.
6994 </para>
6995 </glossdef>
6996 </glossentry>
6997
6998 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
6999 <info>
7000 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."
7001 </info>
7002 <glossdef>
7003 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007004 A list of the packages that contain initscripts.
7005 If multiple packages are specified, you need to append the package name
7006 to the other <filename>INITSCRIPT_*</filename> as an override.
7007 </para>
7008
7009 <para>
7010 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
7011 The variable is optional and defaults to the
7012 <link linkend='var-PN'><filename>PN</filename></link> variable.
7013 </para>
7014 </glossdef>
7015 </glossentry>
7016
7017 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
7018 <info>
7019 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."
7020 </info>
7021 <glossdef>
7022 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007023 Specifies the options to pass to <filename>update-rc.d</filename>.
7024 Here is an example:
7025 <literallayout class='monospaced'>
7026 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
7027 </literallayout>
7028 </para>
7029
7030 <para>
7031 In this example, the script has a runlevel of 99,
7032 starts the script in initlevels 2 and 5, and
7033 stops the script in levels 0, 1 and 6.
7034 </para>
7035
7036 <para>
7037 The variable's default value is "defaults", which is
7038 set in the
7039 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
7040 class.
7041 </para>
7042
7043 <para>
7044 The value in
7045 <filename>INITSCRIPT_PARAMS</filename> is passed through
7046 to the <filename>update-rc.d</filename> command.
7047 For more information on valid parameters, please see the
7048 <filename>update-rc.d</filename> manual page at
7049 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
7050 </para>
7051 </glossdef>
7052 </glossentry>
7053
7054 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
7055 <info>
7056 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
7057 </info>
7058 <glossdef>
7059 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007060 Specifies the QA checks to skip for a specific package
7061 within a recipe.
7062 For example, to skip the check for symbolic link
7063 <filename>.so</filename> files in the main package of a
7064 recipe, add the following to the recipe.
7065 The package name override must be used, which in this
7066 example is <filename>${PN}</filename>:
7067 <literallayout class='monospaced'>
7068 INSANE_SKIP_${PN} += "dev-so"
7069 </literallayout>
7070 </para>
7071
7072 <para>
7073 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
7074 section for a list of the valid QA checks you can
7075 specify using this variable.
7076 </para>
7077 </glossdef>
7078 </glossentry>
7079
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007080 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
7081 <info>
7082 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
7083 </info>
7084 <glossdef>
7085 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007086 By default, the <filename>tzdata</filename> recipe packages
7087 an <filename>/etc/timezone</filename> file.
7088 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
7089 variable to "0" at the configuration level to disable this
7090 behavior.
7091 </para>
7092 </glossdef>
7093 </glossentry>
7094
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007095 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
7096 <info>
7097 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
7098 </info>
7099 <glossdef>
7100 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007101 When the IPK backend is in use and package management
7102 is enabled on the target, you can use this variable to
7103 set up <filename>opkg</filename> in the target image
7104 to point to package feeds on a nominated server.
7105 Once the feed is established, you can perform
7106 installations or upgrades using the package manager
7107 at runtime.
7108 </para>
7109 </glossdef>
7110 </glossentry>
7111
7112<!--
7113 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
7114 <glossdef>
7115 <para>
7116 An environment variable that defines the directory where
7117 post installation hooks are installed for the
7118 post install environment.
7119 This variable is fixed as follows:
7120 <literallayout class='monospaced'>
7121 ${WORKDIR}/intercept_scripts
7122 </literallayout>
7123 </para>
7124
7125 <para>
7126 After installation of a target's root filesystem,
7127 post installation scripts, which are essentially bash scripts,
7128 are all executed just a single time.
7129 Limiting execution of these scripts minimizes installation
7130 time that would be lengthened due to certain packages
7131 triggering redundant operations.
7132 For example, consider the installation of font packages
7133 as a common example.
7134 Without limiting the execution of post installation scripts,
7135 all font directories would be rescanned to create the
7136 cache after each individual font package was installed.
7137 </para>
7138
7139 <para>
7140 Do not edit the <filename>INTERCEPT_DIR</filename>
7141 variable.
7142 </para>
7143 </glossdef>
7144 </glossentry>
7145-->
7146
7147 </glossdiv>
7148
7149<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
7150<!-- </glossdiv>-->
7151
7152 <glossdiv id='var-glossary-k'><title>K</title>
7153
7154 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
7155 <info>
7156 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
7157 </info>
7158 <glossdef>
7159 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007160 Defines the kernel architecture used when assembling
7161 the configuration.
7162 Architectures supported for this release are:
7163 <literallayout class='monospaced'>
7164 powerpc
7165 i386
7166 x86_64
7167 arm
7168 qemu
7169 mips
7170 </literallayout>
7171 </para>
7172
7173 <para>
7174 You define the <filename>KARCH</filename> variable in the
7175 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7176 </para>
7177 </glossdef>
7178 </glossentry>
7179
7180 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
7181 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007182 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 -05007183 </info>
7184 <glossdef>
7185 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007186 A regular expression used by the build process to explicitly
7187 identify the kernel branch that is validated, patched,
7188 and configured during a build.
7189 You must set this variable to ensure the exact kernel
7190 branch you want is being used by the build process.
7191 </para>
7192
7193 <para>
7194 Values for this variable are set in the kernel's recipe
7195 file and the kernel's append file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007196 For example, if you are using the
7197 <filename>linux-yocto_4.12</filename> kernel, the kernel
7198 recipe file is the
7199 <filename>meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007200 file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007201 <filename>KBRANCH</filename> is set as follows in that
7202 kernel recipe file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007203 <literallayout class='monospaced'>
7204 KBRANCH ?= "standard/base"
7205 </literallayout>
7206 </para>
7207
7208 <para>
7209 This variable is also used from the kernel's append file
7210 to identify the kernel branch specific to a particular
7211 machine or target hardware.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007212 Continuing with the previous kernel example, the kernel's
7213 append file (i.e.
7214 <filename>linux-yocto_4.12.bbappend</filename>) is located
7215 in the BSP layer for a given machine.
7216 For example, the append file for the Beaglebone,
7217 EdgeRouter, and generic versions of both 32 and 64-bit IA
7218 machines (<filename>meta-yocto-bsp</filename>) is named
7219 <filename>meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend</filename>.
7220 Here are the related statements from that append file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007221 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007222 KBRANCH_genericx86 = "standard/base"
7223 KBRANCH_genericx86-64 = "standard/base"
7224 KBRANCH_edgerouter = "standard/edgerouter"
7225 KBRANCH_beaglebone = "standard/beaglebone"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007226 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007227 The <filename>KBRANCH</filename> statements identify
7228 the kernel branch to use when building for each
7229 supported BSP.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007230 </para>
7231 </glossdef>
7232 </glossentry>
7233
7234 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
7235 <info>
7236 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
7237 </info>
7238 <glossdef>
7239 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007240 When used with the
7241 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
7242 class, specifies an "in-tree" kernel configuration file
7243 for use during a kernel build.
7244 </para>
7245
7246 <para>
7247 Typically, when using a <filename>defconfig</filename> to
7248 configure a kernel during a build, you place the
7249 file in your layer in the same manner as you would
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007250 place patch files and configuration fragment files (i.e.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007251 "out-of-tree").
7252 However, if you want to use a <filename>defconfig</filename>
7253 file that is part of the kernel tree (i.e. "in-tree"),
7254 you can use the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007255 <filename>KBUILD_DEFCONFIG</filename> variable and append
7256 the
7257 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
7258 variable to point to the <filename>defconfig</filename>
7259 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007260 </para>
7261
7262 <para>
7263 To use the variable, set it in the append file for your
7264 kernel recipe using the following form:
7265 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007266 KBUILD_DEFCONFIG_<replaceable>KMACHINE</replaceable> ?= <replaceable>defconfig_file</replaceable>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007267 </literallayout>
7268 Here is an example from a "raspberrypi2"
7269 <filename>KMACHINE</filename> build that uses a
7270 <filename>defconfig</filename> file named
7271 "bcm2709_defconfig":
7272 <literallayout class='monospaced'>
7273 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
7274 </literallayout>
7275 As an alternative, you can use the following within your
7276 append file:
7277 <literallayout class='monospaced'>
7278 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
7279 </literallayout>
7280 For more information on how to use the
7281 <filename>KBUILD_DEFCONFIG</filename> variable, see the
7282 "<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 -04007283 section in the Yocto Project Linux Kernel Development
7284 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007285 </para>
7286 </glossdef>
7287 </glossentry>
7288
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007289 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
7290 <info>
7291 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
7292 </info>
7293 <glossdef>
7294 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007295 Specifies an alternate kernel image type for creation in
7296 addition to the kernel image type specified using the
7297 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
7298 variable.
7299 </para>
7300 </glossdef>
7301 </glossentry>
7302
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007303 <glossentry id='var-KERNEL_ARTIFACT_NAME'><glossterm>KERNEL_ARTIFACT_NAME</glossterm>
7304 <info>
7305 KERNEL_ARTIFACT_NAME[doc] = "Specifies the name of all of the build artifacts."
7306 </info>
7307 <glossdef>
7308 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007309 Specifies the name of all of the build artifacts.
7310 You can change the name of the artifacts by changing the
7311 <filename>KERNEL_ARTIFACT_NAME</filename> variable.
7312 </para>
7313
7314 <para>
7315 The value of <filename>KERNEL_ARTIFACT_NAME</filename>,
7316 which is set in the
7317 <filename> meta/classes/kernel-artifact-names.bbclass</filename>
7318 file, has the following default value:
7319 <literallayout class='monospaced'>
7320 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7321 </literallayout>
7322 </para>
7323
7324 <para>
7325 See the
7326 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7327 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7328 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7329 and
7330 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7331 variables for additional information.
7332 <note>
7333 The <filename>IMAGE_VERSION_SUFFIX</filename> variable
7334 is set to
7335 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>.
7336 </note>
7337 </para>
7338 </glossdef>
7339 </glossentry>
7340
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007341 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
7342 <info>
7343 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
7344 </info>
7345 <glossdef>
7346 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007347 A list of classes defining kernel image types that the
7348 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7349 class should inherit.
7350 You typically append this variable to enable extended image
7351 types.
7352 An example is the "kernel-fitimage", which enables
7353 fitImage support and resides in
7354 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
7355 You can register custom kernel image types with the
7356 <filename>kernel</filename> class using this variable.
7357 </para>
7358 </glossdef>
7359 </glossentry>
7360
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007361 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
7362 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007363 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 -05007364 </info>
7365 <glossdef>
7366 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007367 Specifies the name of the generated Linux kernel device tree
7368 (i.e. the <filename>.dtb</filename>) file.
7369 <note>
7370 Legacy support exists for specifying the full path
7371 to the device tree.
7372 However, providing just the <filename>.dtb</filename>
7373 file is preferred.
7374 </note>
Brad Bishop79641f22019-09-10 07:20:22 -04007375 In order to use this variable, the
7376 <link linkend='ref-classes-kernel-devicetree'><filename>kernel-devicetree</filename></link>
7377 class must be inherited.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007378 </para>
7379 </glossdef>
7380 </glossentry>
7381
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007382 <glossentry id='var-KERNEL_DTB_LINK_NAME'><glossterm>KERNEL_DTB_LINK_NAME</glossterm>
7383 <info>
7384 KERNEL_DTB_LINK_NAME[doc] = "The link name of the kernel device tree binary (DTB)."
7385 </info>
7386 <glossdef>
7387 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007388 The link name of the kernel device tree binary (DTB).
7389 This variable is set in the
7390 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7391 file as follows:
7392 <literallayout class='monospaced'>
7393 KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7394 </literallayout>
7395 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7396 variable, which is set in the same file, has the following
7397 value:
7398 <literallayout class='monospaced'>
7399 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7400 </literallayout>
7401 </para>
7402
7403 <para>
7404 See the
7405 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7406 variable for additional information.
7407 </para>
7408 </glossdef>
7409 </glossentry>
7410
7411 <glossentry id='var-KERNEL_DTB_NAME'><glossterm>KERNEL_DTB_NAME</glossterm>
7412 <info>
7413 KERNEL_DTB_NAME[doc] = "The base name of the kernel device tree binary (DTB)."
7414 </info>
7415 <glossdef>
7416 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007417 The base name of the kernel device tree binary (DTB).
7418 This variable is set in the
7419 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7420 file as follows:
7421 <literallayout class='monospaced'>
7422 KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7423 </literallayout>
7424 The value of the
7425 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7426 variable, which is set in the same file, has the following
7427 value:
7428 <literallayout class='monospaced'>
7429 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7430 </literallayout>
7431 </para>
7432 </glossdef>
7433 </glossentry>
7434
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007435 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
7436 <info>
7437 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
7438 </info>
7439 <glossdef>
7440 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007441 Specifies additional <filename>make</filename>
7442 command-line arguments the OpenEmbedded build system
7443 passes on when compiling the kernel.
7444 </para>
7445 </glossdef>
7446 </glossentry>
7447
7448 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
7449 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007450 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 -05007451 </info>
7452 <glossdef>
7453 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007454 Includes additional kernel metadata.
7455 In the OpenEmbedded build system, the default Board Support
7456 Packages (BSPs)
7457 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007458 is provided through
7459 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007460 and
7461 <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link>
7462 variables.
7463 You can use the <filename>KERNEL_FEATURES</filename>
7464 variable from within the kernel recipe or kernel append
7465 file to further add metadata for all BSPs or specific
7466 BSPs.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007467 </para>
7468
7469 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007470 The metadata you add through this variable includes config
7471 fragments and features descriptions,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007472 which usually includes patches as well as config fragments.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007473 You typically override the
7474 <filename>KERNEL_FEATURES</filename> variable for a
7475 specific machine.
7476 In this way, you can provide validated, but optional,
7477 sets of kernel configurations and features.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007478 </para>
7479
7480 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007481 For example, the following example from the
7482 <filename>linux-yocto-rt_4.12</filename> kernel recipe
7483 adds "netfilter" and "taskstats" features to all BSPs
7484 as well as "virtio" configurations to all QEMU machines.
7485 The last two statements add specific configurations to
7486 targeted machine types:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007487 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007488 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
7489 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007490 KERNEL_FEATURES_append_qemuall = " cfg/virtio.scc"
7491 KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc cfg/paravirt_kvm.scc"
7492 KERNEL_FEATURES_append_qemux86-64 = " cfg/sound.scc" </literallayout></para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007493 </glossdef>
7494 </glossentry>
7495
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007496 <glossentry id='var-KERNEL_FIT_LINK_NAME'><glossterm>KERNEL_FIT_LINK_NAME</glossterm>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007497 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007498 KERNEL_FIT_LINK_NAME[doc] = "The link name of the kernel flattened image tree (FIT) image."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007499 </info>
7500 <glossdef>
7501 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007502 The link name of the kernel flattened image tree (FIT) image.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007503 This variable is set in the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007504 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7505 file as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007506 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007507 KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7508 </literallayout>
7509 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7510 variable, which is set in the same file, has the following
7511 value:
7512 <literallayout class='monospaced'>
7513 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007514 </literallayout>
7515 </para>
7516
7517 <para>
7518 See the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007519 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7520 variable for additional information.
7521 </para>
7522 </glossdef>
7523 </glossentry>
7524
7525 <glossentry id='var-KERNEL_FIT_NAME'><glossterm>KERNEL_FIT_NAME</glossterm>
7526 <info>
7527 KERNEL_FIT_NAME[doc] = "The base name of the kernel flattened image tree (FIT) image."
7528 </info>
7529 <glossdef>
7530 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007531 The base name of the kernel flattened image tree (FIT) image.
7532 This variable is set in the
7533 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7534 file as follows:
7535 <literallayout class='monospaced'>
7536 KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7537 </literallayout>
7538 The value of the
7539 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7540 variable, which is set in the same file, has the following
7541 value:
7542 <literallayout class='monospaced'>
7543 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7544 </literallayout>
7545 </para>
7546 </glossdef>
7547 </glossentry>
7548
7549 <glossentry id='var-KERNEL_IMAGE_LINK_NAME'><glossterm>KERNEL_IMAGE_LINK_NAME</glossterm>
7550 <info>
7551 KERNEL_IMAGE_LINK_NAME[doc] = "The link name for the kernel image."
7552 </info>
7553 <glossdef>
7554 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007555 The link name for the kernel image.
7556 This variable is set in the
7557 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7558 file as follows:
7559 <literallayout class='monospaced'>
7560 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7561 </literallayout>
7562 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7563 variable, which is set in the same file, has the following
7564 value:
7565 <literallayout class='monospaced'>
7566 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7567 </literallayout>
7568 </para>
7569
7570 <para>
7571 See the
7572 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7573 variable for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007574 </para>
7575 </glossdef>
7576 </glossentry>
7577
7578 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
7579 <info>
7580 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
7581 </info>
7582 <glossdef>
7583 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007584 Specifies the maximum size of the kernel image file in
7585 kilobytes.
7586 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
7587 the size of the kernel image file is checked against
7588 the set value during the
7589 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
7590 task.
7591 The task fails if the kernel image file is larger than
7592 the setting.
7593 </para>
7594
7595 <para>
7596 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
7597 target devices that have a limited amount of space in
7598 which the kernel image must be stored.
7599 </para>
7600
7601 <para>
7602 By default, this variable is not set, which means the
7603 size of the kernel image is not checked.
7604 </para>
7605 </glossdef>
7606 </glossentry>
7607
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007608 <glossentry id='var-KERNEL_IMAGE_NAME'><glossterm>KERNEL_IMAGE_NAME</glossterm>
7609 <info>
7610 KERNEL_IMAGE_NAME[doc] = "The base name of the kernel image."
7611 </info>
7612 <glossdef>
7613 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007614 The base name of the kernel image.
7615 This variable is set in the
7616 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7617 file as follows:
7618 <literallayout class='monospaced'>
7619 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7620 </literallayout>
7621 The value of the
7622 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7623 variable, which is set in the same file, has the following
7624 value:
7625 <literallayout class='monospaced'>
7626 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7627 </literallayout>
7628 </para>
7629 </glossdef>
7630 </glossentry>
7631
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007632 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
7633 <info>
7634 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
7635 </info>
7636 <glossdef>
7637 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007638 The type of kernel to build for a device, usually set by the
7639 machine configuration files and defaults to "zImage".
7640 This variable is used
7641 when building the kernel and is passed to <filename>make</filename> as the target to
7642 build.
7643 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007644
7645 <para>
7646 If you want to build an alternate kernel image type, use the
7647 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
7648 variable.
7649 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007650 </glossdef>
7651 </glossentry>
7652
7653 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
7654 <info>
7655 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
7656 </info>
7657 <glossdef>
7658 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007659 Lists kernel modules that need to be auto-loaded during
7660 boot.
7661 <note>
7662 This variable replaces the deprecated
7663 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
7664 variable.
7665 </note>
7666 </para>
7667
7668 <para>
7669 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
7670 variable anywhere that it can be
7671 recognized by the kernel recipe or by an out-of-tree kernel
7672 module recipe (e.g. a machine configuration file, a
7673 distribution configuration file, an append file for the
7674 recipe, or the recipe itself).
7675 </para>
7676
7677 <para>
7678 Specify it as follows:
7679 <literallayout class='monospaced'>
7680 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
7681 </literallayout>
7682 </para>
7683
7684 <para>
7685 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
7686 the OpenEmbedded build system to populate the
7687 <filename>/etc/modules-load.d/modname.conf</filename>
7688 file with the list of modules to be auto-loaded on boot.
7689 The modules appear one-per-line in the file.
7690 Here is an example of the most common use case:
7691 <literallayout class='monospaced'>
7692 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
7693 </literallayout>
7694 </para>
7695
7696 <para>
7697 For information on how to populate the
7698 <filename>modname.conf</filename> file with
7699 <filename>modprobe.d</filename> syntax lines, see the
7700 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
7701 variable.
7702 </para>
7703 </glossdef>
7704 </glossentry>
7705
7706 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
7707 <info>
7708 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."
7709 </info>
7710 <glossdef>
7711 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007712 Provides a list of modules for which the OpenEmbedded
7713 build system expects to find
7714 <filename>module_conf_</filename><replaceable>modname</replaceable>
7715 values that specify configuration for each of the modules.
7716 For information on how to provide those module
7717 configurations, see the
7718 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
7719 variable.
7720 </para>
7721 </glossdef>
7722 </glossentry>
7723
7724 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
7725 <info>
7726 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)."
7727 </info>
7728 <glossdef>
7729 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007730 The location of the kernel sources.
7731 This variable is set to the value of the
7732 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7733 within the
7734 <link linkend='ref-classes-module'><filename>module</filename></link>
7735 class.
7736 For information on how this variable is used, see the
7737 "<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 -04007738 section in the Yocto Project Linux Kernel Development
7739 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007740 </para>
7741
7742 <para>
7743 To help maximize compatibility with out-of-tree drivers
7744 used to build modules, the OpenEmbedded build system also
7745 recognizes and uses the
7746 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
7747 variable, which is identical to the
7748 <filename>KERNEL_PATH</filename> variable.
7749 Both variables are common variables used by external
7750 Makefiles to point to the kernel source directory.
7751 </para>
7752 </glossdef>
7753 </glossentry>
7754
7755 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
7756 <info>
7757 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)."
7758 </info>
7759 <glossdef>
7760 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007761 The location of the kernel sources.
7762 This variable is set to the value of the
7763 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7764 within the
7765 <link linkend='ref-classes-module'><filename>module</filename></link>
7766 class.
7767 For information on how this variable is used, see the
7768 "<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 -04007769 section in the Yocto Project Linux Kernel Development
7770 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007771 </para>
7772
7773 <para>
7774 To help maximize compatibility with out-of-tree drivers
7775 used to build modules, the OpenEmbedded build system also
7776 recognizes and uses the
7777 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
7778 variable, which is identical to the
7779 <filename>KERNEL_SRC</filename> variable.
7780 Both variables are common variables used by external
7781 Makefiles to point to the kernel source directory.
7782 </para>
7783 </glossdef>
7784 </glossentry>
7785
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007786 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
7787 <info>
7788 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
7789 </info>
7790 <glossdef>
7791 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007792 Specifies the version of the kernel as extracted from
7793 <filename>version.h</filename> or
7794 <filename>utsrelease.h</filename> within the kernel sources.
7795 Effects of setting this variable do not take affect until
7796 the kernel has been configured.
7797 Consequently, attempting to refer to this variable in
7798 contexts prior to configuration will not work.
7799 </para>
7800 </glossdef>
7801 </glossentry>
7802
7803 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
7804 <info>
7805 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
7806 </info>
7807 <glossdef>
7808 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007809 Specifies whether the data referenced through
7810 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
7811 is needed or not.
7812 The <filename>KERNELDEPMODDEPEND</filename> does not
7813 control whether or not that data exists,
7814 but simply whether or not it is used.
7815 If you do not need to use the data, set the
7816 <filename>KERNELDEPMODDEPEND</filename> variable in your
7817 <filename>initramfs</filename> recipe.
7818 Setting the variable there when the data is not needed
7819 avoids a potential dependency loop.
7820 </para>
7821 </glossdef>
7822 </glossentry>
7823
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007824 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
7825 <info>
7826 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."
7827 </info>
7828 <glossdef>
7829 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007830 Provides a short description of a configuration fragment.
7831 You use this variable in the <filename>.scc</filename>
7832 file that describes a configuration fragment file.
7833 Here is the variable used in a file named
7834 <filename>smp.scc</filename> to describe SMP being
7835 enabled:
7836 <literallayout class='monospaced'>
7837 define KFEATURE_DESCRIPTION "Enable SMP"
7838 </literallayout>
7839 </para>
7840 </glossdef>
7841 </glossentry>
7842
7843 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
7844 <info>
7845 KMACHINE[doc] = "The machine as known by the kernel."
7846 </info>
7847 <glossdef>
7848 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007849 The machine as known by the kernel.
7850 Sometimes the machine name used by the kernel does not
7851 match the machine name used by the OpenEmbedded build
7852 system.
7853 For example, the machine name that the OpenEmbedded build
7854 system understands as
7855 <filename>core2-32-intel-common</filename> goes by a
7856 different name in the Linux Yocto kernel.
7857 The kernel understands that machine as
7858 <filename>intel-core2-32</filename>.
7859 For cases like these, the <filename>KMACHINE</filename>
7860 variable maps the kernel machine name to the OpenEmbedded
7861 build system machine name.
7862 </para>
7863
7864 <para>
7865 These mappings between different names occur in the
7866 Yocto Linux Kernel's <filename>meta</filename> branch.
7867 As an example take a look in the
7868 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
7869 file:
7870 <literallayout class='monospaced'>
7871 LINUX_VERSION_core2-32-intel-common = "3.19.0"
7872 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
7873 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
7874 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
7875 KMACHINE_core2-32-intel-common = "intel-core2-32"
7876 KBRANCH_core2-32-intel-common = "standard/base"
7877 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
7878 </literallayout>
7879 The <filename>KMACHINE</filename> statement says that
7880 the kernel understands the machine name as
7881 "intel-core2-32".
7882 However, the OpenEmbedded build system understands the
7883 machine as "core2-32-intel-common".
7884 </para>
7885
7886 </glossdef>
7887 </glossentry>
7888
7889 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
7890 <info>
7891 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7892 </info>
7893 <glossdef>
7894 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007895 Defines the kernel type to be used in assembling the
7896 configuration.
7897 The linux-yocto recipes define "standard", "tiny",
7898 and "preempt-rt" kernel types.
7899 See the
7900 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7901 section in the Yocto Project Linux Kernel Development
7902 Manual for more information on kernel types.
7903 </para>
7904
7905 <para>
7906 You define the <filename>KTYPE</filename> variable in the
7907 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7908 The value you use must match the value used for the
7909 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
7910 value used by the kernel recipe.
7911 </para>
7912 </glossdef>
7913 </glossentry>
7914 </glossdiv>
7915
7916 <glossdiv id='var-glossary-l'><title>L</title>
7917
7918 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
7919 <info>
7920 LABELS[doc] = "Provides a list of targets for automatic configuration."
7921 </info>
7922 <glossdef>
7923 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007924 Provides a list of targets for automatic configuration.
7925 </para>
7926
7927 <para>
7928 See the
7929 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
7930 class for more information on how this variable is used.
7931 </para>
7932 </glossdef>
7933 </glossentry>
7934
7935 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
7936 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007937 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 -05007938 </info>
7939 <glossdef>
7940 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007941 Lists the layers, separated by spaces, on which this
7942 recipe depends.
7943 Optionally, you can specify a specific layer version for a
7944 dependency by adding it to the end of the layer name.
7945 Here is an example:
7946 <literallayout class='monospaced'>
7947 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
7948 </literallayout>
7949 In this previous example, version 3 of "anotherlayer"
7950 is compared against
7951 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>.
7952 </para>
7953
7954 <para>
7955 An error is produced if any dependency is missing or
7956 the version numbers (if specified) do not match exactly.
7957 This variable is used in the
7958 <filename>conf/layer.conf</filename> file and must be
7959 suffixed with the name of the specific layer (e.g.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007960 <filename>LAYERDEPENDS_mylayer</filename>).
7961 </para>
7962 </glossdef>
7963 </glossentry>
7964
7965 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
7966 <info>
7967 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
7968 </info>
7969 <glossdef>
7970 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007971 When used inside the <filename>layer.conf</filename> configuration
7972 file, this variable provides the path of the current layer.
7973 This variable is not available outside of <filename>layer.conf</filename>
7974 and references are expanded immediately when parsing of the file completes.
7975 </para>
7976 </glossdef>
7977 </glossentry>
7978
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007979 <glossentry id='var-LAYERRECOMMENDS'><glossterm>LAYERRECOMMENDS</glossterm>
7980 <info>
7981 LAYERRECOMMENDS[doc] = "Lists the layers, separated by spaces, recommended for use with this layer."
7982 </info>
7983 <glossdef>
7984 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007985 Lists the layers, separated by spaces, recommended for
7986 use with this layer.
7987 </para>
7988
7989 <para>
7990 Optionally, you can specify a specific layer version for a
7991 recommendation by adding the version to the end of the
7992 layer name.
7993 Here is an example:
7994 <literallayout class='monospaced'>
7995 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
7996 </literallayout>
7997 In this previous example, version 3 of "anotherlayer" is
7998 compared against
7999 <filename>LAYERVERSION_anotherlayer</filename>.
8000 </para>
8001
8002 <para>
8003 This variable is used in the
8004 <filename>conf/layer.conf</filename> file and must be
8005 suffixed with the name of the specific layer (e.g.
8006 <filename>LAYERRECOMMENDS_mylayer</filename>).
8007 </para>
8008 </glossdef>
8009 </glossentry>
8010
Brad Bishop316dfdd2018-06-25 12:45:53 -04008011 <glossentry id='var-LAYERSERIES_COMPAT'><glossterm>LAYERSERIES_COMPAT</glossterm>
8012 <info>
8013 LAYERSERIES_COMPAT[doc] = "Lists the OpenEmbedded-Core versions for which a layer is compatible."
8014 </info>
8015 <glossdef>
8016 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04008017 Lists the versions of the
8018 <link linkend='oe-core'>OpenEmbedded-Core</link> for which
8019 a layer is compatible.
8020 Using the <filename>LAYERSERIES_COMPAT</filename> variable
8021 allows the layer maintainer to indicate which combinations
8022 of the layer and OE-Core can be expected to work.
8023 The variable gives the system a way to detect when a layer
8024 has not been tested with new releases of OE-Core (e.g.
8025 the layer is not maintained).
8026 </para>
8027
8028 <para>
8029 To specify the OE-Core versions for which a layer is
8030 compatible, use this variable in your layer's
8031 <filename>conf/layer.conf</filename> configuration file.
8032 For the list, use the Yocto Project
8033 <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Release Name</ulink>
8034 (e.g. &DISTRO_NAME_NO_CAP;).
8035 To specify multiple OE-Core versions for the layer,
8036 use a space-separated list:
8037 <literallayout class='monospaced'>
8038 LAYERSERIES_COMPAT_<replaceable>layer_root_name</replaceable> = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
8039 </literallayout>
8040 <note>
8041 Setting <filename>LAYERSERIES_COMPAT</filename> is
8042 required by the Yocto Project Compatible version 2
8043 standard.
8044 The OpenEmbedded build system produces a warning if
8045 the variable is not set for any given layer.
8046 </note>
8047 </para>
8048
8049 <para>
8050 See the
8051 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-layer'>Creating Your Own Layer</ulink>"
8052 section in the Yocto Project Development Tasks Manual.
8053 </para>
8054 </glossdef>
8055 </glossentry>
8056
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008057 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
8058 <info>
8059 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."
8060 </info>
8061 <glossdef>
8062 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008063 Optionally specifies the version of a layer as a single number.
8064 You can use this within
8065 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
8066 for another layer in order to depend on a specific version
8067 of the layer.
8068 This variable is used in the <filename>conf/layer.conf</filename> file
8069 and must be suffixed with the name of the specific layer (e.g.
8070 <filename>LAYERVERSION_mylayer</filename>).
8071 </para>
8072 </glossdef>
8073 </glossentry>
8074
8075 <glossentry id='var-LD'><glossterm>LD</glossterm>
8076 <info>
8077 LD[doc] = "Minimal command and arguments to run the linker."
8078 </info>
8079 <glossdef>
8080 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008081 The minimal command and arguments used to run the
8082 linker.
8083 </para>
8084 </glossdef>
8085 </glossentry>
8086
8087 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
8088 <info>
8089 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
8090 </info>
8091 <glossdef>
8092 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008093 Specifies the flags to pass to the linker.
8094 This variable is exported to an environment
8095 variable and thus made visible to the software being
8096 built during the compilation step.
8097 </para>
8098
8099 <para>
8100 Default initialization for <filename>LDFLAGS</filename>
8101 varies depending on what is being built:
8102 <itemizedlist>
8103 <listitem><para>
8104 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
8105 when building for the target
8106 </para></listitem>
8107 <listitem><para>
8108 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
8109 when building for the build host (i.e.
8110 <filename>-native</filename>)
8111 </para></listitem>
8112 <listitem><para>
8113 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
8114 when building for an SDK (i.e.
8115 <filename>nativesdk-</filename>)
8116 </para></listitem>
8117 </itemizedlist>
8118 </para>
8119 </glossdef>
8120 </glossentry>
8121
8122 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
8123 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008124 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 -05008125 </info>
8126 <glossdef>
8127 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008128 Specifies the lead (or primary) compiled library file
Brad Bishop316dfdd2018-06-25 12:45:53 -04008129 (i.e. <filename>.so</filename>) that the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008130 <link linkend='ref-classes-debian'><filename>debian</filename></link>
8131 class applies its naming policy to given a recipe that
8132 packages multiple libraries.
8133 </para>
8134
8135 <para>
8136 This variable works in conjunction with the
8137 <filename>debian</filename> class.
8138 </para>
8139 </glossdef>
8140 </glossentry>
8141
8142 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
8143 <info>
8144 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
8145 </info>
8146 <glossdef>
8147 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008148 Checksums of the license text in the recipe source code.
8149 </para>
8150
8151 <para>
8152 This variable tracks changes in license text of the source
8153 code files.
8154 If the license text is changed, it will trigger a build
8155 failure, which gives the developer an opportunity to review any
8156 license change.
8157 </para>
8158
8159 <para>
8160 This variable must be defined for all recipes (unless
8161 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8162 is set to "CLOSED").</para>
8163 <para>For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008164 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Tracking License Changes</ulink>"
8165 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008166 </para>
8167 </glossdef>
8168 </glossentry>
8169
8170 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
8171 <info>
8172 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
8173 </info>
8174 <glossdef>
8175 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008176 The list of source licenses for the recipe.
8177 Follow these rules:
8178 <itemizedlist>
8179 <listitem><para>Do not use spaces within individual
8180 license names.</para></listitem>
8181 <listitem><para>Separate license names using
8182 | (pipe) when there is a choice between licenses.
8183 </para></listitem>
8184 <listitem><para>Separate license names using
8185 &amp; (ampersand) when multiple licenses exist
8186 that cover different parts of the source.
8187 </para></listitem>
8188 <listitem><para>You can use spaces between license
8189 names.</para></listitem>
8190 <listitem><para>For standard licenses, use the names
8191 of the files in
8192 <filename>meta/files/common-licenses/</filename>
8193 or the
8194 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
8195 flag names defined in
8196 <filename>meta/conf/licenses.conf</filename>.
8197 </para></listitem>
8198 </itemizedlist>
8199 </para>
8200
8201 <para>
8202 Here are some examples:
8203 <literallayout class='monospaced'>
8204 LICENSE = "LGPLv2.1 | GPLv3"
8205 LICENSE = "MPL-1 &amp; LGPLv2.1"
8206 LICENSE = "GPLv2+"
8207 </literallayout>
8208 The first example is from the recipes for Qt, which the user
8209 may choose to distribute under either the LGPL version
8210 2.1 or GPL version 3.
8211 The second example is from Cairo where two licenses cover
8212 different parts of the source code.
8213 The final example is from <filename>sysstat</filename>,
8214 which presents a single license.
8215 </para>
8216
8217 <para>
8218 You can also specify licenses on a per-package basis to
8219 handle situations where components of the output have
8220 different licenses.
8221 For example, a piece of software whose code is
8222 licensed under GPLv2 but has accompanying documentation
8223 licensed under the GNU Free Documentation License 1.2 could
8224 be specified as follows:
8225 <literallayout class='monospaced'>
8226 LICENSE = "GFDL-1.2 &amp; GPLv2"
8227 LICENSE_${PN} = "GPLv2"
8228 LICENSE_${PN}-doc = "GFDL-1.2"
8229 </literallayout>
8230 </para>
8231 </glossdef>
8232 </glossentry>
8233
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008234 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
8235 <info>
8236 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
8237 </info>
8238 <glossdef>
8239 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008240 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
8241 to "1" causes the OpenEmbedded build system to create
8242 an extra package (i.e.
8243 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
8244 for each recipe and to add those packages to the
8245 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
8246 </para>
8247
8248 <para>
8249 The <filename>${PN}-lic</filename> package installs a
8250 directory in <filename>/usr/share/licenses</filename>
8251 named <filename>${PN}</filename>, which is the recipe's
8252 base name, and installs files in that directory that
8253 contain license and copyright information (i.e. copies of
8254 the appropriate license files from
8255 <filename>meta/common-licenses</filename> that match the
8256 licenses specified in the
8257 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8258 variable of the recipe metadata and copies of files marked
8259 in
8260 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
8261 as containing license text).
8262 </para>
8263
8264 <para>
8265 For related information on providing license text, see the
8266 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
8267 variable, the
8268 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
8269 variable, and the
8270 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008271 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008272 </para>
8273 </glossdef>
8274 </glossentry>
8275
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008276 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
8277 <info>
8278 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."
8279 </info>
8280 <glossdef>
8281 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008282 Specifies additional flags for a recipe you must
8283 whitelist through
8284 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
8285 in order to allow the recipe to be built.
8286 When providing multiple flags, separate them with
8287 spaces.
8288 </para>
8289
8290 <para>
8291 This value is independent of
8292 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8293 and is typically used to mark recipes that might
8294 require additional licenses in order to be used in a
8295 commercial product.
8296 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008297 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8298 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008299 </para>
8300 </glossdef>
8301 </glossentry>
8302
8303 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
8304 <info>
8305 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
8306 </info>
8307 <glossdef>
8308 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008309 Lists license flags that when specified in
8310 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
8311 within a recipe should not prevent that recipe from being
8312 built.
8313 This practice is otherwise known as "whitelisting"
8314 license flags.
8315 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008316 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8317 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008318 </para>
8319 </glossdef>
8320 </glossentry>
8321
8322 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
8323 <info>
8324 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
8325 </info>
8326 <glossdef>
8327 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008328 Path to additional licenses used during the build.
8329 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
8330 to define the directory that holds common license text used during the build.
8331 The <filename>LICENSE_PATH</filename> variable allows you to extend that
8332 location to other areas that have additional licenses:
8333 <literallayout class='monospaced'>
8334 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
8335 </literallayout>
8336 </para>
8337 </glossdef>
8338 </glossentry>
8339
8340 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
8341 <info>
8342 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8343 </info>
8344 <glossdef>
8345 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008346 Defines the kernel type to be used in assembling the
8347 configuration.
8348 The linux-yocto recipes define "standard", "tiny", and
8349 "preempt-rt" kernel types.
8350 See the
8351 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8352 section in the Yocto Project Linux Kernel Development
8353 Manual for more information on kernel types.
8354 </para>
8355
8356 <para>
8357 If you do not specify a
8358 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
8359 "standard".
8360 Together with
8361 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
8362 the <filename>LINUX_KERNEL_TYPE</filename> variable
8363 defines the search
8364 arguments used by the kernel tools to find the appropriate
8365 description within the kernel
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008366 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008367 with which to build out the sources and configuration.
8368 </para>
8369 </glossdef>
8370 </glossentry>
8371
8372 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
8373 <info>
8374 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."
8375 </info>
8376 <glossdef>
8377 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008378 The Linux version from <filename>kernel.org</filename>
8379 on which the Linux kernel image being built using the
8380 OpenEmbedded build system is based.
8381 You define this variable in the kernel recipe.
8382 For example, the <filename>linux-yocto-3.4.bb</filename>
8383 kernel recipe found in
8384 <filename>meta/recipes-kernel/linux</filename>
8385 defines the variables as follows:
8386 <literallayout class='monospaced'>
8387 LINUX_VERSION ?= "3.4.24"
8388 </literallayout>
8389 </para>
8390
8391 <para>
8392 The <filename>LINUX_VERSION</filename> variable is used to
8393 define <link linkend='var-PV'><filename>PV</filename></link>
8394 for the recipe:
8395 <literallayout class='monospaced'>
8396 PV = "${LINUX_VERSION}+git${SRCPV}"
8397 </literallayout>
8398 </para>
8399 </glossdef>
8400 </glossentry>
8401
8402 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
8403 <info>
8404 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."
8405 </info>
8406 <glossdef>
8407 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008408 A string extension compiled into the version
8409 string of the Linux kernel built with the OpenEmbedded
8410 build system.
8411 You define this variable in the kernel recipe.
8412 For example, the linux-yocto kernel recipes all define
8413 the variable as follows:
8414 <literallayout class='monospaced'>
8415 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
8416 </literallayout>
8417 </para>
8418
8419 <para>
8420 Defining this variable essentially sets the
8421 Linux kernel configuration item
8422 <filename>CONFIG_LOCALVERSION</filename>, which is visible
8423 through the <filename>uname</filename> command.
8424 Here is an example that shows the extension assuming it
8425 was set as previously shown:
8426 <literallayout class='monospaced'>
8427 $ uname -r
8428 3.7.0-rc8-custom
8429 </literallayout>
8430 </para>
8431 </glossdef>
8432 </glossentry>
8433
8434 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
8435 <info>
8436 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
8437 </info>
8438 <glossdef>
8439 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008440 Specifies the directory to which the OpenEmbedded build
8441 system writes overall log files.
8442 The default directory is <filename>${TMPDIR}/log</filename>.
8443 </para>
8444
8445 <para>
8446 For the directory containing logs specific to each task,
8447 see the <link linkend='var-T'><filename>T</filename></link>
8448 variable.
8449 </para>
8450 </glossdef>
8451 </glossentry>
8452
8453 </glossdiv>
8454
8455 <glossdiv id='var-glossary-m'><title>M</title>
8456
8457 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
8458 <info>
8459 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."
8460 </info>
8461 <glossdef>
8462 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008463 Specifies the target device for which the image is built.
8464 You define <filename>MACHINE</filename> in the
8465 <filename>local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008466 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008467 By default, <filename>MACHINE</filename> is set to
8468 "qemux86", which is an x86-based architecture machine to
8469 be emulated using QEMU:
8470 <literallayout class='monospaced'>
8471 MACHINE ?= "qemux86"
8472 </literallayout>
8473 </para>
8474
8475 <para>
8476 The variable corresponds to a machine configuration file of the
8477 same name, through which machine-specific configurations are set.
8478 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
8479 exists the corresponding <filename>qemux86.conf</filename> machine
8480 configuration file, which can be found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008481 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008482 in <filename>meta/conf/machine</filename>.
8483 </para>
8484
8485 <para>
8486 The list of machines supported by the Yocto Project as
8487 shipped include the following:
8488 <literallayout class='monospaced'>
8489 MACHINE ?= "qemuarm"
8490 MACHINE ?= "qemuarm64"
8491 MACHINE ?= "qemumips"
8492 MACHINE ?= "qemumips64"
8493 MACHINE ?= "qemuppc"
8494 MACHINE ?= "qemux86"
8495 MACHINE ?= "qemux86-64"
8496 MACHINE ?= "genericx86"
8497 MACHINE ?= "genericx86-64"
8498 MACHINE ?= "beaglebone"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008499 MACHINE ?= "edgerouter"
8500 </literallayout>
8501 The last five are Yocto Project reference hardware boards, which
8502 are provided in the <filename>meta-yocto-bsp</filename> layer.
8503 <note>Adding additional Board Support Package (BSP) layers
8504 to your configuration adds new possible settings for
8505 <filename>MACHINE</filename>.
8506 </note>
8507 </para>
8508 </glossdef>
8509 </glossentry>
8510
8511 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
8512 <info>
8513 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
8514 </info>
8515 <glossdef>
8516 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008517 Specifies the name of the machine-specific architecture.
8518 This variable is set automatically from
8519 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
8520 or
8521 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
8522 You should not hand-edit the
8523 <filename>MACHINE_ARCH</filename> variable.
8524 </para>
8525 </glossdef>
8526 </glossentry>
8527
8528 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
8529 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008530 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 -05008531 </info>
8532 <glossdef>
8533 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008534 A list of required machine-specific packages to install as part of
8535 the image being built.
8536 The build process depends on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008537 Furthermore, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008538 packages are essential for the machine to boot.
8539 The impact of this variable affects images based on
8540 <filename>packagegroup-core-boot</filename>,
8541 including the <filename>core-image-minimal</filename> image.
8542 </para>
8543
8544 <para>
8545 This variable is similar to the
8546 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
8547 variable with the exception that the image being built has a build
8548 dependency on the variable's list of packages.
8549 In other words, the image will not build if a file in this list is not found.
8550 </para>
8551
8552 <para>
8553 As an example, suppose the machine for which you are building requires
8554 <filename>example-init</filename> to be run during boot to initialize the hardware.
8555 In this case, you would use the following in the machine's
8556 <filename>.conf</filename> configuration file:
8557 <literallayout class='monospaced'>
8558 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
8559 </literallayout>
8560 </para>
8561 </glossdef>
8562 </glossentry>
8563
8564 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
8565 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008566 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 -05008567 </info>
8568 <glossdef>
8569 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008570 A list of recommended machine-specific packages to install as part of
8571 the image being built.
8572 The build process does not depend on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008573 However, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008574 packages are essential for the machine to boot.
8575 The impact of this variable affects images based on
8576 <filename>packagegroup-core-boot</filename>,
8577 including the <filename>core-image-minimal</filename> image.
8578 </para>
8579
8580 <para>
8581 This variable is similar to the
8582 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
8583 variable with the exception that the image being built does not have a build
8584 dependency on the variable's list of packages.
8585 In other words, the image will still build if a package in this list is not found.
8586 Typically, this variable is used to handle essential kernel modules, whose
8587 functionality may be selected to be built into the kernel rather than as a module,
8588 in which case a package will not be produced.
8589 </para>
8590
8591 <para>
8592 Consider an example where you have a custom kernel where a specific touchscreen
8593 driver is required for the machine to be usable.
8594 However, the driver can be built as a module or
8595 into the kernel depending on the kernel configuration.
8596 If the driver is built as a module, you want it to be installed.
8597 But, when the driver is built into the kernel, you still want the
8598 build to succeed.
8599 This variable sets up a "recommends" relationship so that in the latter case,
8600 the build will not fail due to the missing package.
8601 To accomplish this, assuming the package for the module was called
8602 <filename>kernel-module-ab123</filename>, you would use the
8603 following in the machine's <filename>.conf</filename> configuration
8604 file:
8605 <literallayout class='monospaced'>
8606 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
8607 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008608 <note>
8609 In this example, the
8610 <filename>kernel-module-ab123</filename> recipe
8611 needs to explicitly set its
8612 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
8613 variable to ensure that BitBake does not use the
8614 kernel recipe's
8615 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
8616 variable to satisfy the dependency.
8617 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008618 </para>
8619
8620 <para>
8621 Some examples of these machine essentials are flash, screen, keyboard, mouse,
8622 or touchscreen drivers (depending on the machine).
8623 </para>
8624 </glossdef>
8625 </glossentry>
8626
8627 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
8628 <info>
8629 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."
8630 </info>
8631 <glossdef>
8632 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008633 A list of machine-specific packages to install as part of the
8634 image being built that are not essential for the machine to boot.
8635 However, the build process for more fully-featured images
8636 depends on the packages being present.
8637 </para>
8638
8639 <para>
8640 This variable affects all images based on
8641 <filename>packagegroup-base</filename>, which does not include the
8642 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8643 images.
8644 </para>
8645
8646 <para>
8647 The variable is similar to the
8648 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
8649 variable with the exception that the image being built has a build
8650 dependency on the variable's list of packages.
8651 In other words, the image will not build if a file in this list is not found.
8652 </para>
8653
8654 <para>
8655 An example is a machine that has WiFi capability but is not
8656 essential for the machine to boot the image.
8657 However, if you are building a more fully-featured image, you want to enable
8658 the WiFi.
8659 The package containing the firmware for the WiFi hardware is always
8660 expected to exist, so it is acceptable for the build process to depend upon
8661 finding the package.
8662 In this case, assuming the package for the firmware was called
8663 <filename>wifidriver-firmware</filename>, you would use the following in the
8664 <filename>.conf</filename> file for the machine:
8665 <literallayout class='monospaced'>
8666 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
8667 </literallayout>
8668 </para>
8669 </glossdef>
8670 </glossentry>
8671
8672 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
8673 <info>
8674 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."
8675 </info>
8676 <glossdef>
8677 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008678 A list of machine-specific packages to install as part of the
8679 image being built that are not essential for booting the machine.
8680 The image being built has no build dependency on this list of packages.
8681 </para>
8682
8683 <para>
8684 This variable affects only images based on
8685 <filename>packagegroup-base</filename>, which does not include the
8686 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8687 images.
8688 </para>
8689
8690 <para>
8691 This variable is similar to the
8692 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
8693 variable with the exception that the image being built does not have a build
8694 dependency on the variable's list of packages.
8695 In other words, the image will build if a file in this list is not found.
8696 </para>
8697
8698 <para>
8699 An example is a machine that has WiFi capability but is not essential
8700 For the machine to boot the image.
8701 However, if you are building a more fully-featured image, you want to enable
8702 WiFi.
8703 In this case, the package containing the WiFi kernel module will not be produced
8704 if the WiFi driver is built into the kernel, in which case you still want the
8705 build to succeed instead of failing as a result of the package not being found.
8706 To accomplish this, assuming the package for the module was called
8707 <filename>kernel-module-examplewifi</filename>, you would use the
8708 following in the <filename>.conf</filename> file for the machine:
8709 <literallayout class='monospaced'>
8710 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
8711 </literallayout>
8712 </para>
8713 </glossdef>
8714 </glossentry>
8715
8716 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
8717 <info>
8718 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
8719 </info>
8720 <glossdef>
8721 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008722 Specifies the list of hardware features the
8723 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
8724 of supporting.
8725 For related information on enabling features, see the
8726 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
8727 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
8728 and
8729 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8730 variables.
8731 </para>
8732
8733 <para>
8734 For a list of hardware features supported by the Yocto
8735 Project as shipped, see the
8736 "<link linkend='ref-features-machine'>Machine Features</link>"
8737 section.
8738 </para>
8739 </glossdef>
8740 </glossentry>
8741
8742 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
8743 <info>
8744 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."
8745 </info>
8746 <glossdef>
8747 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008748 Features to be added to
8749 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
8750 if not also present in
8751 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
8752 </para>
8753
8754 <para>
8755 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
8756 It is not intended to be user-configurable.
8757 It is best to just reference the variable to see which machine features are
8758 being backfilled for all machine configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008759 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008760 more information.
8761 </para>
8762 </glossdef>
8763 </glossentry>
8764
8765 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
8766 <info>
8767 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
8768 </info>
8769 <glossdef>
8770 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008771 Features from
8772 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
8773 that should not be backfilled (i.e. added to
8774 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
8775 during the build.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008776 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008777 more information.
8778 </para>
8779 </glossdef>
8780 </glossentry>
8781
8782 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
8783 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008784 MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008785 </info>
8786 <glossdef>
8787 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008788 A colon-separated list of overrides that apply to the
8789 current machine.
8790 By default, this list includes the value of
8791 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008792 </para>
8793
8794 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008795 You can extend <filename>MACHINEOVERRIDES</filename>
8796 to add extra overrides that should apply to a machine.
8797 For example, all machines emulated in QEMU (e.g.
8798 <filename>qemuarm</filename>, <filename>qemux86</filename>,
8799 and so forth) include a file named
8800 <filename>meta/conf/machine/include/qemu.inc</filename>
8801 that prepends the following override to
8802 <filename>MACHINEOVERRIDES</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008803 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008804 MACHINEOVERRIDES =. "qemuall:"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008805 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008806 This override allows variables to be overriden for all
8807 machines emulated in QEMU, like in the following example
8808 from the <filename>connman-conf</filename> recipe:
8809 <literallayout class='monospaced'>
8810 SRC_URI_append_qemuall = "file://wired.config \
8811 file://wired-setup \
8812 "
8813 </literallayout>
8814 The underlying mechanism behind
8815 <filename>MACHINEOVERRIDES</filename> is simply that it is
8816 included in the default value of
8817 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008818 </para>
8819 </glossdef>
8820 </glossentry>
8821
8822 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
8823 <info>
8824 MAINTAINER[doc] = "The email address of the distribution maintainer."
8825 </info>
8826 <glossdef>
8827 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008828 The email address of the distribution maintainer.
8829 </para>
8830 </glossdef>
8831 </glossentry>
8832
8833 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
8834 <info>
8835 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
8836 </info>
8837 <glossdef>
8838 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008839 Specifies additional paths from which the OpenEmbedded
8840 build system gets source code.
8841 When the build system searches for source code, it first
8842 tries the local download directory.
8843 If that location fails, the build system tries locations
8844 defined by
8845 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
8846 the upstream source, and then locations specified by
8847 <filename>MIRRORS</filename> in that order.
8848 </para>
8849
8850 <para>
8851 Assuming your distribution
8852 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
8853 is "poky", the default value for
8854 <filename>MIRRORS</filename> is defined in the
8855 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008856 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008857 </para>
8858 </glossdef>
8859 </glossentry>
8860
8861 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
8862 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008863 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 -05008864 </info>
8865 <glossdef>
8866 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008867 Specifies a prefix has been added to
8868 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
Brad Bishop316dfdd2018-06-25 12:45:53 -04008869 of a recipe or package (i.e. a Multilib version).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008870 The variable is used in places where the prefix needs to be
8871 added to or removed from a the name (e.g. the
8872 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
8873 <filename>MLPREFIX</filename> gets set when a prefix has been
8874 added to <filename>PN</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008875 <note>
8876 The "ML" in <filename>MLPREFIX</filename> stands for
8877 "MultiLib".
8878 This representation is historical and comes from
8879 a time when <filename>nativesdk</filename> was a suffix
8880 rather than a prefix on the recipe name.
8881 When <filename>nativesdk</filename> was turned into a
8882 prefix, it made sense to set
8883 <filename>MLPREFIX</filename> for it as well.
8884 </note>
8885 </para>
8886
8887 <para>
8888 To help understand when <filename>MLPREFIX</filename>
8889 might be needed, consider when
8890 <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
8891 is used to provide a <filename>nativesdk</filename> version
8892 of a recipe in addition to the target version.
8893 If that recipe declares build-time dependencies on tasks in
8894 other recipes by using
8895 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
8896 then a dependency on "foo" will automatically get rewritten
8897 to a dependency on "nativesdk-foo".
8898 However, dependencies like the following will not get
8899 rewritten automatically:
8900 <literallayout class='monospaced'>
8901 do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
8902 </literallayout>
8903 If you want such a dependency to also get transformed,
8904 you can do the following:
8905 <literallayout class='monospaced'>
8906 do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
8907 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008908 </para>
8909 </glossdef>
8910 </glossentry>
8911
8912 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
8913 <info>
8914 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."
8915 </info>
8916 <glossdef>
8917 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008918 This variable has been replaced by the
8919 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
8920 You should replace all occurrences of
8921 <filename>module_autoload</filename> with additions to
8922 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
8923 <literallayout class='monospaced'>
8924 module_autoload_rfcomm = "rfcomm"
8925 </literallayout>
8926 </para>
8927
8928 <para>
8929 should now be replaced with:
8930 <literallayout class='monospaced'>
8931 KERNEL_MODULE_AUTOLOAD += "rfcomm"
8932 </literallayout>
8933 See the
8934 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8935 variable for more information.
8936 </para>
8937 </glossdef>
8938 </glossentry>
8939
8940 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
8941 <info>
8942 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
8943 </info>
8944 <glossdef>
8945 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008946 Specifies
8947 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
8948 syntax lines for inclusion in the
8949 <filename>/etc/modprobe.d/modname.conf</filename> file.
8950 </para>
8951
8952 <para>
8953 You can use this variable anywhere that it can be
8954 recognized by the kernel recipe or out-of-tree kernel
8955 module recipe (e.g. a machine configuration file, a
8956 distribution configuration file, an append file for the
8957 recipe, or the recipe itself).
8958 If you use this variable, you must also be sure to list
8959 the module name in the
8960 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8961 variable.
8962 </para>
8963
8964 <para>
8965 Here is the general syntax:
8966 <literallayout class='monospaced'>
8967 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
8968 </literallayout>
8969 You must use the kernel module name override.
8970 </para>
8971
8972 <para>
8973 Run <filename>man modprobe.d</filename> in the shell to
8974 find out more information on the exact syntax
8975 you want to provide with <filename>module_conf</filename>.
8976 </para>
8977
8978 <para>
8979 Including <filename>module_conf</filename> causes the
8980 OpenEmbedded build system to populate the
8981 <filename>/etc/modprobe.d/modname.conf</filename>
8982 file with <filename>modprobe.d</filename> syntax lines.
8983 Here is an example that adds the options
8984 <filename>arg1</filename> and <filename>arg2</filename>
8985 to a module named <filename>mymodule</filename>:
8986 <literallayout class='monospaced'>
8987 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
8988 </literallayout>
8989 </para>
8990
8991 <para>
8992 For information on how to specify kernel modules to
8993 auto-load on boot, see the
8994 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8995 variable.
8996 </para>
8997 </glossdef>
8998 </glossentry>
8999
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009000 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
9001 <info>
9002 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."
9003 </info>
9004 <glossdef>
9005 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009006 Controls creation of the <filename>modules-*.tgz</filename>
9007 file.
9008 Set this variable to "0" to disable creation of this
9009 file, which contains all of the kernel modules resulting
9010 from a kernel build.
9011 </para>
9012 </glossdef>
9013 </glossentry>
9014
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009015 <glossentry id='var-MODULE_TARBALL_LINK_NAME'><glossterm>MODULE_TARBALL_LINK_NAME</glossterm>
9016 <info>
9017 MODULE_TARBALL_LINK_NAME[doc] = "The link name of the kernel module tarball."
9018 </info>
9019 <glossdef>
9020 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009021 The link name of the kernel module tarball.
9022 This variable is set in the
9023 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9024 file as follows:
9025 <literallayout class='monospaced'>
9026 MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
9027 </literallayout>
9028 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
9029 variable, which is set in the same file, has the following
9030 value:
9031 <literallayout class='monospaced'>
9032 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
9033 </literallayout>
9034 </para>
9035
9036 <para>
9037 See the
9038 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
9039 variable for additional information.
9040 </para>
9041 </glossdef>
9042 </glossentry>
9043
9044 <glossentry id='var-MODULE_TARBALL_NAME'><glossterm>MODULE_TARBALL_NAME</glossterm>
9045 <info>
9046 MODULE_TARBALL_NAME[doc] = "The base name of the kernel module tarball."
9047 </info>
9048 <glossdef>
9049 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009050 The base name of the kernel module tarball.
9051 This variable is set in the
9052 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9053 file as follows:
9054 <literallayout class='monospaced'>
9055 MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
9056 </literallayout>
9057 The value of the
9058 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
9059 variable, which is set in the same file, has the following
9060 value:
9061 <literallayout class='monospaced'>
9062 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
9063 </literallayout>
9064 </para>
9065 </glossdef>
9066 </glossentry>
9067
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009068<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009069 <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
9070 <info>
9071 MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
9072 </info>
9073 <glossdef>
9074 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009075-->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009076<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009077 Serves the same purpose as
9078 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
9079 but for the "HOST" system, in situations that involve a
9080 "HOST" and a "TARGET" system.
9081 See the
9082 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9083 variable for more information.
9084 </para>
9085
9086 <para>
9087 The default value of this variable is:
9088 <literallayout class='monospaced'>
9089 ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
9090 </literallayout>
9091 </para>
9092 </glossdef>
9093 </glossentry>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009094-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009095
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009096 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
9097 <info>
9098 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
9099 </info>
9100 <glossdef>
9101 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009102 Uniquely identifies the type of the target system for
9103 which packages are being built.
9104 This variable allows output for different types of target
9105 systems to be put into different subdirectories of the same
9106 output directory.
9107 </para>
9108
9109 <para>
9110 The default value of this variable is:
9111 <literallayout class='monospaced'>
9112 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
9113 </literallayout>
9114 Some classes (e.g.
9115 <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
9116 modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
9117 </para>
9118
9119 <para>
9120 See the
9121 <link linkend='var-STAMP'><filename>STAMP</filename></link>
9122 variable for an example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009123 See the
9124 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9125 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009126 </para>
9127 </glossdef>
9128 </glossentry>
9129
9130 </glossdiv>
9131
9132 <glossdiv id='var-glossary-n'><title>N</title>
9133
9134 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
9135 <info>
9136 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
9137 </info>
9138 <glossdef>
9139 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009140 A string identifying the host distribution.
9141 Strings consist of the host distributor ID
9142 followed by the release, as reported by the
9143 <filename>lsb_release</filename> tool
9144 or as read from <filename>/etc/lsb-release</filename>.
9145 For example, when running a build on Ubuntu 12.10, the value
9146 is "Ubuntu-12.10".
9147 If this information is unable to be determined, the value
9148 resolves to "Unknown".
9149 </para>
9150
9151 <para>
9152 This variable is used by default to isolate native shared
9153 state packages for different distributions (e.g. to avoid
9154 problems with <filename>glibc</filename> version
9155 incompatibilities).
9156 Additionally, the variable is checked against
9157 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
9158 if that variable is set.
9159 </para>
9160 </glossdef>
9161 </glossentry>
9162
9163 <glossentry id='var-NM'><glossterm>NM</glossterm>
9164 <info>
9165 NM[doc] = "Minimal command and arguments to run 'nm'."
9166 </info>
9167 <glossdef>
9168 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009169 The minimal command and arguments to run
9170 <filename>nm</filename>.
9171 </para>
9172 </glossdef>
9173 </glossentry>
9174
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009175 <glossentry id='var-NO_GENERIC_LICENSE'><glossterm>NO_GENERIC_LICENSE</glossterm>
9176 <info>
9177 NO_GENERIC_LICENSE[doc] = "Used to allow copying a license that does not exist in common licenses."
9178 </info>
9179 <glossdef>
9180 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009181 Avoids QA errors when you use a non-common, non-CLOSED
9182 license in a recipe.
9183 Packages exist, such as the linux-firmware package, with
9184 many licenses that are not in any way common.
9185 Also, new licenses are added occasionally to avoid
9186 introducing a lot of common license files, which are only
9187 applicable to a specific package.
9188 <filename>NO_GENERIC_LICENSE</filename> is used to allow
9189 copying a license that does not exist in common licenses.
9190 </para>
9191
9192 <para>
9193 The following example shows how to add
9194 <filename>NO_GENERIC_LICENSE</filename> to a recipe:
9195 <literallayout class='monospaced'>
9196 NO_GENERIC_LICENSE[<replaceable>license_name</replaceable>] = "<replaceable>license_file_in_fetched_source</replaceable>"
9197 </literallayout>
9198 The following is an example that uses the
9199 <filename>LICENSE.Abilis.txt</filename> file as the license
9200 from the fetched source:
9201 <literallayout class='monospaced'>
9202 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
9203 </literallayout>
9204 </para>
9205 </glossdef>
9206 </glossentry>
9207
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009208 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
9209 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009210 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 -05009211 </info>
9212 <glossdef>
9213 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009214 Prevents installation of all "recommended-only" packages.
9215 Recommended-only packages are packages installed only
9216 through the
9217 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9218 variable).
9219 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
9220 to "1" turns this feature on:
9221 <literallayout class='monospaced'>
9222 NO_RECOMMENDATIONS = "1"
9223 </literallayout>
9224 </para>
9225
9226 <para>
9227 You can set this variable globally in your
9228 <filename>local.conf</filename> file or you can attach it to
9229 a specific image recipe by using the recipe name override:
9230 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009231 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009232 </literallayout>
9233 </para>
9234
9235 <para>
9236 It is important to realize that if you choose to not install
9237 packages using this variable and some other packages are
9238 dependent on them (i.e. listed in a recipe's
9239 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9240 variable), the OpenEmbedded build system ignores your
9241 request and will install the packages to avoid dependency
9242 errors.
9243 <note>
9244 Some recommended packages might be required for certain
9245 system functionality, such as kernel modules.
9246 It is up to you to add packages with the
9247 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9248 variable.
9249 </note>
9250 </para>
9251
9252 <para>
9253 Support for this variable exists only when using the
9254 IPK and RPM packaging backend.
9255 Support does not exist for DEB.
9256 </para>
9257
9258 <para>
9259 See the
9260 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9261 and the
9262 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
9263 variables for related information.
9264 </para>
9265 </glossdef>
9266 </glossentry>
9267
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009268 <glossentry id='var-NOAUTOPACKAGEDEBUG'><glossterm>NOAUTOPACKAGEDEBUG</glossterm>
9269 <info>
9270 NOAUTOPACKAGEDEBUG[doc] = "Disables auto package from splitting .debug files."
9271 </info>
9272 <glossdef>
9273 <para role="glossdeffirst">
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009274 Disables auto package from splitting
9275 <filename>.debug</filename> files. If a recipe requires
9276 <filename>FILES_${PN}-dbg</filename> to be set manually,
9277 the <filename>NOAUTOPACKAGEDEBUG</filename> can be defined
9278 allowing you to define the content of the debug package.
9279 For example:
9280 <literallayout class='monospaced'>
9281 NOAUTOPACKAGEDEBUG = "1"
9282 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
9283 FILES_${PN}-dbg = "/usr/src/debug/"
9284 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
9285 </literallayout>
9286 </para>
9287 </glossdef>
9288 </glossentry>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009289 </glossdiv>
9290
9291 <glossdiv id='var-glossary-o'><title>O</title>
9292
9293 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
9294 <info>
9295 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
9296 </info>
9297 <glossdef>
9298 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009299 The minimal command and arguments to run
9300 <filename>objcopy</filename>.
9301 </para>
9302 </glossdef>
9303 </glossentry>
9304
9305 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
9306 <info>
9307 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
9308 </info>
9309 <glossdef>
9310 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009311 The minimal command and arguments to run
9312 <filename>objdump</filename>.
9313 </para>
9314 </glossdef>
9315 </glossentry>
9316
9317 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
9318 <info>
9319 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
9320 </info>
9321 <glossdef>
9322 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009323 When inheriting the
9324 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
9325 class, this variable
9326 specifies additional arguments passed to the "sed" command.
9327 The sed command alters any paths in configuration scripts
9328 that have been set up during compilation.
9329 Inheriting this class results in all paths in these scripts
9330 being changed to point into the
9331 <filename>sysroots/</filename> directory so that all builds
9332 that use the script will use the correct directories
9333 for the cross compiling layout.
9334 </para>
9335
9336 <para>
9337 See the <filename>meta/classes/binconfig.bbclass</filename>
9338 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009339 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009340 for details on how this class applies these additional
9341 sed command arguments.
9342 For general information on the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009343 <filename>binconfig</filename> class, see the
9344 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009345 section.
9346 </para>
9347 </glossdef>
9348 </glossentry>
9349
9350 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
9351 <info>
9352 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."
9353 </info>
9354 <glossdef>
9355 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009356 An internal variable used to tell the OpenEmbedded build
9357 system what Python modules to import for every Python
9358 function run by the system.
9359 </para>
9360
9361 <note>
9362 Do not set this variable.
9363 It is for internal use only.
9364 </note>
9365 </glossdef>
9366 </glossentry>
9367
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009368 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
9369 <info>
9370 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."
9371 </info>
9372 <glossdef>
9373 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009374 The name of the build environment setup script for the
9375 purposes of setting up the environment within the
9376 extensible SDK.
9377 The default value is "oe-init-build-env".
9378 </para>
9379
9380 <para>
9381 If you use a custom script to set up your build
9382 environment, set the
9383 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
9384 name.
9385 </para>
9386 </glossdef>
9387 </glossentry>
9388
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009389 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
9390 <info>
9391 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
9392 </info>
9393 <glossdef>
9394 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009395 Controls how the OpenEmbedded build system spawns
9396 interactive terminals on the host development system
9397 (e.g. using the BitBake command with the
9398 <filename>-c devshell</filename> command-line option).
9399 For more information, see the
9400 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009401 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009402 </para>
9403
9404 <para>
9405 You can use the following values for the
9406 <filename>OE_TERMINAL</filename> variable:
9407 <literallayout class='monospaced'>
9408 auto
9409 gnome
9410 xfce
9411 rxvt
9412 screen
9413 konsole
9414 none
9415 </literallayout>
9416 </para>
9417 </glossdef>
9418 </glossentry>
9419
9420 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
9421 <info>
9422 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
9423 </info>
9424 <glossdef>
9425 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009426 The directory from which the top-level build environment
9427 setup script is sourced.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009428 The Yocto Project provides a top-level build environment
9429 setup script:
9430 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
9431 When you run this script, the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009432 <filename>OEROOT</filename> variable resolves to the
9433 directory that contains the script.
9434 </para>
9435
9436 <para>
9437 For additional information on how this variable is used,
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009438 see the initialization script.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009439 </para>
9440 </glossdef>
9441 </glossentry>
9442
9443 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
9444 <info>
9445 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
9446 </info>
9447 <glossdef>
9448 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009449 Declares the oldest version of the Linux kernel that the
9450 produced binaries must support.
9451 This variable is passed into the build of the Embedded
9452 GNU C Library (<filename>glibc</filename>).
9453 </para>
9454
9455 <para>
9456 The default for this variable comes from the
9457 <filename>meta/conf/bitbake.conf</filename> configuration
9458 file.
9459 You can override this default by setting the variable
9460 in a custom distribution configuration file.
9461 </para>
9462 </glossdef>
9463 </glossentry>
9464
9465 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
9466 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009467 OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009468 </info>
9469 <glossdef>
9470 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009471 A colon-separated list of overrides that currently apply.
9472 Overrides are a BitBake mechanism that allows variables to
9473 be selectively overridden at the end of parsing.
9474 The set of overrides in <filename>OVERRIDES</filename>
9475 represents the "state" during building, which includes
9476 the current recipe being built, the machine for which
9477 it is being built, and so forth.
9478 </para>
9479
9480 <para>
9481 As an example, if the string "an-override" appears as an
9482 element in the colon-separated list in
9483 <filename>OVERRIDES</filename>, then the following
9484 assignment will override <filename>FOO</filename> with the
9485 value "overridden" at the end of parsing:
9486 <literallayout class='monospaced'>
9487 FOO_an-override = "overridden"
9488 </literallayout>
9489 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009490 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009491 section in the BitBake User Manual for more information on
9492 the overrides mechanism.
9493 </para>
9494
9495 <para>
9496 The default value of <filename>OVERRIDES</filename>
9497 includes the values of the
9498 <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
9499 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
9500 and
9501 <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
9502 variables.
9503 Another important override included by default is
9504 <filename>pn-${PN}</filename>.
9505 This override allows variables to be set for a single
9506 recipe within configuration (<filename>.conf</filename>)
9507 files.
9508 Here is an example:
9509 <literallayout class='monospaced'>
9510 FOO_pn-myrecipe = "myrecipe-specific value"
9511 </literallayout>
9512 <note><title>Tip</title>
9513 An easy way to see what overrides apply is to search for
9514 <filename>OVERRIDES</filename> in the output of the
9515 <filename>bitbake -e</filename> command.
9516 See the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009517 "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-debugging-viewing-variable-values'>Viewing Variable Values</ulink>"
9518 section in the Yocto Project Development Tasks
9519 Manual for more information.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009520 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009521 </para>
9522 </glossdef>
9523 </glossentry>
9524 </glossdiv>
9525
9526 <glossdiv id='var-glossary-p'><title>P</title>
9527
9528 <glossentry id='var-P'><glossterm>P</glossterm>
9529 <info>
9530 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
9531 </info>
9532 <glossdef>
9533 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009534 The recipe name and version.
9535 <filename>P</filename> is comprised of the following:
9536 <literallayout class='monospaced'>
9537 ${PN}-${PV}
9538 </literallayout>
9539 </para>
9540 </glossdef>
9541 </glossentry>
9542
Andrew Geissler1e34c2d2020-05-29 16:02:59 -05009543 <glossentry id='var-PACKAGE_ADD_METADATA'><glossterm>PACKAGE_ADD_METADATA</glossterm>
9544 <info>
9545 PACKAGE_ADD_METADATA[doc] = "This variable defines additional metadata to add to packages."
9546 </info>
9547 <glossdef>
9548 <para role="glossdeffirst">
9549<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9550 This variable defines additional metdata to add to packages.
9551 </para>
9552
9553 <para>
9554 You may find you need to inject additional metadata into
9555 packages. This variable allows you to do that by setting
9556 the injected data as the value. Multiple fields can be
9557 added by splitting the content with the literal separator
9558 "\n".
9559 </para>
9560
9561 <para>
9562 The suffixes '_IPK', '_DEB', or '_RPM' can be applied to
9563 the variable to do package type specific settings. It can
9564 also be made package specific by using the package name as
9565 a suffix.
9566 </para>
9567
9568 <para>
9569 You can find out more about applying this variable in
9570 the
9571 "<ulink url='&YOCTO_DOCS_DEV_URL;#adding-custom-metadata-to-packages'>Adding custom metadata to packages</ulink>"
9572 section in the Yocto Project Development Tasks Manual.
9573 </para>
9574 </glossdef>
9575 </glossentry>
9576
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009577 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
9578 <info>
9579 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
9580 </info>
9581 <glossdef>
9582 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009583 The architecture of the resulting package or packages.
9584 </para>
9585
9586 <para>
9587 By default, the value of this variable is set to
9588 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
9589 when building for the target,
Brad Bishop316dfdd2018-06-25 12:45:53 -04009590 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>
9591 when building for the
9592 build host, and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009593 for the SDK.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009594 <note>
9595 See
9596 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>
9597 for more information.
9598 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009599 However, if your recipe's output packages are built
Brad Bishop316dfdd2018-06-25 12:45:53 -04009600 specific to the target machine rather than generally for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009601 the architecture of the machine, you should set
9602 <filename>PACKAGE_ARCH</filename> to the value of
9603 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
9604 in the recipe as follows:
9605 <literallayout class='monospaced'>
9606 PACKAGE_ARCH = "${MACHINE_ARCH}"
9607 </literallayout>
9608 </para>
9609 </glossdef>
9610 </glossentry>
9611
9612 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
9613 <info>
9614 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
9615 </info>
9616 <glossdef>
9617 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009618 Specifies a list of architectures compatible with
9619 the target machine.
9620 This variable is set automatically and should not
9621 normally be hand-edited.
9622 Entries are separated using spaces and listed in order
9623 of priority.
9624 The default value for
9625 <filename>PACKAGE_ARCHS</filename> is "all any noarch
9626 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
9627 </para>
9628 </glossdef>
9629 </glossentry>
9630
9631 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
9632 <info>
9633 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."
9634 </info>
9635 <glossdef>
9636 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009637 Enables easily adding packages to
9638 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
9639 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
9640 so that those added packages can pick up files that would normally be
9641 included in the default package.
9642 </para>
9643 </glossdef>
9644 </glossentry>
9645
9646 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
9647 <info>
9648 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."
9649 </info>
9650 <glossdef>
9651 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009652 This variable, which is set in the
9653 <filename>local.conf</filename> configuration file found in
9654 the <filename>conf</filename> folder of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009655 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009656 specifies the package manager the OpenEmbedded build system
9657 uses when packaging data.
9658 </para>
9659
9660 <para>
9661 You can provide one or more of the following arguments for
9662 the variable:
9663 <literallayout class='monospaced'>
9664 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
9665 </literallayout>
9666 <note><title>Warning</title>
9667 While it is a legal option, the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009668 <filename>package_tar</filename> class has limited
9669 functionality due to no support for package
9670 dependencies by that backend.
9671 Therefore, it is recommended that you do not use it.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009672 </note>
9673 The build system uses only the first argument in the list
9674 as the package manager when creating your image or SDK.
9675 However, packages will be created using any additional
9676 packaging classes you specify.
9677 For example, if you use the following in your
9678 <filename>local.conf</filename> file:
9679 <literallayout class='monospaced'>
9680 PACKAGE_CLASSES ?= "package_ipk"
9681 </literallayout>
9682 The OpenEmbedded build system uses the IPK package manager
9683 to create your image or SDK.
9684 </para>
9685
9686 <para>
9687 For information on packaging and build performance effects
9688 as a result of the package manager in use, see the
9689 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
9690 section.
9691 </para>
9692 </glossdef>
9693 </glossentry>
9694
9695 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
9696 <info>
9697 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)."
9698 </info>
9699 <glossdef>
9700 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009701 Determines how to split up the binary and debug information
9702 when creating <filename>*-dbg</filename> packages to be
9703 used with the GNU Project Debugger (GDB).
9704 </para>
9705
9706 <para>
9707 With the
9708 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
9709 you can control where debug information, which can include
9710 or exclude source files, is stored:
9711 <itemizedlist>
9712 <listitem><para>
9713 ".debug": Debug symbol files are placed next
9714 to the binary in a <filename>.debug</filename>
9715 directory on the target.
9716 For example, if a binary is installed into
9717 <filename>/bin</filename>, the corresponding debug
9718 symbol files are installed in
9719 <filename>/bin/.debug</filename>.
9720 Source files are placed in
9721 <filename>/usr/src/debug</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009722 </para></listitem>
9723 <listitem><para>
9724 "debug-file-directory": Debug symbol files are
9725 placed under <filename>/usr/lib/debug</filename>
9726 on the target, and separated by the path from where
9727 the binary is installed.
9728 For example, if a binary is installed in
9729 <filename>/bin</filename>, the corresponding debug
9730 symbols are installed in
9731 <filename>/usr/lib/debug/bin</filename>.
9732 Source files are placed in
9733 <filename>/usr/src/debug</filename>.
9734 </para></listitem>
9735 <listitem><para>
9736 "debug-without-src": The same behavior as
9737 ".debug" previously described with the exception
9738 that no source files are installed.
9739 </para></listitem>.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009740 <listitem><para>
9741 "debug-with-srcpkg": The same behavior as
9742 ".debug" previously described with the exception
9743 that all source files are placed in a separate
9744 <filename>*-src</filename> pkg.
Brad Bishop19323692019-04-05 15:28:33 -04009745 This is the default behavior.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009746 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009747 </itemizedlist>
9748 </para>
9749
9750 <para>
9751 You can find out more about debugging using GDB by reading
9752 the
9753 "<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 -05009754 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009755 </para>
9756 </glossdef>
9757 </glossentry>
9758
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009759 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
9760 <info>
9761 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
9762 </info>
9763 <glossdef>
9764 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009765 Prevents specific packages from being installed when
9766 you are installing complementary packages.
9767 </para>
9768
9769 <para>
9770 You might find that you want to prevent installing certain
9771 packages when you are installing complementary packages.
9772 For example, if you are using
9773 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
9774 to install <filename>dev-pkgs</filename>, you might not want
9775 to install all packages from a particular multilib.
9776 If you find yourself in this situation, you can use the
9777 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
9778 to specify regular expressions to match the packages you
9779 want to exclude.
9780 </para>
9781 </glossdef>
9782 </glossentry>
9783
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009784 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
9785 <info>
9786 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
9787 </info>
9788 <glossdef>
9789 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009790 Lists packages that should not be installed into an image.
9791 For example:
9792 <literallayout class='monospaced'>
9793 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
9794 </literallayout>
9795 </para>
9796
9797 <para>
9798 You can set this variable globally in your
9799 <filename>local.conf</filename> file or you can attach it to
9800 a specific image recipe by using the recipe name override:
9801 <literallayout class='monospaced'>
9802 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
9803 </literallayout>
9804 </para>
9805
9806 <para>
9807 If you choose to not install
9808 a package using this variable and some other package is
9809 dependent on it (i.e. listed in a recipe's
9810 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9811 variable), the OpenEmbedded build system generates a fatal
9812 installation error.
9813 Because the build system halts the process with a fatal
9814 error, you can use the variable with an iterative
9815 development process to remove specific components from a
9816 system.
9817 </para>
9818
9819 <para>
9820 Support for this variable exists only when using the
9821 IPK and RPM packaging backend.
9822 Support does not exist for DEB.
9823 </para>
9824
9825 <para>
9826 See the
9827 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
9828 and the
9829 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9830 variables for related information.
9831 </para>
9832 </glossdef>
9833 </glossentry>
9834
9835 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
9836 <info>
9837 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."
9838 </info>
9839 <glossdef>
9840 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009841 Specifies the list of architectures compatible with the device CPU.
9842 This variable is useful when you build for several different devices that use
9843 miscellaneous processors such as XScale and ARM926-EJS.
9844 </para>
9845 </glossdef>
9846 </glossentry>
9847
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009848 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
9849 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009850 PACKAGE_FEED_ARCHS[doc] = "Optionally specifies user-defined package architectures when constructing package feed URIs."
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009851 </info>
9852 <glossdef>
9853 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -04009854 Optionally specifies the package architectures used as
9855 part of the package feed URIs during the build.
9856 When used, the <filename>PACKAGE_FEED_ARCHS</filename>
9857 variable is appended to the final package feed URI, which
9858 is constructed using the
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009859 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9860 and
9861 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
9862 variables.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009863 <note><title>Tip</title>
9864 You can use the <filename>PACKAGE_FEEDS_ARCHS</filename>
9865 variable to whitelist specific package architectures.
9866 If you do not need to whitelist specific architectures,
9867 which is a common case, you can omit this variable.
9868 Omitting the variable results in all available
9869 architectures for the current machine being included
9870 into remote package feeds.
9871 </note>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009872 </para>
9873
9874 <para>
9875 Consider the following example where the
9876 <filename>PACKAGE_FEED_URIS</filename>,
9877 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9878 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9879 defined in your <filename>local.conf</filename> file:
9880 <literallayout class='monospaced'>
9881 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9882 https://example.com/packagerepos/updates"
9883 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9884 PACKAGE_FEED_ARCHS = "all core2-64"
9885 </literallayout>
9886 Given these settings, the resulting package feeds are
9887 as follows:
9888 <literallayout class='monospaced'>
9889 https://example.com/packagerepos/release/rpm/all
9890 https://example.com/packagerepos/release/rpm/core2-64
9891 https://example.com/packagerepos/release/rpm-dev/all
9892 https://example.com/packagerepos/release/rpm-dev/core2-64
9893 https://example.com/packagerepos/updates/rpm/all
9894 https://example.com/packagerepos/updates/rpm/core2-64
9895 https://example.com/packagerepos/updates/rpm-dev/all
9896 https://example.com/packagerepos/updates/rpm-dev/core2-64
9897 </literallayout>
9898 </para>
9899 </glossdef>
9900 </glossentry>
9901
9902 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
9903 <info>
9904 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
9905 </info>
9906 <glossdef>
9907 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009908 Specifies the base path used when constructing package feed
9909 URIs.
9910 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
9911 makes up the middle portion of a package feed URI used
9912 by the OpenEmbedded build system.
9913 The base path lies between the
9914 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9915 and
9916 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9917 variables.
9918 </para>
9919
9920 <para>
9921 Consider the following example where the
9922 <filename>PACKAGE_FEED_URIS</filename>,
9923 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9924 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9925 defined in your <filename>local.conf</filename> file:
9926 <literallayout class='monospaced'>
9927 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9928 https://example.com/packagerepos/updates"
9929 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9930 PACKAGE_FEED_ARCHS = "all core2-64"
9931 </literallayout>
9932 Given these settings, the resulting package feeds are
9933 as follows:
9934 <literallayout class='monospaced'>
9935 https://example.com/packagerepos/release/rpm/all
9936 https://example.com/packagerepos/release/rpm/core2-64
9937 https://example.com/packagerepos/release/rpm-dev/all
9938 https://example.com/packagerepos/release/rpm-dev/core2-64
9939 https://example.com/packagerepos/updates/rpm/all
9940 https://example.com/packagerepos/updates/rpm/core2-64
9941 https://example.com/packagerepos/updates/rpm-dev/all
9942 https://example.com/packagerepos/updates/rpm-dev/core2-64
9943 </literallayout>
9944 </para>
9945 </glossdef>
9946 </glossentry>
9947
9948 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
9949 <info>
9950 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
9951 </info>
9952 <glossdef>
9953 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009954 Specifies the front portion of the package feed URI
9955 used by the OpenEmbedded build system.
9956 Each final package feed URI is comprised of
9957 <filename>PACKAGE_FEED_URIS</filename>,
9958 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
9959 and
9960 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9961 variables.
9962 </para>
9963
9964 <para>
9965 Consider the following example where the
9966 <filename>PACKAGE_FEED_URIS</filename>,
9967 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9968 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9969 defined in your <filename>local.conf</filename> file:
9970 <literallayout class='monospaced'>
9971 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9972 https://example.com/packagerepos/updates"
9973 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9974 PACKAGE_FEED_ARCHS = "all core2-64"
9975 </literallayout>
9976 Given these settings, the resulting package feeds are
9977 as follows:
9978 <literallayout class='monospaced'>
9979 https://example.com/packagerepos/release/rpm/all
9980 https://example.com/packagerepos/release/rpm/core2-64
9981 https://example.com/packagerepos/release/rpm-dev/all
9982 https://example.com/packagerepos/release/rpm-dev/core2-64
9983 https://example.com/packagerepos/updates/rpm/all
9984 https://example.com/packagerepos/updates/rpm/core2-64
9985 https://example.com/packagerepos/updates/rpm-dev/all
9986 https://example.com/packagerepos/updates/rpm-dev/core2-64
9987 </literallayout>
9988 </para>
9989 </glossdef>
9990 </glossentry>
9991
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009992 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
9993 <info>
9994 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."
9995 </info>
9996 <glossdef>
9997 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009998 The final list of packages passed to the package manager
9999 for installation into the image.
10000 </para>
10001
10002 <para>
10003 Because the package manager controls actual installation
10004 of all packages, the list of packages passed using
10005 <filename>PACKAGE_INSTALL</filename> is not the final list
10006 of packages that are actually installed.
10007 This variable is internal to the image construction
10008 code.
10009 Consequently, in general, you should use the
10010 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
10011 variable to specify packages for installation.
10012 The exception to this is when working with
10013 the
10014 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
10015 image.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010016 When working with an initial RAM filesystem (initramfs)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010017 image, use the <filename>PACKAGE_INSTALL</filename>
10018 variable.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010019 For information on creating an initramfs, see the
10020 "<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 -050010021 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010022 </para>
10023 </glossdef>
10024 </glossentry>
10025
10026 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
10027 <info>
10028 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."
10029 </info>
10030 <glossdef>
10031 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010032 Specifies a list of packages the OpenEmbedded build
10033 system attempts to install when creating an image.
10034 If a listed package fails to install, the build system
10035 does not generate an error.
10036 This variable is generally not user-defined.
10037 </para>
10038 </glossdef>
10039 </glossentry>
10040
10041 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
10042 <info>
10043 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."
10044 </info>
10045 <glossdef>
10046 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010047 Specifies a list of functions run to pre-process the
10048 <link linkend='var-PKGD'><filename>PKGD</filename></link>
10049 directory prior to splitting the files out to individual
10050 packages.
10051 </para>
10052 </glossdef>
10053 </glossentry>
10054
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010055 <glossentry id='var-PACKAGE_WRITE_DEPS'><glossterm>PACKAGE_WRITE_DEPS</glossterm>
10056 <info>
10057 PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools."
10058 </info>
10059 <glossdef>
10060 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010061 Specifies a list of dependencies for post-installation and
10062 pre-installation scripts on native/cross tools.
10063 If your post-installation or pre-installation script can
10064 execute at rootfs creation time rather than on the
10065 target but depends on a native tool in order to execute,
10066 you need to list the tools in
Brad Bishopd5ae7d92018-06-14 09:52:03 -070010067 <filename>PACKAGE_WRITE_DEPS</filename>.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010068 </para>
10069
10070 <para>
10071 For information on running post-installation scripts, see
10072 the
10073 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-post-installation-scripts'>Post-Installation Scripts</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010074 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010075 </para>
10076 </glossdef>
10077 </glossentry>
10078
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010079 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
10080 <info>
10081 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
10082 </info>
10083 <glossdef>
10084 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010085 This variable provides a means of enabling or disabling
10086 features of a recipe on a per-recipe basis.
10087 <filename>PACKAGECONFIG</filename> blocks are defined
10088 in recipes when you specify features and then arguments
10089 that define feature behaviors.
Andrew Geissler82c905d2020-04-13 13:39:40 -050010090 Here is the basic block structure (broken over multiple
10091 lines for readability):
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010092 <literallayout class='monospaced'>
10093 PACKAGECONFIG ??= "f1 f2 f3 ..."
Andrew Geissler82c905d2020-04-13 13:39:40 -050010094 PACKAGECONFIG[f1] = "\
10095 --with-f1, \
10096 --without-f1, \
10097 build-deps-for-f1, \
10098 runtime-deps-for-f1, \
10099 runtime-recommends-for-f1, \
10100 packageconfig-conflicts-for-f1 \
10101 "
10102 PACKAGECONFIG[f2] = "\
10103 ... and so on and so on ...
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010104 </literallayout>
10105 </para>
10106
10107 <para>
10108 The <filename>PACKAGECONFIG</filename>
10109 variable itself specifies a space-separated list of the
10110 features to enable.
10111 Following the features, you can determine the behavior of
Andrew Geissler82c905d2020-04-13 13:39:40 -050010112 each feature by providing up to six order-dependent
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010113 arguments, which are separated by commas.
10114 You can omit any argument you like but must retain the
10115 separating commas.
10116 The order is important and specifies the following:
10117 <orderedlist>
10118 <listitem><para>Extra arguments
10119 that should be added to the configure script
10120 argument list
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010121 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
10122 or
10123 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010124 if the feature is enabled.</para></listitem>
10125 <listitem><para>Extra arguments
10126 that should be added to <filename>EXTRA_OECONF</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010127 or <filename>PACKAGECONFIG_CONFARGS</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010128 if the feature is disabled.
10129 </para></listitem>
10130 <listitem><para>Additional build dependencies
10131 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
10132 that should be added if the feature is enabled.
10133 </para></listitem>
10134 <listitem><para>Additional runtime dependencies
10135 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10136 that should be added if the feature is enabled.
10137 </para></listitem>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010138 <listitem><para>Additional runtime recommendations
10139 (<link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>)
10140 that should be added if the feature is enabled.
10141 </para></listitem>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010142 <listitem><para>Any conflicting (that is, mutually
10143 exclusive) <filename>PACKAGECONFIG</filename>
10144 settings for this feature.
10145 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010146 </orderedlist>
10147 </para>
10148
10149 <para>
10150 Consider the following
10151 <filename>PACKAGECONFIG</filename> block taken from the
10152 <filename>librsvg</filename> recipe.
Andrew Geissler82c905d2020-04-13 13:39:40 -050010153 In this example the feature is <filename>gtk</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010154 which has three arguments that determine the feature's
10155 behavior.
10156 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010157 PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010158 </literallayout>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010159 The <filename>--with-gtk3</filename> and
10160 <filename>gtk+3</filename> arguments apply only if
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010161 the feature is enabled.
Andrew Geissler82c905d2020-04-13 13:39:40 -050010162 In this case, <filename>--with-gtk3</filename> is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010163 added to the configure script argument list and
Andrew Geissler82c905d2020-04-13 13:39:40 -050010164 <filename>gtk+3</filename> is added to
Brad Bishop316dfdd2018-06-25 12:45:53 -040010165 <filename>DEPENDS</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010166 On the other hand, if the feature is disabled say through
10167 a <filename>.bbappend</filename> file in another layer, then
Andrew Geissler82c905d2020-04-13 13:39:40 -050010168 the second argument <filename>--without-gtk3</filename> is
10169 added to the configure script instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010170 </para>
10171
10172 <para>
10173 The basic <filename>PACKAGECONFIG</filename> structure
10174 previously described holds true regardless of whether you
10175 are creating a block or changing a block.
10176 When creating a block, use the structure inside your
10177 recipe.
10178 </para>
10179
10180 <para>
10181 If you want to change an existing
10182 <filename>PACKAGECONFIG</filename> block, you can do so
10183 one of two ways:
10184 <itemizedlist>
10185 <listitem><para><emphasis>Append file:</emphasis>
10186 Create an append file named
10187 <replaceable>recipename</replaceable><filename>.bbappend</filename>
10188 in your layer and override the value of
10189 <filename>PACKAGECONFIG</filename>.
10190 You can either completely override the variable:
10191 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010192 PACKAGECONFIG = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010193 </literallayout>
10194 Or, you can just append the variable:
10195 <literallayout class='monospaced'>
10196 PACKAGECONFIG_append = " f4"
10197 </literallayout></para></listitem>
10198 <listitem><para><emphasis>Configuration file:</emphasis>
10199 This method is identical to changing the block
10200 through an append file except you edit your
10201 <filename>local.conf</filename> or
10202 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
10203 As with append files previously described,
10204 you can either completely override the variable:
10205 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010206 PACKAGECONFIG_pn-<replaceable>recipename</replaceable> = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010207 </literallayout>
10208 Or, you can just amend the variable:
10209 <literallayout class='monospaced'>
10210 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
10211 </literallayout></para></listitem>
10212 </itemizedlist>
10213 </para>
10214 </glossdef>
10215 </glossentry>
10216
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010217 <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
10218 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010219 PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from the PACKAGECONFIG setting."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010220 </info>
10221 <glossdef>
10222 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010223 A space-separated list of configuration options generated
10224 from the
10225 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
10226 setting.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010227 </para>
10228
10229 <para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010230 Classes such as
10231 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
10232 and
10233 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
10234 use <filename>PACKAGECONFIG_CONFARGS</filename> to pass
Brad Bishop316dfdd2018-06-25 12:45:53 -040010235 <filename>PACKAGECONFIG</filename> options to
10236 <filename>configure</filename> and
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010237 <filename>cmake</filename>, respectively.
10238 If you are using
10239 <filename>PACKAGECONFIG</filename> but not a class that
10240 handles the <filename>do_configure</filename> task, then
10241 you need to use
10242 <filename>PACKAGECONFIG_CONFARGS</filename> appropriately.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010243 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010244 </glossdef>
10245 </glossentry>
10246
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010247 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
10248 <info>
10249 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
10250 </info>
10251 <glossdef>
10252 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010253 For recipes inheriting the
10254 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
10255 class, setting
10256 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
10257 "1" specifies that the normal complementary packages
10258 (i.e. <filename>-dev</filename>,
10259 <filename>-dbg</filename>, and so forth) should not be
10260 automatically created by the
10261 <filename>packagegroup</filename> recipe, which is the
10262 default behavior.
10263 </para>
10264 </glossdef>
10265 </glossentry>
10266
10267 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
10268 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010269 PACKAGES[doc] = "The list of packages the recipe creates."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010270 </info>
10271 <glossdef>
10272 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040010273 The list of packages the recipe creates.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010274 The default value is the following:
10275 <literallayout class='monospaced'>
10276 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
10277 </literallayout>
10278 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010279
10280 <para>
10281 During packaging, the
10282 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
10283 task goes through <filename>PACKAGES</filename> and uses
10284 the
10285 <link linkend='var-FILES'><filename>FILES</filename></link>
10286 variable corresponding to each package to assign files to
10287 the package.
10288 If a file matches the <filename>FILES</filename> variable
10289 for more than one package in <filename>PACKAGES</filename>,
10290 it will be assigned to the earliest (leftmost) package.
10291 </para>
10292
10293 <para>
10294 Packages in the variable's list that are empty (i.e. where
10295 none of the patterns in
10296 <filename>FILES_</filename><replaceable>pkg</replaceable>
10297 match any files installed by the
10298 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10299 task) are not generated, unless generation is forced through
10300 the
10301 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
10302 variable.
10303 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010304 </glossdef>
10305 </glossentry>
10306
10307 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
10308 <info>
10309 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
10310 </info>
10311 <glossdef>
10312 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010313 A promise that your recipe satisfies runtime dependencies
10314 for optional modules that are found in other recipes.
10315 <filename>PACKAGES_DYNAMIC</filename>
10316 does not actually satisfy the dependencies, it only states that
10317 they should be satisfied.
10318 For example, if a hard, runtime dependency
10319 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10320 of another package is satisfied
10321 at build time through the <filename>PACKAGES_DYNAMIC</filename>
10322 variable, but a package with the module name is never actually
10323 produced, then the other package will be broken.
10324 Thus, if you attempt to include that package in an image,
10325 you will get a dependency failure from the packaging system
10326 during the
10327 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
10328 task.
10329 </para>
10330
10331 <para>
10332 Typically, if there is a chance that such a situation can
10333 occur and the package that is not created is valid
10334 without the dependency being satisfied, then you should use
10335 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
10336 (a soft runtime dependency) instead of
10337 <filename>RDEPENDS</filename>.
10338 </para>
10339
10340 <para>
10341 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
10342 variable when you are splitting packages, see the
10343 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010344 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010345 </para>
10346 </glossdef>
10347 </glossentry>
10348
10349 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
10350 <info>
10351 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
10352 </info>
10353 <glossdef>
10354 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010355 Specifies a list of functions run to perform additional
10356 splitting of files into individual packages.
10357 Recipes can either prepend to this variable or prepend
10358 to the <filename>populate_packages</filename> function
10359 in order to perform additional package splitting.
10360 In either case, the function should set
10361 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
10362 <link linkend='var-FILES'><filename>FILES</filename></link>,
10363 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10364 and other packaging variables appropriately in order to
10365 perform the desired splitting.
10366 </para>
10367 </glossdef>
10368 </glossentry>
10369
10370 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
10371 <info>
10372 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."
10373 </info>
10374 <glossdef>
10375 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010376 Extra options passed to the <filename>make</filename>
10377 command during the
10378 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
10379 task in order to specify parallel compilation on the local
10380 build host.
10381 This variable is usually in the form "-j <replaceable>x</replaceable>",
10382 where <replaceable>x</replaceable> represents the maximum
10383 number of parallel threads <filename>make</filename> can
10384 run.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010385 <note><title>Caution</title>
10386 In order for <filename>PARALLEL_MAKE</filename> to be
10387 effective, <filename>make</filename> must be called
10388 with
10389 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10390 An easy way to ensure this is to use the
10391 <filename>oe_runmake</filename> function.
10392 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010393 </para>
10394
10395 <para>
10396 By default, the OpenEmbedded build system automatically
10397 sets this variable to be equal to the number of cores the
10398 build system uses.
10399 <note>
10400 If the software being built experiences dependency
10401 issues during the <filename>do_compile</filename>
10402 task that result in race conditions, you can clear
10403 the <filename>PARALLEL_MAKE</filename> variable within
10404 the recipe as a workaround.
10405 For information on addressing race conditions, see the
10406 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010407 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010408 </note>
10409 For single socket systems (i.e. one CPU), you should not
10410 have to override this variable to gain optimal parallelism
10411 during builds.
10412 However, if you have very large systems that employ
10413 multiple physical CPUs, you might want to make sure the
10414 <filename>PARALLEL_MAKE</filename> variable is not
10415 set higher than "-j 20".
10416 </para>
10417
10418 <para>
10419 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010420 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
10421 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010422 </para>
10423 </glossdef>
10424 </glossentry>
10425
10426 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
10427 <info>
10428 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
10429 </info>
10430 <glossdef>
10431 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010432 Extra options passed to the
10433 <filename>make install</filename> command during the
10434 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10435 task in order to specify parallel installation.
10436 This variable defaults to the value of
10437 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010438 <note><title>Notes and Cautions</title>
10439 <para>In order for <filename>PARALLEL_MAKEINST</filename>
10440 to be
10441 effective, <filename>make</filename> must be called
10442 with
10443 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10444 An easy way to ensure this is to use the
10445 <filename>oe_runmake</filename> function.</para>
10446
10447 <para>If the software being built experiences
10448 dependency issues during the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010449 <filename>do_install</filename> task that result in
10450 race conditions, you can clear the
10451 <filename>PARALLEL_MAKEINST</filename> variable within
10452 the recipe as a workaround.
10453 For information on addressing race conditions, see the
10454 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010455 section in the Yocto Project Development Tasks Manual.
10456 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010457 </note>
10458 </para>
10459 </glossdef>
10460 </glossentry>
10461
10462 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
10463 <info>
10464 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
10465 </info>
10466 <glossdef>
10467 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010468 Determines the action to take when a patch fails.
10469 You can set this variable to one of two values: "noop" and
10470 "user".
10471 </para>
10472
10473 <para>
10474 The default value of "noop" causes the build to simply fail
10475 when the OpenEmbedded build system cannot successfully
10476 apply a patch.
10477 Setting the value to "user" causes the build system to
10478 launch a shell and places you in the right location so that
10479 you can manually resolve the conflicts.
10480 </para>
10481
10482 <para>
10483 Set this variable in your
10484 <filename>local.conf</filename> file.
10485 </para>
10486 </glossdef>
10487 </glossentry>
10488
10489 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
10490 <info>
10491 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
10492 </info>
10493 <glossdef>
10494 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010495 Specifies the utility used to apply patches for a recipe
10496 during the
10497 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
10498 task.
10499 You can specify one of three utilities: "patch", "quilt", or
10500 "git".
10501 The default utility used is "quilt" except for the
10502 quilt-native recipe itself.
10503 Because the quilt tool is not available at the
10504 time quilt-native is being patched, it uses "patch".
10505 </para>
10506
10507 <para>
10508 If you wish to use an alternative patching tool, set the
10509 variable in the recipe using one of the following:
10510 <literallayout class='monospaced'>
10511 PATCHTOOL = "patch"
10512 PATCHTOOL = "quilt"
10513 PATCHTOOL = "git"
10514 </literallayout>
10515 </para>
10516 </glossdef>
10517 </glossentry>
10518
10519 <glossentry id='var-PE'><glossterm>PE</glossterm>
10520 <info>
10521 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."
10522 </info>
10523 <glossdef>
10524 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010525 The epoch of the recipe.
10526 By default, this variable is unset.
10527 The variable is used to make upgrades possible when the
10528 versioning scheme changes in some backwards incompatible
10529 way.
10530 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010531
10532 <para>
10533 <filename>PE</filename> is the default value of the
10534 <link linkend='var-PKGE'><filename>PKGE</filename></link>
10535 variable.
10536 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010537 </glossdef>
10538 </glossentry>
10539
10540 <glossentry id='var-PF'><glossterm>PF</glossterm>
10541 <info>
10542 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
10543 </info>
10544 <glossdef>
10545 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010546 Specifies the recipe or package name and includes all version and revision
10547 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
10548 <filename>bash-4.2-r1/</filename>).
10549 This variable is comprised of the following:
10550 <literallayout class='monospaced'>
10551 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
10552 </literallayout>
10553 </para>
10554 </glossdef>
10555 </glossentry>
10556
10557 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
10558 <info>
10559 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
10560 </info>
10561 <glossdef>
10562 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010563 When inheriting the
10564 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
10565 class, this variable identifies packages that contain
10566 the pixbuf loaders used with
10567 <filename>gdk-pixbuf</filename>.
10568 By default, the <filename>pixbufcache</filename> class
10569 assumes that the loaders are in the recipe's main package
10570 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
10571 Use this variable if the loaders you need are in a package
10572 other than that main package.
10573 </para>
10574 </glossdef>
10575 </glossentry>
10576
10577 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
10578 <info>
10579 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."
10580 </info>
10581 <glossdef>
10582 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010583 The name of the resulting package created by the
10584 OpenEmbedded build system.
10585 <note>
10586 When using the <filename>PKG</filename> variable, you
10587 must use a package name override.
10588 </note>
10589 </para>
10590
10591 <para>
10592 For example, when the
10593 <link linkend='ref-classes-debian'><filename>debian</filename></link>
10594 class renames the output package, it does so by setting
10595 <filename>PKG_<replaceable>packagename</replaceable></filename>.
10596 </para>
10597 </glossdef>
10598 </glossentry>
10599
10600 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
10601 <info>
10602 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
10603 </info>
10604 <glossdef>
10605 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010606 The path to <filename>pkg-config</filename> files for the
10607 current build context.
10608 <filename>pkg-config</filename> reads this variable
10609 from the environment.
10610 </para>
10611 </glossdef>
10612 </glossentry>
10613
10614 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
10615 <info>
10616 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
10617 </info>
10618 <glossdef>
10619 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010620 Points to the destination directory for files to be
10621 packaged before they are split into individual packages.
10622 This directory defaults to the following:
10623 <literallayout class='monospaced'>
10624 ${WORKDIR}/package
10625 </literallayout>
10626 </para>
10627
10628 <para>
10629 Do not change this default.
10630 </para>
10631 </glossdef>
10632 </glossentry>
10633
10634 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
10635 <info>
10636 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
10637 </info>
10638 <glossdef>
10639 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010640 Points to a shared, global-state directory that holds data
10641 generated during the packaging process.
10642 During the packaging process, the
10643 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10644 task packages data for each recipe and installs it into
10645 this temporary, shared area.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010646 This directory defaults to the following, which you should
10647 not change:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010648 <literallayout class='monospaced'>
10649 ${STAGING_DIR_HOST}/pkgdata
10650 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010651 For examples of how this data is used, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010652 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
10653 section in the Yocto Project Overview and Concepts Manual
10654 and the
10655 "<ulink url='&YOCTO_DOCS_DEV_URL;#viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></ulink>"
10656 section in the Yocto Project Development Tasks Manual.
10657 For more information on the shared, global-state directory,
10658 see
10659 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010660 </para>
10661 </glossdef>
10662 </glossentry>
10663
10664 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
10665 <info>
10666 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
10667 </info>
10668 <glossdef>
10669 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010670 Points to the parent directory for files to be packaged
10671 after they have been split into individual packages.
10672 This directory defaults to the following:
10673 <literallayout class='monospaced'>
10674 ${WORKDIR}/packages-split
10675 </literallayout>
10676 </para>
10677
10678 <para>
10679 Under this directory, the build system creates
10680 directories for each package specified in
10681 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
10682 Do not change this default.
10683 </para>
10684 </glossdef>
10685 </glossentry>
10686
10687 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
10688 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010689 PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010690 </info>
10691 <glossdef>
10692 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010693 Points to a temporary work area where the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010694 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010695 task saves package metadata.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010696 The <filename>PKGDESTWORK</filename> location defaults to
10697 the following:
10698 <literallayout class='monospaced'>
10699 ${WORKDIR}/pkgdata
10700 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010701 Do not change this default.
10702 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010703
10704 <para>
10705 The
10706 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10707 task copies the package metadata from
10708 <filename>PKGDESTWORK</filename> to
10709 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
10710 to make it available globally.
10711 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010712 </glossdef>
10713 </glossentry>
10714
10715 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
10716 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010717 PKGE[doc] = "The epoch of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010718 </info>
10719 <glossdef>
10720 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010721 The epoch of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010722 By default, <filename>PKGE</filename> is set to
10723 <link linkend='var-PE'><filename>PE</filename></link>.
10724 </para>
10725 </glossdef>
10726 </glossentry>
10727
10728 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
10729 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010730 PKGR[doc] = "The revision of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010731 </info>
10732 <glossdef>
10733 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010734 The revision of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010735 By default, <filename>PKGR</filename> is set to
10736 <link linkend='var-PR'><filename>PR</filename></link>.
10737 </para>
10738 </glossdef>
10739 </glossentry>
10740
10741 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
10742 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010743 PKGV[doc] = "The version of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010744 </info>
10745 <glossdef>
10746 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010747 The version of the package(s) built by the
10748 recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010749 By default, <filename>PKGV</filename> is set to
10750 <link linkend='var-PV'><filename>PV</filename></link>.
10751 </para>
10752 </glossdef>
10753 </glossentry>
10754
10755 <glossentry id='var-PN'><glossterm>PN</glossterm>
10756 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050010757 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 -050010758 </info>
10759 <glossdef>
10760 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010761 This variable can have two separate functions depending on the context: a recipe
10762 name or a resulting package name.
10763 </para>
10764
10765 <para>
10766 <filename>PN</filename> refers to a recipe name in the context of a file used
10767 by the OpenEmbedded build system as input to create a package.
10768 The name is normally extracted from the recipe file name.
10769 For example, if the recipe is named
10770 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
10771 will be "expat".
10772 </para>
10773
10774 <para>
10775 The variable refers to a package name in the context of a file created or produced by the
10776 OpenEmbedded build system.
10777 </para>
10778
10779 <para>
10780 If applicable, the <filename>PN</filename> variable also contains any special
10781 suffix or prefix.
10782 For example, using <filename>bash</filename> to build packages for the native
10783 machine, <filename>PN</filename> is <filename>bash-native</filename>.
10784 Using <filename>bash</filename> to build packages for the target and for Multilib,
10785 <filename>PN</filename> would be <filename>bash</filename> and
10786 <filename>lib64-bash</filename>, respectively.
10787 </para>
10788 </glossdef>
10789 </glossentry>
10790
10791 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
10792 <info>
10793 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
10794 </info>
10795 <glossdef>
10796 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010797 Lists recipes you do not want the OpenEmbedded build system
10798 to build.
10799 This variable works in conjunction with the
10800 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010801 class, which is inherited globally.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010802 </para>
10803
10804 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010805 To prevent a recipe from being built, use the
10806 <filename>PNBLACKLIST</filename> variable in your
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010807 <filename>local.conf</filename> file.
10808 Here is an example that prevents
10809 <filename>myrecipe</filename> from being built:
10810 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010811 PNBLACKLIST[myrecipe] = "Not supported by our organization."
10812 </literallayout>
10813 </para>
10814 </glossdef>
10815 </glossentry>
10816
10817 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
10818 <info>
10819 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."
10820 </info>
10821 <glossdef>
10822 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010823 Specifies a list of functions to call once the
10824 OpenEmbedded build system has created the host part of
10825 the SDK.
10826 You can specify functions separated by semicolons:
10827 <literallayout class='monospaced'>
10828 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
10829 </literallayout>
10830 </para>
10831
10832 <para>
10833 If you need to pass the SDK path to a command
10834 within a function, you can use
10835 <filename>${SDK_DIR}</filename>, which points to
10836 the parent directory used by the OpenEmbedded build
10837 system when creating SDK output.
10838 See the
10839 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10840 variable for more information.
10841 </para>
10842 </glossdef>
10843 </glossentry>
10844
10845 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
10846 <info>
10847 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."
10848 </info>
10849 <glossdef>
10850 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010851 Specifies a list of functions to call once the
10852 OpenEmbedded build system has created the target part of
10853 the SDK.
10854 You can specify functions separated by semicolons:
10855 <literallayout class='monospaced'>
10856 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
10857 </literallayout>
10858 </para>
10859
10860 <para>
10861 If you need to pass the SDK path to a command
10862 within a function, you can use
10863 <filename>${SDK_DIR}</filename>, which points to
10864 the parent directory used by the OpenEmbedded build
10865 system when creating SDK output.
10866 See the
10867 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10868 variable for more information.
10869 </para>
10870 </glossdef>
10871 </glossentry>
10872
10873 <glossentry id='var-PR'><glossterm>PR</glossterm>
10874 <info>
10875 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
10876 </info>
10877 <glossdef>
10878 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010879 The revision of the recipe. The default value for this
10880 variable is "r0".
10881 Subsequent revisions of the recipe conventionally have the
10882 values "r1", "r2", and so forth.
10883 When
10884 <link linkend='var-PV'><filename>PV</filename></link>
10885 increases, <filename>PR</filename> is conventionally reset
10886 to "r0".
10887 <note>
10888 The OpenEmbedded build system does not need the aid of
10889 <filename>PR</filename> to know when to rebuild a
10890 recipe.
10891 The build system uses the task
Brad Bishop316dfdd2018-06-25 12:45:53 -040010892 <ulink url='&YOCTO_DOCS_OM_URL;#overview-checksums'>input checksums</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010893 along with the
10894 <link linkend='structure-build-tmp-stamps'>stamp</link>
10895 and
Brad Bishop316dfdd2018-06-25 12:45:53 -040010896 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state cache</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010897 mechanisms.
10898 </note>
10899 The <filename>PR</filename> variable primarily becomes
10900 significant when a package manager dynamically installs
10901 packages on an already built image.
10902 In this case, <filename>PR</filename>, which is the default
10903 value of
10904 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
10905 helps the package manager distinguish which package is the
10906 most recent one in cases where many packages have the same
10907 <filename>PV</filename> (i.e. <filename>PKGV</filename>).
10908 A component having many packages with the same
10909 <filename>PV</filename> usually means that the packages all
10910 install the same upstream version, but with later
10911 (<filename>PR</filename>) version packages including
10912 packaging fixes.
10913 <note>
10914 <filename>PR</filename> does not need to be increased
10915 for changes that do not change the package contents or
10916 metadata.
10917 </note>
10918 Because manually managing <filename>PR</filename> can be
10919 cumbersome and error-prone, an automated solution exists.
10920 See the
10921 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010922 section in the Yocto Project Development Tasks Manual
10923 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010924 </para>
10925 </glossdef>
10926 </glossentry>
10927
10928 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
10929 <info>
10930 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
10931 </info>
10932 <glossdef>
10933 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040010934 If multiple recipes provide the same item, this variable
10935 determines which recipe is preferred and thus provides
10936 the item (i.e. the preferred provider).
10937 You should always suffix this variable with the name of the
10938 provided item.
10939 And, you should define the variable using the preferred
10940 recipe's name
10941 (<link linkend='var-PN'><filename>PN</filename></link>).
10942 Here is a common example:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010943 <literallayout class='monospaced'>
10944 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
Brad Bishop316dfdd2018-06-25 12:45:53 -040010945 </literallayout>
10946 In the previous example, multiple recipes are providing
10947 "virtual/kernel".
10948 The <filename>PREFERRED_PROVIDER</filename> variable is
10949 set with the name (<filename>PN</filename>) of the recipe
10950 you prefer to provide "virtual/kernel".
10951 </para>
10952
10953 <para>
10954 Following are more examples:
10955 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010956 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
10957 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
10958 </literallayout>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010959 For more information, see the
10960 "<ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>Using Virtual Providers</ulink>"
10961 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010962 <note>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010963 If you use a <filename>virtual/*</filename> item
10964 with <filename>PREFERRED_PROVIDER</filename>, then any
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010965 recipe that
10966 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010967 that item but is not selected (defined) by
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010968 <filename>PREFERRED_PROVIDER</filename> is prevented
10969 from building, which is usually desirable since this
10970 mechanism is designed to select between mutually
10971 exclusive alternative providers.
10972 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010973 </para>
10974 </glossdef>
10975 </glossentry>
10976
10977 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
10978 <info>
10979 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
10980 </info>
10981 <glossdef>
10982 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010983 If multiple versions of recipes exist, this
10984 variable determines which version is given preference.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010985 You must always suffix the variable with the
10986 <link linkend='var-PN'><filename>PN</filename></link>
10987 you want to select, and you should set the
10988 <link linkend='var-PV'><filename>PV</filename></link>
10989 accordingly for precedence.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010990 </para>
10991
10992 <para>
10993 The <filename>PREFERRED_VERSION</filename> variable
10994 supports limited wildcard use through the
10995 "<filename>%</filename>" character.
10996 You can use the character to match any number of
10997 characters, which can be useful when specifying versions
10998 that contain long revision numbers that potentially change.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010999 Here are two examples:
11000 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011001 PREFERRED_VERSION_python = "3.4.0"
Brad Bishopc342db32019-05-15 21:57:59 -040011002 PREFERRED_VERSION_linux-yocto = "5.0%"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011003 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011004 <note><title>Important</title>
11005 The use of the "<filename>%</filename>" character
11006 is limited in that it only works at the end of the
11007 string.
11008 You cannot use the wildcard character in any other
11009 location of the string.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011010 </note>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011011 </para>
11012
11013 <para>
11014 The specified version is matched against
11015 <link linkend='var-PV'><filename>PV</filename></link>,
11016 which does not necessarily match the version part of
11017 the recipe's filename.
11018 For example, consider two recipes
11019 <filename>foo_1.2.bb</filename> and
11020 <filename>foo_git.bb</filename> where
11021 <filename>foo_git.bb</filename> contains the following
11022 assignment:
11023 <literallayout class='monospaced'>
11024 PV = "1.1+git${SRCPV}"
11025 </literallayout>
11026 In this case, the correct way to select
11027 <filename>foo_git.bb</filename> is by using an
11028 assignment such as the following:
11029 <literallayout class='monospaced'>
11030 PREFERRED_VERSION_foo = "1.1+git%"
11031 </literallayout>
11032 Compare that previous example against the following
11033 incorrect example, which does not work:
11034 <literallayout class='monospaced'>
11035 PREFERRED_VERSION_foo = "git"
11036 </literallayout>
11037 </para>
11038
11039 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011040 Sometimes the <filename>PREFERRED_VERSION</filename>
11041 variable can be set by configuration files in a way that
11042 is hard to change.
11043 You can use
11044 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
11045 to set a machine-specific override.
11046 Here is an example:
11047 <literallayout class='monospaced'>
Brad Bishopc342db32019-05-15 21:57:59 -040011048 PREFERRED_VERSION_linux-yocto_qemux86 = "5.0%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011049 </literallayout>
11050 Although not recommended, worst case, you can also use the
11051 "forcevariable" override, which is the strongest override
11052 possible.
11053 Here is an example:
11054 <literallayout class='monospaced'>
Brad Bishopc342db32019-05-15 21:57:59 -040011055 PREFERRED_VERSION_linux-yocto_forcevariable = "5.0%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011056 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011057 <note>
11058 The <filename>_forcevariable</filename> override is
11059 not handled specially.
11060 This override only works because the default value of
Brad Bishop316dfdd2018-06-25 12:45:53 -040011061 <filename>OVERRIDES</filename> includes
11062 "forcevariable".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011063 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011064 </para>
11065 </glossdef>
11066 </glossentry>
11067
11068 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
11069 <info>
11070 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
11071 </info>
11072 <glossdef>
11073 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011074 Specifies additional paths from which the OpenEmbedded
11075 build system gets source code.
11076 When the build system searches for source code, it first
11077 tries the local download directory.
11078 If that location fails, the build system tries locations
11079 defined by <filename>PREMIRRORS</filename>, the upstream
11080 source, and then locations specified by
11081 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
11082 in that order.
11083 </para>
11084
11085 <para>
11086 Assuming your distribution
11087 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
11088 is "poky", the default value for
11089 <filename>PREMIRRORS</filename> is defined in the
11090 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011091 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011092 </para>
11093
11094 <para>
11095 Typically, you could add a specific server for the
11096 build system to attempt before any others by adding
11097 something like the following to the
11098 <filename>local.conf</filename> configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011099 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011100 <literallayout class='monospaced'>
11101 PREMIRRORS_prepend = "\
11102 git://.*/.* http://www.yoctoproject.org/sources/ \n \
11103 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
11104 http://.*/.* http://www.yoctoproject.org/sources/ \n \
11105 https://.*/.* http://www.yoctoproject.org/sources/ \n"
11106 </literallayout>
11107 These changes cause the build system to intercept
11108 Git, FTP, HTTP, and HTTPS requests and direct them to
11109 the <filename>http://</filename> sources mirror.
11110 You can use <filename>file://</filename> URLs to point
11111 to local directories or network shares as well.
11112 </para>
11113 </glossdef>
11114 </glossentry>
11115
11116 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
11117 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011118 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 -050011119 </info>
11120 <glossdef>
11121 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011122 Indicates the importance of a package.
11123 </para>
11124
11125 <para>
11126 <filename>PRIORITY</filename> is considered to be part of
11127 the distribution policy because the importance of any given
11128 recipe depends on the purpose for which the distribution
11129 is being produced.
11130 Thus, <filename>PRIORITY</filename> is not normally set
11131 within recipes.
11132 </para>
11133
11134 <para>
11135 You can set <filename>PRIORITY</filename> to "required",
11136 "standard", "extra", and "optional", which is the default.
11137 </para>
11138 </glossdef>
11139 </glossentry>
11140
11141 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
11142 <info>
11143 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
11144 </info>
11145 <glossdef>
11146 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011147 Specifies libraries installed within a recipe that
11148 should be ignored by the OpenEmbedded build system's
11149 shared library resolver.
11150 This variable is typically used when software being
11151 built by a recipe has its own private versions of a
11152 library normally provided by another recipe.
11153 In this case, you would not want the package containing
11154 the private libraries to be set as a dependency on other
11155 unrelated packages that should instead depend on the
11156 package providing the standard version of the library.
11157 </para>
11158
11159 <para>
11160 Libraries specified in this variable should be specified
11161 by their file name.
11162 For example, from the Firefox recipe in meta-browser:
11163 <literallayout class='monospaced'>
11164 PRIVATE_LIBS = "libmozjs.so \
11165 libxpcom.so \
11166 libnspr4.so \
11167 libxul.so \
11168 libmozalloc.so \
11169 libplc4.so \
11170 libplds4.so"
11171 </literallayout>
11172 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011173
11174 <para>
11175 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011176 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11177 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011178 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011179 </glossdef>
11180 </glossentry>
11181
11182 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
11183 <info>
11184 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."
11185 </info>
11186 <glossdef>
11187 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011188 A list of aliases by which a particular recipe can be
11189 known.
11190 By default, a recipe's own
11191 <filename><link linkend='var-PN'>PN</link></filename>
11192 is implicitly already in its <filename>PROVIDES</filename>
Andrew Geissler82c905d2020-04-13 13:39:40 -050011193 list and therefore does not need to mention that it provides itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011194 If a recipe uses <filename>PROVIDES</filename>, the
11195 additional aliases are synonyms for the recipe and can
Andrew Geissler82c905d2020-04-13 13:39:40 -050011196 be useful for satisfying dependencies of other recipes during
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011197 the build as specified by
11198 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
11199 </para>
11200
11201 <para>
11202 Consider the following example
Andrew Geissler82c905d2020-04-13 13:39:40 -050011203 <filename>PROVIDES</filename> statement from the recipe
11204 file <filename>eudev_3.2.9.bb</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011205 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -050011206 PROVIDES = "udev"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011207 </literallayout>
11208 The <filename>PROVIDES</filename> statement results in
Andrew Geissler82c905d2020-04-13 13:39:40 -050011209 the "eudev" recipe also being available as simply "udev".
11210
11211 <note>
11212 Given that a recipe's own recipe name is already
11213 implicitly in its own <filename>PROVIDES</filename> list,
11214 it is unnecessary to add aliases with the "+=" operator;
11215 using a simple assignment will be sufficient. In other
11216 words, while you could write:
11217 <literallayout class='monospaced'>
11218 PROVIDES += "udev"
11219 </literallayout>
11220 in the above, the "+=" is overkill and unnecessary.
11221 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011222 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011223
11224 <para>
11225 In addition to providing recipes under alternate names,
11226 the <filename>PROVIDES</filename> mechanism is also used
11227 to implement virtual targets.
11228 A virtual target is a name that corresponds to some
11229 particular functionality (e.g. a Linux kernel).
11230 Recipes that provide the functionality in question list the
11231 virtual target in <filename>PROVIDES</filename>.
11232 Recipes that depend on the functionality in question can
Brad Bishop316dfdd2018-06-25 12:45:53 -040011233 include the virtual target in <filename>DEPENDS</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011234 to leave the choice of provider open.
11235 </para>
11236
11237 <para>
11238 Conventionally, virtual targets have names on the form
11239 "virtual/function" (e.g. "virtual/kernel").
11240 The slash is simply part of the name and has no
11241 syntactical significance.
11242 </para>
11243
11244 <para>
11245 The
11246 <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
11247 variable is used to select which particular recipe
11248 provides a virtual target.
11249 <note>
11250 <para>A corresponding mechanism for virtual runtime
11251 dependencies (packages) exists.
11252 However, the mechanism does not depend on any special
11253 functionality beyond ordinary variable assignments.
11254 For example,
11255 <filename>VIRTUAL-RUNTIME_dev_manager</filename>
11256 refers to the package of the component that manages
11257 the <filename>/dev</filename> directory.</para>
11258
11259 <para>Setting the "preferred provider" for runtime
11260 dependencies is as simple as using the following
11261 assignment in a configuration file:</para>
11262 <literallayout class='monospaced'>
11263 VIRTUAL-RUNTIME_dev_manager = "udev"
11264 </literallayout>
11265 </note>
11266 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011267 </glossdef>
11268 </glossentry>
11269
11270 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
11271 <info>
11272 PRSERV_HOST[doc] = "The network based PR service host and port."
11273 </info>
11274 <glossdef>
11275 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011276 The network based
11277 <link linkend='var-PR'><filename>PR</filename></link>
11278 service host and port.
11279 </para>
11280
11281 <para>
11282 The <filename>conf/local.conf.sample.extended</filename>
11283 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011284 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011285 shows how the <filename>PRSERV_HOST</filename> variable is
11286 set:
11287 <literallayout class='monospaced'>
11288 PRSERV_HOST = "localhost:0"
11289 </literallayout>
11290 You must set the variable if you want to automatically
11291 start a local
11292 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
11293 You can set <filename>PRSERV_HOST</filename> to other
11294 values to use a remote PR service.
11295 </para>
11296 </glossdef>
11297 </glossentry>
11298
11299 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
11300 <info>
11301 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
11302 </info>
11303 <glossdef>
11304 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011305 Specifies whether or not
11306 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
11307 (ptest) functionality is enabled when building a recipe.
11308 You should not set this variable directly.
11309 Enabling and disabling building Package Tests
11310 at build time should be done by adding "ptest" to (or
11311 removing it from)
11312 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
11313 </para>
11314 </glossdef>
11315 </glossentry>
11316
11317 <glossentry id='var-PV'><glossterm>PV</glossterm>
11318 <info>
11319 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
11320 </info>
11321 <glossdef>
11322 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011323 The version of the recipe.
11324 The version is normally extracted from the recipe filename.
11325 For example, if the recipe is named
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011326 <filename>expat_2.0.1.bb</filename>, then the default value
11327 of <filename>PV</filename> will be "2.0.1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011328 <filename>PV</filename> is generally not overridden within
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011329 a recipe unless it is building an unstable (i.e.
11330 development) version from a source code repository
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011331 (e.g. Git or Subversion).
11332 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011333
11334 <para>
11335 <filename>PV</filename> is the default value of the
11336 <link linkend='var-PKGV'><filename>PKGV</filename></link>
11337 variable.
11338 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011339 </glossdef>
11340 </glossentry>
11341
11342 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
11343 <info>
11344 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."
11345 </info>
11346 <glossdef>
11347 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011348 When used by recipes that inherit the
11349 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11350 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11351 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11352 or
11353 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11354 classes, denotes the Application Binary Interface (ABI)
11355 currently in use for Python.
11356 By default, the ABI is "m".
11357 You do not have to set this variable as the OpenEmbedded
11358 build system sets it for you.
11359 </para>
11360
11361 <para>
11362 The OpenEmbedded build system uses the ABI to construct
11363 directory names used when installing the Python headers
11364 and libraries in sysroot
11365 (e.g. <filename>.../python3.3m/...</filename>).
11366 </para>
11367
11368 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011369 Recipes that inherit the <filename>distutils</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011370 class during cross-builds also use this variable to
11371 locate the headers and libraries of the appropriate Python
11372 that the extension is targeting.
11373 </para>
11374 </glossdef>
11375 </glossentry>
11376
11377 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
11378 <info>
11379 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
11380 </info>
11381 <glossdef>
11382 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011383 When used by recipes that inherit the
11384 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11385 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11386 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11387 or
11388 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11389 classes, specifies the major Python version being built.
Brad Bishop96ff1982019-08-19 13:50:42 -040011390 For Python 3.x, <filename>PYTHON_PN</filename> would be
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011391 "python3".
11392 You do not have to set this variable as the
11393 OpenEmbedded build system automatically sets it for you.
11394 </para>
11395
11396 <para>
11397 The variable allows recipes to use common infrastructure
11398 such as the following:
11399 <literallayout class='monospaced'>
11400 DEPENDS += "${PYTHON_PN}-native"
11401 </literallayout>
11402 In the previous example, the version of the dependency
11403 is <filename>PYTHON_PN</filename>.
11404 </para>
11405 </glossdef>
11406 </glossentry>
11407
11408 </glossdiv>
11409
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011410 <glossdiv id='var-glossary-r'><title>R</title>
11411
11412 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
11413 <info>
11414 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
11415 </info>
11416 <glossdef>
11417 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011418 The minimal command and arguments to run
11419 <filename>ranlib</filename>.
11420 </para>
11421 </glossdef>
11422 </glossentry>
11423
11424 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
11425 <info>
11426 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."
11427 </info>
11428 <glossdef>
11429 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011430 The list of packages that conflict with packages.
11431 Note that packages will not be installed if conflicting
11432 packages are not first removed.
11433 </para>
11434
11435 <para>
11436 Like all package-controlling variables, you must always use
11437 them in conjunction with a package name override.
11438 Here is an example:
11439 <literallayout class='monospaced'>
11440 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
11441 </literallayout>
11442 </para>
11443
11444 <para>
11445 BitBake, which the OpenEmbedded build system uses, supports
11446 specifying versioned dependencies.
11447 Although the syntax varies depending on the packaging
11448 format, BitBake hides these differences from you.
11449 Here is the general syntax to specify versions with
11450 the <filename>RCONFLICTS</filename> variable:
11451 <literallayout class='monospaced'>
11452 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11453 </literallayout>
11454 For <filename>operator</filename>, you can specify the
11455 following:
11456 <literallayout class='monospaced'>
11457 =
11458 &lt;
11459 &gt;
11460 &lt;=
11461 &gt;=
11462 </literallayout>
11463 For example, the following sets up a dependency on version
11464 1.2 or greater of the package <filename>foo</filename>:
11465 <literallayout class='monospaced'>
11466 RCONFLICTS_${PN} = "foo (>= 1.2)"
11467 </literallayout>
11468 </para>
11469 </glossdef>
11470 </glossentry>
11471
11472 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
11473 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011474 RDEPENDS[doc] = "Lists runtime dependencies of a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011475 </info>
11476 <glossdef>
11477 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011478 Lists runtime dependencies of a package.
11479 These dependencies are other packages that must be
11480 installed in order for the package to function correctly.
11481 As an example, the following assignment declares that the
11482 package <filename>foo</filename> needs the packages
11483 <filename>bar</filename> and <filename>baz</filename> to
11484 be installed:
11485 <literallayout class='monospaced'>
11486 RDEPENDS_foo = "bar baz"
11487 </literallayout>
11488 The most common types of package runtime dependencies are
11489 automatically detected and added.
11490 Therefore, most recipes do not need to set
11491 <filename>RDEPENDS</filename>.
11492 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011493 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11494 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011495 </para>
11496
11497 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011498 The practical effect of the above
11499 <filename>RDEPENDS</filename> assignment is that
11500 <filename>bar</filename> and <filename>baz</filename>
11501 will be declared as dependencies inside the package
11502 <filename>foo</filename> when it is written out by one of
11503 the
11504 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
11505 tasks.
11506 Exactly how this is done depends on which package format
11507 is used, which is determined by
11508 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
11509 When the corresponding package manager installs the
11510 package, it will know to also install the packages on
11511 which it depends.
11512 </para>
11513
11514 <para>
11515 To ensure that the packages <filename>bar</filename> and
11516 <filename>baz</filename> get built, the previous
11517 <filename>RDEPENDS</filename> assignment also causes a task
11518 dependency to be added.
11519 This dependency is from the recipe's
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011520 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011521 (not to be confused with
11522 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
11523 task to the <filename>do_package_write_*</filename>
11524 task of the recipes that build <filename>bar</filename> and
11525 <filename>baz</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011526 </para>
11527
11528 <para>
11529 The names of the packages you list within
11530 <filename>RDEPENDS</filename> must be the names of other
11531 packages - they cannot be recipe names.
11532 Although package names and recipe names usually match,
11533 the important point here is that you are
11534 providing package names within the
11535 <filename>RDEPENDS</filename> variable.
11536 For an example of the default list of packages created from
11537 a recipe, see the
11538 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11539 variable.
11540 </para>
11541
11542 <para>
11543 Because the <filename>RDEPENDS</filename> variable applies
11544 to packages being built, you should always use the variable
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011545 in a form with an attached package name (remember that a
11546 single recipe can build multiple packages).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011547 For example, suppose you are building a development package
11548 that depends on the <filename>perl</filename> package.
11549 In this case, you would use the following
11550 <filename>RDEPENDS</filename> statement:
11551 <literallayout class='monospaced'>
11552 RDEPENDS_${PN}-dev += "perl"
11553 </literallayout>
11554 In the example, the development package depends on
11555 the <filename>perl</filename> package.
11556 Thus, the <filename>RDEPENDS</filename> variable has the
11557 <filename>${PN}-dev</filename> package name as part of the
11558 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011559 <note>
11560 <title>Caution</title>
11561 <filename>RDEPENDS_${PN}-dev</filename> includes
11562 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
11563 by default.
11564 This default is set in the BitBake configuration file
11565 (<filename>meta/conf/bitbake.conf</filename>).
11566 Be careful not to accidentally remove
11567 <filename>${PN}</filename> when modifying
11568 <filename>RDEPENDS_${PN}-dev</filename>.
11569 Use the "+=" operator rather than the "=" operator.
11570 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011571 </para>
11572
11573 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011574 The package names you use with
11575 <filename>RDEPENDS</filename> must appear as they would in
11576 the <filename>PACKAGES</filename> variable.
11577 The
11578 <link linkend='var-PKG'><filename>PKG</filename></link>
11579 variable allows a different name to be used for
11580 the final package (e.g. the
11581 <link linkend='ref-classes-debian'><filename>debian</filename></link>
11582 class uses this to rename packages), but this final package
11583 name cannot be used with <filename>RDEPENDS</filename>,
11584 which makes sense as <filename>RDEPENDS</filename> is meant
11585 to be independent of the package format used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011586 </para>
11587
11588 <para>
11589 BitBake, which the OpenEmbedded build system uses, supports
11590 specifying versioned dependencies.
11591 Although the syntax varies depending on the packaging
11592 format, BitBake hides these differences from you.
11593 Here is the general syntax to specify versions with
11594 the <filename>RDEPENDS</filename> variable:
11595 <literallayout class='monospaced'>
11596 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11597 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011598 For <replaceable>operator</replaceable>, you can specify the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011599 following:
11600 <literallayout class='monospaced'>
11601 =
11602 &lt;
11603 &gt;
11604 &lt;=
11605 &gt;=
11606 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011607 For <replaceable>version</replaceable>, provide the version
11608 number.
11609 <note><title>Tip</title>
11610 You can use
11611 <link linkend='var-EXTENDPKGV'><filename>EXTENDPKGV</filename></link>
11612 to provide a full package version specification.
11613 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011614 For example, the following sets up a dependency on version
11615 1.2 or greater of the package <filename>foo</filename>:
11616 <literallayout class='monospaced'>
11617 RDEPENDS_${PN} = "foo (>= 1.2)"
11618 </literallayout>
11619 </para>
11620
11621 <para>
11622 For information on build-time dependencies, see the
11623 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
11624 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011625 You can also see the
11626 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
11627 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
11628 sections in the BitBake User Manual for additional
11629 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011630 </para>
11631 </glossdef>
11632 </glossentry>
11633
11634 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
11635 <info>
11636 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."
11637 </info>
11638 <glossdef>
11639 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011640 When inheriting the
11641 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
11642 class, this
11643 variable identifies distribution features that must
11644 exist in the current configuration in order for the
11645 OpenEmbedded build system to build the recipe.
11646 In other words, if the
11647 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
11648 lists a feature that does not appear in
11649 <filename>DISTRO_FEATURES</filename> within the
11650 current configuration, an error occurs and the
11651 build stops.
11652 </para>
11653 </glossdef>
11654 </glossentry>
11655
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011656 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
11657 <info>
11658 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
11659 </info>
11660 <glossdef>
11661 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011662 With <filename>rm_work</filename> enabled, this
11663 variable specifies a list of recipes whose work directories
11664 should not be removed.
11665 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
11666 section for more details.
11667 </para>
11668 </glossdef>
11669 </glossentry>
11670
11671 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
11672 <info>
11673 ROOT_HOME[doc] = "Defines the root home directory."
11674 </info>
11675 <glossdef>
11676 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011677 Defines the root home directory.
11678 By default, this directory is set as follows in the
11679 BitBake configuration file:
11680 <literallayout class='monospaced'>
11681 ROOT_HOME ??= "/home/root"
11682 </literallayout>
11683 <note>
11684 This default value is likely used because some
11685 embedded solutions prefer to have a read-only root
11686 filesystem and prefer to keep writeable data in one
11687 place.
11688 </note>
11689 </para>
11690
11691 <para>
11692 You can override the default by setting the variable
11693 in any layer or in the <filename>local.conf</filename> file.
11694 Because the default is set using a "weak" assignment
11695 (i.e. "??="), you can use either of the following forms
11696 to define your override:
11697 <literallayout class='monospaced'>
11698 ROOT_HOME = "/root"
11699 ROOT_HOME ?= "/root"
11700 </literallayout>
11701 These override examples use <filename>/root</filename>,
11702 which is probably the most commonly used override.
11703 </para>
11704 </glossdef>
11705 </glossentry>
11706
11707 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
11708 <info>
11709 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
11710 </info>
11711 <glossdef>
11712 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011713 Indicates a filesystem image to include as the root
11714 filesystem.
11715 </para>
11716
11717 <para>
11718 The <filename>ROOTFS</filename> variable is an optional
11719 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011720 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011721 class.
11722 </para>
11723 </glossdef>
11724 </glossentry>
11725
11726 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
11727 <info>
11728 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
11729 </info>
11730 <glossdef>
11731 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011732 Specifies a list of functions to call after the
11733 OpenEmbedded build system has installed packages.
11734 You can specify functions separated by semicolons:
11735 <literallayout class='monospaced'>
11736 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11737 </literallayout>
11738 </para>
11739
11740 <para>
11741 If you need to pass the root filesystem path to a command
11742 within a function, you can use
11743 <filename>${IMAGE_ROOTFS}</filename>, which points to
11744 the directory that becomes the root filesystem image.
11745 See the
11746 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11747 variable for more information.
11748 </para>
11749 </glossdef>
11750 </glossentry>
11751
11752 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
11753 <info>
11754 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
11755 </info>
11756 <glossdef>
11757 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011758 Specifies a list of functions to call once the
11759 OpenEmbedded build system has created the root filesystem.
11760 You can specify functions separated by semicolons:
11761 <literallayout class='monospaced'>
11762 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11763 </literallayout>
11764 </para>
11765
11766 <para>
11767 If you need to pass the root filesystem path to a command
11768 within a function, you can use
11769 <filename>${IMAGE_ROOTFS}</filename>, which points to
11770 the directory that becomes the root filesystem image.
11771 See the
11772 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11773 variable for more information.
11774 </para>
11775 </glossdef>
11776 </glossentry>
11777
11778 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
11779 <info>
11780 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
11781 </info>
11782 <glossdef>
11783 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011784 Specifies a list of functions to call after the
11785 OpenEmbedded build system has removed unnecessary
11786 packages.
11787 When runtime package management is disabled in the
11788 image, several packages are removed including
11789 <filename>base-passwd</filename>,
11790 <filename>shadow</filename>, and
11791 <filename>update-alternatives</filename>.
11792 You can specify functions separated by semicolons:
11793 <literallayout class='monospaced'>
11794 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11795 </literallayout>
11796 </para>
11797
11798 <para>
11799 If you need to pass the root filesystem path to a command
11800 within a function, you can use
11801 <filename>${IMAGE_ROOTFS}</filename>, which points to
11802 the directory that becomes the root filesystem image.
11803 See the
11804 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11805 variable for more information.
11806 </para>
11807 </glossdef>
11808 </glossentry>
11809
11810 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
11811 <info>
11812 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
11813 </info>
11814 <glossdef>
11815 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011816 Specifies a list of functions to call before the
11817 OpenEmbedded build system has created the root filesystem.
11818 You can specify functions separated by semicolons:
11819 <literallayout class='monospaced'>
11820 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11821 </literallayout>
11822 </para>
11823
11824 <para>
11825 If you need to pass the root filesystem path to a command
11826 within a function, you can use
11827 <filename>${IMAGE_ROOTFS}</filename>, which points to
11828 the directory that becomes the root filesystem image.
11829 See the
11830 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11831 variable for more information.
11832 </para>
11833 </glossdef>
11834 </glossentry>
11835
11836 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
11837 <info>
11838 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."
11839 </info>
11840 <glossdef>
11841 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011842 A list of package name aliases that a package also provides.
11843 These aliases are useful for satisfying runtime dependencies
11844 of other packages both during the build and on the target
11845 (as specified by
11846 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
11847 <note>
11848 A package's own name is implicitly already in its
11849 <filename>RPROVIDES</filename> list.
11850 </note>
11851 </para>
11852
11853 <para>
11854 As with all package-controlling variables, you must always
11855 use the variable in conjunction with a package name override.
11856 Here is an example:
11857 <literallayout class='monospaced'>
11858 RPROVIDES_${PN} = "widget-abi-2"
11859 </literallayout>
11860 </para>
11861 </glossdef>
11862 </glossentry>
11863
11864 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
11865 <info>
11866 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."
11867 </info>
11868 <glossdef>
11869 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011870 A list of packages that extends the usability of a package
11871 being built.
11872 The package being built does not depend on this list of
11873 packages in order to successfully build, but rather
11874 uses them for extended usability.
11875 To specify runtime dependencies for packages, see the
11876 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
11877 variable.
11878 </para>
11879
11880 <para>
11881 The package manager will automatically install the
11882 <filename>RRECOMMENDS</filename> list of packages when
11883 installing the built package.
11884 However, you can prevent listed packages from being
11885 installed by using the
11886 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
11887 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
11888 and
11889 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
11890 variables.
11891 </para>
11892
11893 <para>
11894 Packages specified in
11895 <filename>RRECOMMENDS</filename> need not actually be
11896 produced.
11897 However, a recipe must exist that provides each package,
11898 either through the
11899 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11900 or
11901 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
11902 variables or the
11903 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
11904 variable, or an error will occur during the build.
11905 If such a recipe does exist and the package is not produced,
11906 the build continues without error.
11907 </para>
11908
11909 <para>
11910 Because the <filename>RRECOMMENDS</filename> variable
11911 applies to packages being built, you should always attach
11912 an override to the variable to specify the particular
11913 package whose usability is being extended.
11914 For example, suppose you are building a development package
11915 that is extended to support wireless functionality.
11916 In this case, you would use the following:
11917 <literallayout class='monospaced'>
11918 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
11919 </literallayout>
11920 In the example, the package name
11921 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
11922 must appear as it would in the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011923 <filename>PACKAGES</filename> namespace before any renaming
11924 of the output package by classes such as
11925 <filename>debian.bbclass</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011926 </para>
11927
11928 <para>
11929 BitBake, which the OpenEmbedded build system uses, supports
11930 specifying versioned recommends.
11931 Although the syntax varies depending on the packaging
11932 format, BitBake hides these differences from you.
11933 Here is the general syntax to specify versions with
11934 the <filename>RRECOMMENDS</filename> variable:
11935 <literallayout class='monospaced'>
11936 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11937 </literallayout>
11938 For <filename>operator</filename>, you can specify the
11939 following:
11940 <literallayout class='monospaced'>
11941 =
11942 &lt;
11943 &gt;
11944 &lt;=
11945 &gt;=
11946 </literallayout>
11947 For example, the following sets up a recommend on version
11948 1.2 or greater of the package <filename>foo</filename>:
11949 <literallayout class='monospaced'>
11950 RRECOMMENDS_${PN} = "foo (>= 1.2)"
11951 </literallayout>
11952 </para>
11953 </glossdef>
11954 </glossentry>
11955
11956 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
11957 <info>
11958 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."
11959 </info>
11960 <glossdef>
11961 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011962 A list of packages replaced by a package.
11963 The package manager uses this variable to determine which
11964 package should be installed to replace other package(s)
11965 during an upgrade.
11966 In order to also have the other package(s) removed at the
11967 same time, you must add the name of the other
11968 package to the
11969 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
11970 </para>
11971
11972 <para>
11973 As with all package-controlling variables, you must use
11974 this variable in conjunction with a package name
11975 override.
11976 Here is an example:
11977 <literallayout class='monospaced'>
11978 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
11979 </literallayout>
11980 </para>
11981
11982 <para>
11983 BitBake, which the OpenEmbedded build system uses, supports
11984 specifying versioned replacements.
11985 Although the syntax varies depending on the packaging
11986 format, BitBake hides these differences from you.
11987 Here is the general syntax to specify versions with
11988 the <filename>RREPLACES</filename> variable:
11989 <literallayout class='monospaced'>
11990 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11991 </literallayout>
11992 For <filename>operator</filename>, you can specify the
11993 following:
11994 <literallayout class='monospaced'>
11995 =
11996 &lt;
11997 &gt;
11998 &lt;=
11999 &gt;=
12000 </literallayout>
12001 For example, the following sets up a replacement using
12002 version 1.2 or greater of the package
12003 <filename>foo</filename>:
12004 <literallayout class='monospaced'>
12005 RREPLACES_${PN} = "foo (>= 1.2)"
12006 </literallayout>
12007 </para>
12008 </glossdef>
12009 </glossentry>
12010
12011 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
12012 <info>
12013 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."
12014 </info>
12015 <glossdef>
12016 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012017 A list of additional packages that you can suggest for
12018 installation by the package manager at the time a package
12019 is installed.
12020 Not all package managers support this functionality.
12021 </para>
12022
12023 <para>
12024 As with all package-controlling variables, you must always
12025 use this variable in conjunction with a package name
12026 override.
12027 Here is an example:
12028 <literallayout class='monospaced'>
12029 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
12030 </literallayout>
12031 </para>
12032 </glossdef>
12033 </glossentry>
12034
12035 </glossdiv>
12036
12037 <glossdiv id='var-glossary-s'><title>S</title>
12038
12039 <glossentry id='var-S'><glossterm>S</glossterm>
12040 <info>
12041 S[doc] = "The location in the Build Directory where unpacked package source code resides."
12042 </info>
12043 <glossdef>
12044 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012045 The location in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012046 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012047 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012048 By default, this directory is
12049 <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>,
12050 where <filename>${BPN}</filename> is the base recipe name
12051 and <filename>${PV}</filename> is the recipe version.
12052 If the source tarball extracts the code to a directory
12053 named anything other than <filename>${BPN}-${PV}</filename>,
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012054 or if the source code is fetched from an SCM such as
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012055 Git or Subversion, then you must set <filename>S</filename>
12056 in the recipe so that the OpenEmbedded build system
12057 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012058 </para>
12059
12060 <para>
12061 As an example, assume a
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012062 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012063 top-level folder named <filename>poky</filename> and a
12064 default Build Directory at <filename>poky/build</filename>.
12065 In this case, the work directory the build system uses
12066 to keep the unpacked recipe for <filename>db</filename>
12067 is the following:
12068 <literallayout class='monospaced'>
12069 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
12070 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012071 The unpacked source code resides in the
12072 <filename>db-5.1.19</filename> folder.
12073 </para>
12074
12075 <para>
12076 This next example assumes a Git repository.
12077 By default, Git repositories are cloned to
12078 <filename>${WORKDIR}/git</filename> during
12079 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
12080 Since this path is different from the default value of
12081 <filename>S</filename>, you must set it specifically
12082 so the source can be located:
12083 <literallayout class='monospaced'>
12084 SRC_URI = "git://path/to/repo.git"
12085 S = "${WORKDIR}/git"
12086 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012087 </para>
12088 </glossdef>
12089 </glossentry>
12090
12091 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
12092 <info>
12093 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."
12094 </info>
12095 <glossdef>
12096 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012097 Specifies a list of command-line utilities that should be
12098 checked for during the initial sanity checking process when
12099 running BitBake.
12100 If any of the utilities are not installed on the build host,
12101 then BitBake immediately exits with an error.
12102 </para>
12103 </glossdef>
12104 </glossentry>
12105
12106 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
12107 <info>
12108 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
12109 </info>
12110 <glossdef>
12111 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012112 A list of the host distribution identifiers that the
12113 build system has been tested against.
12114 Identifiers consist of the host distributor ID
12115 followed by the release,
12116 as reported by the <filename>lsb_release</filename> tool
12117 or as read from <filename>/etc/lsb-release</filename>.
12118 Separate the list items with explicit newline
12119 characters (<filename>\n</filename>).
12120 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
12121 and the current value of
12122 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
12123 does not appear in the list, then the build system reports
12124 a warning that indicates the current host distribution has
12125 not been tested as a build host.
12126 </para>
12127 </glossdef>
12128 </glossentry>
12129
12130 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
12131 <info>
12132 SDK_ARCH[doc] = "The target architecture for the SDK."
12133 </info>
12134 <glossdef>
12135 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012136 The target architecture for the SDK.
12137 Typically, you do not directly set this variable.
12138 Instead, use
12139 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
12140 </para>
12141 </glossdef>
12142 </glossentry>
12143
12144 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
12145 <info>
12146 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
12147 </info>
12148 <glossdef>
12149 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012150 The directory set up and used by the
12151 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012152 class to which the SDK is deployed.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012153 The <filename>populate_sdk_base</filename> class defines
12154 <filename>SDK_DEPLOY</filename> as follows:
12155 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012156 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012157 </literallayout>
12158 </para>
12159 </glossdef>
12160 </glossentry>
12161
12162 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
12163 <info>
12164 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
12165 </info>
12166 <glossdef>
12167 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012168 The parent directory used by the OpenEmbedded build system
12169 when creating SDK output.
12170 The
12171 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12172 class defines the variable as follows:
12173 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012174 SDK_DIR = "${WORKDIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012175 </literallayout>
12176 <note>
12177 The <filename>SDK_DIR</filename> directory is a
12178 temporary directory as it is part of
12179 <filename>WORKDIR</filename>.
12180 The final output directory is
12181 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12182 </note>
12183 </para>
12184 </glossdef>
12185 </glossentry>
12186
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012187 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
12188 <info>
12189 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
12190 </info>
12191 <glossdef>
12192 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012193 Controls whether or not shared state artifacts are copied
12194 into the extensible SDK.
12195 The default value of "full" copies all of the required
12196 shared state artifacts into the extensible SDK.
12197 The value "minimal" leaves these artifacts out of the
12198 SDK.
12199 <note>
12200 If you set the variable to "minimal", you need to
12201 ensure
12202 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
12203 is set in the SDK's configuration to enable the
12204 artifacts to be fetched as needed.
12205 </note>
12206 </para>
12207 </glossdef>
12208 </glossentry>
12209
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012210 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
12211 <info>
12212 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."
12213 </info>
12214 <glossdef>
12215 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012216 The manifest file for the host part of the SDK.
12217 This file lists all the installed packages that make up
Brad Bishop316dfdd2018-06-25 12:45:53 -040012218 the host part of the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012219 The file contains package information on a line-per-package
12220 basis as follows:
12221 <literallayout class='monospaced'>
12222 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12223 </literallayout>
12224 </para>
12225
12226 <para>
12227 The
12228 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12229 class defines the manifest file as follows:
12230 <literallayout class='monospaced'>
12231 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
12232 </literallayout>
12233 The location is derived using the
12234 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12235 and
12236 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12237 variables.
12238 </para>
12239 </glossdef>
12240 </glossentry>
12241
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012242 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
12243 <info>
12244 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
12245 </info>
12246 <glossdef>
12247 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012248 When set to "1", specifies to include the packagedata for
12249 all recipes in the "world" target in the extensible SDK.
12250 Including this data allows the
12251 <filename>devtool search</filename> command to find these
12252 recipes in search results, as well as allows the
12253 <filename>devtool add</filename> command to map
12254 dependencies more effectively.
12255 <note>
12256 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
12257 variable significantly increases build time because
12258 all of world needs to be built.
12259 Enabling the variable also slightly increases the size
12260 of the extensible SDK.
12261 </note>
12262 </para>
12263 </glossdef>
12264 </glossentry>
12265
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012266 <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
12267 <info>
12268 SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
12269 </info>
12270 <glossdef>
12271 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012272 When set to "1", specifies to include the toolchain in the
12273 extensible SDK.
12274 Including the toolchain is useful particularly when
12275 <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
12276 is set to "minimal" to keep the SDK reasonably small
12277 but you still want to provide a usable toolchain.
12278 For example, suppose you want to use the toolchain from an
Brad Bishopc342db32019-05-15 21:57:59 -040012279 IDE or from other tools and you do not
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012280 want to perform additional steps to install the toolchain.
12281 </para>
12282
12283 <para>
12284 The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
12285 defaults to "0" if <filename>SDK_EXT_TYPE</filename>
12286 is set to "minimal", and defaults to "1" if
12287 <filename>SDK_EXT_TYPE</filename> is set to "full".
12288 </para>
12289 </glossdef>
12290 </glossentry>
12291
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012292 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
12293 <info>
12294 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
12295 </info>
12296 <glossdef>
12297 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012298 A list of classes to remove from the
12299 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
12300 value globally within the extensible SDK configuration.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012301 The
12302 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12303 class sets the default value:
12304 <literallayout class='monospaced'>
12305 SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
12306 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012307 </para>
12308
12309 <para>
12310 Some classes are not generally applicable within
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012311 the extensible SDK context.
12312 You can use this variable to disable those classes.
12313 </para>
12314
12315 <para>
12316 For additional information on how to customize the
12317 extensible SDK's configuration, see the
12318 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12319 section in the Yocto Project Application Development and
12320 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012321 </para>
12322 </glossdef>
12323 </glossentry>
12324
12325 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
12326 <info>
12327 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
12328 </info>
12329 <glossdef>
12330 <para role="glossdeffirst">
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012331 A list of variables not allowed through from the
12332 OpenEmbedded build system configuration into the extensible
12333 SDK configuration.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012334 Usually, these are variables that are specific to the
12335 machine on which the build system is running and thus
12336 would be potentially problematic within the extensible SDK.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012337 </para>
12338
12339 <para>By default,
12340 <filename>SDK_LOCAL_CONF_BLACKLIST</filename> is set in the
12341 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12342 class and excludes the following variables:
12343 <literallayout class='monospaced'>
12344 <link linkend='var-CONF_VERSION'>CONF_VERSION</link>
12345 <link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link>
12346 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_NUMBER_PARSE_THREADS'>BB_NUMBER_PARSE_THREADS</ulink>
12347 <link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link>
12348 <link linkend='var-PRSERV_HOST'>PRSERV_HOST</link>
12349 <link linkend='var-SSTATE_MIRRORS'>SSTATE_MIRRORS</link>
12350 <link linkend='var-DL_DIR'>DL_DIR</link>
12351 <link linkend='var-SSTATE_DIR'>SSTATE_DIR</link>
12352 <link linkend='var-TMPDIR'>TMPDIR</link>
12353 <link linkend='var-BB_SERVER_TIMEOUT'>BB_SERVER_TIMEOUT</link>
12354 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012355 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012356
12357 <para>
12358 For additional information on how to customize the
12359 extensible SDK's configuration, see the
12360 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12361 section in the Yocto Project Application Development and
12362 the Extensible Software Development Kit (eSDK) manual.
12363 </para>
12364
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012365 </glossdef>
12366 </glossentry>
12367
12368 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
12369 <info>
12370 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
12371 </info>
12372 <glossdef>
12373 <para role="glossdeffirst">
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012374 A list of variables allowed through from the OpenEmbedded
12375 build system configuration into the extensible SDK
12376 configuration.
12377 By default, the list of variables is empty and is set in
12378 the
12379 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12380 class.
12381 </para>
12382
12383 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012384 This list overrides the variables specified using the
12385 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
12386 variable as well as any variables identified by automatic
12387 blacklisting due to the "/" character being found at the
12388 start of the value, which is usually indicative of being a
12389 path and thus might not be valid on the system where the
12390 SDK is installed.
12391 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012392
12393 <para>
12394 For additional information on how to customize the
12395 extensible SDK's configuration, see the
12396 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12397 section in the Yocto Project Application Development and
12398 the Extensible Software Development Kit (eSDK) manual.
12399 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012400 </glossdef>
12401 </glossentry>
12402
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012403 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
12404 <info>
12405 SDK_NAME[doc] = "The base name for SDK output files."
12406 </info>
12407 <glossdef>
12408 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012409 The base name for SDK output files.
12410 The name is derived from the
12411 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
12412 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12413 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12414 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
12415 and
12416 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
12417 variables:
12418 <literallayout class='monospaced'>
12419 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
12420 </literallayout>
12421 </para>
12422 </glossdef>
12423 </glossentry>
12424
12425 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
12426 <info>
12427 SDK_OS[doc] = "The operating system for which the SDK will be built."
12428 </info>
12429 <glossdef>
12430 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012431 Specifies the operating system for which the SDK
12432 will be built.
12433 The default value is the value of
12434 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
12435 </para>
12436 </glossdef>
12437 </glossentry>
12438
12439 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
12440 <info>
12441 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
12442 </info>
12443 <glossdef>
12444 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012445 The location used by the OpenEmbedded build system when
12446 creating SDK output.
12447 The
12448 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12449 class defines the variable as follows:
12450 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012451 SDK_DIR = "${WORKDIR}/sdk"
12452 SDK_OUTPUT = "${SDK_DIR}/image"
12453 SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012454 </literallayout>
12455 <note>
12456 The <filename>SDK_OUTPUT</filename> directory is a
12457 temporary directory as it is part of
Brad Bishop316dfdd2018-06-25 12:45:53 -040012458 <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12459 by way of
12460 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012461 The final output directory is
12462 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12463 </note>
12464 </para>
12465 </glossdef>
12466 </glossentry>
12467
12468 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
12469 <info>
12470 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."
12471 </info>
12472 <glossdef>
12473 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012474 Specifies a list of architectures compatible with
12475 the SDK machine.
12476 This variable is set automatically and should not
12477 normally be hand-edited.
12478 Entries are separated using spaces and listed in order
12479 of priority.
12480 The default value for
12481 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
12482 ${SDK_ARCH}-${SDKPKGSUFFIX}".
12483 </para>
12484 </glossdef>
12485 </glossentry>
12486
12487 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
12488 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012489 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 -050012490 </info>
12491 <glossdef>
12492 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012493 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012494 OpenEmbedded build system creates the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012495 You can specify functions separated by semicolons:
12496 <literallayout class='monospaced'>
12497 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12498 </literallayout>
12499 </para>
12500
12501 <para>
12502 If you need to pass an SDK path to a command within a
12503 function, you can use
12504 <filename>${SDK_DIR}</filename>, which points to
12505 the parent directory used by the OpenEmbedded build system
12506 when creating SDK output.
12507 See the
12508 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
12509 variable for more information.
12510 </para>
12511 </glossdef>
12512 </glossentry>
12513
12514 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
12515 <info>
12516 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
12517 </info>
12518 <glossdef>
12519 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012520 The toolchain binary prefix used for
12521 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012522 The OpenEmbedded build system uses the
12523 <filename>SDK_PREFIX</filename> value to set the
12524 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
12525 when building <filename>nativesdk</filename> recipes.
12526 The default value is "${SDK_SYS}-".
12527 </para>
12528 </glossdef>
12529 </glossentry>
12530
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012531 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
12532 <info>
12533 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
12534 </info>
12535 <glossdef>
12536 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012537 A list of shared state tasks added to the extensible SDK.
12538 By default, the following tasks are added:
12539 <literallayout class='monospaced'>
12540 do_populate_lic
12541 do_package_qa
12542 do_populate_sysroot
12543 do_deploy
12544 </literallayout>
12545 Despite the default value of "" for the
12546 <filename>SDK_RECRDEP_TASKS</filename> variable, the
12547 above four tasks are always added to the SDK.
12548 To specify tasks beyond these four, you need to use
12549 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
12550 you are defining additional tasks that are needed in
12551 order to build
12552 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
12553 </para>
12554 </glossdef>
12555 </glossentry>
12556
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012557 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
12558 <info>
12559 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
12560 </info>
12561 <glossdef>
12562 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012563 Specifies the system, including the architecture and the
12564 operating system, for which the SDK will be built.
12565 </para>
12566
12567 <para>
12568 The OpenEmbedded build system automatically sets this
12569 variable based on
12570 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12571 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
12572 and
12573 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
12574 You do not need to set the <filename>SDK_SYS</filename>
12575 variable yourself.
12576 </para>
12577 </glossdef>
12578 </glossentry>
12579
12580 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
12581 <info>
12582 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."
12583 </info>
12584 <glossdef>
12585 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012586 The manifest file for the target part of the SDK.
12587 This file lists all the installed packages that make up
12588 the target part of the SDK.
12589 The file contains package information on a line-per-package
12590 basis as follows:
12591 <literallayout class='monospaced'>
12592 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12593 </literallayout>
12594 </para>
12595
12596 <para>
12597 The
12598 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12599 class defines the manifest file as follows:
12600 <literallayout class='monospaced'>
12601 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
12602 </literallayout>
12603 The location is derived using the
12604 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12605 and
12606 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12607 variables.
12608 </para>
12609 </glossdef>
12610 </glossentry>
12611
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012612 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
12613 <info>
12614 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
12615 </info>
12616 <glossdef>
12617 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012618 A list of targets to install from shared state as part of
12619 the standard or extensible SDK installation.
12620 The default value is "${PN}" (i.e. the image from which
12621 the SDK is built).
12622 </para>
12623
12624 <para>
12625 The <filename>SDK_TARGETS</filename> variable is an
12626 internal variable and typically would not be changed.
12627 </para>
12628 </glossdef>
12629 </glossentry>
12630
12631 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
12632 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012633 SDK_TITLE[doc] = "The title to be printed when running the SDK installer."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012634 </info>
12635 <glossdef>
12636 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012637 The title to be printed when running the SDK installer.
12638 By default, this title is based on the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012639 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
12640 or
12641 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012642 variable and is set in the
12643 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12644 class as follows:
12645 <literallayout class='monospaced'>
12646 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
12647 </literallayout>
12648 For the default distribution "poky",
12649 <filename>SDK_TITLE</filename> is set to
12650 "Poky (Yocto Project Reference Distro)".
12651 </para>
12652
12653 <para>
12654 For information on how to change this default title,
12655 see the
12656 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-sdk-installer-title'>Changing the Extensible SDK Installer Title</ulink>"
12657 section in the Yocto Project Application Development and
12658 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012659 </para>
12660 </glossdef>
12661 </glossentry>
12662
12663 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
12664 <info>
12665 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
12666 </info>
12667 <glossdef>
12668 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012669 An optional URL for an update server for the extensible
12670 SDK.
12671 If set, the value is used as the default update server when
12672 running <filename>devtool sdk-update</filename> within the
12673 extensible SDK.
12674 </para>
12675 </glossdef>
12676 </glossentry>
12677
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012678 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
12679 <info>
12680 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
12681 </info>
12682 <glossdef>
12683 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012684 Specifies the name of the SDK vendor.
12685 </para>
12686 </glossdef>
12687 </glossentry>
12688
12689 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
12690 <info>
12691 SDK_VERSION[doc] = "Specifies the version for the SDK."
12692 </info>
12693 <glossdef>
12694 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012695 Specifies the version of the SDK.
12696 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012697 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012698 defines the <filename>SDK_VERSION</filename> as follows:
12699 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -040012700 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}','snapshot')}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012701 </literallayout>
12702 </para>
12703
12704 <para>
12705 For additional information, see the
12706 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
12707 and
12708 <link linkend='var-DATE'><filename>DATE</filename></link>
12709 variables.
12710 </para>
12711 </glossdef>
12712 </glossentry>
12713
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012714 <glossentry id='var-SDKEXTPATH'><glossterm>SDKEXTPATH</glossterm>
12715 <info>
12716 SDKEXTPATH[doc] = "The default installation directory for the extensible SDK."
12717 </info>
12718 <glossdef>
12719 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012720 The default installation directory for the Extensible SDK.
12721 By default, this directory is based on the
12722 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
12723 variable and is set in the
12724 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12725 class as follows:
12726 <literallayout class='monospaced'>
12727 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
12728 </literallayout>
12729 For the default distribution "poky", the
12730 <filename>SDKEXTPATH</filename> is set to "poky_sdk".
12731 </para>
12732
12733 <para>
12734 For information on how to change this default directory,
12735 see the
12736 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-default-sdk-installation-directory'>Changing the Default SDK Installation Directory</ulink>"
12737 section in the Yocto Project Application Development and
12738 the Extensible Software Development Kit (eSDK) manual.
12739 </para>
12740 </glossdef>
12741 </glossentry>
12742
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012743 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
12744 <info>
12745 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'."
12746 </info>
12747 <glossdef>
12748 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012749 Equivalent to
12750 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
12751 However, this variable applies to the SDK generated from an
12752 image using the following command:
12753 <literallayout class='monospaced'>
12754 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
12755 </literallayout>
12756 </para>
12757 </glossdef>
12758 </glossentry>
12759
12760 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
12761 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012762 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012763 </info>
12764 <glossdef>
12765 <para role="glossdeffirst">
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012766 The machine for which the SDK is built.
12767 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012768 runs on the target you specify with the
12769 <filename>SDKMACHINE</filename> value.
12770 The value points to a corresponding
12771 <filename>.conf</filename> file under
12772 <filename>conf/machine-sdk/</filename>.
12773 </para>
12774
12775 <para>
12776 You can use "i686" and "x86_64" as possible values
12777 for this variable. The variable defaults to "i686"
12778 and is set in the local.conf file in the Build Directory.
12779 <literallayout class='monospaced'>
12780 SDKMACHINE ?= "i686"
12781 </literallayout>
12782 <note>
12783 You cannot set the <filename>SDKMACHINE</filename>
12784 variable in your distribution configuration file.
12785 If you do, the configuration will not take affect.
12786 </note>
12787 </para>
12788 </glossdef>
12789 </glossentry>
12790
12791 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
12792 <info>
12793 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
12794 </info>
12795 <glossdef>
12796 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012797 Defines the path offered to the user for installation
12798 of the SDK that is generated by the OpenEmbedded build
12799 system.
12800 The path appears as the default location for installing
12801 the SDK when you run the SDK's installation script.
12802 You can override the offered path when you run the
12803 script.
12804 </para>
12805 </glossdef>
12806 </glossentry>
12807
12808 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
12809 <info>
12810 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
12811 </info>
12812 <glossdef>
12813 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012814 The full path to the sysroot used for cross-compilation
12815 within an SDK as it will be when installed into the
12816 default
12817 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
12818 </para>
12819 </glossdef>
12820 </glossentry>
12821
12822 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
12823 <info>
12824 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
12825 </info>
12826 <glossdef>
12827 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012828 The section in which packages should be categorized.
12829 Package management utilities can make use of this variable.
12830 </para>
12831 </glossdef>
12832 </glossentry>
12833
12834 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
12835 <info>
12836 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."
12837 </info>
12838 <glossdef>
12839 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012840 Specifies the optimization flags passed to the C compiler
12841 when building for the target.
12842 The flags are passed through the default value of the
12843 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
12844 variable.
12845 </para>
12846
12847 <para>
12848 The <filename>SELECTED_OPTIMIZATION</filename> variable
12849 takes the value of
12850 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
12851 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
12852 If that is the case, the value of
12853 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
12854 </para>
12855 </glossdef>
12856 </glossentry>
12857
12858 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
12859 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012860 SERIAL_CONSOLE[doc] = "Defines the serial consoles (TTYs) to enable using getty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012861 </info>
12862 <glossdef>
12863 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040012864 Defines a serial console (TTY) to enable using
12865 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012866 Provide a value that specifies the baud rate followed by
12867 the TTY device name separated by a space.
12868 You cannot specify more than one TTY device:
12869 <literallayout class='monospaced'>
12870 SERIAL_CONSOLE = "115200 ttyS0"
12871 </literallayout>
12872 <note>
12873 The <filename>SERIAL_CONSOLE</filename> variable
12874 is deprecated.
12875 Please use the
12876 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
12877 variable.
12878 </note>
12879 </para>
12880 </glossdef>
12881 </glossentry>
12882
12883 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
12884 <info>
12885 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
12886 </info>
12887 <glossdef>
12888 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040012889 Defines a serial console (TTY) to enable using
12890 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012891 Provide a value that specifies the baud rate followed by
12892 the TTY device name separated by a semicolon.
12893 Use spaces to separate multiple devices:
12894 <literallayout class='monospaced'>
12895 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
12896 </literallayout>
12897 </para>
12898 </glossdef>
12899 </glossentry>
12900
12901 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
12902 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012903 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 -050012904 </info>
12905 <glossdef>
12906 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012907 Specifies serial consoles, which must be listed in
12908 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
12909 to check against <filename>/proc/console</filename>
12910 before enabling them using getty.
12911 This variable allows aliasing in the format:
12912 &lt;device&gt;:&lt;alias&gt;.
12913 If a device was listed as "sclp_line0"
12914 in <filename>/dev/</filename> and "ttyS0" was listed
12915 in <filename>/proc/console</filename>, you would do the
12916 following:
12917 <literallayout class='monospaced'>
12918 SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
12919 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012920 This variable is currently only supported with SysVinit
12921 (i.e. not with systemd).
12922 </para>
12923 </glossdef>
12924 </glossentry>
12925
12926 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
12927 <info>
12928 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."
12929 </info>
12930 <glossdef>
12931 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012932 A list of recipe dependencies that should not be used to
12933 determine signatures of tasks from one recipe when they
12934 depend on tasks from another recipe.
12935 For example:
12936 <literallayout class='monospaced'>
12937 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
12938 </literallayout>
12939 </para>
12940
12941 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012942 In the previous example, <filename>intone</filename>
12943 depends on <filename>mplayer2</filename>.
12944 </para>
12945
12946 <para>
12947 You can use the special token <filename>"*"</filename> on
12948 the left-hand side of the dependency to match all
12949 recipes except the one on the right-hand side.
12950 Here is an example:
12951 <literallayout class='monospaced'>
12952 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
12953 </literallayout>
12954 </para>
12955
12956 <para>
12957 In the previous example, all recipes except
12958 <filename>quilt-native</filename> ignore task
12959 signatures from the <filename>quilt-native</filename>
12960 recipe when determining their task signatures.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012961 </para>
12962
12963 <para>
12964 Use of this variable is one mechanism to remove dependencies
12965 that affect task signatures and thus force rebuilds when a
12966 recipe changes.
12967 <note><title>Caution</title>
12968 If you add an inappropriate dependency for a recipe
12969 relationship, the software might break during
12970 runtime if the interface of the second recipe was
12971 changed after the first recipe had been built.
12972 </note>
12973 </para>
12974 </glossdef>
12975 </glossentry>
12976
12977 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
12978 <info>
12979 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
12980 </info>
12981 <glossdef>
12982 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012983 A list of recipes that are completely stable and will
12984 never change.
12985 The ABI for the recipes in the list are presented by
12986 output from the tasks run to build the recipe.
12987 Use of this variable is one way to remove dependencies from
12988 one recipe on another that affect task signatures and
12989 thus force rebuilds when the recipe changes.
12990 <note><title>Caution</title>
12991 If you add an inappropriate variable to this list,
12992 the software might break at runtime if the
12993 interface of the recipe was changed after the other
12994 had been built.
12995 </note>
12996 </para>
12997 </glossdef>
12998 </glossentry>
12999
13000 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
13001 <info>
13002 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
13003 </info>
13004 <glossdef>
13005 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013006 Specifies the number of bits for the target system CPU.
13007 The value should be either "32" or "64".
13008 </para>
13009 </glossdef>
13010 </glossentry>
13011
13012 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
13013 <info>
13014 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'."
13015 </info>
13016 <glossdef>
13017 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013018 Specifies the endian byte order of the target system.
13019 The value should be either "le" for little-endian or "be" for big-endian.
13020 </para>
13021 </glossdef>
13022 </glossentry>
13023
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013024 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
13025 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050013026 SKIP_FILEDEPS[doc] = "Enables you to remove all files from the 'Provides' section of an RPM package."
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013027 </info>
13028 <glossdef>
13029 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013030 Enables removal of all files from the "Provides" section of
13031 an RPM package.
13032 Removal of these files is required for packages containing
13033 prebuilt binaries and libraries such as
13034 <filename>libstdc++</filename> and
13035 <filename>glibc</filename>.
13036 </para>
13037
13038 <para>
13039 To enable file removal, set the variable to "1" in your
13040 <filename>conf/local.conf</filename> configuration file
13041 in your:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013042 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013043 <literallayout class='monospaced'>
13044 SKIP_FILEDEPS = "1"
13045 </literallayout>
13046 </para>
13047 </glossdef>
13048 </glossentry>
13049
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013050 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
13051 <info>
13052 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."
13053 </info>
13054 <glossdef>
13055 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013056 Groups together machines based upon the same family
13057 of SOC (System On Chip).
13058 You typically set this variable in a common
13059 <filename>.inc</filename> file that you include in the
13060 configuration files of all the machines.
13061 <note>
13062 You must include
13063 <filename>conf/machine/include/soc-family.inc</filename>
13064 for this variable to appear in
13065 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
13066 </note>
13067 </para>
13068 </glossdef>
13069 </glossentry>
13070
13071 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
13072 <info>
13073 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
13074 </info>
13075 <glossdef>
13076 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013077 Defines the suffix for shared libraries used on the
13078 target platform.
13079 By default, this suffix is ".so.*" for all Linux-based
13080 systems and is defined in the
13081 <filename>meta/conf/bitbake.conf</filename> configuration
13082 file.
13083 </para>
13084
13085 <para>
13086 You will see this variable referenced in the default values
13087 of <filename>FILES_${PN}</filename>.
13088 </para>
13089 </glossdef>
13090 </glossentry>
13091
13092 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
13093 <info>
13094 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
13095 </info>
13096 <glossdef>
13097 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013098 Defines the suffix for the development symbolic link
13099 (symlink) for shared libraries on the target platform.
13100 By default, this suffix is ".so" for Linux-based
13101 systems and is defined in the
13102 <filename>meta/conf/bitbake.conf</filename> configuration
13103 file.
13104 </para>
13105
13106 <para>
13107 You will see this variable referenced in the default values
13108 of <filename>FILES_${PN}-dev</filename>.
13109 </para>
13110 </glossdef>
13111 </glossentry>
13112
13113 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
13114 <info>
13115 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
13116 </info>
13117 <glossdef>
13118 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013119 When you are fetching files to create a mirror of sources
13120 (i.e. creating a source mirror), setting
13121 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
13122 <filename>local.conf</filename> configuration file ensures
13123 the source for all recipes are fetched regardless of
13124 whether or not a recipe is compatible with the
13125 configuration.
13126 A recipe is considered incompatible with the currently
13127 configured machine when either or both the
13128 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
13129 variable and
13130 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
13131 variables specify compatibility with a machine other
13132 than that of the current machine or host.
13133 <note><title>Warning</title>
13134 Do not set the
13135 <filename>SOURCE_MIRROR_FETCH</filename> variable
13136 unless you are creating a source mirror.
13137 In other words, do not set the variable during a
13138 normal build.
13139 </note>
13140 </para>
13141 </glossdef>
13142 </glossentry>
13143
13144 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
13145 <info>
13146 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
13147 </info>
13148 <glossdef>
13149 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013150 Defines your own
13151 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13152 from which to first fetch source before attempting to fetch
13153 from the upstream specified in
13154 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
13155 </para>
13156
13157 <para>
13158 To use this variable, you must globally inherit the
13159 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
13160 class and then provide the URL to your mirrors.
13161 Here is the general syntax:
13162 <literallayout class='monospaced'>
13163 INHERIT += "own-mirrors"
13164 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
13165 </literallayout>
13166 <note>
13167 You can specify only a single URL in
13168 <filename>SOURCE_MIRROR_URL</filename>.
13169 </note>
13170 </para>
13171 </glossdef>
13172 </glossentry>
13173
13174 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
13175 <info>
13176 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
13177 </info>
13178 <glossdef>
13179 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013180 Maps commonly used license names to their SPDX counterparts
13181 found in <filename>meta/files/common-licenses/</filename>.
13182 For the default <filename>SPDXLICENSEMAP</filename>
13183 mappings, see the
13184 <filename>meta/conf/licenses.conf</filename> file.
13185 </para>
13186
13187 <para>
13188 For additional information, see the
13189 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
13190 variable.
13191 </para>
13192 </glossdef>
13193 </glossentry>
13194
13195 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
13196 <info>
13197 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."
13198 </info>
13199 <glossdef>
13200 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013201 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
13202 OpenEmbedded build system to create variants of recipes or packages.
13203 The list specifies the prefixes to strip off during certain circumstances
13204 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
13205 </para>
13206 </glossdef>
13207 </glossentry>
13208
Brad Bishop316dfdd2018-06-25 12:45:53 -040013209 <glossentry id='var-SPL_BINARY'><glossterm>SPL_BINARY</glossterm>
13210 <info>
13211 SPL_BINARY[doc] = "The file type of the Secondary Program Loader (SPL)."
13212 </info>
13213 <glossdef>
13214 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040013215 The file type for the Secondary Program Loader (SPL).
13216 Some devices use an SPL from which to boot (e.g. the
13217 BeagleBone development board).
13218 For such cases, you can declare the file type of the
13219 SPL binary in the <filename>u-boot.inc</filename> include
13220 file, which is used in the U-Boot recipe.
13221 </para>
13222
13223 <para>
13224 The SPL file type is set to "null" by default in the
13225 <filename>u-boot.inc</filename> file as follows:
13226 <literallayout class='monospaced'>
13227 # Some versions of u-boot build an SPL (Second Program Loader) image that
13228 # should be packaged along with the u-boot binary as well as placed in the
13229 # deploy directory. For those versions they can set the following variables
13230 # to allow packaging the SPL.
13231 SPL_BINARY ?= ""
13232 SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
13233 SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
13234 SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
13235 </literallayout>
13236 The <filename>SPL_BINARY</filename> variable helps form
13237 various <filename>SPL_*</filename> variables used by
13238 the OpenEmbedded build system.
13239 </para>
13240
13241 <para>
13242 See the BeagleBone machine configuration example in the
13243 "<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>"
13244 section in the Yocto Project Board Support Package
13245 Developer's Guide for additional information.
13246 </para>
13247 </glossdef>
13248 </glossentry>
13249
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013250 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
13251 <info>
13252 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."
13253 </info>
13254 <glossdef>
13255 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013256 The list of source files - local or remote.
13257 This variable tells the OpenEmbedded build system which bits
13258 to pull in for the build and how to pull them in.
13259 For example, if the recipe or append file only needs to
13260 fetch a tarball from the Internet, the recipe or
13261 append file uses a single <filename>SRC_URI</filename>
13262 entry.
13263 On the other hand, if the recipe or append file needs to
13264 fetch a tarball, apply two patches, and include a custom
13265 file, the recipe or append file would include four
13266 instances of the variable.
13267 </para>
13268
13269 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013270 The following list explains the available URI protocols.
13271 URI protocols are highly dependent on particular BitBake
13272 Fetcher submodules.
13273 Depending on the fetcher BitBake uses, various URL
13274 parameters are employed.
13275 For specifics on the supported Fetchers, see the
13276 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
13277 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013278 <itemizedlist>
13279 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
13280 Fetches files, which are usually files shipped with
13281 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013282 <link linkend='metadata'>Metadata</link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -040013283 from the local machine (e.g.
13284 <ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>patch</ulink>
13285 files).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013286 The path is relative to the
13287 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
13288 variable.
13289 Thus, the build system searches, in order, from the
13290 following directories, which are assumed to be a
13291 subdirectories of the directory in which the
13292 recipe file (<filename>.bb</filename>) or
13293 append file (<filename>.bbappend</filename>)
13294 resides:
13295 <itemizedlist>
13296 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
13297 The base recipe name without any special
13298 suffix or version numbers.
13299 </para></listitem>
13300 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
13301 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
13302 The base recipe name and version but without
13303 any special package name suffix.
13304 </para></listitem>
13305 <listitem><para><emphasis>files -</emphasis>
13306 Files within a directory, which is named
13307 <filename>files</filename> and is also
13308 alongside the recipe or append file.
13309 </para></listitem>
13310 </itemizedlist>
13311 <note>
13312 If you want the build system to pick up files
13313 specified through a
13314 <filename>SRC_URI</filename>
13315 statement from your append file, you need to be
13316 sure to extend the
13317 <filename>FILESPATH</filename>
13318 variable by also using the
13319 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
13320 variable from within your append file.
13321 </note>
13322 </para></listitem>
13323 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
13324 Bazaar revision control repository.</para></listitem>
13325 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
13326 Git revision control repository.</para></listitem>
13327 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
13328 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
13329 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
13330 a repo (Git) repository.</para></listitem>
13331 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
13332 Fetches files from a ClearCase repository.
13333 </para></listitem>
13334 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
13335 the Internet using <filename>http</filename>.</para></listitem>
13336 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
13337 from the Internet using <filename>https</filename>.</para></listitem>
13338 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
13339 from the Internet using <filename>ftp</filename>.</para></listitem>
13340 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
13341 a CVS revision control repository.</para></listitem>
13342 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
13343 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
13344 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
13345 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
13346 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
13347 a secure shell.</para></listitem>
13348 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
13349 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
Brad Bishopc342db32019-05-15 21:57:59 -040013350 <listitem><para><emphasis><filename>npm://</filename> -</emphasis> Fetches JavaScript
13351 modules from a registry.
13352 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013353 </itemizedlist>
13354 </para>
13355
13356 <para>
13357 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
13358 Here are standard options:
13359 <itemizedlist>
13360 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
13361 the patch or not.
13362 The default action is to apply the patch.</para></listitem>
13363 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
13364 striplevel to use when applying the patch.
13365 The default level is 1.</para></listitem>
13366 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
13367 the directory in which the patch should be applied.
13368 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
13369 </para></listitem>
13370 </itemizedlist>
13371 </para>
13372
13373 <para>
13374 Here are options specific to recipes building code from a revision control system:
13375 <itemizedlist>
13376 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
13377 Apply the patch only if
13378 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
13379 is equal to or greater than <filename>mindate</filename>.
13380 </para></listitem>
13381 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
13382 Apply the patch only if <filename>SRCDATE</filename>
Andrew Geissler5fa08482019-03-20 15:58:14 -050013383 is not later than <filename>maxdate</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013384 </para></listitem>
13385 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
13386 Apply the patch only if <filename>SRCREV</filename>
13387 is equal to or greater than <filename>minrev</filename>.
13388 </para></listitem>
13389 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
13390 Apply the patch only if <filename>SRCREV</filename>
13391 is not later than <filename>maxrev</filename>.
13392 </para></listitem>
13393 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
13394 Apply the patch only if <filename>SRCREV</filename>
13395 is equal to <filename>rev</filename>.
13396 </para></listitem>
13397 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
13398 Apply the patch only if <filename>SRCREV</filename>
13399 is not equal to <filename>rev</filename>.
13400 </para></listitem>
13401 </itemizedlist>
13402 </para>
13403
13404 <para>
13405 Here are some additional options worth mentioning:
13406 <itemizedlist>
13407 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
13408 whether or not to unpack the file if it is an archive.
13409 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013410 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
13411 (or extracts its contents) into the specified
13412 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
13413 when the Git fetcher is used.
13414 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013415 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
13416 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013417 subdirectory of <filename>WORKDIR</filename>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013418 when the local (<filename>file://</filename>)
13419 fetcher is used.
13420 </para></listitem>
13421 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
13422 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013423 subdirectory of <filename>WORKDIR</filename> when
13424 the CVS fetcher is used.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013425 </para></listitem>
13426 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
13427 Limits the checkout to a specific subpath of the
13428 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013429 </para></listitem>
13430 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
13431 name to be used for association with <filename>SRC_URI</filename> checksums
13432 when you have more than one file specified in <filename>SRC_URI</filename>.
13433 </para></listitem>
13434 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
13435 the filename used when storing the downloaded file.</para></listitem>
13436 </itemizedlist>
13437 </para>
13438 </glossdef>
13439 </glossentry>
13440
13441 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
13442 <info>
13443 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."
13444 </info>
13445 <glossdef>
13446 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013447 By default, the OpenEmbedded build system automatically detects whether
13448 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
13449 contains files that are machine-specific.
13450 If so, the build system automatically changes
13451 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
13452 Setting this variable to "0" disables this behavior.
13453 </para>
13454 </glossdef>
13455 </glossentry>
13456
13457 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
13458 <info>
13459 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)."
13460 </info>
13461 <glossdef>
13462 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013463 The date of the source code used to build the package.
13464 This variable applies only if the source was fetched from a Source Code Manager (SCM).
13465 </para>
13466 </glossdef>
13467 </glossentry>
13468
13469 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
13470 <info>
13471 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
13472 </info>
13473 <glossdef>
13474 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013475 Returns the version string of the current package.
13476 This string is used to help define the value of
13477 <link linkend='var-PV'><filename>PV</filename></link>.
13478 </para>
13479
13480 <para>
13481 The <filename>SRCPV</filename> variable is defined in the
13482 <filename>meta/conf/bitbake.conf</filename> configuration
13483 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013484 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013485 as follows:
13486 <literallayout class='monospaced'>
13487 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
13488 </literallayout>
13489 </para>
13490
13491 <para>
13492 Recipes that need to define <filename>PV</filename> do so
13493 with the help of the <filename>SRCPV</filename>.
13494 For example, the <filename>ofono</filename> recipe
13495 (<filename>ofono_git.bb</filename>) located in
13496 <filename>meta/recipes-connectivity</filename> in the
13497 Source Directory defines <filename>PV</filename> as
13498 follows:
13499 <literallayout class='monospaced'>
13500 PV = "0.12-git${SRCPV}"
13501 </literallayout>
13502 </para>
13503 </glossdef>
13504 </glossentry>
13505
13506 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
13507 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013508 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 -050013509 </info>
13510 <glossdef>
13511 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013512 The revision of the source code used to build the package.
Brad Bishop316dfdd2018-06-25 12:45:53 -040013513 This variable applies to Subversion, Git, Mercurial, and
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013514 Bazaar only.
13515 Note that if you want to build a fixed revision and you
13516 want to avoid performing a query on the remote repository
13517 every time BitBake parses your recipe, you should specify
13518 a <filename>SRCREV</filename> that is a
13519 full revision identifier and not just a tag.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013520 <note>
13521 For information on limitations when inheriting the
13522 latest revision of software using
13523 <filename>SRCREV</filename>, see the
13524 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
13525 variable description and the
13526 "<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 -050013527 section, which is in the Yocto Project Development
13528 Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013529 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013530 </para>
13531
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013532 </glossdef>
13533 </glossentry>
13534
13535 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
13536 <info>
13537 SSTATE_DIR[doc] = "The directory for the shared state cache."
13538 </info>
13539 <glossdef>
13540 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013541 The directory for the shared state cache.
13542 </para>
13543 </glossdef>
13544 </glossentry>
13545
13546 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
13547 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013548 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 -050013549 </info>
13550 <glossdef>
13551 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013552 If set to "1", allows fetches from
13553 mirrors that are specified in
13554 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013555 to work even when fetching from the network is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013556 disabled by setting <filename>BB_NO_NETWORK</filename>
13557 to "1".
13558 Using the
13559 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
13560 variable is useful if you have set
13561 <filename>SSTATE_MIRRORS</filename> to point to an
13562 internal server for your shared state cache, but
13563 you want to disable any other fetching from the network.
13564 </para>
13565 </glossdef>
13566 </glossentry>
13567
13568 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
13569 <info>
13570 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."
13571 </info>
13572 <glossdef>
13573 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013574 Configures the OpenEmbedded build system to search other
13575 mirror locations for prebuilt cache data objects before
13576 building out the data.
13577 This variable works like fetcher
13578 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
13579 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13580 and points to the cache locations to check for the shared
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013581 state (sstate) objects.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013582 </para>
13583
13584 <para>
13585 You can specify a filesystem directory or a remote URL such
13586 as HTTP or FTP.
13587 The locations you specify need to contain the shared state
13588 cache (sstate-cache) results from previous builds.
13589 The sstate-cache you point to can also be from builds on
13590 other machines.
13591 </para>
13592
13593 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013594 When pointing to sstate build artifacts on another machine
13595 that uses a different GCC version for native builds,
Andrew Geissler4b740dc2020-05-05 08:54:39 -050013596 you must configure <filename>SSTATE_MIRRORS</filename>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013597 with a regular expression that maps local search paths
13598 to server paths.
13599 The paths need to take into account
13600 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
13601 set by the
13602 <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
13603 class.
13604 For example, the following maps the local search path
13605 <filename>universal-4.9</filename> to the server-provided
13606 path <replaceable>server_url_sstate_path</replaceable>:
13607 <literallayout class='monospaced'>
13608 SSTATE_MIRRORS ?= file://universal-4.9/(.*) http://<replaceable>server_url_sstate_path</replaceable>/universal-4.8/\1 \n
13609 </literallayout>
13610 </para>
13611
13612 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013613 If a mirror uses the same structure as
13614 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
13615 you need to add
13616 "PATH" at the end as shown in the examples below.
13617 The build system substitutes the correct path within the
13618 directory structure.
13619 <literallayout class='monospaced'>
13620 SSTATE_MIRRORS ?= "\
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013621 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013622 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
13623 </literallayout>
13624 </para>
13625 </glossdef>
13626 </glossentry>
13627
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013628 <glossentry id='var-SSTATE_SCAN_FILES'><glossterm>SSTATE_SCAN_FILES</glossterm>
13629 <info>
13630 SSTATE_SCAN_FILES[doc] = "Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths."
13631 </info>
13632 <glossdef>
13633 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013634 Controls the list of files the OpenEmbedded build system
13635 scans for hardcoded installation paths. The variable uses a
13636 space-separated list of filenames (not paths) with standard
13637 wildcard characters allowed.
13638 </para>
13639
13640 <para>
13641 During a build, the OpenEmbedded build system creates a
13642 shared state (sstate) object during the first stage of
13643 preparing the sysroots. That object is scanned for
13644 hardcoded paths for original installation locations.
13645 The list of files that are scanned for paths is controlled
13646 by the <filename>SSTATE_SCAN_FILES</filename> variable.
13647 Typically, recipes add files they want to be scanned to the
13648 value of <filename>SSTATE_SCAN_FILES</filename> rather than
13649 the variable being comprehensively set. The
13650 <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
13651 class specifies the default list of files.
13652 </para>
13653
13654 <para>
13655 For details on the process, see the
13656 <link linkend='ref-classes-staging'><filename>staging</filename></link>
13657 class.
13658 </para>
13659 </glossdef>
13660 </glossentry>
13661
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013662 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
13663 <info>
13664 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
13665 </info>
13666 <glossdef>
13667 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013668 Specifies the path to the <filename>/lib</filename>
13669 subdirectory of the sysroot directory for the
13670 build host.
13671 </para>
13672 </glossdef>
13673 </glossentry>
13674
13675 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
13676 <info>
13677 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)."
13678 </info>
13679 <glossdef>
13680 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013681 Specifies the path to the <filename>/lib</filename>
13682 subdirectory of the sysroot directory for the target
13683 for which the current recipe is being built
13684 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13685 </para>
13686 </glossdef>
13687 </glossentry>
13688
13689 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
13690 <info>
13691 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)."
13692 </info>
13693 <glossdef>
13694 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013695 Specifies the path to the
13696 <filename>/usr/bin</filename> subdirectory of the
13697 sysroot directory for the target for which the current
13698 recipe is being built
13699 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13700 </para>
13701 </glossdef>
13702 </glossentry>
13703
13704 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
13705 <info>
13706 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."
13707 </info>
13708 <glossdef>
13709 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013710 Specifies the path to the directory containing binary
13711 configuration scripts.
13712 These scripts provide configuration information for
13713 other software that wants to make use of libraries or
13714 include files provided by the software associated with
13715 the script.
13716 <note>
13717 This style of build configuration has been largely
13718 replaced by <filename>pkg-config</filename>.
13719 Consequently, if <filename>pkg-config</filename>
13720 is supported by the library to which you are linking,
13721 it is recommended you use
13722 <filename>pkg-config</filename> instead of a
13723 provided configuration script.
13724 </note>
13725 </para>
13726 </glossdef>
13727 </glossentry>
13728
13729 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
13730 <info>
13731 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
13732 </info>
13733 <glossdef>
13734 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013735 Specifies the path to the
13736 <filename>/usr/bin</filename> subdirectory of the
13737 sysroot directory for the build host.
13738 </para>
13739 </glossdef>
13740 </glossentry>
13741
13742 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
13743 <info>
13744 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)."
13745 </info>
13746 <glossdef>
13747 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013748 Specifies the path to the <filename>/usr/share</filename>
13749 subdirectory of the sysroot directory for the target
13750 for which the current recipe is being built
13751 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13752 </para>
13753 </glossdef>
13754 </glossentry>
13755
13756 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
13757 <info>
13758 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
13759 </info>
13760 <glossdef>
13761 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013762 Specifies the path to the <filename>/usr/share</filename>
13763 subdirectory of the sysroot directory for the build host.
13764 </para>
13765 </glossdef>
13766 </glossentry>
13767
13768 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
13769 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013770 STAGING_DIR[doc] = "Helps construct the recipe-sysroots directory, which is used during packaging."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013771 </info>
13772 <glossdef>
13773 <para role="glossdeffirst">
Brad Bishop316dfdd2018-06-25 12:45:53 -040013774 Helps construct the <filename>recipe-sysroots</filename>
13775 directory, which is used during packaging.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013776 </para>
13777
13778 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013779 For information on how staging for recipe-specific
13780 sysroots occurs, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013781 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013782 task, the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013783 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-sharing-files-between-recipes'>Sharing Files Between Recipes</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -040013784 section in the Yocto Project Development Tasks Manual, the
13785 "<ulink url='&YOCTO_DOCS_OM_URL;#configuration-compilation-and-staging-dev-environment'>Configuration, Compilation, and Staging</ulink>"
13786 section in the Yocto Project Overview and Concepts Manual,
13787 and the
13788 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
13789 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013790 <note>
13791 Recipes should never write files directly under
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013792 the <filename>STAGING_DIR</filename> directory because
13793 the OpenEmbedded build system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013794 manages the directory automatically.
13795 Instead, files should be installed to
13796 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
13797 within your recipe's
13798 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
13799 task and then the OpenEmbedded build system will
13800 stage a subset of those files into the sysroot.
13801 </note>
13802 </para>
13803 </glossdef>
13804 </glossentry>
13805
13806 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
13807 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013808 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 -050013809 </info>
13810 <glossdef>
13811 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013812 Specifies the path to the sysroot directory for the system
Brad Bishop316dfdd2018-06-25 12:45:53 -040013813 on which the component is built to run (the system that
13814 hosts the component).
13815 For most recipes, this sysroot is the one in which that
13816 recipe's
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013817 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013818 task copies files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013819 Exceptions include <filename>-native</filename> recipes,
13820 where the <filename>do_populate_sysroot</filename> task
13821 instead uses
13822 <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
13823 Depending on the type of recipe and the build target,
13824 <filename>STAGING_DIR_HOST</filename> can have the
13825 following values:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013826 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013827 <listitem><para>
13828 For recipes building for the target machine, the
13829 value is
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013830 "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
13831 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013832 <listitem><para>
13833 For native recipes building for the build host, the
13834 value is empty given the assumption that when
13835 building for the build host, the build host's own
13836 directories should be used.
13837 <note>
13838 <para><filename>-native</filename> recipes are
13839 not installed into host paths like such as
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013840 <filename>/usr</filename>.
13841 Rather, these recipes are installed into
13842 <filename>STAGING_DIR_NATIVE</filename>.
13843 When compiling <filename>-native</filename>
13844 recipes, standard build environment variables
13845 such as
13846 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
13847 and
13848 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
13849 are set up so that both host paths and
13850 <filename>STAGING_DIR_NATIVE</filename> are
13851 searched for libraries and headers using, for
13852 example, GCC's <filename>-isystem</filename>
13853 option.</para>
13854
Brad Bishop316dfdd2018-06-25 12:45:53 -040013855 <para>Thus, the emphasis is that the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013856 <filename>STAGING_DIR*</filename> variables
13857 should be viewed as input variables by tasks
13858 such as
13859 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
13860 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
13861 and
13862 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
13863 Having the real system root correspond to
13864 <filename>STAGING_DIR_HOST</filename> makes
13865 conceptual sense for
13866 <filename>-native</filename> recipes, as
13867 they make use of host headers and libraries.
13868 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013869 </note>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013870 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013871 </itemizedlist>
13872 </para>
13873 </glossdef>
13874 </glossentry>
13875
13876 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
13877 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013878 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 -050013879 </info>
13880 <glossdef>
13881 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013882 Specifies the path to the sysroot directory used when
13883 building components that run on the build host itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013884 </para>
13885 </glossdef>
13886 </glossentry>
13887
13888 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
13889 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013890 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 -050013891 </info>
13892 <glossdef>
13893 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013894 Specifies the path to the sysroot used for the system for
13895 which the component generates code.
13896 For components that do not generate code, which is the
13897 majority, <filename>STAGING_DIR_TARGET</filename> is set
13898 to match
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013899 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
13900 </para>
13901
13902 <para>
13903 Some recipes build binaries that can run on the target
13904 system but those binaries in turn generate code for
13905 another different system (e.g. cross-canadian recipes).
13906 Using terminology from GNU, the primary system is referred
13907 to as the "HOST" and the secondary, or different, system is
13908 referred to as the "TARGET".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013909 Thus, the binaries run on the "HOST" system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013910 and generate binaries for the "TARGET" system.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013911 The <filename>STAGING_DIR_HOST</filename> variable points
13912 to the sysroot used for the "HOST" system, while
13913 <filename>STAGING_DIR_TARGET</filename>
13914 points to the sysroot used for the "TARGET" system.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013915 </para>
13916 </glossdef>
13917 </glossentry>
13918
13919 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
13920 <info>
13921 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
13922 </info>
13923 <glossdef>
13924 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013925 Specifies the path to the <filename>/etc</filename>
13926 subdirectory of the sysroot directory for the
13927 build host.
13928 </para>
13929 </glossdef>
13930 </glossentry>
13931
13932 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
13933 <info>
13934 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)."
13935 </info>
13936 <glossdef>
13937 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013938 Specifies the path to the <filename>/usr</filename>
13939 subdirectory of the sysroot directory for the target
13940 for which the current recipe is being built
13941 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13942 </para>
13943 </glossdef>
13944 </glossentry>
13945
13946 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
13947 <info>
13948 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)."
13949 </info>
13950 <glossdef>
13951 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013952 Specifies the path to the
13953 <filename>/usr/include</filename> subdirectory of the
13954 sysroot directory for the target for which the current
13955 recipe being built
13956 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13957 </para>
13958 </glossdef>
13959 </glossentry>
13960
13961 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
13962 <info>
13963 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
13964 </info>
13965 <glossdef>
13966 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013967 Specifies the path to the <filename>/usr/include</filename>
13968 subdirectory of the sysroot directory for the build host.
13969 </para>
13970 </glossdef>
13971 </glossentry>
13972
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013973 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
13974 <info>
13975 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
13976 </info>
13977 <glossdef>
13978 <para role="glossdeffirst">
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013979 Points to the directory containing the kernel build
13980 artifacts.
13981 Recipes building software that needs to access kernel
13982 build artifacts
13983 (e.g. <filename>systemtap-uprobes</filename>) can look in
13984 the directory specified with the
13985 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
13986 find these artifacts after the kernel has been built.
13987 </para>
13988 </glossdef>
13989 </glossentry>
13990
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013991 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
13992 <info>
13993 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
13994 </info>
13995 <glossdef>
13996 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013997 The directory with kernel headers that are required to build out-of-tree
13998 modules.
13999 </para>
14000 </glossdef>
14001 </glossentry>
14002
14003 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
14004 <info>
14005 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)."
14006 </info>
14007 <glossdef>
14008 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014009 Specifies the path to the <filename>/usr/lib</filename>
14010 subdirectory of the sysroot directory for the target for
14011 which the current recipe is being built
14012 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14013 </para>
14014 </glossdef>
14015 </glossentry>
14016
14017 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
14018 <info>
14019 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
14020 </info>
14021 <glossdef>
14022 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014023 Specifies the path to the <filename>/usr/lib</filename>
14024 subdirectory of the sysroot directory for the build host.
14025 </para>
14026 </glossdef>
14027 </glossentry>
14028
14029 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
14030 <info>
14031 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."
14032 </info>
14033 <glossdef>
14034 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014035 Specifies the base path used to create recipe stamp files.
14036 The path to an actual stamp file is constructed by evaluating this
14037 string and then appending additional information.
14038 Currently, the default assignment for <filename>STAMP</filename>
14039 as set in the <filename>meta/conf/bitbake.conf</filename> file
14040 is:
14041 <literallayout class='monospaced'>
14042 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
14043 </literallayout>
14044 </para>
14045
14046 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014047 For information on how BitBake uses stamp files to determine
14048 if a task should be rerun, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040014049 "<ulink url='&YOCTO_DOCS_OM_URL;#stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</ulink>"
14050 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014051 </para>
14052
14053 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014054 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
14055 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
14056 <link linkend='var-PN'><filename>PN</filename></link>,
14057 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
14058 <link linkend='var-PV'><filename>PV</filename></link>, and
14059 <link linkend='var-PR'><filename>PR</filename></link> for related variable
14060 information.
14061 </para>
14062 </glossdef>
14063 </glossentry>
14064
14065 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
14066 <info>
14067 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
14068 </info>
14069 <glossdef>
14070 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014071 Specifies the base directory in which the OpenEmbedded
14072 build system places stamps.
14073 The default directory is
14074 <filename>${TMPDIR}/stamps</filename>.
14075 </para>
14076 </glossdef>
14077 </glossentry>
14078
14079 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
14080 <info>
14081 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
14082 </info>
14083 <glossdef>
14084 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014085 The minimal command and arguments to run
14086 <filename>strip</filename>, which is used to strip
14087 symbols.
14088 </para>
14089 </glossdef>
14090 </glossentry>
14091
14092 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
14093 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014094 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 -050014095 </info>
14096 <glossdef>
14097 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014098 The short (72 characters or less) summary of the binary package for packaging
Brad Bishop316dfdd2018-06-25 12:45:53 -040014099 systems such as <filename>opkg</filename>, <filename>rpm</filename>, or
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014100 <filename>dpkg</filename>.
14101 By default, <filename>SUMMARY</filename> is used to define
14102 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
14103 variable if <filename>DESCRIPTION</filename> is not set
14104 in the recipe.
14105 </para>
14106 </glossdef>
14107 </glossentry>
14108
14109 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
14110 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014111 SVNDIR[doc] = "The directory where Subversion checkouts are stored."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014112 </info>
14113 <glossdef>
14114 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014115 The directory in which files checked out of a Subversion
14116 system are stored.
14117 </para>
14118 </glossdef>
14119 </glossentry>
14120
14121 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
14122 <info>
14123 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
14124 </info>
14125 <glossdef>
14126 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014127 Specifies the kernel boot default console.
14128 If you want to use a console other than the default,
14129 set this variable in your recipe as follows where "X" is
14130 the console number you want to use:
14131 <literallayout class='monospaced'>
14132 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
14133 </literallayout>
14134 </para>
14135
14136 <para>
14137 The
14138 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14139 class initially sets this variable to null but then checks
14140 for a value later.
14141 </para>
14142 </glossdef>
14143 </glossentry>
14144
14145 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
14146 <info>
14147 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
14148 </info>
14149 <glossdef>
14150 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014151 Lists additional options to add to the syslinux file.
14152 You need to set this variable in your recipe.
14153 If you want to list multiple options, separate the options
14154 with a semicolon character (<filename>;</filename>).
14155 </para>
14156
14157 <para>
14158 The
14159 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14160 class uses this variable to create a set of options.
14161 </para>
14162 </glossdef>
14163 </glossentry>
14164
14165 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
14166 <info>
14167 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
14168 </info>
14169 <glossdef>
14170 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014171 Specifies the alternate serial port or turns it off.
14172 To turn off serial, set this variable to an empty string
14173 in your recipe.
14174 The variable's default value is set in the
14175 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014176 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014177 <literallayout class='monospaced'>
14178 SYSLINUX_SERIAL ?= "0 115200"
14179 </literallayout>
14180 </para>
14181
14182 <para>
14183 The class checks for and uses the variable as needed.
14184 </para>
14185 </glossdef>
14186 </glossentry>
14187
14188 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
14189 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014190 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 -050014191 </info>
14192 <glossdef>
14193 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014194 An <filename>.LSS</filename> file used as the background
Brad Bishop316dfdd2018-06-25 12:45:53 -040014195 for the VGA boot menu when you use the boot menu.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014196 You need to set this variable in your recipe.
14197 </para>
14198
14199 <para>
14200 The
14201 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14202 class checks for this variable and if found, the
14203 OpenEmbedded build system installs the splash screen.
14204 </para>
14205 </glossdef>
14206 </glossentry>
14207
14208 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
14209 <info>
14210 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
14211 </info>
14212 <glossdef>
14213 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014214 Specifies the alternate console=tty... kernel boot argument.
14215 The variable's default value is set in the
14216 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014217 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014218 <literallayout class='monospaced'>
14219 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
14220 </literallayout>
14221 </para>
14222
14223 <para>
14224 The class checks for and uses the variable as needed.
14225 </para>
14226 </glossdef>
14227 </glossentry>
14228
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014229 <glossentry id='var-SYSROOT_DESTDIR'><glossterm>SYSROOT_DESTDIR</glossterm>
14230 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014231 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 -050014232 </info>
14233 <glossdef>
14234 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014235 Points to the temporary directory under the work directory
14236 (default
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014237 "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
Brad Bishop316dfdd2018-06-25 12:45:53 -040014238 where the files populated into the sysroot are assembled
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014239 during the
14240 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14241 task.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014242 </para>
14243 </glossdef>
14244 </glossentry>
14245
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014246 <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
14247 <info>
14248 SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
14249 </info>
14250 <glossdef>
14251 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014252 Directories that are staged into the sysroot by the
14253 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14254 task.
14255 By default, the following directories are staged:
14256 <literallayout class='monospaced'>
14257 SYSROOT_DIRS = " \
14258 ${includedir} \
14259 ${libdir} \
14260 ${base_libdir} \
14261 ${nonarch_base_libdir} \
14262 ${datadir} \
14263 "
14264 </literallayout>
14265 </para>
14266 </glossdef>
14267 </glossentry>
14268
14269 <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
14270 <info>
14271 SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
14272 </info>
14273 <glossdef>
14274 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014275 Directories that are not staged into the sysroot by the
14276 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14277 task.
14278 You can use this variable to exclude certain subdirectories
14279 of directories listed in
14280 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14281 from staging.
14282 By default, the following directories are not staged:
14283 <literallayout class='monospaced'>
14284 SYSROOT_DIRS_BLACKLIST = " \
14285 ${mandir} \
14286 ${docdir} \
14287 ${infodir} \
14288 ${datadir}/locale \
14289 ${datadir}/applications \
14290 ${datadir}/fonts \
14291 ${datadir}/pixmaps \
14292 "
14293 </literallayout>
14294 </para>
14295 </glossdef>
14296 </glossentry>
14297
14298 <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
14299 <info>
14300 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."
14301 </info>
14302 <glossdef>
14303 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014304 Extra directories staged into the sysroot by the
14305 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14306 task for <filename>-native</filename> recipes, in addition
14307 to those specified in
14308 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
14309 By default, the following extra directories are staged:
14310 <literallayout class='monospaced'>
14311 SYSROOT_DIRS_NATIVE = " \
14312 ${bindir} \
14313 ${sbindir} \
14314 ${base_bindir} \
14315 ${base_sbindir} \
14316 ${libexecdir} \
14317 ${sysconfdir} \
14318 ${localstatedir} \
14319 "
14320 </literallayout>
14321 <note>
14322 Programs built by <filename>-native</filename> recipes
14323 run directly from the sysroot
14324 (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
14325 which is why additional directories containing program
14326 executables and supporting files need to be staged.
14327 </note>
14328 </para>
14329 </glossdef>
14330 </glossentry>
14331
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014332 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
14333 <info>
14334 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."
14335 </info>
14336 <glossdef>
14337 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014338 A list of functions to execute after files are staged into
14339 the sysroot.
14340 These functions are usually used to apply additional
14341 processing on the staged files, or to stage additional
14342 files.
14343 </para>
14344 </glossdef>
14345 </glossentry>
14346
14347 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
14348 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014349 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 -050014350 </info>
14351 <glossdef>
14352 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014353 When inheriting the
14354 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014355 class, this variable specifies whether the specified service
14356 in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014357 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014358 should start automatically or not.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014359 By default, the service is enabled to automatically start
14360 at boot time.
14361 The default setting is in the
14362 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14363 class as follows:
14364 <literallayout class='monospaced'>
14365 SYSTEMD_AUTO_ENABLE ??= "enable"
14366 </literallayout>
14367 </para>
14368
14369 <para>
14370 You can disable the service by setting the variable to
14371 "disable".
14372 </para>
14373 </glossdef>
14374 </glossentry>
14375
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014376 <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
14377 <info>
14378 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."
14379 </info>
14380 <glossdef>
14381 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014382 When
14383 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14384 is set to "systemd-boot", the
14385 <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
14386 configuration file that should be used.
14387 By default, the
14388 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14389 class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
14390 follows:
14391 <literallayout class='monospaced'>
14392 SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
14393 </literallayout>
14394 </para>
14395
14396 <para>
14397 For information on Systemd-boot, see the
14398 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14399 </para>
14400 </glossdef>
14401 </glossentry>
14402
14403 <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
14404 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014405 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 -060014406 </info>
14407 <glossdef>
14408 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014409 When
14410 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14411 is set to "systemd-boot", the
14412 <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
14413 a list of entry files
Brad Bishop316dfdd2018-06-25 12:45:53 -040014414 (<filename>*.conf</filename>) to install that contain
14415 one boot entry per file.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014416 By default, the
14417 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14418 class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
14419 follows:
14420 <literallayout class='monospaced'>
14421 SYSTEMD_BOOT_ENTRIES ?= ""
14422 </literallayout>
14423 </para>
14424
14425 <para>
14426 For information on Systemd-boot, see the
14427 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14428 </para>
14429 </glossdef>
14430 </glossentry>
14431
14432 <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
14433 <info>
14434 SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
14435 </info>
14436 <glossdef>
14437 <para role="glossdeffirst">
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014438 When
14439 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14440 is set to "systemd-boot", the
14441 <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
14442 the boot menu timeout in seconds.
14443 By default, the
14444 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14445 class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
14446 follows:
14447 <literallayout class='monospaced'>
14448 SYSTEMD_BOOT_TIMEOUT ?= "10"
14449 </literallayout>
14450 </para>
14451
14452 <para>
14453 For information on Systemd-boot, see the
14454 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14455 </para>
14456 </glossdef>
14457 </glossentry>
14458
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014459 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
14460 <info>
14461 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."
14462 </info>
14463 <glossdef>
14464 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014465 When inheriting the
14466 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14467 class, this variable locates the systemd unit files when
14468 they are not found in the main recipe's package.
14469 By default, the
14470 <filename>SYSTEMD_PACKAGES</filename> variable is set
14471 such that the systemd unit files are assumed to reside in
14472 the recipes main package:
14473 <literallayout class='monospaced'>
14474 SYSTEMD_PACKAGES ?= "${PN}"
14475 </literallayout>
14476 </para>
14477
14478 <para>
14479 If these unit files are not in this recipe's main
14480 package, you need to use
14481 <filename>SYSTEMD_PACKAGES</filename> to list the package
14482 or packages in which the build system can find the systemd
14483 unit files.
14484 </para>
14485 </glossdef>
14486 </glossentry>
14487
14488 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
14489 <info>
14490 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
14491 </info>
14492 <glossdef>
14493 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014494 When inheriting the
14495 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14496 class, this variable specifies the systemd service name for
14497 a package.
14498 </para>
14499
14500 <para>
14501 When you specify this file in your recipe, use a package
14502 name override to indicate the package to which the value
14503 applies.
14504 Here is an example from the connman recipe:
14505 <literallayout class='monospaced'>
14506 SYSTEMD_SERVICE_${PN} = "connman.service"
14507 </literallayout>
14508 </para>
14509 </glossdef>
14510 </glossentry>
14511
14512 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
14513 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014514 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should run a getty, the default is '1'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014515 </info>
14516 <glossdef>
14517 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014518 When using
14519 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14520 specifies a space-separated list of the virtual terminals
Brad Bishop316dfdd2018-06-25 12:45:53 -040014521 that should run a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014522 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14523 (allowing login), assuming
14524 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
14525 is not set to "0".
14526 </para>
14527
14528 <para>
14529 The default value for
14530 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
14531 (i.e. only run a getty on the first virtual terminal).
14532 </para>
14533 </glossdef>
14534 </glossentry>
14535
14536 </glossdiv>
14537
14538 <glossdiv id='var-glossary-t'><title>T</title>
14539
14540 <glossentry id='var-T'><glossterm>T</glossterm>
14541 <info>
14542 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."
14543 </info>
14544 <glossdef>
14545 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014546 This variable points to a directory were BitBake places
14547 temporary files, which consist mostly of task logs and
14548 scripts, when building a particular recipe.
14549 The variable is typically set as follows:
14550 <literallayout class='monospaced'>
14551 T = "${WORKDIR}/temp"
14552 </literallayout>
14553 </para>
14554
14555 <para>
14556 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
14557 is the directory into which BitBake unpacks and builds the
14558 recipe.
14559 The default <filename>bitbake.conf</filename> file sets this variable.</para>
14560 <para>The <filename>T</filename> variable is not to be confused with
14561 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
14562 which points to the root of the directory tree where BitBake
14563 places the output of an entire build.
14564 </para>
14565 </glossdef>
14566 </glossentry>
14567
14568 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
14569 <info>
14570 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
14571 </info>
14572 <glossdef>
14573 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014574 The target machine's architecture.
14575 The OpenEmbedded build system supports many
14576 architectures.
14577 Here is an example list of architectures supported.
14578 This list is by no means complete as the architecture
14579 is configurable:
14580 <literallayout class='monospaced'>
14581 arm
14582 i586
14583 x86_64
14584 powerpc
14585 powerpc64
14586 mips
14587 mipsel
14588 </literallayout>
14589 </para>
14590
14591 <para>
14592 For additional information on machine architectures, see
14593 the
14594 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
14595 variable.
14596 </para>
14597 </glossdef>
14598 </glossentry>
14599
14600 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
14601 <info>
14602 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
14603 </info>
14604 <glossdef>
14605 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014606 Specifies architecture-specific assembler flags for the
14607 target system.
14608 <filename>TARGET_AS_ARCH</filename> is initialized from
14609 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
14610 by default in the BitBake configuration file
14611 (<filename>meta/conf/bitbake.conf</filename>):
14612 <literallayout class='monospaced'>
14613 TARGET_AS_ARCH = "${TUNE_ASARGS}"
14614 </literallayout>
14615 </para>
14616 </glossdef>
14617 </glossentry>
14618
14619 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
14620 <info>
14621 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
14622 </info>
14623 <glossdef>
14624 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014625 Specifies architecture-specific C compiler flags for the
14626 target system.
14627 <filename>TARGET_CC_ARCH</filename> is initialized from
14628 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14629 by default.
14630 <note>
14631 It is a common workaround to append
14632 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14633 to <filename>TARGET_CC_ARCH</filename>
14634 in recipes that build software for the target that
14635 would not otherwise respect the exported
14636 <filename>LDFLAGS</filename> variable.
14637 </note>
14638 </para>
14639 </glossdef>
14640 </glossentry>
14641
14642 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
14643 <info>
14644 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
14645 </info>
14646 <glossdef>
14647 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014648 This is a specific kernel compiler flag for a CPU or
14649 Application Binary Interface (ABI) tune.
14650 The flag is used rarely and only for cases where a
14651 userspace
14652 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14653 is not compatible with the kernel compilation.
14654 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
14655 allows the kernel (and associated modules) to use a
14656 different configuration.
14657 See the
14658 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
14659 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014660 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014661 for an example.
14662 </para>
14663 </glossdef>
14664 </glossentry>
14665
14666 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
14667 <info>
14668 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
14669 </info>
14670 <glossdef>
14671 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014672 Specifies the flags to pass to the C compiler when building
14673 for the target.
14674 When building in the target context,
14675 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14676 is set to the value of this variable by default.
14677 </para>
14678
14679 <para>
14680 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014681 the <filename>CFLAGS</filename> variable in the environment
14682 to the <filename>TARGET_CFLAGS</filename> value so that
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014683 executables built using the SDK also have the flags
14684 applied.
14685 </para>
14686 </glossdef>
14687 </glossentry>
14688
14689 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
14690 <info>
14691 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."
14692 </info>
14693 <glossdef>
14694 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014695 Specifies the flags to pass to the C pre-processor
14696 (i.e. to both the C and the C++ compilers) when building
14697 for the target.
14698 When building in the target context,
14699 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14700 is set to the value of this variable by default.
14701 </para>
14702
14703 <para>
14704 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014705 the <filename>CPPFLAGS</filename> variable in the
14706 environment to the <filename>TARGET_CPPFLAGS</filename>
14707 value so that executables built using the SDK also have
14708 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014709 </para>
14710 </glossdef>
14711 </glossentry>
14712
14713 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
14714 <info>
14715 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
14716 </info>
14717 <glossdef>
14718 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014719 Specifies the flags to pass to the C++ compiler when
14720 building for the target.
14721 When building in the target context,
14722 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
14723 is set to the value of this variable by default.
14724 </para>
14725
14726 <para>
14727 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014728 the <filename>CXXFLAGS</filename> variable in the
14729 environment to the <filename>TARGET_CXXFLAGS</filename>
14730 value so that executables built using the SDK also have
14731 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014732 </para>
14733 </glossdef>
14734 </glossentry>
14735
14736 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
14737 <info>
14738 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."
14739 </info>
14740 <glossdef>
14741 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014742 Specifies the method for handling FPU code.
14743 For FPU-less targets, which include most ARM CPUs, the variable must be
14744 set to "soft".
14745 If not, the kernel emulation gets used, which results in a performance penalty.
14746 </para>
14747 </glossdef>
14748 </glossentry>
14749
14750 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
14751 <info>
14752 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
14753 </info>
14754 <glossdef>
14755 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014756 Specifies architecture-specific linker flags for the
14757 target system.
14758 <filename>TARGET_LD_ARCH</filename> is initialized from
14759 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
14760 by default in the BitBake configuration file
14761 (<filename>meta/conf/bitbake.conf</filename>):
14762 <literallayout class='monospaced'>
14763 TARGET_LD_ARCH = "${TUNE_LDARGS}"
14764 </literallayout>
14765 </para>
14766 </glossdef>
14767 </glossentry>
14768
14769 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
14770 <info>
14771 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
14772 </info>
14773 <glossdef>
14774 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014775 Specifies the flags to pass to the linker when building
14776 for the target.
14777 When building in the target context,
14778 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14779 is set to the value of this variable by default.
14780 </para>
14781
14782 <para>
14783 Additionally, the SDK's environment setup script sets
14784 the
14785 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14786 variable in the environment to the
14787 <filename>TARGET_LDFLAGS</filename> value so that
14788 executables built using the SDK also have the flags
14789 applied.
14790 </para>
14791 </glossdef>
14792 </glossentry>
14793
14794 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
14795 <info>
14796 TARGET_OS[doc] = "Specifies the target's operating system."
14797 </info>
14798 <glossdef>
14799 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014800 Specifies the target's operating system.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014801 The variable can be set to "linux" for glibc-based systems
14802 (GNU C Library) and to "linux-musl" for musl libc.
14803 For ARM/EABI targets, "linux-gnueabi" and "linux-musleabi"
14804 possible values exist.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014805 </para>
14806 </glossdef>
14807 </glossentry>
14808
14809 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
14810 <info>
14811 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
14812 </info>
14813 <glossdef>
14814 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014815 Specifies the prefix used for the toolchain binary target
14816 tools.
14817 </para>
14818
14819 <para>
14820 Depending on the type of recipe and the build target,
14821 <filename>TARGET_PREFIX</filename> is set as follows:
14822 <itemizedlist>
14823 <listitem><para>
14824 For recipes building for the target machine,
14825 the value is
14826 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
14827 </para></listitem>
14828 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014829 For native recipes, the build system sets the
14830 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014831 <filename>BUILD_PREFIX</filename>.
14832 </para></listitem>
14833 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014834 For native SDK recipes
14835 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014836 build system sets the variable to the value of
14837 <filename>SDK_PREFIX</filename>.
14838 </para></listitem>
14839 </itemizedlist>
14840 </para>
14841 </glossdef>
14842 </glossentry>
14843
14844 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
14845 <info>
14846 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
14847 </info>
14848 <glossdef>
14849 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014850 Specifies the system, including the architecture and the
14851 operating system, for which the build is occurring in
14852 the context of the current recipe.
14853 </para>
14854
14855 <para>
14856 The OpenEmbedded build system automatically sets this
14857 variable based on
14858 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
14859 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
14860 and
14861 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
14862 variables.
14863 <note>
14864 You do not need to set the
14865 <filename>TARGET_SYS</filename> variable yourself.
14866 </note>
14867 </para>
14868
14869 <para>
14870 Consider these two examples:
14871 <itemizedlist>
14872 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014873 Given a native recipe on a 32-bit, x86 machine
14874 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014875 </para></listitem>
14876 <listitem><para>
14877 Given a recipe being built for a little-endian,
14878 MIPS target running Linux, the value might be
14879 "mipsel-linux".
14880 </para></listitem>
14881 </itemizedlist>
14882 </para>
14883 </glossdef>
14884 </glossentry>
14885
14886 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
14887 <info>
14888 TARGET_VENDOR[doc] = "The name of the target vendor."
14889 </info>
14890 <glossdef>
14891 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014892 Specifies the name of the target vendor.
14893 </para>
14894 </glossdef>
14895 </glossentry>
14896
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080014897 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
14898 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050014899 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 -080014900 </info>
14901 <glossdef>
14902 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080014903 Specifies the GNU standard C library
14904 (<filename>libc</filename>) variant to use during the
14905 build process.
14906 This variable replaces <filename>POKYLIBC</filename>,
14907 which is no longer supported.
14908 </para>
14909
14910 <para>
14911 You can select "glibc", "musl", "newlib", or "baremetal"
14912 </para>
14913 </glossdef>
14914 </glossentry>
14915
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014916 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
14917 <info>
14918 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
14919 </info>
14920 <glossdef>
14921 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014922 Specifies a suffix to be appended onto the
14923 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14924 value.
14925 The suffix identifies the <filename>libc</filename> variant
14926 for building.
14927 When you are building for multiple variants with the same
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014928 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014929 this mechanism ensures that output for different
14930 <filename>libc</filename> variants is kept separate to
14931 avoid potential conflicts.
14932 </para>
14933
14934 <para>
14935 In the <filename>defaultsetup.conf</filename> file, the
14936 default value of <filename>TCLIBCAPPEND</filename> is
14937 "-${TCLIBC}".
14938 However, distros such as poky, which normally only support
14939 one <filename>libc</filename> variant, set
14940 <filename>TCLIBCAPPEND</filename> to "" in their distro
14941 configuration file resulting in no suffix being applied.
14942 </para>
14943 </glossdef>
14944 </glossentry>
14945
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014946 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
14947 <info>
14948 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
14949 </info>
14950 <glossdef>
14951 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014952 Specifies the toolchain selector.
14953 <filename>TCMODE</filename> controls the characteristics
14954 of the generated packages and images by telling the
14955 OpenEmbedded build system which toolchain profile to use.
14956 By default, the OpenEmbedded build system builds its own
14957 internal toolchain.
14958 The variable's default value is "default", which uses
14959 that internal toolchain.
14960 <note>
14961 If <filename>TCMODE</filename> is set to a value
14962 other than "default", then it is your responsibility
14963 to ensure that the toolchain is compatible with the
14964 default toolchain.
14965 Using older or newer versions of these components
14966 might cause build problems.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014967 See the Release Notes for the Yocto Project release
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014968 for the specific components with which the toolchain
14969 must be compatible.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014970 To access the Release Notes, go to the
14971 <ulink url='&YOCTO_HOME_URL;/software-overview/downloads/'>Downloads</ulink>
14972 page on the Yocto Project website and click on the
14973 "RELEASE INFORMATION" link for the appropriate
14974 release.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014975 </note>
14976 </para>
14977
14978 <para>
14979 The <filename>TCMODE</filename> variable is similar to
14980 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
14981 which controls the variant of the GNU standard C library
14982 (<filename>libc</filename>) used during the build process:
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014983 <filename>glibc</filename> or <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014984 </para>
14985
14986 <para>
14987 With additional layers, it is possible to use a pre-compiled
14988 external toolchain.
14989 One example is the Sourcery G++ Toolchain.
14990 The support for this toolchain resides in the separate
14991 <trademark class='registered'>Mentor Graphics</trademark>
14992 <filename>meta-sourcery</filename> layer at
14993 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
14994 </para>
14995
14996 <para>
14997 The layer's <filename>README</filename> file contains
14998 information on how to use the Sourcery G++ Toolchain as
14999 an external toolchain.
15000 In summary, you must be sure to add the layer to your
15001 <filename>bblayers.conf</filename> file in front of the
15002 <filename>meta</filename> layer and then set the
15003 <filename>EXTERNAL_TOOLCHAIN</filename>
15004 variable in your <filename>local.conf</filename> file
15005 to the location in which you installed the toolchain.
15006 </para>
15007
15008 <para>
15009 The fundamentals used for this example apply to any
15010 external toolchain.
15011 You can use <filename>meta-sourcery</filename> as a
15012 template for adding support for other external toolchains.
15013 </para>
15014 </glossdef>
15015 </glossentry>
15016
15017 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
15018 <info>
15019 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
15020 </info>
15021 <glossdef>
15022 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015023 The location the OpenEmbedded build system uses to export
15024 tests when the
15025 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
15026 variable is set to "1".
15027 </para>
15028
15029 <para>
15030 The <filename>TEST_EXPORT_DIR</filename> variable defaults
15031 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
15032 </para>
15033 </glossdef>
15034 </glossentry>
15035
15036 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
15037 <info>
15038 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."
15039 </info>
15040 <glossdef>
15041 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015042 Specifies to export the tests only.
15043 Set this variable to "1" if you do not want to run the
15044 tests but you want them to be exported in a manner that
15045 you to run them outside of the build system.
15046 </para>
15047 </glossdef>
15048 </glossentry>
15049
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015050 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
15051 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040015052 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 -050015053 </info>
15054 <glossdef>
15055 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015056 Holds the SSH log and the boot log for QEMU machines.
15057 The <filename>TEST_LOG_DIR</filename> variable defaults
15058 to <filename>"${WORKDIR}/testimage"</filename>.
15059 <note>
15060 Actual test results reside in the task log
15061 (<filename>log.do_testimage</filename>), which is in
15062 the <filename>${WORKDIR}/temp/</filename> directory.
15063 </note>
15064 </para>
15065 </glossdef>
15066 </glossentry>
15067
15068 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
15069 <info>
15070 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
15071 </info>
15072 <glossdef>
15073 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015074 For automated hardware testing, specifies the command to
15075 use to control the power of the target machine under test.
15076 Typically, this command would point to a script that
15077 performs the appropriate action (e.g. interacting
15078 with a web-enabled power strip).
15079 The specified command should expect to receive as the last
15080 argument "off", "on" or "cycle" specifying to power off,
15081 on, or cycle (power off and then power on) the device,
15082 respectively.
15083 </para>
15084 </glossdef>
15085 </glossentry>
15086
15087 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
15088 <info>
15089 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
15090 </info>
15091 <glossdef>
15092 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015093 For automated hardware testing, specifies additional
15094 arguments to pass through to the command specified in
15095 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
15096 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
15097 is optional.
15098 You can use it if you wish, for example, to separate the
15099 machine-specific and non-machine-specific parts of the
15100 arguments.
15101 </para>
15102 </glossdef>
15103 </glossentry>
15104
15105 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
15106 <info>
15107 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
15108 </info>
15109 <glossdef>
15110 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015111 The time in seconds allowed for an image to boot before
15112 automated runtime tests begin to run against an
15113 image.
15114 The default timeout period to allow the boot process to
15115 reach the login prompt is 500 seconds.
15116 You can specify a different value in the
15117 <filename>local.conf</filename> file.
15118 </para>
15119
15120 <para>
15121 For more information on testing images, see the
15122 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015123 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015124 </para>
15125 </glossdef>
15126 </glossentry>
15127
15128 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
15129 <info>
15130 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."
15131 </info>
15132 <glossdef>
15133 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015134 For automated hardware testing, specifies the command
15135 to use to connect to the serial console of the target
15136 machine under test.
15137 This command simply needs to connect to the serial console
15138 and forward that connection to standard input and output
15139 as any normal terminal program does.
15140 </para>
15141
15142 <para>
15143 For example, to use the Picocom terminal program on
15144 serial device <filename>/dev/ttyUSB0</filename> at
15145 115200bps, you would set the variable as follows:
15146 <literallayout class='monospaced'>
15147 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
15148 </literallayout>
15149 </para>
15150 </glossdef>
15151 </glossentry>
15152
15153 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
15154 <info>
15155 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
15156 </info>
15157 <glossdef>
15158 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015159 For automated hardware testing, specifies additional
15160 arguments to pass through to the command specified in
15161 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
15162 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
15163 is optional.
15164 You can use it if you wish, for example, to separate the
15165 machine-specific and non-machine-specific parts of the
15166 command.
15167 </para>
15168 </glossdef>
15169 </glossentry>
15170
15171 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
15172 <info>
15173 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
15174 </info>
15175 <glossdef>
15176 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015177 The IP address of the build machine (host machine).
15178 This IP address is usually automatically detected.
15179 However, if detection fails, this variable needs to be set
15180 to the IP address of the build machine (i.e. where
15181 the build is taking place).
15182 <note>
15183 The <filename>TEST_SERVER_IP</filename> variable
15184 is only used for a small number of tests such as
Brad Bishop6e60e8b2018-02-01 10:27:11 -050015185 the "dnf" test suite, which needs to download
15186 packages from
15187 <filename>WORKDIR/oe-rootfs-repo</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015188 </note>
15189 </para>
15190 </glossdef>
15191 </glossentry>
15192
15193 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
15194 <info>
15195 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
15196 </info>
15197 <glossdef>
15198 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015199 Specifies the target controller to use when running tests
15200 against a test image.
Andrew Geissler82c905d2020-04-13 13:39:40 -050015201 The default controller to use is "qemu":
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015202 <literallayout class='monospaced'>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015203 TEST_TARGET = "qemu"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015204 </literallayout>
15205 </para>
15206
15207 <para>
15208 A target controller is a class that defines how an
15209 image gets deployed on a target and how a target is started.
15210 A layer can extend the controllers by adding a module
15211 in the layer's <filename>/lib/oeqa/controllers</filename>
15212 directory and by inheriting the
15213 <filename>BaseTarget</filename> class, which is an abstract
15214 class that cannot be used as a value of
15215 <filename>TEST_TARGET</filename>.
15216 </para>
15217
15218 <para>
15219 You can provide the following arguments with
15220 <filename>TEST_TARGET</filename>:
15221 <itemizedlist>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015222 <listitem><para><emphasis>"qemu":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015223 Boots a QEMU image and runs the tests.
15224 See the
15225 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015226 section in the Yocto Project Development Tasks
15227 Manual for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015228 </para></listitem>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015229 <listitem><para><emphasis>"simpleremote":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015230 Runs the tests on target hardware that is already
15231 up and running.
15232 The hardware can be on the network or it can be
15233 a device running an image on QEMU.
15234 You must also set
15235 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
Andrew Geissler82c905d2020-04-13 13:39:40 -050015236 when you use "simpleremote".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015237 <note>
15238 This argument is defined in
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015239 <filename>meta/lib/oeqa/controllers/simpleremote.py</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015240 </note>
15241 </para></listitem>
15242 </itemizedlist>
15243 </para>
15244
15245 <para>
15246 For information on running tests on hardware, see the
15247 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015248 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015249 </para>
15250 </glossdef>
15251 </glossentry>
15252
15253 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
15254 <info>
15255 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
15256 </info>
15257 <glossdef>
15258 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015259 The IP address of your hardware under test.
15260 The <filename>TEST_TARGET_IP</filename> variable has no
15261 effect when
15262 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
15263 is set to "qemu".
15264 </para>
15265
15266 <para>
15267 When you specify the IP address, you can also include a
15268 port.
15269 Here is an example:
15270 <literallayout class='monospaced'>
15271 TEST_TARGET_IP = "192.168.1.4:2201"
15272 </literallayout>
15273 Specifying a port is useful when SSH is started on a
15274 non-standard port or in cases when your hardware under test
15275 is behind a firewall or network that is not directly
15276 accessible from your host and you need to do port address
15277 translation.
15278 </para>
15279 </glossdef>
15280 </glossentry>
15281
15282 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
15283 <info>
15284 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
15285 </info>
15286 <glossdef>
15287 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015288 An ordered list of tests (modules) to run against
15289 an image when performing automated runtime testing.
15290 </para>
15291
15292 <para>
15293 The OpenEmbedded build system provides a core set of tests
15294 that can be used against images.
15295 <note>
15296 Currently, there is only support for running these tests
15297 under QEMU.
15298 </note>
15299 Tests include <filename>ping</filename>,
15300 <filename>ssh</filename>, <filename>df</filename> among
15301 others.
15302 You can add your own tests to the list of tests by
15303 appending <filename>TEST_SUITES</filename> as follows:
15304 <literallayout class='monospaced'>
15305 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
15306 </literallayout>
15307 Alternatively, you can provide the "auto" option to
15308 have all applicable tests run against the image.
15309 <literallayout class='monospaced'>
15310 TEST_SUITES_append = " auto"
15311 </literallayout>
15312 Using this option causes the build system to automatically
15313 run tests that are applicable to the image.
15314 Tests that are not applicable are skipped.
15315 </para>
15316
15317 <para>
15318 The order in which tests are run is important.
15319 Tests that depend on another test must appear later in the
15320 list than the test on which they depend.
15321 For example, if you append the list of tests with two
15322 tests (<filename>test_A</filename> and
15323 <filename>test_B</filename>) where
15324 <filename>test_B</filename> is dependent on
15325 <filename>test_A</filename>, then you must order the tests
15326 as follows:
15327 <literallayout class='monospaced'>
15328 TEST_SUITES = " test_A test_B"
15329 </literallayout>
15330 </para>
15331
15332 <para>
15333 For more information on testing images, see the
15334 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015335 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015336 </para>
15337 </glossdef>
15338 </glossentry>
15339
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015340 <glossentry id='var-TESTIMAGE_AUTO'><glossterm>TESTIMAGE_AUTO</glossterm>
15341 <info>
15342 TESTIMAGE_AUTO[doc] = "Enables automatic testing of an image once it is built."
15343 </info>
15344 <glossdef>
15345 <para role="glossdeffirst">
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015346 Automatically runs the series of automated tests for
15347 images when an image is successfully built.
15348 Setting <filename>TESTIMAGE_AUTO</filename> to "1"
15349 causes any image that successfully builds to automatically
15350 boot under QEMU.
15351 Using the variable also adds in dependencies so that any
15352 SDK for which testing is requested is automatically built
15353 first.
15354 </para>
15355
15356 <para>
15357 These tests are written in Python making use of the
15358 <filename>unittest</filename> module, and the majority of
15359 them run commands on the target system over
15360 <filename>ssh</filename>.
15361 You can set this variable to "1" in your
15362 <filename>local.conf</filename> file in the
15363 <link linkend='build-directory'>Build Directory</link>
15364 to have the OpenEmbedded build system automatically run
15365 these tests after an image successfully builds:
15366 <literallayout class='monospaced'>
15367 TESTIMAGE_AUTO = "1"
15368 </literallayout>
15369 For more information on enabling, running, and writing
15370 these tests, see the
15371 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
15372 section in the Yocto Project Development Tasks Manual and
15373 the
15374 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
15375 section.
15376 </para>
15377 </glossdef>
15378 </glossentry>
15379
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015380 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
15381 <info>
15382 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
15383 </info>
15384 <glossdef>
15385 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015386 The directory in which the file BitBake is currently
15387 parsing is located.
15388 Do not manually set this variable.
15389 </para>
15390 </glossdef>
15391 </glossentry>
15392
15393 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
15394 <info>
15395 TIME[doc] = "The time the build was started using HMS format."
15396 </info>
15397 <glossdef>
15398 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015399 The time the build was started.
15400 Times appear using the hour, minute, and second (HMS)
15401 format (e.g. "140159" for one minute and fifty-nine
15402 seconds past 1400 hours).
15403 </para>
15404 </glossdef>
15405 </glossentry>
15406
15407 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
15408 <info>
15409 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."
15410 </info>
15411 <glossdef>
15412 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015413 This variable is the base directory the OpenEmbedded
15414 build system uses for all build output and intermediate
15415 files (other than the shared state cache).
15416 By default, the <filename>TMPDIR</filename> variable points
15417 to <filename>tmp</filename> within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015418 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015419 </para>
15420
15421 <para>
15422 If you want to establish this directory in a location other
15423 than the default, you can uncomment and edit the following
15424 statement in the
15425 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015426 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015427 <literallayout class='monospaced'>
15428 #TMPDIR = "${TOPDIR}/tmp"
15429 </literallayout>
15430 An example use for this scenario is to set
15431 <filename>TMPDIR</filename> to a local disk, which does
15432 not use NFS, while having the Build Directory use NFS.
15433 </para>
15434
15435 <para>
15436 The filesystem used by <filename>TMPDIR</filename> must
15437 have standard filesystem semantics (i.e. mixed-case files
15438 are unique, POSIX file locking, and persistent inodes).
15439 Due to various issues with NFS and bugs in some
15440 implementations, NFS does not meet this minimum
15441 requirement.
15442 Consequently, <filename>TMPDIR</filename> cannot be on
15443 NFS.
15444 </para>
15445 </glossdef>
15446 </glossentry>
15447
15448 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
15449 <info>
15450 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
15451 </info>
15452 <glossdef>
15453 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015454 This variable lists packages the OpenEmbedded build system
15455 uses when building an SDK, which contains a
15456 cross-development environment.
15457 The packages specified by this variable are part of the
15458 toolchain set that runs on the
15459 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
15460 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015461 <filename>nativesdk-</filename>.
15462 For example, consider the following command when
15463 building an SDK:
15464 <literallayout class='monospaced'>
15465 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
15466 </literallayout>
15467 In this case, a default list of packages is set in this
15468 variable, but you can add additional packages to the list.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015469 See the
15470 "<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 -050015471 section in the Yocto Project Application Development and
15472 the Extensible Software Development Kit (eSDK) manual
15473 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015474 </para>
15475
15476 <para>
15477 For background information on cross-development toolchains
15478 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015479 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15480 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015481 For information on setting up a cross-development
15482 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015483 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15484 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015485 </para>
15486 </glossdef>
15487 </glossentry>
15488
15489 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
15490 <info>
15491 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
15492 </info>
15493 <glossdef>
15494 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015495 This variable defines the name used for the toolchain
15496 output.
15497 The
15498 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
15499 class sets the
15500 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
15501 follows:
15502 <literallayout class='monospaced'>
15503 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
15504 </literallayout>
15505 See the
15506 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
15507 and
15508 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
15509 variables for additional information.
15510 </para>
15511 </glossdef>
15512 </glossentry>
15513
15514 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
15515 <info>
15516 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."
15517 </info>
15518 <glossdef>
15519 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015520 This variable lists packages the OpenEmbedded build system
15521 uses when it creates the target part of an SDK
15522 (i.e. the part built for the target hardware), which
15523 includes libraries and headers.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015524 Use this variable to add individual packages to the
15525 part of the SDK that runs on the target.
15526 See the
15527 "<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 -050015528 section in the Yocto Project Application Development and
15529 the Extensible Software Development Kit (eSDK) manual for
15530 more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015531 </para>
15532
15533 <para>
15534 For background information on cross-development toolchains
15535 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015536 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15537 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015538 For information on setting up a cross-development
15539 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015540 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15541 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015542 </para>
15543 </glossdef>
15544 </glossentry>
15545
15546 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
15547 <info>
15548 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
15549 </info>
15550 <glossdef>
15551 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015552 The top-level
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015553 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015554 BitBake automatically sets this variable when you
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015555 initialize your build environment using
15556 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015557 </para>
15558 </glossdef>
15559 </glossentry>
15560
15561 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
15562 <info>
15563 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."
15564 </info>
15565 <glossdef>
15566 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015567 A sanitized version of
15568 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
15569 This variable is used where the architecture is needed in
15570 a value where underscores are not allowed, for example
15571 within package filenames.
15572 In this case, dash characters replace any underscore
Brad Bishop316dfdd2018-06-25 12:45:53 -040015573 characters used in <filename>TARGET_ARCH</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015574 </para>
15575
15576 <para>
15577 Do not edit this variable.
15578 </para>
15579 </glossdef>
15580 </glossentry>
15581
15582 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
15583 <info>
15584 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
15585 </info>
15586 <glossdef>
15587 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015588 The GNU canonical architecture for a specific architecture
15589 (i.e. <filename>arm</filename>,
15590 <filename>armeb</filename>,
15591 <filename>mips</filename>,
15592 <filename>mips64</filename>, and so forth).
15593 BitBake uses this value to setup configuration.
15594 </para>
15595
15596 <para>
15597 <filename>TUNE_ARCH</filename> definitions are specific to
15598 a given architecture.
15599 The definitions can be a single static definition, or
15600 can be dynamically adjusted.
15601 You can see details for a given CPU family by looking at
15602 the architecture's <filename>README</filename> file.
15603 For example, the
15604 <filename>meta/conf/machine/include/mips/README</filename>
15605 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015606 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015607 provides information for <filename>TUNE_ARCH</filename>
15608 specific to the <filename>mips</filename> architecture.
15609 </para>
15610
15611 <para>
15612 <filename>TUNE_ARCH</filename> is tied closely to
15613 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
15614 which defines the target machine's architecture.
15615 The BitBake configuration file
15616 (<filename>meta/conf/bitbake.conf</filename>) sets
15617 <filename>TARGET_ARCH</filename> as follows:
15618 <literallayout class='monospaced'>
15619 TARGET_ARCH = "${TUNE_ARCH}"
15620 </literallayout>
15621 </para>
15622
15623 <para>
15624 The following list, which is by no means complete since
15625 architectures are configurable, shows supported machine
15626 architectures:
15627 <literallayout class='monospaced'>
15628 arm
15629 i586
15630 x86_64
15631 powerpc
15632 powerpc64
15633 mips
15634 mipsel
15635 </literallayout>
15636 </para>
15637 </glossdef>
15638 </glossentry>
15639
15640 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
15641 <info>
15642 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
15643 </info>
15644 <glossdef>
15645 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015646 Specifies architecture-specific assembler flags for
15647 the target system.
15648 The set of flags is based on the selected tune features.
15649 <filename>TUNE_ASARGS</filename> is set using
15650 the tune include files, which are typically under
15651 <filename>meta/conf/machine/include/</filename> and are
15652 influenced through
15653 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15654 For example, the
15655 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15656 file defines the flags for the x86 architecture as follows:
15657 <literallayout class='monospaced'>
15658 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
15659 </literallayout>
15660 <note>
15661 Board Support Packages (BSPs) select the tune.
15662 The selected tune, in turn, affects the tune variables
15663 themselves (i.e. the tune can supply its own
15664 set of flags).
15665 </note>
15666 </para>
15667 </glossdef>
15668 </glossentry>
15669
15670 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
15671 <info>
15672 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
15673 </info>
15674 <glossdef>
15675 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015676 Specifies architecture-specific C compiler flags for
15677 the target system.
15678 The set of flags is based on the selected tune features.
15679 <filename>TUNE_CCARGS</filename> is set using
15680 the tune include files, which are typically under
15681 <filename>meta/conf/machine/include/</filename> and are
15682 influenced through
15683 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15684 <note>
15685 Board Support Packages (BSPs) select the tune.
15686 The selected tune, in turn, affects the tune variables
15687 themselves (i.e. the tune can supply its own
15688 set of flags).
15689 </note>
15690 </para>
15691 </glossdef>
15692 </glossentry>
15693
15694 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
15695 <info>
15696 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
15697 </info>
15698 <glossdef>
15699 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015700 Specifies architecture-specific linker flags for
15701 the target system.
15702 The set of flags is based on the selected tune features.
15703 <filename>TUNE_LDARGS</filename> is set using
15704 the tune include files, which are typically under
15705 <filename>meta/conf/machine/include/</filename> and are
15706 influenced through
15707 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15708 For example, the
15709 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15710 file defines the flags for the x86 architecture as follows:
15711 <literallayout class='monospaced'>
15712 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
15713 </literallayout>
15714 <note>
15715 Board Support Packages (BSPs) select the tune.
15716 The selected tune, in turn, affects the tune variables
15717 themselves (i.e. the tune can supply its own
15718 set of flags).
15719 </note>
15720 </para>
15721 </glossdef>
15722 </glossentry>
15723
15724 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
15725 <info>
15726 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
15727 </info>
15728 <glossdef>
15729 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015730 Features used to "tune" a compiler for optimal use
15731 given a specific processor.
15732 The features are defined within the tune files and allow
15733 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
15734 dynamically generated based on the features.
15735 </para>
15736
15737 <para>
15738 The OpenEmbedded build system verifies the features
15739 to be sure they are not conflicting and that they are
15740 supported.
15741 </para>
15742
15743 <para>
15744 The BitBake configuration file
15745 (<filename>meta/conf/bitbake.conf</filename>) defines
15746 <filename>TUNE_FEATURES</filename> as follows:
15747 <literallayout class='monospaced'>
15748 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
15749 </literallayout>
15750 See the
15751 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
15752 variable for more information.
15753 </para>
15754 </glossdef>
15755 </glossentry>
15756
15757 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
15758 <info>
15759 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
15760 </info>
15761 <glossdef>
15762 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015763 The package architecture understood by the packaging
15764 system to define the architecture, ABI, and tuning of
15765 output packages.
15766 The specific tune is defined using the "_tune" override
15767 as follows:
15768 <literallayout class='monospaced'>
15769 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
15770 </literallayout>
15771 </para>
15772
15773 <para>
15774 These tune-specific package architectures are defined in
15775 the machine include files.
15776 Here is an example of the "core2-32" tuning as used
15777 in the
15778 <filename>meta/conf/machine/include/tune-core2.inc</filename>
15779 file:
15780 <literallayout class='monospaced'>
15781 TUNE_PKGARCH_tune-core2-32 = "core2-32"
15782 </literallayout>
15783 </para>
15784 </glossdef>
15785 </glossentry>
15786
15787 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
15788 <info>
15789 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."
15790 </info>
15791 <glossdef>
15792 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015793 An underlying Application Binary Interface (ABI) used by
15794 a particular tuning in a given toolchain layer.
15795 Providers that use prebuilt libraries can use the
15796 <filename>TUNEABI</filename>,
15797 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15798 and
15799 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15800 variables to check compatibility of tunings against their
15801 selection of libraries.
15802 </para>
15803
15804 <para>
15805 If <filename>TUNEABI</filename> is undefined, then every
15806 tuning is allowed.
15807 See the
15808 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15809 class to see how the variable is used.
15810 </para>
15811 </glossdef>
15812 </glossentry>
15813
15814 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
15815 <info>
15816 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
15817 </info>
15818 <glossdef>
15819 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015820 If set, the OpenEmbedded system ignores the
15821 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15822 variable.
15823 Providers that use prebuilt libraries can use the
15824 <filename>TUNEABI_OVERRIDE</filename>,
15825 <filename>TUNEABI_WHITELIST</filename>,
15826 and
15827 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15828 variables to check compatibility of a tuning against their
15829 selection of libraries.
15830 </para>
15831
15832 <para>
15833 See the
15834 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15835 class to see how the variable is used.
15836 </para>
15837 </glossdef>
15838 </glossentry>
15839
15840 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
15841 <info>
15842 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
15843 </info>
15844 <glossdef>
15845 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015846 A whitelist of permissible
15847 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15848 values.
15849 If <filename>TUNEABI_WHITELIST</filename> is not set,
15850 all tunes are allowed.
15851 Providers that use prebuilt libraries can use the
15852 <filename>TUNEABI_WHITELIST</filename>,
15853 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15854 and <filename>TUNEABI</filename> variables to check
15855 compatibility of a tuning against their selection of
15856 libraries.
15857 </para>
15858
15859 <para>
15860 See the
15861 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15862 class to see how the variable is used.
15863 </para>
15864 </glossdef>
15865 </glossentry>
15866
15867 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
15868 <info>
15869 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
15870 </info>
15871 <glossdef>
15872 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015873 Specifies CPU or Application Binary Interface (ABI)
15874 tuning features that conflict with <replaceable>feature</replaceable>.
15875 </para>
15876
15877 <para>
15878 Known tuning conflicts are specified in the machine include
15879 files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015880 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015881 Here is an example from the
15882 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
15883 include file that lists the "o32" and "n64" features as
15884 conflicting with the "n32" feature:
15885 <literallayout class='monospaced'>
15886 TUNECONFLICTS[n32] = "o32 n64"
15887 </literallayout>
15888 </para>
15889 </glossdef>
15890 </glossentry>
15891
15892 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
15893 <info>
15894 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
15895 </info>
15896 <glossdef>
15897 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015898 Specifies a valid CPU or Application Binary Interface (ABI)
15899 tuning feature.
15900 The specified feature is stored as a flag.
15901 Valid features are specified in the machine include files
15902 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
15903 Here is an example from that file:
15904 <literallayout class='monospaced'>
15905 TUNEVALID[bigendian] = "Enable big-endian mode."
15906 </literallayout>
15907 </para>
15908
15909 <para>
15910 See the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015911 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015912 for these features.
15913 </para>
15914 </glossdef>
15915 </glossentry>
15916
15917 </glossdiv>
15918
15919 <glossdiv id='var-glossary-u'><title>U</title>
15920
15921 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
15922 <info>
15923 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
15924 </info>
15925 <glossdef>
15926 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015927 Configures the
15928 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
15929 and can also define
15930 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
15931 for individual cases.
15932 </para>
15933
15934 <para>
15935 Following is an example from the
15936 <filename>meta-fsl-arm</filename> layer.
15937 <literallayout class='monospaced'>
15938 UBOOT_CONFIG ??= "sd"
15939 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
15940 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
15941 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
15942 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
15943 </literallayout>
15944 In this example, "sd" is selected as the configuration
15945 of the possible four for the
15946 <filename>UBOOT_MACHINE</filename>.
15947 The "sd" configuration defines "mx6qsabreauto_config"
15948 as the value for <filename>UBOOT_MACHINE</filename>, while
15949 the "sdcard" specifies the
15950 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
15951 image.
15952 </para>
15953
15954 <para>
15955 For more information on how the
15956 <filename>UBOOT_CONFIG</filename> is handled, see the
15957 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
15958 class.
15959 </para>
15960 </glossdef>
15961 </glossentry>
15962
15963 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
15964 <info>
15965 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
15966 </info>
15967 <glossdef>
15968 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015969 Specifies the entry point for the U-Boot image.
15970 During U-Boot image creation, the
15971 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
15972 as a command-line parameter to the
15973 <filename>uboot-mkimage</filename> utility.
15974 </para>
15975 </glossdef>
15976 </glossentry>
15977
15978 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
15979 <info>
15980 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
15981 </info>
15982 <glossdef>
15983 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015984 Specifies the load address for the U-Boot image.
15985 During U-Boot image creation, the
15986 <filename>UBOOT_LOADADDRESS</filename> variable is passed
15987 as a command-line parameter to the
15988 <filename>uboot-mkimage</filename> utility.
15989 </para>
15990 </glossdef>
15991 </glossentry>
15992
15993 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
15994 <info>
15995 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
15996 </info>
15997 <glossdef>
15998 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015999 Appends a string to the name of the local version of the
16000 U-Boot image.
16001 For example, assuming the version of the U-Boot image
Andrew Geissler82c905d2020-04-13 13:39:40 -050016002 built was "2013.10", the full version string reported by
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016003 U-Boot would be "2013.10-yocto" given the following
16004 statement:
16005 <literallayout class='monospaced'>
16006 UBOOT_LOCALVERSION = "-yocto"
16007 </literallayout>
16008 </para>
16009 </glossdef>
16010 </glossentry>
16011
16012 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
16013 <info>
16014 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
16015 </info>
16016 <glossdef>
16017 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016018 Specifies the value passed on the
16019 <filename>make</filename> command line when building
16020 a U-Boot image.
16021 The value indicates the target platform configuration.
16022 You typically set this variable from the machine
16023 configuration file (i.e.
16024 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
16025 </para>
16026
16027 <para>
16028 Please see the "Selection of Processor Architecture and
16029 Board Type" section in the U-Boot README for valid values
16030 for this variable.
16031 </para>
16032 </glossdef>
16033 </glossentry>
16034
16035 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
16036 <info>
16037 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
16038 </info>
16039 <glossdef>
16040 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016041 Specifies the target called in the
16042 <filename>Makefile</filename>.
16043 The default target is "all".
16044 </para>
16045 </glossdef>
16046 </glossentry>
16047
16048 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
16049 <info>
16050 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
16051 </info>
16052 <glossdef>
16053 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016054 Points to the generated U-Boot extension.
16055 For example, <filename>u-boot.sb</filename> has a
16056 <filename>.sb</filename> extension.
16057 </para>
16058
16059 <para>
16060 The default U-Boot extension is
16061 <filename>.bin</filename>
16062 </para>
16063 </glossdef>
16064 </glossentry>
16065
16066 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
16067 <info>
16068 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
16069 </info>
16070 <glossdef>
16071 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016072 Specifies the target used for building U-Boot.
16073 The target is passed directly as part of the "make" command
16074 (e.g. SPL and AIS).
16075 If you do not specifically set this variable, the
16076 OpenEmbedded build process passes and uses "all" for the
16077 target during the U-Boot building process.
16078 </para>
16079 </glossdef>
16080 </glossentry>
16081
16082 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
16083 <info>
16084 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."
16085 </info>
16086 <glossdef>
16087 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016088 Specifies a list of options that, if reported by the
16089 configure script as being invalid, should not generate a
16090 warning during the
16091 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
16092 task.
16093 Normally, invalid configure options are simply not passed
16094 to the configure script (e.g. should be removed from
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016095 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
16096 or
16097 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016098 However, common options, for example, exist that are passed
16099 to all configure scripts at a class level that might not
16100 be valid for some configure scripts.
16101 It follows that no benefit exists in seeing a warning about
16102 these options.
16103 For these cases, the options are added to
16104 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
16105 </para>
16106
16107 <para>
16108 The configure arguments check that uses
16109 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
16110 of the
16111 <link linkend='ref-classes-insane'><filename>insane</filename></link>
16112 class and is only enabled if the recipe inherits the
16113 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
16114 class.
16115 </para>
16116 </glossdef>
16117 </glossentry>
16118
16119 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
16120 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016121 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is enabled."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016122 </info>
16123 <glossdef>
16124 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016125 For recipes inheriting the
16126 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
16127 class, <filename>UPDATERCPN</filename> specifies
Brad Bishop316dfdd2018-06-25 12:45:53 -040016128 the package that contains the initscript that is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016129 enabled.
16130 </para>
16131
16132 <para>
16133 The default value is "${PN}".
16134 Given that almost all recipes that install initscripts
16135 package them in the main package for the recipe, you
16136 rarely need to set this variable in individual recipes.
16137 </para>
16138 </glossdef>
16139 </glossentry>
16140
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016141 <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
16142 <info>
16143 UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
16144 </info>
16145 <glossdef>
16146 <para role="glossdeffirst">
Brad Bishop15ae2502019-06-18 21:44:24 -040016147 You can perform a per-recipe check for what the latest
16148 upstream source code version is by calling
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016149 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
16150 If the recipe source code is provided from Git
16151 repositories, the OpenEmbedded build system determines the
16152 latest upstream version by picking the latest tag from the
16153 list of all repository tags.
Brad Bishop15ae2502019-06-18 21:44:24 -040016154 </para>
16155
16156 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016157 You can use the
16158 <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
16159 variable to provide a regular expression to filter only the
16160 relevant tags should the default filter not work
16161 correctly.
16162 <literallayout class='monospaced'>
16163 UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
16164 </literallayout>
16165 </para>
16166 </glossdef>
16167 </glossentry>
16168
16169 <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
16170 <info>
16171 UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
16172 </info>
16173 <glossdef>
16174 <para role="glossdeffirst">
Brad Bishop15ae2502019-06-18 21:44:24 -040016175 Use the <filename>UPSTREAM_CHECK_REGEX</filename> variable
16176 to specify a different regular expression instead of the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016177 default one when the package checking system is parsing
16178 the page found using
16179 <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
16180 <literallayout class='monospaced'>
16181 UPSTREAM_CHECK_REGEX = "package_regex"
16182 </literallayout>
16183 </para>
16184 </glossdef>
16185 </glossentry>
16186
16187 <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
16188 <info>
16189 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."
16190 </info>
16191 <glossdef>
16192 <para role="glossdeffirst">
Brad Bishop15ae2502019-06-18 21:44:24 -040016193 You can perform a per-recipe check for what the latest
16194 upstream source code version is by calling
16195 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016196 If the source code is provided from tarballs, the latest
16197 version is determined by fetching the directory listing
16198 where the tarball is and attempting to find a later tarball.
16199 When this approach does not work, you can use
16200 <filename>UPSTREAM_CHECK_URI</filename> to
16201 provide a different URI that contains the link to the
16202 latest tarball.
16203 <literallayout class='monospaced'>
16204 UPSTREAM_CHECK_URI = "recipe_url"
16205 </literallayout>
16206 </para>
16207 </glossdef>
16208 </glossentry>
16209
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016210 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
16211 <info>
16212 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
16213 </info>
16214 <glossdef>
16215 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016216 Determines if <filename>devtmpfs</filename> is used for
16217 <filename>/dev</filename> population.
16218 The default value used for <filename>USE_DEVFS</filename>
16219 is "1" when no value is specifically set.
16220 Typically, you would set <filename>USE_DEVFS</filename>
16221 to "0" for a statically populated <filename>/dev</filename>
16222 directory.
16223 </para>
16224
16225 <para>
16226 See the
16227 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016228 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016229 information on how to use this variable.
16230 </para>
16231 </glossdef>
16232 </glossentry>
16233
16234 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
16235 <info>
16236 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."
16237 </info>
16238 <glossdef>
16239 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016240 When using
16241 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
16242 determines whether or not to run a
16243 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
16244 on any virtual terminals in order to enable logging in
16245 through those terminals.
16246 </para>
16247
16248 <para>
16249 The default value used for <filename>USE_VT</filename>
16250 is "1" when no default value is specifically set.
16251 Typically, you would set <filename>USE_VT</filename>
16252 to "0" in the machine configuration file for machines
16253 that do not have a graphical display attached and
16254 therefore do not need virtual terminal functionality.
16255 </para>
16256 </glossdef>
16257 </glossentry>
16258
16259 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
16260 <info>
16261 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
16262 </info>
16263 <glossdef>
16264 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016265 A list of classes to globally inherit.
16266 These classes are used by the OpenEmbedded build system
16267 to enable extra features (e.g.
16268 <filename>buildstats</filename>,
16269 <filename>image-mklibs</filename>, and so forth).
16270 </para>
16271
16272 <para>
16273 The default list is set in your
16274 <filename>local.conf</filename> file:
16275 <literallayout class='monospaced'>
16276 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
16277 </literallayout>
16278 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050016279 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016280 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016281 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016282 </para>
16283 </glossdef>
16284 </glossentry>
16285
16286 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
16287 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050016288 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 -050016289 </info>
16290 <glossdef>
16291 <para role="glossdeffirst">
Andrew Geissler82c905d2020-04-13 13:39:40 -050016292
16293 If set to <filename>error</filename>, forces the
16294 OpenEmbedded build system to produce an error if the user
16295 identification (<filename>uid</filename>) and group
16296 identification (<filename>gid</filename>) values are not
16297 defined in any of the files listed
16298 in <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16299 and <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>. If
16300 set to <filename>warn</filename>, a warning will be issued
16301 instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016302 </para>
16303
16304 <para>
16305 The default behavior for the build system is to dynamically
16306 apply <filename>uid</filename> and
16307 <filename>gid</filename> values.
16308 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
16309 variable is by default not set.
16310 If you plan on using statically assigned
16311 <filename>gid</filename> and <filename>uid</filename>
16312 values, you should set
16313 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
16314 your <filename>local.conf</filename> file as
16315 follows:
16316 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016317 USERADD_ERROR_DYNAMIC = "error"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016318 </literallayout>
16319 Overriding the default behavior implies you are going to
16320 also take steps to set static <filename>uid</filename> and
16321 <filename>gid</filename> values through use of the
16322 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
16323 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
16324 and
16325 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16326 variables.
16327 </para>
Andrew Geissler82c905d2020-04-13 13:39:40 -050016328
16329 <note>
16330 There is a difference in behavior between
16331 setting <filename>USERADD_ERROR_DYNAMIC</filename>
16332 to <filename>error</filename> and setting it
16333 to <filename>warn</filename>. When it is set
16334 to <filename>warn</filename>, the build system will report a
16335 warning for every undefined <filename>uid</filename> and
16336 <filename>gid</filename> in any recipe. But when it is set
16337 to <filename>error</filename>, it will only report errors
16338 for recipes that are actually built. This saves you from
16339 having to add static IDs for recipes that you know will
16340 never be built.
16341 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016342 </glossdef>
16343 </glossentry>
16344
16345 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
16346 <info>
16347 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."
16348 </info>
16349 <glossdef>
16350 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016351 Specifies a password file to use for obtaining static
16352 group identification (<filename>gid</filename>) values
16353 when the OpenEmbedded build system adds a group to the
16354 system during package installation.
16355 </para>
16356
16357 <para>
16358 When applying static group identification
16359 (<filename>gid</filename>) values, the OpenEmbedded build
16360 system looks in
16361 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16362 for a <filename>files/group</filename> file and then applies
16363 those <filename>uid</filename> values.
16364 Set the variable as follows in your
16365 <filename>local.conf</filename> file:
16366 <literallayout class='monospaced'>
16367 USERADD_GID_TABLES = "files/group"
16368 </literallayout>
16369 </para>
16370
16371 <note>
16372 Setting the
16373 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16374 variable to "useradd-staticids" causes the build system
16375 to use static <filename>gid</filename> values.
16376 </note>
16377 </glossdef>
16378 </glossentry>
16379
16380 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
16381 <info>
16382 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."
16383 </info>
16384 <glossdef>
16385 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016386 When inheriting the
16387 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16388 class, this variable
16389 specifies the individual packages within the recipe that
16390 require users and/or groups to be added.
16391 </para>
16392
16393 <para>
16394 You must set this variable if the recipe inherits the
16395 class.
16396 For example, the following enables adding a user for the
16397 main package in a recipe:
16398 <literallayout class='monospaced'>
16399 USERADD_PACKAGES = "${PN}"
16400 </literallayout>
16401 <note>
Andrew Geissler99467da2019-02-25 18:54:23 -060016402 It follows that if you are going to use the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016403 <filename>USERADD_PACKAGES</filename> variable,
16404 you need to set one or more of the
16405 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
16406 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
16407 or
16408 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
16409 variables.
16410 </note>
16411 </para>
16412
16413 </glossdef>
16414 </glossentry>
16415
16416 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
16417 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016418 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 -050016419 </info>
16420 <glossdef>
16421 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016422 When inheriting the
16423 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16424 class, this variable
Brad Bishop316dfdd2018-06-25 12:45:53 -040016425 specifies for a package what parameters should pass
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016426 to the <filename>useradd</filename> command
Brad Bishop316dfdd2018-06-25 12:45:53 -040016427 if you add a user to the system when the package
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016428 is installed.
16429 </para>
16430
16431 <para>
16432 Here is an example from the <filename>dbus</filename>
16433 recipe:
16434 <literallayout class='monospaced'>
16435 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
16436 --no-create-home --shell /bin/false \
16437 --user-group messagebus"
16438 </literallayout>
16439 For information on the standard Linux shell command
16440 <filename>useradd</filename>, see
16441 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
16442 </para>
16443 </glossdef>
16444 </glossentry>
16445
16446 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
16447 <info>
16448 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."
16449 </info>
16450 <glossdef>
16451 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016452 Specifies a password file to use for obtaining static
16453 user identification (<filename>uid</filename>) values
16454 when the OpenEmbedded build system adds a user to the
16455 system during package installation.
16456 </para>
16457
16458 <para>
16459 When applying static user identification
16460 (<filename>uid</filename>) values, the OpenEmbedded build
16461 system looks in
16462 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16463 for a <filename>files/passwd</filename> file and then applies
16464 those <filename>uid</filename> values.
16465 Set the variable as follows in your
16466 <filename>local.conf</filename> file:
16467 <literallayout class='monospaced'>
16468 USERADD_UID_TABLES = "files/passwd"
16469 </literallayout>
16470 </para>
16471
16472 <note>
16473 Setting the
16474 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16475 variable to "useradd-staticids" causes the build system
16476 to use static <filename>uid</filename> values.
16477 </note>
16478 </glossdef>
16479 </glossentry>
16480
16481 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
16482 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016483 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 -050016484 </info>
16485 <glossdef>
16486 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016487 When set to "useradd-staticids", causes the
16488 OpenEmbedded build system to base all user and group
16489 additions on a static
16490 <filename>passwd</filename> and
16491 <filename>group</filename> files found in
16492 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
16493 </para>
16494
16495 <para>
16496 To use static user identification (<filename>uid</filename>)
16497 and group identification (<filename>gid</filename>)
16498 values, set the variable
16499 as follows in your <filename>local.conf</filename> file:
16500 <literallayout class='monospaced'>
16501 USERADDEXTENSION = "useradd-staticids"
16502 </literallayout>
16503 <note>
16504 Setting this variable to use static
16505 <filename>uid</filename> and <filename>gid</filename>
16506 values causes the OpenEmbedded build system to employ
16507 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016508 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016509 class.
16510 </note>
16511 </para>
16512
16513 <para>
16514 If you use static <filename>uid</filename> and
16515 <filename>gid</filename> information, you must also
16516 specify the <filename>files/passwd</filename> and
16517 <filename>files/group</filename> files by setting the
16518 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16519 and
16520 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16521 variables.
16522 Additionally, you should also set the
16523 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
16524 variable.
16525 </para>
16526 </glossdef>
16527 </glossentry>
16528
16529 </glossdiv>
16530
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016531 <glossdiv id='var-glossary-v'><title>V</title>
16532
16533 <glossentry id='var-VOLATILE_LOG_DIR'><glossterm>VOLATILE_LOG_DIR</glossterm>
16534 <info>
16535 VOLATILE_LOG_DIR[doc] = "Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files."
16536 </info>
16537 <glossdef>
16538 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016539 Specifies the persistence of the target's
16540 <filename>/var/log</filename> directory, which is used to
16541 house postinstall target log files.
16542 </para>
16543
16544 <para>
16545 By default, <filename>VOLATILE_LOG_DIR</filename> is set
16546 to "yes", which means the file is not persistent.
16547 You can override this setting by setting the
16548 variable to "no" to make the log directory persistent.
16549 </para>
16550 </glossdef>
16551 </glossentry>
16552
16553 </glossdiv>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016554
16555 <glossdiv id='var-glossary-w'><title>W</title>
16556
16557 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
16558 <info>
16559 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
16560 </info>
16561 <glossdef>
16562 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016563 Specifies the quality assurance checks whose failures are
16564 reported as warnings by the OpenEmbedded build system.
16565 You set this variable in your distribution configuration
16566 file.
16567 For a list of the checks you can control with this variable,
16568 see the
16569 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
16570 section.
16571 </para>
16572 </glossdef>
16573 </glossentry>
16574
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016575 <glossentry id='var-WKS_FILE_DEPENDS'><glossterm>WKS_FILE_DEPENDS</glossterm>
16576 <info>
16577 WKS_FILE_DEPENDS[doc] = "Lists a recipe's build-time dependencies specific to Wic."
16578 </info>
16579 <glossdef>
16580 <para role="glossdeffirst">
16581 When placed in the recipe that builds your image, this
16582 variable lists build-time dependencies.
16583 The <filename>WKS_FILE_DEPENDS</filename> variable is only
16584 applicable when Wic images are active (i.e. when
16585 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
16586 contains entries related to Wic).
16587 If your recipe does not create Wic images, the variable
16588 has no effect.
16589 </para>
16590
16591 <para>
16592 The <filename>WKS_FILE_DEPENDS</filename> variable is
16593 similar to the
16594 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
16595 variable.
16596 When you use the variable in your recipe that builds the
16597 Wic image, dependencies you list in the
16598 <filename>WIC_FILE_DEPENDS</filename> variable are added to
16599 the <filename>DEPENDS</filename> variable.
16600 </para>
16601
16602 <para>
16603 With the <filename>WKS_FILE_DEPENDS</filename> variable,
16604 you have the possibility to specify a list of additional
16605 dependencies (e.g. native tools, bootloaders, and so forth),
16606 that are required to build Wic images.
16607 Following is an example:
16608 <literallayout class='monospaced'>
16609 WKS_FILE_DEPENDS = "<replaceable>some-native-tool</replaceable>"
16610 </literallayout>
16611 In the previous example,
16612 <replaceable>some-native-tool</replaceable> would be
16613 replaced with an actual native tool on which the build
16614 would depend.
16615 </para>
16616 </glossdef>
16617 </glossentry>
16618
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016619 <glossentry id='var-WKS_FILE'><glossterm>WKS_FILE</glossterm>
16620 <info>
16621 WKS_FILE[doc] = "Specifies the name of the wic kickstart file."
16622 </info>
16623 <glossdef>
16624 <para role="glossdeffirst">
16625 Specifies the location of the Wic
16626 kickstart file that is used by the OpenEmbedded build
16627 system to create a partitioned image
16628 (<replaceable>image</replaceable><filename>.wic</filename>).
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016629 For information on how to create a partitioned image, see
16630 the
16631 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
16632 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016633 For details on the kickstart file format, see the
Andrew Geissler82c905d2020-04-13 13:39:40 -050016634 "<link linkend='ref-kickstart'>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</link>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016635 Chapter.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016636 </para>
16637 </glossdef>
16638 </glossentry>
16639
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016640 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
16641 <info>
16642 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."
16643 </info>
16644 <glossdef>
16645 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016646 The pathname of the work directory in which the OpenEmbedded
16647 build system builds a recipe.
16648 This directory is located within the
16649 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
16650 directory structure and is specific to the recipe being
16651 built and the system for which it is being built.
16652 </para>
16653
16654 <para>
16655 The <filename>WORKDIR</filename> directory is defined as
16656 follows:
16657 <literallayout class='monospaced'>
16658 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
16659 </literallayout>
16660 The actual directory depends on several things:
16661 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016662 <listitem><filename>TMPDIR</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016663 The top-level build output directory</listitem>
16664 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
16665 The target system identifier</listitem>
16666 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
16667 The recipe name</listitem>
16668 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
16669 The epoch - (if
16670 <link linkend='var-PE'><filename>PE</filename></link>
16671 is not specified, which is usually the case for most
16672 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
16673 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
16674 The recipe version</listitem>
16675 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
16676 The recipe revision</listitem>
16677 </itemizedlist>
16678 </para>
16679
16680 <para>
16681 As an example, assume a Source Directory top-level folder
16682 name <filename>poky</filename>, a default Build Directory at
16683 <filename>poky/build</filename>, and a
16684 <filename>qemux86-poky-linux</filename> machine target
16685 system.
16686 Furthermore, suppose your recipe is named
16687 <filename>foo_1.3.0-r0.bb</filename>.
16688 In this case, the work directory the build system uses to
16689 build the package would be as follows:
16690 <literallayout class='monospaced'>
16691 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
16692 </literallayout>
16693 </para>
16694 </glossdef>
16695 </glossentry>
16696
16697 </glossdiv>
16698
16699 <glossdiv id='var-glossary-x'><title>X</title>
16700
16701 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
16702 <info>
Andrew Geissler82c905d2020-04-13 13:39:40 -050016703 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 -050016704 </info>
16705 <glossdef>
16706 <para role="glossdeffirst">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016707 Specifies the packages that should be installed to
16708 provide an X server and drivers for the current machine,
16709 assuming your image directly includes
16710 <filename>packagegroup-core-x11-xserver</filename> or,
16711 perhaps indirectly, includes "x11-base" in
16712 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
16713 </para>
16714
16715 <para>
16716 The default value of <filename>XSERVER</filename>, if not
16717 specified in the machine configuration, is
16718 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
16719 </para>
16720 </glossdef>
16721 </glossentry>
16722
16723 </glossdiv>
16724
16725<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
16726<!-- </glossdiv>-->
16727
16728<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
16729<!-- </glossdiv>-->
16730
16731</glossary>
16732</chapter>
16733<!--
16734vim: expandtab tw=80 ts=4
16735-->