blob: 6470c739c2846ef5e68595de35bca56c3dd0c014 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<!-- Dummy chapter -->
6<chapter id='ref-variables-glos'>
7
8<title>Variables Glossary</title>
9
10<para>
11 This chapter lists common variables used in the OpenEmbedded build system and gives an overview
12 of their function and contents.
13</para>
14
15<glossary id='ref-variables-glossary'>
16
17
18 <para>
19 <link linkend='var-ABIEXTENSION'>A</link>
20 <link linkend='var-B'>B</link>
21 <link linkend='var-CACHE'>C</link>
22 <link linkend='var-D'>D</link>
23 <link linkend='var-EFI_PROVIDER'>E</link>
24 <link linkend='var-FEATURE_PACKAGES'>F</link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040025 <link linkend='var-GCCPIE'>G</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050026 <link linkend='var-HOMEPAGE'>H</link>
27 <link linkend='var-ICECC_DISABLED'>I</link>
28<!-- <link linkend='var-glossary-j'>J</link> -->
29 <link linkend='var-KARCH'>K</link>
30 <link linkend='var-LABELS'>L</link>
31 <link linkend='var-MACHINE'>M</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050032 <link linkend='var-NATIVELSBSTRING'>N</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033 <link linkend='var-OBJCOPY'>O</link>
34 <link linkend='var-P'>P</link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050035<!-- <link linkend='var-glossary-q'>Q</link> -->
Patrick Williamsc124f4f2015-09-15 14:41:29 -050036 <link linkend='var-RANLIB'>R</link>
37 <link linkend='var-S'>S</link>
38 <link linkend='var-T'>T</link>
39 <link linkend='var-UBOOT_CONFIG'>U</link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050040 <link linkend='var-VOLATILE_LOG_DIR'>V</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050041 <link linkend='var-WARN_QA'>W</link>
42 <link linkend='var-XSERVER'>X</link>
43<!-- <link linkend='var-glossary-y'>Y</link> -->
44<!-- <link linkend='var-glossary-z'>Z</link>-->
45 </para>
46
47 <glossdiv id='var-glossary-a'><title>A</title>
48
49 <glossentry id='var-ABIEXTENSION'><glossterm>ABIEXTENSION</glossterm>
50 <info>
51 ABIEXTENSION[doc] = "Extension to the Application Binary Interface (ABI) field of the GNU canonical architecture name (e.g. "eabi")."
52 </info>
53 <glossdef>
54 <para role="glossdeffirst">
55<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
56 Extension to the Application Binary Interface (ABI)
57 field of the GNU canonical architecture name
58 (e.g. "eabi").
59 </para>
60
61 <para>
62 ABI extensions are set in the machine include files.
63 For example, the
64 <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>
65 file sets the following extension:
66 <literallayout class='monospaced'>
67 ABIEXTENSION = "eabi"
68 </literallayout>
69 </para>
70 </glossdef>
71 </glossentry>
72
73 <glossentry id='var-ALLOW_EMPTY'><glossterm>ALLOW_EMPTY</glossterm>
74 <info>
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">
79<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040080 Specifies whether to produce an output package even if it is
81 empty.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050082 By default, BitBake does not produce empty packages.
83 This default behavior can cause issues when there is an
84 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> or
85 some other hard runtime requirement on the existence of the package.
86 </para>
87
88 <para>
89 Like all package-controlling variables, you must always use them in
90 conjunction with a package name override, as in:
91 <literallayout class='monospaced'>
92 ALLOW_EMPTY_${PN} = "1"
93 ALLOW_EMPTY_${PN}-dev = "1"
94 ALLOW_EMPTY_${PN}-staticdev = "1"
95 </literallayout>
96 </para>
97 </glossdef>
98 </glossentry>
99
100 <glossentry id='var-ALTERNATIVE'><glossterm>ALTERNATIVE</glossterm>
101 <info>
102 ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
103 </info>
104 <glossdef>
105 <para role="glossdeffirst">
106<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
107 Lists commands in a package that need an alternative
108 binary naming scheme.
109 Sometimes the same command is provided in multiple packages.
110 When this occurs, the OpenEmbedded build system needs to
111 use the alternatives system to create a different binary
112 naming scheme so the commands can co-exist.
113 </para>
114
115 <para>
116 To use the variable, list out the package's commands
117 that also exist as part of another package.
118 For example, if the <filename>busybox</filename> package
119 has four commands that also exist as part of another
120 package, you identify them as follows:
121 <literallayout class='monospaced'>
122 ALTERNATIVE_busybox = "sh sed test bracket"
123 </literallayout>
124 For more information on the alternatives system, see the
125 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
126 section.
127 </para>
128 </glossdef>
129 </glossentry>
130
131 <glossentry id='var-ALTERNATIVE_LINK_NAME'><glossterm>ALTERNATIVE_LINK_NAME</glossterm>
132 <info>
133 ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
134 </info>
135 <glossdef>
136 <para role="glossdeffirst">
137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
138 Used by the alternatives system to map duplicated commands
139 to actual locations.
140 For example, if the <filename>bracket</filename> command
141 provided by the <filename>busybox</filename> package is
142 duplicated through another package, you must use the
143 <filename>ALTERNATIVE_LINK_NAME</filename> variable to
144 specify the actual location:
145 <literallayout class='monospaced'>
146 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
147 </literallayout>
148 </para>
149
150 <para>
151 In this example, the binary for the
152 <filename>bracket</filename> command (i.e.
153 <filename>[</filename>) from the
154 <filename>busybox</filename> package resides in
155 <filename>/usr/bin/</filename>.
156 <note>
157 If <filename>ALTERNATIVE_LINK_NAME</filename> is not
158 defined, it defaults to
159 <filename>${bindir}/<replaceable>name</replaceable></filename>.
160 </note>
161 </para>
162
163 <para>
164 For more information on the alternatives system, see the
165 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
166 section.
167 </para>
168 </glossdef>
169 </glossentry>
170
171 <glossentry id='var-ALTERNATIVE_PRIORITY'><glossterm>ALTERNATIVE_PRIORITY</glossterm>
172 <info>
173 ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
174 </info>
175 <glossdef>
176 <para role="glossdeffirst">
177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
178 Used by the alternatives system to create default
179 priorities for duplicated commands.
180 You can use the variable to create a single default
181 regardless of the command name or package, a default for
182 specific duplicated commands regardless of the package, or
183 a default for specific commands tied to particular packages.
184 Here are the available syntax forms:
185 <literallayout class='monospaced'>
186 ALTERNATIVE_PRIORITY = "<replaceable>priority</replaceable>"
187 ALTERNATIVE_PRIORITY[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
188 ALTERNATIVE_PRIORITY_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
189 </literallayout>
190 </para>
191
192 <para>
193 For more information on the alternatives system, see the
194 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
195 section.
196 </para>
197 </glossdef>
198 </glossentry>
199
200 <glossentry id='var-ALTERNATIVE_TARGET'><glossterm>ALTERNATIVE_TARGET</glossterm>
201 <info>
202 ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
203 </info>
204 <glossdef>
205 <para role="glossdeffirst">
206<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
207 Used by the alternatives system to create default link
208 locations for duplicated commands.
209 You can use the variable to create a single default
210 location for all duplicated commands regardless of the
211 command name or package, a default for
212 specific duplicated commands regardless of the package, or
213 a default for specific commands tied to particular packages.
214 Here are the available syntax forms:
215 <literallayout class='monospaced'>
216 ALTERNATIVE_TARGET = "<replaceable>target</replaceable>"
217 ALTERNATIVE_TARGET[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
218 ALTERNATIVE_TARGET_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
219 </literallayout>
220 <note>
221 <para>
222 If <filename>ALTERNATIVE_TARGET</filename> is not
223 defined, it inherits the value from the
224 <link linkend='var-ALTERNATIVE_LINK_NAME'><filename>ALTERNATIVE_LINK_NAME</filename></link>
225 variable.
226 </para>
227
228 <para>
229 If <filename>ALTERNATIVE_LINK_NAME</filename> and
230 <filename>ALTERNATIVE_TARGET</filename> are the
231 same, the target for
232 <filename>ALTERNATIVE_TARGET</filename>
233 has "<filename>.{BPN}</filename>" appended to it.
234 </para>
235
236 <para>
237 Finally, if the file referenced has not been
238 renamed, the alternatives system will rename it to
239 avoid the need to rename alternative files in the
240 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
241 task while
242 retaining support for the command if necessary.
243 </para>
244 </note>
245 </para>
246
247 <para>
248 For more information on the alternatives system, see the
249 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
250 section.
251 </para>
252 </glossdef>
253 </glossentry>
254
255 <glossentry id='var-APPEND'><glossterm>APPEND</glossterm>
256 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400257 APPEND[doc] = "An override list of append strings for target specified using LABELS."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500258 </info>
259 <glossdef>
260 <para role="glossdeffirst">
261<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -0400262 An override list of append strings for each target
263 specified with
264 <link linkend='var-LABELS'><filename>LABELS</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500265 </para>
266
267 <para>
268 See the
269 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
270 class for more information on how this variable is used.
271 </para>
272 </glossdef>
273 </glossentry>
274
275 <glossentry id='var-AR'><glossterm>AR</glossterm>
276 <info>
277 AR[doc] = "Minimal command and arguments to run 'ar'."
278 </info>
279 <glossdef>
280 <para role="glossdeffirst">
281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
282 The minimal command and arguments used to run
283 <filename>ar</filename>.
284 </para>
285 </glossdef>
286 </glossentry>
287
288 <glossentry id='var-ARCHIVER_MODE'><glossterm>ARCHIVER_MODE</glossterm>
289 <info>
290 ARCHIVER_MODE[doc] = "Controls archive creation used when releasing source files."
291 </info>
292 <glossdef>
293 <para role="glossdeffirst">
294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
295 When used with the
296 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
297 class, determines the type of information used to create
298 a released archive.
299 You can use this variable to create archives of patched
300 source, original source, configured source, and so forth
301 by employing the following variable flags (varflags):
302 <literallayout class='monospaced'>
303 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source
304 # files.
305
306 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is
307 # the default.
308
309 ARCHIVER_MODE[src] = "configured" # Uses configured source files.
310
311 ARCHIVER_MODE[diff] = "1" # Uses patches between do_unpack and
312 # do_patch.
313
314 ARCHIVER_MODE[diff-exclude] ?= "<replaceable>file</replaceable> <replaceable>file</replaceable> ..." # Lists files and directories to
315 # exclude from diff.
316
317 ARCHIVER_MODE[dumpdata] = "1" # Uses environment data.
318
319 ARCHIVER_MODE[recipe] = "1" # Uses recipe and include files.
320
321 ARCHIVER_MODE[srpm] = "1" # Uses RPM package files.
322 </literallayout>
323 For information on how the variable works, see the
324 <filename>meta/classes/archiver.bbclass</filename> file
325 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500326 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500327 </para>
328 </glossdef>
329 </glossentry>
330
331 <glossentry id='var-AS'><glossterm>AS</glossterm>
332 <info>
333 AS[doc] = "Minimal command and arguments to run the assembler."
334 </info>
335 <glossdef>
336 <para role="glossdeffirst">
337<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
338 The minimal command and arguments used to run the
339 assembler.
340 </para>
341 </glossdef>
342 </glossentry>
343
344 <glossentry id='var-ASSUME_PROVIDED'><glossterm>ASSUME_PROVIDED</glossterm>
345 <info>
346 ASSUME_PROVIDED[doc] = "Lists recipe names (PN values) BitBake does not attempt to build."
347 </info>
348 <glossdef>
349 <para role="glossdeffirst">
350<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
351 Lists recipe names
352 (<link linkend='var-PN'><filename>PN</filename></link>
353 values) BitBake does not attempt to build.
354 Instead, BitBake assumes these recipes have already been
355 built.
356 </para>
357
358 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400359 In OpenEmbedded-Core, <filename>ASSUME_PROVIDED</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500360 mostly specifies native tools that should not be built.
361 An example is <filename>git-native</filename>, which when
362 specified, allows for the Git binary from the host to be
363 used rather than building <filename>git-native</filename>.
364 </para>
365 </glossdef>
366 </glossentry>
367
368 <glossentry id='var-ASSUME_SHLIBS'><glossterm>ASSUME_SHLIBS</glossterm>
369 <info>
370 ASSUME_SHLIBS[doc] = Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system."
371 </info>
372 <glossdef>
373 <para role="glossdeffirst">
374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
375 Provides additional <filename>shlibs</filename> provider
376 mapping information, which adds to or overwrites the
377 information provided automatically by the system.
378 Separate multiple entries using spaces.
379 </para>
380
381 <para>
382 As an example, use the following form to add an
383 <filename>shlib</filename> provider of
384 <replaceable>shlibname</replaceable> in
385 <replaceable>packagename</replaceable> with the optional
386 <replaceable>version</replaceable>:
387 <literallayout class='monospaced'>
388 <replaceable>shlibname:packagename</replaceable>[_<replaceable>version</replaceable>]
389 </literallayout>
390 </para>
391
392 <para>
393 Here is an example that adds a shared library named
394 <filename>libEGL.so.1</filename> as being provided by
395 the <filename>libegl-implementation</filename> package:
396 <literallayout class='monospaced'>
397 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
398 </literallayout>
399 </para>
400 </glossdef>
401 </glossentry>
402
403 <glossentry id='var-AUTHOR'><glossterm>AUTHOR</glossterm>
404 <info>
405 AUTHOR[doc] = "Email address used to contact the original author or authors in order to send patches and forward bugs."
406 </info>
407 <glossdef>
408 <para role="glossdeffirst">
409<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
410 The email address used to contact the original author
411 or authors in order to send patches and forward bugs.
412 </para>
413 </glossdef>
414 </glossentry>
415
416 <glossentry id='var-AUTO_LIBNAME_PKGS'><glossterm>AUTO_LIBNAME_PKGS</glossterm>
417 <info>
418 AUTO_LIBNAME_PKGS[doc] = "Specifies which packages should be checked for libraries and renamed according to Debian library package naming."
419 </info>
420 <glossdef>
421 <para role="glossdeffirst">
422<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
423 When the
424 <link linkend='ref-classes-debian'><filename>debian</filename></link>
425 class is inherited, which is the default behavior,
426 <filename>AUTO_LIBNAME_PKGS</filename> specifies which
427 packages should be checked for libraries and renamed
428 according to Debian library package naming.
429 </para>
430
431 <para>
432 The default value is "${PACKAGES}", which causes the
433 debian class to act on all packages that are
434 explicitly generated by the recipe.
435 </para>
436 </glossdef>
437 </glossentry>
438
439 <glossentry id='var-AUTO_SYSLINUXMENU'><glossterm>AUTO_SYSLINUXMENU</glossterm>
440 <info>
441 AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
442 </info>
443 <glossdef>
444 <para role="glossdeffirst">
445<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
446 Enables creating an automatic menu for the syslinux
447 bootloader.
448 You must set this variable in your recipe.
449 The
450 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
451 class checks this variable.
452 </para>
453 </glossdef>
454 </glossentry>
455
456 <glossentry id='var-AUTOREV'><glossterm>AUTOREV</glossterm>
457 <info>
458 AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
459 </info>
460 <glossdef>
461 <para role="glossdeffirst">
462<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
463 When
464 <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
465 is set to the value of this variable, it specifies to use
466 the latest source revision in the repository.
467 Here is an example:
468 <literallayout class='monospaced'>
469 SRCREV = "${AUTOREV}"
470 </literallayout>
471 </para>
472
473 <para>
474 If you use the previous statement to retrieve the latest
475 version of software, you need to be sure
476 <link linkend='var-PV'><filename>PV</filename></link>
477 contains
478 <filename>${</filename><link linkend='var-SRCPV'><filename>SRCPV</filename></link><filename>}</filename>.
479 For example, suppose you have a kernel recipe that
480 inherits the
481 <link linkend='ref-classes-kernel'>kernel</link> class
482 and you use the previous statement.
483 In this example, <filename>${SRCPV}</filename> does not
484 automatically get into <filename>PV</filename>.
485 Consequently, you need to change <filename>PV</filename>
486 in your recipe so that it does contain
487 <filename>${SRCPV}</filename>.
488 </para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500489
490 <para>
491 For more information see the
492 "<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 -0500493 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500494 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500495 </glossdef>
496 </glossentry>
497
498 <glossentry id='var-AVAILTUNES'><glossterm>AVAILTUNES</glossterm>
499 <info>
500 AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system."
501 </info>
502 <glossdef>
503 <para role="glossdeffirst">
504<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
505 The list of defined CPU and Application Binary Interface
506 (ABI) tunings (i.e. "tunes") available for use by the
507 OpenEmbedded build system.
508 </para>
509
510 <para>
511 The list simply presents the tunes that are available.
512 Not all tunes may be compatible with a particular
513 machine configuration, or with each other in a
514 <ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Multilib</ulink>
515 configuration.
516 </para>
517
518 <para>
519 To add a tune to the list, be sure to append it with
520 spaces using the "+=" BitBake operator.
521 Do not simply replace the list by using the "=" operator.
522 See the
523 "<ulink url='&YOCTO_DOCS_BB_URL;#basic-syntax'>Basic Syntax</ulink>"
524 section in the BitBake User Manual for more information.
525 </para>
526 </glossdef>
527 </glossentry>
528
529 </glossdiv>
530
531 <glossdiv id='var-glossary-b'><title>B</title>
532
533 <glossentry id='var-B'><glossterm>B</glossterm>
534 <info>
535 B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
536 </info>
537 <glossdef>
538 <para role="glossdeffirst">
539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
540 The directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500541 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500542 in which the OpenEmbedded build system places generated
543 objects during a recipe's build process.
544 By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
545 directory, which is defined as:
546 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600547 S = "${WORKDIR}/${BP}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500548 </literallayout>
549 </para>
550
551 <para>
552 You can separate the (<filename>S</filename>) directory
553 and the directory pointed to by the <filename>B</filename>
554 variable.
555 Most Autotools-based recipes support separating these
556 directories.
557 The build system defaults to using separate directories for
558 <filename>gcc</filename> and some kernel recipes.
559 </para>
560 </glossdef>
561 </glossentry>
562
563 <glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
564 <info>
565 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."
566 </info>
567 <glossdef>
568 <para role="glossdeffirst">
569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
570 Lists "recommended-only" packages to not install.
571 Recommended-only packages are packages installed only
572 through the
573 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
574 variable.
575 You can prevent any of these "recommended" packages from
576 being installed by listing them with the
577 <filename>BAD_RECOMMENDATIONS</filename> variable:
578 <literallayout class='monospaced'>
579 BAD_RECOMMENDATIONS = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
580 </literallayout>
581 </para>
582
583 <para>
584 You can set this variable globally in your
585 <filename>local.conf</filename> file or you can attach it to
586 a specific image recipe by using the recipe name override:
587 <literallayout class='monospaced'>
588 BAD_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
589 </literallayout>
590 </para>
591
592 <para>
593 It is important to realize that if you choose to not install
594 packages using this variable and some other packages are
595 dependent on them (i.e. listed in a recipe's
596 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
597 variable), the OpenEmbedded build system ignores your
598 request and will install the packages to avoid dependency
599 errors.
600 </para>
601
602 <para>
603 Support for this variable exists only when using the
604 IPK and RPM packaging backend.
605 Support does not exist for DEB.
606 </para>
607
608 <para>
609 See the
610 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
611 and the
612 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
613 variables for related information.
614 </para>
615 </glossdef>
616 </glossentry>
617
618 <glossentry id='var-BASE_LIB'><glossterm>BASE_LIB</glossterm>
619 <info>
620 BASE_LIB[doc] = "The library directory name for the CPU or Application Binary Interface (ABI) tune."
621 </info>
622 <glossdef>
623 <para role="glossdeffirst">
624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
625 The library directory name for the CPU or Application
626 Binary Interface (ABI) tune.
627 The <filename>BASE_LIB</filename> applies only in the
628 Multilib context.
629 See the
630 "<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 -0500631 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500632 information on Multilib.
633 </para>
634
635 <para>
636 The <filename>BASE_LIB</filename> variable is defined in
637 the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500638 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500639 If Multilib is not being used, the value defaults to "lib".
640 </para>
641 </glossdef>
642 </glossentry>
643
644 <glossentry id='var-BASE_WORKDIR'><glossterm>BASE_WORKDIR</glossterm>
645 <info>
646 BASE_WORKDIR[doc] = "Points to the base of the work directory for all recipes."
647 </info>
648 <glossdef>
649 <para role="glossdeffirst">
650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
651 Points to the base of the work directory for all recipes.
652 The default value is "${TMPDIR}/work".
653 </para>
654 </glossdef>
655 </glossentry>
656
657 <glossentry id='var-BB_ALLOWED_NETWORKS'><glossterm>BB_ALLOWED_NETWORKS</glossterm>
658 <info>
659 BB_ALLOWED_NETWORKS[doc] = "A list of hosts that the fetcher is allowed to use to obtain the required source code."
660 </info>
661 <glossdef>
662 <para>
663 Specifies a space-delimited list of hosts that the fetcher
664 is allowed to use to obtain the required source code.
665 Following are considerations surrounding this variable:
666 <itemizedlist>
667 <listitem><para>
668 This host list is only used if
669 <filename>BB_NO_NETWORK</filename> is either not
670 set or set to "0".
671 </para></listitem>
672 <listitem><para>
673 Limited support for wildcard matching against the
674 beginning of host names exists.
675 For example, the following setting matches
676 <filename>git.gnu.org</filename>,
677 <filename>ftp.gnu.org</filename>, and
678 <filename>foo.git.gnu.org</filename>.
679 <literallayout class='monospaced'>
680 BB_ALLOWED_NETWORKS = "*.gnu.org"
681 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800682 <note><title>Important</title>
683 <para>The use of the "<filename>*</filename>"
684 character only works at the beginning of
685 a host name and it must be isolated from
686 the remainder of the host name.
687 You cannot use the wildcard character in any
688 other location of the name or combined with
689 the front part of the name.</para>
690
691 <para>For example,
692 <filename>*.foo.bar</filename> is supported,
693 while <filename>*aa.foo.bar</filename> is not.
694 </para>
695 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500696 </para></listitem>
697 <listitem><para>
698 Mirrors not in the host list are skipped and
699 logged in debug.
700 </para></listitem>
701 <listitem><para>
702 Attempts to access networks not in the host list
703 cause a failure.
704 </para></listitem>
705 </itemizedlist>
706 Using <filename>BB_ALLOWED_NETWORKS</filename> in
707 conjunction with
708 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
709 is very useful.
710 Adding the host you want to use to
711 <filename>PREMIRRORS</filename> results in the source code
712 being fetched from an allowed location and avoids raising
713 an error when a host that is not allowed is in a
714 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
715 statement.
716 This is because the fetcher does not attempt to use the
717 host listed in <filename>SRC_URI</filename> after a
718 successful fetch from the
719 <filename>PREMIRRORS</filename> occurs.
720 </para>
721 </glossdef>
722 </glossentry>
723
724 <glossentry id='var-BB_DANGLINGAPPENDS_WARNONLY'><glossterm>BB_DANGLINGAPPENDS_WARNONLY</glossterm>
725 <info>
726 BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
727 </info>
728 <glossdef>
729 <para role="glossdeffirst">
730<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
731 Defines how BitBake handles situations where an append
732 file (<filename>.bbappend</filename>) has no
733 corresponding recipe file (<filename>.bb</filename>).
734 This condition often occurs when layers get out of sync
735 (e.g. <filename>oe-core</filename> bumps a
736 recipe version and the old recipe no longer exists and the
737 other layer has not been updated to the new version
738 of the recipe yet).
739 </para>
740
741 <para>
742 The default fatal behavior is safest because it is
743 the sane reaction given something is out of sync.
744 It is important to realize when your changes are no longer
745 being applied.
746 </para>
747
748 <para>
749 You can change the default behavior by setting this
750 variable to "1", "yes", or "true"
751 in your <filename>local.conf</filename> file, which is
752 located in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500753 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500754 Here is an example:
755 <literallayout class='monospaced'>
756 BB_DANGLINGAPPENDS_WARNONLY = "1"
757 </literallayout>
758 </para>
759 </glossdef>
760 </glossentry>
761
762 <glossentry id='var-BB_DISKMON_DIRS'><glossterm>BB_DISKMON_DIRS</glossterm>
763 <info>
764 BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
765 </info>
766 <glossdef>
767 <para role="glossdeffirst">
768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
769 Monitors disk space and available inodes during the build
770 and allows you to control the build based on these
771 parameters.
772 </para>
773
774 <para>
775 Disk space monitoring is disabled by default.
776 To enable monitoring, add the <filename>BB_DISKMON_DIRS</filename>
777 variable to your <filename>conf/local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500778 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500779 Use the following form:
780 <literallayout class='monospaced'>
781 BB_DISKMON_DIRS = "<replaceable>action</replaceable>,<replaceable>dir</replaceable>,<replaceable>threshold</replaceable> [...]"
782
783 where:
784
785 <replaceable>action</replaceable> is:
786 ABORT: Immediately abort the build when
787 a threshold is broken.
788 STOPTASKS: Stop the build after the currently
789 executing tasks have finished when
790 a threshold is broken.
791 WARN: Issue a warning but continue the
792 build when a threshold is broken.
793 Subsequent warnings are issued as
Brad Bishop316dfdd2018-06-25 12:45:53 -0400794 defined by the BB_DISKMON_WARNINTERVAL
795 variable, which must be defined in
796 the conf/local.conf file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500797
798 <replaceable>dir</replaceable> is:
799 Any directory you choose. You can specify one or
800 more directories to monitor by separating the
801 groupings with a space. If two directories are
802 on the same device, only the first directory
803 is monitored.
804
805 <replaceable>threshold</replaceable> is:
806 Either the minimum available disk space,
807 the minimum number of free inodes, or
808 both. You must specify at least one. To
809 omit one or the other, simply omit the value.
810 Specify the threshold using G, M, K for Gbytes,
811 Mbytes, and Kbytes, respectively. If you do
812 not specify G, M, or K, Kbytes is assumed by
813 default. Do not use GB, MB, or KB.
814 </literallayout>
815 </para>
816
817 <para>
818 Here are some examples:
819 <literallayout class='monospaced'>
820 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
821 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
822 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
823 </literallayout>
824 The first example works only if you also provide
825 the <link linkend='var-BB_DISKMON_WARNINTERVAL'><filename>BB_DISKMON_WARNINTERVAL</filename></link> variable
826 in the <filename>conf/local.conf</filename>.
827 This example causes the build system to immediately
828 abort when either the disk space in <filename>${TMPDIR}</filename> drops
829 below 1 Gbyte or the available free inodes drops below
830 100 Kbytes.
831 Because two directories are provided with the variable, the
832 build system also issue a
833 warning when the disk space in the
834 <filename>${SSTATE_DIR}</filename> directory drops
835 below 1 Gbyte or the number of free inodes drops
836 below 100 Kbytes.
837 Subsequent warnings are issued during intervals as
838 defined by the <filename>BB_DISKMON_WARNINTERVAL</filename>
839 variable.
840 </para>
841
842 <para>
843 The second example stops the build after all currently
844 executing tasks complete when the minimum disk space
845 in the <filename>${<link linkend='var-TMPDIR'>TMPDIR</link>}</filename>
846 directory drops below 1 Gbyte.
847 No disk monitoring occurs for the free inodes in this case.
848 </para>
849
850 <para>
851 The final example immediately aborts the build when the
852 number of free inodes in the <filename>${TMPDIR}</filename> directory
853 drops below 100 Kbytes.
854 No disk space monitoring for the directory itself occurs
855 in this case.
856 </para>
857 </glossdef>
858 </glossentry>
859
860 <glossentry id='var-BB_DISKMON_WARNINTERVAL'><glossterm>BB_DISKMON_WARNINTERVAL</glossterm>
861 <info>
862 BB_DISKMON_WARNINTERVAL[doc] = "Defines the disk space and free inode warning intervals. To set these intervals, define the variable in the conf/local.conf file in the Build Directory."
863 </info>
864 <glossdef>
865 <para role="glossdeffirst">
866<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
867 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>
934 BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the Git repositories to be placed in the DL_DIR directory."
935 </info>
936 <glossdef>
937 <para role="glossdeffirst">
938<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
939 Causes tarballs of the Git repositories, including the
940 Git metadata, to be placed in the
941 <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
947 the Git repositories is not the default action by the
948 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>
956 </glossdef>
957 </glossentry>
958
959 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
960 <info>
961 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."
962 </info>
963 <glossdef>
964 <para role="glossdeffirst">
965<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
966 The maximum number of tasks BitBake should run in parallel
967 at any one time.
968 The OpenEmbedded build system automatically configures
969 this variable to be equal to the number of cores on the
970 build system.
971 For example, a system with a dual core processor that
972 also uses hyper-threading causes the
973 <filename>BB_NUMBER_THREADS</filename> variable to default
974 to "4".
975 </para>
976
977 <para>
978 For single socket systems (i.e. one CPU), you should not
979 have to override this variable to gain optimal parallelism
980 during builds.
981 However, if you have very large systems that employ
982 multiple physical CPUs, you might want to make sure the
983 <filename>BB_NUMBER_THREADS</filename> variable is not
984 set higher than "20".
985 </para>
986
987 <para>
988 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -0400989 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
990 section in the Yocto Project Development Tasks Manual.
991 </para>
992 </glossdef>
993 </glossentry>
994
995 <glossentry id='var-BB_SERVER_TIMEOUT'><glossterm>BB_SERVER_TIMEOUT</glossterm>
996 <info>
997 BB_SERVER_TIMEOUT [doc] = "Specifies the time (in seconds) after which to unload the BitBake server due to inactivity."
998 </info>
999 <glossdef>
1000 <para role="glossdeffirst">
1001<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1002 Specifies the time (in seconds) after which to unload the
1003 BitBake server due to inactivity.
1004 Set <filename>BB_SERVER_TIMEOUT</filename> to determine how
1005 long the BitBake server stays resident between invocations.
1006 </para>
1007
1008 <para>
1009 For example, the following statement in your
1010 <filename>local.conf</filename> file instructs the server
1011 to be unloaded after 20 seconds of inactivity:
1012 <literallayout class='monospaced'>
1013 BB_SERVER_TIMEOUT = "20"
1014 </literallayout>
1015 If you want the server to never be unloaded, set
1016 <filename>BB_SERVER_TIMEOUT</filename> to "-1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001017 </para>
1018 </glossdef>
1019 </glossentry>
1020
1021 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
1022 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001023 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 -05001024 </info>
1025 <glossdef>
1026 <para role="glossdeffirst">
1027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1028 Allows you to extend a recipe so that it builds variants of the software.
1029 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
1030 which is a copy of Quilt built to run on the build system;
1031 "crosses" such as <filename>gcc-cross</filename>,
1032 which is a compiler built to run on the build machine but produces binaries
1033 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
1034 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
1035 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
1036 </para>
1037
1038 <para>
1039 To build a different variant of the recipe with a minimal amount of code, it usually
1040 is as simple as adding the following to your recipe:
1041 <literallayout class='monospaced'>
1042 BBCLASSEXTEND =+ "native nativesdk"
1043 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
1044 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001045 <note>
1046 <para>
1047 Internally, the <filename>BBCLASSEXTEND</filename>
1048 mechanism generates recipe variants by rewriting
1049 variable values and applying overrides such as
1050 <filename>_class-native</filename>.
1051 For example, to generate a native version of a recipe,
1052 a
1053 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
1054 on "foo" is rewritten to a <filename>DEPENDS</filename>
1055 on "foo-native".
1056 </para>
1057
1058 <para>
1059 Even when using <filename>BBCLASSEXTEND</filename>, the
1060 recipe is only parsed once.
1061 Parsing once adds some limitations.
1062 For example, it is not possible to
1063 include a different file depending on the variant,
1064 since <filename>include</filename> statements are
1065 processed when the recipe is parsed.
1066 </para>
1067 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001068 </para>
1069 </glossdef>
1070 </glossentry>
1071
1072 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1073 <info>
1074 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1075 </info>
1076 <glossdef>
1077 <para role="glossdeffirst">
1078<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1079 Lists the names of configured layers.
1080 These names are used to find the other <filename>BBFILE_*</filename>
1081 variables.
1082 Typically, each layer will append its name to this variable in its
1083 <filename>conf/layer.conf</filename> file.
1084 </para>
1085 </glossdef>
1086 </glossentry>
1087
1088 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1089 <info>
1090 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."
1091 </info>
1092 <glossdef>
1093 <para role="glossdeffirst">
1094<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1095 Variable that expands to match files from
1096 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1097 in a particular layer.
1098 This variable is used in the <filename>conf/layer.conf</filename> file and must
1099 be suffixed with the name of the specific layer (e.g.
1100 <filename>BBFILE_PATTERN_emenlow</filename>).
1101 </para>
1102 </glossdef>
1103 </glossentry>
1104
1105 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1106 <info>
1107 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."
1108 </info>
1109 <glossdef>
1110 <para role="glossdeffirst">
1111<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1112 Assigns the priority for recipe files in each layer.
1113 </para>
1114
1115 <para>
1116 This variable is useful in situations where the same recipe appears in
1117 more than one layer.
1118 Setting this variable allows you to prioritize a
1119 layer against other layers that contain the same recipe - effectively
1120 letting you control the precedence for the multiple layers.
1121 The precedence established through this variable stands regardless of a
1122 recipe's version
1123 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1124 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1125 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1126 lower precedence.
1127 </para>
1128
1129 <para>
1130 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1131 precedence.
1132 For example, the value 6 has a higher precedence than the value 5.
1133 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1134 dependencies (see the
1135 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1136 more information.
1137 The default priority, if unspecified
1138 for a layer with no dependencies, is the lowest defined priority + 1
1139 (or 1 if no priorities are defined).
1140 </para>
1141 <tip>
1142 You can use the command <filename>bitbake-layers show-layers</filename> to list
1143 all configured layers along with their priorities.
1144 </tip>
1145 </glossdef>
1146 </glossentry>
1147
1148 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1149 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001150 BBFILES[doc] = "A space-separated list of recipe files BitBake uses to build software."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001151 </info>
1152 <glossdef>
1153 <para role="glossdeffirst">
1154<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
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">
1176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1177 Activates content when identified layers are present.
1178 You identify the layers by the collections that the layers
1179 define.
1180 </para>
1181
1182 <para>
1183 Use the <filename>BBFILES_DYNAMIC</filename> variable to
1184 avoid <filename>.bbappend</filename> files whose
1185 corresponding <filename>.bb</filename> file is in a layer
1186 that attempts to modify other layers through
1187 <filename>.bbappend</filename> but does not want to
1188 introduce a hard dependency on those other layers.
1189 </para>
1190
1191 <para>
1192 Use the following form for
1193 <filename>BBFILES_DYNAMIC</filename>:
1194 <literallayout class='monospaced'>
1195 <replaceable>collection_name</replaceable>:<replaceable>filename_pattern</replaceable>
1196 </literallayout>
1197 The following example identifies two collection names and
1198 two filename patterns:
1199 <literallayout class='monospaced'>
1200 BBFILES_DYNAMIC += " \
1201 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
1202 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
1203 "
1204 </literallayout>
1205 This next example shows an error message that occurs
1206 because invalid entries are found, which cause parsing to
1207 abort:
1208 <literallayout class='monospaced'>
1209 ERROR: BBFILES_DYNAMIC entries must be of the form &lt;collection name&gt;:&lt;filename pattern&gt;, not:
1210 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
1211 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
1212 </literallayout>
1213 </para>
1214 </glossdef>
1215 </glossentry>
1216
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001217 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1218 <info>
1219 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1220 </info>
1221 <glossdef>
1222 <para role="glossdeffirst">
1223<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1224 Variable that controls how BitBake displays logs on build failure.
1225 </para>
1226 </glossdef>
1227 </glossentry>
1228
1229 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1230 <info>
1231 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1232 </info>
1233 <glossdef>
1234 <para role="glossdeffirst">
1235<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1236 If
1237 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1238 is set, specifies the maximum number of lines from the
1239 task log file to print when reporting a failed task.
1240 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1241 the entire log is printed.
1242 </para>
1243 </glossdef>
1244 </glossentry>
1245
1246 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1247 <info>
1248 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1249 </info>
1250 <glossdef>
1251 <para role="glossdeffirst">
1252<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1253 Lists the layers to enable during the build.
1254 This variable is defined in the <filename>bblayers.conf</filename> configuration
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001255 file in the
1256 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001257 Here is an example:
1258 <literallayout class='monospaced'>
1259 BBLAYERS = " \
1260 /home/scottrif/poky/meta \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001261 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001262 /home/scottrif/poky/meta-yocto-bsp \
1263 /home/scottrif/poky/meta-mykernel \
1264 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001265 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001266 </para>
1267
1268 <para>
1269 This example enables four layers, one of which is a custom, user-defined layer
1270 named <filename>meta-mykernel</filename>.
1271 </para>
1272 </glossdef>
1273 </glossentry>
1274
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001275 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1276 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001277 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001278 </info>
1279 <glossdef>
1280 <para role="glossdeffirst">
1281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1282 Prevents BitBake from processing recipes and recipe
1283 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001284 </para>
1285
1286 <para>
1287 You can use the <filename>BBMASK</filename> variable
1288 to "hide" these <filename>.bb</filename> and
1289 <filename>.bbappend</filename> files.
1290 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001291 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001292 It is as if BitBake does not see them at all.
1293 Consequently, matching files are not parsed or otherwise
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001294 used by BitBake.
1295 </para>
1296
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001297 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001298 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001299 expression compiler.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001300 Consequently, the syntax follows Python's Regular
1301 Expression (re) syntax.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001302 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001303 the files.
1304 For complete syntax information, see Python's
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001305 documentation at
1306 <ulink url='http://docs.python.org/3/library/re.html#re'></ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001307 </para>
1308
1309 <para>
1310 The following example uses a complete regular expression
1311 to tell BitBake to ignore all recipe and recipe append
1312 files in the <filename>meta-ti/recipes-misc/</filename>
1313 directory:
1314 <literallayout class='monospaced'>
1315 BBMASK = "meta-ti/recipes-misc/"
1316 </literallayout>
1317 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001318 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001319 This next example masks out multiple directories and
1320 individual recipes:
1321 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001322 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1323 BBMASK += "/meta-oe/recipes-support/"
1324 BBMASK += "/meta-foo/.*/openldap"
1325 BBMASK += "opencv.*\.bbappend"
1326 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001327 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001328 <note>
1329 When specifying a directory name, use the trailing
1330 slash character to ensure you match just that directory
1331 name.
1332 </note>
1333 </para>
1334 </glossdef>
1335 </glossentry>
1336
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001337 <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
1338 <info>
1339 BBMULTICONFIG[doc] = "Specifies each separate configuration when you are building targets with multiple configurations."
1340 </info>
1341 <glossdef>
1342 <para role="glossdeffirst">
1343<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1344 Specifies each separate configuration when you are
1345 building targets with multiple configurations.
1346 Use this variable in your
1347 <filename>conf/local.conf</filename> configuration file.
1348 Specify a <replaceable>multiconfigname</replaceable> for
1349 each configuration file you are using.
1350 For example, the following line specifies three
1351 configuration files:
1352 <literallayout class='monospaced'>
1353 BBMULTIFONFIG = "configA configB configC"
1354 </literallayout>
1355 Each configuration file you use must reside in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001356 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001357 <filename>conf/multiconfig</filename> directory
1358 (e.g.
1359 <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
1360 </para>
1361
1362 <para>
1363 For information on how to use
1364 <filename>BBMULTICONFIG</filename> in an environment that
1365 supports building targets with multiple configurations,
1366 see the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001367 "<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 -05001368 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001369 </para>
1370 </glossdef>
1371 </glossentry>
1372
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001373 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1374 <info>
1375 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1376 </info>
1377 <glossdef>
1378 <para role="glossdeffirst">
1379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1380 Used by BitBake to locate
1381 <filename>.bbclass</filename> and configuration files.
1382 This variable is analogous to the
1383 <filename>PATH</filename> variable.
1384 <note>
1385 If you run BitBake from a directory outside of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001386 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001387 you must be sure to set
1388 <filename>BBPATH</filename> to point to the
1389 Build Directory.
1390 Set the variable as you would any environment variable
1391 and then run BitBake:
1392 <literallayout class='monospaced'>
1393 $ BBPATH = "<replaceable>build_directory</replaceable>"
1394 $ export BBPATH
1395 $ bitbake <replaceable>target</replaceable>
1396 </literallayout>
1397 </note>
1398 </para>
1399 </glossdef>
1400 </glossentry>
1401
1402 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1403 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001404 BBSERVER[doc] = "Points to the BitBake remote server."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001405 </info>
1406 <glossdef>
1407 <para role="glossdeffirst">
1408<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001409 If defined in the BitBake environment,
1410 <filename>BBSERVER</filename> points to the BitBake
1411 remote server.
1412 </para>
1413
1414 <para>
1415 Use the following format to export the variable to the
1416 BitBake environment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001417 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001418 export BBSERVER=localhost:$port"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001419 </literallayout>
1420 </para>
1421
1422 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001423 By default, <filename>BBSERVER</filename> also appears in
1424 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>.
1425 Consequently, <filename>BBSERVER</filename> is excluded
1426 from checksum and dependency data.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001427 </para>
1428 </glossdef>
1429 </glossentry>
1430
1431 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1432 <info>
1433 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."
1434 </info>
1435 <glossdef>
1436 <para role="glossdeffirst">
1437<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1438 When inheriting the
1439 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1440 class, this variable specifies binary configuration
1441 scripts to disable in favor of using
1442 <filename>pkg-config</filename> to query the information.
1443 The <filename>binconfig-disabled</filename> class will
1444 modify the specified scripts to return an error so that
1445 calls to them can be easily found and replaced.
1446 </para>
1447
1448 <para>
1449 To add multiple scripts, separate them by spaces.
1450 Here is an example from the <filename>libpng</filename>
1451 recipe:
1452 <literallayout class='monospaced'>
1453 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1454 </literallayout>
1455 </para>
1456 </glossdef>
1457 </glossentry>
1458
1459 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1460 <info>
1461 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1462 </info>
1463 <glossdef>
1464 <para role="glossdeffirst">
1465<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1466 When inheriting the
1467 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1468 class, this variable specifies a wildcard for
1469 configuration scripts that need editing.
1470 The scripts are edited to correct any paths that have been
1471 set up during compilation so that they are correct for
1472 use when installed into the sysroot and called by the
1473 build processes of other recipes.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001474 <note>
1475 The <filename>BINCONFIG_GLOB</filename> variable
1476 uses
1477 <ulink url='http://tldp.org/LDP/abs/html/globbingref.html'>shell globbing</ulink>,
1478 which is recognition and expansion of wildcards during
1479 pattern matching.
1480 Shell globbing is very similar to
1481 <ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>
1482 and
1483 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>.
1484 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001485 </para>
1486
1487 <para>
1488 For more information on how this variable works, see
1489 <filename>meta/classes/binconfig.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001490 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001491 You can also find general information on the class in the
1492 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1493 section.
1494 </para>
1495 </glossdef>
1496 </glossentry>
1497
1498 <glossentry id='var-BP'><glossterm>BP</glossterm>
1499 <info>
1500 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}"
1501 </info>
1502 <glossdef>
1503 <para role="glossdeffirst">
1504<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1505 The base recipe name and version but without any special
1506 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1507 and so forth).
1508 <filename>BP</filename> is comprised of the following:
1509 <literallayout class="monospaced">
1510 ${BPN}-${PV}
1511 </literallayout>
1512 </para>
1513 </glossdef>
1514 </glossentry>
1515
1516 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1517 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001518 BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001519 </info>
1520 <glossdef>
1521 <para role="glossdeffirst">
1522<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001523 This variable is a version of the
1524 <link linkend='var-PN'><filename>PN</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001525 variable with common prefixes and suffixes
1526 removed, such as <filename>nativesdk-</filename>,
1527 <filename>-cross</filename>,
1528 <filename>-native</filename>, and multilib's
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001529 <filename>lib64-</filename> and
1530 <filename>lib32-</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001531 The exact lists of prefixes and suffixes removed are
1532 specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001533 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001534 and
1535 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1536 variables, respectively.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001537 </para>
1538 </glossdef>
1539 </glossentry>
1540
1541 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1542 <info>
1543 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1544 </info>
1545 <glossdef>
1546 <para role="glossdeffirst">
1547<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1548 Specifies a URL for an upstream bug tracking website for
1549 a recipe.
1550 The OpenEmbedded build system does not use this variable.
1551 Rather, the variable is a useful pointer in case a bug
1552 in the software being built needs to be manually reported.
1553 </para>
1554 </glossdef>
1555 </glossentry>
1556
1557 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1558 <info>
1559 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1560 </info>
1561 <glossdef>
1562 <para role="glossdeffirst">
1563<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1564 Specifies the architecture of the build host
1565 (e.g. <filename>i686</filename>).
1566 The OpenEmbedded build system sets the value of
1567 <filename>BUILD_ARCH</filename> from the machine name
1568 reported by the <filename>uname</filename> command.
1569 </para>
1570 </glossdef>
1571 </glossentry>
1572
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001573 <glossentry id='var-BUILD_AS_ARCH'><glossterm>BUILD_AS_ARCH</glossterm>
1574 <info>
1575 BUILD_AS_ARCH[doc] = "Specifies the architecture-specific assembler flags for the build host."
1576 </info>
1577 <glossdef>
1578 <para role="glossdeffirst">
1579<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1580 Specifies the architecture-specific assembler flags for
1581 the build host. By default, the value of
1582 <filename>BUILD_AS_ARCH</filename> is empty.
1583 </para>
1584 </glossdef>
1585 </glossentry>
1586
1587 <glossentry id='var-BUILD_CC_ARCH'><glossterm>BUILD_CC_ARCH</glossterm>
1588 <info>
1589 BUILD_CC_ARCH[doc] = "Specifies the architecture-specific C compiler flags for the build host."
1590 </info>
1591 <glossdef>
1592 <para role="glossdeffirst">
1593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1594 Specifies the architecture-specific C compiler flags for
1595 the build host. By default, the value of
1596 <filename>BUILD_CC_ARCH</filename> is empty.
1597 </para>
1598 </glossdef>
1599 </glossentry>
1600
1601 <glossentry id='var-BUILD_CCLD'><glossterm>BUILD_CCLD</glossterm>
1602 <info>
1603 BUILD_CCLD[doc] = "Specifies the linker command to be used for the build host when the C compiler is being used as the linker."
1604 </info>
1605 <glossdef>
1606 <para role="glossdeffirst">
1607<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1608 Specifies the linker command to be used for the build host
1609 when the C compiler is being used as the linker. By default,
1610 <filename>BUILD_CCLD</filename> points to GCC and passes as
1611 arguments the value of
1612 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1613 assuming <filename>BUILD_CC_ARCH</filename> is set.
1614 </para>
1615 </glossdef>
1616 </glossentry>
1617
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001618 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1619 <info>
1620 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1621 </info>
1622 <glossdef>
1623 <para role="glossdeffirst">
1624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1625 Specifies the flags to pass to the C compiler when building
1626 for the build host.
1627 When building in the <filename>-native</filename> context,
1628 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1629 is set to the value of this variable by default.
1630 </para>
1631 </glossdef>
1632 </glossentry>
1633
1634 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1635 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001636 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 -05001637 </info>
1638 <glossdef>
1639 <para role="glossdeffirst">
1640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04001641 Specifies the flags to pass to the C preprocessor
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001642 (i.e. to both the C and the C++ compilers) when building
1643 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001644 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001645 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1646 is set to the value of this variable by default.
1647 </para>
1648 </glossdef>
1649 </glossentry>
1650
1651 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1652 <info>
1653 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1654 </info>
1655 <glossdef>
1656 <para role="glossdeffirst">
1657<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1658 Specifies the flags to pass to the C++ compiler when
1659 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001660 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001661 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1662 is set to the value of this variable by default.
1663 </para>
1664 </glossdef>
1665 </glossentry>
1666
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001667 <glossentry id='var-BUILD_FC'><glossterm>BUILD_FC</glossterm>
1668 <info>
1669 BUILD_FC[doc] = "Specifies the Fortran compiler command for the build host."
1670 </info>
1671 <glossdef>
1672 <para role="glossdeffirst">
1673<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1674 Specifies the Fortran compiler command for the build host.
1675 By default, <filename>BUILD_FC</filename> points to
1676 Gfortran and passes as arguments the value of
1677 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1678 assuming <filename>BUILD_CC_ARCH</filename> is set.
1679 </para>
1680 </glossdef>
1681 </glossentry>
1682
1683 <glossentry id='var-BUILD_LD'><glossterm>BUILD_LD</glossterm>
1684 <info>
1685 BUILD_LD[doc] = "Specifies the linker command for the build host."
1686 </info>
1687 <glossdef>
1688 <para role="glossdeffirst">
1689<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1690 Specifies the linker command for the build host. By default,
1691 <filename>BUILD_LD</filename> points to the GNU linker (ld)
1692 and passes as arguments the value of
1693 <link linkend='var-BUILD_LD_ARCH'><filename>BUILD_LD_ARCH</filename></link>,
1694 assuming <filename>BUILD_LD_ARCH</filename> is set.
1695 </para>
1696 </glossdef>
1697 </glossentry>
1698
1699 <glossentry id='var-BUILD_LD_ARCH'><glossterm>BUILD_LD_ARCH</glossterm>
1700 <info>
1701 BUILD_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the build."
1702 </info>
1703 <glossdef>
1704 <para role="glossdeffirst">
1705<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1706 Specifies architecture-specific linker flags for the build
1707 host. By default, the value of
1708 <filename>BUILD_LD_ARCH</filename> is empty.
1709 </para>
1710 </glossdef>
1711 </glossentry>
1712
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001713 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1714 <info>
1715 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1716 </info>
1717 <glossdef>
1718 <para role="glossdeffirst">
1719<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1720 Specifies the flags to pass to the linker when building
1721 for the build host.
1722 When building in the <filename>-native</filename> context,
1723 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1724 is set to the value of this variable by default.
1725 </para>
1726 </glossdef>
1727 </glossentry>
1728
1729 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1730 <info>
1731 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1732 </info>
1733 <glossdef>
1734 <para role="glossdeffirst">
1735<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1736 Specifies the optimization flags passed to the C compiler
1737 when building for the build host or the SDK.
1738 The flags are passed through the
1739 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1740 and
1741 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1742 default values.
1743 </para>
1744
1745 <para>
1746 The default value of the
1747 <filename>BUILD_OPTIMIZATION</filename> variable is
1748 "-O2 -pipe".
1749 </para>
1750 </glossdef>
1751 </glossentry>
1752
1753 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1754 <info>
1755 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1756 </info>
1757 <glossdef>
1758 <para role="glossdeffirst">
1759<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1760 Specifies the operating system in use on the build
1761 host (e.g. "linux").
1762 The OpenEmbedded build system sets the value of
1763 <filename>BUILD_OS</filename> from the OS reported by
1764 the <filename>uname</filename> command - the first word,
1765 converted to lower-case characters.
1766 </para>
1767 </glossdef>
1768 </glossentry>
1769
1770 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1771 <info>
1772 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1773 </info>
1774 <glossdef>
1775 <para role="glossdeffirst">
1776<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1777 The toolchain binary prefix used for native recipes.
1778 The OpenEmbedded build system uses the
1779 <filename>BUILD_PREFIX</filename> value to set the
1780 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001781 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001782 </para>
1783 </glossdef>
1784 </glossentry>
1785
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001786 <glossentry id='var-BUILD_STRIP'><glossterm>BUILD_STRIP</glossterm>
1787 <info>
1788 BUILD_STRIP[doc] = "Specifies the command to be used to strip debugging symbols from binaries produced for the build host."
1789 </info>
1790 <glossdef>
1791 <para role="glossdeffirst">
1792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1793 Specifies the command to be used to strip debugging symbols
1794 from binaries produced for the build host. By default,
1795 <filename>BUILD_STRIP</filename> points to
1796 <filename>${</filename><link linkend='var-BUILD_PREFIX'><filename>BUILD_PREFIX</filename></link><filename>}strip</filename>.
1797 </para>
1798 </glossdef>
1799 </glossentry>
1800
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001801 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1802 <info>
1803 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1804 </info>
1805 <glossdef>
1806 <para role="glossdeffirst">
1807<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1808 Specifies the system, including the architecture and
1809 the operating system, to use when building for the build
1810 host (i.e. when building <filename>native</filename>
1811 recipes).
1812 </para>
1813
1814 <para>
1815 The OpenEmbedded build system automatically sets this
1816 variable based on
1817 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1818 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1819 and
1820 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1821 You do not need to set the <filename>BUILD_SYS</filename>
1822 variable yourself.
1823 </para>
1824 </glossdef>
1825 </glossentry>
1826
1827 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1828 <info>
1829 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1830 </info>
1831 <glossdef>
1832 <para role="glossdeffirst">
1833<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1834 Specifies the vendor name to use when building for the
1835 build host.
1836 The default value is an empty string ("").
1837 </para>
1838 </glossdef>
1839 </glossentry>
1840
1841 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1842 <info>
1843 BUILDDIR[doc] = "Points to the location of the Build Directory."
1844 </info>
1845 <glossdef>
1846 <para role="glossdeffirst">
1847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1848 Points to the location of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001849 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001850 You can define this directory indirectly through the
1851 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001852 script by passing in a Build Directory path when you run
1853 the script.
1854 If you run the script and do not provide a Build Directory
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001855 path, the <filename>BUILDDIR</filename> defaults to
1856 <filename>build</filename> in the current directory.
1857 </para>
1858 </glossdef>
1859 </glossentry>
1860
1861 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1862 <info>
1863 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."
1864 </info>
1865 <glossdef>
1866 <para role="glossdeffirst">
1867<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1868 When inheriting the
1869 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1870 class, this variable specifies whether or not to commit the
1871 build history output in a local Git repository.
1872 If set to "1", this local repository will be maintained
1873 automatically by the
1874 <filename>buildhistory</filename>
1875 class and a commit will be created on every
1876 build for changes to each top-level subdirectory of the
1877 build history output (images, packages, and sdk).
1878 If you want to track changes to build history over
1879 time, you should set this value to "1".
1880 </para>
1881
1882 <para>
1883 By default, the <filename>buildhistory</filename> class
1884 does not commit the build history output in a local
1885 Git repository:
1886 <literallayout class='monospaced'>
1887 BUILDHISTORY_COMMIT ?= "0"
1888 </literallayout>
1889 </para>
1890 </glossdef>
1891 </glossentry>
1892
1893 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1894 <info>
1895 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1896 </info>
1897 <glossdef>
1898 <para role="glossdeffirst">
1899<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1900 When inheriting the
1901 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1902 class, this variable specifies the author to use for each
1903 Git commit.
1904 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1905 variable to work, the
1906 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1907 variable must be set to "1".
1908 </para>
1909
1910 <para>
1911 Git requires that the value you provide for the
1912 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
Brad Bishop316dfdd2018-06-25 12:45:53 -04001913 takes the form of "name <replaceable>email@host</replaceable>".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001914 Providing an email address or host that is not valid does
1915 not produce an error.
1916 </para>
1917
1918 <para>
1919 By default, the <filename>buildhistory</filename> class
1920 sets the variable as follows:
1921 <literallayout class='monospaced'>
1922 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1923 </literallayout>
1924 </para>
1925 </glossdef>
1926 </glossentry>
1927
1928 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1929 <info>
1930 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1931 </info>
1932 <glossdef>
1933 <para role="glossdeffirst">
1934<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1935 When inheriting the
1936 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1937 class, this variable specifies the directory in which
1938 build history information is kept.
1939 For more information on how the variable works, see the
1940 <filename>buildhistory.class</filename>.
1941 </para>
1942
1943 <para>
1944 By default, the <filename>buildhistory</filename> class
1945 sets the directory as follows:
1946 <literallayout class='monospaced'>
1947 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1948 </literallayout>
1949 </para>
1950 </glossdef>
1951 </glossentry>
1952
1953 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1954 <info>
1955 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1956 </info>
1957 <glossdef>
1958 <para role="glossdeffirst">
1959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1960 When inheriting the
1961 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1962 class, this variable specifies the build history features
1963 to be enabled.
1964 For more information on how build history works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04001965 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
1966 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001967 </para>
1968
1969 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001970 You can specify these features in the form of a
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001971 space-separated list:
1972 <itemizedlist>
1973 <listitem><para><emphasis>image:</emphasis>
1974 Analysis of the contents of images, which
1975 includes the list of installed packages among other
1976 things.
1977 </para></listitem>
1978 <listitem><para><emphasis>package:</emphasis>
1979 Analysis of the contents of individual packages.
1980 </para></listitem>
1981 <listitem><para><emphasis>sdk:</emphasis>
1982 Analysis of the contents of the software
1983 development kit (SDK).
1984 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001985 <listitem><para><emphasis>task:</emphasis>
1986 Save output file signatures for
1987 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state</ulink>
1988 (sstate) tasks.
1989 This saves one file per task and lists the SHA-256
1990 checksums for each file staged (i.e. the output of
1991 the task).
1992 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001993 </itemizedlist>
1994 </para>
1995
1996 <para>
1997 By default, the <filename>buildhistory</filename> class
Brad Bishop316dfdd2018-06-25 12:45:53 -04001998 enables the following features:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001999 <literallayout class='monospaced'>
2000 BUILDHISTORY_FEATURES ?= "image package sdk"
2001 </literallayout>
2002 </para>
2003 </glossdef>
2004 </glossentry>
2005
2006 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
2007 <info>
2008 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."
2009 </info>
2010 <glossdef>
2011 <para role="glossdeffirst">
2012<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2013 When inheriting the
2014 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2015 class, this variable specifies a list of paths to files
2016 copied from the
2017 image contents into the build history directory under
2018 an "image-files" directory in the directory for
2019 the image, so that you can track the contents of each file.
2020 The default is to copy <filename>/etc/passwd</filename>
2021 and <filename>/etc/group</filename>, which allows you to
2022 monitor for changes in user and group entries.
2023 You can modify the list to include any file.
2024 Specifying an invalid path does not produce an error.
2025 Consequently, you can include files that might
2026 not always be present.
2027 </para>
2028
2029 <para>
2030 By default, the <filename>buildhistory</filename> class
2031 provides paths to the following files:
2032 <literallayout class='monospaced'>
2033 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
2034 </literallayout>
2035 </para>
2036 </glossdef>
2037 </glossentry>
2038
2039 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
2040 <info>
2041 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
2042 </info>
2043 <glossdef>
2044 <para role="glossdeffirst">
2045<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2046 When inheriting the
2047 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2048 class, this variable optionally specifies a remote
2049 repository to which build history pushes Git changes.
2050 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
2051 to work,
2052 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
2053 must be set to "1".
2054 </para>
2055
2056 <para>
2057 The repository should correspond to a remote
2058 address that specifies a repository as understood by
2059 Git, or alternatively to a remote name that you have
2060 set up manually using <filename>git remote</filename>
2061 within the local repository.
2062 </para>
2063
2064 <para>
2065 By default, the <filename>buildhistory</filename> class
2066 sets the variable as follows:
2067 <literallayout class='monospaced'>
2068 BUILDHISTORY_PUSH_REPO ?= ""
2069 </literallayout>
2070 </para>
2071 </glossdef>
2072 </glossentry>
2073
2074 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
2075 <info>
2076 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
2077 </info>
2078 <glossdef>
2079 <para role="glossdeffirst">
2080<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2081 Specifies the flags to pass to the C compiler when building
2082 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002083 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002084 context,
2085 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
2086 is set to the value of this variable by default.
2087 </para>
2088 </glossdef>
2089 </glossentry>
2090
2091 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
2092 <info>
2093 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."
2094 </info>
2095 <glossdef>
2096 <para role="glossdeffirst">
2097<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2098 Specifies the flags to pass to the C pre-processor
2099 (i.e. to both the C and the C++ compilers) when building
2100 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002101 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002102 context,
2103 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
2104 is set to the value of this variable by default.
2105 </para>
2106 </glossdef>
2107 </glossentry>
2108
2109 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
2110 <info>
2111 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
2112 </info>
2113 <glossdef>
2114 <para role="glossdeffirst">
2115<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2116 Specifies the flags to pass to the C++ compiler when
2117 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002118 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002119 context,
2120 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
2121 is set to the value of this variable by default.
2122 </para>
2123 </glossdef>
2124 </glossentry>
2125
2126 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
2127 <info>
2128 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
2129 </info>
2130 <glossdef>
2131 <para role="glossdeffirst">
2132<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2133 Specifies the flags to pass to the linker when building
2134 for the SDK.
2135 When building in the <filename>nativesdk-</filename>
2136 context,
2137 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
2138 is set to the value of this variable by default.
2139 </para>
2140 </glossdef>
2141 </glossentry>
2142
2143 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
2144 <info>
2145 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
2146 </info>
2147 <glossdef>
2148 <para role="glossdeffirst">
2149<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2150 Points to the location of the directory that holds build
2151 statistics when you use and enable the
2152 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
2153 class.
2154 The <filename>BUILDSTATS_BASE</filename> directory defaults
2155 to
2156 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
2157 </para>
2158 </glossdef>
2159 </glossentry>
2160
2161 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
2162 <info>
2163 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."
2164 </info>
2165 <glossdef>
2166 <para role="glossdeffirst">
2167<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2168 For the BusyBox recipe, specifies whether to split the
2169 output executable file into two parts: one for features
2170 that require <filename>setuid root</filename>, and one for
2171 the remaining features (i.e. those that do not require
2172 <filename>setuid root</filename>).
2173 </para>
2174
2175 <para>
2176 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
2177 defaults to "1", which results in a single output
2178 executable file.
2179 Set the variable to "0" to split the output file.
2180 </para>
2181 </glossdef>
2182 </glossentry>
2183
2184 </glossdiv>
2185
2186 <glossdiv id='var-glossary-c'><title>C</title>
2187
2188 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
2189 <info>
2190 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
2191 </info>
2192 <glossdef>
2193 <para role="glossdeffirst">
2194<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2195 Specifies the directory BitBake uses to store a cache
2196 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002197 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002198 so it does not need to be parsed every time BitBake is
2199 started.
2200 </para>
2201 </glossdef>
2202 </glossentry>
2203
2204 <glossentry id='var-CC'><glossterm>CC</glossterm>
2205 <info>
2206 CC[doc] = "Minimum command and arguments to run the C compiler."
2207 </info>
2208 <glossdef>
2209 <para role="glossdeffirst">
2210<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2211 The minimal command and arguments used to run the C
2212 compiler.
2213 </para>
2214 </glossdef>
2215 </glossentry>
2216
2217 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
2218 <info>
2219 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
2220 </info>
2221 <glossdef>
2222 <para role="glossdeffirst">
2223<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2224 Specifies the flags to pass to the C compiler.
2225 This variable is exported to an environment
2226 variable and thus made visible to the software being
2227 built during the compilation step.
2228 </para>
2229
2230 <para>
2231 Default initialization for <filename>CFLAGS</filename>
2232 varies depending on what is being built:
2233 <itemizedlist>
2234 <listitem><para>
2235 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2236 when building for the target
2237 </para></listitem>
2238 <listitem><para>
2239 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2240 when building for the build host (i.e.
2241 <filename>-native</filename>)
2242 </para></listitem>
2243 <listitem><para>
2244 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2245 when building for an SDK (i.e.
2246 <filename>nativesdk-</filename>)
2247 </para></listitem>
2248 </itemizedlist>
2249 </para>
2250 </glossdef>
2251 </glossentry>
2252
2253 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2254 <info>
2255 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2256 </info>
2257 <glossdef>
2258 <para role="glossdeffirst">
2259<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2260 An internal variable specifying the special class override
2261 that should currently apply (e.g. "class-target",
2262 "class-native", and so forth).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002263 The classes that use this variable (e.g.
2264 <link linkend='ref-classes-native'><filename>native</filename></link>,
2265 <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
2266 and so forth) set the variable to appropriate values.
2267 <note>
2268 <filename>CLASSOVERRIDE</filename> gets its default
2269 "class-target" value from the
2270 <filename>bitbake.conf</filename> file.
2271 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002272 </para>
2273
2274 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002275 As an example, the following override allows you to install
2276 extra files, but only when building for the target:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002277 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002278 do_install_append_class-target() {
2279 install my-extra-file ${D}${sysconfdir}
2280 }
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002281 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002282 Here is an example where <filename>FOO</filename>
2283 is set to "native" when building for the build host, and
2284 to "other" when not building for the build host:
2285 <literallayout class='monospaced'>
2286 FOO_class-native = "native"
2287 FOO = "other"
2288 </literallayout>
2289 The underlying mechanism behind
2290 <filename>CLASSOVERRIDE</filename> is simply that it is
2291 included in the default value of
2292 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002293 </para>
2294 </glossdef>
2295 </glossentry>
2296
2297 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2298 <info>
2299 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2300 </info>
2301 <glossdef>
2302 <para role="glossdeffirst">
2303<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2304 If set to "1" within a recipe,
2305 <filename>CLEANBROKEN</filename> specifies that
2306 the <filename>make clean</filename> command does
2307 not work for the software being built.
2308 Consequently, the OpenEmbedded build system will not try
2309 to run <filename>make clean</filename> during the
2310 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2311 task, which is the default behavior.
2312 </para>
2313 </glossdef>
2314 </glossentry>
2315
2316 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2317 <info>
2318 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2319 </info>
2320 <glossdef>
2321 <para role="glossdeffirst">
2322<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2323 Provides a list of hardware features that are enabled in
2324 both
2325 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2326 and
2327 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2328 This select list of features contains features that make
2329 sense to be controlled both at the machine and distribution
2330 configuration level.
2331 For example, the "bluetooth" feature requires hardware
2332 support but should also be optional at the distribution
2333 level, in case the hardware supports Bluetooth but you
2334 do not ever intend to use it.
2335 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002336 </glossdef>
2337 </glossentry>
2338
2339 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2340 <info>
2341 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2342 </info>
2343 <glossdef>
2344 <para role="glossdeffirst">
2345<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2346 Points to <filename>meta/files/common-licenses</filename>
2347 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002348 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002349 which is where generic license files reside.
2350 </para>
2351 </glossdef>
2352 </glossentry>
2353
2354 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2355 <info>
2356 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."
2357 </info>
2358 <glossdef>
2359 <para role="glossdeffirst">
2360<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2361 A regular expression that resolves to one or more hosts
2362 (when the recipe is native) or one or more targets (when
2363 the recipe is non-native) with which a recipe is compatible.
2364 The regular expression is matched against
2365 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2366 You can use the variable to stop recipes from being built
2367 for classes of systems with which the recipes are not
2368 compatible.
2369 Stopping these builds is particularly useful with kernels.
2370 The variable also helps to increase parsing speed
2371 since the build system skips parsing recipes not
2372 compatible with the current system.
2373 </para>
2374 </glossdef>
2375 </glossentry>
2376
2377 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2378 <info>
2379 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2380 </info>
2381 <glossdef>
2382 <para role="glossdeffirst">
2383<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2384 A regular expression that resolves to one or more
2385 target machines with which a recipe is compatible.
2386 The regular expression is matched against
2387 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2388 You can use the variable to stop recipes from being built
2389 for machines with which the recipes are not compatible.
2390 Stopping these builds is particularly useful with kernels.
2391 The variable also helps to increase parsing speed
2392 since the build system skips parsing recipes not
2393 compatible with the current machine.
2394 </para>
2395 </glossdef>
2396 </glossentry>
2397
2398 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2399 <info>
2400 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2401 </info>
2402 <glossdef>
2403 <para role="glossdeffirst">
2404<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2405 Defines wildcards to match when installing a list of
2406 complementary packages for all the packages explicitly
2407 (or implicitly) installed in an image.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08002408 <note>
2409 The <filename>COMPLEMENTARY_GLOB</filename> variable
2410 uses Unix filename pattern matching
2411 (<ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>),
2412 which is similar to the Unix style pathname pattern
2413 expansion
2414 (<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>).
2415 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002416 The resulting list of complementary packages is associated
2417 with an item that can be added to
2418 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2419 An example usage of this is the "dev-pkgs" item that when
2420 added to <filename>IMAGE_FEATURES</filename> will
2421 install -dev packages (containing headers and other
2422 development files) for every package in the image.
2423 </para>
2424
2425 <para>
2426 To add a new feature item pointing to a wildcard, use a
2427 variable flag to specify the feature item name and
2428 use the value to specify the wildcard.
2429 Here is an example:
2430 <literallayout class='monospaced'>
2431 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2432 </literallayout>
2433 </para>
2434 </glossdef>
2435 </glossentry>
2436
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002437 <glossentry id='var-COMPONENTS_DIR'><glossterm>COMPONENTS_DIR</glossterm>
2438 <info>
2439 COMPONENTS_DIR[doc] = "Stores sysroot components for each recipe."
2440 </info>
2441 <glossdef>
2442 <para role="glossdeffirst">
2443<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2444 Stores sysroot components for each recipe.
2445 The OpenEmbedded build system uses
2446 <filename>COMPONENTS_DIR</filename> when constructing
2447 recipe-specific sysroots for other recipes.
2448 </para>
2449
2450 <para>
2451 The default is
2452 "<filename>${</filename><link linkend='var-STAGING_DIR'><filename>STAGING_DIR</filename></link><filename>}-components</filename>."
2453 (i.e. "<filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots-components</filename>").
2454 </para>
2455 </glossdef>
2456 </glossentry>
2457
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002458 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2459 <info>
2460 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2461 </info>
2462 <glossdef>
2463 <para role="glossdeffirst">
2464<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2465 Tracks the version of the local configuration file
2466 (i.e. <filename>local.conf</filename>).
2467 The value for <filename>CONF_VERSION</filename>
2468 increments each time <filename>build/conf/</filename>
2469 compatibility changes.
2470 </para>
2471 </glossdef>
2472 </glossentry>
2473
2474 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2475 <info>
2476 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2477 </info>
2478 <glossdef>
2479 <para role="glossdeffirst">
2480<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2481 Identifies editable or configurable files that are part of a package.
2482 If the Package Management System (PMS) is being used to update
2483 packages on the target system, it is possible that
2484 configuration files you have changed after the original installation
2485 and that you now want to remain unchanged are overwritten.
2486 In other words, editable files might exist in the package that you do not
2487 want reset as part of the package update process.
2488 You can use the <filename>CONFFILES</filename> variable to list the files in the
2489 package that you wish to prevent the PMS from overwriting during this update process.
2490 </para>
2491
2492 <para>
2493 To use the <filename>CONFFILES</filename> variable, provide a package name
2494 override that identifies the resulting package.
2495 Then, provide a space-separated list of files.
2496 Here is an example:
2497 <literallayout class='monospaced'>
2498 CONFFILES_${PN} += "${sysconfdir}/file1 \
2499 ${sysconfdir}/file2 ${sysconfdir}/file3"
2500 </literallayout>
2501 </para>
2502
2503 <para>
2504 A relationship exists between the <filename>CONFFILES</filename> and
2505 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2506 The files listed within <filename>CONFFILES</filename> must be a subset of
2507 the files listed within <filename>FILES</filename>.
2508 Because the configuration files you provide with <filename>CONFFILES</filename>
2509 are simply being identified so that the PMS will not overwrite them,
2510 it makes sense that
2511 the files must already be included as part of the package through the
2512 <filename>FILES</filename> variable.
2513 </para>
2514
2515 <note>
2516 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2517 it is good practice to use appropriate path variables.
2518 For example, <filename>${sysconfdir}</filename> rather than
2519 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2520 than <filename>/usr/bin</filename>.
2521 You can find a list of these variables at the top of the
2522 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002523 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002524 </note>
2525 </glossdef>
2526 </glossentry>
2527
2528 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2529 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002530 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 -05002531 </info>
2532 <glossdef>
2533 <para role="glossdeffirst">
2534<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002535 Identifies the initial RAM filesystem (initramfs) source
2536 files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002537 The OpenEmbedded build system receives and uses
2538 this kernel Kconfig variable as an environment variable.
2539 By default, the variable is set to null ("").
2540 </para>
2541
2542 <para>
2543 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2544 either a single cpio archive with a
2545 <filename>.cpio</filename> suffix or a
2546 space-separated list of directories and files for building
2547 the initramfs image.
2548 A cpio archive should contain a filesystem archive
2549 to be used as an initramfs image.
2550 Directories should contain a filesystem layout to be
2551 included in the initramfs image.
2552 Files should contain entries according to the format
2553 described by the
2554 <filename>usr/gen_init_cpio</filename> program in the
2555 kernel tree.
2556 </para>
2557
2558 <para>
2559 If you specify multiple directories and files, the
2560 initramfs image will be the aggregate of all of them.
2561 </para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002562
2563 <para>
2564 For information on creating an initramfs, see the
2565 "<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 -05002566 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002567 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002568 </glossdef>
2569 </glossentry>
2570
2571 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2572 <info>
2573 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."
2574 </info>
2575 <glossdef>
2576 <para role="glossdeffirst">
2577<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2578 A list of files that contains <filename>autoconf</filename> test results relevant
2579 to the current build.
2580 This variable is used by the Autotools utilities when running
2581 <filename>configure</filename>.
2582 </para>
2583 </glossdef>
2584 </glossentry>
2585
2586 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2587 <info>
2588 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2589 </info>
2590 <glossdef>
2591 <para role="glossdeffirst">
2592<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2593 The minimal arguments for GNU configure.
2594 </para>
2595 </glossdef>
2596 </glossentry>
2597
2598 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2599 <info>
2600 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."
2601 </info>
2602 <glossdef>
2603 <para role="glossdeffirst">
2604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2605 When inheriting the
2606 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2607 class, this
2608 variable identifies distribution features that would
2609 be in conflict should the recipe
2610 be built.
2611 In other words, if the
2612 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2613 lists a feature that also appears in
2614 <filename>DISTRO_FEATURES</filename> within the
2615 current configuration, an error occurs and the
2616 build stops.
2617 </para>
2618 </glossdef>
2619 </glossentry>
2620
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002621 <glossentry id='var-COPYLEFT_LICENSE_EXCLUDE'><glossterm>COPYLEFT_LICENSE_EXCLUDE</glossterm>
2622 <info>
2623 COPYLEFT_LICENSE_EXCLUDE[doc] = "Licenses to exclude in the source archived by the archiver class."
2624 </info>
2625 <glossdef>
2626 <para role="glossdeffirst">
2627<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2628 A space-separated list of licenses to exclude from the
2629 source archived by the
2630 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2631 class.
2632 In other words, if a license in a recipe's
2633 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2634 value is in the value of
2635 <filename>COPYLEFT_LICENSE_EXCLUDE</filename>, then its
2636 source is not archived by the class.
2637 <note>
2638 The <filename>COPYLEFT_LICENSE_EXCLUDE</filename>
2639 variable takes precedence over the
2640 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2641 variable.
2642 </note>
2643 The default value, which is "CLOSED Proprietary", for
2644 <filename>COPYLEFT_LICENSE_EXCLUDE</filename> is set
2645 by the
2646 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2647 class, which is inherited by the
2648 <filename>archiver</filename> class.
2649 </para>
2650 </glossdef>
2651 </glossentry>
2652
2653 <glossentry id='var-COPYLEFT_LICENSE_INCLUDE'><glossterm>COPYLEFT_LICENSE_INCLUDE</glossterm>
2654 <info>
2655 COPYLEFT_LICENSE_INCLUDE[doc] = "Licenses to include in the source archived by the archiver class."
2656 </info>
2657 <glossdef>
2658 <para role="glossdeffirst">
2659<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2660 A space-separated list of licenses to include in the
2661 source archived by the
2662 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2663 class.
2664 In other words, if a license in a recipe's
2665 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2666 value is in the value of
2667 <filename>COPYLEFT_LICENSE_INCLUDE</filename>, then its
2668 source is archived by the class.
2669 </para>
2670
2671 <para>
2672 The default value is set by the
2673 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2674 class, which is inherited by the
2675 <filename>archiver</filename> class.
2676 The default value includes "GPL*", "LGPL*", and "AGPL*".
2677 </para>
2678 </glossdef>
2679 </glossentry>
2680
2681 <glossentry id='var-COPYLEFT_PN_EXCLUDE'><glossterm>COPYLEFT_PN_EXCLUDE</glossterm>
2682 <info>
2683 COPYLEFT_PN_EXCLUDE[doc] = "Recipes to exclude in the source archived by the archiver class."
2684 </info>
2685 <glossdef>
2686 <para role="glossdeffirst">
2687<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2688 A list of recipes to exclude in the source archived
2689 by the
2690 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2691 class.
2692 The <filename>COPYLEFT_PN_EXCLUDE</filename> variable
2693 overrides the license inclusion and exclusion caused
2694 through the
2695 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2696 and
2697 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2698 variables, respectively.
2699 </para>
2700
2701 <para>
2702 The default value, which is "" indicating to not explicitly
2703 exclude any recipes by name, for
2704 <filename>COPYLEFT_PN_EXCLUDE</filename> is set
2705 by the
2706 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2707 class, which is inherited by the
2708 <filename>archiver</filename> class.
2709 </para>
2710 </glossdef>
2711 </glossentry>
2712
2713 <glossentry id='var-COPYLEFT_PN_INCLUDE'><glossterm>COPYLEFT_PN_INCLUDE</glossterm>
2714 <info>
2715 COPYLEFT_PN_INCLUDE[doc] = "Recipes to include in the source archived by the archiver class."
2716 </info>
2717 <glossdef>
2718 <para role="glossdeffirst">
2719<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2720 A list of recipes to include in the source archived
2721 by the
2722 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2723 class.
2724 The <filename>COPYLEFT_PN_INCLUDE</filename> variable
2725 overrides the license inclusion and exclusion caused
2726 through the
2727 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2728 and
2729 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2730 variables, respectively.
2731 </para>
2732
2733 <para>
2734 The default value, which is "" indicating to not explicitly
2735 include any recipes by name, for
2736 <filename>COPYLEFT_PN_INCLUDE</filename> is set
2737 by the
2738 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2739 class, which is inherited by the
2740 <filename>archiver</filename> class.
2741 </para>
2742 </glossdef>
2743 </glossentry>
2744
2745 <glossentry id='var-COPYLEFT_RECIPE_TYPES'><glossterm>COPYLEFT_RECIPE_TYPES</glossterm>
2746 <info>
2747 COPYLEFT_RECIPE_TYPES[doc] = "Recipe types to include in the source archived by the archiver class."
2748 </info>
2749 <glossdef>
2750 <para role="glossdeffirst">
2751<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2752 A space-separated list of recipe types to include
2753 in the source archived by the
2754 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2755 class.
2756 Recipe types are <filename>target</filename>,
2757 <filename>native</filename>,
2758 <filename>nativesdk</filename>,
2759 <filename>cross</filename>,
2760 <filename>crosssdk</filename>, and
2761 <filename>cross-canadian</filename>.
2762 </para>
2763
2764 <para>
2765 The default value, which is "target*", for
2766 <filename>COPYLEFT_RECIPE_TYPES</filename> is set
2767 by the
2768 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2769 class, which is inherited by the
2770 <filename>archiver</filename> class.
2771 </para>
2772 </glossdef>
2773 </glossentry>
2774
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002775 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2776 <info>
2777 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."
2778 </info>
2779 <glossdef>
2780 <para role="glossdeffirst">
2781<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2782 If set to "1" along with the
2783 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2784 variable, the OpenEmbedded build system copies
2785 into the image the license files, which are located in
2786 <filename>/usr/share/common-licenses</filename>,
2787 for each package.
2788 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002789 in directories within the image itself during build time.
2790 <note>
2791 The <filename>COPY_LIC_DIRS</filename> does not
2792 offer a path for adding licenses for newly installed
2793 packages to an image, which might be most suitable
2794 for read-only filesystems that cannot be upgraded.
2795 See the
2796 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2797 variable for additional information.
2798 You can also reference the
2799 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002800 section in the Yocto Project Development Tasks Manual
2801 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002802 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002803 </para>
2804 </glossdef>
2805 </glossentry>
2806
2807 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2808 <info>
2809 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."
2810 </info>
2811 <glossdef>
2812 <para role="glossdeffirst">
2813<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2814 If set to "1", the OpenEmbedded build system copies
2815 the license manifest for the image to
2816 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002817 within the image itself during build time.
2818 <note>
2819 The <filename>COPY_LIC_MANIFEST</filename> does not
2820 offer a path for adding licenses for newly installed
2821 packages to an image, which might be most suitable
2822 for read-only filesystems that cannot be upgraded.
2823 See the
2824 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2825 variable for additional information.
2826 You can also reference the
2827 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002828 section in the Yocto Project Development Tasks Manual
2829 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002830 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002831 </para>
2832 </glossdef>
2833 </glossentry>
2834
2835 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2836 <info>
2837 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."
2838 </info>
2839 <glossdef>
2840 <para role="glossdeffirst">
2841<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2842 Specifies the list of packages to be added to the image.
2843 You should only set this variable in the
2844 <filename>local.conf</filename> configuration file found
2845 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002846 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002847 </para>
2848
2849 <para>
2850 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2851 </para>
2852 </glossdef>
2853 </glossentry>
2854
2855 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2856 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002857 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. meta)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002858 </info>
2859 <glossdef>
2860 <para role="glossdeffirst">
2861<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04002862 Specifies the parent directory of the OpenEmbedded-Core
2863 Metadata layer (i.e. <filename>meta</filename>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002864 </para>
2865
2866 <para>
2867 It is an important distinction that
2868 <filename>COREBASE</filename> points to the parent of this
2869 layer and not the layer itself.
2870 Consider an example where you have cloned the Poky Git
2871 repository and retained the <filename>poky</filename>
2872 name for your local copy of the repository.
2873 In this case, <filename>COREBASE</filename> points to
2874 the <filename>poky</filename> folder because it is the
2875 parent directory of the <filename>poky/meta</filename>
2876 layer.
2877 </para>
2878 </glossdef>
2879 </glossentry>
2880
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002881 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2882 <info>
2883 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2884 </info>
2885 <glossdef>
2886 <para role="glossdeffirst">
2887<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2888 Lists files from the
2889 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2890 directory that should be copied other than the layers
2891 listed in the <filename>bblayers.conf</filename> file.
2892 The <filename>COREBASE_FILES</filename> variable exists
2893 for the purpose of copying metadata from the
2894 OpenEmbedded build system into the extensible
2895 SDK.
2896 </para>
2897
2898 <para>
2899 Explicitly listing files in <filename>COREBASE</filename>
2900 is needed because it typically contains build
2901 directories and other files that should not normally
2902 be copied into the extensible SDK.
2903 Consequently, the value of
2904 <filename>COREBASE_FILES</filename> is used in order to
2905 only copy the files that are actually needed.
2906 </para>
2907 </glossdef>
2908 </glossentry>
2909
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002910 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2911 <info>
2912 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2913 </info>
2914 <glossdef>
2915 <para role="glossdeffirst">
2916<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2917 The minimal command and arguments used to run the C
2918 preprocessor.
2919 </para>
2920 </glossdef>
2921 </glossentry>
2922
2923 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2924 <info>
2925 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2926 </info>
2927 <glossdef>
2928 <para role="glossdeffirst">
2929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2930 Specifies the flags to pass to the C pre-processor
2931 (i.e. to both the C and the C++ compilers).
2932 This variable is exported to an environment
2933 variable and thus made visible to the software being
2934 built during the compilation step.
2935 </para>
2936
2937 <para>
2938 Default initialization for <filename>CPPFLAGS</filename>
2939 varies depending on what is being built:
2940 <itemizedlist>
2941 <listitem><para>
2942 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2943 when building for the target
2944 </para></listitem>
2945 <listitem><para>
2946 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2947 when building for the build host (i.e.
2948 <filename>-native</filename>)
2949 </para></listitem>
2950 <listitem><para>
2951 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2952 when building for an SDK (i.e.
2953 <filename>nativesdk-</filename>)
2954 </para></listitem>
2955 </itemizedlist>
2956 </para>
2957 </glossdef>
2958 </glossentry>
2959
2960 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2961 <info>
2962 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2963 </info>
2964 <glossdef>
2965 <para role="glossdeffirst">
2966<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2967 The toolchain binary prefix for the target tools.
2968 The <filename>CROSS_COMPILE</filename> variable is the
2969 same as the
2970 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2971 variable.
2972 <note>
2973 The OpenEmbedded build system sets the
2974 <filename>CROSS_COMPILE</filename> variable only in
2975 certain contexts (e.g. when building for kernel
2976 and kernel module recipes).
2977 </note>
2978 </para>
2979 </glossdef>
2980 </glossentry>
2981
2982 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2983 <info>
2984 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2985 </info>
2986 <glossdef>
2987 <para role="glossdeffirst">
2988<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2989 The directory in which files checked out under the
2990 CVS system are stored.
2991 </para>
2992 </glossdef>
2993 </glossentry>
2994
2995 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2996 <info>
2997 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2998 </info>
2999 <glossdef>
3000 <para role="glossdeffirst">
3001<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3002 The minimal command and arguments used to run the C++
3003 compiler.
3004 </para>
3005 </glossdef>
3006 </glossentry>
3007
3008 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
3009 <info>
3010 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
3011 </info>
3012 <glossdef>
3013 <para role="glossdeffirst">
3014<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3015 Specifies the flags to pass to the C++ compiler.
3016 This variable is exported to an environment
3017 variable and thus made visible to the software being
3018 built during the compilation step.
3019 </para>
3020
3021 <para>
3022 Default initialization for <filename>CXXFLAGS</filename>
3023 varies depending on what is being built:
3024 <itemizedlist>
3025 <listitem><para>
3026 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
3027 when building for the target
3028 </para></listitem>
3029 <listitem><para>
3030 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
3031 when building for the build host (i.e.
3032 <filename>-native</filename>)
3033 </para></listitem>
3034 <listitem><para>
3035 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
3036 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003037 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003038 </para></listitem>
3039 </itemizedlist>
3040 </para>
3041 </glossdef>
3042 </glossentry>
3043
3044 </glossdiv>
3045
3046 <glossdiv id='var-glossary-d'><title>D</title>
3047
3048 <glossentry id='var-D'><glossterm>D</glossterm>
3049 <info>
3050 D[doc] = "The destination directory."
3051 </info>
3052 <glossdef>
3053 <para role="glossdeffirst">
3054<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3055 The destination directory.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003056 The location in the
3057 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003058 where components are installed by the
3059 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
3060 task.
3061 This location defaults to:
3062 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003063 ${WORKDIR}/image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003064 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003065 <note><title>Caution</title>
3066 Tasks that read from or write to this directory should
3067 run under
Brad Bishop316dfdd2018-06-25 12:45:53 -04003068 <ulink url='&YOCTO_DOCS_OM_URL;#fakeroot-and-pseudo'>fakeroot</ulink>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003069 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003070 </para>
3071 </glossdef>
3072 </glossentry>
3073
3074 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
3075 <info>
3076 DATE[doc] = "The date the build was started using YMD format."
3077 </info>
3078 <glossdef>
3079 <para role="glossdeffirst">
3080<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3081 The date the build was started.
3082 Dates appear using the year, month, and day (YMD) format
3083 (e.g. "20150209" for February 9th, 2015).
3084 </para>
3085 </glossdef>
3086 </glossentry>
3087
3088 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
3089 <info>
3090 DATETIME[doc] = "The date and time the build was started."
3091 </info>
3092 <glossdef>
3093 <para role="glossdeffirst">
3094<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3095 The date and time on which the current build started.
3096 The format is suitable for timestamps.
3097 </para>
3098 </glossdef>
3099 </glossentry>
3100
3101 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
3102 <info>
3103 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
3104 </info>
3105 <glossdef>
3106 <para role="glossdeffirst">
3107<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3108 When the
3109 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3110 class is inherited, which is the default behavior,
3111 <filename>DEBIAN_NOAUTONAME</filename> specifies a
3112 particular package should not be renamed according to
3113 Debian library package naming.
3114 You must use the package name as an override when you
3115 set this variable.
3116 Here is an example from the <filename>fontconfig</filename>
3117 recipe:
3118 <literallayout class='monospaced'>
3119 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
3120 </literallayout>
3121 </para>
3122 </glossdef>
3123 </glossentry>
3124
3125 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
3126 <info>
3127 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
3128 </info>
3129 <glossdef>
3130 <para role="glossdeffirst">
3131<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3132 When the
3133 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3134 class is inherited, which is the default behavior,
3135 <filename>DEBIANNAME</filename> allows you to override the
3136 library name for an individual package.
3137 Overriding the library name in these cases is rare.
3138 You must use the package name as an override when you
3139 set this variable.
3140 Here is an example from the <filename>dbus</filename>
3141 recipe:
3142 <literallayout class='monospaced'>
3143 DEBIANNAME_${PN} = "dbus-1"
3144 </literallayout>
3145 </para>
3146 </glossdef>
3147 </glossentry>
3148
3149 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
3150 <info>
3151 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
3152 </info>
3153 <glossdef>
3154 <para role="glossdeffirst">
3155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3156 Specifies to build packages with debugging information.
3157 This influences the value of the
3158 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
3159 variable.
3160 </para>
3161 </glossdef>
3162 </glossentry>
3163
3164 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
3165 <info>
3166 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'."
3167 </info>
3168 <glossdef>
3169 <para role="glossdeffirst">
3170<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3171 The options to pass in
3172 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
3173 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
3174 a system for debugging.
3175 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
3176 </para>
3177 </glossdef>
3178 </glossentry>
3179
3180 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
3181 <info>
3182 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
3183 </info>
3184 <glossdef>
3185 <para role="glossdeffirst">
3186<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3187 Specifies a weak bias for recipe selection priority.
3188 </para>
3189
3190 <para>
3191 The most common usage of this is variable is to set
3192 it to "-1" within a recipe for a development version of a
3193 piece of software.
3194 Using the variable in this way causes the stable version
3195 of the recipe to build by default in the absence of
3196 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
3197 being used to build the development version.
3198 </para>
3199
3200 <note>
3201 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
3202 is weak and is overridden by
3203 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
3204 if that variable is different between two layers
3205 that contain different versions of the same recipe.
3206 </note>
3207 </glossdef>
3208 </glossentry>
3209
3210 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
3211 <info>
3212 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
3213 </info>
3214 <glossdef>
3215 <para role="glossdeffirst">
3216<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3217 The default CPU and Application Binary Interface (ABI)
3218 tunings (i.e. the "tune") used by the OpenEmbedded build
3219 system.
3220 The <filename>DEFAULTTUNE</filename> helps define
3221 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
3222 </para>
3223
3224 <para>
3225 The default tune is either implicitly or explicitly set
3226 by the machine
3227 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
3228 However, you can override the setting using available tunes
3229 as defined with
3230 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
3231 </para>
3232 </glossdef>
3233 </glossentry>
3234
3235 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
3236 <info>
3237 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
3238 </info>
3239 <glossdef>
3240 <para role="glossdeffirst">
3241<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003242 Lists a recipe's build-time dependencies.
3243 These are dependencies on other recipes whose
3244 contents (e.g. headers and shared libraries) are needed
3245 by the recipe at build time.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003246 </para>
3247
3248 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003249 As an example, consider a recipe <filename>foo</filename>
3250 that contains the following assignment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003251 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003252 DEPENDS = "bar"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003253 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003254 The practical effect of the previous assignment is that
3255 all files installed by bar will be available in the
3256 appropriate staging sysroot, given by the
3257 <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
3258 variables, by the time the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003259 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003260 task for <filename>foo</filename> runs.
3261 This mechanism is implemented by having
3262 <filename>do_configure</filename> depend on the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003263 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003264 task of each recipe listed in <filename>DEPENDS</filename>,
3265 through a
3266 <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
3267 declaration in the
3268 <link linkend='ref-classes-base'><filename>base</filename></link>
3269 class.
3270 <note>
3271 It seldom is necessary to reference, for example,
3272 <filename>STAGING_DIR_HOST</filename> explicitly.
3273 The standard classes and build-related variables are
3274 configured to automatically use the appropriate staging
3275 sysroots.
3276 </note>
3277 As another example, <filename>DEPENDS</filename> can also
3278 be used to add utilities that run on the build machine
3279 during the build.
3280 For example, a recipe that makes use of a code generator
3281 built by the recipe <filename>codegen</filename> might have
3282 the following:
3283 <literallayout class='monospaced'>
3284 DEPENDS = "codegen-native"
3285 </literallayout>
3286 For more information, see the
3287 <link linkend='ref-classes-native'><filename>native</filename></link>
3288 class and the
3289 <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
3290 variable.
3291 <note>
3292 <title>Notes</title>
3293 <itemizedlist>
3294 <listitem><para>
3295 <filename>DEPENDS</filename> is a list of
3296 recipe names.
3297 Or, to be more precise, it is a list of
3298 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
3299 names, which usually match recipe names.
3300 Putting a package name such as "foo-dev" in
3301 <filename>DEPENDS</filename> does not make
3302 sense.
3303 Use "foo" instead, as this will put files
3304 from all the packages that make up
3305 <filename>foo</filename>, which includes
3306 those from <filename>foo-dev</filename>, into
3307 the sysroot.
3308 </para></listitem>
3309 <listitem><para>
3310 One recipe having another recipe in
3311 <filename>DEPENDS</filename> does not by itself
3312 add any runtime dependencies between the
3313 packages produced by the two recipes.
3314 However, as explained in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003315 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
3316 section in the Yocto Project Overview and
3317 Concepts Manual, runtime dependencies will
3318 often be added automatically, meaning
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003319 <filename>DEPENDS</filename> alone is
3320 sufficient for most recipes.
3321 </para></listitem>
3322 <listitem><para>
3323 Counterintuitively,
3324 <filename>DEPENDS</filename> is often necessary
3325 even for recipes that install precompiled
3326 components.
3327 For example, if <filename>libfoo</filename>
3328 is a precompiled library that links against
3329 <filename>libbar</filename>, then
3330 linking against <filename>libfoo</filename>
3331 requires both <filename>libfoo</filename>
3332 and <filename>libbar</filename> to be available
3333 in the sysroot.
3334 Without a <filename>DEPENDS</filename> from the
3335 recipe that installs <filename>libfoo</filename>
3336 to the recipe that installs
3337 <filename>libbar</filename>, other recipes might
3338 fail to link against
3339 <filename>libfoo</filename>.
3340 </para></listitem>
3341 </itemizedlist>
3342 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003343 </para>
3344
3345 <para>
3346 For information on runtime dependencies, see the
3347 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
3348 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003349 You can also see the
3350 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
3351 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
3352 sections in the BitBake User Manual for additional
3353 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003354 </para>
3355 </glossdef>
3356 </glossentry>
3357
3358 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
3359 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003360 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 -05003361 </info>
3362 <glossdef>
3363 <para role="glossdeffirst">
3364<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3365 Points to the general area that the OpenEmbedded build
Brad Bishop316dfdd2018-06-25 12:45:53 -04003366 system uses to place images, packages, SDKs, and other output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003367 files that are ready to be used outside of the build system.
3368 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003369 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003370 as <filename>${TMPDIR}/deploy</filename>.
3371 </para>
3372
3373 <para>
3374 For more information on the structure of the Build
3375 Directory, see
3376 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3377 section.
3378 For more detail on the contents of the
3379 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003380 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>",
3381 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>",
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003382 and
Brad Bishop316dfdd2018-06-25 12:45:53 -04003383 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3384 sections all in the Yocto Project Overview and Concepts
3385 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003386 </para>
3387 </glossdef>
3388 </glossentry>
3389
3390 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
3391 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003392 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 -05003393 </info>
3394 <glossdef>
3395 <para role="glossdeffirst">
3396<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3397 Points to the area that the OpenEmbedded build system uses
3398 to place Debian packages that are ready to be used outside
3399 of the build system.
3400 This variable applies only when
3401 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3402 contains "package_deb".
3403 </para>
3404
3405 <para>
3406 The BitBake configuration file initially defines the
3407 <filename>DEPLOY_DIR_DEB</filename> variable as a
3408 sub-folder of
3409 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3410 <literallayout class='monospaced'>
3411 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
3412 </literallayout>
3413 </para>
3414
3415 <para>
3416 The
3417 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
3418 class uses the
3419 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
3420 the
3421 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
3422 task writes Debian packages into the appropriate folder.
3423 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003424 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3425 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003426 </para>
3427 </glossdef>
3428 </glossentry>
3429
3430 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
3431 <info>
3432 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."
3433 </info>
3434 <glossdef>
3435 <para role="glossdeffirst">
3436<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3437 Points to the area that the OpenEmbedded build system uses
3438 to place images and other associated output files that are
3439 ready to be deployed onto the target machine.
3440 The directory is machine-specific as it contains the
3441 <filename>${MACHINE}</filename> name.
3442 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003443 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003444 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
3445 </para>
3446
3447 <para>
3448 For more information on the structure of the Build
3449 Directory, see
3450 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3451 section.
3452 For more detail on the contents of the
3453 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003454 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>"
3455 and
3456 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3457 sections both in the Yocto Project Overview and Concepts
3458 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003459 </para>
3460 </glossdef>
3461 </glossentry>
3462
3463 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
3464 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003465 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 -05003466 </info>
3467 <glossdef>
3468 <para role="glossdeffirst">
3469<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3470 Points to the area that the OpenEmbedded build system uses
3471 to place IPK packages that are ready to be used outside of
3472 the build system.
3473 This variable applies only when
3474 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3475 contains "package_ipk".
3476 </para>
3477
3478 <para>
3479 The BitBake configuration file initially defines this
3480 variable as a sub-folder of
3481 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3482 <literallayout class='monospaced'>
3483 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
3484 </literallayout>
3485 </para>
3486
3487 <para>
3488 The
3489 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
3490 class uses the
3491 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
3492 the
3493 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
3494 task writes IPK packages into the appropriate folder.
3495 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003496 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3497 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003498 </para>
3499 </glossdef>
3500 </glossentry>
3501
3502 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
3503 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003504 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 -05003505 </info>
3506 <glossdef>
3507 <para role="glossdeffirst">
3508<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3509 Points to the area that the OpenEmbedded build system uses
3510 to place RPM packages that are ready to be used outside
3511 of the build system.
3512 This variable applies only when
3513 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3514 contains "package_rpm".
3515 </para>
3516
3517 <para>
3518 The BitBake configuration file initially defines this
3519 variable as a sub-folder of
3520 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3521 <literallayout class='monospaced'>
3522 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
3523 </literallayout>
3524 </para>
3525
3526 <para>
3527 The
3528 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
3529 class uses the
3530 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
3531 the
3532 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
3533 task writes RPM packages into the appropriate folder.
3534 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003535 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3536 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003537 </para>
3538 </glossdef>
3539 </glossentry>
3540
3541 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
3542 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003543 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 -05003544 </info>
3545 <glossdef>
3546 <para role="glossdeffirst">
3547<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3548 Points to the area that the OpenEmbedded build system uses
3549 to place tarballs that are ready to be used outside of
3550 the build system.
3551 This variable applies only when
3552 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3553 contains "package_tar".
3554 </para>
3555
3556 <para>
3557 The BitBake configuration file initially defines this
3558 variable as a sub-folder of
3559 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3560 <literallayout class='monospaced'>
3561 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
3562 </literallayout>
3563 </para>
3564
3565 <para>
3566 The
3567 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
3568 class uses the
3569 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
3570 the
3571 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
3572 task writes TAR packages into the appropriate folder.
3573 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003574 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3575 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003576 </para>
3577 </glossdef>
3578 </glossentry>
3579
3580 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3581 <info>
3582 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3583 </info>
3584 <glossdef>
3585 <para role="glossdeffirst">
3586<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3587 When inheriting the
3588 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3589 class, the <filename>DEPLOYDIR</filename> points to a
3590 temporary work area for deployed files that is set in the
3591 <filename>deploy</filename> class as follows:
3592 <literallayout class='monospaced'>
3593 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3594 </literallayout>
3595 </para>
3596
3597 <para>
3598 Recipes inheriting the <filename>deploy</filename> class
3599 should copy files to be deployed into
3600 <filename>DEPLOYDIR</filename>, and the class will take
3601 care of copying them into
3602 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3603 afterwards.
3604 </para>
3605 </glossdef>
3606 </glossentry>
3607
3608 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3609 <info>
3610 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3611 </info>
3612 <glossdef>
3613 <para role="glossdeffirst">
3614<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3615 The package description used by package managers.
3616 If not set, <filename>DESCRIPTION</filename> takes
3617 the value of the
3618 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3619 variable.
3620 </para>
3621 </glossdef>
3622 </glossentry>
3623
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003624 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3625 <info>
3626 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3627 </info>
3628 <glossdef>
3629 <para role="glossdeffirst">
3630<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3631 The short name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003632 For information on the long name of the distribution, see
3633 the
3634 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
3635 variable.
3636 </para>
3637
3638 <para>
3639 The <filename>DISTRO</filename> variable corresponds to a
3640 distribution configuration file whose root name is the
3641 same as the variable's argument and whose filename
3642 extension is <filename>.conf</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003643 For example, the distribution configuration file for the
3644 Poky distribution is named <filename>poky.conf</filename>
3645 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003646 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003647 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003648 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003649 </para>
3650
3651 <para>
3652 Within that <filename>poky.conf</filename> file, the
3653 <filename>DISTRO</filename> variable is set as follows:
3654 <literallayout class='monospaced'>
3655 DISTRO = "poky"
3656 </literallayout>
3657 </para>
3658
3659 <para>
3660 Distribution configuration files are located in a
3661 <filename>conf/distro</filename> directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003662 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003663 that contains the distribution configuration.
3664 The value for <filename>DISTRO</filename> must not contain
3665 spaces, and is typically all lower-case.
3666 <note>
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003667 If the <filename>DISTRO</filename> variable is blank,
3668 a set of default configurations are used, which are
3669 specified within
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003670 <filename>meta/conf/distro/defaultsetup.conf</filename>
3671 also in the Source Directory.
3672 </note>
3673 </para>
3674 </glossdef>
3675 </glossentry>
3676
3677 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3678 <info>
3679 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3680 </info>
3681 <glossdef>
3682 <para role="glossdeffirst">
3683<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3684 Specifies a codename for the distribution being built.
3685 </para>
3686 </glossdef>
3687 </glossentry>
3688
3689 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3690 <info>
3691 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."
3692 </info>
3693 <glossdef>
3694 <para role="glossdeffirst">
3695<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3696 Specifies a list of distro-specific packages to add to all images.
3697 This variable takes affect through
3698 <filename>packagegroup-base</filename> so the
3699 variable only really applies to the more full-featured
3700 images that include <filename>packagegroup-base</filename>.
3701 You can use this variable to keep distro policy out of
3702 generic images.
3703 As with all other distro variables, you set this variable
3704 in the distro <filename>.conf</filename> file.
3705 </para>
3706 </glossdef>
3707 </glossentry>
3708
3709 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3710 <info>
3711 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."
3712 </info>
3713 <glossdef>
3714 <para role="glossdeffirst">
3715<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3716 Specifies a list of distro-specific packages to add to all images
3717 if the packages exist.
3718 The packages might not exist or be empty (e.g. kernel modules).
3719 The list of packages are automatically installed but you can
3720 remove them.
3721 </para>
3722 </glossdef>
3723 </glossentry>
3724
3725 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3726 <info>
3727 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3728 </info>
3729 <glossdef>
3730 <para role="glossdeffirst">
3731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3732 The software support you want in your distribution for
3733 various features.
3734 You define your distribution features in the distribution
3735 configuration file.
3736 </para>
3737
3738 <para>
3739 In most cases, the presence or absence of a feature in
3740 <filename>DISTRO_FEATURES</filename> is translated to the
3741 appropriate option supplied to the configure script
3742 during the
3743 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3744 task for recipes that optionally support the feature.
3745 For example, specifying "x11" in
3746 <filename>DISTRO_FEATURES</filename>, causes
3747 every piece of software built for the target that can
3748 optionally support X11 to have its X11 support enabled.
3749 </para>
3750
3751 <para>
3752 Two more examples are Bluetooth and NFS support.
3753 For a more complete list of features that ships with the
3754 Yocto Project and that you can provide with this variable,
3755 see the
3756 "<link linkend='ref-features-distro'>Distro Features</link>"
3757 section.
3758 </para>
3759 </glossdef>
3760 </glossentry>
3761
3762 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3763 <info>
3764 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."
3765 </info>
3766 <glossdef>
3767 <para role="glossdeffirst">
3768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3769 Features to be added to
3770 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3771 if not also present in
3772 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3773 </para>
3774
3775 <para>
3776 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3777 It is not intended to be user-configurable.
3778 It is best to just reference the variable to see which distro features are
3779 being backfilled for all distro configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04003780 See the <link linkend='ref-features-backfill'>Feature Backfilling</link> section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003781 more information.
3782 </para>
3783 </glossdef>
3784 </glossentry>
3785
3786 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3787 <info>
3788 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3789 </info>
3790 <glossdef>
3791 <para role="glossdeffirst">
3792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3793 Features from
3794 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3795 that should not be backfilled (i.e. added to
3796 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3797 during the build.
3798 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3799 more information.
3800 </para>
3801 </glossdef>
3802 </glossentry>
3803
3804 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3805 <info>
3806 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3807 </info>
3808 <glossdef>
3809 <para role="glossdeffirst">
3810<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3811 A convenience variable that gives you the default
3812 list of distro features with the exception of any
3813 features specific to the C library
3814 (<filename>libc</filename>).
3815 </para>
3816
3817 <para>
3818 When creating a custom distribution, you might find it
3819 useful to be able to reuse the default
3820 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3821 options without the need to write out the full set.
3822 Here is an example that uses
3823 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3824 custom distro configuration file:
3825 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -04003826 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003827 </literallayout>
3828 </para>
3829 </glossdef>
3830 </glossentry>
3831
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003832 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVE'><glossterm>DISTRO_FEATURES_FILTER_NATIVE</glossterm>
3833 <info>
3834 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."
3835 </info>
3836 <glossdef>
3837 <para role="glossdeffirst">
3838<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3839 Specifies a list of features that if present in
3840 the target
3841 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3842 value should be included in
3843 <filename>DISTRO_FEATURES</filename> when building native
3844 recipes.
3845 This variable is used in addition to the features
3846 filtered using the
3847 <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
3848 variable.
3849 </para>
3850 </glossdef>
3851 </glossentry>
3852
3853 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVESDK'><glossterm>DISTRO_FEATURES_FILTER_NATIVESDK</glossterm>
3854 <info>
3855 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."
3856 </info>
3857 <glossdef>
3858 <para role="glossdeffirst">
3859<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3860 Specifies a list of features that if present in the target
3861 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3862 value should be included in
3863 <filename>DISTRO_FEATURES</filename> when building
3864 nativesdk recipes.
3865 This variable is used in addition to the features
3866 filtered using the
3867 <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
3868 variable.
3869 </para>
3870 </glossdef>
3871 </glossentry>
3872
Brad Bishop19323692019-04-05 15:28:33 -04003873<!--
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003874 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3875 <info>
3876 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3877 </info>
3878 <glossdef>
3879 <para role="glossdeffirst">
Brad Bishop19323692019-04-05 15:28:33 -04003880 <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" />
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003881 A convenience variable that specifies the list of distro
3882 features that are specific to the C library
3883 (<filename>libc</filename>).
3884 Typically, these features are prefixed with "libc-" and
3885 control which features are enabled at during the build
3886 within the C library itself.
3887 </para>
3888 </glossdef>
3889 </glossentry>
Brad Bishop19323692019-04-05 15:28:33 -04003890-->
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003891
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003892 <glossentry id='var-DISTRO_FEATURES_NATIVE'><glossterm>DISTRO_FEATURES_NATIVE</glossterm>
3893 <info>
3894 DISTRO_FEATURES_NATIVE[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes."
3895 </info>
3896 <glossdef>
3897 <para role="glossdeffirst">
3898<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3899 Specifies a list of features that should be included in
3900 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3901 when building native recipes.
3902 This variable is used in addition to the features
3903 filtered using the
3904 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>
3905 variable.
3906 </para>
3907 </glossdef>
3908 </glossentry>
3909
3910 <glossentry id='var-DISTRO_FEATURES_NATIVESDK'><glossterm>DISTRO_FEATURES_NATIVESDK</glossterm>
3911 <info>
3912 DISTRO_FEATURES_NATIVESDK[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes."
3913 </info>
3914 <glossdef>
3915 <para role="glossdeffirst">
3916<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3917 Specifies a list of features that should be included in
3918 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3919 when building nativesdk recipes.
3920 This variable is used in addition to the features
3921 filtered using the
3922 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>
3923 variable.
3924 </para>
3925 </glossdef>
3926 </glossentry>
3927
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003928 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3929 <info>
3930 DISTRO_NAME[doc] = "The long name of the distribution."
3931 </info>
3932 <glossdef>
3933 <para role="glossdeffirst">
3934<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3935 The long name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003936 For information on the short name of the distribution, see
3937 the
3938 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
3939 variable.
3940 </para>
3941
3942 <para>
3943 The <filename>DISTRO_NAME</filename> variable corresponds
3944 to a distribution configuration file whose root name is the
3945 same as the variable's argument and whose filename
3946 extension is <filename>.conf</filename>.
3947 For example, the distribution configuration file for the
3948 Poky distribution is named <filename>poky.conf</filename>
3949 and resides in the
3950 <filename>meta-poky/conf/distro</filename> directory of
3951 the
3952 <link linkend='source-directory'>Source Directory</link>.
3953 </para>
3954
3955 <para>
3956 Within that <filename>poky.conf</filename> file, the
3957 <filename>DISTRO_NAME</filename> variable is set as
3958 follows:
3959 <literallayout class='monospaced'>
3960 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
3961 </literallayout>
3962 </para>
3963
3964 <para>
3965 Distribution configuration files are located in a
3966 <filename>conf/distro</filename> directory within the
3967 <link linkend='metadata'>Metadata</link>
3968 that contains the distribution configuration.
3969 <note>
3970 If the <filename>DISTRO_NAME</filename> variable is
3971 blank, a set of default configurations are used, which
3972 are specified within
3973 <filename>meta/conf/distro/defaultsetup.conf</filename>
3974 also in the Source Directory.
3975 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003976 </para>
3977 </glossdef>
3978 </glossentry>
3979
3980 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3981 <info>
3982 DISTRO_VERSION[doc] = "The version of the distribution."
3983 </info>
3984 <glossdef>
3985 <para role="glossdeffirst">
3986<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3987 The version of the distribution.
3988 </para>
3989 </glossdef>
3990 </glossentry>
3991
3992 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3993 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003994 DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003995 </info>
3996 <glossdef>
3997 <para role="glossdeffirst">
3998<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003999 A colon-separated list of overrides specific to the
4000 current distribution.
4001 By default, this list includes the value of
4002 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
4003 </para>
4004
4005 <para>
4006 You can extend <filename>DISTROOVERRIDES</filename>
4007 to add extra overrides that should apply to
4008 the distribution.
4009 </para>
4010
4011 <para>
4012 The underlying mechanism behind
4013 <filename>DISTROOVERRIDES</filename> is simply that it
4014 is included in the default value of
4015 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004016 </para>
4017 </glossdef>
4018 </glossentry>
4019
4020 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
4021 <info>
4022 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."
4023 </info>
4024 <glossdef>
4025 <para role="glossdeffirst">
4026<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4027 The central download directory used by the build process to
4028 store downloads.
4029 By default, <filename>DL_DIR</filename> gets files
4030 suitable for mirroring for everything except Git
4031 repositories.
4032 If you want tarballs of Git repositories, use the
4033 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
4034 variable.
4035 </para>
4036
4037 <para>
4038 You can set this directory by defining the
4039 <filename>DL_DIR</filename> variable in the
4040 <filename>conf/local.conf</filename> file.
4041 This directory is self-maintaining and you should not have
4042 to touch it.
4043 By default, the directory is <filename>downloads</filename>
4044 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004045 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004046 <literallayout class='monospaced'>
4047 #DL_DIR ?= "${TOPDIR}/downloads"
4048 </literallayout>
4049 To specify a different download directory, simply remove
4050 the comment from the line and provide your directory.
4051 </para>
4052
4053 <para>
4054 During a first build, the system downloads many different
4055 source code tarballs from various upstream projects.
4056 Downloading can take a while, particularly if your network
4057 connection is slow.
4058 Tarballs are all stored in the directory defined by
4059 <filename>DL_DIR</filename> and the build system looks there
4060 first to find source tarballs.
4061 <note>
4062 When wiping and rebuilding, you can preserve this
4063 directory to speed up this part of subsequent
4064 builds.
4065 </note>
4066 </para>
4067
4068 <para>
4069 You can safely share this directory between multiple builds
4070 on the same development machine.
4071 For additional information on how the build process gets
4072 source files when working behind a firewall or proxy server,
4073 see this specific question in the
4074 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
4075 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004076 You can also refer to the
4077 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
4078 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004079 </para>
4080 </glossdef>
4081 </glossentry>
4082
4083 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
4084 <info>
4085 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."
4086 </info>
4087 <glossdef>
4088 <para role="glossdeffirst">
4089<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4090 When inheriting the
4091 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
4092 class, this variable sets the compression policy used when
4093 the OpenEmbedded build system compresses man pages and info
4094 pages.
4095 By default, the compression method used is gz (gzip).
4096 Other policies available are xz and bz2.
4097 </para>
4098
4099 <para>
4100 For information on policies and on how to use this
4101 variable, see the comments in the
4102 <filename>meta/classes/compress_doc.bbclass</filename> file.
4103 </para>
4104 </glossdef>
4105 </glossentry>
4106
4107 </glossdiv>
4108
4109 <glossdiv id='var-glossary-e'><title>E</title>
4110
4111 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
4112 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004113 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 -05004114 </info>
4115 <glossdef>
4116 <para role="glossdeffirst">
4117<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4118 When building bootable images (i.e. where
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004119 <filename>hddimg</filename>, <filename>iso</filename>,
4120 or <filename>wic.vmdk</filename> is in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004121 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
4122 the <filename>EFI_PROVIDER</filename> variable specifies
4123 the EFI bootloader to use.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004124 The default is "grub-efi", but "systemd-boot" can be used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004125 instead.
4126 </para>
4127
4128 <para>
4129 See the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004130 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05004131 and
4132 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
4133 classes for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004134 </para>
4135 </glossdef>
4136 </glossentry>
4137
4138 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
4139 <info>
4140 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."
4141 </info>
4142 <glossdef>
4143 <para role="glossdeffirst">
4144<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4145 Variable that controls which locales for
4146 <filename>glibc</filename> are generated during the
4147 build (useful if the target device has 64Mbytes
4148 of RAM or less).
4149 </para>
4150 </glossdef>
4151 </glossentry>
4152
4153 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
4154 <info>
4155 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."
4156 </info>
4157 <glossdef>
4158 <para role="glossdeffirst">
4159<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4160 When used with the
4161 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
4162 class, specifies the path used for storing the debug files
4163 created by the
4164 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
4165 which allows you to submit build errors you encounter to a
4166 central database.
4167 By default, the value of this variable is
4168 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
4169 </para>
4170
4171 <para>
4172 You can set <filename>ERR_REPORT_DIR</filename> to the path
4173 you want the error reporting tool to store the debug files
4174 as follows in your <filename>local.conf</filename> file:
4175 <literallayout class='monospaced'>
4176 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
4177 </literallayout>
4178 </para>
4179 </glossdef>
4180 </glossentry>
4181
4182 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
4183 <info>
4184 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
4185 </info>
4186 <glossdef>
4187 <para role="glossdeffirst">
4188<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4189 Specifies the quality assurance checks whose failures are
4190 reported as errors by the OpenEmbedded build system.
4191 You set this variable in your distribution configuration
4192 file.
4193 For a list of the checks you can control with this variable,
4194 see the
4195 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
4196 section.
4197 </para>
4198 </glossdef>
4199 </glossentry>
4200
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004201 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
4202 <info>
4203 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
4204 </info>
4205 <glossdef>
4206 <para role="glossdeffirst">
4207<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4208 Triggers the OpenEmbedded build system's shared libraries
4209 resolver to exclude an entire package when scanning for
4210 shared libraries.
4211 <note>
4212 The shared libraries resolver's functionality results
4213 in part from the internal function
4214 <filename>package_do_shlibs</filename>, which is part of
4215 the
4216 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
4217 task.
4218 You should be aware that the shared libraries resolver
4219 might implicitly define some dependencies between
4220 packages.
4221 </note>
4222 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
4223 similar to the
4224 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
4225 variable, which excludes a package's particular libraries
4226 only and not the whole package.
4227 </para>
4228
4229 <para>
4230 Use the
4231 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
4232 setting it to "1" for a particular package:
4233 <literallayout class='monospaced'>
4234 EXCLUDE_FROM_SHLIBS = "1"
4235 </literallayout>
4236 </para>
4237 </glossdef>
4238 </glossentry>
4239
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004240 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
4241 <info>
4242 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
4243 </info>
4244 <glossdef>
4245 <para role="glossdeffirst">
4246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4247 Directs BitBake to exclude a recipe from world builds (i.e.
4248 <filename>bitbake world</filename>).
4249 During world builds, BitBake locates, parses and builds all
4250 recipes found in every layer exposed in the
4251 <filename>bblayers.conf</filename> configuration file.
4252 </para>
4253
4254 <para>
4255 To exclude a recipe from a world build using this variable,
4256 set the variable to "1" in the recipe.
4257 </para>
4258
4259 <note>
4260 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
4261 may still be built during a world build in order to satisfy
4262 dependencies of other recipes.
4263 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
4264 only ensures that the recipe is not explicitly added
4265 to the list of build targets in a world build.
4266 </note>
4267 </glossdef>
4268 </glossentry>
4269
4270 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
4271 <info>
4272 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."
4273 </info>
4274 <glossdef>
4275 <para role="glossdeffirst">
4276<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4277 Used with file and pathnames to create a prefix for a recipe's
4278 version based on the recipe's
4279 <link linkend='var-PE'><filename>PE</filename></link> value.
4280 If <filename>PE</filename> is set and greater than zero for a recipe,
4281 <filename>EXTENDPE</filename> becomes that value (e.g if
4282 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
4283 becomes "1_").
4284 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
4285 zero, <filename>EXTENDPE</filename> becomes "".</para>
4286 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
4287 variable for an example.
4288 </para>
4289 </glossdef>
4290 </glossentry>
4291
4292 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
4293 <info>
4294 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
4295 </info>
4296 <glossdef>
4297 <para role="glossdeffirst">
4298<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4299 The full package version specification as it appears on the
4300 final packages produced by a recipe.
4301 The variable's value is normally used to fix a runtime
4302 dependency to the exact same version of another package
4303 in the same recipe:
4304 <literallayout class='monospaced'>
4305 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
4306 </literallayout>
4307 </para>
4308
4309 <para>
4310 The dependency relationships are intended to force the
4311 package manager to upgrade these types of packages in
4312 lock-step.
4313 </para>
4314 </glossdef>
4315 </glossentry>
4316
4317 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
4318 <info>
4319 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
4320 </info>
4321 <glossdef>
4322 <para role="glossdeffirst">
4323<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4324 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4325 variable indicates that these tools are not in the
4326 source tree.
4327 </para>
4328
4329 <para>
4330 When kernel tools are available in the tree, they are
4331 preferred over any externally installed tools.
4332 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4333 variable tells the OpenEmbedded build system to prefer
4334 the installed external tools.
4335 See the
4336 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
4337 class in <filename>meta/classes</filename> to see how
4338 the variable is used.
4339 </para>
4340 </glossdef>
4341 </glossentry>
4342
4343 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
4344 <info>
4345 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
4346 </info>
4347 <glossdef>
4348 <para role="glossdeffirst">
4349<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4350 When inheriting the
4351 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4352 class, this variable points to the source tree, which is
4353 outside of the OpenEmbedded build system.
4354 When set, this variable sets the
4355 <link linkend='var-S'><filename>S</filename></link>
4356 variable, which is what the OpenEmbedded build system uses
4357 to locate unpacked recipe source code.
4358 </para>
4359
4360 <para>
4361 For more information on
4362 <filename>externalsrc.bbclass</filename>, see the
4363 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4364 section.
4365 You can also find information on how to use this variable
4366 in the
4367 "<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 -05004368 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004369 </para>
4370 </glossdef>
4371 </glossentry>
4372
4373 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
4374 <info>
4375 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."
4376 </info>
4377 <glossdef>
4378 <para role="glossdeffirst">
4379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4380 When inheriting the
4381 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4382 class, this variable points to the directory in which the
4383 recipe's source code is built, which is outside of the
4384 OpenEmbedded build system.
4385 When set, this variable sets the
4386 <link linkend='var-B'><filename>B</filename></link>
4387 variable, which is what the OpenEmbedded build system uses
4388 to locate the Build Directory.
4389 </para>
4390
4391 <para>
4392 For more information on
4393 <filename>externalsrc.bbclass</filename>, see the
4394 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4395 section.
4396 You can also find information on how to use this variable
4397 in the
4398 "<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 -05004399 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004400 </para>
4401 </glossdef>
4402 </glossentry>
4403
4404 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
4405 <info>
4406 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
4407 </info>
4408 <glossdef>
4409 <para role="glossdeffirst">
4410<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4411 For recipes inheriting the
4412 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
4413 class, you can use <filename>EXTRA_AUTORECONF</filename> to
4414 specify extra options to pass to the
4415 <filename>autoreconf</filename> command that is
4416 executed during the
4417 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
4418 task.
4419 </para>
4420
4421 <para>
4422 The default value is "--exclude=autopoint".
4423 </para>
4424 </glossdef>
4425 </glossentry>
4426
4427 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
4428 <info>
4429 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."
4430 </info>
4431 <glossdef>
4432 <para role="glossdeffirst">
4433<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4434 A list of additional features to include in an image.
4435 When listing more than one feature, separate them with
4436 a space.
4437 </para>
4438
4439 <para>
4440 Typically, you configure this variable in your
4441 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004442 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004443 Although you can use this variable from within a recipe,
4444 best practices dictate that you do not.
4445 <note>
4446 To enable primary features from within the image
4447 recipe, use the
4448 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
4449 variable.
4450 </note>
4451 </para>
4452
4453 <para>
4454 Here are some examples of features you can add:
4455 <literallayout class='monospaced'>
4456"dbg-pkgs" - Adds -dbg packages for all installed packages
4457 including symbol information for debugging and
4458 profiling.
4459
4460"debug-tweaks" - Makes an image suitable for debugging.
4461 For example, allows root logins without
4462 passwords and enables post-installation
4463 logging. See the 'allow-empty-password'
4464 and 'post-install-logging' features in
4465 the "<link linkend='ref-features-image'>Image Features</link>" section for
4466 more information.
4467
4468"dev-pkgs" - Adds -dev packages for all installed packages.
4469 This is useful if you want to develop against
4470 the libraries in the image.
4471
4472"read-only-rootfs" - Creates an image whose root
4473 filesystem is read-only. See the
4474 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
4475 section in the Yocto Project
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004476 Development Tasks Manual for
4477 more information
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004478
4479"tools-debug" - Adds debugging tools such as gdb and
4480 strace.
4481
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004482"tools-sdk" - Adds development tools such as gcc, make,
4483 pkgconfig and so forth.
4484
4485"tools-testapps" - Adds useful testing tools such as
4486 ts_print, aplay, arecord and so
4487 forth.
4488
4489 </literallayout>
4490 </para>
4491
4492 <para>
4493 For a complete list of image features that ships with the
4494 Yocto Project, see the
4495 "<link linkend="ref-features-image">Image Features</link>"
4496 section.
4497 </para>
4498
4499 <para>
4500 For an example that shows how to customize your image by
4501 using this variable, see the
4502 "<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 -05004503 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004504 </para>
4505 </glossdef>
4506 </glossentry>
4507
4508 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
4509 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04004510 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 -05004511 </info>
4512 <glossdef>
4513 <para role="glossdeffirst">
4514<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4515 Specifies additional options for the image
4516 creation command that has been specified in
4517 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004518 When setting this variable, use an override for the
4519 associated image type.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004520 Here is an example:
4521 <literallayout class='monospaced'>
4522 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
4523 </literallayout>
4524 </para>
4525 </glossdef>
4526 </glossentry>
4527
4528 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
4529 <info>
4530 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."
4531 </info>
4532 <glossdef>
4533 <para role="glossdeffirst">
4534<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4535 A list of recipes to build that do not provide packages
4536 for installing into the root filesystem.
4537 </para>
4538
4539 <para>
4540 Sometimes a recipe is required to build the final image but is not
4541 needed in the root filesystem.
4542 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
4543 list these recipes and thus specify the dependencies.
4544 A typical example is a required bootloader in a machine configuration.
4545 </para>
4546
4547 <note>
4548 To add packages to the root filesystem, see the various
4549 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
4550 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
4551 variables.
4552 </note>
4553 </glossdef>
4554 </glossentry>
4555
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004556 <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
4557 <info>
4558 EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
4559 </info>
4560 <glossdef>
4561 <para role="glossdeffirst">
4562<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4563 A list of subdirectories of
4564 <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
4565 added to the beginning of the environment variable
4566 <filename>PATH</filename>.
4567 As an example, the following prepends
4568 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
4569 to <filename>PATH</filename>:
4570 <literallayout class='monospaced'>
4571 EXTRANATIVEPATH = "foo bar"
4572 </literallayout>
4573 </para>
4574 </glossdef>
4575 </glossentry>
4576
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004577 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
4578 <info>
4579 EXTRA_OECMAKE[doc] = "Additional cmake options."
4580 </info>
4581 <glossdef>
4582 <para role="glossdeffirst">
4583<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004584 Additional
4585 <ulink url='https://cmake.org/overview/'>CMake</ulink>
4586 options.
4587 See the
4588 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
4589 class for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004590 </para>
4591 </glossdef>
4592 </glossentry>
4593
4594 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
4595 <info>
4596 EXTRA_OECONF[doc] = "Additional configure script options."
4597 </info>
4598 <glossdef>
4599 <para role="glossdeffirst">
4600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4601 Additional <filename>configure</filename> script options.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004602 See
4603 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
4604 for additional information on passing configure script
4605 options.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004606 </para>
4607 </glossdef>
4608 </glossentry>
4609
4610 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
4611 <info>
4612 EXTRA_OEMAKE[doc] = "Additional GNU make options."
4613 </info>
4614 <glossdef>
4615 <para role="glossdeffirst">
4616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4617 Additional GNU <filename>make</filename> options.
4618 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004619
4620 <para>
4621 Because the <filename>EXTRA_OEMAKE</filename> defaults to
4622 "", you need to set the variable to specify any required
4623 GNU options.
4624 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004625
4626 <para>
4627 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4628 and
4629 <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
4630 also make use of
4631 <filename>EXTRA_OEMAKE</filename> to pass the required
4632 flags.
4633 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004634 </glossdef>
4635 </glossentry>
4636
4637 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
4638 <info>
4639 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."
4640 </info>
4641 <glossdef>
4642 <para role="glossdeffirst">
4643<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4644 When inheriting the
4645 <link linkend='ref-classes-scons'><filename>scons</filename></link>
4646 class, this variable specifies additional configuration
4647 options you want to pass to the
4648 <filename>scons</filename> command line.
4649 </para>
4650 </glossdef>
4651 </glossentry>
4652
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004653 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
4654 <info>
4655 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
4656 </info>
4657 <glossdef>
4658 <para role="glossdeffirst">
4659<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4660 When inheriting the
4661 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
4662 class, this variable provides image level user and group
4663 operations.
4664 This is a more global method of providing user and group
4665 configuration as compared to using the
4666 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4667 class, which ties user and group configurations to a
4668 specific recipe.
4669 </para>
4670
4671 <para>
4672 The set list of commands you can configure using the
4673 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4674 <filename>extrausers</filename> class.
4675 These commands map to the normal Unix commands of the same
4676 names:
4677 <literallayout class='monospaced'>
4678 # EXTRA_USERS_PARAMS = "\
4679 # useradd -p '' tester; \
4680 # groupadd developers; \
4681 # userdel nobody; \
4682 # groupdel -g video; \
4683 # groupmod -g 1020 developers; \
4684 # usermod -s /bin/sh tester; \
4685 # "
4686 </literallayout>
4687 </para>
4688 </glossdef>
4689 </glossentry>
4690
4691 </glossdiv>
4692
4693 <glossdiv id='var-glossary-f'><title>F</title>
4694
4695 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4696 <info>
4697 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."
4698 </info>
4699 <glossdef>
4700 <para role="glossdeffirst">
4701<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4702 Defines one or more packages to include in an image when
4703 a specific item is included in
4704 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4705 When setting the value, <filename>FEATURE_PACKAGES</filename>
4706 should have the name of the feature item as an override.
4707 Here is an example:
4708 <literallayout class='monospaced'>
4709 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4710 </literallayout>
4711 </para>
4712
4713 <para>
4714 In this example, if "widget" were added to
4715 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4716 <replaceable>package2</replaceable> would be included in the image.
4717 <note>
4718 Packages installed by features defined through
4719 <filename>FEATURE_PACKAGES</filename> are often package
4720 groups.
4721 While similarly named, you should not confuse the
4722 <filename>FEATURE_PACKAGES</filename> variable with
4723 package groups, which are discussed elsewhere in the
4724 documentation.
4725 </note>
4726 </para>
4727 </glossdef>
4728 </glossentry>
4729
4730 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4731 <info>
4732 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."
4733 </info>
4734 <glossdef>
4735 <para role="glossdeffirst">
4736<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4737 Points to the base URL of the server and location within
4738 the document-root that provides the metadata and
4739 packages required by OPKG to support runtime package
4740 management of IPK packages.
4741 You set this variable in your
4742 <filename>local.conf</filename> file.
4743 </para>
4744
4745 <para>
4746 Consider the following example:
4747 <literallayout class='monospaced'>
4748 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4749 </literallayout>
4750 This example assumes you are serving your packages over
4751 HTTP and your databases are located in a directory
4752 named <filename>BOARD-dir</filename>, which is underneath
4753 your HTTP server's document-root.
4754 In this case, the OpenEmbedded build system generates a set
4755 of configuration files for you in your target that work
4756 with the feed.
4757 </para>
4758 </glossdef>
4759 </glossentry>
4760
4761 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4762 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004763 FILES[doc] = "The list of directories or files that are placed in a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004764 </info>
4765 <glossdef>
4766 <para role="glossdeffirst">
4767<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004768 The list of files and directories that are placed in a
4769 package.
4770 The
4771 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
4772 variable lists the packages generated by a recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004773 </para>
4774
4775 <para>
4776 To use the <filename>FILES</filename> variable, provide a
4777 package name override that identifies the resulting package.
4778 Then, provide a space-separated list of files or paths
4779 that identify the files you want included as part of the
4780 resulting package.
4781 Here is an example:
4782 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004783 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004784 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004785 <note><title>Notes</title>
4786 <itemizedlist>
4787 <listitem><para>
4788 When specifying files or paths, you can pattern
4789 match using Python's
4790 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>
4791 syntax.
4792 For details on the syntax, see the
4793 documentation by following the previous link.
4794 </para></listitem>
4795 <listitem><para>
4796 When specifying paths as part of the
4797 <filename>FILES</filename> variable, it is
4798 good practice to use appropriate path
4799 variables.
4800 For example, use <filename>${sysconfdir}</filename>
4801 rather than <filename>/etc</filename>, or
4802 <filename>${bindir}</filename> rather than
4803 <filename>/usr/bin</filename>.
4804 You can find a list of these variables at the
4805 top of the
4806 <filename>meta/conf/bitbake.conf</filename>
4807 file in the
4808 <link linkend='source-directory'>Source Directory</link>.
4809 You will also find the default values of the
4810 various <filename>FILES_*</filename> variables
4811 in this file.
4812 </para></listitem>
4813 </itemizedlist>
4814 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004815 </para>
4816
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004817 <para>
4818 If some of the files you provide with the
4819 <filename>FILES</filename> variable are editable and you
4820 know they should not be overwritten during the package
4821 update process by the Package Management System (PMS), you
4822 can identify these files so that the PMS will not
4823 overwrite them.
4824 See the
4825 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4826 variable for information on how to identify these files to
4827 the PMS.
4828 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004829 </glossdef>
4830 </glossentry>
4831
4832 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4833 <info>
4834 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4835 </info>
4836 <glossdef>
4837 <para role="glossdeffirst">
4838<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4839 Defines the file specification to match
4840 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4841 In other words, <filename>FILES_SOLIBSDEV</filename>
4842 defines the full path name of the development symbolic link
4843 (symlink) for shared libraries on the target platform.
4844 </para>
4845
4846 <para>
4847 The following statement from the
4848 <filename>bitbake.conf</filename> shows how it is set:
4849 <literallayout class='monospaced'>
4850 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4851 </literallayout>
4852 </para>
4853 </glossdef>
4854 </glossentry>
4855
4856 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4857 <info>
4858 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4859 </info>
4860 <glossdef>
4861 <para role="glossdeffirst">
4862<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4863 Extends the search path the OpenEmbedded build system uses
4864 when looking for files and patches as it processes recipes
4865 and append files.
4866 The default directories BitBake uses when it processes
4867 recipes are initially defined by the
4868 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4869 variable.
4870 You can extend <filename>FILESPATH</filename> variable
4871 by using <filename>FILESEXTRAPATHS</filename>.
4872 </para>
4873
4874 <para>
4875 Best practices dictate that you accomplish this by using
4876 <filename>FILESEXTRAPATHS</filename> from within a
4877 <filename>.bbappend</filename> file and that you prepend
4878 paths as follows:
4879 <literallayout class='monospaced'>
4880 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4881 </literallayout>
4882 In the above example, the build system first looks for files
4883 in a directory that has the same name as the corresponding
4884 append file.
4885 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004886 <para>When extending
4887 <filename>FILESEXTRAPATHS</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004888 be sure to use the immediate expansion
4889 (<filename>:=</filename>) operator.
4890 Immediate expansion makes sure that BitBake evaluates
4891 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4892 at the time the directive is encountered rather than at
4893 some later time when expansion might result in a
4894 directory that does not contain the files you need.
4895 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004896
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004897 <para>Also, include the trailing separating colon
4898 character if you are prepending.
4899 The trailing colon character is necessary because you
4900 are directing BitBake to extend the path by prepending
4901 directories to the search path.</para>
4902 </note>
4903 Here is another common use:
4904 <literallayout class='monospaced'>
4905 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4906 </literallayout>
4907 In this example, the build system extends the
4908 <filename>FILESPATH</filename> variable to include a
4909 directory named <filename>files</filename> that is in the
4910 same directory as the corresponding append file.
4911 </para>
4912
4913 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004914 This next example specifically adds three paths:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004915 <literallayout class='monospaced'>
4916 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4917 </literallayout>
4918 </para>
4919
4920 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004921 A final example shows how you can extend the search path
4922 and include a
4923 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>-specific
4924 override, which is useful in a BSP layer:
4925 <literallayout class='monospaced'>
4926 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
4927 </literallayout>
4928 The previous statement appears in the
4929 <filename>linux-yocto-dev.bbappend</filename> file, which
4930 is found in the Yocto Project
Brad Bishop316dfdd2018-06-25 12:45:53 -04004931 <ulink url='&YOCTO_DOCS_OM_URL;#source-repositories'>Source Repositories</ulink>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004932 in
4933 <filename>meta-intel/common/recipes-kernel/linux</filename>.
4934 Here, the machine override is a special
4935 <link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
4936 definition for multiple <filename>meta-intel</filename>
4937 machines.
4938 <note>
4939 For a layer that supports a single BSP, the override
4940 could just be the value of <filename>MACHINE</filename>.
4941 </note>
4942 </para>
4943
4944 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004945 By prepending paths in <filename>.bbappend</filename>
4946 files, you allow multiple append files that reside in
4947 different layers but are used for the same recipe to
4948 correctly extend the path.
4949 </para>
4950 </glossdef>
4951 </glossentry>
4952
4953 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4954 <info>
4955 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4956 </info>
4957 <glossdef>
4958 <para role="glossdeffirst">
4959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4960 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4961 used by the OpenEmbedded build system for creating
4962 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
Brad Bishop19323692019-04-05 15:28:33 -04004963 The <filename>FILESOVERRIDES</filename> variable uses
4964 overrides to automatically extend the
4965 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4966 variable.
4967 For an example of how that works, see the
4968 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4969 variable description.
4970 Additionally, you find more information on how overrides
4971 are handled in the
4972 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
4973 section of the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004974 </para>
4975
4976 <para>
4977 By default, the <filename>FILESOVERRIDES</filename>
4978 variable is defined as:
4979 <literallayout class='monospaced'>
4980 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4981 </literallayout>
4982
4983 <note>
4984 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4985 variable.
4986 The values match up with expected overrides and are
4987 used in an expected manner by the build system.
4988 </note>
4989 </para>
4990 </glossdef>
4991 </glossentry>
4992
4993 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4994 <info>
4995 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."
4996 </info>
4997 <glossdef>
4998 <para role="glossdeffirst">
4999<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop19323692019-04-05 15:28:33 -04005000 The default set of directories the OpenEmbedded build
5001 system uses when searching for patches and files.
5002 </para>
5003
5004 <para>
5005 During the build process, BitBake searches each directory
5006 in <filename>FILESPATH</filename> in the specified order
5007 when looking for files and patches specified by each
Brad Bishop316dfdd2018-06-25 12:45:53 -04005008 <filename>file://</filename> URI in a recipe's
5009 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
5010 statements.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005011 </para>
5012
5013 <para>
5014 The default value for the <filename>FILESPATH</filename>
5015 variable is defined in the <filename>base.bbclass</filename>
5016 class found in <filename>meta/classes</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005017 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005018 <literallayout class='monospaced'>
5019 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
5020 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
5021 </literallayout>
Brad Bishop19323692019-04-05 15:28:33 -04005022 The <filename>FILESPATH</filename> variable is automatically
5023 extended using the overrides from the
5024 <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link>
5025 variable.
5026 <note><title>Notes</title>
5027 <itemizedlist>
5028 <listitem><para>
5029 Do not hand-edit the
5030 <filename>FILESPATH</filename> variable.
5031 If you want the build system to look in
5032 directories other than the defaults, extend the
5033 <filename>FILESPATH</filename> variable by
5034 using the
5035 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
5036 variable.
5037 </para></listitem>
5038 <listitem><para>
5039 Be aware that the default
5040 <filename>FILESPATH</filename> directories do
5041 not map to directories in custom layers
5042 where append files
5043 (<filename>.bbappend</filename>) are used.
5044 If you want the build system to find patches
5045 or files that reside with your append files,
5046 you need to extend the
5047 <filename>FILESPATH</filename> variable by
5048 using the <filename>FILESEXTRAPATHS</filename>
5049 variable.
5050 </para></listitem>
5051 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005052 </note>
Brad Bishop19323692019-04-05 15:28:33 -04005053 </para>
5054
5055 <para>
5056 You can take advantage of this searching behavior in
5057 useful ways.
5058 For example, consider a case where the following
5059 directory structure exists for general and machine-specific
5060 configurations:
5061 <literallayout class='monospaced'>
5062 files/defconfig
5063 files/MACHINEA/defconfig
5064 files/MACHINEB/defconfig
5065 </literallayout>
5066 Also in the example, the <filename>SRC_URI</filename>
5067 statement contains "file://defconfig".
5068 Given this scenario, you can set
5069 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
5070 to "MACHINEA" and cause the build system to use files
5071 from <filename>files/MACHINEA</filename>.
5072 Set <filename>MACHINE</filename> to "MACHINEB" and the
5073 build system uses files from
5074 <filename>files/MACHINEB</filename>.
5075 Finally, for any machine other than "MACHINEA" and
5076 "MACHINEB", the build system uses files from
5077 <filename>files/defconfig</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005078 </para>
5079
5080 <para>
5081 You can find out more about the patching process in the
5082 "<ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>Patching</ulink>"
5083 section in the Yocto Project Overview and Concepts Manual
5084 and the
5085 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code'>Patching Code</ulink>"
5086 section in the Yocto Project Development Tasks Manual.
5087 See the
5088 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
5089 task as well.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005090 </para>
5091 </glossdef>
5092 </glossentry>
5093
5094 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
5095 <info>
5096 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
5097 </info>
5098 <glossdef>
5099 <para role="glossdeffirst">
5100<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5101 Allows you to define your own file permissions settings table as part of
5102 your configuration for the packaging process.
5103 For example, suppose you need a consistent set of custom permissions for
5104 a set of groups and users across an entire work project.
5105 It is best to do this in the packages themselves but this is not always
5106 possible.
5107 </para>
5108
5109 <para>
5110 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
5111 is located in the <filename>meta/files</filename> folder in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005112 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005113 If you create your own file permissions setting table, you should place it in your
5114 layer or the distro's layer.
5115 </para>
5116
5117 <para>
5118 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
5119 <filename>conf/local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005120 <link linkend='build-directory'>Build Directory</link>, to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005121 point to your custom <filename>fs-perms.txt</filename>.
5122 You can specify more than a single file permissions setting table.
5123 The paths you specify to these files must be defined within the
5124 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
5125 </para>
5126
5127 <para>
5128 For guidance on how to create your own file permissions settings table file,
5129 examine the existing <filename>fs-perms.txt</filename>.
5130 </para>
5131 </glossdef>
5132 </glossentry>
5133
5134 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
5135 <info>
5136 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'."
5137 </info>
5138 <glossdef>
5139 <para role="glossdeffirst">
5140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5141 When inheriting the
5142 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5143 class, this variable specifies the runtime dependencies
5144 for font packages.
5145 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
5146 is set to "fontconfig-utils".
5147 </para>
5148 </glossdef>
5149 </glossentry>
5150
5151 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
5152 <info>
5153 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
5154 </info>
5155 <glossdef>
5156 <para role="glossdeffirst">
5157<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5158 When inheriting the
5159 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5160 class, this variable identifies packages containing font
5161 files that need to be cached by Fontconfig.
5162 By default, the <filename>fontcache</filename> class assumes
5163 that fonts are in the recipe's main package
5164 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5165 Use this variable if fonts you need are in a package
5166 other than that main package.
5167 </para>
5168 </glossdef>
5169 </glossentry>
5170
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005171 <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
5172 <info>
5173 FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
5174 </info>
5175 <glossdef>
5176 <para role="glossdeffirst">
5177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5178 Forces the removal of the packages listed in
5179 <filename>ROOTFS_RO_UNNEEDED</filename> during the
5180 generation of the root filesystem.
5181 </para>
5182
5183 <para>
5184 Set the variable to "1" to force the removal of these
5185 packages.
5186 </para>
5187 </glossdef>
5188 </glossentry>
5189
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005190 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
5191 <info>
5192 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'."
5193 </info>
5194 <glossdef>
5195 <para role="glossdeffirst">
5196<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5197 The options to pass in
5198 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
5199 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
5200 when compiling an optimized system.
5201 This variable defaults to
5202 "-O2 -pipe ${DEBUG_FLAGS}".
5203 </para>
5204 </glossdef>
5205 </glossentry>
5206 </glossdiv>
5207
5208 <glossdiv id='var-glossary-g'><title>G</title>
5209
Brad Bishop316dfdd2018-06-25 12:45:53 -04005210 <glossentry id='var-GCCPIE'><glossterm>GCCPIE</glossterm>
5211 <info>
5212 GCCPIE[doc] = "Enables Position Independent Executables (PIE) within the GNU C Compiler (GCC)."
5213 </info>
5214 <glossdef>
5215 <para role="glossdeffirst">
5216<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5217 Enables Position Independent Executables (PIE) within the
5218 GNU C Compiler (GCC).
5219 Enabling PIE in the GCC makes Return Oriented Programming
5220 (ROP) attacks much more difficult to
5221 execute.
5222 </para>
5223
5224 <para>
5225 By default the <filename>security_flags.inc</filename>
5226 file enables PIE by setting the variable as follows:
5227 <literallayout class='monospaced'>
5228 GCCPIE ?= "--enable-default-pie"
5229 </literallayout>
5230 </para>
5231 </glossdef>
5232 </glossentry>
5233
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08005234 <glossentry id='var-GCCVERSION'><glossterm>GCCVERSION</glossterm>
5235 <info>
5236 GCCVERSION[doc] = "Specifies the default version of the GNU C Compiler (GCC) to use."
5237 </info>
5238 <glossdef>
5239 <para role="glossdeffirst">
5240<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5241 Specifies the default version of the GNU C Compiler (GCC)
5242 used for compilation.
5243 By default, <filename>GCCVERSION</filename> is set to
5244 "8.x" in the
5245 <filename>meta/conf/distro/include/tcmode-default.inc</filename>
5246 include file:
5247 <literallayout class='monospaced'>
5248 GCCVERSION ?= "8.%"
5249 </literallayout>
5250 You can override this value by setting it in a configuration
5251 file such as the <filename>local.conf</filename>.
5252 </para>
5253 </glossdef>
5254 </glossentry>
5255
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005256 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
5257 <info>
5258 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
5259 </info>
5260 <glossdef>
5261 <para role="glossdeffirst">
5262<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5263 The minimal command and arguments to run the GNU Debugger.
5264 </para>
5265 </glossdef>
5266 </glossentry>
5267
5268 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
5269 <info>
5270 GITDIR[doc] = "The directory where Git clones will be stored."
5271 </info>
5272 <glossdef>
5273 <para role="glossdeffirst">
5274<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5275 The directory in which a local copy of a Git repository
5276 is stored when it is cloned.
5277 </para>
5278 </glossdef>
5279 </glossentry>
5280
5281 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
5282 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005283 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 -05005284 </info>
5285 <glossdef>
5286 <para role="glossdeffirst">
5287<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5288 Specifies the list of GLIBC locales to generate should you
Brad Bishop316dfdd2018-06-25 12:45:53 -04005289 not wish to generate all LIBC locals, which can be time
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005290 consuming.
5291 <note>
5292 If you specifically remove the locale
5293 <filename>en_US.UTF-8</filename>, you must set
5294 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
5295 appropriately.
5296 </note>
5297 </para>
5298
5299 <para>
5300 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
5301 in your <filename>local.conf</filename> file.
5302 By default, all locales are generated.
5303 <literallayout class='monospaced'>
5304 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
5305 </literallayout>
5306 </para>
5307 </glossdef>
5308 </glossentry>
5309
5310 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
5311 <info>
5312 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."
5313 </info>
5314 <glossdef>
5315 <para role="glossdeffirst">
5316<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5317 When inheriting the
5318 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5319 class, this variable
5320 specifies for a package what parameters should be passed
5321 to the <filename>groupadd</filename> command
5322 if you wish to add a group to the system when the package
5323 is installed.
5324 </para>
5325
5326 <para>
5327 Here is an example from the <filename>dbus</filename>
5328 recipe:
5329 <literallayout class='monospaced'>
5330 GROUPADD_PARAM_${PN} = "-r netdev"
5331 </literallayout>
5332 For information on the standard Linux shell command
5333 <filename>groupadd</filename>, see
5334 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
5335 </para>
5336 </glossdef>
5337 </glossentry>
5338
5339 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
5340 <info>
5341 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."
5342 </info>
5343 <glossdef>
5344 <para role="glossdeffirst">
5345<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5346 When inheriting the
5347 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5348 class, this variable
5349 specifies for a package what parameters should be passed
5350 to the <filename>groupmems</filename> command
5351 if you wish to modify the members of a group when the
5352 package is installed.
5353 </para>
5354
5355 <para>
5356 For information on the standard Linux shell command
5357 <filename>groupmems</filename>, see
5358 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
5359 </para>
5360 </glossdef>
5361 </glossentry>
5362
5363 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
5364 <info>
5365 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
5366 </info>
5367 <glossdef>
5368 <para role="glossdeffirst">
5369<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5370 Configures the GNU GRand Unified Bootloader (GRUB) to have
5371 graphics and serial in the boot menu.
5372 Set this variable to "1" in your
5373 <filename>local.conf</filename> or distribution
5374 configuration file to enable graphics and serial
5375 in the menu.
5376 </para>
5377
5378 <para>
5379 See the
5380 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5381 class for more information on how this variable is used.
5382 </para>
5383 </glossdef>
5384 </glossentry>
5385
5386 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
5387 <info>
5388 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
5389 </info>
5390 <glossdef>
5391 <para role="glossdeffirst">
5392<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5393 Additional options to add to the GNU GRand Unified
5394 Bootloader (GRUB) configuration.
5395 Use a semi-colon character (<filename>;</filename>) to
5396 separate multiple options.
5397 </para>
5398
5399 <para>
5400 The <filename>GRUB_OPTS</filename> variable is optional.
5401 See the
5402 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5403 class for more information on how this variable is used.
5404 </para>
5405 </glossdef>
5406 </glossentry>
5407
5408 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
5409 <info>
5410 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
5411 </info>
5412 <glossdef>
5413 <para role="glossdeffirst">
5414<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5415 Specifies the timeout before executing the default
5416 <filename>LABEL</filename> in the GNU GRand Unified
5417 Bootloader (GRUB).
5418 </para>
5419
5420 <para>
5421 The <filename>GRUB_TIMEOUT</filename> variable is optional.
5422 See the
5423 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5424 class for more information on how this variable is used.
5425 </para>
5426 </glossdef>
5427 </glossentry>
5428
5429 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
5430 <info>
5431 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."
5432 </info>
5433 <glossdef>
5434 <para role="glossdeffirst">
5435<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5436 When inheriting the
5437 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
5438 class, this variable specifies the packages that contain the
5439 GTK+ input method modules being installed when the modules
5440 are in packages other than the main package.
5441 </para>
5442 </glossdef>
5443 </glossentry>
5444
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005445 </glossdiv>
5446
5447 <glossdiv id='var-glossary-h'><title>H</title>
5448
5449 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
5450 <info>
5451 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
5452 </info>
5453 <glossdef>
5454 <para role="glossdeffirst">
5455<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5456 Website where more information about the software the recipe is building
5457 can be found.
5458 </para>
5459 </glossdef>
5460 </glossentry>
5461
5462 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
5463 <info>
5464 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
5465
5466 </info>
5467 <glossdef>
5468 <para role="glossdeffirst">
5469<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5470 The name of the target architecture, which is normally
5471 the same as
5472 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
5473 The OpenEmbedded build system supports many
5474 architectures.
5475 Here is an example list of architectures supported.
5476 This list is by no means complete as the architecture
5477 is configurable:
5478 <literallayout class='monospaced'>
5479 arm
5480 i586
5481 x86_64
5482 powerpc
5483 powerpc64
5484 mips
5485 mipsel
5486 </literallayout>
5487 </para>
5488 </glossdef>
5489 </glossentry>
5490
5491 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
5492 <info>
5493 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
5494 </info>
5495 <glossdef>
5496 <para role="glossdeffirst">
5497<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5498 Specifies architecture-specific compiler flags that are
5499 passed to the C compiler.
5500 </para>
5501
5502 <para>
5503 Default initialization for <filename>HOST_CC_ARCH</filename>
5504 varies depending on what is being built:
5505 <itemizedlist>
5506 <listitem><para>
5507 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
5508 when building for the target
5509 </para></listitem>
5510 <listitem><para>
5511 <filename>BUILD_CC_ARCH</filename>
5512 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005513 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005514 </para></listitem>
5515 <listitem><para>
5516 <filename>BUILDSDK_CC_ARCH</filename>
5517 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005518 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005519 </para></listitem>
5520 </itemizedlist>
5521 </para>
5522 </glossdef>
5523 </glossentry>
5524
5525 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
5526 <info>
5527 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
5528 </info>
5529 <glossdef>
5530 <para role="glossdeffirst">
5531<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5532 Specifies the name of the target operating system, which
5533 is normally the same as the
5534 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
5535 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005536 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005537 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005538 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005539 </para>
5540 </glossdef>
5541 </glossentry>
5542
5543 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
5544 <info>
5545 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
5546 </info>
5547 <glossdef>
5548 <para role="glossdeffirst">
5549<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5550 Specifies the prefix for the cross-compile toolchain.
5551 <filename>HOST_PREFIX</filename> is normally the same as
5552 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
5553 </para>
5554 </glossdef>
5555 </glossentry>
5556
5557 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
5558 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005559 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 -05005560 </info>
5561 <glossdef>
5562 <para role="glossdeffirst">
5563<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5564 Specifies the system, including the architecture and the
5565 operating system, for which the build is occurring
5566 in the context of the current recipe.
5567 </para>
5568
5569 <para>
5570 The OpenEmbedded build system automatically sets this
5571 variable based on
5572 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
5573 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
5574 and
5575 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
5576 variables.
5577 <note>
5578 You do not need to set the variable yourself.
5579 </note>
5580 </para>
5581
5582 <para>
5583 Consider these two examples:
5584 <itemizedlist>
5585 <listitem><para>Given a native recipe on a 32-bit
5586 x86 machine running Linux, the value is
5587 "i686-linux".
5588 </para></listitem>
5589 <listitem><para>Given a recipe being built for a
5590 little-endian MIPS target running Linux,
5591 the value might be "mipsel-linux".
5592 </para></listitem>
5593 </itemizedlist>
5594 </para>
5595 </glossdef>
5596 </glossentry>
5597
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005598 <glossentry id='var-HOSTTOOLS'><glossterm>HOSTTOOLS</glossterm>
5599 <info>
5600 HOSTTOOLS[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5601 </info>
5602 <glossdef>
5603 <para role="glossdeffirst">
5604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5605 A space-separated list (filter) of tools on the build host
5606 that should be allowed to be called from within build tasks.
5607 Using this filter helps reduce the possibility of host
5608 contamination.
5609 If a tool specified in the value of
5610 <filename>HOSTTOOLS</filename> is not found on the
5611 build host, the OpenEmbedded build system produces
5612 an error and the build is not started.
5613 </para>
5614
5615 <para>
5616 For additional information, see
5617 <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>.
5618 </para>
5619 </glossdef>
5620 </glossentry>
5621
5622 <glossentry id='var-HOSTTOOLS_NONFATAL'><glossterm>HOSTTOOLS_NONFATAL</glossterm>
5623 <info>
5624 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."
5625 </info>
5626 <glossdef>
5627 <para role="glossdeffirst">
5628<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5629 A space-separated list (filter) of tools on the build host
5630 that should be allowed to be called from within build tasks.
5631 Using this filter helps reduce the possibility of host
5632 contamination.
5633 Unlike
5634 <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -04005635 the OpenEmbedded build system does not produce an error
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005636 if a tool specified in the value of
5637 <filename>HOSTTOOLS_NONFATAL</filename> is not found on the
5638 build host.
5639 Thus, you can use <filename>HOSTTOOLS_NONFATAL</filename>
5640 to filter optional host tools.
5641 </para>
5642 </glossdef>
5643 </glossentry>
5644
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005645 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
5646 <info>
5647 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
5648 </info>
5649 <glossdef>
5650 <para role="glossdeffirst">
5651<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5652 Specifies the name of the vendor.
5653 <filename>HOST_VENDOR</filename> is normally the same as
Brad Bishop316dfdd2018-06-25 12:45:53 -04005654 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005655 </para>
5656 </glossdef>
5657 </glossentry>
5658
5659 </glossdiv>
5660
5661 <glossdiv id='var-glossary-i'><title>I</title>
5662
5663 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
5664 <info>
5665 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
5666 </info>
5667 <glossdef>
5668 <para role="glossdeffirst">
5669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5670 Disables or enables the <filename>icecc</filename>
5671 (Icecream) function.
5672 For more information on this function and best practices
5673 for using this variable, see the
5674 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
5675 section.
5676 </para>
5677
5678 <para>
5679 Setting this variable to "1" in your
5680 <filename>local.conf</filename> disables the function:
5681 <literallayout class='monospaced'>
5682 ICECC_DISABLED ??= "1"
5683 </literallayout>
5684 To enable the function, set the variable as follows:
5685 <literallayout class='monospaced'>
5686 ICECC_DISABLED = ""
5687 </literallayout>
5688 </para>
5689 </glossdef>
5690 </glossentry>
5691
5692 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
5693 <info>
5694 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
5695 </info>
5696 <glossdef>
5697 <para role="glossdeffirst">
5698<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5699 Points to the <filename>icecc-create-env</filename> script
5700 that you provide.
5701 This variable is used by the
5702 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5703 class.
5704 You set this variable in your
5705 <filename>local.conf</filename> file.
5706 </para>
5707
5708 <para>
5709 If you do not point to a script that you provide, the
5710 OpenEmbedded build system uses the default script provided
5711 by the <filename>icecc-create-env.bb</filename> recipe,
5712 which is a modified version and not the one that comes with
5713 <filename>icecc</filename>.
5714 </para>
5715 </glossdef>
5716 </glossentry>
5717
5718 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
5719 <info>
5720 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
5721 </info>
5722 <glossdef>
5723 <para role="glossdeffirst">
5724<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5725 Extra options passed to the <filename>make</filename>
5726 command during the
5727 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
5728 task that specify parallel compilation.
5729 This variable usually takes the form of
5730 "-j <replaceable>x</replaceable>", where
5731 <replaceable>x</replaceable> represents the maximum
5732 number of parallel threads <filename>make</filename> can
5733 run.
5734 <note>
5735 The options passed affect builds on all enabled
5736 machines on the network, which are machines running the
5737 <filename>iceccd</filename> daemon.
5738 </note>
5739 </para>
5740
5741 <para>
5742 If your enabled machines support multiple cores,
5743 coming up with the maximum number of parallel threads
5744 that gives you the best performance could take some
5745 experimentation since machine speed, network lag,
5746 available memory, and existing machine loads can all
5747 affect build time.
5748 Consequently, unlike the
5749 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5750 variable, there is no rule-of-thumb for setting
5751 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
5752 optimal performance.
5753 </para>
5754
5755 <para>
5756 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
5757 the build system does not use it (i.e. the system does
5758 not detect and assign the number of cores as is done with
5759 <filename>PARALLEL_MAKE</filename>).
5760 </para>
5761 </glossdef>
5762 </glossentry>
5763
5764 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
5765 <info>
5766 ICECC_PATH[doc] = "The location of the icecc binary."
5767 </info>
5768 <glossdef>
5769 <para role="glossdeffirst">
5770<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5771 The location of the <filename>icecc</filename> binary.
5772 You can set this variable in your
5773 <filename>local.conf</filename> file.
5774 If your <filename>local.conf</filename> file does not define
5775 this variable, the
5776 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5777 class attempts to define it by locating
5778 <filename>icecc</filename> using <filename>which</filename>.
5779 </para>
5780 </glossdef>
5781 </glossentry>
5782
5783 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
5784 <info>
5785 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
5786 </info>
5787 <glossdef>
5788 <para role="glossdeffirst">
5789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5790 Identifies user classes that you do not want the
5791 Icecream distributed compile support to consider.
5792 This variable is used by the
5793 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5794 class.
5795 You set this variable in your
5796 <filename>local.conf</filename> file.
5797 </para>
5798
5799 <para>
5800 When you list classes using this variable, you are
5801 "blacklisting" them from distributed compilation across
5802 remote hosts.
5803 Any classes you list will be distributed and compiled
5804 locally.
5805 </para>
5806 </glossdef>
5807 </glossentry>
5808
5809 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5810 <info>
5811 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5812 </info>
5813 <glossdef>
5814 <para role="glossdeffirst">
5815<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5816 Identifies user recipes that you do not want the
5817 Icecream distributed compile support to consider.
5818 This variable is used by the
5819 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5820 class.
5821 You set this variable in your
5822 <filename>local.conf</filename> file.
5823 </para>
5824
5825 <para>
5826 When you list packages using this variable, you are
5827 "blacklisting" them from distributed compilation across
5828 remote hosts.
5829 Any packages you list will be distributed and compiled
5830 locally.
5831 </para>
5832 </glossdef>
5833 </glossentry>
5834
5835 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5836 <info>
5837 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."
5838 </info>
5839 <glossdef>
5840 <para role="glossdeffirst">
5841<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5842 Identifies user recipes that use an empty
5843 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5844 variable that you want to force remote distributed
5845 compilation on using the Icecream distributed compile
5846 support.
5847 This variable is used by the
5848 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5849 class.
5850 You set this variable in your
5851 <filename>local.conf</filename> file.
5852 </para>
5853 </glossdef>
5854 </glossentry>
5855
5856 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5857 <info>
5858 IMAGE_BASENAME[doc] = "The base name of image output files."
5859 </info>
5860 <glossdef>
5861 <para role="glossdeffirst">
5862<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5863 The base name of image output files.
5864 This variable defaults to the recipe name
5865 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5866 </para>
5867 </glossdef>
5868 </glossentry>
5869
5870 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5871 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005872 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 -05005873 </info>
5874 <glossdef>
5875 <para role="glossdeffirst">
5876<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5877 A space-separated list of files installed into the
Brad Bishop316dfdd2018-06-25 12:45:53 -04005878 boot partition when preparing an image using the Wic tool
5879 with the <filename>bootimg-partition</filename> source
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005880 plugin.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005881 By default, the files are installed under the same name as
5882 the source files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005883 To change the installed name, separate it from the
5884 original name with a semi-colon (;).
5885 Source files need to be located in
5886 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5887 Here are two examples:
5888
5889 <literallayout class="monospaced">
5890 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5891 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5892 </literallayout>
5893 </para>
5894
5895 <para>
5896 Alternatively, source files can be picked up using
5897 a glob pattern.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005898 In this case, the destination file must have the same name
5899 as the base name of the source file path.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005900 To install files into a directory within the
5901 target location, pass its name after a semi-colon
5902 (;).
5903 Here are two examples:
5904 <literallayout class="monospaced">
5905 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5906 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5907 </literallayout>
5908 The first example installs all files from
5909 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5910 into the root of the target partition.
5911 The second example installs the same files into a
5912 <filename>boot</filename> directory within the
5913 target partition.
5914 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005915
5916 <para>
5917 You can find information on how to use the Wic tool in the
5918 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
5919 section of the Yocto Project Development Tasks Manual.
5920 Reference material for Wic is located in the
5921 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-kickstart'>OpenEmbedded Kickstart (.wks) Reference</ulink>"
5922 chapter.
5923 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005924 </glossdef>
5925 </glossentry>
5926
5927 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5928 <info>
5929 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5930 </info>
5931 <glossdef>
5932 <para role="glossdeffirst">
5933<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5934 A list of classes that all images should inherit.
5935 You typically use this variable to specify the list of
5936 classes that register the different types of images
5937 the OpenEmbedded build system creates.
5938 </para>
5939
5940 <para>
5941 The default value for <filename>IMAGE_CLASSES</filename> is
5942 <filename>image_types</filename>.
5943 You can set this variable in your
5944 <filename>local.conf</filename> or in a distribution
5945 configuration file.
5946 </para>
5947
5948 <para>
5949 For more information, see
5950 <filename>meta/classes/image_types.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005951 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005952 </para>
5953 </glossdef>
5954 </glossentry>
5955
5956 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5957 <info>
5958 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)."
5959 </info>
5960 <glossdef>
5961 <para role="glossdeffirst">
5962<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5963 Specifies the command to create the image file for a
5964 specific image type, which corresponds to the value set
5965 set in
5966 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5967 (e.g. <filename>ext3</filename>,
5968 <filename>btrfs</filename>, and so forth).
5969 When setting this variable, you should use
5970 an override for the associated type.
5971 Here is an example:
5972 <literallayout class='monospaced'>
5973 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5974 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5975 ${EXTRA_IMAGECMD}"
5976 </literallayout>
5977 </para>
5978
5979 <para>
5980 You typically do not need to set this variable unless
5981 you are adding support for a new image type.
5982 For more examples on how to set this variable, see the
5983 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5984 class file, which is
5985 <filename>meta/classes/image_types.bbclass</filename>.
5986 </para>
5987 </glossdef>
5988 </glossentry>
5989
5990 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5991 <info>
5992 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."
5993 </info>
5994 <glossdef>
5995 <para role="glossdeffirst">
5996<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5997 Specifies one or more files that contain custom device
5998 tables that are passed to the
5999 <filename>makedevs</filename> command as part of creating
6000 an image.
6001 These files list basic device nodes that should be
6002 created under <filename>/dev</filename> within the image.
6003 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
6004 <filename>files/device_table-minimal.txt</filename> is
6005 used, which is located by
6006 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
6007 For details on how you should write device table files,
6008 see <filename>meta/files/device_table-minimal.txt</filename>
6009 as an example.
6010 </para>
6011 </glossdef>
6012 </glossentry>
6013
6014 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
6015 <info>
6016 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
6017 </info>
6018 <glossdef>
6019 <para role="glossdeffirst">
6020<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6021 The primary list of features to include in an image.
6022 Typically, you configure this variable in an image recipe.
6023 Although you can use this variable from your
6024 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006025 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006026 best practices dictate that you do not.
6027 <note>
6028 To enable extra features from outside the image recipe,
6029 use the
6030 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
6031 </note>
6032 </para>
6033
6034 <para>
6035 For a list of image features that ships with the Yocto
6036 Project, see the
6037 "<link linkend="ref-features-image">Image Features</link>"
6038 section.
6039 </para>
6040
6041 <para>
6042 For an example that shows how to customize your image by
6043 using this variable, see the
6044 "<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 -05006045 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006046 </para>
6047 </glossdef>
6048 </glossentry>
6049
6050 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
6051 <info>
6052 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
6053 </info>
6054 <glossdef>
6055 <para role="glossdeffirst">
6056<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6057 Specifies the formats the OpenEmbedded build system uses
6058 during the build when creating the root filesystem.
6059 For example, setting <filename>IMAGE_FSTYPES</filename>
6060 as follows causes the build system to create root
6061 filesystems using two formats: <filename>.ext3</filename>
6062 and <filename>.tar.bz2</filename>:
6063 <literallayout class='monospaced'>
6064 IMAGE_FSTYPES = "ext3 tar.bz2"
6065 </literallayout>
6066 </para>
6067
6068 <para>
6069 For the complete list of supported image formats from which
6070 you can choose, see
6071 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
6072 </para>
6073
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006074 <note><title>Notes</title>
6075 <itemizedlist>
6076 <listitem><para>
Brad Bishop19323692019-04-05 15:28:33 -04006077 If an image recipe uses the "inherit image" line
6078 and you are setting
6079 <filename>IMAGE_FSTYPES</filename> inside the
6080 recipe, you must set
6081 <filename>IMAGE_FSTYPES</filename> prior to
6082 using the "inherit image" line.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006083 </para></listitem>
6084 <listitem><para>
6085 Due to the way the OpenEmbedded build system
6086 processes this variable, you cannot update its
6087 contents by using <filename>_append</filename> or
6088 <filename>_prepend</filename>.
6089 You must use the <filename>+=</filename>
6090 operator to add one or more options to the
6091 <filename>IMAGE_FSTYPES</filename> variable.
6092 </para></listitem>
6093 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006094 </note>
6095 </glossdef>
6096 </glossentry>
6097
6098 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
6099 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006100 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 -05006101 </info>
6102 <glossdef>
6103 <para role="glossdeffirst">
6104<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04006105 Used by recipes to specify the packages to install into an
6106 image through the
6107 <link linkend='ref-classes-image'><filename>image</filename></link>
6108 class.
6109 Use the <filename>IMAGE_INSTALL</filename> variable with
6110 care to avoid ordering issues.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006111 </para>
6112
6113 <para>
6114 Image recipes set <filename>IMAGE_INSTALL</filename>
6115 to specify the packages to install into an image through
6116 <filename>image.bbclass</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04006117 Additionally, "helper" classes such as the
6118 <link linkend='ref-classes-core-image'><filename>core-image</filename></link>
6119 class exist that can take lists used with
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006120 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006121 and turn them into auto-generated entries in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006122 <filename>IMAGE_INSTALL</filename> in addition to its
6123 default contents.
6124 </para>
6125
6126 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006127 When you use this variable, it is best to use it as follows:
6128 <literallayout class='monospaced'>
6129 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
6130 </literallayout>
6131 Be sure to include the space between the quotation character
6132 and the start of the package name or names.
Brad Bishop316dfdd2018-06-25 12:45:53 -04006133 <note><title>Caution</title>
6134 <itemizedlist>
6135 <listitem><para>
6136 When working with a
6137 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
6138 image, do not use the
6139 <filename>IMAGE_INSTALL</filename> variable to
6140 specify packages for installation.
6141 Instead, use the
6142 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
6143 variable, which allows the initial RAM
6144 filesystem (initramfs) recipe to use a fixed
6145 set of packages and not be affected by
6146 <filename>IMAGE_INSTALL</filename>.
6147 For information on creating an initramfs, see
6148 the
6149 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
6150 section in the Yocto Project Development Tasks
6151 Manual.
6152 </para></listitem>
6153 <listitem><para>
6154 Using <filename>IMAGE_INSTALL</filename> with
6155 the
6156 <ulink url='&YOCTO_DOCS_BB_URL;#appending-and-prepending'><filename>+=</filename></ulink>
6157 BitBake operator within the
6158 <filename>/conf/local.conf</filename> file or
6159 from within an image recipe is not recommended.
6160 Use of this operator in these ways can cause
6161 ordering issues.
6162 Since <filename>core-image.bbclass</filename>
6163 sets <filename>IMAGE_INSTALL</filename> to a
6164 default value using the
6165 <ulink url='&YOCTO_DOCS_BB_URL;#setting-a-default-value'><filename>?=</filename></ulink>
6166 operator, using a <filename>+=</filename>
6167 operation against
6168 <filename>IMAGE_INSTALL</filename> results in
6169 unexpected behavior when used within
6170 <filename>conf/local.conf</filename>.
6171 Furthermore, the same operation from within
6172 an image recipe may or may not succeed
6173 depending on the specific situation.
6174 In both these cases, the behavior is contrary
6175 to how most users expect the
6176 <filename>+=</filename> operator to work.
6177 </para></listitem>
6178 </itemizedlist>
6179 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006180 </para>
6181 </glossdef>
6182 </glossentry>
6183
6184 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
6185 <info>
6186 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
6187 </info>
6188 <glossdef>
6189 <para role="glossdeffirst">
6190<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6191 Specifies the list of locales to install into the image
6192 during the root filesystem construction process.
6193 The OpenEmbedded build system automatically splits locale
6194 files, which are used for localization, into separate
6195 packages.
6196 Setting the <filename>IMAGE_LINGUAS</filename> variable
6197 ensures that any locale packages that correspond to packages
6198 already selected for installation into the image are also
6199 installed.
6200 Here is an example:
6201 <literallayout class='monospaced'>
6202 IMAGE_LINGUAS = "pt-br de-de"
6203 </literallayout>
6204 </para>
6205
6206 <para>
6207 In this example, the build system ensures any Brazilian
6208 Portuguese and German locale files that correspond to
6209 packages in the image are installed (i.e.
6210 <filename>*-locale-pt-br</filename>
6211 and <filename>*-locale-de-de</filename> as well as
6212 <filename>*-locale-pt</filename>
6213 and <filename>*-locale-de</filename>, since some software
6214 packages only provide locale files by language and not by
6215 country-specific language).
6216 </para>
6217
6218 <para>
6219 See the
6220 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
6221 variable for information on generating GLIBC locales.
6222 </para>
6223 </glossdef>
6224 </glossentry>
6225
6226 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
6227 <info>
6228 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
6229 </info>
6230 <glossdef>
6231 <para role="glossdeffirst">
6232<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6233 The manifest file for the image.
6234 This file lists all the installed packages that make up
6235 the image.
6236 The file contains package information on a line-per-package
6237 basis as follows:
6238 <literallayout class='monospaced'>
6239 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
6240 </literallayout>
6241 </para>
6242
6243 <para>
6244 The
6245 <link linkend='ref-classes-image'><filename>image</filename></link>
6246 class defines the manifest file as follows:
6247 <literallayout class='monospaced'>
6248 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
6249 </literallayout>
6250 The location is derived using the
6251 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
6252 and
6253 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
6254 variables.
6255 You can find information on how the image
6256 is created in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006257 "<ulink url='&YOCTO_DOCS_OM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
6258 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006259 </para>
6260 </glossdef>
6261 </glossentry>
6262
6263 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
6264 <info>
6265 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
6266 </info>
6267 <glossdef>
6268 <para role="glossdeffirst">
6269<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6270 The name of the output image files minus the extension.
6271 This variable is derived using the
6272 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
6273 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6274 and
6275 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6276 variables:
6277 <literallayout class='monospaced'>
6278 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
6279 </literallayout>
6280 </para>
6281 </glossdef>
6282 </glossentry>
6283
6284 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
6285 <info>
6286 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."
6287 </info>
6288 <glossdef>
6289 <para role="glossdeffirst">
6290<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6291 Defines a multiplier that the build system applies to the initial image
6292 size for cases when the multiplier times the returned disk usage value
6293 for the image is greater than the sum of
6294 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6295 and
6296 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
6297 The result of the multiplier applied to the initial image size creates
6298 free disk space in the image as overhead.
6299 By default, the build process uses a multiplier of 1.3 for this variable.
6300 This default value results in 30% free disk space added to the image when this
6301 method is used to determine the final generated image size.
6302 You should be aware that post install scripts and the package management
6303 system uses disk space inside this overhead area.
6304 Consequently, the multiplier does not produce an image with
6305 all the theoretical free disk space.
6306 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6307 for information on how the build system determines the overall image size.
6308 </para>
6309
6310 <para>
6311 The default 30% free disk space typically gives the image enough room to boot
6312 and allows for basic post installs while still leaving a small amount of
6313 free disk space.
6314 If 30% free space is inadequate, you can increase the default value.
6315 For example, the following setting gives you 50% free space added to the image:
6316 <literallayout class='monospaced'>
6317 IMAGE_OVERHEAD_FACTOR = "1.5"
6318 </literallayout>
6319 </para>
6320
6321 <para>
6322 Alternatively, you can ensure a specific amount of free disk space is added
6323 to the image by using the
6324 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6325 variable.
6326 </para>
6327 </glossdef>
6328 </glossentry>
6329
6330 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
6331 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006332 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 -05006333 </info>
6334 <glossdef>
6335 <para role="glossdeffirst">
6336<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04006337 Defines the package type (i.e. DEB, RPM, IPK, or TAR) used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006338 by the OpenEmbedded build system.
6339 The variable is defined appropriately by the
6340 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
6341 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
6342 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
6343 or
6344 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
6345 class.
6346 <note><title>Warning</title>
6347 The <filename>package_tar</filename> class is broken
6348 and is not supported.
6349 It is recommended that you do not use it.
6350 </note>
6351 </para>
6352
6353 <para>
6354 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006355 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006356 and
6357 <link linkend='ref-classes-image'><filename>image</filename></link>
6358 classes use the <filename>IMAGE_PKGTYPE</filename> for
6359 packaging up images and SDKs.
6360 </para>
6361
6362 <para>
6363 You should not set the <filename>IMAGE_PKGTYPE</filename>
6364 manually.
6365 Rather, the variable is set indirectly through the
6366 appropriate
6367 <link linkend='ref-classes-package'><filename>package_*</filename></link>
6368 class using the
6369 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
6370 variable.
6371 The OpenEmbedded build system uses the first package type
6372 (e.g. DEB, RPM, or IPK) that appears with the variable
6373 <note>
6374 Files using the <filename>.tar</filename> format are
6375 never used as a substitute packaging format for DEB,
6376 RPM, and IPK formatted files for your image or SDK.
6377 </note>
6378 </para>
6379 </glossdef>
6380 </glossentry>
6381
6382 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
6383 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006384 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 -05006385 </info>
6386 <glossdef>
6387 <para role="glossdeffirst">
6388<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6389 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006390 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006391 output files.
6392 You can specify functions separated by semicolons:
6393 <literallayout class='monospaced'>
6394 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6395 </literallayout>
6396 </para>
6397
6398 <para>
6399 If you need to pass the root filesystem path to a command
6400 within the function, you can use
6401 <filename>${IMAGE_ROOTFS}</filename>, which points to
6402 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006403 See the
6404 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6405 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006406 </para>
6407 </glossdef>
6408 </glossentry>
6409
6410 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
6411 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006412 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 -05006413 </info>
6414 <glossdef>
6415 <para role="glossdeffirst">
6416<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6417 Specifies a list of functions to call before the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006418 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006419 output files.
6420 You can specify functions separated by semicolons:
6421 <literallayout class='monospaced'>
6422 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6423 </literallayout>
6424 </para>
6425
6426 <para>
6427 If you need to pass the root filesystem path to a command
6428 within the function, you can use
6429 <filename>${IMAGE_ROOTFS}</filename>, which points to
6430 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006431 See the
6432 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6433 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006434 </para>
6435 </glossdef>
6436 </glossentry>
6437
6438 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
6439 <info>
6440 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
6441 </info>
6442 <glossdef>
6443 <para role="glossdeffirst">
6444<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6445 The location of the root filesystem while it is under
6446 construction (i.e. during the
6447 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
6448 task).
6449 This variable is not configurable.
6450 Do not change it.
6451 </para>
6452 </glossdef>
6453 </glossentry>
6454
6455 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
6456 <info>
6457 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
6458 </info>
6459 <glossdef>
6460 <para role="glossdeffirst">
6461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6462 Specifies the alignment for the output image file in
6463 Kbytes.
6464 If the size of the image is not a multiple of
6465 this value, then the size is rounded up to the nearest
6466 multiple of the value.
6467 The default value is "1".
6468 See
6469 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
6470 for additional information.
6471 </para>
6472 </glossdef>
6473 </glossentry>
6474
6475 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
6476 <info>
6477 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
6478 </info>
6479 <glossdef>
6480 <para role="glossdeffirst">
6481<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6482 Defines additional free disk space created in the image in Kbytes.
6483 By default, this variable is set to "0".
6484 This free disk space is added to the image after the build system determines
6485 the image size as described in
6486 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
6487 </para>
6488
6489 <para>
6490 This variable is particularly useful when you want to ensure that a
6491 specific amount of free disk space is available on a device after an image
6492 is installed and running.
6493 For example, to be sure 5 Gbytes of free disk space is available, set the
6494 variable as follows:
6495 <literallayout class='monospaced'>
6496 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
6497 </literallayout>
6498 </para>
6499
6500 <para>
6501 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
6502 of extra space with the line:
6503 <literallayout class='monospaced'>
6504 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
6505 </literallayout>
6506 </para>
6507 </glossdef>
6508 </glossentry>
6509
6510 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
6511 <info>
6512 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
6513 </info>
6514 <glossdef>
6515 <para role="glossdeffirst">
6516<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6517 Defines the size in Kbytes for the generated image.
6518 The OpenEmbedded build system determines the final size for the generated
6519 image using an algorithm that takes into account the initial disk space used
6520 for the generated image, a requested size for the image, and requested
6521 additional free disk space to be added to the image.
6522 Programatically, the build system determines the final size of the
6523 generated image as follows:
6524 <literallayout class='monospaced'>
6525 if (image-du * overhead) &lt; rootfs-size:
6526 internal-rootfs-size = rootfs-size + xspace
6527 else:
6528 internal-rootfs-size = (image-du * overhead) + xspace
6529
6530 where:
6531
6532 image-du = Returned value of the du command on
6533 the image.
6534
6535 overhead = IMAGE_OVERHEAD_FACTOR
6536
6537 rootfs-size = IMAGE_ROOTFS_SIZE
6538
6539 internal-rootfs-size = Initial root filesystem
6540 size before any modifications.
6541
6542 xspace = IMAGE_ROOTFS_EXTRA_SPACE
6543 </literallayout>
6544 </para>
6545
6546 <para>
6547 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
6548 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
6549 variables for related information.
6550<!-- In the above example, <filename>overhead</filename> is defined by the
6551 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
6552 variable, <filename>xspace</filename> is defined by the
6553 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6554 variable, and <filename>du</filename> is the results of the disk usage command
6555 on the initially generated image. -->
6556 </para>
6557 </glossdef>
6558 </glossentry>
6559
6560 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
6561 <info>
6562 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
6563 </info>
6564 <glossdef>
6565 <para role="glossdeffirst">
6566<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6567 Specifies a dependency from one image type on another.
6568 Here is an example from the
6569 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6570 class:
6571 <literallayout class='monospaced'>
6572 IMAGE_TYPEDEP_live = "ext3"
6573 </literallayout>
6574 </para>
6575
6576 <para>
6577 In the previous example, the variable ensures that when
6578 "live" is listed with the
6579 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6580 variable, the OpenEmbedded build system produces an
6581 <filename>ext3</filename> image first since one of the
6582 components of the live
6583 image is an <filename>ext3</filename>
6584 formatted partition containing the root
6585 filesystem.
6586 </para>
6587 </glossdef>
6588 </glossentry>
6589
6590 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
6591 <info>
6592 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
6593 </info>
6594 <glossdef>
6595 <para role="glossdeffirst">
6596<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6597 Specifies the complete list of supported image types
6598 by default:
6599 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006600 btrfs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006601 cpio
6602 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006603 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006604 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006605 cpio.xz
6606 cramfs
6607 elf
6608 ext2
6609 ext2.bz2
6610 ext2.gz
6611 ext2.lzma
6612 ext3
6613 ext3.gz
6614 ext4
6615 ext4.gz
6616 hdddirect
6617 hddimg
6618 iso
6619 jffs2
6620 jffs2.sum
6621 multiubi
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006622 squashfs
6623 squashfs-lzo
6624 squashfs-xz
6625 tar
6626 tar.bz2
6627 tar.gz
6628 tar.lz4
6629 tar.xz
6630 ubi
6631 ubifs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006632 wic
6633 wic.bz2
6634 wic.gz
6635 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006636 </literallayout>
6637 </para>
6638
6639 <para>
6640 For more information about these types of images, see
6641 <filename>meta/classes/image_types*.bbclass</filename>
6642 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006643 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006644 </para>
6645 </glossdef>
6646 </glossentry>
6647
6648 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
6649 <info>
6650 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
6651 </info>
6652 <glossdef>
6653 <para role="glossdeffirst">
6654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6655 Helps define the recipe revision for recipes that share
6656 a common <filename>include</filename> file.
6657 You can think of this variable as part of the recipe revision
6658 as set from within an include file.
6659 </para>
6660
6661 <para>
6662 Suppose, for example, you have a set of recipes that
6663 are used across several projects.
6664 And, within each of those recipes the revision
6665 (its <link linkend='var-PR'><filename>PR</filename></link>
6666 value) is set accordingly.
6667 In this case, when the revision of those recipes changes,
6668 the burden is on you to find all those recipes and
6669 be sure that they get changed to reflect the updated
6670 version of the recipe.
6671 In this scenario, it can get complicated when recipes
6672 that are used in many places and provide common functionality
6673 are upgraded to a new revision.
6674 </para>
6675
6676 <para>
6677 A more efficient way of dealing with this situation is
6678 to set the <filename>INC_PR</filename> variable inside
6679 the <filename>include</filename> files that the recipes
6680 share and then expand the <filename>INC_PR</filename>
6681 variable within the recipes to help
6682 define the recipe revision.
6683 </para>
6684
6685 <para>
6686 The following provides an example that shows how to use
6687 the <filename>INC_PR</filename> variable
6688 given a common <filename>include</filename> file that
6689 defines the variable.
6690 Once the variable is defined in the
6691 <filename>include</filename> file, you can use the
6692 variable to set the <filename>PR</filename> values in
6693 each recipe.
6694 You will notice that when you set a recipe's
6695 <filename>PR</filename> you can provide more granular
6696 revisioning by appending values to the
6697 <filename>INC_PR</filename> variable:
6698 <literallayout class='monospaced'>
Brad Bishopb1114e52019-02-13 07:56:10 -05006699 recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
6700 recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
6701 recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
6702 recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006703 </literallayout>
6704 The first line of the example establishes the baseline
6705 revision to be used for all recipes that use the
6706 <filename>include</filename> file.
6707 The remaining lines in the example are from individual
6708 recipes and show how the <filename>PR</filename> value
6709 is set.
6710 </para>
6711 </glossdef>
6712 </glossentry>
6713
6714 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
6715 <info>
6716 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
6717 </info>
6718 <glossdef>
6719 <para role="glossdeffirst">
6720<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6721 Specifies a space-separated list of license names
6722 (as they would appear in
6723 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
6724 that should be excluded from the build.
6725 Recipes that provide no alternatives to listed incompatible
6726 licenses are not built.
6727 Packages that are individually licensed with the specified
6728 incompatible licenses will be deleted.
6729 </para>
6730
6731 <note>
6732 This functionality is only regularly tested using
6733 the following setting:
6734 <literallayout class='monospaced'>
6735 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
6736 </literallayout>
6737 Although you can use other settings, you might be required
6738 to remove dependencies on or provide alternatives to
6739 components that are required to produce a functional system
6740 image.
6741 </note>
6742 </glossdef>
6743 </glossentry>
6744
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006745 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
6746 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006747 INHERIT[doc] = "Causes the named class or classes to be inherited globally."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006748 </info>
6749 <glossdef>
6750 <para role="glossdeffirst">
6751<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006752 Causes the named class or classes to be inherited globally.
6753 Anonymous functions in the class or classes
6754 are not executed for the
6755 base configuration and in each individual recipe.
6756 The OpenEmbedded build system ignores changes to
6757 <filename>INHERIT</filename> in individual recipes.
6758 </para>
6759
6760 <para>
6761 For more information on <filename>INHERIT</filename>, see
6762 the
6763 "<ulink url="&YOCTO_DOCS_BB_URL;#inherit-configuration-directive"><filename>INHERIT</filename> Configuration Directive</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04006764 section in the Bitbake User Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006765 </para>
6766 </glossdef>
6767 </glossentry>
6768
6769 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
6770 <info>
6771 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6772 </info>
6773 <glossdef>
6774 <para role="glossdeffirst">
6775<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6776 Lists classes that will be inherited at the
6777 distribution level.
6778 It is unlikely that you want to edit this variable.
6779 </para>
6780
6781 <para>
6782 The default value of the variable is set as follows in the
6783 <filename>meta/conf/distro/defaultsetup.conf</filename>
6784 file:
6785 <literallayout class='monospaced'>
6786 INHERIT_DISTRO ?= "debian devshell sstate license"
6787 </literallayout>
6788 </para>
6789 </glossdef>
6790 </glossentry>
6791
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006792 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
6793 <info>
6794 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
6795 </info>
6796 <glossdef>
6797 <para role="glossdeffirst">
6798<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6799 Prevents the default dependencies, namely the C compiler
6800 and standard C library (libc), from being added to
6801 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
6802 This variable is usually used within recipes that do not
6803 require any compilation using the C compiler.
6804 </para>
6805
6806 <para>
6807 Set the variable to "1" to prevent the default dependencies
6808 from being added.
6809 </para>
6810 </glossdef>
6811 </glossentry>
6812
6813 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
6814 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006815 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 -05006816 </info>
6817 <glossdef>
6818 <para role="glossdeffirst">
6819<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6820 Prevents the OpenEmbedded build system from splitting
6821 out debug information during packaging.
6822 By default, the build system splits out debugging
6823 information during the
6824 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
6825 task.
6826 For more information on how debug information is split out,
6827 see the
6828 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
6829 variable.
6830 </para>
6831
6832 <para>
6833 To prevent the build system from splitting out
6834 debug information during packaging, set the
6835 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
6836 as follows:
6837 <literallayout class='monospaced'>
6838 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6839 </literallayout>
6840 </para>
6841 </glossdef>
6842 </glossentry>
6843
6844 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
6845 <info>
6846 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
6847 </info>
6848 <glossdef>
6849 <para role="glossdeffirst">
6850<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006851 If set to "1", causes the build to not strip binaries in
6852 resulting packages and prevents the
6853 <filename>-dbg</filename> package from containing the
6854 source files.
6855 </para>
6856
6857 <para>
6858 By default, the OpenEmbedded build system strips
6859 binaries and puts the debugging symbols into
6860 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
6861 Consequently, you should not set
6862 <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
6863 to debug in general.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006864 </para>
6865 </glossdef>
6866 </glossentry>
6867
Brad Bishop19323692019-04-05 15:28:33 -04006868 <glossentry id='var-INHIBIT_SYSROOT_STRIP'><glossterm>INHIBIT_SYSROOT_STRIP</glossterm>
6869 <info>
6870 INHIBIT_SYSROOT_STRIP[doc] = "If set to "1", causes the build to not strip binaries in the resulting sysroot."
6871 </info>
6872 <glossdef>
6873 <para role="glossdeffirst">
6874<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6875 If set to "1", causes the build to not strip binaries in
6876 the resulting sysroot.
6877 </para>
6878
6879 <para>
6880 By default, the OpenEmbedded build system strips
6881 binaries in the resulting sysroot.
6882 When you specifically set the
6883 <filename>INHIBIT_SYSROOT_STRIP</filename> variable to
6884 "1" in your recipe, you inhibit this stripping.
6885 </para>
6886
6887 <para>
6888 If you want to use this variable, include the
6889 <link linkend='ref-classes-staging'><filename>staging</filename></link>
6890 class.
6891 This class uses a <filename>sys_strip()</filename>
6892 function to test for the variable and acts accordingly.
6893 <note>
6894 Use of the <filename>INHIBIT_SYSROOT_STRIP</filename>
6895 variable occurs in rare and special circumstances.
6896 For example, suppose you are building bare-metal
6897 firmware by using an external GCC toolchain.
6898 Furthermore, even if the toolchain's binaries are
6899 strippable, other files exist that are needed for the
6900 build that are not strippable.
6901 </note>
6902 </para>
6903 </glossdef>
6904 </glossentry>
6905
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006906 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6907 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006908 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 -05006909 </info>
6910 <glossdef>
6911 <para role="glossdeffirst">
6912<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6913 Defines the format for the output image of an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006914 RAM filesystem (initramfs), which is used during boot.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006915 Supported formats are the same as those supported by the
6916 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6917 variable.
6918 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006919
6920 <para>
6921 The default value of this variable, which is set in the
6922 <filename>meta/conf/bitbake.conf</filename> configuration
6923 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006924 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006925 is "cpio.gz".
6926 The Linux kernel's initramfs mechanism, as opposed to the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006927 initial RAM filesystem
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006928 <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
6929 mechanism, expects an optionally compressed cpio
6930 archive.
6931 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006932 </glossdef>
6933 </glossentry>
6934
6935 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6936 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006937 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 -05006938 </info>
6939 <glossdef>
6940 <para role="glossdeffirst">
6941<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006942 Specifies the
6943 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
6944 name of an image recipe that is used to build an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006945 RAM filesystem (initramfs) image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006946 In other words, the <filename>INITRAMFS_IMAGE</filename>
6947 variable causes an additional recipe to be built as
6948 a dependency to whatever root filesystem recipe you
6949 might be using (e.g. <filename>core-image-sato</filename>).
6950 The initramfs image recipe you provide should set
6951 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6952 to
6953 <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
6954 </para>
6955
6956 <para>
6957 An initramfs image provides a temporary root filesystem
6958 used for early system initialization (e.g. loading of
6959 modules needed to locate and mount the "real" root
6960 filesystem).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006961 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006962 See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
6963 recipe in the
6964 <link linkend='source-directory'>Source Directory</link>
6965 for an example initramfs recipe.
6966 To select this sample recipe as the one built
6967 to provide the initramfs image,
6968 set <filename>INITRAMFS_IMAGE</filename> to
6969 "core-image-minimal-initramfs".
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006970 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006971 </para>
6972
6973 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006974 You can also find more information by referencing the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006975 <filename>meta-poky/conf/local.conf.sample.extended</filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006976 configuration file in the Source Directory,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006977 the
6978 <link linkend='ref-classes-image'><filename>image</filename></link>
6979 class, and the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006980 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006981 class to see how to use the
6982 <filename>INITRAMFS_IMAGE</filename> variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006983 </para>
6984
6985 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006986 If <filename>INITRAMFS_IMAGE</filename> is empty, which is
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006987 the default, then no initramfs image is built.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006988 </para>
6989
6990 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006991 For more information, you can also see the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006992 <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
6993 variable, which allows the generated image to be bundled
6994 inside the kernel image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006995 Additionally, for information on creating an initramfs
6996 image, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006997 "<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 -05006998 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006999 </para>
7000 </glossdef>
7001 </glossentry>
7002
7003 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
7004 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007005 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 -05007006 </info>
7007 <glossdef>
7008 <para role="glossdeffirst">
7009<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7010 Controls whether or not the image recipe specified by
7011 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007012 is run through an extra pass
7013 (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
7014 during kernel compilation in order to build a single binary
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007015 that contains both the kernel image and the initial RAM
7016 filesystem (initramfs) image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007017 This makes use of the
7018 <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
7019 kernel feature.
7020 <note>
7021 Using an extra compilation pass to bundle the initramfs
7022 avoids a circular dependency between the kernel recipe and
7023 the initramfs recipe should the initramfs include kernel
7024 modules.
7025 Should that be the case, the initramfs recipe depends on
7026 the kernel for the kernel modules, and the kernel depends
7027 on the initramfs recipe since the initramfs is bundled
7028 inside the kernel image.
7029 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007030 </para>
7031
7032 <para>
7033 The combined binary is deposited into the
7034 <filename>tmp/deploy</filename> directory, which is part
7035 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007036 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007037 </para>
7038
7039 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007040 Setting the variable to "1" in a configuration file causes the
7041 OpenEmbedded build system to generate a kernel image with the
Brad Bishop316dfdd2018-06-25 12:45:53 -04007042 initramfs specified in <filename>INITRAMFS_IMAGE</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007043 bundled within:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007044 <literallayout class='monospaced'>
7045 INITRAMFS_IMAGE_BUNDLE = "1"
7046 </literallayout>
7047 By default, the
7048 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7049 class sets this variable to a null string as follows:
7050 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007051 INITRAMFS_IMAGE_BUNDLE ?= ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007052 </literallayout>
7053 <note>
7054 You must set the
7055 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
7056 a configuration file.
7057 You cannot set the variable in a recipe file.
7058 </note>
7059 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007060 <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 -05007061 file for additional information.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007062 Also, for information on creating an initramfs, see the
7063 "<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 -05007064 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007065 </para>
7066 </glossdef>
7067 </glossentry>
7068
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007069 <glossentry id='var-INITRAMFS_LINK_NAME'><glossterm>INITRAMFS_LINK_NAME</glossterm>
7070 <info>
7071 INITRAMFS_LINK_NAME[doc] = "The link name of the initial RAM filesystem image."
7072 </info>
7073 <glossdef>
7074 <para role="glossdeffirst">
7075<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7076 The link name of the initial RAM filesystem image.
7077 This variable is set in the
7078 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7079 file as follows:
7080 <literallayout class='monospaced'>
7081 INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}"
7082 </literallayout>
7083 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7084 variable, which is set in the same file, has the following
7085 value:
7086 <literallayout class='monospaced'>
7087 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7088 </literallayout>
7089 </para>
7090
7091 <para>
7092 See the
7093 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7094 variable for additional information.
7095 </para>
7096 </glossdef>
7097 </glossentry>
7098
7099 <glossentry id='var-INITRAMFS_NAME'><glossterm>INITRAMFS_NAME</glossterm>
7100 <info>
7101 INITRAMFS_NAME[doc] = "The base name of the initial RAM filesystem image."
7102 </info>
7103 <glossdef>
7104 <para role="glossdeffirst">
7105<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7106 The base name of the initial RAM filesystem image.
7107 This variable is set in the
7108 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7109 file as follows:
7110 <literallayout class='monospaced'>
7111 INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
7112 </literallayout>
7113 The value of the
7114 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7115 variable, which is set in the same file, has the following
7116 value:
7117 <literallayout class='monospaced'>
7118 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7119 </literallayout>
7120 </para>
7121 </glossdef>
7122 </glossentry>
7123
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007124 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
7125 <info>
7126 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
7127 </info>
7128 <glossdef>
7129 <para role="glossdeffirst">
7130<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7131 Indicates list of filesystem images to concatenate and use
7132 as an initial RAM disk (<filename>initrd</filename>).
7133 </para>
7134
7135 <para>
7136 The <filename>INITRD</filename> variable is an optional
7137 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007138 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007139 class.
7140 </para>
7141 </glossdef>
7142 </glossentry>
7143
7144 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
7145 <info>
7146 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."
7147 </info>
7148 <glossdef>
7149 <para role="glossdeffirst">
7150<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7151 When building a "live" bootable image (i.e. when
7152 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
7153 contains "live"), <filename>INITRD_IMAGE</filename>
7154 specifies the image recipe that should be built
7155 to provide the initial RAM disk image.
7156 The default value is "core-image-minimal-initramfs".
7157 </para>
7158
7159 <para>
7160 See the
7161 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
7162 class for more information.
7163 </para>
7164 </glossdef>
7165 </glossentry>
7166
7167 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
7168 <info>
7169 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
7170 </info>
7171 <glossdef>
7172 <para role="glossdeffirst">
7173<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7174 The filename of the initialization script as installed to
7175 <filename>${sysconfdir}/init.d</filename>.
7176 </para>
7177
7178 <para>
7179 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
7180 The variable is mandatory.
7181 </para>
7182 </glossdef>
7183 </glossentry>
7184
7185 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
7186 <info>
7187 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."
7188 </info>
7189 <glossdef>
7190 <para role="glossdeffirst">
7191<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7192 A list of the packages that contain initscripts.
7193 If multiple packages are specified, you need to append the package name
7194 to the other <filename>INITSCRIPT_*</filename> as an override.
7195 </para>
7196
7197 <para>
7198 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
7199 The variable is optional and defaults to the
7200 <link linkend='var-PN'><filename>PN</filename></link> variable.
7201 </para>
7202 </glossdef>
7203 </glossentry>
7204
7205 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
7206 <info>
7207 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."
7208 </info>
7209 <glossdef>
7210 <para role="glossdeffirst">
7211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7212 Specifies the options to pass to <filename>update-rc.d</filename>.
7213 Here is an example:
7214 <literallayout class='monospaced'>
7215 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
7216 </literallayout>
7217 </para>
7218
7219 <para>
7220 In this example, the script has a runlevel of 99,
7221 starts the script in initlevels 2 and 5, and
7222 stops the script in levels 0, 1 and 6.
7223 </para>
7224
7225 <para>
7226 The variable's default value is "defaults", which is
7227 set in the
7228 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
7229 class.
7230 </para>
7231
7232 <para>
7233 The value in
7234 <filename>INITSCRIPT_PARAMS</filename> is passed through
7235 to the <filename>update-rc.d</filename> command.
7236 For more information on valid parameters, please see the
7237 <filename>update-rc.d</filename> manual page at
7238 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
7239 </para>
7240 </glossdef>
7241 </glossentry>
7242
7243 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
7244 <info>
7245 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
7246 </info>
7247 <glossdef>
7248 <para role="glossdeffirst">
7249<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7250 Specifies the QA checks to skip for a specific package
7251 within a recipe.
7252 For example, to skip the check for symbolic link
7253 <filename>.so</filename> files in the main package of a
7254 recipe, add the following to the recipe.
7255 The package name override must be used, which in this
7256 example is <filename>${PN}</filename>:
7257 <literallayout class='monospaced'>
7258 INSANE_SKIP_${PN} += "dev-so"
7259 </literallayout>
7260 </para>
7261
7262 <para>
7263 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
7264 section for a list of the valid QA checks you can
7265 specify using this variable.
7266 </para>
7267 </glossdef>
7268 </glossentry>
7269
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007270 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
7271 <info>
7272 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
7273 </info>
7274 <glossdef>
7275 <para role="glossdeffirst">
7276<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7277 By default, the <filename>tzdata</filename> recipe packages
7278 an <filename>/etc/timezone</filename> file.
7279 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
7280 variable to "0" at the configuration level to disable this
7281 behavior.
7282 </para>
7283 </glossdef>
7284 </glossentry>
7285
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007286 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
7287 <info>
7288 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
7289 </info>
7290 <glossdef>
7291 <para role="glossdeffirst">
7292<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7293 When the IPK backend is in use and package management
7294 is enabled on the target, you can use this variable to
7295 set up <filename>opkg</filename> in the target image
7296 to point to package feeds on a nominated server.
7297 Once the feed is established, you can perform
7298 installations or upgrades using the package manager
7299 at runtime.
7300 </para>
7301 </glossdef>
7302 </glossentry>
7303
7304<!--
7305 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
7306 <glossdef>
7307 <para>
7308 An environment variable that defines the directory where
7309 post installation hooks are installed for the
7310 post install environment.
7311 This variable is fixed as follows:
7312 <literallayout class='monospaced'>
7313 ${WORKDIR}/intercept_scripts
7314 </literallayout>
7315 </para>
7316
7317 <para>
7318 After installation of a target's root filesystem,
7319 post installation scripts, which are essentially bash scripts,
7320 are all executed just a single time.
7321 Limiting execution of these scripts minimizes installation
7322 time that would be lengthened due to certain packages
7323 triggering redundant operations.
7324 For example, consider the installation of font packages
7325 as a common example.
7326 Without limiting the execution of post installation scripts,
7327 all font directories would be rescanned to create the
7328 cache after each individual font package was installed.
7329 </para>
7330
7331 <para>
7332 Do not edit the <filename>INTERCEPT_DIR</filename>
7333 variable.
7334 </para>
7335 </glossdef>
7336 </glossentry>
7337-->
7338
7339 </glossdiv>
7340
7341<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
7342<!-- </glossdiv>-->
7343
7344 <glossdiv id='var-glossary-k'><title>K</title>
7345
7346 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
7347 <info>
7348 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
7349 </info>
7350 <glossdef>
7351 <para role="glossdeffirst">
7352<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7353 Defines the kernel architecture used when assembling
7354 the configuration.
7355 Architectures supported for this release are:
7356 <literallayout class='monospaced'>
7357 powerpc
7358 i386
7359 x86_64
7360 arm
7361 qemu
7362 mips
7363 </literallayout>
7364 </para>
7365
7366 <para>
7367 You define the <filename>KARCH</filename> variable in the
7368 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7369 </para>
7370 </glossdef>
7371 </glossentry>
7372
7373 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
7374 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007375 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 -05007376 </info>
7377 <glossdef>
7378 <para role="glossdeffirst">
7379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7380 A regular expression used by the build process to explicitly
7381 identify the kernel branch that is validated, patched,
7382 and configured during a build.
7383 You must set this variable to ensure the exact kernel
7384 branch you want is being used by the build process.
7385 </para>
7386
7387 <para>
7388 Values for this variable are set in the kernel's recipe
7389 file and the kernel's append file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007390 For example, if you are using the
7391 <filename>linux-yocto_4.12</filename> kernel, the kernel
7392 recipe file is the
7393 <filename>meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007394 file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007395 <filename>KBRANCH</filename> is set as follows in that
7396 kernel recipe file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007397 <literallayout class='monospaced'>
7398 KBRANCH ?= "standard/base"
7399 </literallayout>
7400 </para>
7401
7402 <para>
7403 This variable is also used from the kernel's append file
7404 to identify the kernel branch specific to a particular
7405 machine or target hardware.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007406 Continuing with the previous kernel example, the kernel's
7407 append file (i.e.
7408 <filename>linux-yocto_4.12.bbappend</filename>) is located
7409 in the BSP layer for a given machine.
7410 For example, the append file for the Beaglebone,
7411 EdgeRouter, and generic versions of both 32 and 64-bit IA
7412 machines (<filename>meta-yocto-bsp</filename>) is named
7413 <filename>meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend</filename>.
7414 Here are the related statements from that append file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007415 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007416 KBRANCH_genericx86 = "standard/base"
7417 KBRANCH_genericx86-64 = "standard/base"
7418 KBRANCH_edgerouter = "standard/edgerouter"
7419 KBRANCH_beaglebone = "standard/beaglebone"
7420 KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007421 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007422 The <filename>KBRANCH</filename> statements identify
7423 the kernel branch to use when building for each
7424 supported BSP.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007425 </para>
7426 </glossdef>
7427 </glossentry>
7428
7429 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
7430 <info>
7431 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
7432 </info>
7433 <glossdef>
7434 <para role="glossdeffirst">
7435<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7436 When used with the
7437 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
7438 class, specifies an "in-tree" kernel configuration file
7439 for use during a kernel build.
7440 </para>
7441
7442 <para>
7443 Typically, when using a <filename>defconfig</filename> to
7444 configure a kernel during a build, you place the
7445 file in your layer in the same manner as you would
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007446 place patch files and configuration fragment files (i.e.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007447 "out-of-tree").
7448 However, if you want to use a <filename>defconfig</filename>
7449 file that is part of the kernel tree (i.e. "in-tree"),
7450 you can use the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007451 <filename>KBUILD_DEFCONFIG</filename> variable and append
7452 the
7453 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
7454 variable to point to the <filename>defconfig</filename>
7455 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007456 </para>
7457
7458 <para>
7459 To use the variable, set it in the append file for your
7460 kernel recipe using the following form:
7461 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007462 KBUILD_DEFCONFIG_<replaceable>KMACHINE</replaceable> ?= <replaceable>defconfig_file</replaceable>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007463 </literallayout>
7464 Here is an example from a "raspberrypi2"
7465 <filename>KMACHINE</filename> build that uses a
7466 <filename>defconfig</filename> file named
7467 "bcm2709_defconfig":
7468 <literallayout class='monospaced'>
7469 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
7470 </literallayout>
7471 As an alternative, you can use the following within your
7472 append file:
7473 <literallayout class='monospaced'>
7474 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
7475 </literallayout>
7476 For more information on how to use the
7477 <filename>KBUILD_DEFCONFIG</filename> variable, see the
7478 "<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 -04007479 section in the Yocto Project Linux Kernel Development
7480 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007481 </para>
7482 </glossdef>
7483 </glossentry>
7484
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007485 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
7486 <info>
7487 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
7488 </info>
7489 <glossdef>
7490 <para role="glossdeffirst">
7491<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7492 Specifies an alternate kernel image type for creation in
7493 addition to the kernel image type specified using the
7494 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
7495 variable.
7496 </para>
7497 </glossdef>
7498 </glossentry>
7499
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007500 <glossentry id='var-KERNEL_ARTIFACT_NAME'><glossterm>KERNEL_ARTIFACT_NAME</glossterm>
7501 <info>
7502 KERNEL_ARTIFACT_NAME[doc] = "Specifies the name of all of the build artifacts."
7503 </info>
7504 <glossdef>
7505 <para role="glossdeffirst">
7506<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7507 Specifies the name of all of the build artifacts.
7508 You can change the name of the artifacts by changing the
7509 <filename>KERNEL_ARTIFACT_NAME</filename> variable.
7510 </para>
7511
7512 <para>
7513 The value of <filename>KERNEL_ARTIFACT_NAME</filename>,
7514 which is set in the
7515 <filename> meta/classes/kernel-artifact-names.bbclass</filename>
7516 file, has the following default value:
7517 <literallayout class='monospaced'>
7518 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7519 </literallayout>
7520 </para>
7521
7522 <para>
7523 See the
7524 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7525 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7526 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7527 and
7528 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7529 variables for additional information.
7530 <note>
7531 The <filename>IMAGE_VERSION_SUFFIX</filename> variable
7532 is set to
7533 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>.
7534 </note>
7535 </para>
7536 </glossdef>
7537 </glossentry>
7538
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007539 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
7540 <info>
7541 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
7542 </info>
7543 <glossdef>
7544 <para role="glossdeffirst">
7545<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7546 A list of classes defining kernel image types that the
7547 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7548 class should inherit.
7549 You typically append this variable to enable extended image
7550 types.
7551 An example is the "kernel-fitimage", which enables
7552 fitImage support and resides in
7553 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
7554 You can register custom kernel image types with the
7555 <filename>kernel</filename> class using this variable.
7556 </para>
7557 </glossdef>
7558 </glossentry>
7559
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007560 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
7561 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007562 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 -05007563 </info>
7564 <glossdef>
7565 <para role="glossdeffirst">
7566<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7567 Specifies the name of the generated Linux kernel device tree
7568 (i.e. the <filename>.dtb</filename>) file.
7569 <note>
7570 Legacy support exists for specifying the full path
7571 to the device tree.
7572 However, providing just the <filename>.dtb</filename>
7573 file is preferred.
7574 </note>
7575 In order to use this variable, you must have the include
7576 files in your kernel recipe:
7577 <literallayout class='monospaced'>
7578 require recipes-kernel/linux/linux-dtb.inc
7579 </literallayout>
7580 or
7581 <literallayout class='monospaced'>
7582 require recipes-kernel/linux/linux-yocto.inc
7583 </literallayout>
7584 </para>
7585 </glossdef>
7586 </glossentry>
7587
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007588 <glossentry id='var-KERNEL_DTB_LINK_NAME'><glossterm>KERNEL_DTB_LINK_NAME</glossterm>
7589 <info>
7590 KERNEL_DTB_LINK_NAME[doc] = "The link name of the kernel device tree binary (DTB)."
7591 </info>
7592 <glossdef>
7593 <para role="glossdeffirst">
7594<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7595 The link name of the kernel device tree binary (DTB).
7596 This variable is set in the
7597 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7598 file as follows:
7599 <literallayout class='monospaced'>
7600 KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7601 </literallayout>
7602 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7603 variable, which is set in the same file, has the following
7604 value:
7605 <literallayout class='monospaced'>
7606 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7607 </literallayout>
7608 </para>
7609
7610 <para>
7611 See the
7612 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7613 variable for additional information.
7614 </para>
7615 </glossdef>
7616 </glossentry>
7617
7618 <glossentry id='var-KERNEL_DTB_NAME'><glossterm>KERNEL_DTB_NAME</glossterm>
7619 <info>
7620 KERNEL_DTB_NAME[doc] = "The base name of the kernel device tree binary (DTB)."
7621 </info>
7622 <glossdef>
7623 <para role="glossdeffirst">
7624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7625 The base name of the kernel device tree binary (DTB).
7626 This variable is set in the
7627 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7628 file as follows:
7629 <literallayout class='monospaced'>
7630 KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7631 </literallayout>
7632 The value of the
7633 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7634 variable, which is set in the same file, has the following
7635 value:
7636 <literallayout class='monospaced'>
7637 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7638 </literallayout>
7639 </para>
7640 </glossdef>
7641 </glossentry>
7642
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007643 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
7644 <info>
7645 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
7646 </info>
7647 <glossdef>
7648 <para role="glossdeffirst">
7649<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7650 Specifies additional <filename>make</filename>
7651 command-line arguments the OpenEmbedded build system
7652 passes on when compiling the kernel.
7653 </para>
7654 </glossdef>
7655 </glossentry>
7656
7657 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
7658 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007659 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 -05007660 </info>
7661 <glossdef>
7662 <para role="glossdeffirst">
7663<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007664 Includes additional kernel metadata.
7665 In the OpenEmbedded build system, the default Board Support
7666 Packages (BSPs)
7667 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007668 is provided through
7669 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007670 and
7671 <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link>
7672 variables.
7673 You can use the <filename>KERNEL_FEATURES</filename>
7674 variable from within the kernel recipe or kernel append
7675 file to further add metadata for all BSPs or specific
7676 BSPs.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007677 </para>
7678
7679 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007680 The metadata you add through this variable includes config
7681 fragments and features descriptions,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007682 which usually includes patches as well as config fragments.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007683 You typically override the
7684 <filename>KERNEL_FEATURES</filename> variable for a
7685 specific machine.
7686 In this way, you can provide validated, but optional,
7687 sets of kernel configurations and features.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007688 </para>
7689
7690 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007691 For example, the following example from the
7692 <filename>linux-yocto-rt_4.12</filename> kernel recipe
7693 adds "netfilter" and "taskstats" features to all BSPs
7694 as well as "virtio" configurations to all QEMU machines.
7695 The last two statements add specific configurations to
7696 targeted machine types:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007697 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007698 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
7699 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007700 KERNEL_FEATURES_append_qemuall = " cfg/virtio.scc"
7701 KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc cfg/paravirt_kvm.scc"
7702 KERNEL_FEATURES_append_qemux86-64 = " cfg/sound.scc" </literallayout></para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007703 </glossdef>
7704 </glossentry>
7705
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007706 <glossentry id='var-KERNEL_FIT_LINK_NAME'><glossterm>KERNEL_FIT_LINK_NAME</glossterm>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007707 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007708 KERNEL_FIT_LINK_NAME[doc] = "The link name of the kernel flattened image tree (FIT) image."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007709 </info>
7710 <glossdef>
7711 <para role="glossdeffirst">
7712<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007713 The link name of the kernel flattened image tree (FIT) image.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007714 This variable is set in the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007715 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7716 file as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007717 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007718 KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7719 </literallayout>
7720 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7721 variable, which is set in the same file, has the following
7722 value:
7723 <literallayout class='monospaced'>
7724 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007725 </literallayout>
7726 </para>
7727
7728 <para>
7729 See the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007730 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7731 variable for additional information.
7732 </para>
7733 </glossdef>
7734 </glossentry>
7735
7736 <glossentry id='var-KERNEL_FIT_NAME'><glossterm>KERNEL_FIT_NAME</glossterm>
7737 <info>
7738 KERNEL_FIT_NAME[doc] = "The base name of the kernel flattened image tree (FIT) image."
7739 </info>
7740 <glossdef>
7741 <para role="glossdeffirst">
7742<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7743 The base name of the kernel flattened image tree (FIT) image.
7744 This variable is set in the
7745 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7746 file as follows:
7747 <literallayout class='monospaced'>
7748 KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7749 </literallayout>
7750 The value of the
7751 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7752 variable, which is set in the same file, has the following
7753 value:
7754 <literallayout class='monospaced'>
7755 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7756 </literallayout>
7757 </para>
7758 </glossdef>
7759 </glossentry>
7760
7761 <glossentry id='var-KERNEL_IMAGE_LINK_NAME'><glossterm>KERNEL_IMAGE_LINK_NAME</glossterm>
7762 <info>
7763 KERNEL_IMAGE_LINK_NAME[doc] = "The link name for the kernel image."
7764 </info>
7765 <glossdef>
7766 <para role="glossdeffirst">
7767<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7768 The link name for the kernel image.
7769 This variable is set in the
7770 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7771 file as follows:
7772 <literallayout class='monospaced'>
7773 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7774 </literallayout>
7775 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7776 variable, which is set in the same file, has the following
7777 value:
7778 <literallayout class='monospaced'>
7779 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7780 </literallayout>
7781 </para>
7782
7783 <para>
7784 See the
7785 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7786 variable for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007787 </para>
7788 </glossdef>
7789 </glossentry>
7790
7791 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
7792 <info>
7793 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
7794 </info>
7795 <glossdef>
7796 <para role="glossdeffirst">
7797<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7798 Specifies the maximum size of the kernel image file in
7799 kilobytes.
7800 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
7801 the size of the kernel image file is checked against
7802 the set value during the
7803 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
7804 task.
7805 The task fails if the kernel image file is larger than
7806 the setting.
7807 </para>
7808
7809 <para>
7810 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
7811 target devices that have a limited amount of space in
7812 which the kernel image must be stored.
7813 </para>
7814
7815 <para>
7816 By default, this variable is not set, which means the
7817 size of the kernel image is not checked.
7818 </para>
7819 </glossdef>
7820 </glossentry>
7821
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007822 <glossentry id='var-KERNEL_IMAGE_NAME'><glossterm>KERNEL_IMAGE_NAME</glossterm>
7823 <info>
7824 KERNEL_IMAGE_NAME[doc] = "The base name of the kernel image."
7825 </info>
7826 <glossdef>
7827 <para role="glossdeffirst">
7828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7829 The base name of the kernel image.
7830 This variable is set in the
7831 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7832 file as follows:
7833 <literallayout class='monospaced'>
7834 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7835 </literallayout>
7836 The value of the
7837 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7838 variable, which is set in the same file, has the following
7839 value:
7840 <literallayout class='monospaced'>
7841 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7842 </literallayout>
7843 </para>
7844 </glossdef>
7845 </glossentry>
7846
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007847 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
7848 <info>
7849 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
7850 </info>
7851 <glossdef>
7852 <para role="glossdeffirst">
7853<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7854 The type of kernel to build for a device, usually set by the
7855 machine configuration files and defaults to "zImage".
7856 This variable is used
7857 when building the kernel and is passed to <filename>make</filename> as the target to
7858 build.
7859 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007860
7861 <para>
7862 If you want to build an alternate kernel image type, use the
7863 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
7864 variable.
7865 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007866 </glossdef>
7867 </glossentry>
7868
7869 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
7870 <info>
7871 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
7872 </info>
7873 <glossdef>
7874 <para role="glossdeffirst">
7875<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7876 Lists kernel modules that need to be auto-loaded during
7877 boot.
7878 <note>
7879 This variable replaces the deprecated
7880 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
7881 variable.
7882 </note>
7883 </para>
7884
7885 <para>
7886 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
7887 variable anywhere that it can be
7888 recognized by the kernel recipe or by an out-of-tree kernel
7889 module recipe (e.g. a machine configuration file, a
7890 distribution configuration file, an append file for the
7891 recipe, or the recipe itself).
7892 </para>
7893
7894 <para>
7895 Specify it as follows:
7896 <literallayout class='monospaced'>
7897 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
7898 </literallayout>
7899 </para>
7900
7901 <para>
7902 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
7903 the OpenEmbedded build system to populate the
7904 <filename>/etc/modules-load.d/modname.conf</filename>
7905 file with the list of modules to be auto-loaded on boot.
7906 The modules appear one-per-line in the file.
7907 Here is an example of the most common use case:
7908 <literallayout class='monospaced'>
7909 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
7910 </literallayout>
7911 </para>
7912
7913 <para>
7914 For information on how to populate the
7915 <filename>modname.conf</filename> file with
7916 <filename>modprobe.d</filename> syntax lines, see the
7917 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
7918 variable.
7919 </para>
7920 </glossdef>
7921 </glossentry>
7922
7923 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
7924 <info>
7925 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."
7926 </info>
7927 <glossdef>
7928 <para role="glossdeffirst">
7929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7930 Provides a list of modules for which the OpenEmbedded
7931 build system expects to find
7932 <filename>module_conf_</filename><replaceable>modname</replaceable>
7933 values that specify configuration for each of the modules.
7934 For information on how to provide those module
7935 configurations, see the
7936 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
7937 variable.
7938 </para>
7939 </glossdef>
7940 </glossentry>
7941
7942 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
7943 <info>
7944 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)."
7945 </info>
7946 <glossdef>
7947 <para role="glossdeffirst">
7948<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7949 The location of the kernel sources.
7950 This variable is set to the value of the
7951 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7952 within the
7953 <link linkend='ref-classes-module'><filename>module</filename></link>
7954 class.
7955 For information on how this variable is used, see the
7956 "<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 -04007957 section in the Yocto Project Linux Kernel Development
7958 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007959 </para>
7960
7961 <para>
7962 To help maximize compatibility with out-of-tree drivers
7963 used to build modules, the OpenEmbedded build system also
7964 recognizes and uses the
7965 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
7966 variable, which is identical to the
7967 <filename>KERNEL_PATH</filename> variable.
7968 Both variables are common variables used by external
7969 Makefiles to point to the kernel source directory.
7970 </para>
7971 </glossdef>
7972 </glossentry>
7973
7974 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
7975 <info>
7976 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)."
7977 </info>
7978 <glossdef>
7979 <para role="glossdeffirst">
7980<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7981 The location of the kernel sources.
7982 This variable is set to the value of the
7983 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7984 within the
7985 <link linkend='ref-classes-module'><filename>module</filename></link>
7986 class.
7987 For information on how this variable is used, see the
7988 "<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 -04007989 section in the Yocto Project Linux Kernel Development
7990 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007991 </para>
7992
7993 <para>
7994 To help maximize compatibility with out-of-tree drivers
7995 used to build modules, the OpenEmbedded build system also
7996 recognizes and uses the
7997 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
7998 variable, which is identical to the
7999 <filename>KERNEL_SRC</filename> variable.
8000 Both variables are common variables used by external
8001 Makefiles to point to the kernel source directory.
8002 </para>
8003 </glossdef>
8004 </glossentry>
8005
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008006 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
8007 <info>
8008 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
8009 </info>
8010 <glossdef>
8011 <para role="glossdeffirst">
8012<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8013 Specifies the version of the kernel as extracted from
8014 <filename>version.h</filename> or
8015 <filename>utsrelease.h</filename> within the kernel sources.
8016 Effects of setting this variable do not take affect until
8017 the kernel has been configured.
8018 Consequently, attempting to refer to this variable in
8019 contexts prior to configuration will not work.
8020 </para>
8021 </glossdef>
8022 </glossentry>
8023
8024 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
8025 <info>
8026 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
8027 </info>
8028 <glossdef>
8029 <para role="glossdeffirst">
8030<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8031 Specifies whether the data referenced through
8032 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
8033 is needed or not.
8034 The <filename>KERNELDEPMODDEPEND</filename> does not
8035 control whether or not that data exists,
8036 but simply whether or not it is used.
8037 If you do not need to use the data, set the
8038 <filename>KERNELDEPMODDEPEND</filename> variable in your
8039 <filename>initramfs</filename> recipe.
8040 Setting the variable there when the data is not needed
8041 avoids a potential dependency loop.
8042 </para>
8043 </glossdef>
8044 </glossentry>
8045
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008046 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
8047 <info>
8048 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."
8049 </info>
8050 <glossdef>
8051 <para role="glossdeffirst">
8052<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8053 Provides a short description of a configuration fragment.
8054 You use this variable in the <filename>.scc</filename>
8055 file that describes a configuration fragment file.
8056 Here is the variable used in a file named
8057 <filename>smp.scc</filename> to describe SMP being
8058 enabled:
8059 <literallayout class='monospaced'>
8060 define KFEATURE_DESCRIPTION "Enable SMP"
8061 </literallayout>
8062 </para>
8063 </glossdef>
8064 </glossentry>
8065
8066 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
8067 <info>
8068 KMACHINE[doc] = "The machine as known by the kernel."
8069 </info>
8070 <glossdef>
8071 <para role="glossdeffirst">
8072<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8073 The machine as known by the kernel.
8074 Sometimes the machine name used by the kernel does not
8075 match the machine name used by the OpenEmbedded build
8076 system.
8077 For example, the machine name that the OpenEmbedded build
8078 system understands as
8079 <filename>core2-32-intel-common</filename> goes by a
8080 different name in the Linux Yocto kernel.
8081 The kernel understands that machine as
8082 <filename>intel-core2-32</filename>.
8083 For cases like these, the <filename>KMACHINE</filename>
8084 variable maps the kernel machine name to the OpenEmbedded
8085 build system machine name.
8086 </para>
8087
8088 <para>
8089 These mappings between different names occur in the
8090 Yocto Linux Kernel's <filename>meta</filename> branch.
8091 As an example take a look in the
8092 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
8093 file:
8094 <literallayout class='monospaced'>
8095 LINUX_VERSION_core2-32-intel-common = "3.19.0"
8096 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
8097 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
8098 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
8099 KMACHINE_core2-32-intel-common = "intel-core2-32"
8100 KBRANCH_core2-32-intel-common = "standard/base"
8101 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
8102 </literallayout>
8103 The <filename>KMACHINE</filename> statement says that
8104 the kernel understands the machine name as
8105 "intel-core2-32".
8106 However, the OpenEmbedded build system understands the
8107 machine as "core2-32-intel-common".
8108 </para>
8109
8110 </glossdef>
8111 </glossentry>
8112
8113 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
8114 <info>
8115 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8116 </info>
8117 <glossdef>
8118 <para role="glossdeffirst">
8119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8120 Defines the kernel type to be used in assembling the
8121 configuration.
8122 The linux-yocto recipes define "standard", "tiny",
8123 and "preempt-rt" kernel types.
8124 See the
8125 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8126 section in the Yocto Project Linux Kernel Development
8127 Manual for more information on kernel types.
8128 </para>
8129
8130 <para>
8131 You define the <filename>KTYPE</filename> variable in the
8132 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
8133 The value you use must match the value used for the
8134 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
8135 value used by the kernel recipe.
8136 </para>
8137 </glossdef>
8138 </glossentry>
8139 </glossdiv>
8140
8141 <glossdiv id='var-glossary-l'><title>L</title>
8142
8143 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
8144 <info>
8145 LABELS[doc] = "Provides a list of targets for automatic configuration."
8146 </info>
8147 <glossdef>
8148 <para role="glossdeffirst">
8149<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8150 Provides a list of targets for automatic configuration.
8151 </para>
8152
8153 <para>
8154 See the
8155 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
8156 class for more information on how this variable is used.
8157 </para>
8158 </glossdef>
8159 </glossentry>
8160
8161 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
8162 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008163 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 -05008164 </info>
8165 <glossdef>
8166 <para role="glossdeffirst">
8167<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008168 Lists the layers, separated by spaces, on which this
8169 recipe depends.
8170 Optionally, you can specify a specific layer version for a
8171 dependency by adding it to the end of the layer name.
8172 Here is an example:
8173 <literallayout class='monospaced'>
8174 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
8175 </literallayout>
8176 In this previous example, version 3 of "anotherlayer"
8177 is compared against
8178 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>.
8179 </para>
8180
8181 <para>
8182 An error is produced if any dependency is missing or
8183 the version numbers (if specified) do not match exactly.
8184 This variable is used in the
8185 <filename>conf/layer.conf</filename> file and must be
8186 suffixed with the name of the specific layer (e.g.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008187 <filename>LAYERDEPENDS_mylayer</filename>).
8188 </para>
8189 </glossdef>
8190 </glossentry>
8191
8192 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
8193 <info>
8194 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
8195 </info>
8196 <glossdef>
8197 <para role="glossdeffirst">
8198<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8199 When used inside the <filename>layer.conf</filename> configuration
8200 file, this variable provides the path of the current layer.
8201 This variable is not available outside of <filename>layer.conf</filename>
8202 and references are expanded immediately when parsing of the file completes.
8203 </para>
8204 </glossdef>
8205 </glossentry>
8206
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008207 <glossentry id='var-LAYERRECOMMENDS'><glossterm>LAYERRECOMMENDS</glossterm>
8208 <info>
8209 LAYERRECOMMENDS[doc] = "Lists the layers, separated by spaces, recommended for use with this layer."
8210 </info>
8211 <glossdef>
8212 <para role="glossdeffirst">
8213<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8214 Lists the layers, separated by spaces, recommended for
8215 use with this layer.
8216 </para>
8217
8218 <para>
8219 Optionally, you can specify a specific layer version for a
8220 recommendation by adding the version to the end of the
8221 layer name.
8222 Here is an example:
8223 <literallayout class='monospaced'>
8224 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
8225 </literallayout>
8226 In this previous example, version 3 of "anotherlayer" is
8227 compared against
8228 <filename>LAYERVERSION_anotherlayer</filename>.
8229 </para>
8230
8231 <para>
8232 This variable is used in the
8233 <filename>conf/layer.conf</filename> file and must be
8234 suffixed with the name of the specific layer (e.g.
8235 <filename>LAYERRECOMMENDS_mylayer</filename>).
8236 </para>
8237 </glossdef>
8238 </glossentry>
8239
Brad Bishop316dfdd2018-06-25 12:45:53 -04008240 <glossentry id='var-LAYERSERIES_COMPAT'><glossterm>LAYERSERIES_COMPAT</glossterm>
8241 <info>
8242 LAYERSERIES_COMPAT[doc] = "Lists the OpenEmbedded-Core versions for which a layer is compatible."
8243 </info>
8244 <glossdef>
8245 <para role="glossdeffirst">
8246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8247 Lists the versions of the
8248 <link linkend='oe-core'>OpenEmbedded-Core</link> for which
8249 a layer is compatible.
8250 Using the <filename>LAYERSERIES_COMPAT</filename> variable
8251 allows the layer maintainer to indicate which combinations
8252 of the layer and OE-Core can be expected to work.
8253 The variable gives the system a way to detect when a layer
8254 has not been tested with new releases of OE-Core (e.g.
8255 the layer is not maintained).
8256 </para>
8257
8258 <para>
8259 To specify the OE-Core versions for which a layer is
8260 compatible, use this variable in your layer's
8261 <filename>conf/layer.conf</filename> configuration file.
8262 For the list, use the Yocto Project
8263 <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Release Name</ulink>
8264 (e.g. &DISTRO_NAME_NO_CAP;).
8265 To specify multiple OE-Core versions for the layer,
8266 use a space-separated list:
8267 <literallayout class='monospaced'>
8268 LAYERSERIES_COMPAT_<replaceable>layer_root_name</replaceable> = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
8269 </literallayout>
8270 <note>
8271 Setting <filename>LAYERSERIES_COMPAT</filename> is
8272 required by the Yocto Project Compatible version 2
8273 standard.
8274 The OpenEmbedded build system produces a warning if
8275 the variable is not set for any given layer.
8276 </note>
8277 </para>
8278
8279 <para>
8280 See the
8281 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-layer'>Creating Your Own Layer</ulink>"
8282 section in the Yocto Project Development Tasks Manual.
8283 </para>
8284 </glossdef>
8285 </glossentry>
8286
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008287 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
8288 <info>
8289 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."
8290 </info>
8291 <glossdef>
8292 <para role="glossdeffirst">
8293<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8294 Optionally specifies the version of a layer as a single number.
8295 You can use this within
8296 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
8297 for another layer in order to depend on a specific version
8298 of the layer.
8299 This variable is used in the <filename>conf/layer.conf</filename> file
8300 and must be suffixed with the name of the specific layer (e.g.
8301 <filename>LAYERVERSION_mylayer</filename>).
8302 </para>
8303 </glossdef>
8304 </glossentry>
8305
8306 <glossentry id='var-LD'><glossterm>LD</glossterm>
8307 <info>
8308 LD[doc] = "Minimal command and arguments to run the linker."
8309 </info>
8310 <glossdef>
8311 <para role="glossdeffirst">
8312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8313 The minimal command and arguments used to run the
8314 linker.
8315 </para>
8316 </glossdef>
8317 </glossentry>
8318
8319 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
8320 <info>
8321 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
8322 </info>
8323 <glossdef>
8324 <para role="glossdeffirst">
8325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8326 Specifies the flags to pass to the linker.
8327 This variable is exported to an environment
8328 variable and thus made visible to the software being
8329 built during the compilation step.
8330 </para>
8331
8332 <para>
8333 Default initialization for <filename>LDFLAGS</filename>
8334 varies depending on what is being built:
8335 <itemizedlist>
8336 <listitem><para>
8337 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
8338 when building for the target
8339 </para></listitem>
8340 <listitem><para>
8341 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
8342 when building for the build host (i.e.
8343 <filename>-native</filename>)
8344 </para></listitem>
8345 <listitem><para>
8346 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
8347 when building for an SDK (i.e.
8348 <filename>nativesdk-</filename>)
8349 </para></listitem>
8350 </itemizedlist>
8351 </para>
8352 </glossdef>
8353 </glossentry>
8354
8355 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
8356 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008357 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 -05008358 </info>
8359 <glossdef>
8360 <para role="glossdeffirst">
8361<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8362 Specifies the lead (or primary) compiled library file
Brad Bishop316dfdd2018-06-25 12:45:53 -04008363 (i.e. <filename>.so</filename>) that the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008364 <link linkend='ref-classes-debian'><filename>debian</filename></link>
8365 class applies its naming policy to given a recipe that
8366 packages multiple libraries.
8367 </para>
8368
8369 <para>
8370 This variable works in conjunction with the
8371 <filename>debian</filename> class.
8372 </para>
8373 </glossdef>
8374 </glossentry>
8375
8376 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
8377 <info>
8378 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
8379 </info>
8380 <glossdef>
8381 <para role="glossdeffirst">
8382<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8383 Checksums of the license text in the recipe source code.
8384 </para>
8385
8386 <para>
8387 This variable tracks changes in license text of the source
8388 code files.
8389 If the license text is changed, it will trigger a build
8390 failure, which gives the developer an opportunity to review any
8391 license change.
8392 </para>
8393
8394 <para>
8395 This variable must be defined for all recipes (unless
8396 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8397 is set to "CLOSED").</para>
8398 <para>For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008399 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Tracking License Changes</ulink>"
8400 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008401 </para>
8402 </glossdef>
8403 </glossentry>
8404
8405 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
8406 <info>
8407 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
8408 </info>
8409 <glossdef>
8410 <para role="glossdeffirst">
8411<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8412 The list of source licenses for the recipe.
8413 Follow these rules:
8414 <itemizedlist>
8415 <listitem><para>Do not use spaces within individual
8416 license names.</para></listitem>
8417 <listitem><para>Separate license names using
8418 | (pipe) when there is a choice between licenses.
8419 </para></listitem>
8420 <listitem><para>Separate license names using
8421 &amp; (ampersand) when multiple licenses exist
8422 that cover different parts of the source.
8423 </para></listitem>
8424 <listitem><para>You can use spaces between license
8425 names.</para></listitem>
8426 <listitem><para>For standard licenses, use the names
8427 of the files in
8428 <filename>meta/files/common-licenses/</filename>
8429 or the
8430 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
8431 flag names defined in
8432 <filename>meta/conf/licenses.conf</filename>.
8433 </para></listitem>
8434 </itemizedlist>
8435 </para>
8436
8437 <para>
8438 Here are some examples:
8439 <literallayout class='monospaced'>
8440 LICENSE = "LGPLv2.1 | GPLv3"
8441 LICENSE = "MPL-1 &amp; LGPLv2.1"
8442 LICENSE = "GPLv2+"
8443 </literallayout>
8444 The first example is from the recipes for Qt, which the user
8445 may choose to distribute under either the LGPL version
8446 2.1 or GPL version 3.
8447 The second example is from Cairo where two licenses cover
8448 different parts of the source code.
8449 The final example is from <filename>sysstat</filename>,
8450 which presents a single license.
8451 </para>
8452
8453 <para>
8454 You can also specify licenses on a per-package basis to
8455 handle situations where components of the output have
8456 different licenses.
8457 For example, a piece of software whose code is
8458 licensed under GPLv2 but has accompanying documentation
8459 licensed under the GNU Free Documentation License 1.2 could
8460 be specified as follows:
8461 <literallayout class='monospaced'>
8462 LICENSE = "GFDL-1.2 &amp; GPLv2"
8463 LICENSE_${PN} = "GPLv2"
8464 LICENSE_${PN}-doc = "GFDL-1.2"
8465 </literallayout>
8466 </para>
8467 </glossdef>
8468 </glossentry>
8469
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008470 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
8471 <info>
8472 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
8473 </info>
8474 <glossdef>
8475 <para role="glossdeffirst">
8476<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8477 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
8478 to "1" causes the OpenEmbedded build system to create
8479 an extra package (i.e.
8480 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
8481 for each recipe and to add those packages to the
8482 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
8483 </para>
8484
8485 <para>
8486 The <filename>${PN}-lic</filename> package installs a
8487 directory in <filename>/usr/share/licenses</filename>
8488 named <filename>${PN}</filename>, which is the recipe's
8489 base name, and installs files in that directory that
8490 contain license and copyright information (i.e. copies of
8491 the appropriate license files from
8492 <filename>meta/common-licenses</filename> that match the
8493 licenses specified in the
8494 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8495 variable of the recipe metadata and copies of files marked
8496 in
8497 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
8498 as containing license text).
8499 </para>
8500
8501 <para>
8502 For related information on providing license text, see the
8503 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
8504 variable, the
8505 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
8506 variable, and the
8507 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008508 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008509 </para>
8510 </glossdef>
8511 </glossentry>
8512
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008513 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
8514 <info>
8515 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."
8516 </info>
8517 <glossdef>
8518 <para role="glossdeffirst">
8519<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8520 Specifies additional flags for a recipe you must
8521 whitelist through
8522 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
8523 in order to allow the recipe to be built.
8524 When providing multiple flags, separate them with
8525 spaces.
8526 </para>
8527
8528 <para>
8529 This value is independent of
8530 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8531 and is typically used to mark recipes that might
8532 require additional licenses in order to be used in a
8533 commercial product.
8534 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008535 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8536 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008537 </para>
8538 </glossdef>
8539 </glossentry>
8540
8541 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
8542 <info>
8543 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
8544 </info>
8545 <glossdef>
8546 <para role="glossdeffirst">
8547<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8548 Lists license flags that when specified in
8549 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
8550 within a recipe should not prevent that recipe from being
8551 built.
8552 This practice is otherwise known as "whitelisting"
8553 license flags.
8554 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008555 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8556 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008557 </para>
8558 </glossdef>
8559 </glossentry>
8560
8561 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
8562 <info>
8563 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
8564 </info>
8565 <glossdef>
8566 <para role="glossdeffirst">
8567<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8568 Path to additional licenses used during the build.
8569 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
8570 to define the directory that holds common license text used during the build.
8571 The <filename>LICENSE_PATH</filename> variable allows you to extend that
8572 location to other areas that have additional licenses:
8573 <literallayout class='monospaced'>
8574 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
8575 </literallayout>
8576 </para>
8577 </glossdef>
8578 </glossentry>
8579
8580 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
8581 <info>
8582 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8583 </info>
8584 <glossdef>
8585 <para role="glossdeffirst">
8586<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8587 Defines the kernel type to be used in assembling the
8588 configuration.
8589 The linux-yocto recipes define "standard", "tiny", and
8590 "preempt-rt" kernel types.
8591 See the
8592 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8593 section in the Yocto Project Linux Kernel Development
8594 Manual for more information on kernel types.
8595 </para>
8596
8597 <para>
8598 If you do not specify a
8599 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
8600 "standard".
8601 Together with
8602 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
8603 the <filename>LINUX_KERNEL_TYPE</filename> variable
8604 defines the search
8605 arguments used by the kernel tools to find the appropriate
8606 description within the kernel
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008607 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008608 with which to build out the sources and configuration.
8609 </para>
8610 </glossdef>
8611 </glossentry>
8612
8613 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
8614 <info>
8615 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."
8616 </info>
8617 <glossdef>
8618 <para role="glossdeffirst">
8619<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8620 The Linux version from <filename>kernel.org</filename>
8621 on which the Linux kernel image being built using the
8622 OpenEmbedded build system is based.
8623 You define this variable in the kernel recipe.
8624 For example, the <filename>linux-yocto-3.4.bb</filename>
8625 kernel recipe found in
8626 <filename>meta/recipes-kernel/linux</filename>
8627 defines the variables as follows:
8628 <literallayout class='monospaced'>
8629 LINUX_VERSION ?= "3.4.24"
8630 </literallayout>
8631 </para>
8632
8633 <para>
8634 The <filename>LINUX_VERSION</filename> variable is used to
8635 define <link linkend='var-PV'><filename>PV</filename></link>
8636 for the recipe:
8637 <literallayout class='monospaced'>
8638 PV = "${LINUX_VERSION}+git${SRCPV}"
8639 </literallayout>
8640 </para>
8641 </glossdef>
8642 </glossentry>
8643
8644 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
8645 <info>
8646 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."
8647 </info>
8648 <glossdef>
8649 <para role="glossdeffirst">
8650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8651 A string extension compiled into the version
8652 string of the Linux kernel built with the OpenEmbedded
8653 build system.
8654 You define this variable in the kernel recipe.
8655 For example, the linux-yocto kernel recipes all define
8656 the variable as follows:
8657 <literallayout class='monospaced'>
8658 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
8659 </literallayout>
8660 </para>
8661
8662 <para>
8663 Defining this variable essentially sets the
8664 Linux kernel configuration item
8665 <filename>CONFIG_LOCALVERSION</filename>, which is visible
8666 through the <filename>uname</filename> command.
8667 Here is an example that shows the extension assuming it
8668 was set as previously shown:
8669 <literallayout class='monospaced'>
8670 $ uname -r
8671 3.7.0-rc8-custom
8672 </literallayout>
8673 </para>
8674 </glossdef>
8675 </glossentry>
8676
8677 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
8678 <info>
8679 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
8680 </info>
8681 <glossdef>
8682 <para role="glossdeffirst">
8683<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8684 Specifies the directory to which the OpenEmbedded build
8685 system writes overall log files.
8686 The default directory is <filename>${TMPDIR}/log</filename>.
8687 </para>
8688
8689 <para>
8690 For the directory containing logs specific to each task,
8691 see the <link linkend='var-T'><filename>T</filename></link>
8692 variable.
8693 </para>
8694 </glossdef>
8695 </glossentry>
8696
8697 </glossdiv>
8698
8699 <glossdiv id='var-glossary-m'><title>M</title>
8700
8701 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
8702 <info>
8703 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."
8704 </info>
8705 <glossdef>
8706 <para role="glossdeffirst">
8707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8708 Specifies the target device for which the image is built.
8709 You define <filename>MACHINE</filename> in the
8710 <filename>local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008711 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008712 By default, <filename>MACHINE</filename> is set to
8713 "qemux86", which is an x86-based architecture machine to
8714 be emulated using QEMU:
8715 <literallayout class='monospaced'>
8716 MACHINE ?= "qemux86"
8717 </literallayout>
8718 </para>
8719
8720 <para>
8721 The variable corresponds to a machine configuration file of the
8722 same name, through which machine-specific configurations are set.
8723 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
8724 exists the corresponding <filename>qemux86.conf</filename> machine
8725 configuration file, which can be found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008726 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008727 in <filename>meta/conf/machine</filename>.
8728 </para>
8729
8730 <para>
8731 The list of machines supported by the Yocto Project as
8732 shipped include the following:
8733 <literallayout class='monospaced'>
8734 MACHINE ?= "qemuarm"
8735 MACHINE ?= "qemuarm64"
8736 MACHINE ?= "qemumips"
8737 MACHINE ?= "qemumips64"
8738 MACHINE ?= "qemuppc"
8739 MACHINE ?= "qemux86"
8740 MACHINE ?= "qemux86-64"
8741 MACHINE ?= "genericx86"
8742 MACHINE ?= "genericx86-64"
8743 MACHINE ?= "beaglebone"
8744 MACHINE ?= "mpc8315e-rdb"
8745 MACHINE ?= "edgerouter"
8746 </literallayout>
8747 The last five are Yocto Project reference hardware boards, which
8748 are provided in the <filename>meta-yocto-bsp</filename> layer.
8749 <note>Adding additional Board Support Package (BSP) layers
8750 to your configuration adds new possible settings for
8751 <filename>MACHINE</filename>.
8752 </note>
8753 </para>
8754 </glossdef>
8755 </glossentry>
8756
8757 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
8758 <info>
8759 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
8760 </info>
8761 <glossdef>
8762 <para role="glossdeffirst">
8763<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8764 Specifies the name of the machine-specific architecture.
8765 This variable is set automatically from
8766 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
8767 or
8768 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
8769 You should not hand-edit the
8770 <filename>MACHINE_ARCH</filename> variable.
8771 </para>
8772 </glossdef>
8773 </glossentry>
8774
8775 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
8776 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008777 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 -05008778 </info>
8779 <glossdef>
8780 <para role="glossdeffirst">
8781<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8782 A list of required machine-specific packages to install as part of
8783 the image being built.
8784 The build process depends on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008785 Furthermore, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008786 packages are essential for the machine to boot.
8787 The impact of this variable affects images based on
8788 <filename>packagegroup-core-boot</filename>,
8789 including the <filename>core-image-minimal</filename> image.
8790 </para>
8791
8792 <para>
8793 This variable is similar to the
8794 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
8795 variable with the exception that the image being built has a build
8796 dependency on the variable's list of packages.
8797 In other words, the image will not build if a file in this list is not found.
8798 </para>
8799
8800 <para>
8801 As an example, suppose the machine for which you are building requires
8802 <filename>example-init</filename> to be run during boot to initialize the hardware.
8803 In this case, you would use the following in the machine's
8804 <filename>.conf</filename> configuration file:
8805 <literallayout class='monospaced'>
8806 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
8807 </literallayout>
8808 </para>
8809 </glossdef>
8810 </glossentry>
8811
8812 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
8813 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008814 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 -05008815 </info>
8816 <glossdef>
8817 <para role="glossdeffirst">
8818<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8819 A list of recommended machine-specific packages to install as part of
8820 the image being built.
8821 The build process does not depend on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008822 However, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008823 packages are essential for the machine to boot.
8824 The impact of this variable affects images based on
8825 <filename>packagegroup-core-boot</filename>,
8826 including the <filename>core-image-minimal</filename> image.
8827 </para>
8828
8829 <para>
8830 This variable is similar to the
8831 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
8832 variable with the exception that the image being built does not have a build
8833 dependency on the variable's list of packages.
8834 In other words, the image will still build if a package in this list is not found.
8835 Typically, this variable is used to handle essential kernel modules, whose
8836 functionality may be selected to be built into the kernel rather than as a module,
8837 in which case a package will not be produced.
8838 </para>
8839
8840 <para>
8841 Consider an example where you have a custom kernel where a specific touchscreen
8842 driver is required for the machine to be usable.
8843 However, the driver can be built as a module or
8844 into the kernel depending on the kernel configuration.
8845 If the driver is built as a module, you want it to be installed.
8846 But, when the driver is built into the kernel, you still want the
8847 build to succeed.
8848 This variable sets up a "recommends" relationship so that in the latter case,
8849 the build will not fail due to the missing package.
8850 To accomplish this, assuming the package for the module was called
8851 <filename>kernel-module-ab123</filename>, you would use the
8852 following in the machine's <filename>.conf</filename> configuration
8853 file:
8854 <literallayout class='monospaced'>
8855 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
8856 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008857 <note>
8858 In this example, the
8859 <filename>kernel-module-ab123</filename> recipe
8860 needs to explicitly set its
8861 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
8862 variable to ensure that BitBake does not use the
8863 kernel recipe's
8864 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
8865 variable to satisfy the dependency.
8866 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008867 </para>
8868
8869 <para>
8870 Some examples of these machine essentials are flash, screen, keyboard, mouse,
8871 or touchscreen drivers (depending on the machine).
8872 </para>
8873 </glossdef>
8874 </glossentry>
8875
8876 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
8877 <info>
8878 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."
8879 </info>
8880 <glossdef>
8881 <para role="glossdeffirst">
8882<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8883 A list of machine-specific packages to install as part of the
8884 image being built that are not essential for the machine to boot.
8885 However, the build process for more fully-featured images
8886 depends on the packages being present.
8887 </para>
8888
8889 <para>
8890 This variable affects all images based on
8891 <filename>packagegroup-base</filename>, which does not include the
8892 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8893 images.
8894 </para>
8895
8896 <para>
8897 The variable is similar to the
8898 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
8899 variable with the exception that the image being built has a build
8900 dependency on the variable's list of packages.
8901 In other words, the image will not build if a file in this list is not found.
8902 </para>
8903
8904 <para>
8905 An example is a machine that has WiFi capability but is not
8906 essential for the machine to boot the image.
8907 However, if you are building a more fully-featured image, you want to enable
8908 the WiFi.
8909 The package containing the firmware for the WiFi hardware is always
8910 expected to exist, so it is acceptable for the build process to depend upon
8911 finding the package.
8912 In this case, assuming the package for the firmware was called
8913 <filename>wifidriver-firmware</filename>, you would use the following in the
8914 <filename>.conf</filename> file for the machine:
8915 <literallayout class='monospaced'>
8916 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
8917 </literallayout>
8918 </para>
8919 </glossdef>
8920 </glossentry>
8921
8922 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
8923 <info>
8924 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."
8925 </info>
8926 <glossdef>
8927 <para role="glossdeffirst">
8928<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8929 A list of machine-specific packages to install as part of the
8930 image being built that are not essential for booting the machine.
8931 The image being built has no build dependency on this list of packages.
8932 </para>
8933
8934 <para>
8935 This variable affects only images based on
8936 <filename>packagegroup-base</filename>, which does not include the
8937 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8938 images.
8939 </para>
8940
8941 <para>
8942 This variable is similar to the
8943 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
8944 variable with the exception that the image being built does not have a build
8945 dependency on the variable's list of packages.
8946 In other words, the image will build if a file in this list is not found.
8947 </para>
8948
8949 <para>
8950 An example is a machine that has WiFi capability but is not essential
8951 For the machine to boot the image.
8952 However, if you are building a more fully-featured image, you want to enable
8953 WiFi.
8954 In this case, the package containing the WiFi kernel module will not be produced
8955 if the WiFi driver is built into the kernel, in which case you still want the
8956 build to succeed instead of failing as a result of the package not being found.
8957 To accomplish this, assuming the package for the module was called
8958 <filename>kernel-module-examplewifi</filename>, you would use the
8959 following in the <filename>.conf</filename> file for the machine:
8960 <literallayout class='monospaced'>
8961 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
8962 </literallayout>
8963 </para>
8964 </glossdef>
8965 </glossentry>
8966
8967 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
8968 <info>
8969 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
8970 </info>
8971 <glossdef>
8972 <para role="glossdeffirst">
8973<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8974 Specifies the list of hardware features the
8975 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
8976 of supporting.
8977 For related information on enabling features, see the
8978 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
8979 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
8980 and
8981 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8982 variables.
8983 </para>
8984
8985 <para>
8986 For a list of hardware features supported by the Yocto
8987 Project as shipped, see the
8988 "<link linkend='ref-features-machine'>Machine Features</link>"
8989 section.
8990 </para>
8991 </glossdef>
8992 </glossentry>
8993
8994 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
8995 <info>
8996 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."
8997 </info>
8998 <glossdef>
8999 <para role="glossdeffirst">
9000<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9001 Features to be added to
9002 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
9003 if not also present in
9004 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
9005 </para>
9006
9007 <para>
9008 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
9009 It is not intended to be user-configurable.
9010 It is best to just reference the variable to see which machine features are
9011 being backfilled for all machine configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009012 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009013 more information.
9014 </para>
9015 </glossdef>
9016 </glossentry>
9017
9018 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
9019 <info>
9020 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
9021 </info>
9022 <glossdef>
9023 <para role="glossdeffirst">
9024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9025 Features from
9026 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
9027 that should not be backfilled (i.e. added to
9028 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
9029 during the build.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009030 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009031 more information.
9032 </para>
9033 </glossdef>
9034 </glossentry>
9035
9036 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
9037 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009038 MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009039 </info>
9040 <glossdef>
9041 <para role="glossdeffirst">
9042<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009043 A colon-separated list of overrides that apply to the
9044 current machine.
9045 By default, this list includes the value of
9046 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009047 </para>
9048
9049 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009050 You can extend <filename>MACHINEOVERRIDES</filename>
9051 to add extra overrides that should apply to a machine.
9052 For example, all machines emulated in QEMU (e.g.
9053 <filename>qemuarm</filename>, <filename>qemux86</filename>,
9054 and so forth) include a file named
9055 <filename>meta/conf/machine/include/qemu.inc</filename>
9056 that prepends the following override to
9057 <filename>MACHINEOVERRIDES</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009058 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009059 MACHINEOVERRIDES =. "qemuall:"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009060 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009061 This override allows variables to be overriden for all
9062 machines emulated in QEMU, like in the following example
9063 from the <filename>connman-conf</filename> recipe:
9064 <literallayout class='monospaced'>
9065 SRC_URI_append_qemuall = "file://wired.config \
9066 file://wired-setup \
9067 "
9068 </literallayout>
9069 The underlying mechanism behind
9070 <filename>MACHINEOVERRIDES</filename> is simply that it is
9071 included in the default value of
9072 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009073 </para>
9074 </glossdef>
9075 </glossentry>
9076
9077 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
9078 <info>
9079 MAINTAINER[doc] = "The email address of the distribution maintainer."
9080 </info>
9081 <glossdef>
9082 <para role="glossdeffirst">
9083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9084 The email address of the distribution maintainer.
9085 </para>
9086 </glossdef>
9087 </glossentry>
9088
9089 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
9090 <info>
9091 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
9092 </info>
9093 <glossdef>
9094 <para role="glossdeffirst">
9095<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9096 Specifies additional paths from which the OpenEmbedded
9097 build system gets source code.
9098 When the build system searches for source code, it first
9099 tries the local download directory.
9100 If that location fails, the build system tries locations
9101 defined by
9102 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
9103 the upstream source, and then locations specified by
9104 <filename>MIRRORS</filename> in that order.
9105 </para>
9106
9107 <para>
9108 Assuming your distribution
9109 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
9110 is "poky", the default value for
9111 <filename>MIRRORS</filename> is defined in the
9112 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009113 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009114 </para>
9115 </glossdef>
9116 </glossentry>
9117
9118 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
9119 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009120 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 -05009121 </info>
9122 <glossdef>
9123 <para role="glossdeffirst">
9124<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9125 Specifies a prefix has been added to
9126 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
Brad Bishop316dfdd2018-06-25 12:45:53 -04009127 of a recipe or package (i.e. a Multilib version).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009128 The variable is used in places where the prefix needs to be
9129 added to or removed from a the name (e.g. the
9130 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
9131 <filename>MLPREFIX</filename> gets set when a prefix has been
9132 added to <filename>PN</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009133 <note>
9134 The "ML" in <filename>MLPREFIX</filename> stands for
9135 "MultiLib".
9136 This representation is historical and comes from
9137 a time when <filename>nativesdk</filename> was a suffix
9138 rather than a prefix on the recipe name.
9139 When <filename>nativesdk</filename> was turned into a
9140 prefix, it made sense to set
9141 <filename>MLPREFIX</filename> for it as well.
9142 </note>
9143 </para>
9144
9145 <para>
9146 To help understand when <filename>MLPREFIX</filename>
9147 might be needed, consider when
9148 <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
9149 is used to provide a <filename>nativesdk</filename> version
9150 of a recipe in addition to the target version.
9151 If that recipe declares build-time dependencies on tasks in
9152 other recipes by using
9153 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
9154 then a dependency on "foo" will automatically get rewritten
9155 to a dependency on "nativesdk-foo".
9156 However, dependencies like the following will not get
9157 rewritten automatically:
9158 <literallayout class='monospaced'>
9159 do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
9160 </literallayout>
9161 If you want such a dependency to also get transformed,
9162 you can do the following:
9163 <literallayout class='monospaced'>
9164 do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
9165 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009166 </para>
9167 </glossdef>
9168 </glossentry>
9169
9170 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
9171 <info>
9172 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."
9173 </info>
9174 <glossdef>
9175 <para role="glossdeffirst">
9176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9177 This variable has been replaced by the
9178 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
9179 You should replace all occurrences of
9180 <filename>module_autoload</filename> with additions to
9181 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
9182 <literallayout class='monospaced'>
9183 module_autoload_rfcomm = "rfcomm"
9184 </literallayout>
9185 </para>
9186
9187 <para>
9188 should now be replaced with:
9189 <literallayout class='monospaced'>
9190 KERNEL_MODULE_AUTOLOAD += "rfcomm"
9191 </literallayout>
9192 See the
9193 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
9194 variable for more information.
9195 </para>
9196 </glossdef>
9197 </glossentry>
9198
9199 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
9200 <info>
9201 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
9202 </info>
9203 <glossdef>
9204 <para role="glossdeffirst">
9205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9206 Specifies
9207 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
9208 syntax lines for inclusion in the
9209 <filename>/etc/modprobe.d/modname.conf</filename> file.
9210 </para>
9211
9212 <para>
9213 You can use this variable anywhere that it can be
9214 recognized by the kernel recipe or out-of-tree kernel
9215 module recipe (e.g. a machine configuration file, a
9216 distribution configuration file, an append file for the
9217 recipe, or the recipe itself).
9218 If you use this variable, you must also be sure to list
9219 the module name in the
9220 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
9221 variable.
9222 </para>
9223
9224 <para>
9225 Here is the general syntax:
9226 <literallayout class='monospaced'>
9227 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
9228 </literallayout>
9229 You must use the kernel module name override.
9230 </para>
9231
9232 <para>
9233 Run <filename>man modprobe.d</filename> in the shell to
9234 find out more information on the exact syntax
9235 you want to provide with <filename>module_conf</filename>.
9236 </para>
9237
9238 <para>
9239 Including <filename>module_conf</filename> causes the
9240 OpenEmbedded build system to populate the
9241 <filename>/etc/modprobe.d/modname.conf</filename>
9242 file with <filename>modprobe.d</filename> syntax lines.
9243 Here is an example that adds the options
9244 <filename>arg1</filename> and <filename>arg2</filename>
9245 to a module named <filename>mymodule</filename>:
9246 <literallayout class='monospaced'>
9247 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
9248 </literallayout>
9249 </para>
9250
9251 <para>
9252 For information on how to specify kernel modules to
9253 auto-load on boot, see the
9254 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
9255 variable.
9256 </para>
9257 </glossdef>
9258 </glossentry>
9259
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009260 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
9261 <info>
9262 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."
9263 </info>
9264 <glossdef>
9265 <para role="glossdeffirst">
9266<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9267 Controls creation of the <filename>modules-*.tgz</filename>
9268 file.
9269 Set this variable to "0" to disable creation of this
9270 file, which contains all of the kernel modules resulting
9271 from a kernel build.
9272 </para>
9273 </glossdef>
9274 </glossentry>
9275
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009276 <glossentry id='var-MODULE_TARBALL_LINK_NAME'><glossterm>MODULE_TARBALL_LINK_NAME</glossterm>
9277 <info>
9278 MODULE_TARBALL_LINK_NAME[doc] = "The link name of the kernel module tarball."
9279 </info>
9280 <glossdef>
9281 <para role="glossdeffirst">
9282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9283 The link name of the kernel module tarball.
9284 This variable is set in the
9285 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9286 file as follows:
9287 <literallayout class='monospaced'>
9288 MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
9289 </literallayout>
9290 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
9291 variable, which is set in the same file, has the following
9292 value:
9293 <literallayout class='monospaced'>
9294 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
9295 </literallayout>
9296 </para>
9297
9298 <para>
9299 See the
9300 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
9301 variable for additional information.
9302 </para>
9303 </glossdef>
9304 </glossentry>
9305
9306 <glossentry id='var-MODULE_TARBALL_NAME'><glossterm>MODULE_TARBALL_NAME</glossterm>
9307 <info>
9308 MODULE_TARBALL_NAME[doc] = "The base name of the kernel module tarball."
9309 </info>
9310 <glossdef>
9311 <para role="glossdeffirst">
9312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9313 The base name of the kernel module tarball.
9314 This variable is set in the
9315 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9316 file as follows:
9317 <literallayout class='monospaced'>
9318 MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
9319 </literallayout>
9320 The value of the
9321 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
9322 variable, which is set in the same file, has the following
9323 value:
9324 <literallayout class='monospaced'>
9325 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
9326 </literallayout>
9327 </para>
9328 </glossdef>
9329 </glossentry>
9330
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009331<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009332 <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
9333 <info>
9334 MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
9335 </info>
9336 <glossdef>
9337 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009338-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009339<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009340<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009341 Serves the same purpose as
9342 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
9343 but for the "HOST" system, in situations that involve a
9344 "HOST" and a "TARGET" system.
9345 See the
9346 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9347 variable for more information.
9348 </para>
9349
9350 <para>
9351 The default value of this variable is:
9352 <literallayout class='monospaced'>
9353 ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
9354 </literallayout>
9355 </para>
9356 </glossdef>
9357 </glossentry>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009358-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009359
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009360 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
9361 <info>
9362 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
9363 </info>
9364 <glossdef>
9365 <para role="glossdeffirst">
9366<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009367 Uniquely identifies the type of the target system for
9368 which packages are being built.
9369 This variable allows output for different types of target
9370 systems to be put into different subdirectories of the same
9371 output directory.
9372 </para>
9373
9374 <para>
9375 The default value of this variable is:
9376 <literallayout class='monospaced'>
9377 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
9378 </literallayout>
9379 Some classes (e.g.
9380 <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
9381 modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
9382 </para>
9383
9384 <para>
9385 See the
9386 <link linkend='var-STAMP'><filename>STAMP</filename></link>
9387 variable for an example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009388 See the
9389 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9390 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009391 </para>
9392 </glossdef>
9393 </glossentry>
9394
9395 </glossdiv>
9396
9397 <glossdiv id='var-glossary-n'><title>N</title>
9398
9399 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
9400 <info>
9401 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
9402 </info>
9403 <glossdef>
9404 <para role="glossdeffirst">
9405<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9406 A string identifying the host distribution.
9407 Strings consist of the host distributor ID
9408 followed by the release, as reported by the
9409 <filename>lsb_release</filename> tool
9410 or as read from <filename>/etc/lsb-release</filename>.
9411 For example, when running a build on Ubuntu 12.10, the value
9412 is "Ubuntu-12.10".
9413 If this information is unable to be determined, the value
9414 resolves to "Unknown".
9415 </para>
9416
9417 <para>
9418 This variable is used by default to isolate native shared
9419 state packages for different distributions (e.g. to avoid
9420 problems with <filename>glibc</filename> version
9421 incompatibilities).
9422 Additionally, the variable is checked against
9423 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
9424 if that variable is set.
9425 </para>
9426 </glossdef>
9427 </glossentry>
9428
9429 <glossentry id='var-NM'><glossterm>NM</glossterm>
9430 <info>
9431 NM[doc] = "Minimal command and arguments to run 'nm'."
9432 </info>
9433 <glossdef>
9434 <para role="glossdeffirst">
9435<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9436 The minimal command and arguments to run
9437 <filename>nm</filename>.
9438 </para>
9439 </glossdef>
9440 </glossentry>
9441
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009442 <glossentry id='var-NO_GENERIC_LICENSE'><glossterm>NO_GENERIC_LICENSE</glossterm>
9443 <info>
9444 NO_GENERIC_LICENSE[doc] = "Used to allow copying a license that does not exist in common licenses."
9445 </info>
9446 <glossdef>
9447 <para role="glossdeffirst">
9448<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9449 Avoids QA errors when you use a non-common, non-CLOSED
9450 license in a recipe.
9451 Packages exist, such as the linux-firmware package, with
9452 many licenses that are not in any way common.
9453 Also, new licenses are added occasionally to avoid
9454 introducing a lot of common license files, which are only
9455 applicable to a specific package.
9456 <filename>NO_GENERIC_LICENSE</filename> is used to allow
9457 copying a license that does not exist in common licenses.
9458 </para>
9459
9460 <para>
9461 The following example shows how to add
9462 <filename>NO_GENERIC_LICENSE</filename> to a recipe:
9463 <literallayout class='monospaced'>
9464 NO_GENERIC_LICENSE[<replaceable>license_name</replaceable>] = "<replaceable>license_file_in_fetched_source</replaceable>"
9465 </literallayout>
9466 The following is an example that uses the
9467 <filename>LICENSE.Abilis.txt</filename> file as the license
9468 from the fetched source:
9469 <literallayout class='monospaced'>
9470 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
9471 </literallayout>
9472 </para>
9473 </glossdef>
9474 </glossentry>
9475
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009476 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
9477 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009478 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 -05009479 </info>
9480 <glossdef>
9481 <para role="glossdeffirst">
9482<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9483 Prevents installation of all "recommended-only" packages.
9484 Recommended-only packages are packages installed only
9485 through the
9486 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9487 variable).
9488 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
9489 to "1" turns this feature on:
9490 <literallayout class='monospaced'>
9491 NO_RECOMMENDATIONS = "1"
9492 </literallayout>
9493 </para>
9494
9495 <para>
9496 You can set this variable globally in your
9497 <filename>local.conf</filename> file or you can attach it to
9498 a specific image recipe by using the recipe name override:
9499 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009500 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009501 </literallayout>
9502 </para>
9503
9504 <para>
9505 It is important to realize that if you choose to not install
9506 packages using this variable and some other packages are
9507 dependent on them (i.e. listed in a recipe's
9508 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9509 variable), the OpenEmbedded build system ignores your
9510 request and will install the packages to avoid dependency
9511 errors.
9512 <note>
9513 Some recommended packages might be required for certain
9514 system functionality, such as kernel modules.
9515 It is up to you to add packages with the
9516 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9517 variable.
9518 </note>
9519 </para>
9520
9521 <para>
9522 Support for this variable exists only when using the
9523 IPK and RPM packaging backend.
9524 Support does not exist for DEB.
9525 </para>
9526
9527 <para>
9528 See the
9529 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9530 and the
9531 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
9532 variables for related information.
9533 </para>
9534 </glossdef>
9535 </glossentry>
9536
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009537 <glossentry id='var-NOAUTOPACKAGEDEBUG'><glossterm>NOAUTOPACKAGEDEBUG</glossterm>
9538 <info>
9539 NOAUTOPACKAGEDEBUG[doc] = "Disables auto package from splitting .debug files."
9540 </info>
9541 <glossdef>
9542 <para role="glossdeffirst">
9543<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9544 Disables auto package from splitting
9545 <filename>.debug</filename> files. If a recipe requires
9546 <filename>FILES_${PN}-dbg</filename> to be set manually,
9547 the <filename>NOAUTOPACKAGEDEBUG</filename> can be defined
9548 allowing you to define the content of the debug package.
9549 For example:
9550 <literallayout class='monospaced'>
9551 NOAUTOPACKAGEDEBUG = "1"
9552 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
9553 FILES_${PN}-dbg = "/usr/src/debug/"
9554 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
9555 </literallayout>
9556 </para>
9557 </glossdef>
9558 </glossentry>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009559 </glossdiv>
9560
9561 <glossdiv id='var-glossary-o'><title>O</title>
9562
9563 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
9564 <info>
9565 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
9566 </info>
9567 <glossdef>
9568 <para role="glossdeffirst">
9569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9570 The minimal command and arguments to run
9571 <filename>objcopy</filename>.
9572 </para>
9573 </glossdef>
9574 </glossentry>
9575
9576 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
9577 <info>
9578 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
9579 </info>
9580 <glossdef>
9581 <para role="glossdeffirst">
9582<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9583 The minimal command and arguments to run
9584 <filename>objdump</filename>.
9585 </para>
9586 </glossdef>
9587 </glossentry>
9588
9589 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
9590 <info>
9591 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
9592 </info>
9593 <glossdef>
9594 <para role="glossdeffirst">
9595<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9596 When inheriting the
9597 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
9598 class, this variable
9599 specifies additional arguments passed to the "sed" command.
9600 The sed command alters any paths in configuration scripts
9601 that have been set up during compilation.
9602 Inheriting this class results in all paths in these scripts
9603 being changed to point into the
9604 <filename>sysroots/</filename> directory so that all builds
9605 that use the script will use the correct directories
9606 for the cross compiling layout.
9607 </para>
9608
9609 <para>
9610 See the <filename>meta/classes/binconfig.bbclass</filename>
9611 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009612 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009613 for details on how this class applies these additional
9614 sed command arguments.
9615 For general information on the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009616 <filename>binconfig</filename> class, see the
9617 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009618 section.
9619 </para>
9620 </glossdef>
9621 </glossentry>
9622
9623 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
9624 <info>
9625 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."
9626 </info>
9627 <glossdef>
9628 <para role="glossdeffirst">
9629<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9630 An internal variable used to tell the OpenEmbedded build
9631 system what Python modules to import for every Python
9632 function run by the system.
9633 </para>
9634
9635 <note>
9636 Do not set this variable.
9637 It is for internal use only.
9638 </note>
9639 </glossdef>
9640 </glossentry>
9641
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009642 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
9643 <info>
9644 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."
9645 </info>
9646 <glossdef>
9647 <para role="glossdeffirst">
9648<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9649 The name of the build environment setup script for the
9650 purposes of setting up the environment within the
9651 extensible SDK.
9652 The default value is "oe-init-build-env".
9653 </para>
9654
9655 <para>
9656 If you use a custom script to set up your build
9657 environment, set the
9658 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
9659 name.
9660 </para>
9661 </glossdef>
9662 </glossentry>
9663
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009664 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
9665 <info>
9666 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
9667 </info>
9668 <glossdef>
9669 <para role="glossdeffirst">
9670<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9671 Controls how the OpenEmbedded build system spawns
9672 interactive terminals on the host development system
9673 (e.g. using the BitBake command with the
9674 <filename>-c devshell</filename> command-line option).
9675 For more information, see the
9676 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009677 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009678 </para>
9679
9680 <para>
9681 You can use the following values for the
9682 <filename>OE_TERMINAL</filename> variable:
9683 <literallayout class='monospaced'>
9684 auto
9685 gnome
9686 xfce
9687 rxvt
9688 screen
9689 konsole
9690 none
9691 </literallayout>
9692 </para>
9693 </glossdef>
9694 </glossentry>
9695
9696 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
9697 <info>
9698 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
9699 </info>
9700 <glossdef>
9701 <para role="glossdeffirst">
9702<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9703 The directory from which the top-level build environment
9704 setup script is sourced.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009705 The Yocto Project provides a top-level build environment
9706 setup script:
9707 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
9708 When you run this script, the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009709 <filename>OEROOT</filename> variable resolves to the
9710 directory that contains the script.
9711 </para>
9712
9713 <para>
9714 For additional information on how this variable is used,
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009715 see the initialization script.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009716 </para>
9717 </glossdef>
9718 </glossentry>
9719
9720 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
9721 <info>
9722 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
9723 </info>
9724 <glossdef>
9725 <para role="glossdeffirst">
9726<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9727 Declares the oldest version of the Linux kernel that the
9728 produced binaries must support.
9729 This variable is passed into the build of the Embedded
9730 GNU C Library (<filename>glibc</filename>).
9731 </para>
9732
9733 <para>
9734 The default for this variable comes from the
9735 <filename>meta/conf/bitbake.conf</filename> configuration
9736 file.
9737 You can override this default by setting the variable
9738 in a custom distribution configuration file.
9739 </para>
9740 </glossdef>
9741 </glossentry>
9742
9743 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
9744 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009745 OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009746 </info>
9747 <glossdef>
9748 <para role="glossdeffirst">
9749<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009750 A colon-separated list of overrides that currently apply.
9751 Overrides are a BitBake mechanism that allows variables to
9752 be selectively overridden at the end of parsing.
9753 The set of overrides in <filename>OVERRIDES</filename>
9754 represents the "state" during building, which includes
9755 the current recipe being built, the machine for which
9756 it is being built, and so forth.
9757 </para>
9758
9759 <para>
9760 As an example, if the string "an-override" appears as an
9761 element in the colon-separated list in
9762 <filename>OVERRIDES</filename>, then the following
9763 assignment will override <filename>FOO</filename> with the
9764 value "overridden" at the end of parsing:
9765 <literallayout class='monospaced'>
9766 FOO_an-override = "overridden"
9767 </literallayout>
9768 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009769 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009770 section in the BitBake User Manual for more information on
9771 the overrides mechanism.
9772 </para>
9773
9774 <para>
9775 The default value of <filename>OVERRIDES</filename>
9776 includes the values of the
9777 <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
9778 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
9779 and
9780 <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
9781 variables.
9782 Another important override included by default is
9783 <filename>pn-${PN}</filename>.
9784 This override allows variables to be set for a single
9785 recipe within configuration (<filename>.conf</filename>)
9786 files.
9787 Here is an example:
9788 <literallayout class='monospaced'>
9789 FOO_pn-myrecipe = "myrecipe-specific value"
9790 </literallayout>
9791 <note><title>Tip</title>
9792 An easy way to see what overrides apply is to search for
9793 <filename>OVERRIDES</filename> in the output of the
9794 <filename>bitbake -e</filename> command.
9795 See the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009796 "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-debugging-viewing-variable-values'>Viewing Variable Values</ulink>"
9797 section in the Yocto Project Development Tasks
9798 Manual for more information.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009799 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009800 </para>
9801 </glossdef>
9802 </glossentry>
9803 </glossdiv>
9804
9805 <glossdiv id='var-glossary-p'><title>P</title>
9806
9807 <glossentry id='var-P'><glossterm>P</glossterm>
9808 <info>
9809 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
9810 </info>
9811 <glossdef>
9812 <para role="glossdeffirst">
9813<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9814 The recipe name and version.
9815 <filename>P</filename> is comprised of the following:
9816 <literallayout class='monospaced'>
9817 ${PN}-${PV}
9818 </literallayout>
9819 </para>
9820 </glossdef>
9821 </glossentry>
9822
9823 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
9824 <info>
9825 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
9826 </info>
9827 <glossdef>
9828 <para role="glossdeffirst">
9829<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9830 The architecture of the resulting package or packages.
9831 </para>
9832
9833 <para>
9834 By default, the value of this variable is set to
9835 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
9836 when building for the target,
Brad Bishop316dfdd2018-06-25 12:45:53 -04009837 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>
9838 when building for the
9839 build host, and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009840 for the SDK.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009841 <note>
9842 See
9843 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>
9844 for more information.
9845 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009846 However, if your recipe's output packages are built
Brad Bishop316dfdd2018-06-25 12:45:53 -04009847 specific to the target machine rather than generally for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009848 the architecture of the machine, you should set
9849 <filename>PACKAGE_ARCH</filename> to the value of
9850 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
9851 in the recipe as follows:
9852 <literallayout class='monospaced'>
9853 PACKAGE_ARCH = "${MACHINE_ARCH}"
9854 </literallayout>
9855 </para>
9856 </glossdef>
9857 </glossentry>
9858
9859 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
9860 <info>
9861 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
9862 </info>
9863 <glossdef>
9864 <para role="glossdeffirst">
9865<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9866 Specifies a list of architectures compatible with
9867 the target machine.
9868 This variable is set automatically and should not
9869 normally be hand-edited.
9870 Entries are separated using spaces and listed in order
9871 of priority.
9872 The default value for
9873 <filename>PACKAGE_ARCHS</filename> is "all any noarch
9874 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
9875 </para>
9876 </glossdef>
9877 </glossentry>
9878
9879 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
9880 <info>
9881 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."
9882 </info>
9883 <glossdef>
9884 <para role="glossdeffirst">
9885<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9886 Enables easily adding packages to
9887 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
9888 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
9889 so that those added packages can pick up files that would normally be
9890 included in the default package.
9891 </para>
9892 </glossdef>
9893 </glossentry>
9894
9895 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
9896 <info>
9897 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."
9898 </info>
9899 <glossdef>
9900 <para role="glossdeffirst">
9901<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9902 This variable, which is set in the
9903 <filename>local.conf</filename> configuration file found in
9904 the <filename>conf</filename> folder of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009905 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009906 specifies the package manager the OpenEmbedded build system
9907 uses when packaging data.
9908 </para>
9909
9910 <para>
9911 You can provide one or more of the following arguments for
9912 the variable:
9913 <literallayout class='monospaced'>
9914 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
9915 </literallayout>
9916 <note><title>Warning</title>
9917 While it is a legal option, the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009918 <filename>package_tar</filename> class has limited
9919 functionality due to no support for package
9920 dependencies by that backend.
9921 Therefore, it is recommended that you do not use it.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009922 </note>
9923 The build system uses only the first argument in the list
9924 as the package manager when creating your image or SDK.
9925 However, packages will be created using any additional
9926 packaging classes you specify.
9927 For example, if you use the following in your
9928 <filename>local.conf</filename> file:
9929 <literallayout class='monospaced'>
9930 PACKAGE_CLASSES ?= "package_ipk"
9931 </literallayout>
9932 The OpenEmbedded build system uses the IPK package manager
9933 to create your image or SDK.
9934 </para>
9935
9936 <para>
9937 For information on packaging and build performance effects
9938 as a result of the package manager in use, see the
9939 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
9940 section.
9941 </para>
9942 </glossdef>
9943 </glossentry>
9944
9945 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
9946 <info>
9947 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)."
9948 </info>
9949 <glossdef>
9950 <para role="glossdeffirst">
9951<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9952 Determines how to split up the binary and debug information
9953 when creating <filename>*-dbg</filename> packages to be
9954 used with the GNU Project Debugger (GDB).
9955 </para>
9956
9957 <para>
9958 With the
9959 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
9960 you can control where debug information, which can include
9961 or exclude source files, is stored:
9962 <itemizedlist>
9963 <listitem><para>
9964 ".debug": Debug symbol files are placed next
9965 to the binary in a <filename>.debug</filename>
9966 directory on the target.
9967 For example, if a binary is installed into
9968 <filename>/bin</filename>, the corresponding debug
9969 symbol files are installed in
9970 <filename>/bin/.debug</filename>.
9971 Source files are placed in
9972 <filename>/usr/src/debug</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009973 </para></listitem>
9974 <listitem><para>
9975 "debug-file-directory": Debug symbol files are
9976 placed under <filename>/usr/lib/debug</filename>
9977 on the target, and separated by the path from where
9978 the binary is installed.
9979 For example, if a binary is installed in
9980 <filename>/bin</filename>, the corresponding debug
9981 symbols are installed in
9982 <filename>/usr/lib/debug/bin</filename>.
9983 Source files are placed in
9984 <filename>/usr/src/debug</filename>.
9985 </para></listitem>
9986 <listitem><para>
9987 "debug-without-src": The same behavior as
9988 ".debug" previously described with the exception
9989 that no source files are installed.
9990 </para></listitem>.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009991 <listitem><para>
9992 "debug-with-srcpkg": The same behavior as
9993 ".debug" previously described with the exception
9994 that all source files are placed in a separate
9995 <filename>*-src</filename> pkg.
Brad Bishop19323692019-04-05 15:28:33 -04009996 This is the default behavior.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009997 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009998 </itemizedlist>
9999 </para>
10000
10001 <para>
10002 You can find out more about debugging using GDB by reading
10003 the
10004 "<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 -050010005 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010006 </para>
10007 </glossdef>
10008 </glossentry>
10009
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010010 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
10011 <info>
10012 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
10013 </info>
10014 <glossdef>
10015 <para role="glossdeffirst">
10016<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10017 Prevents specific packages from being installed when
10018 you are installing complementary packages.
10019 </para>
10020
10021 <para>
10022 You might find that you want to prevent installing certain
10023 packages when you are installing complementary packages.
10024 For example, if you are using
10025 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
10026 to install <filename>dev-pkgs</filename>, you might not want
10027 to install all packages from a particular multilib.
10028 If you find yourself in this situation, you can use the
10029 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
10030 to specify regular expressions to match the packages you
10031 want to exclude.
10032 </para>
10033 </glossdef>
10034 </glossentry>
10035
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010036 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
10037 <info>
10038 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
10039 </info>
10040 <glossdef>
10041 <para role="glossdeffirst">
10042<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10043 Lists packages that should not be installed into an image.
10044 For example:
10045 <literallayout class='monospaced'>
10046 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
10047 </literallayout>
10048 </para>
10049
10050 <para>
10051 You can set this variable globally in your
10052 <filename>local.conf</filename> file or you can attach it to
10053 a specific image recipe by using the recipe name override:
10054 <literallayout class='monospaced'>
10055 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
10056 </literallayout>
10057 </para>
10058
10059 <para>
10060 If you choose to not install
10061 a package using this variable and some other package is
10062 dependent on it (i.e. listed in a recipe's
10063 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10064 variable), the OpenEmbedded build system generates a fatal
10065 installation error.
10066 Because the build system halts the process with a fatal
10067 error, you can use the variable with an iterative
10068 development process to remove specific components from a
10069 system.
10070 </para>
10071
10072 <para>
10073 Support for this variable exists only when using the
10074 IPK and RPM packaging backend.
10075 Support does not exist for DEB.
10076 </para>
10077
10078 <para>
10079 See the
10080 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
10081 and the
10082 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
10083 variables for related information.
10084 </para>
10085 </glossdef>
10086 </glossentry>
10087
10088 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
10089 <info>
10090 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."
10091 </info>
10092 <glossdef>
10093 <para role="glossdeffirst">
10094<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10095 Specifies the list of architectures compatible with the device CPU.
10096 This variable is useful when you build for several different devices that use
10097 miscellaneous processors such as XScale and ARM926-EJS.
10098 </para>
10099 </glossdef>
10100 </glossentry>
10101
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010102 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
10103 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010104 PACKAGE_FEED_ARCHS[doc] = "Optionally specifies user-defined package architectures when constructing package feed URIs."
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010105 </info>
10106 <glossdef>
10107 <para role="glossdeffirst">
10108<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010109 Optionally specifies the package architectures used as
10110 part of the package feed URIs during the build.
10111 When used, the <filename>PACKAGE_FEED_ARCHS</filename>
10112 variable is appended to the final package feed URI, which
10113 is constructed using the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010114 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
10115 and
10116 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
10117 variables.
Brad Bishop316dfdd2018-06-25 12:45:53 -040010118 <note><title>Tip</title>
10119 You can use the <filename>PACKAGE_FEEDS_ARCHS</filename>
10120 variable to whitelist specific package architectures.
10121 If you do not need to whitelist specific architectures,
10122 which is a common case, you can omit this variable.
10123 Omitting the variable results in all available
10124 architectures for the current machine being included
10125 into remote package feeds.
10126 </note>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010127 </para>
10128
10129 <para>
10130 Consider the following example where the
10131 <filename>PACKAGE_FEED_URIS</filename>,
10132 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
10133 <filename>PACKAGE_FEED_ARCHS</filename> variables are
10134 defined in your <filename>local.conf</filename> file:
10135 <literallayout class='monospaced'>
10136 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
10137 https://example.com/packagerepos/updates"
10138 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
10139 PACKAGE_FEED_ARCHS = "all core2-64"
10140 </literallayout>
10141 Given these settings, the resulting package feeds are
10142 as follows:
10143 <literallayout class='monospaced'>
10144 https://example.com/packagerepos/release/rpm/all
10145 https://example.com/packagerepos/release/rpm/core2-64
10146 https://example.com/packagerepos/release/rpm-dev/all
10147 https://example.com/packagerepos/release/rpm-dev/core2-64
10148 https://example.com/packagerepos/updates/rpm/all
10149 https://example.com/packagerepos/updates/rpm/core2-64
10150 https://example.com/packagerepos/updates/rpm-dev/all
10151 https://example.com/packagerepos/updates/rpm-dev/core2-64
10152 </literallayout>
10153 </para>
10154 </glossdef>
10155 </glossentry>
10156
10157 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
10158 <info>
10159 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
10160 </info>
10161 <glossdef>
10162 <para role="glossdeffirst">
10163<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10164 Specifies the base path used when constructing package feed
10165 URIs.
10166 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
10167 makes up the middle portion of a package feed URI used
10168 by the OpenEmbedded build system.
10169 The base path lies between the
10170 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
10171 and
10172 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
10173 variables.
10174 </para>
10175
10176 <para>
10177 Consider the following example where the
10178 <filename>PACKAGE_FEED_URIS</filename>,
10179 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
10180 <filename>PACKAGE_FEED_ARCHS</filename> variables are
10181 defined in your <filename>local.conf</filename> file:
10182 <literallayout class='monospaced'>
10183 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
10184 https://example.com/packagerepos/updates"
10185 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
10186 PACKAGE_FEED_ARCHS = "all core2-64"
10187 </literallayout>
10188 Given these settings, the resulting package feeds are
10189 as follows:
10190 <literallayout class='monospaced'>
10191 https://example.com/packagerepos/release/rpm/all
10192 https://example.com/packagerepos/release/rpm/core2-64
10193 https://example.com/packagerepos/release/rpm-dev/all
10194 https://example.com/packagerepos/release/rpm-dev/core2-64
10195 https://example.com/packagerepos/updates/rpm/all
10196 https://example.com/packagerepos/updates/rpm/core2-64
10197 https://example.com/packagerepos/updates/rpm-dev/all
10198 https://example.com/packagerepos/updates/rpm-dev/core2-64
10199 </literallayout>
10200 </para>
10201 </glossdef>
10202 </glossentry>
10203
10204 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
10205 <info>
10206 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
10207 </info>
10208 <glossdef>
10209 <para role="glossdeffirst">
10210<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10211 Specifies the front portion of the package feed URI
10212 used by the OpenEmbedded build system.
10213 Each final package feed URI is comprised of
10214 <filename>PACKAGE_FEED_URIS</filename>,
10215 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
10216 and
10217 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
10218 variables.
10219 </para>
10220
10221 <para>
10222 Consider the following example where the
10223 <filename>PACKAGE_FEED_URIS</filename>,
10224 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
10225 <filename>PACKAGE_FEED_ARCHS</filename> variables are
10226 defined in your <filename>local.conf</filename> file:
10227 <literallayout class='monospaced'>
10228 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
10229 https://example.com/packagerepos/updates"
10230 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
10231 PACKAGE_FEED_ARCHS = "all core2-64"
10232 </literallayout>
10233 Given these settings, the resulting package feeds are
10234 as follows:
10235 <literallayout class='monospaced'>
10236 https://example.com/packagerepos/release/rpm/all
10237 https://example.com/packagerepos/release/rpm/core2-64
10238 https://example.com/packagerepos/release/rpm-dev/all
10239 https://example.com/packagerepos/release/rpm-dev/core2-64
10240 https://example.com/packagerepos/updates/rpm/all
10241 https://example.com/packagerepos/updates/rpm/core2-64
10242 https://example.com/packagerepos/updates/rpm-dev/all
10243 https://example.com/packagerepos/updates/rpm-dev/core2-64
10244 </literallayout>
10245 </para>
10246 </glossdef>
10247 </glossentry>
10248
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010249 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
10250 <info>
10251 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
10252 </info>
10253 <glossdef>
10254 <para role="glossdeffirst">
10255<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10256 The <filename>PACKAGE_GROUP</filename> variable has been
10257 renamed to
10258 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
10259 See the variable description for
10260 <filename>FEATURE_PACKAGES</filename> for information.
10261 </para>
10262
10263 <para>
10264 If if you use the <filename>PACKAGE_GROUP</filename>
10265 variable, the OpenEmbedded build system issues a warning
10266 message.
10267 </para>
10268 </glossdef>
10269 </glossentry>
10270
10271 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
10272 <info>
10273 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."
10274 </info>
10275 <glossdef>
10276 <para role="glossdeffirst">
10277<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10278 The final list of packages passed to the package manager
10279 for installation into the image.
10280 </para>
10281
10282 <para>
10283 Because the package manager controls actual installation
10284 of all packages, the list of packages passed using
10285 <filename>PACKAGE_INSTALL</filename> is not the final list
10286 of packages that are actually installed.
10287 This variable is internal to the image construction
10288 code.
10289 Consequently, in general, you should use the
10290 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
10291 variable to specify packages for installation.
10292 The exception to this is when working with
10293 the
10294 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
10295 image.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010296 When working with an initial RAM filesystem (initramfs)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010297 image, use the <filename>PACKAGE_INSTALL</filename>
10298 variable.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010299 For information on creating an initramfs, see the
10300 "<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 -050010301 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010302 </para>
10303 </glossdef>
10304 </glossentry>
10305
10306 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
10307 <info>
10308 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."
10309 </info>
10310 <glossdef>
10311 <para role="glossdeffirst">
10312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10313 Specifies a list of packages the OpenEmbedded build
10314 system attempts to install when creating an image.
10315 If a listed package fails to install, the build system
10316 does not generate an error.
10317 This variable is generally not user-defined.
10318 </para>
10319 </glossdef>
10320 </glossentry>
10321
10322 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
10323 <info>
10324 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."
10325 </info>
10326 <glossdef>
10327 <para role="glossdeffirst">
10328<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10329 Specifies a list of functions run to pre-process the
10330 <link linkend='var-PKGD'><filename>PKGD</filename></link>
10331 directory prior to splitting the files out to individual
10332 packages.
10333 </para>
10334 </glossdef>
10335 </glossentry>
10336
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010337 <glossentry id='var-PACKAGE_WRITE_DEPS'><glossterm>PACKAGE_WRITE_DEPS</glossterm>
10338 <info>
10339 PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools."
10340 </info>
10341 <glossdef>
10342 <para role="glossdeffirst">
10343<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10344 Specifies a list of dependencies for post-installation and
10345 pre-installation scripts on native/cross tools.
10346 If your post-installation or pre-installation script can
10347 execute at rootfs creation time rather than on the
10348 target but depends on a native tool in order to execute,
10349 you need to list the tools in
Brad Bishopd5ae7d92018-06-14 09:52:03 -070010350 <filename>PACKAGE_WRITE_DEPS</filename>.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010351 </para>
10352
10353 <para>
10354 For information on running post-installation scripts, see
10355 the
10356 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-post-installation-scripts'>Post-Installation Scripts</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010357 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010358 </para>
10359 </glossdef>
10360 </glossentry>
10361
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010362 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
10363 <info>
10364 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
10365 </info>
10366 <glossdef>
10367 <para role="glossdeffirst">
10368<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10369 This variable provides a means of enabling or disabling
10370 features of a recipe on a per-recipe basis.
10371 <filename>PACKAGECONFIG</filename> blocks are defined
10372 in recipes when you specify features and then arguments
10373 that define feature behaviors.
10374 Here is the basic block structure:
10375 <literallayout class='monospaced'>
10376 PACKAGECONFIG ??= "f1 f2 f3 ..."
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010377 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1,rt-recs-f1"
10378 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2,rt-recs-f2"
10379 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3,rt-recs-f3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010380 </literallayout>
10381 </para>
10382
10383 <para>
10384 The <filename>PACKAGECONFIG</filename>
10385 variable itself specifies a space-separated list of the
10386 features to enable.
10387 Following the features, you can determine the behavior of
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010388 each feature by providing up to five order-dependent
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010389 arguments, which are separated by commas.
10390 You can omit any argument you like but must retain the
10391 separating commas.
10392 The order is important and specifies the following:
10393 <orderedlist>
10394 <listitem><para>Extra arguments
10395 that should be added to the configure script
10396 argument list
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010397 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
10398 or
10399 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010400 if the feature is enabled.</para></listitem>
10401 <listitem><para>Extra arguments
10402 that should be added to <filename>EXTRA_OECONF</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010403 or <filename>PACKAGECONFIG_CONFARGS</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010404 if the feature is disabled.
10405 </para></listitem>
10406 <listitem><para>Additional build dependencies
10407 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
10408 that should be added if the feature is enabled.
10409 </para></listitem>
10410 <listitem><para>Additional runtime dependencies
10411 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10412 that should be added if the feature is enabled.
10413 </para></listitem>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010414 <listitem><para>Additional runtime recommendations
10415 (<link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>)
10416 that should be added if the feature is enabled.
10417 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010418 </orderedlist>
10419 </para>
10420
10421 <para>
10422 Consider the following
10423 <filename>PACKAGECONFIG</filename> block taken from the
10424 <filename>librsvg</filename> recipe.
10425 In this example the feature is <filename>croco</filename>,
10426 which has three arguments that determine the feature's
10427 behavior.
10428 <literallayout class='monospaced'>
10429 PACKAGECONFIG ??= "croco"
10430 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
10431 </literallayout>
10432 The <filename>--with-croco</filename> and
10433 <filename>libcroco</filename> arguments apply only if
10434 the feature is enabled.
10435 In this case, <filename>--with-croco</filename> is
10436 added to the configure script argument list and
10437 <filename>libcroco</filename> is added to
Brad Bishop316dfdd2018-06-25 12:45:53 -040010438 <filename>DEPENDS</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010439 On the other hand, if the feature is disabled say through
10440 a <filename>.bbappend</filename> file in another layer, then
10441 the second argument <filename>--without-croco</filename> is
10442 added to the configure script rather than
10443 <filename>--with-croco</filename>.
10444 </para>
10445
10446 <para>
10447 The basic <filename>PACKAGECONFIG</filename> structure
10448 previously described holds true regardless of whether you
10449 are creating a block or changing a block.
10450 When creating a block, use the structure inside your
10451 recipe.
10452 </para>
10453
10454 <para>
10455 If you want to change an existing
10456 <filename>PACKAGECONFIG</filename> block, you can do so
10457 one of two ways:
10458 <itemizedlist>
10459 <listitem><para><emphasis>Append file:</emphasis>
10460 Create an append file named
10461 <replaceable>recipename</replaceable><filename>.bbappend</filename>
10462 in your layer and override the value of
10463 <filename>PACKAGECONFIG</filename>.
10464 You can either completely override the variable:
10465 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010466 PACKAGECONFIG = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010467 </literallayout>
10468 Or, you can just append the variable:
10469 <literallayout class='monospaced'>
10470 PACKAGECONFIG_append = " f4"
10471 </literallayout></para></listitem>
10472 <listitem><para><emphasis>Configuration file:</emphasis>
10473 This method is identical to changing the block
10474 through an append file except you edit your
10475 <filename>local.conf</filename> or
10476 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
10477 As with append files previously described,
10478 you can either completely override the variable:
10479 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010480 PACKAGECONFIG_pn-<replaceable>recipename</replaceable> = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010481 </literallayout>
10482 Or, you can just amend the variable:
10483 <literallayout class='monospaced'>
10484 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
10485 </literallayout></para></listitem>
10486 </itemizedlist>
10487 </para>
10488 </glossdef>
10489 </glossentry>
10490
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010491 <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
10492 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010493 PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from the PACKAGECONFIG setting."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010494 </info>
10495 <glossdef>
10496 <para role="glossdeffirst">
10497<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10498 A space-separated list of configuration options generated
10499 from the
10500 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
10501 setting.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010502 </para>
10503
10504 <para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010505 Classes such as
10506 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
10507 and
10508 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
10509 use <filename>PACKAGECONFIG_CONFARGS</filename> to pass
Brad Bishop316dfdd2018-06-25 12:45:53 -040010510 <filename>PACKAGECONFIG</filename> options to
10511 <filename>configure</filename> and
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010512 <filename>cmake</filename>, respectively.
10513 If you are using
10514 <filename>PACKAGECONFIG</filename> but not a class that
10515 handles the <filename>do_configure</filename> task, then
10516 you need to use
10517 <filename>PACKAGECONFIG_CONFARGS</filename> appropriately.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010518 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010519 </glossdef>
10520 </glossentry>
10521
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010522 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
10523 <info>
10524 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
10525 </info>
10526 <glossdef>
10527 <para role="glossdeffirst">
10528<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10529 For recipes inheriting the
10530 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
10531 class, setting
10532 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
10533 "1" specifies that the normal complementary packages
10534 (i.e. <filename>-dev</filename>,
10535 <filename>-dbg</filename>, and so forth) should not be
10536 automatically created by the
10537 <filename>packagegroup</filename> recipe, which is the
10538 default behavior.
10539 </para>
10540 </glossdef>
10541 </glossentry>
10542
10543 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
10544 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010545 PACKAGES[doc] = "The list of packages the recipe creates."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010546 </info>
10547 <glossdef>
10548 <para role="glossdeffirst">
10549<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010550 The list of packages the recipe creates.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010551 The default value is the following:
10552 <literallayout class='monospaced'>
10553 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
10554 </literallayout>
10555 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010556
10557 <para>
10558 During packaging, the
10559 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
10560 task goes through <filename>PACKAGES</filename> and uses
10561 the
10562 <link linkend='var-FILES'><filename>FILES</filename></link>
10563 variable corresponding to each package to assign files to
10564 the package.
10565 If a file matches the <filename>FILES</filename> variable
10566 for more than one package in <filename>PACKAGES</filename>,
10567 it will be assigned to the earliest (leftmost) package.
10568 </para>
10569
10570 <para>
10571 Packages in the variable's list that are empty (i.e. where
10572 none of the patterns in
10573 <filename>FILES_</filename><replaceable>pkg</replaceable>
10574 match any files installed by the
10575 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10576 task) are not generated, unless generation is forced through
10577 the
10578 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
10579 variable.
10580 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010581 </glossdef>
10582 </glossentry>
10583
10584 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
10585 <info>
10586 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
10587 </info>
10588 <glossdef>
10589 <para role="glossdeffirst">
10590<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10591 A promise that your recipe satisfies runtime dependencies
10592 for optional modules that are found in other recipes.
10593 <filename>PACKAGES_DYNAMIC</filename>
10594 does not actually satisfy the dependencies, it only states that
10595 they should be satisfied.
10596 For example, if a hard, runtime dependency
10597 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10598 of another package is satisfied
10599 at build time through the <filename>PACKAGES_DYNAMIC</filename>
10600 variable, but a package with the module name is never actually
10601 produced, then the other package will be broken.
10602 Thus, if you attempt to include that package in an image,
10603 you will get a dependency failure from the packaging system
10604 during the
10605 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
10606 task.
10607 </para>
10608
10609 <para>
10610 Typically, if there is a chance that such a situation can
10611 occur and the package that is not created is valid
10612 without the dependency being satisfied, then you should use
10613 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
10614 (a soft runtime dependency) instead of
10615 <filename>RDEPENDS</filename>.
10616 </para>
10617
10618 <para>
10619 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
10620 variable when you are splitting packages, see the
10621 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010622 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010623 </para>
10624 </glossdef>
10625 </glossentry>
10626
10627 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
10628 <info>
10629 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
10630 </info>
10631 <glossdef>
10632 <para role="glossdeffirst">
10633<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10634 Specifies a list of functions run to perform additional
10635 splitting of files into individual packages.
10636 Recipes can either prepend to this variable or prepend
10637 to the <filename>populate_packages</filename> function
10638 in order to perform additional package splitting.
10639 In either case, the function should set
10640 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
10641 <link linkend='var-FILES'><filename>FILES</filename></link>,
10642 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10643 and other packaging variables appropriately in order to
10644 perform the desired splitting.
10645 </para>
10646 </glossdef>
10647 </glossentry>
10648
10649 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
10650 <info>
10651 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."
10652 </info>
10653 <glossdef>
10654 <para role="glossdeffirst">
10655<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10656 Extra options passed to the <filename>make</filename>
10657 command during the
10658 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
10659 task in order to specify parallel compilation on the local
10660 build host.
10661 This variable is usually in the form "-j <replaceable>x</replaceable>",
10662 where <replaceable>x</replaceable> represents the maximum
10663 number of parallel threads <filename>make</filename> can
10664 run.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010665 <note><title>Caution</title>
10666 In order for <filename>PARALLEL_MAKE</filename> to be
10667 effective, <filename>make</filename> must be called
10668 with
10669 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10670 An easy way to ensure this is to use the
10671 <filename>oe_runmake</filename> function.
10672 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010673 </para>
10674
10675 <para>
10676 By default, the OpenEmbedded build system automatically
10677 sets this variable to be equal to the number of cores the
10678 build system uses.
10679 <note>
10680 If the software being built experiences dependency
10681 issues during the <filename>do_compile</filename>
10682 task that result in race conditions, you can clear
10683 the <filename>PARALLEL_MAKE</filename> variable within
10684 the recipe as a workaround.
10685 For information on addressing race conditions, see the
10686 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010687 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010688 </note>
10689 For single socket systems (i.e. one CPU), you should not
10690 have to override this variable to gain optimal parallelism
10691 during builds.
10692 However, if you have very large systems that employ
10693 multiple physical CPUs, you might want to make sure the
10694 <filename>PARALLEL_MAKE</filename> variable is not
10695 set higher than "-j 20".
10696 </para>
10697
10698 <para>
10699 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010700 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
10701 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010702 </para>
10703 </glossdef>
10704 </glossentry>
10705
10706 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
10707 <info>
10708 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
10709 </info>
10710 <glossdef>
10711 <para role="glossdeffirst">
10712<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10713 Extra options passed to the
10714 <filename>make install</filename> command during the
10715 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10716 task in order to specify parallel installation.
10717 This variable defaults to the value of
10718 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010719 <note><title>Notes and Cautions</title>
10720 <para>In order for <filename>PARALLEL_MAKEINST</filename>
10721 to be
10722 effective, <filename>make</filename> must be called
10723 with
10724 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10725 An easy way to ensure this is to use the
10726 <filename>oe_runmake</filename> function.</para>
10727
10728 <para>If the software being built experiences
10729 dependency issues during the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010730 <filename>do_install</filename> task that result in
10731 race conditions, you can clear the
10732 <filename>PARALLEL_MAKEINST</filename> variable within
10733 the recipe as a workaround.
10734 For information on addressing race conditions, see the
10735 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010736 section in the Yocto Project Development Tasks Manual.
10737 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010738 </note>
10739 </para>
10740 </glossdef>
10741 </glossentry>
10742
10743 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
10744 <info>
10745 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
10746 </info>
10747 <glossdef>
10748 <para role="glossdeffirst">
10749<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10750 Determines the action to take when a patch fails.
10751 You can set this variable to one of two values: "noop" and
10752 "user".
10753 </para>
10754
10755 <para>
10756 The default value of "noop" causes the build to simply fail
10757 when the OpenEmbedded build system cannot successfully
10758 apply a patch.
10759 Setting the value to "user" causes the build system to
10760 launch a shell and places you in the right location so that
10761 you can manually resolve the conflicts.
10762 </para>
10763
10764 <para>
10765 Set this variable in your
10766 <filename>local.conf</filename> file.
10767 </para>
10768 </glossdef>
10769 </glossentry>
10770
10771 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
10772 <info>
10773 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
10774 </info>
10775 <glossdef>
10776 <para role="glossdeffirst">
10777<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10778 Specifies the utility used to apply patches for a recipe
10779 during the
10780 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
10781 task.
10782 You can specify one of three utilities: "patch", "quilt", or
10783 "git".
10784 The default utility used is "quilt" except for the
10785 quilt-native recipe itself.
10786 Because the quilt tool is not available at the
10787 time quilt-native is being patched, it uses "patch".
10788 </para>
10789
10790 <para>
10791 If you wish to use an alternative patching tool, set the
10792 variable in the recipe using one of the following:
10793 <literallayout class='monospaced'>
10794 PATCHTOOL = "patch"
10795 PATCHTOOL = "quilt"
10796 PATCHTOOL = "git"
10797 </literallayout>
10798 </para>
10799 </glossdef>
10800 </glossentry>
10801
10802 <glossentry id='var-PE'><glossterm>PE</glossterm>
10803 <info>
10804 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."
10805 </info>
10806 <glossdef>
10807 <para role="glossdeffirst">
10808<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10809 The epoch of the recipe.
10810 By default, this variable is unset.
10811 The variable is used to make upgrades possible when the
10812 versioning scheme changes in some backwards incompatible
10813 way.
10814 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010815
10816 <para>
10817 <filename>PE</filename> is the default value of the
10818 <link linkend='var-PKGE'><filename>PKGE</filename></link>
10819 variable.
10820 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010821 </glossdef>
10822 </glossentry>
10823
10824 <glossentry id='var-PF'><glossterm>PF</glossterm>
10825 <info>
10826 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
10827 </info>
10828 <glossdef>
10829 <para role="glossdeffirst">
10830<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10831 Specifies the recipe or package name and includes all version and revision
10832 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
10833 <filename>bash-4.2-r1/</filename>).
10834 This variable is comprised of the following:
10835 <literallayout class='monospaced'>
10836 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
10837 </literallayout>
10838 </para>
10839 </glossdef>
10840 </glossentry>
10841
10842 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
10843 <info>
10844 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
10845 </info>
10846 <glossdef>
10847 <para role="glossdeffirst">
10848<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10849 When inheriting the
10850 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
10851 class, this variable identifies packages that contain
10852 the pixbuf loaders used with
10853 <filename>gdk-pixbuf</filename>.
10854 By default, the <filename>pixbufcache</filename> class
10855 assumes that the loaders are in the recipe's main package
10856 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
10857 Use this variable if the loaders you need are in a package
10858 other than that main package.
10859 </para>
10860 </glossdef>
10861 </glossentry>
10862
10863 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
10864 <info>
10865 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."
10866 </info>
10867 <glossdef>
10868 <para role="glossdeffirst">
10869<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10870 The name of the resulting package created by the
10871 OpenEmbedded build system.
10872 <note>
10873 When using the <filename>PKG</filename> variable, you
10874 must use a package name override.
10875 </note>
10876 </para>
10877
10878 <para>
10879 For example, when the
10880 <link linkend='ref-classes-debian'><filename>debian</filename></link>
10881 class renames the output package, it does so by setting
10882 <filename>PKG_<replaceable>packagename</replaceable></filename>.
10883 </para>
10884 </glossdef>
10885 </glossentry>
10886
10887 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
10888 <info>
10889 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
10890 </info>
10891 <glossdef>
10892 <para role="glossdeffirst">
10893<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10894 The path to <filename>pkg-config</filename> files for the
10895 current build context.
10896 <filename>pkg-config</filename> reads this variable
10897 from the environment.
10898 </para>
10899 </glossdef>
10900 </glossentry>
10901
10902 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
10903 <info>
10904 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
10905 </info>
10906 <glossdef>
10907 <para role="glossdeffirst">
10908<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10909 Points to the destination directory for files to be
10910 packaged before they are split into individual packages.
10911 This directory defaults to the following:
10912 <literallayout class='monospaced'>
10913 ${WORKDIR}/package
10914 </literallayout>
10915 </para>
10916
10917 <para>
10918 Do not change this default.
10919 </para>
10920 </glossdef>
10921 </glossentry>
10922
10923 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
10924 <info>
10925 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
10926 </info>
10927 <glossdef>
10928 <para role="glossdeffirst">
10929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10930 Points to a shared, global-state directory that holds data
10931 generated during the packaging process.
10932 During the packaging process, the
10933 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10934 task packages data for each recipe and installs it into
10935 this temporary, shared area.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010936 This directory defaults to the following, which you should
10937 not change:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010938 <literallayout class='monospaced'>
10939 ${STAGING_DIR_HOST}/pkgdata
10940 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010941 For examples of how this data is used, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010942 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
10943 section in the Yocto Project Overview and Concepts Manual
10944 and the
10945 "<ulink url='&YOCTO_DOCS_DEV_URL;#viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></ulink>"
10946 section in the Yocto Project Development Tasks Manual.
10947 For more information on the shared, global-state directory,
10948 see
10949 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010950 </para>
10951 </glossdef>
10952 </glossentry>
10953
10954 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
10955 <info>
10956 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
10957 </info>
10958 <glossdef>
10959 <para role="glossdeffirst">
10960<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10961 Points to the parent directory for files to be packaged
10962 after they have been split into individual packages.
10963 This directory defaults to the following:
10964 <literallayout class='monospaced'>
10965 ${WORKDIR}/packages-split
10966 </literallayout>
10967 </para>
10968
10969 <para>
10970 Under this directory, the build system creates
10971 directories for each package specified in
10972 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
10973 Do not change this default.
10974 </para>
10975 </glossdef>
10976 </glossentry>
10977
10978 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
10979 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010980 PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010981 </info>
10982 <glossdef>
10983 <para role="glossdeffirst">
10984<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010985 Points to a temporary work area where the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010986 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010987 task saves package metadata.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010988 The <filename>PKGDESTWORK</filename> location defaults to
10989 the following:
10990 <literallayout class='monospaced'>
10991 ${WORKDIR}/pkgdata
10992 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010993 Do not change this default.
10994 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010995
10996 <para>
10997 The
10998 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10999 task copies the package metadata from
11000 <filename>PKGDESTWORK</filename> to
11001 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
11002 to make it available globally.
11003 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011004 </glossdef>
11005 </glossentry>
11006
11007 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
11008 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011009 PKGE[doc] = "The epoch of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011010 </info>
11011 <glossdef>
11012 <para role="glossdeffirst">
11013<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011014 The epoch of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011015 By default, <filename>PKGE</filename> is set to
11016 <link linkend='var-PE'><filename>PE</filename></link>.
11017 </para>
11018 </glossdef>
11019 </glossentry>
11020
11021 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
11022 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011023 PKGR[doc] = "The revision of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011024 </info>
11025 <glossdef>
11026 <para role="glossdeffirst">
11027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011028 The revision of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011029 By default, <filename>PKGR</filename> is set to
11030 <link linkend='var-PR'><filename>PR</filename></link>.
11031 </para>
11032 </glossdef>
11033 </glossentry>
11034
11035 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
11036 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011037 PKGV[doc] = "The version of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011038 </info>
11039 <glossdef>
11040 <para role="glossdeffirst">
11041<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011042 The version of the package(s) built by the
11043 recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011044 By default, <filename>PKGV</filename> is set to
11045 <link linkend='var-PV'><filename>PV</filename></link>.
11046 </para>
11047 </glossdef>
11048 </glossentry>
11049
11050 <glossentry id='var-PN'><glossterm>PN</glossterm>
11051 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011052 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 -050011053 </info>
11054 <glossdef>
11055 <para role="glossdeffirst">
11056<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11057 This variable can have two separate functions depending on the context: a recipe
11058 name or a resulting package name.
11059 </para>
11060
11061 <para>
11062 <filename>PN</filename> refers to a recipe name in the context of a file used
11063 by the OpenEmbedded build system as input to create a package.
11064 The name is normally extracted from the recipe file name.
11065 For example, if the recipe is named
11066 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
11067 will be "expat".
11068 </para>
11069
11070 <para>
11071 The variable refers to a package name in the context of a file created or produced by the
11072 OpenEmbedded build system.
11073 </para>
11074
11075 <para>
11076 If applicable, the <filename>PN</filename> variable also contains any special
11077 suffix or prefix.
11078 For example, using <filename>bash</filename> to build packages for the native
11079 machine, <filename>PN</filename> is <filename>bash-native</filename>.
11080 Using <filename>bash</filename> to build packages for the target and for Multilib,
11081 <filename>PN</filename> would be <filename>bash</filename> and
11082 <filename>lib64-bash</filename>, respectively.
11083 </para>
11084 </glossdef>
11085 </glossentry>
11086
11087 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
11088 <info>
11089 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
11090 </info>
11091 <glossdef>
11092 <para role="glossdeffirst">
11093<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11094 Lists recipes you do not want the OpenEmbedded build system
11095 to build.
11096 This variable works in conjunction with the
11097 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011098 class, which is inherited globally.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011099 </para>
11100
11101 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011102 To prevent a recipe from being built, use the
11103 <filename>PNBLACKLIST</filename> variable in your
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011104 <filename>local.conf</filename> file.
11105 Here is an example that prevents
11106 <filename>myrecipe</filename> from being built:
11107 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011108 PNBLACKLIST[myrecipe] = "Not supported by our organization."
11109 </literallayout>
11110 </para>
11111 </glossdef>
11112 </glossentry>
11113
11114 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
11115 <info>
11116 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."
11117 </info>
11118 <glossdef>
11119 <para role="glossdeffirst">
11120<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11121 Specifies a list of functions to call once the
11122 OpenEmbedded build system has created the host part of
11123 the SDK.
11124 You can specify functions separated by semicolons:
11125 <literallayout class='monospaced'>
11126 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
11127 </literallayout>
11128 </para>
11129
11130 <para>
11131 If you need to pass the SDK path to a command
11132 within a function, you can use
11133 <filename>${SDK_DIR}</filename>, which points to
11134 the parent directory used by the OpenEmbedded build
11135 system when creating SDK output.
11136 See the
11137 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
11138 variable for more information.
11139 </para>
11140 </glossdef>
11141 </glossentry>
11142
11143 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
11144 <info>
11145 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."
11146 </info>
11147 <glossdef>
11148 <para role="glossdeffirst">
11149<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11150 Specifies a list of functions to call once the
11151 OpenEmbedded build system has created the target part of
11152 the SDK.
11153 You can specify functions separated by semicolons:
11154 <literallayout class='monospaced'>
11155 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
11156 </literallayout>
11157 </para>
11158
11159 <para>
11160 If you need to pass the SDK path to a command
11161 within a function, you can use
11162 <filename>${SDK_DIR}</filename>, which points to
11163 the parent directory used by the OpenEmbedded build
11164 system when creating SDK output.
11165 See the
11166 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
11167 variable for more information.
11168 </para>
11169 </glossdef>
11170 </glossentry>
11171
11172 <glossentry id='var-PR'><glossterm>PR</glossterm>
11173 <info>
11174 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
11175 </info>
11176 <glossdef>
11177 <para role="glossdeffirst">
11178<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011179 The revision of the recipe. The default value for this
11180 variable is "r0".
11181 Subsequent revisions of the recipe conventionally have the
11182 values "r1", "r2", and so forth.
11183 When
11184 <link linkend='var-PV'><filename>PV</filename></link>
11185 increases, <filename>PR</filename> is conventionally reset
11186 to "r0".
11187 <note>
11188 The OpenEmbedded build system does not need the aid of
11189 <filename>PR</filename> to know when to rebuild a
11190 recipe.
11191 The build system uses the task
Brad Bishop316dfdd2018-06-25 12:45:53 -040011192 <ulink url='&YOCTO_DOCS_OM_URL;#overview-checksums'>input checksums</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011193 along with the
11194 <link linkend='structure-build-tmp-stamps'>stamp</link>
11195 and
Brad Bishop316dfdd2018-06-25 12:45:53 -040011196 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state cache</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011197 mechanisms.
11198 </note>
11199 The <filename>PR</filename> variable primarily becomes
11200 significant when a package manager dynamically installs
11201 packages on an already built image.
11202 In this case, <filename>PR</filename>, which is the default
11203 value of
11204 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
11205 helps the package manager distinguish which package is the
11206 most recent one in cases where many packages have the same
11207 <filename>PV</filename> (i.e. <filename>PKGV</filename>).
11208 A component having many packages with the same
11209 <filename>PV</filename> usually means that the packages all
11210 install the same upstream version, but with later
11211 (<filename>PR</filename>) version packages including
11212 packaging fixes.
11213 <note>
11214 <filename>PR</filename> does not need to be increased
11215 for changes that do not change the package contents or
11216 metadata.
11217 </note>
11218 Because manually managing <filename>PR</filename> can be
11219 cumbersome and error-prone, an automated solution exists.
11220 See the
11221 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011222 section in the Yocto Project Development Tasks Manual
11223 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011224 </para>
11225 </glossdef>
11226 </glossentry>
11227
11228 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
11229 <info>
11230 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
11231 </info>
11232 <glossdef>
11233 <para role="glossdeffirst">
11234<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040011235 If multiple recipes provide the same item, this variable
11236 determines which recipe is preferred and thus provides
11237 the item (i.e. the preferred provider).
11238 You should always suffix this variable with the name of the
11239 provided item.
11240 And, you should define the variable using the preferred
11241 recipe's name
11242 (<link linkend='var-PN'><filename>PN</filename></link>).
11243 Here is a common example:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011244 <literallayout class='monospaced'>
11245 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
Brad Bishop316dfdd2018-06-25 12:45:53 -040011246 </literallayout>
11247 In the previous example, multiple recipes are providing
11248 "virtual/kernel".
11249 The <filename>PREFERRED_PROVIDER</filename> variable is
11250 set with the name (<filename>PN</filename>) of the recipe
11251 you prefer to provide "virtual/kernel".
11252 </para>
11253
11254 <para>
11255 Following are more examples:
11256 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011257 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
11258 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
11259 </literallayout>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011260 For more information, see the
11261 "<ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>Using Virtual Providers</ulink>"
11262 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011263 <note>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011264 If you use a <filename>virtual/*</filename> item
11265 with <filename>PREFERRED_PROVIDER</filename>, then any
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011266 recipe that
11267 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011268 that item but is not selected (defined) by
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011269 <filename>PREFERRED_PROVIDER</filename> is prevented
11270 from building, which is usually desirable since this
11271 mechanism is designed to select between mutually
11272 exclusive alternative providers.
11273 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011274 </para>
11275 </glossdef>
11276 </glossentry>
11277
11278 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
11279 <info>
11280 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
11281 </info>
11282 <glossdef>
11283 <para role="glossdeffirst">
11284<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011285 If multiple versions of recipes exist, this
11286 variable determines which version is given preference.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011287 You must always suffix the variable with the
11288 <link linkend='var-PN'><filename>PN</filename></link>
11289 you want to select, and you should set the
11290 <link linkend='var-PV'><filename>PV</filename></link>
11291 accordingly for precedence.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011292 </para>
11293
11294 <para>
11295 The <filename>PREFERRED_VERSION</filename> variable
11296 supports limited wildcard use through the
11297 "<filename>%</filename>" character.
11298 You can use the character to match any number of
11299 characters, which can be useful when specifying versions
11300 that contain long revision numbers that potentially change.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011301 Here are two examples:
11302 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011303 PREFERRED_VERSION_python = "3.4.0"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011304 PREFERRED_VERSION_linux-yocto = "4.12%"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011305 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011306 <note><title>Important</title>
11307 The use of the "<filename>%</filename>" character
11308 is limited in that it only works at the end of the
11309 string.
11310 You cannot use the wildcard character in any other
11311 location of the string.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011312 </note>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011313 </para>
11314
11315 <para>
11316 The specified version is matched against
11317 <link linkend='var-PV'><filename>PV</filename></link>,
11318 which does not necessarily match the version part of
11319 the recipe's filename.
11320 For example, consider two recipes
11321 <filename>foo_1.2.bb</filename> and
11322 <filename>foo_git.bb</filename> where
11323 <filename>foo_git.bb</filename> contains the following
11324 assignment:
11325 <literallayout class='monospaced'>
11326 PV = "1.1+git${SRCPV}"
11327 </literallayout>
11328 In this case, the correct way to select
11329 <filename>foo_git.bb</filename> is by using an
11330 assignment such as the following:
11331 <literallayout class='monospaced'>
11332 PREFERRED_VERSION_foo = "1.1+git%"
11333 </literallayout>
11334 Compare that previous example against the following
11335 incorrect example, which does not work:
11336 <literallayout class='monospaced'>
11337 PREFERRED_VERSION_foo = "git"
11338 </literallayout>
11339 </para>
11340
11341 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011342 Sometimes the <filename>PREFERRED_VERSION</filename>
11343 variable can be set by configuration files in a way that
11344 is hard to change.
11345 You can use
11346 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
11347 to set a machine-specific override.
11348 Here is an example:
11349 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011350 PREFERRED_VERSION_linux-yocto_qemux86 = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011351 </literallayout>
11352 Although not recommended, worst case, you can also use the
11353 "forcevariable" override, which is the strongest override
11354 possible.
11355 Here is an example:
11356 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011357 PREFERRED_VERSION_linux-yocto_forcevariable = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011358 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011359 <note>
11360 The <filename>_forcevariable</filename> override is
11361 not handled specially.
11362 This override only works because the default value of
Brad Bishop316dfdd2018-06-25 12:45:53 -040011363 <filename>OVERRIDES</filename> includes
11364 "forcevariable".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011365 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011366 </para>
11367 </glossdef>
11368 </glossentry>
11369
11370 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
11371 <info>
11372 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
11373 </info>
11374 <glossdef>
11375 <para role="glossdeffirst">
11376<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11377 Specifies additional paths from which the OpenEmbedded
11378 build system gets source code.
11379 When the build system searches for source code, it first
11380 tries the local download directory.
11381 If that location fails, the build system tries locations
11382 defined by <filename>PREMIRRORS</filename>, the upstream
11383 source, and then locations specified by
11384 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
11385 in that order.
11386 </para>
11387
11388 <para>
11389 Assuming your distribution
11390 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
11391 is "poky", the default value for
11392 <filename>PREMIRRORS</filename> is defined in the
11393 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011394 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011395 </para>
11396
11397 <para>
11398 Typically, you could add a specific server for the
11399 build system to attempt before any others by adding
11400 something like the following to the
11401 <filename>local.conf</filename> configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011402 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011403 <literallayout class='monospaced'>
11404 PREMIRRORS_prepend = "\
11405 git://.*/.* http://www.yoctoproject.org/sources/ \n \
11406 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
11407 http://.*/.* http://www.yoctoproject.org/sources/ \n \
11408 https://.*/.* http://www.yoctoproject.org/sources/ \n"
11409 </literallayout>
11410 These changes cause the build system to intercept
11411 Git, FTP, HTTP, and HTTPS requests and direct them to
11412 the <filename>http://</filename> sources mirror.
11413 You can use <filename>file://</filename> URLs to point
11414 to local directories or network shares as well.
11415 </para>
11416 </glossdef>
11417 </glossentry>
11418
11419 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
11420 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011421 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 -050011422 </info>
11423 <glossdef>
11424 <para role="glossdeffirst">
11425<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11426 Indicates the importance of a package.
11427 </para>
11428
11429 <para>
11430 <filename>PRIORITY</filename> is considered to be part of
11431 the distribution policy because the importance of any given
11432 recipe depends on the purpose for which the distribution
11433 is being produced.
11434 Thus, <filename>PRIORITY</filename> is not normally set
11435 within recipes.
11436 </para>
11437
11438 <para>
11439 You can set <filename>PRIORITY</filename> to "required",
11440 "standard", "extra", and "optional", which is the default.
11441 </para>
11442 </glossdef>
11443 </glossentry>
11444
11445 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
11446 <info>
11447 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
11448 </info>
11449 <glossdef>
11450 <para role="glossdeffirst">
11451<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11452 Specifies libraries installed within a recipe that
11453 should be ignored by the OpenEmbedded build system's
11454 shared library resolver.
11455 This variable is typically used when software being
11456 built by a recipe has its own private versions of a
11457 library normally provided by another recipe.
11458 In this case, you would not want the package containing
11459 the private libraries to be set as a dependency on other
11460 unrelated packages that should instead depend on the
11461 package providing the standard version of the library.
11462 </para>
11463
11464 <para>
11465 Libraries specified in this variable should be specified
11466 by their file name.
11467 For example, from the Firefox recipe in meta-browser:
11468 <literallayout class='monospaced'>
11469 PRIVATE_LIBS = "libmozjs.so \
11470 libxpcom.so \
11471 libnspr4.so \
11472 libxul.so \
11473 libmozalloc.so \
11474 libplc4.so \
11475 libplds4.so"
11476 </literallayout>
11477 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011478
11479 <para>
11480 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011481 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11482 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011483 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011484 </glossdef>
11485 </glossentry>
11486
11487 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
11488 <info>
11489 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."
11490 </info>
11491 <glossdef>
11492 <para role="glossdeffirst">
11493<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11494 A list of aliases by which a particular recipe can be
11495 known.
11496 By default, a recipe's own
11497 <filename><link linkend='var-PN'>PN</link></filename>
11498 is implicitly already in its <filename>PROVIDES</filename>
11499 list.
11500 If a recipe uses <filename>PROVIDES</filename>, the
11501 additional aliases are synonyms for the recipe and can
11502 be useful satisfying dependencies of other recipes during
11503 the build as specified by
11504 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
11505 </para>
11506
11507 <para>
11508 Consider the following example
11509 <filename>PROVIDES</filename> statement from a recipe
11510 file <filename>libav_0.8.11.bb</filename>:
11511 <literallayout class='monospaced'>
11512 PROVIDES += "libpostproc"
11513 </literallayout>
11514 The <filename>PROVIDES</filename> statement results in
11515 the "libav" recipe also being known as "libpostproc".
11516 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011517
11518 <para>
11519 In addition to providing recipes under alternate names,
11520 the <filename>PROVIDES</filename> mechanism is also used
11521 to implement virtual targets.
11522 A virtual target is a name that corresponds to some
11523 particular functionality (e.g. a Linux kernel).
11524 Recipes that provide the functionality in question list the
11525 virtual target in <filename>PROVIDES</filename>.
11526 Recipes that depend on the functionality in question can
Brad Bishop316dfdd2018-06-25 12:45:53 -040011527 include the virtual target in <filename>DEPENDS</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011528 to leave the choice of provider open.
11529 </para>
11530
11531 <para>
11532 Conventionally, virtual targets have names on the form
11533 "virtual/function" (e.g. "virtual/kernel").
11534 The slash is simply part of the name and has no
11535 syntactical significance.
11536 </para>
11537
11538 <para>
11539 The
11540 <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
11541 variable is used to select which particular recipe
11542 provides a virtual target.
11543 <note>
11544 <para>A corresponding mechanism for virtual runtime
11545 dependencies (packages) exists.
11546 However, the mechanism does not depend on any special
11547 functionality beyond ordinary variable assignments.
11548 For example,
11549 <filename>VIRTUAL-RUNTIME_dev_manager</filename>
11550 refers to the package of the component that manages
11551 the <filename>/dev</filename> directory.</para>
11552
11553 <para>Setting the "preferred provider" for runtime
11554 dependencies is as simple as using the following
11555 assignment in a configuration file:</para>
11556 <literallayout class='monospaced'>
11557 VIRTUAL-RUNTIME_dev_manager = "udev"
11558 </literallayout>
11559 </note>
11560 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011561 </glossdef>
11562 </glossentry>
11563
11564 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
11565 <info>
11566 PRSERV_HOST[doc] = "The network based PR service host and port."
11567 </info>
11568 <glossdef>
11569 <para role="glossdeffirst">
11570<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11571 The network based
11572 <link linkend='var-PR'><filename>PR</filename></link>
11573 service host and port.
11574 </para>
11575
11576 <para>
11577 The <filename>conf/local.conf.sample.extended</filename>
11578 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011579 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011580 shows how the <filename>PRSERV_HOST</filename> variable is
11581 set:
11582 <literallayout class='monospaced'>
11583 PRSERV_HOST = "localhost:0"
11584 </literallayout>
11585 You must set the variable if you want to automatically
11586 start a local
11587 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
11588 You can set <filename>PRSERV_HOST</filename> to other
11589 values to use a remote PR service.
11590 </para>
11591 </glossdef>
11592 </glossentry>
11593
11594 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
11595 <info>
11596 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
11597 </info>
11598 <glossdef>
11599 <para role="glossdeffirst">
11600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11601 Specifies whether or not
11602 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
11603 (ptest) functionality is enabled when building a recipe.
11604 You should not set this variable directly.
11605 Enabling and disabling building Package Tests
11606 at build time should be done by adding "ptest" to (or
11607 removing it from)
11608 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
11609 </para>
11610 </glossdef>
11611 </glossentry>
11612
11613 <glossentry id='var-PV'><glossterm>PV</glossterm>
11614 <info>
11615 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
11616 </info>
11617 <glossdef>
11618 <para role="glossdeffirst">
11619<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11620 The version of the recipe.
11621 The version is normally extracted from the recipe filename.
11622 For example, if the recipe is named
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011623 <filename>expat_2.0.1.bb</filename>, then the default value
11624 of <filename>PV</filename> will be "2.0.1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011625 <filename>PV</filename> is generally not overridden within
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011626 a recipe unless it is building an unstable (i.e.
11627 development) version from a source code repository
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011628 (e.g. Git or Subversion).
11629 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011630
11631 <para>
11632 <filename>PV</filename> is the default value of the
11633 <link linkend='var-PKGV'><filename>PKGV</filename></link>
11634 variable.
11635 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011636 </glossdef>
11637 </glossentry>
11638
11639 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
11640 <info>
11641 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."
11642 </info>
11643 <glossdef>
11644 <para role="glossdeffirst">
11645<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11646 When used by recipes that inherit the
11647 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11648 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11649 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11650 or
11651 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11652 classes, denotes the Application Binary Interface (ABI)
11653 currently in use for Python.
11654 By default, the ABI is "m".
11655 You do not have to set this variable as the OpenEmbedded
11656 build system sets it for you.
11657 </para>
11658
11659 <para>
11660 The OpenEmbedded build system uses the ABI to construct
11661 directory names used when installing the Python headers
11662 and libraries in sysroot
11663 (e.g. <filename>.../python3.3m/...</filename>).
11664 </para>
11665
11666 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011667 Recipes that inherit the <filename>distutils</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011668 class during cross-builds also use this variable to
11669 locate the headers and libraries of the appropriate Python
11670 that the extension is targeting.
11671 </para>
11672 </glossdef>
11673 </glossentry>
11674
11675 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
11676 <info>
11677 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
11678 </info>
11679 <glossdef>
11680 <para role="glossdeffirst">
11681<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11682 When used by recipes that inherit the
11683 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11684 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11685 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11686 or
11687 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11688 classes, specifies the major Python version being built.
11689 For Python 2.x, <filename>PYTHON_PN</filename> would
11690 be "python2". For Python 3.x, the variable would be
11691 "python3".
11692 You do not have to set this variable as the
11693 OpenEmbedded build system automatically sets it for you.
11694 </para>
11695
11696 <para>
11697 The variable allows recipes to use common infrastructure
11698 such as the following:
11699 <literallayout class='monospaced'>
11700 DEPENDS += "${PYTHON_PN}-native"
11701 </literallayout>
11702 In the previous example, the version of the dependency
11703 is <filename>PYTHON_PN</filename>.
11704 </para>
11705 </glossdef>
11706 </glossentry>
11707
11708 </glossdiv>
11709
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011710 <glossdiv id='var-glossary-r'><title>R</title>
11711
11712 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
11713 <info>
11714 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
11715 </info>
11716 <glossdef>
11717 <para role="glossdeffirst">
11718<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11719 The minimal command and arguments to run
11720 <filename>ranlib</filename>.
11721 </para>
11722 </glossdef>
11723 </glossentry>
11724
11725 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
11726 <info>
11727 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."
11728 </info>
11729 <glossdef>
11730 <para role="glossdeffirst">
11731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11732 The list of packages that conflict with packages.
11733 Note that packages will not be installed if conflicting
11734 packages are not first removed.
11735 </para>
11736
11737 <para>
11738 Like all package-controlling variables, you must always use
11739 them in conjunction with a package name override.
11740 Here is an example:
11741 <literallayout class='monospaced'>
11742 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
11743 </literallayout>
11744 </para>
11745
11746 <para>
11747 BitBake, which the OpenEmbedded build system uses, supports
11748 specifying versioned dependencies.
11749 Although the syntax varies depending on the packaging
11750 format, BitBake hides these differences from you.
11751 Here is the general syntax to specify versions with
11752 the <filename>RCONFLICTS</filename> variable:
11753 <literallayout class='monospaced'>
11754 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11755 </literallayout>
11756 For <filename>operator</filename>, you can specify the
11757 following:
11758 <literallayout class='monospaced'>
11759 =
11760 &lt;
11761 &gt;
11762 &lt;=
11763 &gt;=
11764 </literallayout>
11765 For example, the following sets up a dependency on version
11766 1.2 or greater of the package <filename>foo</filename>:
11767 <literallayout class='monospaced'>
11768 RCONFLICTS_${PN} = "foo (>= 1.2)"
11769 </literallayout>
11770 </para>
11771 </glossdef>
11772 </glossentry>
11773
11774 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
11775 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011776 RDEPENDS[doc] = "Lists runtime dependencies of a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011777 </info>
11778 <glossdef>
11779 <para role="glossdeffirst">
11780<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011781 Lists runtime dependencies of a package.
11782 These dependencies are other packages that must be
11783 installed in order for the package to function correctly.
11784 As an example, the following assignment declares that the
11785 package <filename>foo</filename> needs the packages
11786 <filename>bar</filename> and <filename>baz</filename> to
11787 be installed:
11788 <literallayout class='monospaced'>
11789 RDEPENDS_foo = "bar baz"
11790 </literallayout>
11791 The most common types of package runtime dependencies are
11792 automatically detected and added.
11793 Therefore, most recipes do not need to set
11794 <filename>RDEPENDS</filename>.
11795 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011796 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11797 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011798 </para>
11799
11800 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011801 The practical effect of the above
11802 <filename>RDEPENDS</filename> assignment is that
11803 <filename>bar</filename> and <filename>baz</filename>
11804 will be declared as dependencies inside the package
11805 <filename>foo</filename> when it is written out by one of
11806 the
11807 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
11808 tasks.
11809 Exactly how this is done depends on which package format
11810 is used, which is determined by
11811 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
11812 When the corresponding package manager installs the
11813 package, it will know to also install the packages on
11814 which it depends.
11815 </para>
11816
11817 <para>
11818 To ensure that the packages <filename>bar</filename> and
11819 <filename>baz</filename> get built, the previous
11820 <filename>RDEPENDS</filename> assignment also causes a task
11821 dependency to be added.
11822 This dependency is from the recipe's
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011823 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011824 (not to be confused with
11825 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
11826 task to the <filename>do_package_write_*</filename>
11827 task of the recipes that build <filename>bar</filename> and
11828 <filename>baz</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011829 </para>
11830
11831 <para>
11832 The names of the packages you list within
11833 <filename>RDEPENDS</filename> must be the names of other
11834 packages - they cannot be recipe names.
11835 Although package names and recipe names usually match,
11836 the important point here is that you are
11837 providing package names within the
11838 <filename>RDEPENDS</filename> variable.
11839 For an example of the default list of packages created from
11840 a recipe, see the
11841 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11842 variable.
11843 </para>
11844
11845 <para>
11846 Because the <filename>RDEPENDS</filename> variable applies
11847 to packages being built, you should always use the variable
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011848 in a form with an attached package name (remember that a
11849 single recipe can build multiple packages).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011850 For example, suppose you are building a development package
11851 that depends on the <filename>perl</filename> package.
11852 In this case, you would use the following
11853 <filename>RDEPENDS</filename> statement:
11854 <literallayout class='monospaced'>
11855 RDEPENDS_${PN}-dev += "perl"
11856 </literallayout>
11857 In the example, the development package depends on
11858 the <filename>perl</filename> package.
11859 Thus, the <filename>RDEPENDS</filename> variable has the
11860 <filename>${PN}-dev</filename> package name as part of the
11861 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011862 <note>
11863 <title>Caution</title>
11864 <filename>RDEPENDS_${PN}-dev</filename> includes
11865 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
11866 by default.
11867 This default is set in the BitBake configuration file
11868 (<filename>meta/conf/bitbake.conf</filename>).
11869 Be careful not to accidentally remove
11870 <filename>${PN}</filename> when modifying
11871 <filename>RDEPENDS_${PN}-dev</filename>.
11872 Use the "+=" operator rather than the "=" operator.
11873 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011874 </para>
11875
11876 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011877 The package names you use with
11878 <filename>RDEPENDS</filename> must appear as they would in
11879 the <filename>PACKAGES</filename> variable.
11880 The
11881 <link linkend='var-PKG'><filename>PKG</filename></link>
11882 variable allows a different name to be used for
11883 the final package (e.g. the
11884 <link linkend='ref-classes-debian'><filename>debian</filename></link>
11885 class uses this to rename packages), but this final package
11886 name cannot be used with <filename>RDEPENDS</filename>,
11887 which makes sense as <filename>RDEPENDS</filename> is meant
11888 to be independent of the package format used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011889 </para>
11890
11891 <para>
11892 BitBake, which the OpenEmbedded build system uses, supports
11893 specifying versioned dependencies.
11894 Although the syntax varies depending on the packaging
11895 format, BitBake hides these differences from you.
11896 Here is the general syntax to specify versions with
11897 the <filename>RDEPENDS</filename> variable:
11898 <literallayout class='monospaced'>
11899 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11900 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011901 For <replaceable>operator</replaceable>, you can specify the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011902 following:
11903 <literallayout class='monospaced'>
11904 =
11905 &lt;
11906 &gt;
11907 &lt;=
11908 &gt;=
11909 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011910 For <replaceable>version</replaceable>, provide the version
11911 number.
11912 <note><title>Tip</title>
11913 You can use
11914 <link linkend='var-EXTENDPKGV'><filename>EXTENDPKGV</filename></link>
11915 to provide a full package version specification.
11916 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011917 For example, the following sets up a dependency on version
11918 1.2 or greater of the package <filename>foo</filename>:
11919 <literallayout class='monospaced'>
11920 RDEPENDS_${PN} = "foo (>= 1.2)"
11921 </literallayout>
11922 </para>
11923
11924 <para>
11925 For information on build-time dependencies, see the
11926 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
11927 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011928 You can also see the
11929 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
11930 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
11931 sections in the BitBake User Manual for additional
11932 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011933 </para>
11934 </glossdef>
11935 </glossentry>
11936
11937 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
11938 <info>
11939 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."
11940 </info>
11941 <glossdef>
11942 <para role="glossdeffirst">
11943<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11944 When inheriting the
11945 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
11946 class, this
11947 variable identifies distribution features that must
11948 exist in the current configuration in order for the
11949 OpenEmbedded build system to build the recipe.
11950 In other words, if the
11951 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
11952 lists a feature that does not appear in
11953 <filename>DISTRO_FEATURES</filename> within the
11954 current configuration, an error occurs and the
11955 build stops.
11956 </para>
11957 </glossdef>
11958 </glossentry>
11959
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011960 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
11961 <info>
11962 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
11963 </info>
11964 <glossdef>
11965 <para role="glossdeffirst">
11966<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11967 With <filename>rm_work</filename> enabled, this
11968 variable specifies a list of recipes whose work directories
11969 should not be removed.
11970 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
11971 section for more details.
11972 </para>
11973 </glossdef>
11974 </glossentry>
11975
11976 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
11977 <info>
11978 ROOT_HOME[doc] = "Defines the root home directory."
11979 </info>
11980 <glossdef>
11981 <para role="glossdeffirst">
11982<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11983 Defines the root home directory.
11984 By default, this directory is set as follows in the
11985 BitBake configuration file:
11986 <literallayout class='monospaced'>
11987 ROOT_HOME ??= "/home/root"
11988 </literallayout>
11989 <note>
11990 This default value is likely used because some
11991 embedded solutions prefer to have a read-only root
11992 filesystem and prefer to keep writeable data in one
11993 place.
11994 </note>
11995 </para>
11996
11997 <para>
11998 You can override the default by setting the variable
11999 in any layer or in the <filename>local.conf</filename> file.
12000 Because the default is set using a "weak" assignment
12001 (i.e. "??="), you can use either of the following forms
12002 to define your override:
12003 <literallayout class='monospaced'>
12004 ROOT_HOME = "/root"
12005 ROOT_HOME ?= "/root"
12006 </literallayout>
12007 These override examples use <filename>/root</filename>,
12008 which is probably the most commonly used override.
12009 </para>
12010 </glossdef>
12011 </glossentry>
12012
12013 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
12014 <info>
12015 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
12016 </info>
12017 <glossdef>
12018 <para role="glossdeffirst">
12019<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12020 Indicates a filesystem image to include as the root
12021 filesystem.
12022 </para>
12023
12024 <para>
12025 The <filename>ROOTFS</filename> variable is an optional
12026 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012027 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012028 class.
12029 </para>
12030 </glossdef>
12031 </glossentry>
12032
12033 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
12034 <info>
12035 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
12036 </info>
12037 <glossdef>
12038 <para role="glossdeffirst">
12039<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12040 Specifies a list of functions to call after the
12041 OpenEmbedded build system has installed packages.
12042 You can specify functions separated by semicolons:
12043 <literallayout class='monospaced'>
12044 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
12045 </literallayout>
12046 </para>
12047
12048 <para>
12049 If you need to pass the root filesystem path to a command
12050 within a function, you can use
12051 <filename>${IMAGE_ROOTFS}</filename>, which points to
12052 the directory that becomes the root filesystem image.
12053 See the
12054 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12055 variable for more information.
12056 </para>
12057 </glossdef>
12058 </glossentry>
12059
12060 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
12061 <info>
12062 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
12063 </info>
12064 <glossdef>
12065 <para role="glossdeffirst">
12066<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12067 Specifies a list of functions to call once the
12068 OpenEmbedded build system has created the root filesystem.
12069 You can specify functions separated by semicolons:
12070 <literallayout class='monospaced'>
12071 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12072 </literallayout>
12073 </para>
12074
12075 <para>
12076 If you need to pass the root filesystem path to a command
12077 within a function, you can use
12078 <filename>${IMAGE_ROOTFS}</filename>, which points to
12079 the directory that becomes the root filesystem image.
12080 See the
12081 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12082 variable for more information.
12083 </para>
12084 </glossdef>
12085 </glossentry>
12086
12087 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
12088 <info>
12089 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
12090 </info>
12091 <glossdef>
12092 <para role="glossdeffirst">
12093<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12094 Specifies a list of functions to call after the
12095 OpenEmbedded build system has removed unnecessary
12096 packages.
12097 When runtime package management is disabled in the
12098 image, several packages are removed including
12099 <filename>base-passwd</filename>,
12100 <filename>shadow</filename>, and
12101 <filename>update-alternatives</filename>.
12102 You can specify functions separated by semicolons:
12103 <literallayout class='monospaced'>
12104 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
12105 </literallayout>
12106 </para>
12107
12108 <para>
12109 If you need to pass the root filesystem path to a command
12110 within a function, you can use
12111 <filename>${IMAGE_ROOTFS}</filename>, which points to
12112 the directory that becomes the root filesystem image.
12113 See the
12114 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12115 variable for more information.
12116 </para>
12117 </glossdef>
12118 </glossentry>
12119
12120 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
12121 <info>
12122 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
12123 </info>
12124 <glossdef>
12125 <para role="glossdeffirst">
12126<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12127 Specifies a list of functions to call before the
12128 OpenEmbedded build system has created the root filesystem.
12129 You can specify functions separated by semicolons:
12130 <literallayout class='monospaced'>
12131 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12132 </literallayout>
12133 </para>
12134
12135 <para>
12136 If you need to pass the root filesystem path to a command
12137 within a function, you can use
12138 <filename>${IMAGE_ROOTFS}</filename>, which points to
12139 the directory that becomes the root filesystem image.
12140 See the
12141 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12142 variable for more information.
12143 </para>
12144 </glossdef>
12145 </glossentry>
12146
12147 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
12148 <info>
12149 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."
12150 </info>
12151 <glossdef>
12152 <para role="glossdeffirst">
12153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12154 A list of package name aliases that a package also provides.
12155 These aliases are useful for satisfying runtime dependencies
12156 of other packages both during the build and on the target
12157 (as specified by
12158 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
12159 <note>
12160 A package's own name is implicitly already in its
12161 <filename>RPROVIDES</filename> list.
12162 </note>
12163 </para>
12164
12165 <para>
12166 As with all package-controlling variables, you must always
12167 use the variable in conjunction with a package name override.
12168 Here is an example:
12169 <literallayout class='monospaced'>
12170 RPROVIDES_${PN} = "widget-abi-2"
12171 </literallayout>
12172 </para>
12173 </glossdef>
12174 </glossentry>
12175
12176 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
12177 <info>
12178 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."
12179 </info>
12180 <glossdef>
12181 <para role="glossdeffirst">
12182<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12183 A list of packages that extends the usability of a package
12184 being built.
12185 The package being built does not depend on this list of
12186 packages in order to successfully build, but rather
12187 uses them for extended usability.
12188 To specify runtime dependencies for packages, see the
12189 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
12190 variable.
12191 </para>
12192
12193 <para>
12194 The package manager will automatically install the
12195 <filename>RRECOMMENDS</filename> list of packages when
12196 installing the built package.
12197 However, you can prevent listed packages from being
12198 installed by using the
12199 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
12200 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
12201 and
12202 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
12203 variables.
12204 </para>
12205
12206 <para>
12207 Packages specified in
12208 <filename>RRECOMMENDS</filename> need not actually be
12209 produced.
12210 However, a recipe must exist that provides each package,
12211 either through the
12212 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
12213 or
12214 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
12215 variables or the
12216 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
12217 variable, or an error will occur during the build.
12218 If such a recipe does exist and the package is not produced,
12219 the build continues without error.
12220 </para>
12221
12222 <para>
12223 Because the <filename>RRECOMMENDS</filename> variable
12224 applies to packages being built, you should always attach
12225 an override to the variable to specify the particular
12226 package whose usability is being extended.
12227 For example, suppose you are building a development package
12228 that is extended to support wireless functionality.
12229 In this case, you would use the following:
12230 <literallayout class='monospaced'>
12231 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
12232 </literallayout>
12233 In the example, the package name
12234 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
12235 must appear as it would in the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012236 <filename>PACKAGES</filename> namespace before any renaming
12237 of the output package by classes such as
12238 <filename>debian.bbclass</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012239 </para>
12240
12241 <para>
12242 BitBake, which the OpenEmbedded build system uses, supports
12243 specifying versioned recommends.
12244 Although the syntax varies depending on the packaging
12245 format, BitBake hides these differences from you.
12246 Here is the general syntax to specify versions with
12247 the <filename>RRECOMMENDS</filename> variable:
12248 <literallayout class='monospaced'>
12249 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
12250 </literallayout>
12251 For <filename>operator</filename>, you can specify the
12252 following:
12253 <literallayout class='monospaced'>
12254 =
12255 &lt;
12256 &gt;
12257 &lt;=
12258 &gt;=
12259 </literallayout>
12260 For example, the following sets up a recommend on version
12261 1.2 or greater of the package <filename>foo</filename>:
12262 <literallayout class='monospaced'>
12263 RRECOMMENDS_${PN} = "foo (>= 1.2)"
12264 </literallayout>
12265 </para>
12266 </glossdef>
12267 </glossentry>
12268
12269 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
12270 <info>
12271 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."
12272 </info>
12273 <glossdef>
12274 <para role="glossdeffirst">
12275<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12276 A list of packages replaced by a package.
12277 The package manager uses this variable to determine which
12278 package should be installed to replace other package(s)
12279 during an upgrade.
12280 In order to also have the other package(s) removed at the
12281 same time, you must add the name of the other
12282 package to the
12283 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
12284 </para>
12285
12286 <para>
12287 As with all package-controlling variables, you must use
12288 this variable in conjunction with a package name
12289 override.
12290 Here is an example:
12291 <literallayout class='monospaced'>
12292 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
12293 </literallayout>
12294 </para>
12295
12296 <para>
12297 BitBake, which the OpenEmbedded build system uses, supports
12298 specifying versioned replacements.
12299 Although the syntax varies depending on the packaging
12300 format, BitBake hides these differences from you.
12301 Here is the general syntax to specify versions with
12302 the <filename>RREPLACES</filename> variable:
12303 <literallayout class='monospaced'>
12304 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
12305 </literallayout>
12306 For <filename>operator</filename>, you can specify the
12307 following:
12308 <literallayout class='monospaced'>
12309 =
12310 &lt;
12311 &gt;
12312 &lt;=
12313 &gt;=
12314 </literallayout>
12315 For example, the following sets up a replacement using
12316 version 1.2 or greater of the package
12317 <filename>foo</filename>:
12318 <literallayout class='monospaced'>
12319 RREPLACES_${PN} = "foo (>= 1.2)"
12320 </literallayout>
12321 </para>
12322 </glossdef>
12323 </glossentry>
12324
12325 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
12326 <info>
12327 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."
12328 </info>
12329 <glossdef>
12330 <para role="glossdeffirst">
12331<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12332 A list of additional packages that you can suggest for
12333 installation by the package manager at the time a package
12334 is installed.
12335 Not all package managers support this functionality.
12336 </para>
12337
12338 <para>
12339 As with all package-controlling variables, you must always
12340 use this variable in conjunction with a package name
12341 override.
12342 Here is an example:
12343 <literallayout class='monospaced'>
12344 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
12345 </literallayout>
12346 </para>
12347 </glossdef>
12348 </glossentry>
12349
12350 </glossdiv>
12351
12352 <glossdiv id='var-glossary-s'><title>S</title>
12353
12354 <glossentry id='var-S'><glossterm>S</glossterm>
12355 <info>
12356 S[doc] = "The location in the Build Directory where unpacked package source code resides."
12357 </info>
12358 <glossdef>
12359 <para role="glossdeffirst">
12360<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12361 The location in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012362 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012363 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012364 By default, this directory is
12365 <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>,
12366 where <filename>${BPN}</filename> is the base recipe name
12367 and <filename>${PV}</filename> is the recipe version.
12368 If the source tarball extracts the code to a directory
12369 named anything other than <filename>${BPN}-${PV}</filename>,
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012370 or if the source code is fetched from an SCM such as
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012371 Git or Subversion, then you must set <filename>S</filename>
12372 in the recipe so that the OpenEmbedded build system
12373 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012374 </para>
12375
12376 <para>
12377 As an example, assume a
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012378 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012379 top-level folder named <filename>poky</filename> and a
12380 default Build Directory at <filename>poky/build</filename>.
12381 In this case, the work directory the build system uses
12382 to keep the unpacked recipe for <filename>db</filename>
12383 is the following:
12384 <literallayout class='monospaced'>
12385 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
12386 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012387 The unpacked source code resides in the
12388 <filename>db-5.1.19</filename> folder.
12389 </para>
12390
12391 <para>
12392 This next example assumes a Git repository.
12393 By default, Git repositories are cloned to
12394 <filename>${WORKDIR}/git</filename> during
12395 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
12396 Since this path is different from the default value of
12397 <filename>S</filename>, you must set it specifically
12398 so the source can be located:
12399 <literallayout class='monospaced'>
12400 SRC_URI = "git://path/to/repo.git"
12401 S = "${WORKDIR}/git"
12402 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012403 </para>
12404 </glossdef>
12405 </glossentry>
12406
12407 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
12408 <info>
12409 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."
12410 </info>
12411 <glossdef>
12412 <para role="glossdeffirst">
12413<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12414 Specifies a list of command-line utilities that should be
12415 checked for during the initial sanity checking process when
12416 running BitBake.
12417 If any of the utilities are not installed on the build host,
12418 then BitBake immediately exits with an error.
12419 </para>
12420 </glossdef>
12421 </glossentry>
12422
12423 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
12424 <info>
12425 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
12426 </info>
12427 <glossdef>
12428 <para role="glossdeffirst">
12429<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12430 A list of the host distribution identifiers that the
12431 build system has been tested against.
12432 Identifiers consist of the host distributor ID
12433 followed by the release,
12434 as reported by the <filename>lsb_release</filename> tool
12435 or as read from <filename>/etc/lsb-release</filename>.
12436 Separate the list items with explicit newline
12437 characters (<filename>\n</filename>).
12438 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
12439 and the current value of
12440 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
12441 does not appear in the list, then the build system reports
12442 a warning that indicates the current host distribution has
12443 not been tested as a build host.
12444 </para>
12445 </glossdef>
12446 </glossentry>
12447
12448 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
12449 <info>
12450 SDK_ARCH[doc] = "The target architecture for the SDK."
12451 </info>
12452 <glossdef>
12453 <para role="glossdeffirst">
12454<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12455 The target architecture for the SDK.
12456 Typically, you do not directly set this variable.
12457 Instead, use
12458 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
12459 </para>
12460 </glossdef>
12461 </glossentry>
12462
12463 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
12464 <info>
12465 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
12466 </info>
12467 <glossdef>
12468 <para role="glossdeffirst">
12469<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12470 The directory set up and used by the
12471 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012472 class to which the SDK is deployed.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012473 The <filename>populate_sdk_base</filename> class defines
12474 <filename>SDK_DEPLOY</filename> as follows:
12475 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012476 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012477 </literallayout>
12478 </para>
12479 </glossdef>
12480 </glossentry>
12481
12482 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
12483 <info>
12484 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
12485 </info>
12486 <glossdef>
12487 <para role="glossdeffirst">
12488<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12489 The parent directory used by the OpenEmbedded build system
12490 when creating SDK output.
12491 The
12492 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12493 class defines the variable as follows:
12494 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012495 SDK_DIR = "${WORKDIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012496 </literallayout>
12497 <note>
12498 The <filename>SDK_DIR</filename> directory is a
12499 temporary directory as it is part of
12500 <filename>WORKDIR</filename>.
12501 The final output directory is
12502 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12503 </note>
12504 </para>
12505 </glossdef>
12506 </glossentry>
12507
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012508 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
12509 <info>
12510 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
12511 </info>
12512 <glossdef>
12513 <para role="glossdeffirst">
12514<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12515 Controls whether or not shared state artifacts are copied
12516 into the extensible SDK.
12517 The default value of "full" copies all of the required
12518 shared state artifacts into the extensible SDK.
12519 The value "minimal" leaves these artifacts out of the
12520 SDK.
12521 <note>
12522 If you set the variable to "minimal", you need to
12523 ensure
12524 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
12525 is set in the SDK's configuration to enable the
12526 artifacts to be fetched as needed.
12527 </note>
12528 </para>
12529 </glossdef>
12530 </glossentry>
12531
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012532 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
12533 <info>
12534 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."
12535 </info>
12536 <glossdef>
12537 <para role="glossdeffirst">
12538<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12539 The manifest file for the host part of the SDK.
12540 This file lists all the installed packages that make up
Brad Bishop316dfdd2018-06-25 12:45:53 -040012541 the host part of the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012542 The file contains package information on a line-per-package
12543 basis as follows:
12544 <literallayout class='monospaced'>
12545 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12546 </literallayout>
12547 </para>
12548
12549 <para>
12550 The
12551 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12552 class defines the manifest file as follows:
12553 <literallayout class='monospaced'>
12554 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
12555 </literallayout>
12556 The location is derived using the
12557 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12558 and
12559 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12560 variables.
12561 </para>
12562 </glossdef>
12563 </glossentry>
12564
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012565 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
12566 <info>
12567 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
12568 </info>
12569 <glossdef>
12570 <para role="glossdeffirst">
12571<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12572 When set to "1", specifies to include the packagedata for
12573 all recipes in the "world" target in the extensible SDK.
12574 Including this data allows the
12575 <filename>devtool search</filename> command to find these
12576 recipes in search results, as well as allows the
12577 <filename>devtool add</filename> command to map
12578 dependencies more effectively.
12579 <note>
12580 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
12581 variable significantly increases build time because
12582 all of world needs to be built.
12583 Enabling the variable also slightly increases the size
12584 of the extensible SDK.
12585 </note>
12586 </para>
12587 </glossdef>
12588 </glossentry>
12589
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012590 <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
12591 <info>
12592 SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
12593 </info>
12594 <glossdef>
12595 <para role="glossdeffirst">
12596<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12597 When set to "1", specifies to include the toolchain in the
12598 extensible SDK.
12599 Including the toolchain is useful particularly when
12600 <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
12601 is set to "minimal" to keep the SDK reasonably small
12602 but you still want to provide a usable toolchain.
12603 For example, suppose you want to use the toolchain from an
12604 IDE (e.g. Eclipse) or from other tools and you do not
12605 want to perform additional steps to install the toolchain.
12606 </para>
12607
12608 <para>
12609 The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
12610 defaults to "0" if <filename>SDK_EXT_TYPE</filename>
12611 is set to "minimal", and defaults to "1" if
12612 <filename>SDK_EXT_TYPE</filename> is set to "full".
12613 </para>
12614 </glossdef>
12615 </glossentry>
12616
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012617 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
12618 <info>
12619 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
12620 </info>
12621 <glossdef>
12622 <para role="glossdeffirst">
12623<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12624 A list of classes to remove from the
12625 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
12626 value globally within the extensible SDK configuration.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012627 The
12628 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12629 class sets the default value:
12630 <literallayout class='monospaced'>
12631 SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
12632 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012633 </para>
12634
12635 <para>
12636 Some classes are not generally applicable within
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012637 the extensible SDK context.
12638 You can use this variable to disable those classes.
12639 </para>
12640
12641 <para>
12642 For additional information on how to customize the
12643 extensible SDK's configuration, see the
12644 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12645 section in the Yocto Project Application Development and
12646 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012647 </para>
12648 </glossdef>
12649 </glossentry>
12650
12651 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
12652 <info>
12653 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
12654 </info>
12655 <glossdef>
12656 <para role="glossdeffirst">
12657<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012658 A list of variables not allowed through from the
12659 OpenEmbedded build system configuration into the extensible
12660 SDK configuration.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012661 Usually, these are variables that are specific to the
12662 machine on which the build system is running and thus
12663 would be potentially problematic within the extensible SDK.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012664 </para>
12665
12666 <para>By default,
12667 <filename>SDK_LOCAL_CONF_BLACKLIST</filename> is set in the
12668 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12669 class and excludes the following variables:
12670 <literallayout class='monospaced'>
12671 <link linkend='var-CONF_VERSION'>CONF_VERSION</link>
12672 <link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link>
12673 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_NUMBER_PARSE_THREADS'>BB_NUMBER_PARSE_THREADS</ulink>
12674 <link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link>
12675 <link linkend='var-PRSERV_HOST'>PRSERV_HOST</link>
12676 <link linkend='var-SSTATE_MIRRORS'>SSTATE_MIRRORS</link>
12677 <link linkend='var-DL_DIR'>DL_DIR</link>
12678 <link linkend='var-SSTATE_DIR'>SSTATE_DIR</link>
12679 <link linkend='var-TMPDIR'>TMPDIR</link>
12680 <link linkend='var-BB_SERVER_TIMEOUT'>BB_SERVER_TIMEOUT</link>
12681 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012682 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012683
12684 <para>
12685 For additional information on how to customize the
12686 extensible SDK's configuration, see the
12687 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12688 section in the Yocto Project Application Development and
12689 the Extensible Software Development Kit (eSDK) manual.
12690 </para>
12691
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012692 </glossdef>
12693 </glossentry>
12694
12695 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
12696 <info>
12697 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
12698 </info>
12699 <glossdef>
12700 <para role="glossdeffirst">
12701<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012702 A list of variables allowed through from the OpenEmbedded
12703 build system configuration into the extensible SDK
12704 configuration.
12705 By default, the list of variables is empty and is set in
12706 the
12707 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12708 class.
12709 </para>
12710
12711 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012712 This list overrides the variables specified using the
12713 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
12714 variable as well as any variables identified by automatic
12715 blacklisting due to the "/" character being found at the
12716 start of the value, which is usually indicative of being a
12717 path and thus might not be valid on the system where the
12718 SDK is installed.
12719 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012720
12721 <para>
12722 For additional information on how to customize the
12723 extensible SDK's configuration, see the
12724 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12725 section in the Yocto Project Application Development and
12726 the Extensible Software Development Kit (eSDK) manual.
12727 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012728 </glossdef>
12729 </glossentry>
12730
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012731 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
12732 <info>
12733 SDK_NAME[doc] = "The base name for SDK output files."
12734 </info>
12735 <glossdef>
12736 <para role="glossdeffirst">
12737<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12738 The base name for SDK output files.
12739 The name is derived from the
12740 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
12741 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12742 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12743 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
12744 and
12745 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
12746 variables:
12747 <literallayout class='monospaced'>
12748 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
12749 </literallayout>
12750 </para>
12751 </glossdef>
12752 </glossentry>
12753
12754 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
12755 <info>
12756 SDK_OS[doc] = "The operating system for which the SDK will be built."
12757 </info>
12758 <glossdef>
12759 <para role="glossdeffirst">
12760<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12761 Specifies the operating system for which the SDK
12762 will be built.
12763 The default value is the value of
12764 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
12765 </para>
12766 </glossdef>
12767 </glossentry>
12768
12769 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
12770 <info>
12771 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
12772 </info>
12773 <glossdef>
12774 <para role="glossdeffirst">
12775<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12776 The location used by the OpenEmbedded build system when
12777 creating SDK output.
12778 The
12779 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12780 class defines the variable as follows:
12781 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012782 SDK_DIR = "${WORKDIR}/sdk"
12783 SDK_OUTPUT = "${SDK_DIR}/image"
12784 SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012785 </literallayout>
12786 <note>
12787 The <filename>SDK_OUTPUT</filename> directory is a
12788 temporary directory as it is part of
Brad Bishop316dfdd2018-06-25 12:45:53 -040012789 <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12790 by way of
12791 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012792 The final output directory is
12793 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12794 </note>
12795 </para>
12796 </glossdef>
12797 </glossentry>
12798
12799 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
12800 <info>
12801 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."
12802 </info>
12803 <glossdef>
12804 <para role="glossdeffirst">
12805<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12806 Specifies a list of architectures compatible with
12807 the SDK machine.
12808 This variable is set automatically and should not
12809 normally be hand-edited.
12810 Entries are separated using spaces and listed in order
12811 of priority.
12812 The default value for
12813 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
12814 ${SDK_ARCH}-${SDKPKGSUFFIX}".
12815 </para>
12816 </glossdef>
12817 </glossentry>
12818
12819 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
12820 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012821 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 -050012822 </info>
12823 <glossdef>
12824 <para role="glossdeffirst">
12825<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12826 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012827 OpenEmbedded build system creates the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012828 You can specify functions separated by semicolons:
12829 <literallayout class='monospaced'>
12830 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12831 </literallayout>
12832 </para>
12833
12834 <para>
12835 If you need to pass an SDK path to a command within a
12836 function, you can use
12837 <filename>${SDK_DIR}</filename>, which points to
12838 the parent directory used by the OpenEmbedded build system
12839 when creating SDK output.
12840 See the
12841 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
12842 variable for more information.
12843 </para>
12844 </glossdef>
12845 </glossentry>
12846
12847 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
12848 <info>
12849 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
12850 </info>
12851 <glossdef>
12852 <para role="glossdeffirst">
12853<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012854 The toolchain binary prefix used for
12855 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012856 The OpenEmbedded build system uses the
12857 <filename>SDK_PREFIX</filename> value to set the
12858 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
12859 when building <filename>nativesdk</filename> recipes.
12860 The default value is "${SDK_SYS}-".
12861 </para>
12862 </glossdef>
12863 </glossentry>
12864
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012865 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
12866 <info>
12867 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
12868 </info>
12869 <glossdef>
12870 <para role="glossdeffirst">
12871<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12872 A list of shared state tasks added to the extensible SDK.
12873 By default, the following tasks are added:
12874 <literallayout class='monospaced'>
12875 do_populate_lic
12876 do_package_qa
12877 do_populate_sysroot
12878 do_deploy
12879 </literallayout>
12880 Despite the default value of "" for the
12881 <filename>SDK_RECRDEP_TASKS</filename> variable, the
12882 above four tasks are always added to the SDK.
12883 To specify tasks beyond these four, you need to use
12884 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
12885 you are defining additional tasks that are needed in
12886 order to build
12887 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
12888 </para>
12889 </glossdef>
12890 </glossentry>
12891
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012892 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
12893 <info>
12894 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
12895 </info>
12896 <glossdef>
12897 <para role="glossdeffirst">
12898<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12899 Specifies the system, including the architecture and the
12900 operating system, for which the SDK will be built.
12901 </para>
12902
12903 <para>
12904 The OpenEmbedded build system automatically sets this
12905 variable based on
12906 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12907 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
12908 and
12909 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
12910 You do not need to set the <filename>SDK_SYS</filename>
12911 variable yourself.
12912 </para>
12913 </glossdef>
12914 </glossentry>
12915
12916 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
12917 <info>
12918 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."
12919 </info>
12920 <glossdef>
12921 <para role="glossdeffirst">
12922<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12923 The manifest file for the target part of the SDK.
12924 This file lists all the installed packages that make up
12925 the target part of the SDK.
12926 The file contains package information on a line-per-package
12927 basis as follows:
12928 <literallayout class='monospaced'>
12929 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12930 </literallayout>
12931 </para>
12932
12933 <para>
12934 The
12935 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12936 class defines the manifest file as follows:
12937 <literallayout class='monospaced'>
12938 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
12939 </literallayout>
12940 The location is derived using the
12941 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12942 and
12943 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12944 variables.
12945 </para>
12946 </glossdef>
12947 </glossentry>
12948
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012949 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
12950 <info>
12951 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
12952 </info>
12953 <glossdef>
12954 <para role="glossdeffirst">
12955<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12956 A list of targets to install from shared state as part of
12957 the standard or extensible SDK installation.
12958 The default value is "${PN}" (i.e. the image from which
12959 the SDK is built).
12960 </para>
12961
12962 <para>
12963 The <filename>SDK_TARGETS</filename> variable is an
12964 internal variable and typically would not be changed.
12965 </para>
12966 </glossdef>
12967 </glossentry>
12968
12969 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
12970 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012971 SDK_TITLE[doc] = "The title to be printed when running the SDK installer."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012972 </info>
12973 <glossdef>
12974 <para role="glossdeffirst">
12975<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012976 The title to be printed when running the SDK installer.
12977 By default, this title is based on the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012978 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
12979 or
12980 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012981 variable and is set in the
12982 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12983 class as follows:
12984 <literallayout class='monospaced'>
12985 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
12986 </literallayout>
12987 For the default distribution "poky",
12988 <filename>SDK_TITLE</filename> is set to
12989 "Poky (Yocto Project Reference Distro)".
12990 </para>
12991
12992 <para>
12993 For information on how to change this default title,
12994 see the
12995 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-sdk-installer-title'>Changing the Extensible SDK Installer Title</ulink>"
12996 section in the Yocto Project Application Development and
12997 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012998 </para>
12999 </glossdef>
13000 </glossentry>
13001
13002 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
13003 <info>
13004 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
13005 </info>
13006 <glossdef>
13007 <para role="glossdeffirst">
13008<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13009 An optional URL for an update server for the extensible
13010 SDK.
13011 If set, the value is used as the default update server when
13012 running <filename>devtool sdk-update</filename> within the
13013 extensible SDK.
13014 </para>
13015 </glossdef>
13016 </glossentry>
13017
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013018 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
13019 <info>
13020 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
13021 </info>
13022 <glossdef>
13023 <para role="glossdeffirst">
13024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13025 Specifies the name of the SDK vendor.
13026 </para>
13027 </glossdef>
13028 </glossentry>
13029
13030 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
13031 <info>
13032 SDK_VERSION[doc] = "Specifies the version for the SDK."
13033 </info>
13034 <glossdef>
13035 <para role="glossdeffirst">
13036<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13037 Specifies the version of the SDK.
13038 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013039 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013040 defines the <filename>SDK_VERSION</filename> as follows:
13041 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -040013042 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}','snapshot')}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013043 </literallayout>
13044 </para>
13045
13046 <para>
13047 For additional information, see the
13048 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
13049 and
13050 <link linkend='var-DATE'><filename>DATE</filename></link>
13051 variables.
13052 </para>
13053 </glossdef>
13054 </glossentry>
13055
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013056 <glossentry id='var-SDKEXTPATH'><glossterm>SDKEXTPATH</glossterm>
13057 <info>
13058 SDKEXTPATH[doc] = "The default installation directory for the extensible SDK."
13059 </info>
13060 <glossdef>
13061 <para role="glossdeffirst">
13062<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13063 The default installation directory for the Extensible SDK.
13064 By default, this directory is based on the
13065 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
13066 variable and is set in the
13067 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
13068 class as follows:
13069 <literallayout class='monospaced'>
13070 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
13071 </literallayout>
13072 For the default distribution "poky", the
13073 <filename>SDKEXTPATH</filename> is set to "poky_sdk".
13074 </para>
13075
13076 <para>
13077 For information on how to change this default directory,
13078 see the
13079 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-default-sdk-installation-directory'>Changing the Default SDK Installation Directory</ulink>"
13080 section in the Yocto Project Application Development and
13081 the Extensible Software Development Kit (eSDK) manual.
13082 </para>
13083 </glossdef>
13084 </glossentry>
13085
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013086 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
13087 <info>
13088 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'."
13089 </info>
13090 <glossdef>
13091 <para role="glossdeffirst">
13092<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13093 Equivalent to
13094 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
13095 However, this variable applies to the SDK generated from an
13096 image using the following command:
13097 <literallayout class='monospaced'>
13098 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
13099 </literallayout>
13100 </para>
13101 </glossdef>
13102 </glossentry>
13103
13104 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
13105 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013106 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013107 </info>
13108 <glossdef>
13109 <para role="glossdeffirst">
13110<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013111 The machine for which the SDK is built.
13112 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013113 runs on the target you specify with the
13114 <filename>SDKMACHINE</filename> value.
13115 The value points to a corresponding
13116 <filename>.conf</filename> file under
13117 <filename>conf/machine-sdk/</filename>.
13118 </para>
13119
13120 <para>
13121 You can use "i686" and "x86_64" as possible values
13122 for this variable. The variable defaults to "i686"
13123 and is set in the local.conf file in the Build Directory.
13124 <literallayout class='monospaced'>
13125 SDKMACHINE ?= "i686"
13126 </literallayout>
13127 <note>
13128 You cannot set the <filename>SDKMACHINE</filename>
13129 variable in your distribution configuration file.
13130 If you do, the configuration will not take affect.
13131 </note>
13132 </para>
13133 </glossdef>
13134 </glossentry>
13135
13136 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
13137 <info>
13138 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
13139 </info>
13140 <glossdef>
13141 <para role="glossdeffirst">
13142<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13143 Defines the path offered to the user for installation
13144 of the SDK that is generated by the OpenEmbedded build
13145 system.
13146 The path appears as the default location for installing
13147 the SDK when you run the SDK's installation script.
13148 You can override the offered path when you run the
13149 script.
13150 </para>
13151 </glossdef>
13152 </glossentry>
13153
13154 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
13155 <info>
13156 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
13157 </info>
13158 <glossdef>
13159 <para role="glossdeffirst">
13160<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13161 The full path to the sysroot used for cross-compilation
13162 within an SDK as it will be when installed into the
13163 default
13164 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
13165 </para>
13166 </glossdef>
13167 </glossentry>
13168
13169 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
13170 <info>
13171 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
13172 </info>
13173 <glossdef>
13174 <para role="glossdeffirst">
13175<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13176 The section in which packages should be categorized.
13177 Package management utilities can make use of this variable.
13178 </para>
13179 </glossdef>
13180 </glossentry>
13181
13182 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
13183 <info>
13184 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."
13185 </info>
13186 <glossdef>
13187 <para role="glossdeffirst">
13188<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13189 Specifies the optimization flags passed to the C compiler
13190 when building for the target.
13191 The flags are passed through the default value of the
13192 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
13193 variable.
13194 </para>
13195
13196 <para>
13197 The <filename>SELECTED_OPTIMIZATION</filename> variable
13198 takes the value of
13199 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
13200 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
13201 If that is the case, the value of
13202 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
13203 </para>
13204 </glossdef>
13205 </glossentry>
13206
13207 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
13208 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013209 SERIAL_CONSOLE[doc] = "Defines the serial consoles (TTYs) to enable using getty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013210 </info>
13211 <glossdef>
13212 <para role="glossdeffirst">
13213<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040013214 Defines a serial console (TTY) to enable using
13215 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013216 Provide a value that specifies the baud rate followed by
13217 the TTY device name separated by a space.
13218 You cannot specify more than one TTY device:
13219 <literallayout class='monospaced'>
13220 SERIAL_CONSOLE = "115200 ttyS0"
13221 </literallayout>
13222 <note>
13223 The <filename>SERIAL_CONSOLE</filename> variable
13224 is deprecated.
13225 Please use the
13226 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
13227 variable.
13228 </note>
13229 </para>
13230 </glossdef>
13231 </glossentry>
13232
13233 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
13234 <info>
13235 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
13236 </info>
13237 <glossdef>
13238 <para role="glossdeffirst">
13239<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040013240 Defines a serial console (TTY) to enable using
13241 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013242 Provide a value that specifies the baud rate followed by
13243 the TTY device name separated by a semicolon.
13244 Use spaces to separate multiple devices:
13245 <literallayout class='monospaced'>
13246 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
13247 </literallayout>
13248 </para>
13249 </glossdef>
13250 </glossentry>
13251
13252 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
13253 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013254 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 -050013255 </info>
13256 <glossdef>
13257 <para role="glossdeffirst">
13258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013259 Specifies serial consoles, which must be listed in
13260 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
13261 to check against <filename>/proc/console</filename>
13262 before enabling them using getty.
13263 This variable allows aliasing in the format:
13264 &lt;device&gt;:&lt;alias&gt;.
13265 If a device was listed as "sclp_line0"
13266 in <filename>/dev/</filename> and "ttyS0" was listed
13267 in <filename>/proc/console</filename>, you would do the
13268 following:
13269 <literallayout class='monospaced'>
13270 SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
13271 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013272 This variable is currently only supported with SysVinit
13273 (i.e. not with systemd).
13274 </para>
13275 </glossdef>
13276 </glossentry>
13277
13278 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
13279 <info>
13280 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."
13281 </info>
13282 <glossdef>
13283 <para role="glossdeffirst">
13284<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13285 A list of recipe dependencies that should not be used to
13286 determine signatures of tasks from one recipe when they
13287 depend on tasks from another recipe.
13288 For example:
13289 <literallayout class='monospaced'>
13290 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
13291 </literallayout>
13292 </para>
13293
13294 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013295 In the previous example, <filename>intone</filename>
13296 depends on <filename>mplayer2</filename>.
13297 </para>
13298
13299 <para>
13300 You can use the special token <filename>"*"</filename> on
13301 the left-hand side of the dependency to match all
13302 recipes except the one on the right-hand side.
13303 Here is an example:
13304 <literallayout class='monospaced'>
13305 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
13306 </literallayout>
13307 </para>
13308
13309 <para>
13310 In the previous example, all recipes except
13311 <filename>quilt-native</filename> ignore task
13312 signatures from the <filename>quilt-native</filename>
13313 recipe when determining their task signatures.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013314 </para>
13315
13316 <para>
13317 Use of this variable is one mechanism to remove dependencies
13318 that affect task signatures and thus force rebuilds when a
13319 recipe changes.
13320 <note><title>Caution</title>
13321 If you add an inappropriate dependency for a recipe
13322 relationship, the software might break during
13323 runtime if the interface of the second recipe was
13324 changed after the first recipe had been built.
13325 </note>
13326 </para>
13327 </glossdef>
13328 </glossentry>
13329
13330 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
13331 <info>
13332 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
13333 </info>
13334 <glossdef>
13335 <para role="glossdeffirst">
13336<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13337 A list of recipes that are completely stable and will
13338 never change.
13339 The ABI for the recipes in the list are presented by
13340 output from the tasks run to build the recipe.
13341 Use of this variable is one way to remove dependencies from
13342 one recipe on another that affect task signatures and
13343 thus force rebuilds when the recipe changes.
13344 <note><title>Caution</title>
13345 If you add an inappropriate variable to this list,
13346 the software might break at runtime if the
13347 interface of the recipe was changed after the other
13348 had been built.
13349 </note>
13350 </para>
13351 </glossdef>
13352 </glossentry>
13353
13354 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
13355 <info>
13356 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
13357 </info>
13358 <glossdef>
13359 <para role="glossdeffirst">
13360<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13361 Specifies the number of bits for the target system CPU.
13362 The value should be either "32" or "64".
13363 </para>
13364 </glossdef>
13365 </glossentry>
13366
13367 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
13368 <info>
13369 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'."
13370 </info>
13371 <glossdef>
13372 <para role="glossdeffirst">
13373<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13374 Specifies the endian byte order of the target system.
13375 The value should be either "le" for little-endian or "be" for big-endian.
13376 </para>
13377 </glossdef>
13378 </glossentry>
13379
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013380 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
13381 <info>
13382 SKIP_FILEDEPS[doc] = "Enables you to remove all files from
13383 the "Provides" section of an RPM package."
13384 </info>
13385 <glossdef>
13386 <para role="glossdeffirst">
13387<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13388 Enables removal of all files from the "Provides" section of
13389 an RPM package.
13390 Removal of these files is required for packages containing
13391 prebuilt binaries and libraries such as
13392 <filename>libstdc++</filename> and
13393 <filename>glibc</filename>.
13394 </para>
13395
13396 <para>
13397 To enable file removal, set the variable to "1" in your
13398 <filename>conf/local.conf</filename> configuration file
13399 in your:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013400 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013401 <literallayout class='monospaced'>
13402 SKIP_FILEDEPS = "1"
13403 </literallayout>
13404 </para>
13405 </glossdef>
13406 </glossentry>
13407
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013408 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
13409 <info>
13410 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."
13411 </info>
13412 <glossdef>
13413 <para role="glossdeffirst">
13414<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13415 Groups together machines based upon the same family
13416 of SOC (System On Chip).
13417 You typically set this variable in a common
13418 <filename>.inc</filename> file that you include in the
13419 configuration files of all the machines.
13420 <note>
13421 You must include
13422 <filename>conf/machine/include/soc-family.inc</filename>
13423 for this variable to appear in
13424 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
13425 </note>
13426 </para>
13427 </glossdef>
13428 </glossentry>
13429
13430 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
13431 <info>
13432 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
13433 </info>
13434 <glossdef>
13435 <para role="glossdeffirst">
13436<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13437 Defines the suffix for shared libraries used on the
13438 target platform.
13439 By default, this suffix is ".so.*" for all Linux-based
13440 systems and is defined in the
13441 <filename>meta/conf/bitbake.conf</filename> configuration
13442 file.
13443 </para>
13444
13445 <para>
13446 You will see this variable referenced in the default values
13447 of <filename>FILES_${PN}</filename>.
13448 </para>
13449 </glossdef>
13450 </glossentry>
13451
13452 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
13453 <info>
13454 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
13455 </info>
13456 <glossdef>
13457 <para role="glossdeffirst">
13458<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13459 Defines the suffix for the development symbolic link
13460 (symlink) for shared libraries on the target platform.
13461 By default, this suffix is ".so" for Linux-based
13462 systems and is defined in the
13463 <filename>meta/conf/bitbake.conf</filename> configuration
13464 file.
13465 </para>
13466
13467 <para>
13468 You will see this variable referenced in the default values
13469 of <filename>FILES_${PN}-dev</filename>.
13470 </para>
13471 </glossdef>
13472 </glossentry>
13473
13474 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
13475 <info>
13476 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
13477 </info>
13478 <glossdef>
13479 <para role="glossdeffirst">
13480<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13481 When you are fetching files to create a mirror of sources
13482 (i.e. creating a source mirror), setting
13483 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
13484 <filename>local.conf</filename> configuration file ensures
13485 the source for all recipes are fetched regardless of
13486 whether or not a recipe is compatible with the
13487 configuration.
13488 A recipe is considered incompatible with the currently
13489 configured machine when either or both the
13490 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
13491 variable and
13492 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
13493 variables specify compatibility with a machine other
13494 than that of the current machine or host.
13495 <note><title>Warning</title>
13496 Do not set the
13497 <filename>SOURCE_MIRROR_FETCH</filename> variable
13498 unless you are creating a source mirror.
13499 In other words, do not set the variable during a
13500 normal build.
13501 </note>
13502 </para>
13503 </glossdef>
13504 </glossentry>
13505
13506 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
13507 <info>
13508 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
13509 </info>
13510 <glossdef>
13511 <para role="glossdeffirst">
13512<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13513 Defines your own
13514 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13515 from which to first fetch source before attempting to fetch
13516 from the upstream specified in
13517 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
13518 </para>
13519
13520 <para>
13521 To use this variable, you must globally inherit the
13522 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
13523 class and then provide the URL to your mirrors.
13524 Here is the general syntax:
13525 <literallayout class='monospaced'>
13526 INHERIT += "own-mirrors"
13527 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
13528 </literallayout>
13529 <note>
13530 You can specify only a single URL in
13531 <filename>SOURCE_MIRROR_URL</filename>.
13532 </note>
13533 </para>
13534 </glossdef>
13535 </glossentry>
13536
13537 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
13538 <info>
13539 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
13540 </info>
13541 <glossdef>
13542 <para role="glossdeffirst">
13543<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13544 Maps commonly used license names to their SPDX counterparts
13545 found in <filename>meta/files/common-licenses/</filename>.
13546 For the default <filename>SPDXLICENSEMAP</filename>
13547 mappings, see the
13548 <filename>meta/conf/licenses.conf</filename> file.
13549 </para>
13550
13551 <para>
13552 For additional information, see the
13553 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
13554 variable.
13555 </para>
13556 </glossdef>
13557 </glossentry>
13558
13559 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
13560 <info>
13561 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."
13562 </info>
13563 <glossdef>
13564 <para role="glossdeffirst">
13565<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13566 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
13567 OpenEmbedded build system to create variants of recipes or packages.
13568 The list specifies the prefixes to strip off during certain circumstances
13569 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
13570 </para>
13571 </glossdef>
13572 </glossentry>
13573
Brad Bishop316dfdd2018-06-25 12:45:53 -040013574 <glossentry id='var-SPL_BINARY'><glossterm>SPL_BINARY</glossterm>
13575 <info>
13576 SPL_BINARY[doc] = "The file type of the Secondary Program Loader (SPL)."
13577 </info>
13578 <glossdef>
13579 <para role="glossdeffirst">
13580<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13581 The file type for the Secondary Program Loader (SPL).
13582 Some devices use an SPL from which to boot (e.g. the
13583 BeagleBone development board).
13584 For such cases, you can declare the file type of the
13585 SPL binary in the <filename>u-boot.inc</filename> include
13586 file, which is used in the U-Boot recipe.
13587 </para>
13588
13589 <para>
13590 The SPL file type is set to "null" by default in the
13591 <filename>u-boot.inc</filename> file as follows:
13592 <literallayout class='monospaced'>
13593 # Some versions of u-boot build an SPL (Second Program Loader) image that
13594 # should be packaged along with the u-boot binary as well as placed in the
13595 # deploy directory. For those versions they can set the following variables
13596 # to allow packaging the SPL.
13597 SPL_BINARY ?= ""
13598 SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
13599 SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
13600 SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
13601 </literallayout>
13602 The <filename>SPL_BINARY</filename> variable helps form
13603 various <filename>SPL_*</filename> variables used by
13604 the OpenEmbedded build system.
13605 </para>
13606
13607 <para>
13608 See the BeagleBone machine configuration example in the
13609 "<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>"
13610 section in the Yocto Project Board Support Package
13611 Developer's Guide for additional information.
13612 </para>
13613 </glossdef>
13614 </glossentry>
13615
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013616 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
13617 <info>
13618 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."
13619 </info>
13620 <glossdef>
13621 <para role="glossdeffirst">
13622<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13623 The list of source files - local or remote.
13624 This variable tells the OpenEmbedded build system which bits
13625 to pull in for the build and how to pull them in.
13626 For example, if the recipe or append file only needs to
13627 fetch a tarball from the Internet, the recipe or
13628 append file uses a single <filename>SRC_URI</filename>
13629 entry.
13630 On the other hand, if the recipe or append file needs to
13631 fetch a tarball, apply two patches, and include a custom
13632 file, the recipe or append file would include four
13633 instances of the variable.
13634 </para>
13635
13636 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013637 The following list explains the available URI protocols.
13638 URI protocols are highly dependent on particular BitBake
13639 Fetcher submodules.
13640 Depending on the fetcher BitBake uses, various URL
13641 parameters are employed.
13642 For specifics on the supported Fetchers, see the
13643 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
13644 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013645 <itemizedlist>
13646 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
13647 Fetches files, which are usually files shipped with
13648 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013649 <link linkend='metadata'>Metadata</link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -040013650 from the local machine (e.g.
13651 <ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>patch</ulink>
13652 files).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013653 The path is relative to the
13654 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
13655 variable.
13656 Thus, the build system searches, in order, from the
13657 following directories, which are assumed to be a
13658 subdirectories of the directory in which the
13659 recipe file (<filename>.bb</filename>) or
13660 append file (<filename>.bbappend</filename>)
13661 resides:
13662 <itemizedlist>
13663 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
13664 The base recipe name without any special
13665 suffix or version numbers.
13666 </para></listitem>
13667 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
13668 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
13669 The base recipe name and version but without
13670 any special package name suffix.
13671 </para></listitem>
13672 <listitem><para><emphasis>files -</emphasis>
13673 Files within a directory, which is named
13674 <filename>files</filename> and is also
13675 alongside the recipe or append file.
13676 </para></listitem>
13677 </itemizedlist>
13678 <note>
13679 If you want the build system to pick up files
13680 specified through a
13681 <filename>SRC_URI</filename>
13682 statement from your append file, you need to be
13683 sure to extend the
13684 <filename>FILESPATH</filename>
13685 variable by also using the
13686 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
13687 variable from within your append file.
13688 </note>
13689 </para></listitem>
13690 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
13691 Bazaar revision control repository.</para></listitem>
13692 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
13693 Git revision control repository.</para></listitem>
13694 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
13695 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
13696 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
13697 a repo (Git) repository.</para></listitem>
13698 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
13699 Fetches files from a ClearCase repository.
13700 </para></listitem>
13701 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
13702 the Internet using <filename>http</filename>.</para></listitem>
13703 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
13704 from the Internet using <filename>https</filename>.</para></listitem>
13705 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
13706 from the Internet using <filename>ftp</filename>.</para></listitem>
13707 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
13708 a CVS revision control repository.</para></listitem>
13709 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
13710 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
13711 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
13712 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
13713 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
13714 a secure shell.</para></listitem>
13715 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
13716 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
13717 </itemizedlist>
13718 </para>
13719
13720 <para>
13721 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
13722 Here are standard options:
13723 <itemizedlist>
13724 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
13725 the patch or not.
13726 The default action is to apply the patch.</para></listitem>
13727 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
13728 striplevel to use when applying the patch.
13729 The default level is 1.</para></listitem>
13730 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
13731 the directory in which the patch should be applied.
13732 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
13733 </para></listitem>
13734 </itemizedlist>
13735 </para>
13736
13737 <para>
13738 Here are options specific to recipes building code from a revision control system:
13739 <itemizedlist>
13740 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
13741 Apply the patch only if
13742 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
13743 is equal to or greater than <filename>mindate</filename>.
13744 </para></listitem>
13745 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
13746 Apply the patch only if <filename>SRCDATE</filename>
Andrew Geissler5fa08482019-03-20 15:58:14 -050013747 is not later than <filename>maxdate</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013748 </para></listitem>
13749 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
13750 Apply the patch only if <filename>SRCREV</filename>
13751 is equal to or greater than <filename>minrev</filename>.
13752 </para></listitem>
13753 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
13754 Apply the patch only if <filename>SRCREV</filename>
13755 is not later than <filename>maxrev</filename>.
13756 </para></listitem>
13757 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
13758 Apply the patch only if <filename>SRCREV</filename>
13759 is equal to <filename>rev</filename>.
13760 </para></listitem>
13761 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
13762 Apply the patch only if <filename>SRCREV</filename>
13763 is not equal to <filename>rev</filename>.
13764 </para></listitem>
13765 </itemizedlist>
13766 </para>
13767
13768 <para>
13769 Here are some additional options worth mentioning:
13770 <itemizedlist>
13771 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
13772 whether or not to unpack the file if it is an archive.
13773 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013774 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
13775 (or extracts its contents) into the specified
13776 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
13777 when the Git fetcher is used.
13778 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013779 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
13780 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013781 subdirectory of <filename>WORKDIR</filename>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013782 when the local (<filename>file://</filename>)
13783 fetcher is used.
13784 </para></listitem>
13785 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
13786 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013787 subdirectory of <filename>WORKDIR</filename> when
13788 the CVS fetcher is used.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013789 </para></listitem>
13790 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
13791 Limits the checkout to a specific subpath of the
13792 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013793 </para></listitem>
13794 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
13795 name to be used for association with <filename>SRC_URI</filename> checksums
13796 when you have more than one file specified in <filename>SRC_URI</filename>.
13797 </para></listitem>
13798 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
13799 the filename used when storing the downloaded file.</para></listitem>
13800 </itemizedlist>
13801 </para>
13802 </glossdef>
13803 </glossentry>
13804
13805 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
13806 <info>
13807 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."
13808 </info>
13809 <glossdef>
13810 <para role="glossdeffirst">
13811<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13812 By default, the OpenEmbedded build system automatically detects whether
13813 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
13814 contains files that are machine-specific.
13815 If so, the build system automatically changes
13816 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
13817 Setting this variable to "0" disables this behavior.
13818 </para>
13819 </glossdef>
13820 </glossentry>
13821
13822 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
13823 <info>
13824 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)."
13825 </info>
13826 <glossdef>
13827 <para role="glossdeffirst">
13828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13829 The date of the source code used to build the package.
13830 This variable applies only if the source was fetched from a Source Code Manager (SCM).
13831 </para>
13832 </glossdef>
13833 </glossentry>
13834
13835 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
13836 <info>
13837 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
13838 </info>
13839 <glossdef>
13840 <para role="glossdeffirst">
13841<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13842 Returns the version string of the current package.
13843 This string is used to help define the value of
13844 <link linkend='var-PV'><filename>PV</filename></link>.
13845 </para>
13846
13847 <para>
13848 The <filename>SRCPV</filename> variable is defined in the
13849 <filename>meta/conf/bitbake.conf</filename> configuration
13850 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013851 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013852 as follows:
13853 <literallayout class='monospaced'>
13854 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
13855 </literallayout>
13856 </para>
13857
13858 <para>
13859 Recipes that need to define <filename>PV</filename> do so
13860 with the help of the <filename>SRCPV</filename>.
13861 For example, the <filename>ofono</filename> recipe
13862 (<filename>ofono_git.bb</filename>) located in
13863 <filename>meta/recipes-connectivity</filename> in the
13864 Source Directory defines <filename>PV</filename> as
13865 follows:
13866 <literallayout class='monospaced'>
13867 PV = "0.12-git${SRCPV}"
13868 </literallayout>
13869 </para>
13870 </glossdef>
13871 </glossentry>
13872
13873 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
13874 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013875 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 -050013876 </info>
13877 <glossdef>
13878 <para role="glossdeffirst">
13879<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13880 The revision of the source code used to build the package.
Brad Bishop316dfdd2018-06-25 12:45:53 -040013881 This variable applies to Subversion, Git, Mercurial, and
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013882 Bazaar only.
13883 Note that if you want to build a fixed revision and you
13884 want to avoid performing a query on the remote repository
13885 every time BitBake parses your recipe, you should specify
13886 a <filename>SRCREV</filename> that is a
13887 full revision identifier and not just a tag.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013888 <note>
13889 For information on limitations when inheriting the
13890 latest revision of software using
13891 <filename>SRCREV</filename>, see the
13892 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
13893 variable description and the
13894 "<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 -050013895 section, which is in the Yocto Project Development
13896 Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013897 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013898 </para>
13899
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013900 </glossdef>
13901 </glossentry>
13902
13903 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
13904 <info>
13905 SSTATE_DIR[doc] = "The directory for the shared state cache."
13906 </info>
13907 <glossdef>
13908 <para role="glossdeffirst">
13909<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13910 The directory for the shared state cache.
13911 </para>
13912 </glossdef>
13913 </glossentry>
13914
13915 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
13916 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013917 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 -050013918 </info>
13919 <glossdef>
13920 <para role="glossdeffirst">
13921<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13922 If set to "1", allows fetches from
13923 mirrors that are specified in
13924 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013925 to work even when fetching from the network is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013926 disabled by setting <filename>BB_NO_NETWORK</filename>
13927 to "1".
13928 Using the
13929 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
13930 variable is useful if you have set
13931 <filename>SSTATE_MIRRORS</filename> to point to an
13932 internal server for your shared state cache, but
13933 you want to disable any other fetching from the network.
13934 </para>
13935 </glossdef>
13936 </glossentry>
13937
13938 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
13939 <info>
13940 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."
13941 </info>
13942 <glossdef>
13943 <para role="glossdeffirst">
13944<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13945 Configures the OpenEmbedded build system to search other
13946 mirror locations for prebuilt cache data objects before
13947 building out the data.
13948 This variable works like fetcher
13949 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
13950 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13951 and points to the cache locations to check for the shared
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013952 state (sstate) objects.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013953 </para>
13954
13955 <para>
13956 You can specify a filesystem directory or a remote URL such
13957 as HTTP or FTP.
13958 The locations you specify need to contain the shared state
13959 cache (sstate-cache) results from previous builds.
13960 The sstate-cache you point to can also be from builds on
13961 other machines.
13962 </para>
13963
13964 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013965 When pointing to sstate build artifacts on another machine
13966 that uses a different GCC version for native builds,
13967 you must configure <filename>SSTATE_MIRROR</filename>
13968 with a regular expression that maps local search paths
13969 to server paths.
13970 The paths need to take into account
13971 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
13972 set by the
13973 <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
13974 class.
13975 For example, the following maps the local search path
13976 <filename>universal-4.9</filename> to the server-provided
13977 path <replaceable>server_url_sstate_path</replaceable>:
13978 <literallayout class='monospaced'>
13979 SSTATE_MIRRORS ?= file://universal-4.9/(.*) http://<replaceable>server_url_sstate_path</replaceable>/universal-4.8/\1 \n
13980 </literallayout>
13981 </para>
13982
13983 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013984 If a mirror uses the same structure as
13985 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
13986 you need to add
13987 "PATH" at the end as shown in the examples below.
13988 The build system substitutes the correct path within the
13989 directory structure.
13990 <literallayout class='monospaced'>
13991 SSTATE_MIRRORS ?= "\
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013992 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013993 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
13994 </literallayout>
13995 </para>
13996 </glossdef>
13997 </glossentry>
13998
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013999 <glossentry id='var-SSTATE_SCAN_FILES'><glossterm>SSTATE_SCAN_FILES</glossterm>
14000 <info>
14001 SSTATE_SCAN_FILES[doc] = "Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths."
14002 </info>
14003 <glossdef>
14004 <para role="glossdeffirst">
14005<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14006 Controls the list of files the OpenEmbedded build system
14007 scans for hardcoded installation paths. The variable uses a
14008 space-separated list of filenames (not paths) with standard
14009 wildcard characters allowed.
14010 </para>
14011
14012 <para>
14013 During a build, the OpenEmbedded build system creates a
14014 shared state (sstate) object during the first stage of
14015 preparing the sysroots. That object is scanned for
14016 hardcoded paths for original installation locations.
14017 The list of files that are scanned for paths is controlled
14018 by the <filename>SSTATE_SCAN_FILES</filename> variable.
14019 Typically, recipes add files they want to be scanned to the
14020 value of <filename>SSTATE_SCAN_FILES</filename> rather than
14021 the variable being comprehensively set. The
14022 <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
14023 class specifies the default list of files.
14024 </para>
14025
14026 <para>
14027 For details on the process, see the
14028 <link linkend='ref-classes-staging'><filename>staging</filename></link>
14029 class.
14030 </para>
14031 </glossdef>
14032 </glossentry>
14033
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014034 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
14035 <info>
14036 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
14037 </info>
14038 <glossdef>
14039 <para role="glossdeffirst">
14040<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14041 Specifies the path to the <filename>/lib</filename>
14042 subdirectory of the sysroot directory for the
14043 build host.
14044 </para>
14045 </glossdef>
14046 </glossentry>
14047
14048 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
14049 <info>
14050 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)."
14051 </info>
14052 <glossdef>
14053 <para role="glossdeffirst">
14054<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14055 Specifies the path to the <filename>/lib</filename>
14056 subdirectory of the sysroot directory for the target
14057 for which the current recipe is being built
14058 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14059 </para>
14060 </glossdef>
14061 </glossentry>
14062
14063 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
14064 <info>
14065 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)."
14066 </info>
14067 <glossdef>
14068 <para role="glossdeffirst">
14069<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14070 Specifies the path to the
14071 <filename>/usr/bin</filename> subdirectory of the
14072 sysroot directory for the target for which the current
14073 recipe is being built
14074 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14075 </para>
14076 </glossdef>
14077 </glossentry>
14078
14079 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
14080 <info>
14081 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."
14082 </info>
14083 <glossdef>
14084 <para role="glossdeffirst">
14085<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14086 Specifies the path to the directory containing binary
14087 configuration scripts.
14088 These scripts provide configuration information for
14089 other software that wants to make use of libraries or
14090 include files provided by the software associated with
14091 the script.
14092 <note>
14093 This style of build configuration has been largely
14094 replaced by <filename>pkg-config</filename>.
14095 Consequently, if <filename>pkg-config</filename>
14096 is supported by the library to which you are linking,
14097 it is recommended you use
14098 <filename>pkg-config</filename> instead of a
14099 provided configuration script.
14100 </note>
14101 </para>
14102 </glossdef>
14103 </glossentry>
14104
14105 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
14106 <info>
14107 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
14108 </info>
14109 <glossdef>
14110 <para role="glossdeffirst">
14111<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14112 Specifies the path to the
14113 <filename>/usr/bin</filename> subdirectory of the
14114 sysroot directory for the build host.
14115 </para>
14116 </glossdef>
14117 </glossentry>
14118
14119 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
14120 <info>
14121 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)."
14122 </info>
14123 <glossdef>
14124 <para role="glossdeffirst">
14125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14126 Specifies the path to the <filename>/usr/share</filename>
14127 subdirectory of the sysroot directory for the target
14128 for which the current recipe is being built
14129 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14130 </para>
14131 </glossdef>
14132 </glossentry>
14133
14134 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
14135 <info>
14136 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
14137 </info>
14138 <glossdef>
14139 <para role="glossdeffirst">
14140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14141 Specifies the path to the <filename>/usr/share</filename>
14142 subdirectory of the sysroot directory for the build host.
14143 </para>
14144 </glossdef>
14145 </glossentry>
14146
14147 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
14148 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014149 STAGING_DIR[doc] = "Helps construct the recipe-sysroots directory, which is used during packaging."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014150 </info>
14151 <glossdef>
14152 <para role="glossdeffirst">
14153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040014154 Helps construct the <filename>recipe-sysroots</filename>
14155 directory, which is used during packaging.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014156 </para>
14157
14158 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014159 For information on how staging for recipe-specific
14160 sysroots occurs, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014161 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014162 task, the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014163 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-sharing-files-between-recipes'>Sharing Files Between Recipes</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -040014164 section in the Yocto Project Development Tasks Manual, the
14165 "<ulink url='&YOCTO_DOCS_OM_URL;#configuration-compilation-and-staging-dev-environment'>Configuration, Compilation, and Staging</ulink>"
14166 section in the Yocto Project Overview and Concepts Manual,
14167 and the
14168 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14169 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014170 <note>
14171 Recipes should never write files directly under
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014172 the <filename>STAGING_DIR</filename> directory because
14173 the OpenEmbedded build system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014174 manages the directory automatically.
14175 Instead, files should be installed to
14176 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
14177 within your recipe's
14178 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
14179 task and then the OpenEmbedded build system will
14180 stage a subset of those files into the sysroot.
14181 </note>
14182 </para>
14183 </glossdef>
14184 </glossentry>
14185
14186 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
14187 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014188 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 -050014189 </info>
14190 <glossdef>
14191 <para role="glossdeffirst">
14192<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014193 Specifies the path to the sysroot directory for the system
Brad Bishop316dfdd2018-06-25 12:45:53 -040014194 on which the component is built to run (the system that
14195 hosts the component).
14196 For most recipes, this sysroot is the one in which that
14197 recipe's
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014198 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014199 task copies files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014200 Exceptions include <filename>-native</filename> recipes,
14201 where the <filename>do_populate_sysroot</filename> task
14202 instead uses
14203 <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
14204 Depending on the type of recipe and the build target,
14205 <filename>STAGING_DIR_HOST</filename> can have the
14206 following values:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014207 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014208 <listitem><para>
14209 For recipes building for the target machine, the
14210 value is
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014211 "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
14212 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014213 <listitem><para>
14214 For native recipes building for the build host, the
14215 value is empty given the assumption that when
14216 building for the build host, the build host's own
14217 directories should be used.
14218 <note>
14219 <para><filename>-native</filename> recipes are
14220 not installed into host paths like such as
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014221 <filename>/usr</filename>.
14222 Rather, these recipes are installed into
14223 <filename>STAGING_DIR_NATIVE</filename>.
14224 When compiling <filename>-native</filename>
14225 recipes, standard build environment variables
14226 such as
14227 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14228 and
14229 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14230 are set up so that both host paths and
14231 <filename>STAGING_DIR_NATIVE</filename> are
14232 searched for libraries and headers using, for
14233 example, GCC's <filename>-isystem</filename>
14234 option.</para>
14235
Brad Bishop316dfdd2018-06-25 12:45:53 -040014236 <para>Thus, the emphasis is that the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014237 <filename>STAGING_DIR*</filename> variables
14238 should be viewed as input variables by tasks
14239 such as
14240 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
14241 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
14242 and
14243 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
14244 Having the real system root correspond to
14245 <filename>STAGING_DIR_HOST</filename> makes
14246 conceptual sense for
14247 <filename>-native</filename> recipes, as
14248 they make use of host headers and libraries.
14249 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014250 </note>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014251 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014252 </itemizedlist>
14253 </para>
14254 </glossdef>
14255 </glossentry>
14256
14257 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
14258 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014259 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 -050014260 </info>
14261 <glossdef>
14262 <para role="glossdeffirst">
14263<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014264 Specifies the path to the sysroot directory used when
14265 building components that run on the build host itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014266 </para>
14267 </glossdef>
14268 </glossentry>
14269
14270 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
14271 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014272 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 -050014273 </info>
14274 <glossdef>
14275 <para role="glossdeffirst">
14276<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014277 Specifies the path to the sysroot used for the system for
14278 which the component generates code.
14279 For components that do not generate code, which is the
14280 majority, <filename>STAGING_DIR_TARGET</filename> is set
14281 to match
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014282 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
14283 </para>
14284
14285 <para>
14286 Some recipes build binaries that can run on the target
14287 system but those binaries in turn generate code for
14288 another different system (e.g. cross-canadian recipes).
14289 Using terminology from GNU, the primary system is referred
14290 to as the "HOST" and the secondary, or different, system is
14291 referred to as the "TARGET".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014292 Thus, the binaries run on the "HOST" system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014293 and generate binaries for the "TARGET" system.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014294 The <filename>STAGING_DIR_HOST</filename> variable points
14295 to the sysroot used for the "HOST" system, while
14296 <filename>STAGING_DIR_TARGET</filename>
14297 points to the sysroot used for the "TARGET" system.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014298 </para>
14299 </glossdef>
14300 </glossentry>
14301
14302 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
14303 <info>
14304 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
14305 </info>
14306 <glossdef>
14307 <para role="glossdeffirst">
14308<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14309 Specifies the path to the <filename>/etc</filename>
14310 subdirectory of the sysroot directory for the
14311 build host.
14312 </para>
14313 </glossdef>
14314 </glossentry>
14315
14316 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
14317 <info>
14318 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)."
14319 </info>
14320 <glossdef>
14321 <para role="glossdeffirst">
14322<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14323 Specifies the path to the <filename>/usr</filename>
14324 subdirectory of the sysroot directory for the target
14325 for which the current recipe is being built
14326 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14327 </para>
14328 </glossdef>
14329 </glossentry>
14330
14331 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
14332 <info>
14333 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)."
14334 </info>
14335 <glossdef>
14336 <para role="glossdeffirst">
14337<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14338 Specifies the path to the
14339 <filename>/usr/include</filename> subdirectory of the
14340 sysroot directory for the target for which the current
14341 recipe being built
14342 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14343 </para>
14344 </glossdef>
14345 </glossentry>
14346
14347 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
14348 <info>
14349 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
14350 </info>
14351 <glossdef>
14352 <para role="glossdeffirst">
14353<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14354 Specifies the path to the <filename>/usr/include</filename>
14355 subdirectory of the sysroot directory for the build host.
14356 </para>
14357 </glossdef>
14358 </glossentry>
14359
Patrick Williamsf1e5d692016-03-30 15:21:19 -050014360 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
14361 <info>
14362 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
14363 </info>
14364 <glossdef>
14365 <para role="glossdeffirst">
14366<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14367 Points to the directory containing the kernel build
14368 artifacts.
14369 Recipes building software that needs to access kernel
14370 build artifacts
14371 (e.g. <filename>systemtap-uprobes</filename>) can look in
14372 the directory specified with the
14373 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
14374 find these artifacts after the kernel has been built.
14375 </para>
14376 </glossdef>
14377 </glossentry>
14378
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014379 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
14380 <info>
14381 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
14382 </info>
14383 <glossdef>
14384 <para role="glossdeffirst">
14385<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14386 The directory with kernel headers that are required to build out-of-tree
14387 modules.
14388 </para>
14389 </glossdef>
14390 </glossentry>
14391
14392 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
14393 <info>
14394 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)."
14395 </info>
14396 <glossdef>
14397 <para role="glossdeffirst">
14398<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14399 Specifies the path to the <filename>/usr/lib</filename>
14400 subdirectory of the sysroot directory for the target for
14401 which the current recipe is being built
14402 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14403 </para>
14404 </glossdef>
14405 </glossentry>
14406
14407 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
14408 <info>
14409 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
14410 </info>
14411 <glossdef>
14412 <para role="glossdeffirst">
14413<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14414 Specifies the path to the <filename>/usr/lib</filename>
14415 subdirectory of the sysroot directory for the build host.
14416 </para>
14417 </glossdef>
14418 </glossentry>
14419
14420 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
14421 <info>
14422 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."
14423 </info>
14424 <glossdef>
14425 <para role="glossdeffirst">
14426<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14427 Specifies the base path used to create recipe stamp files.
14428 The path to an actual stamp file is constructed by evaluating this
14429 string and then appending additional information.
14430 Currently, the default assignment for <filename>STAMP</filename>
14431 as set in the <filename>meta/conf/bitbake.conf</filename> file
14432 is:
14433 <literallayout class='monospaced'>
14434 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
14435 </literallayout>
14436 </para>
14437
14438 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014439 For information on how BitBake uses stamp files to determine
14440 if a task should be rerun, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040014441 "<ulink url='&YOCTO_DOCS_OM_URL;#stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</ulink>"
14442 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014443 </para>
14444
14445 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014446 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
14447 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
14448 <link linkend='var-PN'><filename>PN</filename></link>,
14449 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
14450 <link linkend='var-PV'><filename>PV</filename></link>, and
14451 <link linkend='var-PR'><filename>PR</filename></link> for related variable
14452 information.
14453 </para>
14454 </glossdef>
14455 </glossentry>
14456
14457 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
14458 <info>
14459 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
14460 </info>
14461 <glossdef>
14462 <para role="glossdeffirst">
14463<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14464 Specifies the base directory in which the OpenEmbedded
14465 build system places stamps.
14466 The default directory is
14467 <filename>${TMPDIR}/stamps</filename>.
14468 </para>
14469 </glossdef>
14470 </glossentry>
14471
14472 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
14473 <info>
14474 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
14475 </info>
14476 <glossdef>
14477 <para role="glossdeffirst">
14478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14479 The minimal command and arguments to run
14480 <filename>strip</filename>, which is used to strip
14481 symbols.
14482 </para>
14483 </glossdef>
14484 </glossentry>
14485
14486 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
14487 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014488 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 -050014489 </info>
14490 <glossdef>
14491 <para role="glossdeffirst">
14492<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14493 The short (72 characters or less) summary of the binary package for packaging
Brad Bishop316dfdd2018-06-25 12:45:53 -040014494 systems such as <filename>opkg</filename>, <filename>rpm</filename>, or
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014495 <filename>dpkg</filename>.
14496 By default, <filename>SUMMARY</filename> is used to define
14497 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
14498 variable if <filename>DESCRIPTION</filename> is not set
14499 in the recipe.
14500 </para>
14501 </glossdef>
14502 </glossentry>
14503
14504 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
14505 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014506 SVNDIR[doc] = "The directory where Subversion checkouts are stored."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014507 </info>
14508 <glossdef>
14509 <para role="glossdeffirst">
14510<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14511 The directory in which files checked out of a Subversion
14512 system are stored.
14513 </para>
14514 </glossdef>
14515 </glossentry>
14516
14517 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
14518 <info>
14519 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
14520 </info>
14521 <glossdef>
14522 <para role="glossdeffirst">
14523<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14524 Specifies the kernel boot default console.
14525 If you want to use a console other than the default,
14526 set this variable in your recipe as follows where "X" is
14527 the console number you want to use:
14528 <literallayout class='monospaced'>
14529 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
14530 </literallayout>
14531 </para>
14532
14533 <para>
14534 The
14535 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14536 class initially sets this variable to null but then checks
14537 for a value later.
14538 </para>
14539 </glossdef>
14540 </glossentry>
14541
14542 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
14543 <info>
14544 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
14545 </info>
14546 <glossdef>
14547 <para role="glossdeffirst">
14548<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14549 Lists additional options to add to the syslinux file.
14550 You need to set this variable in your recipe.
14551 If you want to list multiple options, separate the options
14552 with a semicolon character (<filename>;</filename>).
14553 </para>
14554
14555 <para>
14556 The
14557 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14558 class uses this variable to create a set of options.
14559 </para>
14560 </glossdef>
14561 </glossentry>
14562
14563 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
14564 <info>
14565 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
14566 </info>
14567 <glossdef>
14568 <para role="glossdeffirst">
14569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14570 Specifies the alternate serial port or turns it off.
14571 To turn off serial, set this variable to an empty string
14572 in your recipe.
14573 The variable's default value is set in the
14574 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014575 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014576 <literallayout class='monospaced'>
14577 SYSLINUX_SERIAL ?= "0 115200"
14578 </literallayout>
14579 </para>
14580
14581 <para>
14582 The class checks for and uses the variable as needed.
14583 </para>
14584 </glossdef>
14585 </glossentry>
14586
14587 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
14588 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014589 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 -050014590 </info>
14591 <glossdef>
14592 <para role="glossdeffirst">
14593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14594 An <filename>.LSS</filename> file used as the background
Brad Bishop316dfdd2018-06-25 12:45:53 -040014595 for the VGA boot menu when you use the boot menu.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014596 You need to set this variable in your recipe.
14597 </para>
14598
14599 <para>
14600 The
14601 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14602 class checks for this variable and if found, the
14603 OpenEmbedded build system installs the splash screen.
14604 </para>
14605 </glossdef>
14606 </glossentry>
14607
14608 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
14609 <info>
14610 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
14611 </info>
14612 <glossdef>
14613 <para role="glossdeffirst">
14614<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14615 Specifies the alternate console=tty... kernel boot argument.
14616 The variable's default value is set in the
14617 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014618 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014619 <literallayout class='monospaced'>
14620 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
14621 </literallayout>
14622 </para>
14623
14624 <para>
14625 The class checks for and uses the variable as needed.
14626 </para>
14627 </glossdef>
14628 </glossentry>
14629
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014630 <glossentry id='var-SYSROOT_DESTDIR'><glossterm>SYSROOT_DESTDIR</glossterm>
14631 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014632 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 -050014633 </info>
14634 <glossdef>
14635 <para role="glossdeffirst">
14636<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14637 Points to the temporary directory under the work directory
14638 (default
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014639 "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
Brad Bishop316dfdd2018-06-25 12:45:53 -040014640 where the files populated into the sysroot are assembled
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014641 during the
14642 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14643 task.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014644 </para>
14645 </glossdef>
14646 </glossentry>
14647
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014648 <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
14649 <info>
14650 SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
14651 </info>
14652 <glossdef>
14653 <para role="glossdeffirst">
14654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14655 Directories that are staged into the sysroot by the
14656 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14657 task.
14658 By default, the following directories are staged:
14659 <literallayout class='monospaced'>
14660 SYSROOT_DIRS = " \
14661 ${includedir} \
14662 ${libdir} \
14663 ${base_libdir} \
14664 ${nonarch_base_libdir} \
14665 ${datadir} \
14666 "
14667 </literallayout>
14668 </para>
14669 </glossdef>
14670 </glossentry>
14671
14672 <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
14673 <info>
14674 SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
14675 </info>
14676 <glossdef>
14677 <para role="glossdeffirst">
14678<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14679 Directories that are not staged into the sysroot by the
14680 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14681 task.
14682 You can use this variable to exclude certain subdirectories
14683 of directories listed in
14684 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14685 from staging.
14686 By default, the following directories are not staged:
14687 <literallayout class='monospaced'>
14688 SYSROOT_DIRS_BLACKLIST = " \
14689 ${mandir} \
14690 ${docdir} \
14691 ${infodir} \
14692 ${datadir}/locale \
14693 ${datadir}/applications \
14694 ${datadir}/fonts \
14695 ${datadir}/pixmaps \
14696 "
14697 </literallayout>
14698 </para>
14699 </glossdef>
14700 </glossentry>
14701
14702 <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
14703 <info>
14704 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."
14705 </info>
14706 <glossdef>
14707 <para role="glossdeffirst">
14708<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14709 Extra directories staged into the sysroot by the
14710 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14711 task for <filename>-native</filename> recipes, in addition
14712 to those specified in
14713 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
14714 By default, the following extra directories are staged:
14715 <literallayout class='monospaced'>
14716 SYSROOT_DIRS_NATIVE = " \
14717 ${bindir} \
14718 ${sbindir} \
14719 ${base_bindir} \
14720 ${base_sbindir} \
14721 ${libexecdir} \
14722 ${sysconfdir} \
14723 ${localstatedir} \
14724 "
14725 </literallayout>
14726 <note>
14727 Programs built by <filename>-native</filename> recipes
14728 run directly from the sysroot
14729 (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
14730 which is why additional directories containing program
14731 executables and supporting files need to be staged.
14732 </note>
14733 </para>
14734 </glossdef>
14735 </glossentry>
14736
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014737 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
14738 <info>
14739 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."
14740 </info>
14741 <glossdef>
14742 <para role="glossdeffirst">
14743<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14744 A list of functions to execute after files are staged into
14745 the sysroot.
14746 These functions are usually used to apply additional
14747 processing on the staged files, or to stage additional
14748 files.
14749 </para>
14750 </glossdef>
14751 </glossentry>
14752
14753 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
14754 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014755 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 -050014756 </info>
14757 <glossdef>
14758 <para role="glossdeffirst">
14759<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14760 When inheriting the
14761 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014762 class, this variable specifies whether the specified service
14763 in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014764 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014765 should start automatically or not.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014766 By default, the service is enabled to automatically start
14767 at boot time.
14768 The default setting is in the
14769 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14770 class as follows:
14771 <literallayout class='monospaced'>
14772 SYSTEMD_AUTO_ENABLE ??= "enable"
14773 </literallayout>
14774 </para>
14775
14776 <para>
14777 You can disable the service by setting the variable to
14778 "disable".
14779 </para>
14780 </glossdef>
14781 </glossentry>
14782
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014783 <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
14784 <info>
14785 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."
14786 </info>
14787 <glossdef>
14788 <para role="glossdeffirst">
14789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14790 When
14791 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14792 is set to "systemd-boot", the
14793 <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
14794 configuration file that should be used.
14795 By default, the
14796 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14797 class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
14798 follows:
14799 <literallayout class='monospaced'>
14800 SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
14801 </literallayout>
14802 </para>
14803
14804 <para>
14805 For information on Systemd-boot, see the
14806 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14807 </para>
14808 </glossdef>
14809 </glossentry>
14810
14811 <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
14812 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014813 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 -060014814 </info>
14815 <glossdef>
14816 <para role="glossdeffirst">
14817<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14818 When
14819 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14820 is set to "systemd-boot", the
14821 <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
14822 a list of entry files
Brad Bishop316dfdd2018-06-25 12:45:53 -040014823 (<filename>*.conf</filename>) to install that contain
14824 one boot entry per file.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014825 By default, the
14826 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14827 class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
14828 follows:
14829 <literallayout class='monospaced'>
14830 SYSTEMD_BOOT_ENTRIES ?= ""
14831 </literallayout>
14832 </para>
14833
14834 <para>
14835 For information on Systemd-boot, see the
14836 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14837 </para>
14838 </glossdef>
14839 </glossentry>
14840
14841 <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
14842 <info>
14843 SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
14844 </info>
14845 <glossdef>
14846 <para role="glossdeffirst">
14847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14848 When
14849 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14850 is set to "systemd-boot", the
14851 <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
14852 the boot menu timeout in seconds.
14853 By default, the
14854 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14855 class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
14856 follows:
14857 <literallayout class='monospaced'>
14858 SYSTEMD_BOOT_TIMEOUT ?= "10"
14859 </literallayout>
14860 </para>
14861
14862 <para>
14863 For information on Systemd-boot, see the
14864 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14865 </para>
14866 </glossdef>
14867 </glossentry>
14868
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014869 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
14870 <info>
14871 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."
14872 </info>
14873 <glossdef>
14874 <para role="glossdeffirst">
14875<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14876 When inheriting the
14877 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14878 class, this variable locates the systemd unit files when
14879 they are not found in the main recipe's package.
14880 By default, the
14881 <filename>SYSTEMD_PACKAGES</filename> variable is set
14882 such that the systemd unit files are assumed to reside in
14883 the recipes main package:
14884 <literallayout class='monospaced'>
14885 SYSTEMD_PACKAGES ?= "${PN}"
14886 </literallayout>
14887 </para>
14888
14889 <para>
14890 If these unit files are not in this recipe's main
14891 package, you need to use
14892 <filename>SYSTEMD_PACKAGES</filename> to list the package
14893 or packages in which the build system can find the systemd
14894 unit files.
14895 </para>
14896 </glossdef>
14897 </glossentry>
14898
14899 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
14900 <info>
14901 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
14902 </info>
14903 <glossdef>
14904 <para role="glossdeffirst">
14905<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14906 When inheriting the
14907 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14908 class, this variable specifies the systemd service name for
14909 a package.
14910 </para>
14911
14912 <para>
14913 When you specify this file in your recipe, use a package
14914 name override to indicate the package to which the value
14915 applies.
14916 Here is an example from the connman recipe:
14917 <literallayout class='monospaced'>
14918 SYSTEMD_SERVICE_${PN} = "connman.service"
14919 </literallayout>
14920 </para>
14921 </glossdef>
14922 </glossentry>
14923
14924 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
14925 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014926 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should run a getty, the default is '1'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014927 </info>
14928 <glossdef>
14929 <para role="glossdeffirst">
14930<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14931 When using
14932 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14933 specifies a space-separated list of the virtual terminals
Brad Bishop316dfdd2018-06-25 12:45:53 -040014934 that should run a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014935 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14936 (allowing login), assuming
14937 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
14938 is not set to "0".
14939 </para>
14940
14941 <para>
14942 The default value for
14943 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
14944 (i.e. only run a getty on the first virtual terminal).
14945 </para>
14946 </glossdef>
14947 </glossentry>
14948
14949 </glossdiv>
14950
14951 <glossdiv id='var-glossary-t'><title>T</title>
14952
14953 <glossentry id='var-T'><glossterm>T</glossterm>
14954 <info>
14955 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."
14956 </info>
14957 <glossdef>
14958 <para role="glossdeffirst">
14959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14960 This variable points to a directory were BitBake places
14961 temporary files, which consist mostly of task logs and
14962 scripts, when building a particular recipe.
14963 The variable is typically set as follows:
14964 <literallayout class='monospaced'>
14965 T = "${WORKDIR}/temp"
14966 </literallayout>
14967 </para>
14968
14969 <para>
14970 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
14971 is the directory into which BitBake unpacks and builds the
14972 recipe.
14973 The default <filename>bitbake.conf</filename> file sets this variable.</para>
14974 <para>The <filename>T</filename> variable is not to be confused with
14975 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
14976 which points to the root of the directory tree where BitBake
14977 places the output of an entire build.
14978 </para>
14979 </glossdef>
14980 </glossentry>
14981
14982 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
14983 <info>
14984 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
14985 </info>
14986 <glossdef>
14987 <para role="glossdeffirst">
14988<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14989 The target machine's architecture.
14990 The OpenEmbedded build system supports many
14991 architectures.
14992 Here is an example list of architectures supported.
14993 This list is by no means complete as the architecture
14994 is configurable:
14995 <literallayout class='monospaced'>
14996 arm
14997 i586
14998 x86_64
14999 powerpc
15000 powerpc64
15001 mips
15002 mipsel
15003 </literallayout>
15004 </para>
15005
15006 <para>
15007 For additional information on machine architectures, see
15008 the
15009 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
15010 variable.
15011 </para>
15012 </glossdef>
15013 </glossentry>
15014
15015 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
15016 <info>
15017 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
15018 </info>
15019 <glossdef>
15020 <para role="glossdeffirst">
15021<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15022 Specifies architecture-specific assembler flags for the
15023 target system.
15024 <filename>TARGET_AS_ARCH</filename> is initialized from
15025 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
15026 by default in the BitBake configuration file
15027 (<filename>meta/conf/bitbake.conf</filename>):
15028 <literallayout class='monospaced'>
15029 TARGET_AS_ARCH = "${TUNE_ASARGS}"
15030 </literallayout>
15031 </para>
15032 </glossdef>
15033 </glossentry>
15034
15035 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
15036 <info>
15037 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
15038 </info>
15039 <glossdef>
15040 <para role="glossdeffirst">
15041<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15042 Specifies architecture-specific C compiler flags for the
15043 target system.
15044 <filename>TARGET_CC_ARCH</filename> is initialized from
15045 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
15046 by default.
15047 <note>
15048 It is a common workaround to append
15049 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
15050 to <filename>TARGET_CC_ARCH</filename>
15051 in recipes that build software for the target that
15052 would not otherwise respect the exported
15053 <filename>LDFLAGS</filename> variable.
15054 </note>
15055 </para>
15056 </glossdef>
15057 </glossentry>
15058
15059 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
15060 <info>
15061 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
15062 </info>
15063 <glossdef>
15064 <para role="glossdeffirst">
15065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15066 This is a specific kernel compiler flag for a CPU or
15067 Application Binary Interface (ABI) tune.
15068 The flag is used rarely and only for cases where a
15069 userspace
15070 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
15071 is not compatible with the kernel compilation.
15072 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
15073 allows the kernel (and associated modules) to use a
15074 different configuration.
15075 See the
15076 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
15077 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015078 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015079 for an example.
15080 </para>
15081 </glossdef>
15082 </glossentry>
15083
15084 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
15085 <info>
15086 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
15087 </info>
15088 <glossdef>
15089 <para role="glossdeffirst">
15090<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15091 Specifies the flags to pass to the C compiler when building
15092 for the target.
15093 When building in the target context,
15094 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
15095 is set to the value of this variable by default.
15096 </para>
15097
15098 <para>
15099 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040015100 the <filename>CFLAGS</filename> variable in the environment
15101 to the <filename>TARGET_CFLAGS</filename> value so that
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015102 executables built using the SDK also have the flags
15103 applied.
15104 </para>
15105 </glossdef>
15106 </glossentry>
15107
15108 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
15109 <info>
15110 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."
15111 </info>
15112 <glossdef>
15113 <para role="glossdeffirst">
15114<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15115 Specifies the flags to pass to the C pre-processor
15116 (i.e. to both the C and the C++ compilers) when building
15117 for the target.
15118 When building in the target context,
15119 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
15120 is set to the value of this variable by default.
15121 </para>
15122
15123 <para>
15124 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040015125 the <filename>CPPFLAGS</filename> variable in the
15126 environment to the <filename>TARGET_CPPFLAGS</filename>
15127 value so that executables built using the SDK also have
15128 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015129 </para>
15130 </glossdef>
15131 </glossentry>
15132
15133 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
15134 <info>
15135 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
15136 </info>
15137 <glossdef>
15138 <para role="glossdeffirst">
15139<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15140 Specifies the flags to pass to the C++ compiler when
15141 building for the target.
15142 When building in the target context,
15143 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
15144 is set to the value of this variable by default.
15145 </para>
15146
15147 <para>
15148 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040015149 the <filename>CXXFLAGS</filename> variable in the
15150 environment to the <filename>TARGET_CXXFLAGS</filename>
15151 value so that executables built using the SDK also have
15152 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015153 </para>
15154 </glossdef>
15155 </glossentry>
15156
15157 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
15158 <info>
15159 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."
15160 </info>
15161 <glossdef>
15162 <para role="glossdeffirst">
15163<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15164 Specifies the method for handling FPU code.
15165 For FPU-less targets, which include most ARM CPUs, the variable must be
15166 set to "soft".
15167 If not, the kernel emulation gets used, which results in a performance penalty.
15168 </para>
15169 </glossdef>
15170 </glossentry>
15171
15172 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
15173 <info>
15174 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
15175 </info>
15176 <glossdef>
15177 <para role="glossdeffirst">
15178<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15179 Specifies architecture-specific linker flags for the
15180 target system.
15181 <filename>TARGET_LD_ARCH</filename> is initialized from
15182 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
15183 by default in the BitBake configuration file
15184 (<filename>meta/conf/bitbake.conf</filename>):
15185 <literallayout class='monospaced'>
15186 TARGET_LD_ARCH = "${TUNE_LDARGS}"
15187 </literallayout>
15188 </para>
15189 </glossdef>
15190 </glossentry>
15191
15192 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
15193 <info>
15194 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
15195 </info>
15196 <glossdef>
15197 <para role="glossdeffirst">
15198<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15199 Specifies the flags to pass to the linker when building
15200 for the target.
15201 When building in the target context,
15202 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
15203 is set to the value of this variable by default.
15204 </para>
15205
15206 <para>
15207 Additionally, the SDK's environment setup script sets
15208 the
15209 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
15210 variable in the environment to the
15211 <filename>TARGET_LDFLAGS</filename> value so that
15212 executables built using the SDK also have the flags
15213 applied.
15214 </para>
15215 </glossdef>
15216 </glossentry>
15217
15218 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
15219 <info>
15220 TARGET_OS[doc] = "Specifies the target's operating system."
15221 </info>
15222 <glossdef>
15223 <para role="glossdeffirst">
15224<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15225 Specifies the target's operating system.
Brad Bishop316dfdd2018-06-25 12:45:53 -040015226 The variable can be set to "linux" for glibc-based systems
15227 (GNU C Library) and to "linux-musl" for musl libc.
15228 For ARM/EABI targets, "linux-gnueabi" and "linux-musleabi"
15229 possible values exist.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015230 </para>
15231 </glossdef>
15232 </glossentry>
15233
15234 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
15235 <info>
15236 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
15237 </info>
15238 <glossdef>
15239 <para role="glossdeffirst">
15240<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15241 Specifies the prefix used for the toolchain binary target
15242 tools.
15243 </para>
15244
15245 <para>
15246 Depending on the type of recipe and the build target,
15247 <filename>TARGET_PREFIX</filename> is set as follows:
15248 <itemizedlist>
15249 <listitem><para>
15250 For recipes building for the target machine,
15251 the value is
15252 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
15253 </para></listitem>
15254 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015255 For native recipes, the build system sets the
15256 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015257 <filename>BUILD_PREFIX</filename>.
15258 </para></listitem>
15259 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015260 For native SDK recipes
15261 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015262 build system sets the variable to the value of
15263 <filename>SDK_PREFIX</filename>.
15264 </para></listitem>
15265 </itemizedlist>
15266 </para>
15267 </glossdef>
15268 </glossentry>
15269
15270 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
15271 <info>
15272 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
15273 </info>
15274 <glossdef>
15275 <para role="glossdeffirst">
15276<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15277 Specifies the system, including the architecture and the
15278 operating system, for which the build is occurring in
15279 the context of the current recipe.
15280 </para>
15281
15282 <para>
15283 The OpenEmbedded build system automatically sets this
15284 variable based on
15285 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
15286 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
15287 and
15288 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
15289 variables.
15290 <note>
15291 You do not need to set the
15292 <filename>TARGET_SYS</filename> variable yourself.
15293 </note>
15294 </para>
15295
15296 <para>
15297 Consider these two examples:
15298 <itemizedlist>
15299 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015300 Given a native recipe on a 32-bit, x86 machine
15301 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015302 </para></listitem>
15303 <listitem><para>
15304 Given a recipe being built for a little-endian,
15305 MIPS target running Linux, the value might be
15306 "mipsel-linux".
15307 </para></listitem>
15308 </itemizedlist>
15309 </para>
15310 </glossdef>
15311 </glossentry>
15312
15313 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
15314 <info>
15315 TARGET_VENDOR[doc] = "The name of the target vendor."
15316 </info>
15317 <glossdef>
15318 <para role="glossdeffirst">
15319<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15320 Specifies the name of the target vendor.
15321 </para>
15322 </glossdef>
15323 </glossentry>
15324
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015325 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
15326 <info>
15327 TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc', 'musl' or "newlib."
15328 </info>
15329 <glossdef>
15330 <para role="glossdeffirst">
15331<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15332 Specifies the GNU standard C library
15333 (<filename>libc</filename>) variant to use during the
15334 build process.
15335 This variable replaces <filename>POKYLIBC</filename>,
15336 which is no longer supported.
15337 </para>
15338
15339 <para>
15340 You can select "glibc", "musl", "newlib", or "baremetal"
15341 </para>
15342 </glossdef>
15343 </glossentry>
15344
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015345 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
15346 <info>
15347 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
15348 </info>
15349 <glossdef>
15350 <para role="glossdeffirst">
15351<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15352 Specifies a suffix to be appended onto the
15353 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
15354 value.
15355 The suffix identifies the <filename>libc</filename> variant
15356 for building.
15357 When you are building for multiple variants with the same
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015358 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015359 this mechanism ensures that output for different
15360 <filename>libc</filename> variants is kept separate to
15361 avoid potential conflicts.
15362 </para>
15363
15364 <para>
15365 In the <filename>defaultsetup.conf</filename> file, the
15366 default value of <filename>TCLIBCAPPEND</filename> is
15367 "-${TCLIBC}".
15368 However, distros such as poky, which normally only support
15369 one <filename>libc</filename> variant, set
15370 <filename>TCLIBCAPPEND</filename> to "" in their distro
15371 configuration file resulting in no suffix being applied.
15372 </para>
15373 </glossdef>
15374 </glossentry>
15375
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015376 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
15377 <info>
15378 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
15379 </info>
15380 <glossdef>
15381 <para role="glossdeffirst">
15382<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15383 Specifies the toolchain selector.
15384 <filename>TCMODE</filename> controls the characteristics
15385 of the generated packages and images by telling the
15386 OpenEmbedded build system which toolchain profile to use.
15387 By default, the OpenEmbedded build system builds its own
15388 internal toolchain.
15389 The variable's default value is "default", which uses
15390 that internal toolchain.
15391 <note>
15392 If <filename>TCMODE</filename> is set to a value
15393 other than "default", then it is your responsibility
15394 to ensure that the toolchain is compatible with the
15395 default toolchain.
15396 Using older or newer versions of these components
15397 might cause build problems.
Brad Bishop316dfdd2018-06-25 12:45:53 -040015398 See the Release Notes for the Yocto Project release
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015399 for the specific components with which the toolchain
15400 must be compatible.
Brad Bishop316dfdd2018-06-25 12:45:53 -040015401 To access the Release Notes, go to the
15402 <ulink url='&YOCTO_HOME_URL;/software-overview/downloads/'>Downloads</ulink>
15403 page on the Yocto Project website and click on the
15404 "RELEASE INFORMATION" link for the appropriate
15405 release.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015406 </note>
15407 </para>
15408
15409 <para>
15410 The <filename>TCMODE</filename> variable is similar to
15411 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
15412 which controls the variant of the GNU standard C library
15413 (<filename>libc</filename>) used during the build process:
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015414 <filename>glibc</filename> or <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015415 </para>
15416
15417 <para>
15418 With additional layers, it is possible to use a pre-compiled
15419 external toolchain.
15420 One example is the Sourcery G++ Toolchain.
15421 The support for this toolchain resides in the separate
15422 <trademark class='registered'>Mentor Graphics</trademark>
15423 <filename>meta-sourcery</filename> layer at
15424 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
15425 </para>
15426
15427 <para>
15428 The layer's <filename>README</filename> file contains
15429 information on how to use the Sourcery G++ Toolchain as
15430 an external toolchain.
15431 In summary, you must be sure to add the layer to your
15432 <filename>bblayers.conf</filename> file in front of the
15433 <filename>meta</filename> layer and then set the
15434 <filename>EXTERNAL_TOOLCHAIN</filename>
15435 variable in your <filename>local.conf</filename> file
15436 to the location in which you installed the toolchain.
15437 </para>
15438
15439 <para>
15440 The fundamentals used for this example apply to any
15441 external toolchain.
15442 You can use <filename>meta-sourcery</filename> as a
15443 template for adding support for other external toolchains.
15444 </para>
15445 </glossdef>
15446 </glossentry>
15447
15448 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
15449 <info>
15450 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
15451 </info>
15452 <glossdef>
15453 <para role="glossdeffirst">
15454<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15455 The location the OpenEmbedded build system uses to export
15456 tests when the
15457 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
15458 variable is set to "1".
15459 </para>
15460
15461 <para>
15462 The <filename>TEST_EXPORT_DIR</filename> variable defaults
15463 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
15464 </para>
15465 </glossdef>
15466 </glossentry>
15467
15468 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
15469 <info>
15470 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."
15471 </info>
15472 <glossdef>
15473 <para role="glossdeffirst">
15474<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15475 Specifies to export the tests only.
15476 Set this variable to "1" if you do not want to run the
15477 tests but you want them to be exported in a manner that
15478 you to run them outside of the build system.
15479 </para>
15480 </glossdef>
15481 </glossentry>
15482
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015483 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
15484 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040015485 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 -050015486 </info>
15487 <glossdef>
15488 <para role="glossdeffirst">
15489<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15490 Holds the SSH log and the boot log for QEMU machines.
15491 The <filename>TEST_LOG_DIR</filename> variable defaults
15492 to <filename>"${WORKDIR}/testimage"</filename>.
15493 <note>
15494 Actual test results reside in the task log
15495 (<filename>log.do_testimage</filename>), which is in
15496 the <filename>${WORKDIR}/temp/</filename> directory.
15497 </note>
15498 </para>
15499 </glossdef>
15500 </glossentry>
15501
15502 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
15503 <info>
15504 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
15505 </info>
15506 <glossdef>
15507 <para role="glossdeffirst">
15508<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15509 For automated hardware testing, specifies the command to
15510 use to control the power of the target machine under test.
15511 Typically, this command would point to a script that
15512 performs the appropriate action (e.g. interacting
15513 with a web-enabled power strip).
15514 The specified command should expect to receive as the last
15515 argument "off", "on" or "cycle" specifying to power off,
15516 on, or cycle (power off and then power on) the device,
15517 respectively.
15518 </para>
15519 </glossdef>
15520 </glossentry>
15521
15522 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
15523 <info>
15524 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
15525 </info>
15526 <glossdef>
15527 <para role="glossdeffirst">
15528<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15529 For automated hardware testing, specifies additional
15530 arguments to pass through to the command specified in
15531 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
15532 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
15533 is optional.
15534 You can use it if you wish, for example, to separate the
15535 machine-specific and non-machine-specific parts of the
15536 arguments.
15537 </para>
15538 </glossdef>
15539 </glossentry>
15540
15541 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
15542 <info>
15543 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
15544 </info>
15545 <glossdef>
15546 <para role="glossdeffirst">
15547<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15548 The time in seconds allowed for an image to boot before
15549 automated runtime tests begin to run against an
15550 image.
15551 The default timeout period to allow the boot process to
15552 reach the login prompt is 500 seconds.
15553 You can specify a different value in the
15554 <filename>local.conf</filename> file.
15555 </para>
15556
15557 <para>
15558 For more information on testing images, see the
15559 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015560 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015561 </para>
15562 </glossdef>
15563 </glossentry>
15564
15565 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
15566 <info>
15567 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."
15568 </info>
15569 <glossdef>
15570 <para role="glossdeffirst">
15571<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15572 For automated hardware testing, specifies the command
15573 to use to connect to the serial console of the target
15574 machine under test.
15575 This command simply needs to connect to the serial console
15576 and forward that connection to standard input and output
15577 as any normal terminal program does.
15578 </para>
15579
15580 <para>
15581 For example, to use the Picocom terminal program on
15582 serial device <filename>/dev/ttyUSB0</filename> at
15583 115200bps, you would set the variable as follows:
15584 <literallayout class='monospaced'>
15585 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
15586 </literallayout>
15587 </para>
15588 </glossdef>
15589 </glossentry>
15590
15591 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
15592 <info>
15593 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
15594 </info>
15595 <glossdef>
15596 <para role="glossdeffirst">
15597<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15598 For automated hardware testing, specifies additional
15599 arguments to pass through to the command specified in
15600 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
15601 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
15602 is optional.
15603 You can use it if you wish, for example, to separate the
15604 machine-specific and non-machine-specific parts of the
15605 command.
15606 </para>
15607 </glossdef>
15608 </glossentry>
15609
15610 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
15611 <info>
15612 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
15613 </info>
15614 <glossdef>
15615 <para role="glossdeffirst">
15616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15617 The IP address of the build machine (host machine).
15618 This IP address is usually automatically detected.
15619 However, if detection fails, this variable needs to be set
15620 to the IP address of the build machine (i.e. where
15621 the build is taking place).
15622 <note>
15623 The <filename>TEST_SERVER_IP</filename> variable
15624 is only used for a small number of tests such as
Brad Bishop6e60e8b2018-02-01 10:27:11 -050015625 the "dnf" test suite, which needs to download
15626 packages from
15627 <filename>WORKDIR/oe-rootfs-repo</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015628 </note>
15629 </para>
15630 </glossdef>
15631 </glossentry>
15632
15633 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
15634 <info>
15635 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
15636 </info>
15637 <glossdef>
15638 <para role="glossdeffirst">
15639<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15640 Specifies the target controller to use when running tests
15641 against a test image.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015642 The default controller to use is "QemuTarget":
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015643 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015644 TEST_TARGET = "QemuTarget"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015645 </literallayout>
15646 </para>
15647
15648 <para>
15649 A target controller is a class that defines how an
15650 image gets deployed on a target and how a target is started.
15651 A layer can extend the controllers by adding a module
15652 in the layer's <filename>/lib/oeqa/controllers</filename>
15653 directory and by inheriting the
15654 <filename>BaseTarget</filename> class, which is an abstract
15655 class that cannot be used as a value of
15656 <filename>TEST_TARGET</filename>.
15657 </para>
15658
15659 <para>
15660 You can provide the following arguments with
15661 <filename>TEST_TARGET</filename>:
15662 <itemizedlist>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015663 <listitem><para><emphasis>"QemuTarget":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015664 Boots a QEMU image and runs the tests.
15665 See the
15666 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015667 section in the Yocto Project Development Tasks
15668 Manual for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015669 </para></listitem>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015670 <listitem><para><emphasis>"SimpleRemoteTarget":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015671 Runs the tests on target hardware that is already
15672 up and running.
15673 The hardware can be on the network or it can be
15674 a device running an image on QEMU.
15675 You must also set
15676 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015677 when you use "SimpleRemoteTarget".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015678 <note>
15679 This argument is defined in
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015680 <filename>meta/lib/oeqa/controllers/simpleremote.py</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015681 </note>
15682 </para></listitem>
15683 </itemizedlist>
15684 </para>
15685
15686 <para>
15687 For information on running tests on hardware, see the
15688 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015689 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015690 </para>
15691 </glossdef>
15692 </glossentry>
15693
15694 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
15695 <info>
15696 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
15697 </info>
15698 <glossdef>
15699 <para role="glossdeffirst">
15700<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15701 The IP address of your hardware under test.
15702 The <filename>TEST_TARGET_IP</filename> variable has no
15703 effect when
15704 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
15705 is set to "qemu".
15706 </para>
15707
15708 <para>
15709 When you specify the IP address, you can also include a
15710 port.
15711 Here is an example:
15712 <literallayout class='monospaced'>
15713 TEST_TARGET_IP = "192.168.1.4:2201"
15714 </literallayout>
15715 Specifying a port is useful when SSH is started on a
15716 non-standard port or in cases when your hardware under test
15717 is behind a firewall or network that is not directly
15718 accessible from your host and you need to do port address
15719 translation.
15720 </para>
15721 </glossdef>
15722 </glossentry>
15723
15724 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
15725 <info>
15726 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
15727 </info>
15728 <glossdef>
15729 <para role="glossdeffirst">
15730<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15731 An ordered list of tests (modules) to run against
15732 an image when performing automated runtime testing.
15733 </para>
15734
15735 <para>
15736 The OpenEmbedded build system provides a core set of tests
15737 that can be used against images.
15738 <note>
15739 Currently, there is only support for running these tests
15740 under QEMU.
15741 </note>
15742 Tests include <filename>ping</filename>,
15743 <filename>ssh</filename>, <filename>df</filename> among
15744 others.
15745 You can add your own tests to the list of tests by
15746 appending <filename>TEST_SUITES</filename> as follows:
15747 <literallayout class='monospaced'>
15748 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
15749 </literallayout>
15750 Alternatively, you can provide the "auto" option to
15751 have all applicable tests run against the image.
15752 <literallayout class='monospaced'>
15753 TEST_SUITES_append = " auto"
15754 </literallayout>
15755 Using this option causes the build system to automatically
15756 run tests that are applicable to the image.
15757 Tests that are not applicable are skipped.
15758 </para>
15759
15760 <para>
15761 The order in which tests are run is important.
15762 Tests that depend on another test must appear later in the
15763 list than the test on which they depend.
15764 For example, if you append the list of tests with two
15765 tests (<filename>test_A</filename> and
15766 <filename>test_B</filename>) where
15767 <filename>test_B</filename> is dependent on
15768 <filename>test_A</filename>, then you must order the tests
15769 as follows:
15770 <literallayout class='monospaced'>
15771 TEST_SUITES = " test_A test_B"
15772 </literallayout>
15773 </para>
15774
15775 <para>
15776 For more information on testing images, see the
15777 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015778 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015779 </para>
15780 </glossdef>
15781 </glossentry>
15782
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015783 <glossentry id='var-TESTIMAGE_AUTO'><glossterm>TESTIMAGE_AUTO</glossterm>
15784 <info>
15785 TESTIMAGE_AUTO[doc] = "Enables automatic testing of an image once it is built."
15786 </info>
15787 <glossdef>
15788 <para role="glossdeffirst">
15789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15790 Automatically runs the series of automated tests for
15791 images when an image is successfully built.
15792 Setting <filename>TESTIMAGE_AUTO</filename> to "1"
15793 causes any image that successfully builds to automatically
15794 boot under QEMU.
15795 Using the variable also adds in dependencies so that any
15796 SDK for which testing is requested is automatically built
15797 first.
15798 </para>
15799
15800 <para>
15801 These tests are written in Python making use of the
15802 <filename>unittest</filename> module, and the majority of
15803 them run commands on the target system over
15804 <filename>ssh</filename>.
15805 You can set this variable to "1" in your
15806 <filename>local.conf</filename> file in the
15807 <link linkend='build-directory'>Build Directory</link>
15808 to have the OpenEmbedded build system automatically run
15809 these tests after an image successfully builds:
15810 <literallayout class='monospaced'>
15811 TESTIMAGE_AUTO = "1"
15812 </literallayout>
15813 For more information on enabling, running, and writing
15814 these tests, see the
15815 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
15816 section in the Yocto Project Development Tasks Manual and
15817 the
15818 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
15819 section.
15820 </para>
15821 </glossdef>
15822 </glossentry>
15823
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015824 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
15825 <info>
15826 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
15827 </info>
15828 <glossdef>
15829 <para role="glossdeffirst">
15830<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15831 The directory in which the file BitBake is currently
15832 parsing is located.
15833 Do not manually set this variable.
15834 </para>
15835 </glossdef>
15836 </glossentry>
15837
15838 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
15839 <info>
15840 TIME[doc] = "The time the build was started using HMS format."
15841 </info>
15842 <glossdef>
15843 <para role="glossdeffirst">
15844<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15845 The time the build was started.
15846 Times appear using the hour, minute, and second (HMS)
15847 format (e.g. "140159" for one minute and fifty-nine
15848 seconds past 1400 hours).
15849 </para>
15850 </glossdef>
15851 </glossentry>
15852
15853 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
15854 <info>
15855 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."
15856 </info>
15857 <glossdef>
15858 <para role="glossdeffirst">
15859<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15860 This variable is the base directory the OpenEmbedded
15861 build system uses for all build output and intermediate
15862 files (other than the shared state cache).
15863 By default, the <filename>TMPDIR</filename> variable points
15864 to <filename>tmp</filename> within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015865 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015866 </para>
15867
15868 <para>
15869 If you want to establish this directory in a location other
15870 than the default, you can uncomment and edit the following
15871 statement in the
15872 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015873 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015874 <literallayout class='monospaced'>
15875 #TMPDIR = "${TOPDIR}/tmp"
15876 </literallayout>
15877 An example use for this scenario is to set
15878 <filename>TMPDIR</filename> to a local disk, which does
15879 not use NFS, while having the Build Directory use NFS.
15880 </para>
15881
15882 <para>
15883 The filesystem used by <filename>TMPDIR</filename> must
15884 have standard filesystem semantics (i.e. mixed-case files
15885 are unique, POSIX file locking, and persistent inodes).
15886 Due to various issues with NFS and bugs in some
15887 implementations, NFS does not meet this minimum
15888 requirement.
15889 Consequently, <filename>TMPDIR</filename> cannot be on
15890 NFS.
15891 </para>
15892 </glossdef>
15893 </glossentry>
15894
15895 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
15896 <info>
15897 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
15898 </info>
15899 <glossdef>
15900 <para role="glossdeffirst">
15901<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15902 This variable lists packages the OpenEmbedded build system
15903 uses when building an SDK, which contains a
15904 cross-development environment.
15905 The packages specified by this variable are part of the
15906 toolchain set that runs on the
15907 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
15908 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015909 <filename>nativesdk-</filename>.
15910 For example, consider the following command when
15911 building an SDK:
15912 <literallayout class='monospaced'>
15913 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
15914 </literallayout>
15915 In this case, a default list of packages is set in this
15916 variable, but you can add additional packages to the list.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015917 See the
15918 "<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 -050015919 section in the Yocto Project Application Development and
15920 the Extensible Software Development Kit (eSDK) manual
15921 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015922 </para>
15923
15924 <para>
15925 For background information on cross-development toolchains
15926 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015927 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15928 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015929 For information on setting up a cross-development
15930 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015931 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15932 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015933 </para>
15934 </glossdef>
15935 </glossentry>
15936
15937 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
15938 <info>
15939 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
15940 </info>
15941 <glossdef>
15942 <para role="glossdeffirst">
15943<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15944 This variable defines the name used for the toolchain
15945 output.
15946 The
15947 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
15948 class sets the
15949 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
15950 follows:
15951 <literallayout class='monospaced'>
15952 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
15953 </literallayout>
15954 See the
15955 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
15956 and
15957 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
15958 variables for additional information.
15959 </para>
15960 </glossdef>
15961 </glossentry>
15962
15963 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
15964 <info>
15965 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."
15966 </info>
15967 <glossdef>
15968 <para role="glossdeffirst">
15969<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15970 This variable lists packages the OpenEmbedded build system
15971 uses when it creates the target part of an SDK
15972 (i.e. the part built for the target hardware), which
15973 includes libraries and headers.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015974 Use this variable to add individual packages to the
15975 part of the SDK that runs on the target.
15976 See the
15977 "<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 -050015978 section in the Yocto Project Application Development and
15979 the Extensible Software Development Kit (eSDK) manual for
15980 more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015981 </para>
15982
15983 <para>
15984 For background information on cross-development toolchains
15985 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015986 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15987 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015988 For information on setting up a cross-development
15989 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015990 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15991 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015992 </para>
15993 </glossdef>
15994 </glossentry>
15995
15996 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
15997 <info>
15998 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
15999 </info>
16000 <glossdef>
16001 <para role="glossdeffirst">
16002<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16003 The top-level
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016004 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016005 BitBake automatically sets this variable when you
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016006 initialize your build environment using
16007 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016008 </para>
16009 </glossdef>
16010 </glossentry>
16011
16012 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
16013 <info>
16014 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."
16015 </info>
16016 <glossdef>
16017 <para role="glossdeffirst">
16018<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16019 A sanitized version of
16020 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
16021 This variable is used where the architecture is needed in
16022 a value where underscores are not allowed, for example
16023 within package filenames.
16024 In this case, dash characters replace any underscore
Brad Bishop316dfdd2018-06-25 12:45:53 -040016025 characters used in <filename>TARGET_ARCH</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016026 </para>
16027
16028 <para>
16029 Do not edit this variable.
16030 </para>
16031 </glossdef>
16032 </glossentry>
16033
16034 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
16035 <info>
16036 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
16037 </info>
16038 <glossdef>
16039 <para role="glossdeffirst">
16040<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16041 The GNU canonical architecture for a specific architecture
16042 (i.e. <filename>arm</filename>,
16043 <filename>armeb</filename>,
16044 <filename>mips</filename>,
16045 <filename>mips64</filename>, and so forth).
16046 BitBake uses this value to setup configuration.
16047 </para>
16048
16049 <para>
16050 <filename>TUNE_ARCH</filename> definitions are specific to
16051 a given architecture.
16052 The definitions can be a single static definition, or
16053 can be dynamically adjusted.
16054 You can see details for a given CPU family by looking at
16055 the architecture's <filename>README</filename> file.
16056 For example, the
16057 <filename>meta/conf/machine/include/mips/README</filename>
16058 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016059 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016060 provides information for <filename>TUNE_ARCH</filename>
16061 specific to the <filename>mips</filename> architecture.
16062 </para>
16063
16064 <para>
16065 <filename>TUNE_ARCH</filename> is tied closely to
16066 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
16067 which defines the target machine's architecture.
16068 The BitBake configuration file
16069 (<filename>meta/conf/bitbake.conf</filename>) sets
16070 <filename>TARGET_ARCH</filename> as follows:
16071 <literallayout class='monospaced'>
16072 TARGET_ARCH = "${TUNE_ARCH}"
16073 </literallayout>
16074 </para>
16075
16076 <para>
16077 The following list, which is by no means complete since
16078 architectures are configurable, shows supported machine
16079 architectures:
16080 <literallayout class='monospaced'>
16081 arm
16082 i586
16083 x86_64
16084 powerpc
16085 powerpc64
16086 mips
16087 mipsel
16088 </literallayout>
16089 </para>
16090 </glossdef>
16091 </glossentry>
16092
16093 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
16094 <info>
16095 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
16096 </info>
16097 <glossdef>
16098 <para role="glossdeffirst">
16099<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16100 Specifies architecture-specific assembler flags for
16101 the target system.
16102 The set of flags is based on the selected tune features.
16103 <filename>TUNE_ASARGS</filename> is set using
16104 the tune include files, which are typically under
16105 <filename>meta/conf/machine/include/</filename> and are
16106 influenced through
16107 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
16108 For example, the
16109 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
16110 file defines the flags for the x86 architecture as follows:
16111 <literallayout class='monospaced'>
16112 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
16113 </literallayout>
16114 <note>
16115 Board Support Packages (BSPs) select the tune.
16116 The selected tune, in turn, affects the tune variables
16117 themselves (i.e. the tune can supply its own
16118 set of flags).
16119 </note>
16120 </para>
16121 </glossdef>
16122 </glossentry>
16123
16124 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
16125 <info>
16126 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
16127 </info>
16128 <glossdef>
16129 <para role="glossdeffirst">
16130<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16131 Specifies architecture-specific C compiler flags for
16132 the target system.
16133 The set of flags is based on the selected tune features.
16134 <filename>TUNE_CCARGS</filename> is set using
16135 the tune include files, which are typically under
16136 <filename>meta/conf/machine/include/</filename> and are
16137 influenced through
16138 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
16139 <note>
16140 Board Support Packages (BSPs) select the tune.
16141 The selected tune, in turn, affects the tune variables
16142 themselves (i.e. the tune can supply its own
16143 set of flags).
16144 </note>
16145 </para>
16146 </glossdef>
16147 </glossentry>
16148
16149 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
16150 <info>
16151 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
16152 </info>
16153 <glossdef>
16154 <para role="glossdeffirst">
16155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16156 Specifies architecture-specific linker flags for
16157 the target system.
16158 The set of flags is based on the selected tune features.
16159 <filename>TUNE_LDARGS</filename> is set using
16160 the tune include files, which are typically under
16161 <filename>meta/conf/machine/include/</filename> and are
16162 influenced through
16163 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
16164 For example, the
16165 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
16166 file defines the flags for the x86 architecture as follows:
16167 <literallayout class='monospaced'>
16168 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
16169 </literallayout>
16170 <note>
16171 Board Support Packages (BSPs) select the tune.
16172 The selected tune, in turn, affects the tune variables
16173 themselves (i.e. the tune can supply its own
16174 set of flags).
16175 </note>
16176 </para>
16177 </glossdef>
16178 </glossentry>
16179
16180 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
16181 <info>
16182 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
16183 </info>
16184 <glossdef>
16185 <para role="glossdeffirst">
16186<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16187 Features used to "tune" a compiler for optimal use
16188 given a specific processor.
16189 The features are defined within the tune files and allow
16190 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
16191 dynamically generated based on the features.
16192 </para>
16193
16194 <para>
16195 The OpenEmbedded build system verifies the features
16196 to be sure they are not conflicting and that they are
16197 supported.
16198 </para>
16199
16200 <para>
16201 The BitBake configuration file
16202 (<filename>meta/conf/bitbake.conf</filename>) defines
16203 <filename>TUNE_FEATURES</filename> as follows:
16204 <literallayout class='monospaced'>
16205 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
16206 </literallayout>
16207 See the
16208 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
16209 variable for more information.
16210 </para>
16211 </glossdef>
16212 </glossentry>
16213
16214 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
16215 <info>
16216 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
16217 </info>
16218 <glossdef>
16219 <para role="glossdeffirst">
16220<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16221 The package architecture understood by the packaging
16222 system to define the architecture, ABI, and tuning of
16223 output packages.
16224 The specific tune is defined using the "_tune" override
16225 as follows:
16226 <literallayout class='monospaced'>
16227 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
16228 </literallayout>
16229 </para>
16230
16231 <para>
16232 These tune-specific package architectures are defined in
16233 the machine include files.
16234 Here is an example of the "core2-32" tuning as used
16235 in the
16236 <filename>meta/conf/machine/include/tune-core2.inc</filename>
16237 file:
16238 <literallayout class='monospaced'>
16239 TUNE_PKGARCH_tune-core2-32 = "core2-32"
16240 </literallayout>
16241 </para>
16242 </glossdef>
16243 </glossentry>
16244
16245 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
16246 <info>
16247 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."
16248 </info>
16249 <glossdef>
16250 <para role="glossdeffirst">
16251<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16252 An underlying Application Binary Interface (ABI) used by
16253 a particular tuning in a given toolchain layer.
16254 Providers that use prebuilt libraries can use the
16255 <filename>TUNEABI</filename>,
16256 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
16257 and
16258 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
16259 variables to check compatibility of tunings against their
16260 selection of libraries.
16261 </para>
16262
16263 <para>
16264 If <filename>TUNEABI</filename> is undefined, then every
16265 tuning is allowed.
16266 See the
16267 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
16268 class to see how the variable is used.
16269 </para>
16270 </glossdef>
16271 </glossentry>
16272
16273 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
16274 <info>
16275 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
16276 </info>
16277 <glossdef>
16278 <para role="glossdeffirst">
16279<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16280 If set, the OpenEmbedded system ignores the
16281 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
16282 variable.
16283 Providers that use prebuilt libraries can use the
16284 <filename>TUNEABI_OVERRIDE</filename>,
16285 <filename>TUNEABI_WHITELIST</filename>,
16286 and
16287 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
16288 variables to check compatibility of a tuning against their
16289 selection of libraries.
16290 </para>
16291
16292 <para>
16293 See the
16294 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
16295 class to see how the variable is used.
16296 </para>
16297 </glossdef>
16298 </glossentry>
16299
16300 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
16301 <info>
16302 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
16303 </info>
16304 <glossdef>
16305 <para role="glossdeffirst">
16306<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16307 A whitelist of permissible
16308 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
16309 values.
16310 If <filename>TUNEABI_WHITELIST</filename> is not set,
16311 all tunes are allowed.
16312 Providers that use prebuilt libraries can use the
16313 <filename>TUNEABI_WHITELIST</filename>,
16314 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
16315 and <filename>TUNEABI</filename> variables to check
16316 compatibility of a tuning against their selection of
16317 libraries.
16318 </para>
16319
16320 <para>
16321 See the
16322 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
16323 class to see how the variable is used.
16324 </para>
16325 </glossdef>
16326 </glossentry>
16327
16328 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
16329 <info>
16330 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
16331 </info>
16332 <glossdef>
16333 <para role="glossdeffirst">
16334<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16335 Specifies CPU or Application Binary Interface (ABI)
16336 tuning features that conflict with <replaceable>feature</replaceable>.
16337 </para>
16338
16339 <para>
16340 Known tuning conflicts are specified in the machine include
16341 files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016342 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016343 Here is an example from the
16344 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
16345 include file that lists the "o32" and "n64" features as
16346 conflicting with the "n32" feature:
16347 <literallayout class='monospaced'>
16348 TUNECONFLICTS[n32] = "o32 n64"
16349 </literallayout>
16350 </para>
16351 </glossdef>
16352 </glossentry>
16353
16354 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
16355 <info>
16356 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
16357 </info>
16358 <glossdef>
16359 <para role="glossdeffirst">
16360<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16361 Specifies a valid CPU or Application Binary Interface (ABI)
16362 tuning feature.
16363 The specified feature is stored as a flag.
16364 Valid features are specified in the machine include files
16365 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
16366 Here is an example from that file:
16367 <literallayout class='monospaced'>
16368 TUNEVALID[bigendian] = "Enable big-endian mode."
16369 </literallayout>
16370 </para>
16371
16372 <para>
16373 See the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016374 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016375 for these features.
16376 </para>
16377 </glossdef>
16378 </glossentry>
16379
16380 </glossdiv>
16381
16382 <glossdiv id='var-glossary-u'><title>U</title>
16383
16384 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
16385 <info>
16386 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
16387 </info>
16388 <glossdef>
16389 <para role="glossdeffirst">
16390<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16391 Configures the
16392 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
16393 and can also define
16394 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
16395 for individual cases.
16396 </para>
16397
16398 <para>
16399 Following is an example from the
16400 <filename>meta-fsl-arm</filename> layer.
16401 <literallayout class='monospaced'>
16402 UBOOT_CONFIG ??= "sd"
16403 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
16404 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
16405 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
16406 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
16407 </literallayout>
16408 In this example, "sd" is selected as the configuration
16409 of the possible four for the
16410 <filename>UBOOT_MACHINE</filename>.
16411 The "sd" configuration defines "mx6qsabreauto_config"
16412 as the value for <filename>UBOOT_MACHINE</filename>, while
16413 the "sdcard" specifies the
16414 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
16415 image.
16416 </para>
16417
16418 <para>
16419 For more information on how the
16420 <filename>UBOOT_CONFIG</filename> is handled, see the
16421 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
16422 class.
16423 </para>
16424 </glossdef>
16425 </glossentry>
16426
16427 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
16428 <info>
16429 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
16430 </info>
16431 <glossdef>
16432 <para role="glossdeffirst">
16433<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16434 Specifies the entry point for the U-Boot image.
16435 During U-Boot image creation, the
16436 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
16437 as a command-line parameter to the
16438 <filename>uboot-mkimage</filename> utility.
16439 </para>
16440 </glossdef>
16441 </glossentry>
16442
16443 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
16444 <info>
16445 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
16446 </info>
16447 <glossdef>
16448 <para role="glossdeffirst">
16449<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16450 Specifies the load address for the U-Boot image.
16451 During U-Boot image creation, the
16452 <filename>UBOOT_LOADADDRESS</filename> variable is passed
16453 as a command-line parameter to the
16454 <filename>uboot-mkimage</filename> utility.
16455 </para>
16456 </glossdef>
16457 </glossentry>
16458
16459 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
16460 <info>
16461 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
16462 </info>
16463 <glossdef>
16464 <para role="glossdeffirst">
16465<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16466 Appends a string to the name of the local version of the
16467 U-Boot image.
16468 For example, assuming the version of the U-Boot image
16469 built was "2013.10, the full version string reported by
16470 U-Boot would be "2013.10-yocto" given the following
16471 statement:
16472 <literallayout class='monospaced'>
16473 UBOOT_LOCALVERSION = "-yocto"
16474 </literallayout>
16475 </para>
16476 </glossdef>
16477 </glossentry>
16478
16479 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
16480 <info>
16481 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
16482 </info>
16483 <glossdef>
16484 <para role="glossdeffirst">
16485<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16486 Specifies the value passed on the
16487 <filename>make</filename> command line when building
16488 a U-Boot image.
16489 The value indicates the target platform configuration.
16490 You typically set this variable from the machine
16491 configuration file (i.e.
16492 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
16493 </para>
16494
16495 <para>
16496 Please see the "Selection of Processor Architecture and
16497 Board Type" section in the U-Boot README for valid values
16498 for this variable.
16499 </para>
16500 </glossdef>
16501 </glossentry>
16502
16503 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
16504 <info>
16505 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
16506 </info>
16507 <glossdef>
16508 <para role="glossdeffirst">
16509<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16510 Specifies the target called in the
16511 <filename>Makefile</filename>.
16512 The default target is "all".
16513 </para>
16514 </glossdef>
16515 </glossentry>
16516
16517 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
16518 <info>
16519 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
16520 </info>
16521 <glossdef>
16522 <para role="glossdeffirst">
16523<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16524 Points to the generated U-Boot extension.
16525 For example, <filename>u-boot.sb</filename> has a
16526 <filename>.sb</filename> extension.
16527 </para>
16528
16529 <para>
16530 The default U-Boot extension is
16531 <filename>.bin</filename>
16532 </para>
16533 </glossdef>
16534 </glossentry>
16535
16536 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
16537 <info>
16538 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
16539 </info>
16540 <glossdef>
16541 <para role="glossdeffirst">
16542<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16543 Specifies the target used for building U-Boot.
16544 The target is passed directly as part of the "make" command
16545 (e.g. SPL and AIS).
16546 If you do not specifically set this variable, the
16547 OpenEmbedded build process passes and uses "all" for the
16548 target during the U-Boot building process.
16549 </para>
16550 </glossdef>
16551 </glossentry>
16552
16553 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
16554 <info>
16555 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."
16556 </info>
16557 <glossdef>
16558 <para role="glossdeffirst">
16559<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16560 Specifies a list of options that, if reported by the
16561 configure script as being invalid, should not generate a
16562 warning during the
16563 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
16564 task.
16565 Normally, invalid configure options are simply not passed
16566 to the configure script (e.g. should be removed from
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016567 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
16568 or
16569 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016570 However, common options, for example, exist that are passed
16571 to all configure scripts at a class level that might not
16572 be valid for some configure scripts.
16573 It follows that no benefit exists in seeing a warning about
16574 these options.
16575 For these cases, the options are added to
16576 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
16577 </para>
16578
16579 <para>
16580 The configure arguments check that uses
16581 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
16582 of the
16583 <link linkend='ref-classes-insane'><filename>insane</filename></link>
16584 class and is only enabled if the recipe inherits the
16585 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
16586 class.
16587 </para>
16588 </glossdef>
16589 </glossentry>
16590
16591 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
16592 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016593 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is enabled."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016594 </info>
16595 <glossdef>
16596 <para role="glossdeffirst">
16597<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16598 For recipes inheriting the
16599 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
16600 class, <filename>UPDATERCPN</filename> specifies
Brad Bishop316dfdd2018-06-25 12:45:53 -040016601 the package that contains the initscript that is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016602 enabled.
16603 </para>
16604
16605 <para>
16606 The default value is "${PN}".
16607 Given that almost all recipes that install initscripts
16608 package them in the main package for the recipe, you
16609 rarely need to set this variable in individual recipes.
16610 </para>
16611 </glossdef>
16612 </glossentry>
16613
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016614 <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
16615 <info>
16616 UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
16617 </info>
16618 <glossdef>
16619 <para role="glossdeffirst">
16620<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16621 When the
16622 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16623 class is enabled globally, you can perform a per-recipe
16624 check for what the latest upstream source code version is
16625 by calling
16626 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
16627 If the recipe source code is provided from Git
16628 repositories, the OpenEmbedded build system determines the
16629 latest upstream version by picking the latest tag from the
16630 list of all repository tags.
16631 You can use the
16632 <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
16633 variable to provide a regular expression to filter only the
16634 relevant tags should the default filter not work
16635 correctly.
16636 <literallayout class='monospaced'>
16637 UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
16638 </literallayout>
16639 </para>
16640 </glossdef>
16641 </glossentry>
16642
16643 <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
16644 <info>
16645 UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
16646 </info>
16647 <glossdef>
16648 <para role="glossdeffirst">
16649<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16650 When the
16651 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16652 class is enabled globally, use the
16653 <filename>UPSTREAM_CHECK_REGEX</filename> variable to
16654 specify a different regular expression instead of the
16655 default one when the package checking system is parsing
16656 the page found using
16657 <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
16658 <literallayout class='monospaced'>
16659 UPSTREAM_CHECK_REGEX = "package_regex"
16660 </literallayout>
16661 </para>
16662 </glossdef>
16663 </glossentry>
16664
16665 <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
16666 <info>
16667 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."
16668 </info>
16669 <glossdef>
16670 <para role="glossdeffirst">
16671<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16672 When the
16673 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16674 class is enabled globally, you can perform a per-recipe
16675 check for what the latest upstream source code version is
16676 by calling <filename>bitbake -c checkpkg</filename>
16677 <replaceable>recipe</replaceable>.
16678 If the source code is provided from tarballs, the latest
16679 version is determined by fetching the directory listing
16680 where the tarball is and attempting to find a later tarball.
16681 When this approach does not work, you can use
16682 <filename>UPSTREAM_CHECK_URI</filename> to
16683 provide a different URI that contains the link to the
16684 latest tarball.
16685 <literallayout class='monospaced'>
16686 UPSTREAM_CHECK_URI = "recipe_url"
16687 </literallayout>
16688 </para>
16689 </glossdef>
16690 </glossentry>
16691
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016692 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
16693 <info>
16694 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
16695 </info>
16696 <glossdef>
16697 <para role="glossdeffirst">
16698<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16699 Determines if <filename>devtmpfs</filename> is used for
16700 <filename>/dev</filename> population.
16701 The default value used for <filename>USE_DEVFS</filename>
16702 is "1" when no value is specifically set.
16703 Typically, you would set <filename>USE_DEVFS</filename>
16704 to "0" for a statically populated <filename>/dev</filename>
16705 directory.
16706 </para>
16707
16708 <para>
16709 See the
16710 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016711 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016712 information on how to use this variable.
16713 </para>
16714 </glossdef>
16715 </glossentry>
16716
16717 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
16718 <info>
16719 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."
16720 </info>
16721 <glossdef>
16722 <para role="glossdeffirst">
16723<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16724 When using
16725 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
16726 determines whether or not to run a
16727 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
16728 on any virtual terminals in order to enable logging in
16729 through those terminals.
16730 </para>
16731
16732 <para>
16733 The default value used for <filename>USE_VT</filename>
16734 is "1" when no default value is specifically set.
16735 Typically, you would set <filename>USE_VT</filename>
16736 to "0" in the machine configuration file for machines
16737 that do not have a graphical display attached and
16738 therefore do not need virtual terminal functionality.
16739 </para>
16740 </glossdef>
16741 </glossentry>
16742
16743 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
16744 <info>
16745 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
16746 </info>
16747 <glossdef>
16748 <para role="glossdeffirst">
16749<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16750 A list of classes to globally inherit.
16751 These classes are used by the OpenEmbedded build system
16752 to enable extra features (e.g.
16753 <filename>buildstats</filename>,
16754 <filename>image-mklibs</filename>, and so forth).
16755 </para>
16756
16757 <para>
16758 The default list is set in your
16759 <filename>local.conf</filename> file:
16760 <literallayout class='monospaced'>
16761 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
16762 </literallayout>
16763 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050016764 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016765 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016766 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016767 </para>
16768 </glossdef>
16769 </glossentry>
16770
16771 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
16772 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016773 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 files/passwd and files/group files. If set to 'warn', a warning will be issued instead."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016774 </info>
16775 <glossdef>
16776 <para role="glossdeffirst">
16777<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016778 If set to "error", forces the OpenEmbedded build system to
16779 produce an error if the user identification
16780 (<filename>uid</filename>) and group identification
16781 (<filename>gid</filename>) values are not defined
16782 in <filename>files/passwd</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016783 and <filename>files/group</filename> files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016784 If set to "warn", a warning will be issued instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016785 </para>
16786
16787 <para>
16788 The default behavior for the build system is to dynamically
16789 apply <filename>uid</filename> and
16790 <filename>gid</filename> values.
16791 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
16792 variable is by default not set.
16793 If you plan on using statically assigned
16794 <filename>gid</filename> and <filename>uid</filename>
16795 values, you should set
16796 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
16797 your <filename>local.conf</filename> file as
16798 follows:
16799 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016800 USERADD_ERROR_DYNAMIC = "error"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016801 </literallayout>
16802 Overriding the default behavior implies you are going to
16803 also take steps to set static <filename>uid</filename> and
16804 <filename>gid</filename> values through use of the
16805 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
16806 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
16807 and
16808 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16809 variables.
16810 </para>
16811 </glossdef>
16812 </glossentry>
16813
16814 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
16815 <info>
16816 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."
16817 </info>
16818 <glossdef>
16819 <para role="glossdeffirst">
16820<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16821 Specifies a password file to use for obtaining static
16822 group identification (<filename>gid</filename>) values
16823 when the OpenEmbedded build system adds a group to the
16824 system during package installation.
16825 </para>
16826
16827 <para>
16828 When applying static group identification
16829 (<filename>gid</filename>) values, the OpenEmbedded build
16830 system looks in
16831 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16832 for a <filename>files/group</filename> file and then applies
16833 those <filename>uid</filename> values.
16834 Set the variable as follows in your
16835 <filename>local.conf</filename> file:
16836 <literallayout class='monospaced'>
16837 USERADD_GID_TABLES = "files/group"
16838 </literallayout>
16839 </para>
16840
16841 <note>
16842 Setting the
16843 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16844 variable to "useradd-staticids" causes the build system
16845 to use static <filename>gid</filename> values.
16846 </note>
16847 </glossdef>
16848 </glossentry>
16849
16850 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
16851 <info>
16852 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."
16853 </info>
16854 <glossdef>
16855 <para role="glossdeffirst">
16856<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16857 When inheriting the
16858 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16859 class, this variable
16860 specifies the individual packages within the recipe that
16861 require users and/or groups to be added.
16862 </para>
16863
16864 <para>
16865 You must set this variable if the recipe inherits the
16866 class.
16867 For example, the following enables adding a user for the
16868 main package in a recipe:
16869 <literallayout class='monospaced'>
16870 USERADD_PACKAGES = "${PN}"
16871 </literallayout>
16872 <note>
Andrew Geissler99467da2019-02-25 18:54:23 -060016873 It follows that if you are going to use the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016874 <filename>USERADD_PACKAGES</filename> variable,
16875 you need to set one or more of the
16876 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
16877 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
16878 or
16879 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
16880 variables.
16881 </note>
16882 </para>
16883
16884 </glossdef>
16885 </glossentry>
16886
16887 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
16888 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016889 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 -050016890 </info>
16891 <glossdef>
16892 <para role="glossdeffirst">
16893<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16894 When inheriting the
16895 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16896 class, this variable
Brad Bishop316dfdd2018-06-25 12:45:53 -040016897 specifies for a package what parameters should pass
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016898 to the <filename>useradd</filename> command
Brad Bishop316dfdd2018-06-25 12:45:53 -040016899 if you add a user to the system when the package
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016900 is installed.
16901 </para>
16902
16903 <para>
16904 Here is an example from the <filename>dbus</filename>
16905 recipe:
16906 <literallayout class='monospaced'>
16907 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
16908 --no-create-home --shell /bin/false \
16909 --user-group messagebus"
16910 </literallayout>
16911 For information on the standard Linux shell command
16912 <filename>useradd</filename>, see
16913 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
16914 </para>
16915 </glossdef>
16916 </glossentry>
16917
16918 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
16919 <info>
16920 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."
16921 </info>
16922 <glossdef>
16923 <para role="glossdeffirst">
16924<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16925 Specifies a password file to use for obtaining static
16926 user identification (<filename>uid</filename>) values
16927 when the OpenEmbedded build system adds a user to the
16928 system during package installation.
16929 </para>
16930
16931 <para>
16932 When applying static user identification
16933 (<filename>uid</filename>) values, the OpenEmbedded build
16934 system looks in
16935 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16936 for a <filename>files/passwd</filename> file and then applies
16937 those <filename>uid</filename> values.
16938 Set the variable as follows in your
16939 <filename>local.conf</filename> file:
16940 <literallayout class='monospaced'>
16941 USERADD_UID_TABLES = "files/passwd"
16942 </literallayout>
16943 </para>
16944
16945 <note>
16946 Setting the
16947 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16948 variable to "useradd-staticids" causes the build system
16949 to use static <filename>uid</filename> values.
16950 </note>
16951 </glossdef>
16952 </glossentry>
16953
16954 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
16955 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016956 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 -050016957 </info>
16958 <glossdef>
16959 <para role="glossdeffirst">
16960<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16961 When set to "useradd-staticids", causes the
16962 OpenEmbedded build system to base all user and group
16963 additions on a static
16964 <filename>passwd</filename> and
16965 <filename>group</filename> files found in
16966 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
16967 </para>
16968
16969 <para>
16970 To use static user identification (<filename>uid</filename>)
16971 and group identification (<filename>gid</filename>)
16972 values, set the variable
16973 as follows in your <filename>local.conf</filename> file:
16974 <literallayout class='monospaced'>
16975 USERADDEXTENSION = "useradd-staticids"
16976 </literallayout>
16977 <note>
16978 Setting this variable to use static
16979 <filename>uid</filename> and <filename>gid</filename>
16980 values causes the OpenEmbedded build system to employ
16981 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016982 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016983 class.
16984 </note>
16985 </para>
16986
16987 <para>
16988 If you use static <filename>uid</filename> and
16989 <filename>gid</filename> information, you must also
16990 specify the <filename>files/passwd</filename> and
16991 <filename>files/group</filename> files by setting the
16992 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16993 and
16994 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16995 variables.
16996 Additionally, you should also set the
16997 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
16998 variable.
16999 </para>
17000 </glossdef>
17001 </glossentry>
17002
17003 </glossdiv>
17004
Brad Bishop6e60e8b2018-02-01 10:27:11 -050017005 <glossdiv id='var-glossary-v'><title>V</title>
17006
17007 <glossentry id='var-VOLATILE_LOG_DIR'><glossterm>VOLATILE_LOG_DIR</glossterm>
17008 <info>
17009 VOLATILE_LOG_DIR[doc] = "Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files."
17010 </info>
17011 <glossdef>
17012 <para role="glossdeffirst">
17013<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17014 Specifies the persistence of the target's
17015 <filename>/var/log</filename> directory, which is used to
17016 house postinstall target log files.
17017 </para>
17018
17019 <para>
17020 By default, <filename>VOLATILE_LOG_DIR</filename> is set
17021 to "yes", which means the file is not persistent.
17022 You can override this setting by setting the
17023 variable to "no" to make the log directory persistent.
17024 </para>
17025 </glossdef>
17026 </glossentry>
17027
17028 </glossdiv>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017029
17030 <glossdiv id='var-glossary-w'><title>W</title>
17031
17032 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
17033 <info>
17034 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
17035 </info>
17036 <glossdef>
17037 <para role="glossdeffirst">
17038<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17039 Specifies the quality assurance checks whose failures are
17040 reported as warnings by the OpenEmbedded build system.
17041 You set this variable in your distribution configuration
17042 file.
17043 For a list of the checks you can control with this variable,
17044 see the
17045 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
17046 section.
17047 </para>
17048 </glossdef>
17049 </glossentry>
17050
Brad Bishop6e60e8b2018-02-01 10:27:11 -050017051 <glossentry id='var-WKS_FILE_DEPENDS'><glossterm>WKS_FILE_DEPENDS</glossterm>
17052 <info>
17053 WKS_FILE_DEPENDS[doc] = "Lists a recipe's build-time dependencies specific to Wic."
17054 </info>
17055 <glossdef>
17056 <para role="glossdeffirst">
17057 When placed in the recipe that builds your image, this
17058 variable lists build-time dependencies.
17059 The <filename>WKS_FILE_DEPENDS</filename> variable is only
17060 applicable when Wic images are active (i.e. when
17061 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
17062 contains entries related to Wic).
17063 If your recipe does not create Wic images, the variable
17064 has no effect.
17065 </para>
17066
17067 <para>
17068 The <filename>WKS_FILE_DEPENDS</filename> variable is
17069 similar to the
17070 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
17071 variable.
17072 When you use the variable in your recipe that builds the
17073 Wic image, dependencies you list in the
17074 <filename>WIC_FILE_DEPENDS</filename> variable are added to
17075 the <filename>DEPENDS</filename> variable.
17076 </para>
17077
17078 <para>
17079 With the <filename>WKS_FILE_DEPENDS</filename> variable,
17080 you have the possibility to specify a list of additional
17081 dependencies (e.g. native tools, bootloaders, and so forth),
17082 that are required to build Wic images.
17083 Following is an example:
17084 <literallayout class='monospaced'>
17085 WKS_FILE_DEPENDS = "<replaceable>some-native-tool</replaceable>"
17086 </literallayout>
17087 In the previous example,
17088 <replaceable>some-native-tool</replaceable> would be
17089 replaced with an actual native tool on which the build
17090 would depend.
17091 </para>
17092 </glossdef>
17093 </glossentry>
17094
Brad Bishop37a0e4d2017-12-04 01:01:44 -050017095 <glossentry id='var-WKS_FILE'><glossterm>WKS_FILE</glossterm>
17096 <info>
17097 WKS_FILE[doc] = "Specifies the name of the wic kickstart file."
17098 </info>
17099 <glossdef>
17100 <para role="glossdeffirst">
17101 Specifies the location of the Wic
17102 kickstart file that is used by the OpenEmbedded build
17103 system to create a partitioned image
17104 (<replaceable>image</replaceable><filename>.wic</filename>).
Brad Bishopd7bf8c12018-02-25 22:55:05 -050017105 For information on how to create a partitioned image, see
17106 the
17107 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
17108 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050017109 For details on the kickstart file format, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040017110 "<link linkend='ref-kickstart'>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050017111 Chapter.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050017112 </para>
17113 </glossdef>
17114 </glossentry>
17115
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017116 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
17117 <info>
17118 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."
17119 </info>
17120 <glossdef>
17121 <para role="glossdeffirst">
17122<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17123 The pathname of the work directory in which the OpenEmbedded
17124 build system builds a recipe.
17125 This directory is located within the
17126 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
17127 directory structure and is specific to the recipe being
17128 built and the system for which it is being built.
17129 </para>
17130
17131 <para>
17132 The <filename>WORKDIR</filename> directory is defined as
17133 follows:
17134 <literallayout class='monospaced'>
17135 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
17136 </literallayout>
17137 The actual directory depends on several things:
17138 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040017139 <listitem><filename>TMPDIR</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017140 The top-level build output directory</listitem>
17141 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
17142 The target system identifier</listitem>
17143 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
17144 The recipe name</listitem>
17145 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
17146 The epoch - (if
17147 <link linkend='var-PE'><filename>PE</filename></link>
17148 is not specified, which is usually the case for most
17149 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
17150 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
17151 The recipe version</listitem>
17152 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
17153 The recipe revision</listitem>
17154 </itemizedlist>
17155 </para>
17156
17157 <para>
17158 As an example, assume a Source Directory top-level folder
17159 name <filename>poky</filename>, a default Build Directory at
17160 <filename>poky/build</filename>, and a
17161 <filename>qemux86-poky-linux</filename> machine target
17162 system.
17163 Furthermore, suppose your recipe is named
17164 <filename>foo_1.3.0-r0.bb</filename>.
17165 In this case, the work directory the build system uses to
17166 build the package would be as follows:
17167 <literallayout class='monospaced'>
17168 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
17169 </literallayout>
17170 </para>
17171 </glossdef>
17172 </glossentry>
17173
17174 </glossdiv>
17175
17176 <glossdiv id='var-glossary-x'><title>X</title>
17177
17178 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
17179 <info>
17180 XSERVER[doc] = "Specifies the packages that should be installed
17181 to provide an X server and drivers for the current machine."
17182 </info>
17183 <glossdef>
17184 <para role="glossdeffirst">
17185<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17186 Specifies the packages that should be installed to
17187 provide an X server and drivers for the current machine,
17188 assuming your image directly includes
17189 <filename>packagegroup-core-x11-xserver</filename> or,
17190 perhaps indirectly, includes "x11-base" in
17191 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
17192 </para>
17193
17194 <para>
17195 The default value of <filename>XSERVER</filename>, if not
17196 specified in the machine configuration, is
17197 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
17198 </para>
17199 </glossdef>
17200 </glossentry>
17201
17202 </glossdiv>
17203
17204<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
17205<!-- </glossdiv>-->
17206
17207<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
17208<!-- </glossdiv>-->
17209
17210</glossary>
17211</chapter>
17212<!--
17213vim: expandtab tw=80 ts=4
17214-->