blob: 02abc590cd8919cb88b3d2b8b158d8617e8cc1a8 [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" /> -->
Brad Bishop79641f22019-09-10 07:20:22 -0400338 Minimal command and arguments needed to run the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500339 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>
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400934 BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the source control repositories to be placed in the DL_DIR directory."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500935 </info>
936 <glossdef>
937 <para role="glossdeffirst">
938<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400939 Causes tarballs of the source control repositories
940 (e.g. Git repositories), including metadata, to be placed
941 in the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500942 <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
943 directory.
944 </para>
945
946 <para>
947 For performance reasons, creating and placing tarballs of
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400948 these repositories is not the default action by the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500949 OpenEmbedded build system.
950 <literallayout class='monospaced'>
951 BB_GENERATE_MIRROR_TARBALLS = "1"
952 </literallayout>
953 Set this variable in your <filename>local.conf</filename>
954 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500955 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500956 </para>
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400957
958 <para>
959 Once you have the tarballs containing your source files,
960 you can clean up your <filename>DL_DIR</filename>
961 directory by deleting any Git or other source control
962 work directories.
963 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500964 </glossdef>
965 </glossentry>
966
967 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
968 <info>
969 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."
970 </info>
971 <glossdef>
972 <para role="glossdeffirst">
973<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
974 The maximum number of tasks BitBake should run in parallel
975 at any one time.
976 The OpenEmbedded build system automatically configures
977 this variable to be equal to the number of cores on the
978 build system.
979 For example, a system with a dual core processor that
980 also uses hyper-threading causes the
981 <filename>BB_NUMBER_THREADS</filename> variable to default
982 to "4".
983 </para>
984
985 <para>
986 For single socket systems (i.e. one CPU), you should not
987 have to override this variable to gain optimal parallelism
988 during builds.
989 However, if you have very large systems that employ
990 multiple physical CPUs, you might want to make sure the
991 <filename>BB_NUMBER_THREADS</filename> variable is not
992 set higher than "20".
993 </para>
994
995 <para>
996 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -0400997 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
998 section in the Yocto Project Development Tasks Manual.
999 </para>
1000 </glossdef>
1001 </glossentry>
1002
1003 <glossentry id='var-BB_SERVER_TIMEOUT'><glossterm>BB_SERVER_TIMEOUT</glossterm>
1004 <info>
1005 BB_SERVER_TIMEOUT [doc] = "Specifies the time (in seconds) after which to unload the BitBake server due to inactivity."
1006 </info>
1007 <glossdef>
1008 <para role="glossdeffirst">
1009<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1010 Specifies the time (in seconds) after which to unload the
1011 BitBake server due to inactivity.
1012 Set <filename>BB_SERVER_TIMEOUT</filename> to determine how
1013 long the BitBake server stays resident between invocations.
1014 </para>
1015
1016 <para>
1017 For example, the following statement in your
1018 <filename>local.conf</filename> file instructs the server
1019 to be unloaded after 20 seconds of inactivity:
1020 <literallayout class='monospaced'>
1021 BB_SERVER_TIMEOUT = "20"
1022 </literallayout>
1023 If you want the server to never be unloaded, set
1024 <filename>BB_SERVER_TIMEOUT</filename> to "-1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001025 </para>
1026 </glossdef>
1027 </glossentry>
1028
1029 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
1030 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001031 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 -05001032 </info>
1033 <glossdef>
1034 <para role="glossdeffirst">
1035<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1036 Allows you to extend a recipe so that it builds variants of the software.
1037 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
1038 which is a copy of Quilt built to run on the build system;
1039 "crosses" such as <filename>gcc-cross</filename>,
1040 which is a compiler built to run on the build machine but produces binaries
1041 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
1042 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
1043 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
1044 </para>
1045
1046 <para>
1047 To build a different variant of the recipe with a minimal amount of code, it usually
1048 is as simple as adding the following to your recipe:
1049 <literallayout class='monospaced'>
1050 BBCLASSEXTEND =+ "native nativesdk"
1051 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
1052 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001053 <note>
1054 <para>
1055 Internally, the <filename>BBCLASSEXTEND</filename>
1056 mechanism generates recipe variants by rewriting
1057 variable values and applying overrides such as
1058 <filename>_class-native</filename>.
1059 For example, to generate a native version of a recipe,
1060 a
1061 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
1062 on "foo" is rewritten to a <filename>DEPENDS</filename>
1063 on "foo-native".
1064 </para>
1065
1066 <para>
1067 Even when using <filename>BBCLASSEXTEND</filename>, the
1068 recipe is only parsed once.
1069 Parsing once adds some limitations.
1070 For example, it is not possible to
1071 include a different file depending on the variant,
1072 since <filename>include</filename> statements are
1073 processed when the recipe is parsed.
1074 </para>
1075 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001076 </para>
1077 </glossdef>
1078 </glossentry>
1079
1080 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1081 <info>
1082 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1083 </info>
1084 <glossdef>
1085 <para role="glossdeffirst">
1086<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1087 Lists the names of configured layers.
1088 These names are used to find the other <filename>BBFILE_*</filename>
1089 variables.
1090 Typically, each layer will append its name to this variable in its
1091 <filename>conf/layer.conf</filename> file.
1092 </para>
1093 </glossdef>
1094 </glossentry>
1095
1096 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1097 <info>
1098 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."
1099 </info>
1100 <glossdef>
1101 <para role="glossdeffirst">
1102<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1103 Variable that expands to match files from
1104 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1105 in a particular layer.
1106 This variable is used in the <filename>conf/layer.conf</filename> file and must
1107 be suffixed with the name of the specific layer (e.g.
1108 <filename>BBFILE_PATTERN_emenlow</filename>).
1109 </para>
1110 </glossdef>
1111 </glossentry>
1112
1113 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1114 <info>
1115 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."
1116 </info>
1117 <glossdef>
1118 <para role="glossdeffirst">
1119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1120 Assigns the priority for recipe files in each layer.
1121 </para>
1122
1123 <para>
1124 This variable is useful in situations where the same recipe appears in
1125 more than one layer.
1126 Setting this variable allows you to prioritize a
1127 layer against other layers that contain the same recipe - effectively
1128 letting you control the precedence for the multiple layers.
1129 The precedence established through this variable stands regardless of a
1130 recipe's version
1131 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1132 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1133 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1134 lower precedence.
1135 </para>
1136
1137 <para>
1138 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1139 precedence.
1140 For example, the value 6 has a higher precedence than the value 5.
1141 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1142 dependencies (see the
1143 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1144 more information.
1145 The default priority, if unspecified
1146 for a layer with no dependencies, is the lowest defined priority + 1
1147 (or 1 if no priorities are defined).
1148 </para>
1149 <tip>
1150 You can use the command <filename>bitbake-layers show-layers</filename> to list
1151 all configured layers along with their priorities.
1152 </tip>
1153 </glossdef>
1154 </glossentry>
1155
1156 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1157 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001158 BBFILES[doc] = "A space-separated list of recipe files BitBake uses to build software."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001159 </info>
1160 <glossdef>
1161 <para role="glossdeffirst">
1162<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001163 A space-separated list of recipe files BitBake uses to
1164 build software.
1165 </para>
1166
1167 <para>
1168 When specifying recipe files, you can pattern match using
1169 Python's
1170 <ulink url='https://docs.python.org/3/library/glob.html'><filename>glob</filename></ulink>
1171 syntax.
1172 For details on the syntax, see the documentation by
1173 following the previous link.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001174 </para>
1175 </glossdef>
1176 </glossentry>
1177
Brad Bishop316dfdd2018-06-25 12:45:53 -04001178 <glossentry id='var-BBFILES_DYNAMIC'><glossterm>BBFILES_DYNAMIC</glossterm>
1179 <info>
1180 BBFILES_DYNAMIC[doc] = "Activates content when identified layers are present."
1181 </info>
1182 <glossdef>
1183 <para role="glossdeffirst">
1184<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1185 Activates content when identified layers are present.
1186 You identify the layers by the collections that the layers
1187 define.
1188 </para>
1189
1190 <para>
1191 Use the <filename>BBFILES_DYNAMIC</filename> variable to
1192 avoid <filename>.bbappend</filename> files whose
1193 corresponding <filename>.bb</filename> file is in a layer
1194 that attempts to modify other layers through
1195 <filename>.bbappend</filename> but does not want to
1196 introduce a hard dependency on those other layers.
1197 </para>
1198
1199 <para>
1200 Use the following form for
1201 <filename>BBFILES_DYNAMIC</filename>:
1202 <literallayout class='monospaced'>
1203 <replaceable>collection_name</replaceable>:<replaceable>filename_pattern</replaceable>
1204 </literallayout>
1205 The following example identifies two collection names and
1206 two filename patterns:
1207 <literallayout class='monospaced'>
1208 BBFILES_DYNAMIC += " \
1209 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
1210 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
1211 "
1212 </literallayout>
1213 This next example shows an error message that occurs
1214 because invalid entries are found, which cause parsing to
1215 abort:
1216 <literallayout class='monospaced'>
1217 ERROR: BBFILES_DYNAMIC entries must be of the form &lt;collection name&gt;:&lt;filename pattern&gt;, not:
1218 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
1219 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
1220 </literallayout>
1221 </para>
1222 </glossdef>
1223 </glossentry>
1224
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001225 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1226 <info>
1227 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1228 </info>
1229 <glossdef>
1230 <para role="glossdeffirst">
1231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1232 Variable that controls how BitBake displays logs on build failure.
1233 </para>
1234 </glossdef>
1235 </glossentry>
1236
1237 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1238 <info>
1239 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1240 </info>
1241 <glossdef>
1242 <para role="glossdeffirst">
1243<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1244 If
1245 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1246 is set, specifies the maximum number of lines from the
1247 task log file to print when reporting a failed task.
1248 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1249 the entire log is printed.
1250 </para>
1251 </glossdef>
1252 </glossentry>
1253
1254 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1255 <info>
1256 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1257 </info>
1258 <glossdef>
1259 <para role="glossdeffirst">
1260<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1261 Lists the layers to enable during the build.
1262 This variable is defined in the <filename>bblayers.conf</filename> configuration
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001263 file in the
1264 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001265 Here is an example:
1266 <literallayout class='monospaced'>
1267 BBLAYERS = " \
1268 /home/scottrif/poky/meta \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001269 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001270 /home/scottrif/poky/meta-yocto-bsp \
1271 /home/scottrif/poky/meta-mykernel \
1272 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001273 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001274 </para>
1275
1276 <para>
1277 This example enables four layers, one of which is a custom, user-defined layer
1278 named <filename>meta-mykernel</filename>.
1279 </para>
1280 </glossdef>
1281 </glossentry>
1282
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001283 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1284 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001285 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001286 </info>
1287 <glossdef>
1288 <para role="glossdeffirst">
1289<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1290 Prevents BitBake from processing recipes and recipe
1291 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001292 </para>
1293
1294 <para>
1295 You can use the <filename>BBMASK</filename> variable
1296 to "hide" these <filename>.bb</filename> and
1297 <filename>.bbappend</filename> files.
1298 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001299 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001300 It is as if BitBake does not see them at all.
1301 Consequently, matching files are not parsed or otherwise
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001302 used by BitBake.
1303 </para>
1304
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001305 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001306 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001307 expression compiler.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001308 Consequently, the syntax follows Python's Regular
1309 Expression (re) syntax.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001310 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001311 the files.
1312 For complete syntax information, see Python's
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001313 documentation at
1314 <ulink url='http://docs.python.org/3/library/re.html#re'></ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001315 </para>
1316
1317 <para>
1318 The following example uses a complete regular expression
1319 to tell BitBake to ignore all recipe and recipe append
1320 files in the <filename>meta-ti/recipes-misc/</filename>
1321 directory:
1322 <literallayout class='monospaced'>
1323 BBMASK = "meta-ti/recipes-misc/"
1324 </literallayout>
1325 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001326 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001327 This next example masks out multiple directories and
1328 individual recipes:
1329 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001330 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1331 BBMASK += "/meta-oe/recipes-support/"
1332 BBMASK += "/meta-foo/.*/openldap"
1333 BBMASK += "opencv.*\.bbappend"
1334 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001335 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001336 <note>
1337 When specifying a directory name, use the trailing
1338 slash character to ensure you match just that directory
1339 name.
1340 </note>
1341 </para>
1342 </glossdef>
1343 </glossentry>
1344
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001345 <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
1346 <info>
Brad Bishopf3f93bb2019-10-16 14:33:32 -04001347 BBMULTICONFIG[doc] = "Specifies each additional separate configuration when you are building targets with multiple configurations."
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001348 </info>
1349 <glossdef>
1350 <para role="glossdeffirst">
1351<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop64c979e2019-11-04 13:55:29 -05001352 Specifies each additional separate configuration when you
1353 are building targets with multiple configurations.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001354 Use this variable in your
1355 <filename>conf/local.conf</filename> configuration file.
1356 Specify a <replaceable>multiconfigname</replaceable> for
1357 each configuration file you are using.
1358 For example, the following line specifies three
1359 configuration files:
1360 <literallayout class='monospaced'>
Brad Bishop96ff1982019-08-19 13:50:42 -04001361 BBMULTICONFIG = "configA configB configC"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001362 </literallayout>
1363 Each configuration file you use must reside in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001364 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001365 <filename>conf/multiconfig</filename> directory
1366 (e.g.
1367 <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
1368 </para>
1369
1370 <para>
1371 For information on how to use
1372 <filename>BBMULTICONFIG</filename> in an environment that
1373 supports building targets with multiple configurations,
1374 see the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001375 "<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 -05001376 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001377 </para>
1378 </glossdef>
1379 </glossentry>
1380
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001381 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1382 <info>
1383 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1384 </info>
1385 <glossdef>
1386 <para role="glossdeffirst">
1387<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1388 Used by BitBake to locate
1389 <filename>.bbclass</filename> and configuration files.
1390 This variable is analogous to the
1391 <filename>PATH</filename> variable.
1392 <note>
1393 If you run BitBake from a directory outside of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001394 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001395 you must be sure to set
1396 <filename>BBPATH</filename> to point to the
1397 Build Directory.
1398 Set the variable as you would any environment variable
1399 and then run BitBake:
1400 <literallayout class='monospaced'>
1401 $ BBPATH = "<replaceable>build_directory</replaceable>"
1402 $ export BBPATH
1403 $ bitbake <replaceable>target</replaceable>
1404 </literallayout>
1405 </note>
1406 </para>
1407 </glossdef>
1408 </glossentry>
1409
1410 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1411 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001412 BBSERVER[doc] = "Points to the BitBake remote server."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001413 </info>
1414 <glossdef>
1415 <para role="glossdeffirst">
1416<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001417 If defined in the BitBake environment,
1418 <filename>BBSERVER</filename> points to the BitBake
1419 remote server.
1420 </para>
1421
1422 <para>
1423 Use the following format to export the variable to the
1424 BitBake environment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001425 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001426 export BBSERVER=localhost:$port"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001427 </literallayout>
1428 </para>
1429
1430 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001431 By default, <filename>BBSERVER</filename> also appears in
1432 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>.
1433 Consequently, <filename>BBSERVER</filename> is excluded
1434 from checksum and dependency data.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001435 </para>
1436 </glossdef>
1437 </glossentry>
1438
1439 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1440 <info>
1441 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."
1442 </info>
1443 <glossdef>
1444 <para role="glossdeffirst">
1445<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1446 When inheriting the
1447 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1448 class, this variable specifies binary configuration
1449 scripts to disable in favor of using
1450 <filename>pkg-config</filename> to query the information.
1451 The <filename>binconfig-disabled</filename> class will
1452 modify the specified scripts to return an error so that
1453 calls to them can be easily found and replaced.
1454 </para>
1455
1456 <para>
1457 To add multiple scripts, separate them by spaces.
1458 Here is an example from the <filename>libpng</filename>
1459 recipe:
1460 <literallayout class='monospaced'>
1461 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1462 </literallayout>
1463 </para>
1464 </glossdef>
1465 </glossentry>
1466
1467 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1468 <info>
1469 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1470 </info>
1471 <glossdef>
1472 <para role="glossdeffirst">
1473<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1474 When inheriting the
1475 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1476 class, this variable specifies a wildcard for
1477 configuration scripts that need editing.
1478 The scripts are edited to correct any paths that have been
1479 set up during compilation so that they are correct for
1480 use when installed into the sysroot and called by the
1481 build processes of other recipes.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001482 <note>
1483 The <filename>BINCONFIG_GLOB</filename> variable
1484 uses
1485 <ulink url='http://tldp.org/LDP/abs/html/globbingref.html'>shell globbing</ulink>,
1486 which is recognition and expansion of wildcards during
1487 pattern matching.
1488 Shell globbing is very similar to
1489 <ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>
1490 and
1491 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>.
1492 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001493 </para>
1494
1495 <para>
1496 For more information on how this variable works, see
1497 <filename>meta/classes/binconfig.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001498 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001499 You can also find general information on the class in the
1500 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1501 section.
1502 </para>
1503 </glossdef>
1504 </glossentry>
1505
1506 <glossentry id='var-BP'><glossterm>BP</glossterm>
1507 <info>
1508 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}"
1509 </info>
1510 <glossdef>
1511 <para role="glossdeffirst">
1512<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1513 The base recipe name and version but without any special
1514 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1515 and so forth).
1516 <filename>BP</filename> is comprised of the following:
1517 <literallayout class="monospaced">
1518 ${BPN}-${PV}
1519 </literallayout>
1520 </para>
1521 </glossdef>
1522 </glossentry>
1523
1524 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1525 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001526 BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001527 </info>
1528 <glossdef>
1529 <para role="glossdeffirst">
1530<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001531 This variable is a version of the
1532 <link linkend='var-PN'><filename>PN</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001533 variable with common prefixes and suffixes
1534 removed, such as <filename>nativesdk-</filename>,
1535 <filename>-cross</filename>,
1536 <filename>-native</filename>, and multilib's
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001537 <filename>lib64-</filename> and
1538 <filename>lib32-</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001539 The exact lists of prefixes and suffixes removed are
1540 specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001541 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001542 and
1543 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1544 variables, respectively.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001545 </para>
1546 </glossdef>
1547 </glossentry>
1548
1549 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1550 <info>
1551 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1552 </info>
1553 <glossdef>
1554 <para role="glossdeffirst">
1555<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1556 Specifies a URL for an upstream bug tracking website for
1557 a recipe.
1558 The OpenEmbedded build system does not use this variable.
1559 Rather, the variable is a useful pointer in case a bug
1560 in the software being built needs to be manually reported.
1561 </para>
1562 </glossdef>
1563 </glossentry>
1564
1565 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1566 <info>
1567 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1568 </info>
1569 <glossdef>
1570 <para role="glossdeffirst">
1571<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1572 Specifies the architecture of the build host
1573 (e.g. <filename>i686</filename>).
1574 The OpenEmbedded build system sets the value of
1575 <filename>BUILD_ARCH</filename> from the machine name
1576 reported by the <filename>uname</filename> command.
1577 </para>
1578 </glossdef>
1579 </glossentry>
1580
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001581 <glossentry id='var-BUILD_AS_ARCH'><glossterm>BUILD_AS_ARCH</glossterm>
1582 <info>
1583 BUILD_AS_ARCH[doc] = "Specifies the architecture-specific assembler flags for the build host."
1584 </info>
1585 <glossdef>
1586 <para role="glossdeffirst">
1587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1588 Specifies the architecture-specific assembler flags for
1589 the build host. By default, the value of
1590 <filename>BUILD_AS_ARCH</filename> is empty.
1591 </para>
1592 </glossdef>
1593 </glossentry>
1594
1595 <glossentry id='var-BUILD_CC_ARCH'><glossterm>BUILD_CC_ARCH</glossterm>
1596 <info>
1597 BUILD_CC_ARCH[doc] = "Specifies the architecture-specific C compiler flags for the build host."
1598 </info>
1599 <glossdef>
1600 <para role="glossdeffirst">
1601<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1602 Specifies the architecture-specific C compiler flags for
1603 the build host. By default, the value of
1604 <filename>BUILD_CC_ARCH</filename> is empty.
1605 </para>
1606 </glossdef>
1607 </glossentry>
1608
1609 <glossentry id='var-BUILD_CCLD'><glossterm>BUILD_CCLD</glossterm>
1610 <info>
1611 BUILD_CCLD[doc] = "Specifies the linker command to be used for the build host when the C compiler is being used as the linker."
1612 </info>
1613 <glossdef>
1614 <para role="glossdeffirst">
1615<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1616 Specifies the linker command to be used for the build host
1617 when the C compiler is being used as the linker. By default,
1618 <filename>BUILD_CCLD</filename> points to GCC and passes as
1619 arguments the value of
1620 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1621 assuming <filename>BUILD_CC_ARCH</filename> is set.
1622 </para>
1623 </glossdef>
1624 </glossentry>
1625
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001626 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1627 <info>
1628 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1629 </info>
1630 <glossdef>
1631 <para role="glossdeffirst">
1632<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1633 Specifies the flags to pass to the C compiler when building
1634 for the build host.
1635 When building in the <filename>-native</filename> context,
1636 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1637 is set to the value of this variable by default.
1638 </para>
1639 </glossdef>
1640 </glossentry>
1641
1642 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1643 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001644 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 -05001645 </info>
1646 <glossdef>
1647 <para role="glossdeffirst">
1648<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04001649 Specifies the flags to pass to the C preprocessor
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001650 (i.e. to both the C and the C++ compilers) when building
1651 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001652 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001653 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1654 is set to the value of this variable by default.
1655 </para>
1656 </glossdef>
1657 </glossentry>
1658
1659 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1660 <info>
1661 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1662 </info>
1663 <glossdef>
1664 <para role="glossdeffirst">
1665<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1666 Specifies the flags to pass to the C++ compiler when
1667 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001668 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001669 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1670 is set to the value of this variable by default.
1671 </para>
1672 </glossdef>
1673 </glossentry>
1674
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001675 <glossentry id='var-BUILD_FC'><glossterm>BUILD_FC</glossterm>
1676 <info>
1677 BUILD_FC[doc] = "Specifies the Fortran compiler command for the build host."
1678 </info>
1679 <glossdef>
1680 <para role="glossdeffirst">
1681<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1682 Specifies the Fortran compiler command for the build host.
1683 By default, <filename>BUILD_FC</filename> points to
1684 Gfortran and passes as arguments the value of
1685 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1686 assuming <filename>BUILD_CC_ARCH</filename> is set.
1687 </para>
1688 </glossdef>
1689 </glossentry>
1690
1691 <glossentry id='var-BUILD_LD'><glossterm>BUILD_LD</glossterm>
1692 <info>
1693 BUILD_LD[doc] = "Specifies the linker command for the build host."
1694 </info>
1695 <glossdef>
1696 <para role="glossdeffirst">
1697<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1698 Specifies the linker command for the build host. By default,
1699 <filename>BUILD_LD</filename> points to the GNU linker (ld)
1700 and passes as arguments the value of
1701 <link linkend='var-BUILD_LD_ARCH'><filename>BUILD_LD_ARCH</filename></link>,
1702 assuming <filename>BUILD_LD_ARCH</filename> is set.
1703 </para>
1704 </glossdef>
1705 </glossentry>
1706
1707 <glossentry id='var-BUILD_LD_ARCH'><glossterm>BUILD_LD_ARCH</glossterm>
1708 <info>
1709 BUILD_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the build."
1710 </info>
1711 <glossdef>
1712 <para role="glossdeffirst">
1713<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1714 Specifies architecture-specific linker flags for the build
1715 host. By default, the value of
1716 <filename>BUILD_LD_ARCH</filename> is empty.
1717 </para>
1718 </glossdef>
1719 </glossentry>
1720
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001721 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1722 <info>
1723 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1724 </info>
1725 <glossdef>
1726 <para role="glossdeffirst">
1727<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1728 Specifies the flags to pass to the linker when building
1729 for the build host.
1730 When building in the <filename>-native</filename> context,
1731 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1732 is set to the value of this variable by default.
1733 </para>
1734 </glossdef>
1735 </glossentry>
1736
1737 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1738 <info>
1739 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1740 </info>
1741 <glossdef>
1742 <para role="glossdeffirst">
1743<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1744 Specifies the optimization flags passed to the C compiler
1745 when building for the build host or the SDK.
1746 The flags are passed through the
1747 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1748 and
1749 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1750 default values.
1751 </para>
1752
1753 <para>
1754 The default value of the
1755 <filename>BUILD_OPTIMIZATION</filename> variable is
1756 "-O2 -pipe".
1757 </para>
1758 </glossdef>
1759 </glossentry>
1760
1761 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1762 <info>
1763 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1764 </info>
1765 <glossdef>
1766 <para role="glossdeffirst">
1767<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1768 Specifies the operating system in use on the build
1769 host (e.g. "linux").
1770 The OpenEmbedded build system sets the value of
1771 <filename>BUILD_OS</filename> from the OS reported by
1772 the <filename>uname</filename> command - the first word,
1773 converted to lower-case characters.
1774 </para>
1775 </glossdef>
1776 </glossentry>
1777
1778 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1779 <info>
1780 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1781 </info>
1782 <glossdef>
1783 <para role="glossdeffirst">
1784<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1785 The toolchain binary prefix used for native recipes.
1786 The OpenEmbedded build system uses the
1787 <filename>BUILD_PREFIX</filename> value to set the
1788 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001789 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001790 </para>
1791 </glossdef>
1792 </glossentry>
1793
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001794 <glossentry id='var-BUILD_STRIP'><glossterm>BUILD_STRIP</glossterm>
1795 <info>
1796 BUILD_STRIP[doc] = "Specifies the command to be used to strip debugging symbols from binaries produced for the build host."
1797 </info>
1798 <glossdef>
1799 <para role="glossdeffirst">
1800<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1801 Specifies the command to be used to strip debugging symbols
1802 from binaries produced for the build host. By default,
1803 <filename>BUILD_STRIP</filename> points to
1804 <filename>${</filename><link linkend='var-BUILD_PREFIX'><filename>BUILD_PREFIX</filename></link><filename>}strip</filename>.
1805 </para>
1806 </glossdef>
1807 </glossentry>
1808
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001809 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1810 <info>
1811 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1812 </info>
1813 <glossdef>
1814 <para role="glossdeffirst">
1815<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1816 Specifies the system, including the architecture and
1817 the operating system, to use when building for the build
1818 host (i.e. when building <filename>native</filename>
1819 recipes).
1820 </para>
1821
1822 <para>
1823 The OpenEmbedded build system automatically sets this
1824 variable based on
1825 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1826 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1827 and
1828 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1829 You do not need to set the <filename>BUILD_SYS</filename>
1830 variable yourself.
1831 </para>
1832 </glossdef>
1833 </glossentry>
1834
1835 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1836 <info>
1837 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1838 </info>
1839 <glossdef>
1840 <para role="glossdeffirst">
1841<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1842 Specifies the vendor name to use when building for the
1843 build host.
1844 The default value is an empty string ("").
1845 </para>
1846 </glossdef>
1847 </glossentry>
1848
1849 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1850 <info>
1851 BUILDDIR[doc] = "Points to the location of the Build Directory."
1852 </info>
1853 <glossdef>
1854 <para role="glossdeffirst">
1855<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1856 Points to the location of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001857 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001858 You can define this directory indirectly through the
1859 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001860 script by passing in a Build Directory path when you run
1861 the script.
1862 If you run the script and do not provide a Build Directory
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001863 path, the <filename>BUILDDIR</filename> defaults to
1864 <filename>build</filename> in the current directory.
1865 </para>
1866 </glossdef>
1867 </glossentry>
1868
1869 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1870 <info>
1871 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."
1872 </info>
1873 <glossdef>
1874 <para role="glossdeffirst">
1875<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1876 When inheriting the
1877 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1878 class, this variable specifies whether or not to commit the
1879 build history output in a local Git repository.
1880 If set to "1", this local repository will be maintained
1881 automatically by the
1882 <filename>buildhistory</filename>
1883 class and a commit will be created on every
1884 build for changes to each top-level subdirectory of the
1885 build history output (images, packages, and sdk).
1886 If you want to track changes to build history over
1887 time, you should set this value to "1".
1888 </para>
1889
1890 <para>
1891 By default, the <filename>buildhistory</filename> class
1892 does not commit the build history output in a local
1893 Git repository:
1894 <literallayout class='monospaced'>
1895 BUILDHISTORY_COMMIT ?= "0"
1896 </literallayout>
1897 </para>
1898 </glossdef>
1899 </glossentry>
1900
1901 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1902 <info>
1903 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1904 </info>
1905 <glossdef>
1906 <para role="glossdeffirst">
1907<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1908 When inheriting the
1909 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1910 class, this variable specifies the author to use for each
1911 Git commit.
1912 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1913 variable to work, the
1914 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1915 variable must be set to "1".
1916 </para>
1917
1918 <para>
1919 Git requires that the value you provide for the
1920 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
Brad Bishop316dfdd2018-06-25 12:45:53 -04001921 takes the form of "name <replaceable>email@host</replaceable>".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001922 Providing an email address or host that is not valid does
1923 not produce an error.
1924 </para>
1925
1926 <para>
1927 By default, the <filename>buildhistory</filename> class
1928 sets the variable as follows:
1929 <literallayout class='monospaced'>
1930 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1931 </literallayout>
1932 </para>
1933 </glossdef>
1934 </glossentry>
1935
1936 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1937 <info>
1938 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1939 </info>
1940 <glossdef>
1941 <para role="glossdeffirst">
1942<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1943 When inheriting the
1944 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1945 class, this variable specifies the directory in which
1946 build history information is kept.
1947 For more information on how the variable works, see the
1948 <filename>buildhistory.class</filename>.
1949 </para>
1950
1951 <para>
1952 By default, the <filename>buildhistory</filename> class
1953 sets the directory as follows:
1954 <literallayout class='monospaced'>
1955 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1956 </literallayout>
1957 </para>
1958 </glossdef>
1959 </glossentry>
1960
1961 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1962 <info>
1963 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1964 </info>
1965 <glossdef>
1966 <para role="glossdeffirst">
1967<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1968 When inheriting the
1969 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1970 class, this variable specifies the build history features
1971 to be enabled.
1972 For more information on how build history works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04001973 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
1974 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001975 </para>
1976
1977 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001978 You can specify these features in the form of a
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001979 space-separated list:
1980 <itemizedlist>
1981 <listitem><para><emphasis>image:</emphasis>
1982 Analysis of the contents of images, which
1983 includes the list of installed packages among other
1984 things.
1985 </para></listitem>
1986 <listitem><para><emphasis>package:</emphasis>
1987 Analysis of the contents of individual packages.
1988 </para></listitem>
1989 <listitem><para><emphasis>sdk:</emphasis>
1990 Analysis of the contents of the software
1991 development kit (SDK).
1992 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001993 <listitem><para><emphasis>task:</emphasis>
1994 Save output file signatures for
1995 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state</ulink>
1996 (sstate) tasks.
1997 This saves one file per task and lists the SHA-256
1998 checksums for each file staged (i.e. the output of
1999 the task).
2000 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002001 </itemizedlist>
2002 </para>
2003
2004 <para>
2005 By default, the <filename>buildhistory</filename> class
Brad Bishop316dfdd2018-06-25 12:45:53 -04002006 enables the following features:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002007 <literallayout class='monospaced'>
2008 BUILDHISTORY_FEATURES ?= "image package sdk"
2009 </literallayout>
2010 </para>
2011 </glossdef>
2012 </glossentry>
2013
2014 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
2015 <info>
2016 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."
2017 </info>
2018 <glossdef>
2019 <para role="glossdeffirst">
2020<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2021 When inheriting the
2022 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2023 class, this variable specifies a list of paths to files
2024 copied from the
2025 image contents into the build history directory under
2026 an "image-files" directory in the directory for
2027 the image, so that you can track the contents of each file.
2028 The default is to copy <filename>/etc/passwd</filename>
2029 and <filename>/etc/group</filename>, which allows you to
2030 monitor for changes in user and group entries.
2031 You can modify the list to include any file.
2032 Specifying an invalid path does not produce an error.
2033 Consequently, you can include files that might
2034 not always be present.
2035 </para>
2036
2037 <para>
2038 By default, the <filename>buildhistory</filename> class
2039 provides paths to the following files:
2040 <literallayout class='monospaced'>
2041 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
2042 </literallayout>
2043 </para>
2044 </glossdef>
2045 </glossentry>
2046
2047 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
2048 <info>
2049 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
2050 </info>
2051 <glossdef>
2052 <para role="glossdeffirst">
2053<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2054 When inheriting the
2055 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2056 class, this variable optionally specifies a remote
2057 repository to which build history pushes Git changes.
2058 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
2059 to work,
2060 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
2061 must be set to "1".
2062 </para>
2063
2064 <para>
2065 The repository should correspond to a remote
2066 address that specifies a repository as understood by
2067 Git, or alternatively to a remote name that you have
2068 set up manually using <filename>git remote</filename>
2069 within the local repository.
2070 </para>
2071
2072 <para>
2073 By default, the <filename>buildhistory</filename> class
2074 sets the variable as follows:
2075 <literallayout class='monospaced'>
2076 BUILDHISTORY_PUSH_REPO ?= ""
2077 </literallayout>
2078 </para>
2079 </glossdef>
2080 </glossentry>
2081
2082 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
2083 <info>
2084 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
2085 </info>
2086 <glossdef>
2087 <para role="glossdeffirst">
2088<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2089 Specifies the flags to pass to the C compiler when building
2090 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002091 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002092 context,
2093 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
2094 is set to the value of this variable by default.
2095 </para>
2096 </glossdef>
2097 </glossentry>
2098
2099 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
2100 <info>
2101 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."
2102 </info>
2103 <glossdef>
2104 <para role="glossdeffirst">
2105<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2106 Specifies the flags to pass to the C pre-processor
2107 (i.e. to both the C and the C++ compilers) when building
2108 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002109 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002110 context,
2111 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
2112 is set to the value of this variable by default.
2113 </para>
2114 </glossdef>
2115 </glossentry>
2116
2117 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
2118 <info>
2119 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
2120 </info>
2121 <glossdef>
2122 <para role="glossdeffirst">
2123<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2124 Specifies the flags to pass to the C++ compiler when
2125 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002126 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002127 context,
2128 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
2129 is set to the value of this variable by default.
2130 </para>
2131 </glossdef>
2132 </glossentry>
2133
2134 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
2135 <info>
2136 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
2137 </info>
2138 <glossdef>
2139 <para role="glossdeffirst">
2140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2141 Specifies the flags to pass to the linker when building
2142 for the SDK.
2143 When building in the <filename>nativesdk-</filename>
2144 context,
2145 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
2146 is set to the value of this variable by default.
2147 </para>
2148 </glossdef>
2149 </glossentry>
2150
2151 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
2152 <info>
2153 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
2154 </info>
2155 <glossdef>
2156 <para role="glossdeffirst">
2157<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2158 Points to the location of the directory that holds build
2159 statistics when you use and enable the
2160 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
2161 class.
2162 The <filename>BUILDSTATS_BASE</filename> directory defaults
2163 to
2164 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
2165 </para>
2166 </glossdef>
2167 </glossentry>
2168
2169 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
2170 <info>
2171 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."
2172 </info>
2173 <glossdef>
2174 <para role="glossdeffirst">
2175<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2176 For the BusyBox recipe, specifies whether to split the
2177 output executable file into two parts: one for features
2178 that require <filename>setuid root</filename>, and one for
2179 the remaining features (i.e. those that do not require
2180 <filename>setuid root</filename>).
2181 </para>
2182
2183 <para>
2184 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
Brad Bishop64c979e2019-11-04 13:55:29 -05002185 defaults to "1", which results in splitting the output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002186 executable file.
Brad Bishop64c979e2019-11-04 13:55:29 -05002187 Set the variable to "0" to get a single output executable
2188 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002189 </para>
2190 </glossdef>
2191 </glossentry>
2192
2193 </glossdiv>
2194
2195 <glossdiv id='var-glossary-c'><title>C</title>
2196
2197 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
2198 <info>
2199 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
2200 </info>
2201 <glossdef>
2202 <para role="glossdeffirst">
2203<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2204 Specifies the directory BitBake uses to store a cache
2205 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002206 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002207 so it does not need to be parsed every time BitBake is
2208 started.
2209 </para>
2210 </glossdef>
2211 </glossentry>
2212
2213 <glossentry id='var-CC'><glossterm>CC</glossterm>
2214 <info>
2215 CC[doc] = "Minimum command and arguments to run the C compiler."
2216 </info>
2217 <glossdef>
2218 <para role="glossdeffirst">
2219<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2220 The minimal command and arguments used to run the C
2221 compiler.
2222 </para>
2223 </glossdef>
2224 </glossentry>
2225
2226 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
2227 <info>
2228 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
2229 </info>
2230 <glossdef>
2231 <para role="glossdeffirst">
2232<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2233 Specifies the flags to pass to the C compiler.
2234 This variable is exported to an environment
2235 variable and thus made visible to the software being
2236 built during the compilation step.
2237 </para>
2238
2239 <para>
2240 Default initialization for <filename>CFLAGS</filename>
2241 varies depending on what is being built:
2242 <itemizedlist>
2243 <listitem><para>
2244 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2245 when building for the target
2246 </para></listitem>
2247 <listitem><para>
2248 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2249 when building for the build host (i.e.
2250 <filename>-native</filename>)
2251 </para></listitem>
2252 <listitem><para>
2253 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2254 when building for an SDK (i.e.
2255 <filename>nativesdk-</filename>)
2256 </para></listitem>
2257 </itemizedlist>
2258 </para>
2259 </glossdef>
2260 </glossentry>
2261
2262 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2263 <info>
2264 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2265 </info>
2266 <glossdef>
2267 <para role="glossdeffirst">
2268<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2269 An internal variable specifying the special class override
2270 that should currently apply (e.g. "class-target",
2271 "class-native", and so forth).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002272 The classes that use this variable (e.g.
2273 <link linkend='ref-classes-native'><filename>native</filename></link>,
2274 <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
2275 and so forth) set the variable to appropriate values.
2276 <note>
2277 <filename>CLASSOVERRIDE</filename> gets its default
2278 "class-target" value from the
2279 <filename>bitbake.conf</filename> file.
2280 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002281 </para>
2282
2283 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002284 As an example, the following override allows you to install
2285 extra files, but only when building for the target:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002286 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002287 do_install_append_class-target() {
2288 install my-extra-file ${D}${sysconfdir}
2289 }
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002290 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002291 Here is an example where <filename>FOO</filename>
2292 is set to "native" when building for the build host, and
2293 to "other" when not building for the build host:
2294 <literallayout class='monospaced'>
2295 FOO_class-native = "native"
2296 FOO = "other"
2297 </literallayout>
2298 The underlying mechanism behind
2299 <filename>CLASSOVERRIDE</filename> is simply that it is
2300 included in the default value of
2301 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002302 </para>
2303 </glossdef>
2304 </glossentry>
2305
2306 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2307 <info>
2308 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2309 </info>
2310 <glossdef>
2311 <para role="glossdeffirst">
2312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2313 If set to "1" within a recipe,
2314 <filename>CLEANBROKEN</filename> specifies that
2315 the <filename>make clean</filename> command does
2316 not work for the software being built.
2317 Consequently, the OpenEmbedded build system will not try
2318 to run <filename>make clean</filename> during the
2319 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2320 task, which is the default behavior.
2321 </para>
2322 </glossdef>
2323 </glossentry>
2324
2325 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2326 <info>
2327 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2328 </info>
2329 <glossdef>
2330 <para role="glossdeffirst">
2331<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2332 Provides a list of hardware features that are enabled in
2333 both
2334 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2335 and
2336 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2337 This select list of features contains features that make
2338 sense to be controlled both at the machine and distribution
2339 configuration level.
2340 For example, the "bluetooth" feature requires hardware
2341 support but should also be optional at the distribution
2342 level, in case the hardware supports Bluetooth but you
2343 do not ever intend to use it.
2344 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002345 </glossdef>
2346 </glossentry>
2347
2348 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2349 <info>
2350 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2351 </info>
2352 <glossdef>
2353 <para role="glossdeffirst">
2354<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2355 Points to <filename>meta/files/common-licenses</filename>
2356 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002357 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002358 which is where generic license files reside.
2359 </para>
2360 </glossdef>
2361 </glossentry>
2362
2363 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2364 <info>
2365 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."
2366 </info>
2367 <glossdef>
2368 <para role="glossdeffirst">
2369<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2370 A regular expression that resolves to one or more hosts
2371 (when the recipe is native) or one or more targets (when
2372 the recipe is non-native) with which a recipe is compatible.
2373 The regular expression is matched against
2374 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2375 You can use the variable to stop recipes from being built
2376 for classes of systems with which the recipes are not
2377 compatible.
2378 Stopping these builds is particularly useful with kernels.
2379 The variable also helps to increase parsing speed
2380 since the build system skips parsing recipes not
2381 compatible with the current system.
2382 </para>
2383 </glossdef>
2384 </glossentry>
2385
2386 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2387 <info>
2388 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2389 </info>
2390 <glossdef>
2391 <para role="glossdeffirst">
2392<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2393 A regular expression that resolves to one or more
2394 target machines with which a recipe is compatible.
2395 The regular expression is matched against
2396 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2397 You can use the variable to stop recipes from being built
2398 for machines with which the recipes are not compatible.
2399 Stopping these builds is particularly useful with kernels.
2400 The variable also helps to increase parsing speed
2401 since the build system skips parsing recipes not
2402 compatible with the current machine.
2403 </para>
2404 </glossdef>
2405 </glossentry>
2406
2407 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2408 <info>
2409 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2410 </info>
2411 <glossdef>
2412 <para role="glossdeffirst">
2413<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2414 Defines wildcards to match when installing a list of
2415 complementary packages for all the packages explicitly
2416 (or implicitly) installed in an image.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08002417 <note>
2418 The <filename>COMPLEMENTARY_GLOB</filename> variable
2419 uses Unix filename pattern matching
2420 (<ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>),
2421 which is similar to the Unix style pathname pattern
2422 expansion
2423 (<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>).
2424 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002425 The resulting list of complementary packages is associated
2426 with an item that can be added to
2427 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2428 An example usage of this is the "dev-pkgs" item that when
2429 added to <filename>IMAGE_FEATURES</filename> will
2430 install -dev packages (containing headers and other
2431 development files) for every package in the image.
2432 </para>
2433
2434 <para>
2435 To add a new feature item pointing to a wildcard, use a
2436 variable flag to specify the feature item name and
2437 use the value to specify the wildcard.
2438 Here is an example:
2439 <literallayout class='monospaced'>
2440 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2441 </literallayout>
2442 </para>
2443 </glossdef>
2444 </glossentry>
2445
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002446 <glossentry id='var-COMPONENTS_DIR'><glossterm>COMPONENTS_DIR</glossterm>
2447 <info>
2448 COMPONENTS_DIR[doc] = "Stores sysroot components for each recipe."
2449 </info>
2450 <glossdef>
2451 <para role="glossdeffirst">
2452<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2453 Stores sysroot components for each recipe.
2454 The OpenEmbedded build system uses
2455 <filename>COMPONENTS_DIR</filename> when constructing
2456 recipe-specific sysroots for other recipes.
2457 </para>
2458
2459 <para>
2460 The default is
2461 "<filename>${</filename><link linkend='var-STAGING_DIR'><filename>STAGING_DIR</filename></link><filename>}-components</filename>."
2462 (i.e. "<filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots-components</filename>").
2463 </para>
2464 </glossdef>
2465 </glossentry>
2466
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002467 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2468 <info>
2469 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2470 </info>
2471 <glossdef>
2472 <para role="glossdeffirst">
2473<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2474 Tracks the version of the local configuration file
2475 (i.e. <filename>local.conf</filename>).
2476 The value for <filename>CONF_VERSION</filename>
2477 increments each time <filename>build/conf/</filename>
2478 compatibility changes.
2479 </para>
2480 </glossdef>
2481 </glossentry>
2482
2483 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2484 <info>
2485 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2486 </info>
2487 <glossdef>
2488 <para role="glossdeffirst">
2489<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2490 Identifies editable or configurable files that are part of a package.
2491 If the Package Management System (PMS) is being used to update
2492 packages on the target system, it is possible that
2493 configuration files you have changed after the original installation
2494 and that you now want to remain unchanged are overwritten.
2495 In other words, editable files might exist in the package that you do not
2496 want reset as part of the package update process.
2497 You can use the <filename>CONFFILES</filename> variable to list the files in the
2498 package that you wish to prevent the PMS from overwriting during this update process.
2499 </para>
2500
2501 <para>
2502 To use the <filename>CONFFILES</filename> variable, provide a package name
2503 override that identifies the resulting package.
2504 Then, provide a space-separated list of files.
2505 Here is an example:
2506 <literallayout class='monospaced'>
2507 CONFFILES_${PN} += "${sysconfdir}/file1 \
2508 ${sysconfdir}/file2 ${sysconfdir}/file3"
2509 </literallayout>
2510 </para>
2511
2512 <para>
2513 A relationship exists between the <filename>CONFFILES</filename> and
2514 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2515 The files listed within <filename>CONFFILES</filename> must be a subset of
2516 the files listed within <filename>FILES</filename>.
2517 Because the configuration files you provide with <filename>CONFFILES</filename>
2518 are simply being identified so that the PMS will not overwrite them,
2519 it makes sense that
2520 the files must already be included as part of the package through the
2521 <filename>FILES</filename> variable.
2522 </para>
2523
2524 <note>
2525 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2526 it is good practice to use appropriate path variables.
2527 For example, <filename>${sysconfdir}</filename> rather than
2528 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2529 than <filename>/usr/bin</filename>.
2530 You can find a list of these variables at the top of the
2531 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002532 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002533 </note>
2534 </glossdef>
2535 </glossentry>
2536
2537 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2538 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002539 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 -05002540 </info>
2541 <glossdef>
2542 <para role="glossdeffirst">
2543<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002544 Identifies the initial RAM filesystem (initramfs) source
2545 files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002546 The OpenEmbedded build system receives and uses
2547 this kernel Kconfig variable as an environment variable.
2548 By default, the variable is set to null ("").
2549 </para>
2550
2551 <para>
2552 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2553 either a single cpio archive with a
2554 <filename>.cpio</filename> suffix or a
2555 space-separated list of directories and files for building
2556 the initramfs image.
2557 A cpio archive should contain a filesystem archive
2558 to be used as an initramfs image.
2559 Directories should contain a filesystem layout to be
2560 included in the initramfs image.
2561 Files should contain entries according to the format
2562 described by the
2563 <filename>usr/gen_init_cpio</filename> program in the
2564 kernel tree.
2565 </para>
2566
2567 <para>
2568 If you specify multiple directories and files, the
2569 initramfs image will be the aggregate of all of them.
2570 </para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002571
2572 <para>
2573 For information on creating an initramfs, see the
2574 "<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 -05002575 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002576 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002577 </glossdef>
2578 </glossentry>
2579
2580 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2581 <info>
2582 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."
2583 </info>
2584 <glossdef>
2585 <para role="glossdeffirst">
2586<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2587 A list of files that contains <filename>autoconf</filename> test results relevant
2588 to the current build.
2589 This variable is used by the Autotools utilities when running
2590 <filename>configure</filename>.
2591 </para>
2592 </glossdef>
2593 </glossentry>
2594
2595 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2596 <info>
2597 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2598 </info>
2599 <glossdef>
2600 <para role="glossdeffirst">
2601<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2602 The minimal arguments for GNU configure.
2603 </para>
2604 </glossdef>
2605 </glossentry>
2606
2607 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2608 <info>
2609 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."
2610 </info>
2611 <glossdef>
2612 <para role="glossdeffirst">
2613<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2614 When inheriting the
2615 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2616 class, this
2617 variable identifies distribution features that would
2618 be in conflict should the recipe
2619 be built.
2620 In other words, if the
2621 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2622 lists a feature that also appears in
2623 <filename>DISTRO_FEATURES</filename> within the
2624 current configuration, an error occurs and the
2625 build stops.
2626 </para>
2627 </glossdef>
2628 </glossentry>
2629
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002630 <glossentry id='var-COPYLEFT_LICENSE_EXCLUDE'><glossterm>COPYLEFT_LICENSE_EXCLUDE</glossterm>
2631 <info>
2632 COPYLEFT_LICENSE_EXCLUDE[doc] = "Licenses to exclude in the source archived by the archiver class."
2633 </info>
2634 <glossdef>
2635 <para role="glossdeffirst">
2636<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2637 A space-separated list of licenses to exclude from the
2638 source archived by the
2639 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2640 class.
2641 In other words, if a license in a recipe's
2642 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2643 value is in the value of
2644 <filename>COPYLEFT_LICENSE_EXCLUDE</filename>, then its
2645 source is not archived by the class.
2646 <note>
2647 The <filename>COPYLEFT_LICENSE_EXCLUDE</filename>
2648 variable takes precedence over the
2649 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2650 variable.
2651 </note>
2652 The default value, which is "CLOSED Proprietary", for
2653 <filename>COPYLEFT_LICENSE_EXCLUDE</filename> is set
2654 by the
2655 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2656 class, which is inherited by the
2657 <filename>archiver</filename> class.
2658 </para>
2659 </glossdef>
2660 </glossentry>
2661
2662 <glossentry id='var-COPYLEFT_LICENSE_INCLUDE'><glossterm>COPYLEFT_LICENSE_INCLUDE</glossterm>
2663 <info>
2664 COPYLEFT_LICENSE_INCLUDE[doc] = "Licenses to include in the source archived by the archiver class."
2665 </info>
2666 <glossdef>
2667 <para role="glossdeffirst">
2668<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2669 A space-separated list of licenses to include in the
2670 source archived by the
2671 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2672 class.
2673 In other words, if a license in a recipe's
2674 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2675 value is in the value of
2676 <filename>COPYLEFT_LICENSE_INCLUDE</filename>, then its
2677 source is archived by the class.
2678 </para>
2679
2680 <para>
2681 The default value is set by the
2682 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2683 class, which is inherited by the
2684 <filename>archiver</filename> class.
2685 The default value includes "GPL*", "LGPL*", and "AGPL*".
2686 </para>
2687 </glossdef>
2688 </glossentry>
2689
2690 <glossentry id='var-COPYLEFT_PN_EXCLUDE'><glossterm>COPYLEFT_PN_EXCLUDE</glossterm>
2691 <info>
2692 COPYLEFT_PN_EXCLUDE[doc] = "Recipes to exclude in the source archived by the archiver class."
2693 </info>
2694 <glossdef>
2695 <para role="glossdeffirst">
2696<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2697 A list of recipes to exclude in the source archived
2698 by the
2699 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2700 class.
2701 The <filename>COPYLEFT_PN_EXCLUDE</filename> variable
2702 overrides the license inclusion and exclusion caused
2703 through the
2704 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2705 and
2706 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2707 variables, respectively.
2708 </para>
2709
2710 <para>
2711 The default value, which is "" indicating to not explicitly
2712 exclude any recipes by name, for
2713 <filename>COPYLEFT_PN_EXCLUDE</filename> is set
2714 by the
2715 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2716 class, which is inherited by the
2717 <filename>archiver</filename> class.
2718 </para>
2719 </glossdef>
2720 </glossentry>
2721
2722 <glossentry id='var-COPYLEFT_PN_INCLUDE'><glossterm>COPYLEFT_PN_INCLUDE</glossterm>
2723 <info>
2724 COPYLEFT_PN_INCLUDE[doc] = "Recipes to include in the source archived by the archiver class."
2725 </info>
2726 <glossdef>
2727 <para role="glossdeffirst">
2728<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2729 A list of recipes to include in the source archived
2730 by the
2731 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2732 class.
2733 The <filename>COPYLEFT_PN_INCLUDE</filename> variable
2734 overrides the license inclusion and exclusion caused
2735 through the
2736 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2737 and
2738 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2739 variables, respectively.
2740 </para>
2741
2742 <para>
2743 The default value, which is "" indicating to not explicitly
2744 include any recipes by name, for
2745 <filename>COPYLEFT_PN_INCLUDE</filename> is set
2746 by the
2747 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2748 class, which is inherited by the
2749 <filename>archiver</filename> class.
2750 </para>
2751 </glossdef>
2752 </glossentry>
2753
2754 <glossentry id='var-COPYLEFT_RECIPE_TYPES'><glossterm>COPYLEFT_RECIPE_TYPES</glossterm>
2755 <info>
2756 COPYLEFT_RECIPE_TYPES[doc] = "Recipe types to include in the source archived by the archiver class."
2757 </info>
2758 <glossdef>
2759 <para role="glossdeffirst">
2760<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2761 A space-separated list of recipe types to include
2762 in the source archived by the
2763 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2764 class.
2765 Recipe types are <filename>target</filename>,
2766 <filename>native</filename>,
2767 <filename>nativesdk</filename>,
2768 <filename>cross</filename>,
2769 <filename>crosssdk</filename>, and
2770 <filename>cross-canadian</filename>.
2771 </para>
2772
2773 <para>
2774 The default value, which is "target*", for
2775 <filename>COPYLEFT_RECIPE_TYPES</filename> is set
2776 by the
2777 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2778 class, which is inherited by the
2779 <filename>archiver</filename> class.
2780 </para>
2781 </glossdef>
2782 </glossentry>
2783
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002784 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2785 <info>
2786 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."
2787 </info>
2788 <glossdef>
2789 <para role="glossdeffirst">
2790<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2791 If set to "1" along with the
2792 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2793 variable, the OpenEmbedded build system copies
2794 into the image the license files, which are located in
2795 <filename>/usr/share/common-licenses</filename>,
2796 for each package.
2797 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002798 in directories within the image itself during build time.
2799 <note>
2800 The <filename>COPY_LIC_DIRS</filename> does not
2801 offer a path for adding licenses for newly installed
2802 packages to an image, which might be most suitable
2803 for read-only filesystems that cannot be upgraded.
2804 See the
2805 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2806 variable for additional information.
2807 You can also reference the
2808 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002809 section in the Yocto Project Development Tasks Manual
2810 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002811 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002812 </para>
2813 </glossdef>
2814 </glossentry>
2815
2816 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2817 <info>
2818 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."
2819 </info>
2820 <glossdef>
2821 <para role="glossdeffirst">
2822<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2823 If set to "1", the OpenEmbedded build system copies
2824 the license manifest for the image to
2825 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002826 within the image itself during build time.
2827 <note>
2828 The <filename>COPY_LIC_MANIFEST</filename> does not
2829 offer a path for adding licenses for newly installed
2830 packages to an image, which might be most suitable
2831 for read-only filesystems that cannot be upgraded.
2832 See the
2833 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2834 variable for additional information.
2835 You can also reference the
2836 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002837 section in the Yocto Project Development Tasks Manual
2838 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002839 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002840 </para>
2841 </glossdef>
2842 </glossentry>
2843
2844 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2845 <info>
2846 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."
2847 </info>
2848 <glossdef>
2849 <para role="glossdeffirst">
2850<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2851 Specifies the list of packages to be added to the image.
2852 You should only set this variable in the
2853 <filename>local.conf</filename> configuration file found
2854 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002855 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002856 </para>
2857
2858 <para>
2859 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2860 </para>
2861 </glossdef>
2862 </glossentry>
2863
2864 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2865 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002866 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. meta)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002867 </info>
2868 <glossdef>
2869 <para role="glossdeffirst">
2870<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04002871 Specifies the parent directory of the OpenEmbedded-Core
2872 Metadata layer (i.e. <filename>meta</filename>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002873 </para>
2874
2875 <para>
2876 It is an important distinction that
2877 <filename>COREBASE</filename> points to the parent of this
2878 layer and not the layer itself.
2879 Consider an example where you have cloned the Poky Git
2880 repository and retained the <filename>poky</filename>
2881 name for your local copy of the repository.
2882 In this case, <filename>COREBASE</filename> points to
2883 the <filename>poky</filename> folder because it is the
2884 parent directory of the <filename>poky/meta</filename>
2885 layer.
2886 </para>
2887 </glossdef>
2888 </glossentry>
2889
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002890 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2891 <info>
2892 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2893 </info>
2894 <glossdef>
2895 <para role="glossdeffirst">
2896<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2897 Lists files from the
2898 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2899 directory that should be copied other than the layers
2900 listed in the <filename>bblayers.conf</filename> file.
2901 The <filename>COREBASE_FILES</filename> variable exists
2902 for the purpose of copying metadata from the
2903 OpenEmbedded build system into the extensible
2904 SDK.
2905 </para>
2906
2907 <para>
2908 Explicitly listing files in <filename>COREBASE</filename>
2909 is needed because it typically contains build
2910 directories and other files that should not normally
2911 be copied into the extensible SDK.
2912 Consequently, the value of
2913 <filename>COREBASE_FILES</filename> is used in order to
2914 only copy the files that are actually needed.
2915 </para>
2916 </glossdef>
2917 </glossentry>
2918
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002919 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2920 <info>
2921 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2922 </info>
2923 <glossdef>
2924 <para role="glossdeffirst">
2925<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2926 The minimal command and arguments used to run the C
2927 preprocessor.
2928 </para>
2929 </glossdef>
2930 </glossentry>
2931
2932 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2933 <info>
2934 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2935 </info>
2936 <glossdef>
2937 <para role="glossdeffirst">
2938<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2939 Specifies the flags to pass to the C pre-processor
2940 (i.e. to both the C and the C++ compilers).
2941 This variable is exported to an environment
2942 variable and thus made visible to the software being
2943 built during the compilation step.
2944 </para>
2945
2946 <para>
2947 Default initialization for <filename>CPPFLAGS</filename>
2948 varies depending on what is being built:
2949 <itemizedlist>
2950 <listitem><para>
2951 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2952 when building for the target
2953 </para></listitem>
2954 <listitem><para>
2955 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2956 when building for the build host (i.e.
2957 <filename>-native</filename>)
2958 </para></listitem>
2959 <listitem><para>
2960 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2961 when building for an SDK (i.e.
2962 <filename>nativesdk-</filename>)
2963 </para></listitem>
2964 </itemizedlist>
2965 </para>
2966 </glossdef>
2967 </glossentry>
2968
2969 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2970 <info>
2971 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2972 </info>
2973 <glossdef>
2974 <para role="glossdeffirst">
2975<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2976 The toolchain binary prefix for the target tools.
2977 The <filename>CROSS_COMPILE</filename> variable is the
2978 same as the
2979 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2980 variable.
2981 <note>
2982 The OpenEmbedded build system sets the
2983 <filename>CROSS_COMPILE</filename> variable only in
2984 certain contexts (e.g. when building for kernel
2985 and kernel module recipes).
2986 </note>
2987 </para>
2988 </glossdef>
2989 </glossentry>
2990
2991 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2992 <info>
2993 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2994 </info>
2995 <glossdef>
2996 <para role="glossdeffirst">
2997<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2998 The directory in which files checked out under the
2999 CVS system are stored.
3000 </para>
3001 </glossdef>
3002 </glossentry>
3003
3004 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
3005 <info>
3006 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
3007 </info>
3008 <glossdef>
3009 <para role="glossdeffirst">
3010<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3011 The minimal command and arguments used to run the C++
3012 compiler.
3013 </para>
3014 </glossdef>
3015 </glossentry>
3016
3017 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
3018 <info>
3019 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
3020 </info>
3021 <glossdef>
3022 <para role="glossdeffirst">
3023<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3024 Specifies the flags to pass to the C++ compiler.
3025 This variable is exported to an environment
3026 variable and thus made visible to the software being
3027 built during the compilation step.
3028 </para>
3029
3030 <para>
3031 Default initialization for <filename>CXXFLAGS</filename>
3032 varies depending on what is being built:
3033 <itemizedlist>
3034 <listitem><para>
3035 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
3036 when building for the target
3037 </para></listitem>
3038 <listitem><para>
3039 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
3040 when building for the build host (i.e.
3041 <filename>-native</filename>)
3042 </para></listitem>
3043 <listitem><para>
3044 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
3045 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003046 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003047 </para></listitem>
3048 </itemizedlist>
3049 </para>
3050 </glossdef>
3051 </glossentry>
3052
3053 </glossdiv>
3054
3055 <glossdiv id='var-glossary-d'><title>D</title>
3056
3057 <glossentry id='var-D'><glossterm>D</glossterm>
3058 <info>
3059 D[doc] = "The destination directory."
3060 </info>
3061 <glossdef>
3062 <para role="glossdeffirst">
3063<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3064 The destination directory.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003065 The location in the
3066 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003067 where components are installed by the
3068 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
3069 task.
3070 This location defaults to:
3071 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003072 ${WORKDIR}/image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003073 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003074 <note><title>Caution</title>
3075 Tasks that read from or write to this directory should
3076 run under
Brad Bishop316dfdd2018-06-25 12:45:53 -04003077 <ulink url='&YOCTO_DOCS_OM_URL;#fakeroot-and-pseudo'>fakeroot</ulink>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003078 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003079 </para>
3080 </glossdef>
3081 </glossentry>
3082
3083 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
3084 <info>
3085 DATE[doc] = "The date the build was started using YMD format."
3086 </info>
3087 <glossdef>
3088 <para role="glossdeffirst">
3089<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3090 The date the build was started.
3091 Dates appear using the year, month, and day (YMD) format
3092 (e.g. "20150209" for February 9th, 2015).
3093 </para>
3094 </glossdef>
3095 </glossentry>
3096
3097 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
3098 <info>
3099 DATETIME[doc] = "The date and time the build was started."
3100 </info>
3101 <glossdef>
3102 <para role="glossdeffirst">
3103<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3104 The date and time on which the current build started.
3105 The format is suitable for timestamps.
3106 </para>
3107 </glossdef>
3108 </glossentry>
3109
3110 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
3111 <info>
3112 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
3113 </info>
3114 <glossdef>
3115 <para role="glossdeffirst">
3116<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3117 When the
3118 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3119 class is inherited, which is the default behavior,
3120 <filename>DEBIAN_NOAUTONAME</filename> specifies a
3121 particular package should not be renamed according to
3122 Debian library package naming.
3123 You must use the package name as an override when you
3124 set this variable.
3125 Here is an example from the <filename>fontconfig</filename>
3126 recipe:
3127 <literallayout class='monospaced'>
3128 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
3129 </literallayout>
3130 </para>
3131 </glossdef>
3132 </glossentry>
3133
3134 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
3135 <info>
3136 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
3137 </info>
3138 <glossdef>
3139 <para role="glossdeffirst">
3140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3141 When the
3142 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3143 class is inherited, which is the default behavior,
3144 <filename>DEBIANNAME</filename> allows you to override the
3145 library name for an individual package.
3146 Overriding the library name in these cases is rare.
3147 You must use the package name as an override when you
3148 set this variable.
3149 Here is an example from the <filename>dbus</filename>
3150 recipe:
3151 <literallayout class='monospaced'>
3152 DEBIANNAME_${PN} = "dbus-1"
3153 </literallayout>
3154 </para>
3155 </glossdef>
3156 </glossentry>
3157
3158 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
3159 <info>
3160 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
3161 </info>
3162 <glossdef>
3163 <para role="glossdeffirst">
3164<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3165 Specifies to build packages with debugging information.
3166 This influences the value of the
3167 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
3168 variable.
3169 </para>
3170 </glossdef>
3171 </glossentry>
3172
3173 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
3174 <info>
3175 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'."
3176 </info>
3177 <glossdef>
3178 <para role="glossdeffirst">
3179<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3180 The options to pass in
3181 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
3182 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
3183 a system for debugging.
3184 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
3185 </para>
3186 </glossdef>
3187 </glossentry>
3188
3189 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
3190 <info>
3191 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
3192 </info>
3193 <glossdef>
3194 <para role="glossdeffirst">
3195<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3196 Specifies a weak bias for recipe selection priority.
3197 </para>
3198
3199 <para>
3200 The most common usage of this is variable is to set
3201 it to "-1" within a recipe for a development version of a
3202 piece of software.
3203 Using the variable in this way causes the stable version
3204 of the recipe to build by default in the absence of
3205 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
3206 being used to build the development version.
3207 </para>
3208
3209 <note>
3210 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
3211 is weak and is overridden by
3212 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
3213 if that variable is different between two layers
3214 that contain different versions of the same recipe.
3215 </note>
3216 </glossdef>
3217 </glossentry>
3218
3219 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
3220 <info>
3221 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
3222 </info>
3223 <glossdef>
3224 <para role="glossdeffirst">
3225<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3226 The default CPU and Application Binary Interface (ABI)
3227 tunings (i.e. the "tune") used by the OpenEmbedded build
3228 system.
3229 The <filename>DEFAULTTUNE</filename> helps define
3230 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
3231 </para>
3232
3233 <para>
3234 The default tune is either implicitly or explicitly set
3235 by the machine
3236 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
3237 However, you can override the setting using available tunes
3238 as defined with
3239 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
3240 </para>
3241 </glossdef>
3242 </glossentry>
3243
3244 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
3245 <info>
3246 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
3247 </info>
3248 <glossdef>
3249 <para role="glossdeffirst">
3250<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003251 Lists a recipe's build-time dependencies.
3252 These are dependencies on other recipes whose
3253 contents (e.g. headers and shared libraries) are needed
3254 by the recipe at build time.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003255 </para>
3256
3257 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003258 As an example, consider a recipe <filename>foo</filename>
3259 that contains the following assignment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003260 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003261 DEPENDS = "bar"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003262 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003263 The practical effect of the previous assignment is that
3264 all files installed by bar will be available in the
3265 appropriate staging sysroot, given by the
3266 <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
3267 variables, by the time the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003268 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003269 task for <filename>foo</filename> runs.
3270 This mechanism is implemented by having
3271 <filename>do_configure</filename> depend on the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003272 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003273 task of each recipe listed in <filename>DEPENDS</filename>,
3274 through a
3275 <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
3276 declaration in the
3277 <link linkend='ref-classes-base'><filename>base</filename></link>
3278 class.
3279 <note>
3280 It seldom is necessary to reference, for example,
3281 <filename>STAGING_DIR_HOST</filename> explicitly.
3282 The standard classes and build-related variables are
3283 configured to automatically use the appropriate staging
3284 sysroots.
3285 </note>
3286 As another example, <filename>DEPENDS</filename> can also
3287 be used to add utilities that run on the build machine
3288 during the build.
3289 For example, a recipe that makes use of a code generator
3290 built by the recipe <filename>codegen</filename> might have
3291 the following:
3292 <literallayout class='monospaced'>
3293 DEPENDS = "codegen-native"
3294 </literallayout>
3295 For more information, see the
3296 <link linkend='ref-classes-native'><filename>native</filename></link>
3297 class and the
3298 <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
3299 variable.
3300 <note>
3301 <title>Notes</title>
3302 <itemizedlist>
3303 <listitem><para>
3304 <filename>DEPENDS</filename> is a list of
3305 recipe names.
3306 Or, to be more precise, it is a list of
3307 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
3308 names, which usually match recipe names.
3309 Putting a package name such as "foo-dev" in
3310 <filename>DEPENDS</filename> does not make
3311 sense.
3312 Use "foo" instead, as this will put files
3313 from all the packages that make up
3314 <filename>foo</filename>, which includes
3315 those from <filename>foo-dev</filename>, into
3316 the sysroot.
3317 </para></listitem>
3318 <listitem><para>
3319 One recipe having another recipe in
3320 <filename>DEPENDS</filename> does not by itself
3321 add any runtime dependencies between the
3322 packages produced by the two recipes.
3323 However, as explained in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003324 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
3325 section in the Yocto Project Overview and
3326 Concepts Manual, runtime dependencies will
3327 often be added automatically, meaning
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003328 <filename>DEPENDS</filename> alone is
3329 sufficient for most recipes.
3330 </para></listitem>
3331 <listitem><para>
3332 Counterintuitively,
3333 <filename>DEPENDS</filename> is often necessary
3334 even for recipes that install precompiled
3335 components.
3336 For example, if <filename>libfoo</filename>
3337 is a precompiled library that links against
3338 <filename>libbar</filename>, then
3339 linking against <filename>libfoo</filename>
3340 requires both <filename>libfoo</filename>
3341 and <filename>libbar</filename> to be available
3342 in the sysroot.
3343 Without a <filename>DEPENDS</filename> from the
3344 recipe that installs <filename>libfoo</filename>
3345 to the recipe that installs
3346 <filename>libbar</filename>, other recipes might
3347 fail to link against
3348 <filename>libfoo</filename>.
3349 </para></listitem>
3350 </itemizedlist>
3351 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003352 </para>
3353
3354 <para>
3355 For information on runtime dependencies, see the
3356 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
3357 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003358 You can also see the
3359 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
3360 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
3361 sections in the BitBake User Manual for additional
3362 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003363 </para>
3364 </glossdef>
3365 </glossentry>
3366
3367 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
3368 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003369 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 -05003370 </info>
3371 <glossdef>
3372 <para role="glossdeffirst">
3373<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3374 Points to the general area that the OpenEmbedded build
Brad Bishop316dfdd2018-06-25 12:45:53 -04003375 system uses to place images, packages, SDKs, and other output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003376 files that are ready to be used outside of the build system.
3377 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003378 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003379 as <filename>${TMPDIR}/deploy</filename>.
3380 </para>
3381
3382 <para>
3383 For more information on the structure of the Build
3384 Directory, see
3385 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3386 section.
3387 For more detail on the contents of the
3388 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003389 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>",
3390 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>",
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003391 and
Brad Bishop316dfdd2018-06-25 12:45:53 -04003392 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3393 sections all in the Yocto Project Overview and Concepts
3394 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003395 </para>
3396 </glossdef>
3397 </glossentry>
3398
3399 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
3400 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003401 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 -05003402 </info>
3403 <glossdef>
3404 <para role="glossdeffirst">
3405<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3406 Points to the area that the OpenEmbedded build system uses
3407 to place Debian packages that are ready to be used outside
3408 of the build system.
3409 This variable applies only when
3410 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3411 contains "package_deb".
3412 </para>
3413
3414 <para>
3415 The BitBake configuration file initially defines the
3416 <filename>DEPLOY_DIR_DEB</filename> variable as a
3417 sub-folder of
3418 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3419 <literallayout class='monospaced'>
3420 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
3421 </literallayout>
3422 </para>
3423
3424 <para>
3425 The
3426 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
3427 class uses the
3428 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
3429 the
3430 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
3431 task writes Debian packages into the appropriate folder.
3432 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003433 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3434 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003435 </para>
3436 </glossdef>
3437 </glossentry>
3438
3439 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
3440 <info>
3441 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."
3442 </info>
3443 <glossdef>
3444 <para role="glossdeffirst">
3445<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3446 Points to the area that the OpenEmbedded build system uses
3447 to place images and other associated output files that are
3448 ready to be deployed onto the target machine.
3449 The directory is machine-specific as it contains the
3450 <filename>${MACHINE}</filename> name.
3451 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003452 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003453 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
3454 </para>
3455
3456 <para>
3457 For more information on the structure of the Build
3458 Directory, see
3459 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3460 section.
3461 For more detail on the contents of the
3462 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003463 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>"
3464 and
3465 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3466 sections both in the Yocto Project Overview and Concepts
3467 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003468 </para>
3469 </glossdef>
3470 </glossentry>
3471
3472 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
3473 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003474 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 -05003475 </info>
3476 <glossdef>
3477 <para role="glossdeffirst">
3478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3479 Points to the area that the OpenEmbedded build system uses
3480 to place IPK packages that are ready to be used outside of
3481 the build system.
3482 This variable applies only when
3483 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3484 contains "package_ipk".
3485 </para>
3486
3487 <para>
3488 The BitBake configuration file initially defines this
3489 variable as a sub-folder of
3490 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3491 <literallayout class='monospaced'>
3492 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
3493 </literallayout>
3494 </para>
3495
3496 <para>
3497 The
3498 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
3499 class uses the
3500 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
3501 the
3502 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
3503 task writes IPK packages into the appropriate folder.
3504 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003505 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3506 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003507 </para>
3508 </glossdef>
3509 </glossentry>
3510
3511 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
3512 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003513 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 -05003514 </info>
3515 <glossdef>
3516 <para role="glossdeffirst">
3517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3518 Points to the area that the OpenEmbedded build system uses
3519 to place RPM packages that are ready to be used outside
3520 of the build system.
3521 This variable applies only when
3522 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3523 contains "package_rpm".
3524 </para>
3525
3526 <para>
3527 The BitBake configuration file initially defines this
3528 variable as a sub-folder of
3529 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3530 <literallayout class='monospaced'>
3531 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
3532 </literallayout>
3533 </para>
3534
3535 <para>
3536 The
3537 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
3538 class uses the
3539 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
3540 the
3541 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
3542 task writes RPM packages into the appropriate folder.
3543 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003544 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3545 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003546 </para>
3547 </glossdef>
3548 </glossentry>
3549
3550 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
3551 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003552 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 -05003553 </info>
3554 <glossdef>
3555 <para role="glossdeffirst">
3556<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3557 Points to the area that the OpenEmbedded build system uses
3558 to place tarballs that are ready to be used outside of
3559 the build system.
3560 This variable applies only when
3561 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3562 contains "package_tar".
3563 </para>
3564
3565 <para>
3566 The BitBake configuration file initially defines this
3567 variable as a sub-folder of
3568 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3569 <literallayout class='monospaced'>
3570 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
3571 </literallayout>
3572 </para>
3573
3574 <para>
3575 The
3576 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
3577 class uses the
3578 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
3579 the
3580 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
3581 task writes TAR packages into the appropriate folder.
3582 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003583 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3584 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003585 </para>
3586 </glossdef>
3587 </glossentry>
3588
3589 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3590 <info>
3591 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3592 </info>
3593 <glossdef>
3594 <para role="glossdeffirst">
3595<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3596 When inheriting the
3597 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3598 class, the <filename>DEPLOYDIR</filename> points to a
3599 temporary work area for deployed files that is set in the
3600 <filename>deploy</filename> class as follows:
3601 <literallayout class='monospaced'>
3602 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3603 </literallayout>
3604 </para>
3605
3606 <para>
3607 Recipes inheriting the <filename>deploy</filename> class
3608 should copy files to be deployed into
3609 <filename>DEPLOYDIR</filename>, and the class will take
3610 care of copying them into
3611 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3612 afterwards.
3613 </para>
3614 </glossdef>
3615 </glossentry>
3616
3617 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3618 <info>
3619 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3620 </info>
3621 <glossdef>
3622 <para role="glossdeffirst">
3623<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3624 The package description used by package managers.
3625 If not set, <filename>DESCRIPTION</filename> takes
3626 the value of the
3627 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3628 variable.
3629 </para>
3630 </glossdef>
3631 </glossentry>
3632
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003633 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3634 <info>
3635 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3636 </info>
3637 <glossdef>
3638 <para role="glossdeffirst">
3639<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3640 The short name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003641 For information on the long name of the distribution, see
3642 the
3643 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
3644 variable.
3645 </para>
3646
3647 <para>
3648 The <filename>DISTRO</filename> variable corresponds to a
3649 distribution configuration file whose root name is the
3650 same as the variable's argument and whose filename
3651 extension is <filename>.conf</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003652 For example, the distribution configuration file for the
3653 Poky distribution is named <filename>poky.conf</filename>
3654 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003655 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003656 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003657 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003658 </para>
3659
3660 <para>
3661 Within that <filename>poky.conf</filename> file, the
3662 <filename>DISTRO</filename> variable is set as follows:
3663 <literallayout class='monospaced'>
3664 DISTRO = "poky"
3665 </literallayout>
3666 </para>
3667
3668 <para>
3669 Distribution configuration files are located in a
3670 <filename>conf/distro</filename> directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003671 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003672 that contains the distribution configuration.
3673 The value for <filename>DISTRO</filename> must not contain
3674 spaces, and is typically all lower-case.
3675 <note>
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003676 If the <filename>DISTRO</filename> variable is blank,
3677 a set of default configurations are used, which are
3678 specified within
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003679 <filename>meta/conf/distro/defaultsetup.conf</filename>
3680 also in the Source Directory.
3681 </note>
3682 </para>
3683 </glossdef>
3684 </glossentry>
3685
3686 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3687 <info>
3688 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3689 </info>
3690 <glossdef>
3691 <para role="glossdeffirst">
3692<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3693 Specifies a codename for the distribution being built.
3694 </para>
3695 </glossdef>
3696 </glossentry>
3697
3698 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3699 <info>
3700 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."
3701 </info>
3702 <glossdef>
3703 <para role="glossdeffirst">
3704<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3705 Specifies a list of distro-specific packages to add to all images.
3706 This variable takes affect through
3707 <filename>packagegroup-base</filename> so the
3708 variable only really applies to the more full-featured
3709 images that include <filename>packagegroup-base</filename>.
3710 You can use this variable to keep distro policy out of
3711 generic images.
3712 As with all other distro variables, you set this variable
3713 in the distro <filename>.conf</filename> file.
3714 </para>
3715 </glossdef>
3716 </glossentry>
3717
3718 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3719 <info>
3720 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."
3721 </info>
3722 <glossdef>
3723 <para role="glossdeffirst">
3724<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3725 Specifies a list of distro-specific packages to add to all images
3726 if the packages exist.
3727 The packages might not exist or be empty (e.g. kernel modules).
3728 The list of packages are automatically installed but you can
3729 remove them.
3730 </para>
3731 </glossdef>
3732 </glossentry>
3733
3734 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3735 <info>
3736 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3737 </info>
3738 <glossdef>
3739 <para role="glossdeffirst">
3740<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3741 The software support you want in your distribution for
3742 various features.
3743 You define your distribution features in the distribution
3744 configuration file.
3745 </para>
3746
3747 <para>
3748 In most cases, the presence or absence of a feature in
3749 <filename>DISTRO_FEATURES</filename> is translated to the
3750 appropriate option supplied to the configure script
3751 during the
3752 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3753 task for recipes that optionally support the feature.
3754 For example, specifying "x11" in
3755 <filename>DISTRO_FEATURES</filename>, causes
3756 every piece of software built for the target that can
3757 optionally support X11 to have its X11 support enabled.
3758 </para>
3759
3760 <para>
3761 Two more examples are Bluetooth and NFS support.
3762 For a more complete list of features that ships with the
3763 Yocto Project and that you can provide with this variable,
3764 see the
3765 "<link linkend='ref-features-distro'>Distro Features</link>"
3766 section.
3767 </para>
3768 </glossdef>
3769 </glossentry>
3770
3771 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3772 <info>
3773 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."
3774 </info>
3775 <glossdef>
3776 <para role="glossdeffirst">
3777<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3778 Features to be added to
3779 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3780 if not also present in
3781 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3782 </para>
3783
3784 <para>
3785 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3786 It is not intended to be user-configurable.
3787 It is best to just reference the variable to see which distro features are
3788 being backfilled for all distro configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04003789 See the <link linkend='ref-features-backfill'>Feature Backfilling</link> section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003790 more information.
3791 </para>
3792 </glossdef>
3793 </glossentry>
3794
3795 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3796 <info>
3797 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3798 </info>
3799 <glossdef>
3800 <para role="glossdeffirst">
3801<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3802 Features from
3803 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3804 that should not be backfilled (i.e. added to
3805 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3806 during the build.
3807 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3808 more information.
3809 </para>
3810 </glossdef>
3811 </glossentry>
3812
3813 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3814 <info>
3815 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3816 </info>
3817 <glossdef>
3818 <para role="glossdeffirst">
3819<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3820 A convenience variable that gives you the default
3821 list of distro features with the exception of any
3822 features specific to the C library
3823 (<filename>libc</filename>).
3824 </para>
3825
3826 <para>
3827 When creating a custom distribution, you might find it
3828 useful to be able to reuse the default
3829 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3830 options without the need to write out the full set.
3831 Here is an example that uses
3832 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3833 custom distro configuration file:
3834 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -04003835 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003836 </literallayout>
3837 </para>
3838 </glossdef>
3839 </glossentry>
3840
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003841 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVE'><glossterm>DISTRO_FEATURES_FILTER_NATIVE</glossterm>
3842 <info>
3843 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."
3844 </info>
3845 <glossdef>
3846 <para role="glossdeffirst">
3847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3848 Specifies a list of features that if present in
3849 the target
3850 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3851 value should be included in
3852 <filename>DISTRO_FEATURES</filename> when building native
3853 recipes.
3854 This variable is used in addition to the features
3855 filtered using the
3856 <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
3857 variable.
3858 </para>
3859 </glossdef>
3860 </glossentry>
3861
3862 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVESDK'><glossterm>DISTRO_FEATURES_FILTER_NATIVESDK</glossterm>
3863 <info>
3864 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."
3865 </info>
3866 <glossdef>
3867 <para role="glossdeffirst">
3868<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3869 Specifies a list of features that if present in the target
3870 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3871 value should be included in
3872 <filename>DISTRO_FEATURES</filename> when building
3873 nativesdk recipes.
3874 This variable is used in addition to the features
3875 filtered using the
3876 <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
3877 variable.
3878 </para>
3879 </glossdef>
3880 </glossentry>
3881
Brad Bishop19323692019-04-05 15:28:33 -04003882<!--
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003883 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3884 <info>
3885 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3886 </info>
3887 <glossdef>
3888 <para role="glossdeffirst">
Brad Bishop19323692019-04-05 15:28:33 -04003889 <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" />
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003890 A convenience variable that specifies the list of distro
3891 features that are specific to the C library
3892 (<filename>libc</filename>).
3893 Typically, these features are prefixed with "libc-" and
3894 control which features are enabled at during the build
3895 within the C library itself.
3896 </para>
3897 </glossdef>
3898 </glossentry>
Brad Bishop19323692019-04-05 15:28:33 -04003899-->
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003900
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003901 <glossentry id='var-DISTRO_FEATURES_NATIVE'><glossterm>DISTRO_FEATURES_NATIVE</glossterm>
3902 <info>
3903 DISTRO_FEATURES_NATIVE[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes."
3904 </info>
3905 <glossdef>
3906 <para role="glossdeffirst">
3907<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3908 Specifies a list of features that should be included in
3909 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3910 when building native recipes.
3911 This variable is used in addition to the features
3912 filtered using the
3913 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>
3914 variable.
3915 </para>
3916 </glossdef>
3917 </glossentry>
3918
3919 <glossentry id='var-DISTRO_FEATURES_NATIVESDK'><glossterm>DISTRO_FEATURES_NATIVESDK</glossterm>
3920 <info>
3921 DISTRO_FEATURES_NATIVESDK[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes."
3922 </info>
3923 <glossdef>
3924 <para role="glossdeffirst">
3925<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3926 Specifies a list of features that should be included in
3927 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3928 when building nativesdk recipes.
3929 This variable is used in addition to the features
3930 filtered using the
3931 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>
3932 variable.
3933 </para>
3934 </glossdef>
3935 </glossentry>
3936
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003937 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3938 <info>
3939 DISTRO_NAME[doc] = "The long name of the distribution."
3940 </info>
3941 <glossdef>
3942 <para role="glossdeffirst">
3943<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3944 The long name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003945 For information on the short name of the distribution, see
3946 the
3947 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
3948 variable.
3949 </para>
3950
3951 <para>
3952 The <filename>DISTRO_NAME</filename> variable corresponds
3953 to a distribution configuration file whose root name is the
3954 same as the variable's argument and whose filename
3955 extension is <filename>.conf</filename>.
3956 For example, the distribution configuration file for the
3957 Poky distribution is named <filename>poky.conf</filename>
3958 and resides in the
3959 <filename>meta-poky/conf/distro</filename> directory of
3960 the
3961 <link linkend='source-directory'>Source Directory</link>.
3962 </para>
3963
3964 <para>
3965 Within that <filename>poky.conf</filename> file, the
3966 <filename>DISTRO_NAME</filename> variable is set as
3967 follows:
3968 <literallayout class='monospaced'>
3969 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
3970 </literallayout>
3971 </para>
3972
3973 <para>
3974 Distribution configuration files are located in a
3975 <filename>conf/distro</filename> directory within the
3976 <link linkend='metadata'>Metadata</link>
3977 that contains the distribution configuration.
3978 <note>
3979 If the <filename>DISTRO_NAME</filename> variable is
3980 blank, a set of default configurations are used, which
3981 are specified within
3982 <filename>meta/conf/distro/defaultsetup.conf</filename>
3983 also in the Source Directory.
3984 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003985 </para>
3986 </glossdef>
3987 </glossentry>
3988
3989 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3990 <info>
3991 DISTRO_VERSION[doc] = "The version of the distribution."
3992 </info>
3993 <glossdef>
3994 <para role="glossdeffirst">
3995<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3996 The version of the distribution.
3997 </para>
3998 </glossdef>
3999 </glossentry>
4000
4001 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
4002 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004003 DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004004 </info>
4005 <glossdef>
4006 <para role="glossdeffirst">
4007<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004008 A colon-separated list of overrides specific to the
4009 current distribution.
4010 By default, this list includes the value of
4011 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
4012 </para>
4013
4014 <para>
4015 You can extend <filename>DISTROOVERRIDES</filename>
4016 to add extra overrides that should apply to
4017 the distribution.
4018 </para>
4019
4020 <para>
4021 The underlying mechanism behind
4022 <filename>DISTROOVERRIDES</filename> is simply that it
4023 is included in the default value of
4024 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004025 </para>
4026 </glossdef>
4027 </glossentry>
4028
4029 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
4030 <info>
4031 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."
4032 </info>
4033 <glossdef>
4034 <para role="glossdeffirst">
4035<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4036 The central download directory used by the build process to
4037 store downloads.
4038 By default, <filename>DL_DIR</filename> gets files
4039 suitable for mirroring for everything except Git
4040 repositories.
4041 If you want tarballs of Git repositories, use the
4042 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
4043 variable.
4044 </para>
4045
4046 <para>
4047 You can set this directory by defining the
4048 <filename>DL_DIR</filename> variable in the
4049 <filename>conf/local.conf</filename> file.
4050 This directory is self-maintaining and you should not have
4051 to touch it.
4052 By default, the directory is <filename>downloads</filename>
4053 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004054 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004055 <literallayout class='monospaced'>
4056 #DL_DIR ?= "${TOPDIR}/downloads"
4057 </literallayout>
4058 To specify a different download directory, simply remove
4059 the comment from the line and provide your directory.
4060 </para>
4061
4062 <para>
4063 During a first build, the system downloads many different
4064 source code tarballs from various upstream projects.
4065 Downloading can take a while, particularly if your network
4066 connection is slow.
4067 Tarballs are all stored in the directory defined by
4068 <filename>DL_DIR</filename> and the build system looks there
4069 first to find source tarballs.
4070 <note>
4071 When wiping and rebuilding, you can preserve this
4072 directory to speed up this part of subsequent
4073 builds.
4074 </note>
4075 </para>
4076
4077 <para>
4078 You can safely share this directory between multiple builds
4079 on the same development machine.
4080 For additional information on how the build process gets
4081 source files when working behind a firewall or proxy server,
4082 see this specific question in the
4083 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
4084 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004085 You can also refer to the
4086 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
4087 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004088 </para>
4089 </glossdef>
4090 </glossentry>
4091
4092 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
4093 <info>
4094 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."
4095 </info>
4096 <glossdef>
4097 <para role="glossdeffirst">
4098<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4099 When inheriting the
4100 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
4101 class, this variable sets the compression policy used when
4102 the OpenEmbedded build system compresses man pages and info
4103 pages.
4104 By default, the compression method used is gz (gzip).
4105 Other policies available are xz and bz2.
4106 </para>
4107
4108 <para>
4109 For information on policies and on how to use this
4110 variable, see the comments in the
4111 <filename>meta/classes/compress_doc.bbclass</filename> file.
4112 </para>
4113 </glossdef>
4114 </glossentry>
4115
4116 </glossdiv>
4117
4118 <glossdiv id='var-glossary-e'><title>E</title>
4119
4120 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
4121 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004122 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 -05004123 </info>
4124 <glossdef>
4125 <para role="glossdeffirst">
4126<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4127 When building bootable images (i.e. where
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004128 <filename>hddimg</filename>, <filename>iso</filename>,
4129 or <filename>wic.vmdk</filename> is in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004130 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
4131 the <filename>EFI_PROVIDER</filename> variable specifies
4132 the EFI bootloader to use.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004133 The default is "grub-efi", but "systemd-boot" can be used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004134 instead.
4135 </para>
4136
4137 <para>
4138 See the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004139 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05004140 and
4141 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
4142 classes for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004143 </para>
4144 </glossdef>
4145 </glossentry>
4146
4147 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
4148 <info>
4149 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."
4150 </info>
4151 <glossdef>
4152 <para role="glossdeffirst">
4153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4154 Variable that controls which locales for
4155 <filename>glibc</filename> are generated during the
4156 build (useful if the target device has 64Mbytes
4157 of RAM or less).
4158 </para>
4159 </glossdef>
4160 </glossentry>
4161
4162 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
4163 <info>
4164 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."
4165 </info>
4166 <glossdef>
4167 <para role="glossdeffirst">
4168<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4169 When used with the
4170 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
4171 class, specifies the path used for storing the debug files
4172 created by the
4173 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
4174 which allows you to submit build errors you encounter to a
4175 central database.
4176 By default, the value of this variable is
4177 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
4178 </para>
4179
4180 <para>
4181 You can set <filename>ERR_REPORT_DIR</filename> to the path
4182 you want the error reporting tool to store the debug files
4183 as follows in your <filename>local.conf</filename> file:
4184 <literallayout class='monospaced'>
4185 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
4186 </literallayout>
4187 </para>
4188 </glossdef>
4189 </glossentry>
4190
4191 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
4192 <info>
4193 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
4194 </info>
4195 <glossdef>
4196 <para role="glossdeffirst">
4197<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4198 Specifies the quality assurance checks whose failures are
4199 reported as errors by the OpenEmbedded build system.
4200 You set this variable in your distribution configuration
4201 file.
4202 For a list of the checks you can control with this variable,
4203 see the
4204 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
4205 section.
4206 </para>
4207 </glossdef>
4208 </glossentry>
4209
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004210 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
4211 <info>
4212 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
4213 </info>
4214 <glossdef>
4215 <para role="glossdeffirst">
4216<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4217 Triggers the OpenEmbedded build system's shared libraries
4218 resolver to exclude an entire package when scanning for
4219 shared libraries.
4220 <note>
4221 The shared libraries resolver's functionality results
4222 in part from the internal function
4223 <filename>package_do_shlibs</filename>, which is part of
4224 the
4225 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
4226 task.
4227 You should be aware that the shared libraries resolver
4228 might implicitly define some dependencies between
4229 packages.
4230 </note>
4231 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
4232 similar to the
4233 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
4234 variable, which excludes a package's particular libraries
4235 only and not the whole package.
4236 </para>
4237
4238 <para>
4239 Use the
4240 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
4241 setting it to "1" for a particular package:
4242 <literallayout class='monospaced'>
4243 EXCLUDE_FROM_SHLIBS = "1"
4244 </literallayout>
4245 </para>
4246 </glossdef>
4247 </glossentry>
4248
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004249 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
4250 <info>
4251 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
4252 </info>
4253 <glossdef>
4254 <para role="glossdeffirst">
4255<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4256 Directs BitBake to exclude a recipe from world builds (i.e.
4257 <filename>bitbake world</filename>).
4258 During world builds, BitBake locates, parses and builds all
4259 recipes found in every layer exposed in the
4260 <filename>bblayers.conf</filename> configuration file.
4261 </para>
4262
4263 <para>
4264 To exclude a recipe from a world build using this variable,
4265 set the variable to "1" in the recipe.
4266 </para>
4267
4268 <note>
4269 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
4270 may still be built during a world build in order to satisfy
4271 dependencies of other recipes.
4272 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
4273 only ensures that the recipe is not explicitly added
4274 to the list of build targets in a world build.
4275 </note>
4276 </glossdef>
4277 </glossentry>
4278
4279 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
4280 <info>
4281 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."
4282 </info>
4283 <glossdef>
4284 <para role="glossdeffirst">
4285<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4286 Used with file and pathnames to create a prefix for a recipe's
4287 version based on the recipe's
4288 <link linkend='var-PE'><filename>PE</filename></link> value.
4289 If <filename>PE</filename> is set and greater than zero for a recipe,
4290 <filename>EXTENDPE</filename> becomes that value (e.g if
4291 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
4292 becomes "1_").
4293 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
4294 zero, <filename>EXTENDPE</filename> becomes "".</para>
4295 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
4296 variable for an example.
4297 </para>
4298 </glossdef>
4299 </glossentry>
4300
4301 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
4302 <info>
4303 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
4304 </info>
4305 <glossdef>
4306 <para role="glossdeffirst">
4307<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4308 The full package version specification as it appears on the
4309 final packages produced by a recipe.
4310 The variable's value is normally used to fix a runtime
4311 dependency to the exact same version of another package
4312 in the same recipe:
4313 <literallayout class='monospaced'>
4314 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
4315 </literallayout>
4316 </para>
4317
4318 <para>
4319 The dependency relationships are intended to force the
4320 package manager to upgrade these types of packages in
4321 lock-step.
4322 </para>
4323 </glossdef>
4324 </glossentry>
4325
4326 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
4327 <info>
4328 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
4329 </info>
4330 <glossdef>
4331 <para role="glossdeffirst">
4332<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4333 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4334 variable indicates that these tools are not in the
4335 source tree.
4336 </para>
4337
4338 <para>
4339 When kernel tools are available in the tree, they are
4340 preferred over any externally installed tools.
4341 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4342 variable tells the OpenEmbedded build system to prefer
4343 the installed external tools.
4344 See the
4345 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
4346 class in <filename>meta/classes</filename> to see how
4347 the variable is used.
4348 </para>
4349 </glossdef>
4350 </glossentry>
4351
4352 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
4353 <info>
4354 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
4355 </info>
4356 <glossdef>
4357 <para role="glossdeffirst">
4358<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4359 When inheriting the
4360 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4361 class, this variable points to the source tree, which is
4362 outside of the OpenEmbedded build system.
4363 When set, this variable sets the
4364 <link linkend='var-S'><filename>S</filename></link>
4365 variable, which is what the OpenEmbedded build system uses
4366 to locate unpacked recipe source code.
4367 </para>
4368
4369 <para>
4370 For more information on
4371 <filename>externalsrc.bbclass</filename>, see the
4372 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4373 section.
4374 You can also find information on how to use this variable
4375 in the
4376 "<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 -05004377 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004378 </para>
4379 </glossdef>
4380 </glossentry>
4381
4382 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
4383 <info>
4384 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."
4385 </info>
4386 <glossdef>
4387 <para role="glossdeffirst">
4388<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4389 When inheriting the
4390 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4391 class, this variable points to the directory in which the
4392 recipe's source code is built, which is outside of the
4393 OpenEmbedded build system.
4394 When set, this variable sets the
4395 <link linkend='var-B'><filename>B</filename></link>
4396 variable, which is what the OpenEmbedded build system uses
4397 to locate the Build Directory.
4398 </para>
4399
4400 <para>
4401 For more information on
4402 <filename>externalsrc.bbclass</filename>, see the
4403 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4404 section.
4405 You can also find information on how to use this variable
4406 in the
4407 "<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 -05004408 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004409 </para>
4410 </glossdef>
4411 </glossentry>
4412
4413 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
4414 <info>
4415 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
4416 </info>
4417 <glossdef>
4418 <para role="glossdeffirst">
4419<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4420 For recipes inheriting the
4421 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
4422 class, you can use <filename>EXTRA_AUTORECONF</filename> to
4423 specify extra options to pass to the
4424 <filename>autoreconf</filename> command that is
4425 executed during the
4426 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
4427 task.
4428 </para>
4429
4430 <para>
4431 The default value is "--exclude=autopoint".
4432 </para>
4433 </glossdef>
4434 </glossentry>
4435
4436 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
4437 <info>
4438 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."
4439 </info>
4440 <glossdef>
4441 <para role="glossdeffirst">
4442<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4443 A list of additional features to include in an image.
4444 When listing more than one feature, separate them with
4445 a space.
4446 </para>
4447
4448 <para>
4449 Typically, you configure this variable in your
4450 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004451 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004452 Although you can use this variable from within a recipe,
4453 best practices dictate that you do not.
4454 <note>
4455 To enable primary features from within the image
4456 recipe, use the
4457 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
4458 variable.
4459 </note>
4460 </para>
4461
4462 <para>
4463 Here are some examples of features you can add:
4464 <literallayout class='monospaced'>
4465"dbg-pkgs" - Adds -dbg packages for all installed packages
4466 including symbol information for debugging and
4467 profiling.
4468
4469"debug-tweaks" - Makes an image suitable for debugging.
4470 For example, allows root logins without
4471 passwords and enables post-installation
4472 logging. See the 'allow-empty-password'
4473 and 'post-install-logging' features in
4474 the "<link linkend='ref-features-image'>Image Features</link>" section for
4475 more information.
4476
4477"dev-pkgs" - Adds -dev packages for all installed packages.
4478 This is useful if you want to develop against
4479 the libraries in the image.
4480
4481"read-only-rootfs" - Creates an image whose root
4482 filesystem is read-only. See the
4483 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
4484 section in the Yocto Project
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004485 Development Tasks Manual for
4486 more information
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004487
4488"tools-debug" - Adds debugging tools such as gdb and
4489 strace.
4490
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004491"tools-sdk" - Adds development tools such as gcc, make,
4492 pkgconfig and so forth.
4493
4494"tools-testapps" - Adds useful testing tools such as
4495 ts_print, aplay, arecord and so
4496 forth.
4497
4498 </literallayout>
4499 </para>
4500
4501 <para>
4502 For a complete list of image features that ships with the
4503 Yocto Project, see the
4504 "<link linkend="ref-features-image">Image Features</link>"
4505 section.
4506 </para>
4507
4508 <para>
4509 For an example that shows how to customize your image by
4510 using this variable, see the
4511 "<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 -05004512 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004513 </para>
4514 </glossdef>
4515 </glossentry>
4516
4517 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
4518 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04004519 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 -05004520 </info>
4521 <glossdef>
4522 <para role="glossdeffirst">
4523<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4524 Specifies additional options for the image
4525 creation command that has been specified in
4526 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004527 When setting this variable, use an override for the
4528 associated image type.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004529 Here is an example:
4530 <literallayout class='monospaced'>
4531 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
4532 </literallayout>
4533 </para>
4534 </glossdef>
4535 </glossentry>
4536
4537 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
4538 <info>
4539 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."
4540 </info>
4541 <glossdef>
4542 <para role="glossdeffirst">
4543<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4544 A list of recipes to build that do not provide packages
4545 for installing into the root filesystem.
4546 </para>
4547
4548 <para>
4549 Sometimes a recipe is required to build the final image but is not
4550 needed in the root filesystem.
4551 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
4552 list these recipes and thus specify the dependencies.
4553 A typical example is a required bootloader in a machine configuration.
4554 </para>
4555
4556 <note>
4557 To add packages to the root filesystem, see the various
4558 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
4559 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
4560 variables.
4561 </note>
4562 </glossdef>
4563 </glossentry>
4564
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004565 <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
4566 <info>
4567 EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
4568 </info>
4569 <glossdef>
4570 <para role="glossdeffirst">
4571<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4572 A list of subdirectories of
4573 <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
4574 added to the beginning of the environment variable
4575 <filename>PATH</filename>.
4576 As an example, the following prepends
4577 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
4578 to <filename>PATH</filename>:
4579 <literallayout class='monospaced'>
4580 EXTRANATIVEPATH = "foo bar"
4581 </literallayout>
4582 </para>
4583 </glossdef>
4584 </glossentry>
4585
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004586 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
4587 <info>
4588 EXTRA_OECMAKE[doc] = "Additional cmake options."
4589 </info>
4590 <glossdef>
4591 <para role="glossdeffirst">
4592<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004593 Additional
4594 <ulink url='https://cmake.org/overview/'>CMake</ulink>
4595 options.
4596 See the
4597 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
4598 class for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004599 </para>
4600 </glossdef>
4601 </glossentry>
4602
4603 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
4604 <info>
4605 EXTRA_OECONF[doc] = "Additional configure script options."
4606 </info>
4607 <glossdef>
4608 <para role="glossdeffirst">
4609<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4610 Additional <filename>configure</filename> script options.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004611 See
4612 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
4613 for additional information on passing configure script
4614 options.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004615 </para>
4616 </glossdef>
4617 </glossentry>
4618
4619 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
4620 <info>
4621 EXTRA_OEMAKE[doc] = "Additional GNU make options."
4622 </info>
4623 <glossdef>
4624 <para role="glossdeffirst">
4625<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4626 Additional GNU <filename>make</filename> options.
4627 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004628
4629 <para>
4630 Because the <filename>EXTRA_OEMAKE</filename> defaults to
4631 "", you need to set the variable to specify any required
4632 GNU options.
4633 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004634
4635 <para>
4636 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4637 and
4638 <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
4639 also make use of
4640 <filename>EXTRA_OEMAKE</filename> to pass the required
4641 flags.
4642 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004643 </glossdef>
4644 </glossentry>
4645
4646 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
4647 <info>
4648 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."
4649 </info>
4650 <glossdef>
4651 <para role="glossdeffirst">
4652<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4653 When inheriting the
4654 <link linkend='ref-classes-scons'><filename>scons</filename></link>
4655 class, this variable specifies additional configuration
4656 options you want to pass to the
4657 <filename>scons</filename> command line.
4658 </para>
4659 </glossdef>
4660 </glossentry>
4661
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004662 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
4663 <info>
4664 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
4665 </info>
4666 <glossdef>
4667 <para role="glossdeffirst">
4668<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4669 When inheriting the
4670 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
4671 class, this variable provides image level user and group
4672 operations.
4673 This is a more global method of providing user and group
4674 configuration as compared to using the
4675 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4676 class, which ties user and group configurations to a
4677 specific recipe.
4678 </para>
4679
4680 <para>
4681 The set list of commands you can configure using the
4682 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4683 <filename>extrausers</filename> class.
4684 These commands map to the normal Unix commands of the same
4685 names:
4686 <literallayout class='monospaced'>
4687 # EXTRA_USERS_PARAMS = "\
4688 # useradd -p '' tester; \
4689 # groupadd developers; \
4690 # userdel nobody; \
4691 # groupdel -g video; \
4692 # groupmod -g 1020 developers; \
4693 # usermod -s /bin/sh tester; \
4694 # "
4695 </literallayout>
4696 </para>
4697 </glossdef>
4698 </glossentry>
4699
4700 </glossdiv>
4701
4702 <glossdiv id='var-glossary-f'><title>F</title>
4703
4704 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4705 <info>
4706 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."
4707 </info>
4708 <glossdef>
4709 <para role="glossdeffirst">
4710<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4711 Defines one or more packages to include in an image when
4712 a specific item is included in
4713 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4714 When setting the value, <filename>FEATURE_PACKAGES</filename>
4715 should have the name of the feature item as an override.
4716 Here is an example:
4717 <literallayout class='monospaced'>
4718 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4719 </literallayout>
4720 </para>
4721
4722 <para>
4723 In this example, if "widget" were added to
4724 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4725 <replaceable>package2</replaceable> would be included in the image.
4726 <note>
4727 Packages installed by features defined through
4728 <filename>FEATURE_PACKAGES</filename> are often package
4729 groups.
4730 While similarly named, you should not confuse the
4731 <filename>FEATURE_PACKAGES</filename> variable with
4732 package groups, which are discussed elsewhere in the
4733 documentation.
4734 </note>
4735 </para>
4736 </glossdef>
4737 </glossentry>
4738
4739 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4740 <info>
4741 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."
4742 </info>
4743 <glossdef>
4744 <para role="glossdeffirst">
4745<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4746 Points to the base URL of the server and location within
4747 the document-root that provides the metadata and
4748 packages required by OPKG to support runtime package
4749 management of IPK packages.
4750 You set this variable in your
4751 <filename>local.conf</filename> file.
4752 </para>
4753
4754 <para>
4755 Consider the following example:
4756 <literallayout class='monospaced'>
4757 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4758 </literallayout>
4759 This example assumes you are serving your packages over
4760 HTTP and your databases are located in a directory
4761 named <filename>BOARD-dir</filename>, which is underneath
4762 your HTTP server's document-root.
4763 In this case, the OpenEmbedded build system generates a set
4764 of configuration files for you in your target that work
4765 with the feed.
4766 </para>
4767 </glossdef>
4768 </glossentry>
4769
4770 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4771 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004772 FILES[doc] = "The list of directories or files that are placed in a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004773 </info>
4774 <glossdef>
4775 <para role="glossdeffirst">
4776<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004777 The list of files and directories that are placed in a
4778 package.
4779 The
4780 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
4781 variable lists the packages generated by a recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004782 </para>
4783
4784 <para>
4785 To use the <filename>FILES</filename> variable, provide a
4786 package name override that identifies the resulting package.
4787 Then, provide a space-separated list of files or paths
4788 that identify the files you want included as part of the
4789 resulting package.
4790 Here is an example:
4791 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004792 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004793 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08004794 <note><title>Notes</title>
4795 <itemizedlist>
4796 <listitem><para>
4797 When specifying files or paths, you can pattern
4798 match using Python's
4799 <ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>
4800 syntax.
4801 For details on the syntax, see the
4802 documentation by following the previous link.
4803 </para></listitem>
4804 <listitem><para>
4805 When specifying paths as part of the
4806 <filename>FILES</filename> variable, it is
4807 good practice to use appropriate path
4808 variables.
4809 For example, use <filename>${sysconfdir}</filename>
4810 rather than <filename>/etc</filename>, or
4811 <filename>${bindir}</filename> rather than
4812 <filename>/usr/bin</filename>.
4813 You can find a list of these variables at the
4814 top of the
4815 <filename>meta/conf/bitbake.conf</filename>
4816 file in the
4817 <link linkend='source-directory'>Source Directory</link>.
4818 You will also find the default values of the
4819 various <filename>FILES_*</filename> variables
4820 in this file.
4821 </para></listitem>
4822 </itemizedlist>
4823 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004824 </para>
4825
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004826 <para>
4827 If some of the files you provide with the
4828 <filename>FILES</filename> variable are editable and you
4829 know they should not be overwritten during the package
4830 update process by the Package Management System (PMS), you
4831 can identify these files so that the PMS will not
4832 overwrite them.
4833 See the
4834 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4835 variable for information on how to identify these files to
4836 the PMS.
4837 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004838 </glossdef>
4839 </glossentry>
4840
4841 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4842 <info>
4843 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4844 </info>
4845 <glossdef>
4846 <para role="glossdeffirst">
4847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4848 Defines the file specification to match
4849 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4850 In other words, <filename>FILES_SOLIBSDEV</filename>
4851 defines the full path name of the development symbolic link
4852 (symlink) for shared libraries on the target platform.
4853 </para>
4854
4855 <para>
4856 The following statement from the
4857 <filename>bitbake.conf</filename> shows how it is set:
4858 <literallayout class='monospaced'>
4859 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4860 </literallayout>
4861 </para>
4862 </glossdef>
4863 </glossentry>
4864
4865 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4866 <info>
4867 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4868 </info>
4869 <glossdef>
4870 <para role="glossdeffirst">
4871<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4872 Extends the search path the OpenEmbedded build system uses
4873 when looking for files and patches as it processes recipes
4874 and append files.
4875 The default directories BitBake uses when it processes
4876 recipes are initially defined by the
4877 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4878 variable.
4879 You can extend <filename>FILESPATH</filename> variable
4880 by using <filename>FILESEXTRAPATHS</filename>.
4881 </para>
4882
4883 <para>
4884 Best practices dictate that you accomplish this by using
4885 <filename>FILESEXTRAPATHS</filename> from within a
4886 <filename>.bbappend</filename> file and that you prepend
4887 paths as follows:
4888 <literallayout class='monospaced'>
4889 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4890 </literallayout>
4891 In the above example, the build system first looks for files
4892 in a directory that has the same name as the corresponding
4893 append file.
4894 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004895 <para>When extending
4896 <filename>FILESEXTRAPATHS</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004897 be sure to use the immediate expansion
4898 (<filename>:=</filename>) operator.
4899 Immediate expansion makes sure that BitBake evaluates
4900 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4901 at the time the directive is encountered rather than at
4902 some later time when expansion might result in a
4903 directory that does not contain the files you need.
4904 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004905
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004906 <para>Also, include the trailing separating colon
4907 character if you are prepending.
4908 The trailing colon character is necessary because you
4909 are directing BitBake to extend the path by prepending
4910 directories to the search path.</para>
4911 </note>
4912 Here is another common use:
4913 <literallayout class='monospaced'>
4914 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4915 </literallayout>
4916 In this example, the build system extends the
4917 <filename>FILESPATH</filename> variable to include a
4918 directory named <filename>files</filename> that is in the
4919 same directory as the corresponding append file.
4920 </para>
4921
4922 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004923 This next example specifically adds three paths:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004924 <literallayout class='monospaced'>
4925 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4926 </literallayout>
4927 </para>
4928
4929 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004930 A final example shows how you can extend the search path
4931 and include a
4932 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>-specific
4933 override, which is useful in a BSP layer:
4934 <literallayout class='monospaced'>
4935 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
4936 </literallayout>
4937 The previous statement appears in the
4938 <filename>linux-yocto-dev.bbappend</filename> file, which
4939 is found in the Yocto Project
Brad Bishop316dfdd2018-06-25 12:45:53 -04004940 <ulink url='&YOCTO_DOCS_OM_URL;#source-repositories'>Source Repositories</ulink>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004941 in
4942 <filename>meta-intel/common/recipes-kernel/linux</filename>.
4943 Here, the machine override is a special
4944 <link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
4945 definition for multiple <filename>meta-intel</filename>
4946 machines.
4947 <note>
4948 For a layer that supports a single BSP, the override
4949 could just be the value of <filename>MACHINE</filename>.
4950 </note>
4951 </para>
4952
4953 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004954 By prepending paths in <filename>.bbappend</filename>
4955 files, you allow multiple append files that reside in
4956 different layers but are used for the same recipe to
4957 correctly extend the path.
4958 </para>
4959 </glossdef>
4960 </glossentry>
4961
4962 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4963 <info>
4964 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4965 </info>
4966 <glossdef>
4967 <para role="glossdeffirst">
4968<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4969 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4970 used by the OpenEmbedded build system for creating
4971 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
Brad Bishop19323692019-04-05 15:28:33 -04004972 The <filename>FILESOVERRIDES</filename> variable uses
4973 overrides to automatically extend the
4974 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4975 variable.
4976 For an example of how that works, see the
4977 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4978 variable description.
4979 Additionally, you find more information on how overrides
4980 are handled in the
4981 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
4982 section of the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004983 </para>
4984
4985 <para>
4986 By default, the <filename>FILESOVERRIDES</filename>
4987 variable is defined as:
4988 <literallayout class='monospaced'>
4989 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4990 </literallayout>
4991
4992 <note>
4993 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4994 variable.
4995 The values match up with expected overrides and are
4996 used in an expected manner by the build system.
4997 </note>
4998 </para>
4999 </glossdef>
5000 </glossentry>
5001
5002 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
5003 <info>
5004 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."
5005 </info>
5006 <glossdef>
5007 <para role="glossdeffirst">
5008<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop19323692019-04-05 15:28:33 -04005009 The default set of directories the OpenEmbedded build
5010 system uses when searching for patches and files.
5011 </para>
5012
5013 <para>
5014 During the build process, BitBake searches each directory
5015 in <filename>FILESPATH</filename> in the specified order
5016 when looking for files and patches specified by each
Brad Bishop316dfdd2018-06-25 12:45:53 -04005017 <filename>file://</filename> URI in a recipe's
5018 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
5019 statements.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005020 </para>
5021
5022 <para>
5023 The default value for the <filename>FILESPATH</filename>
5024 variable is defined in the <filename>base.bbclass</filename>
5025 class found in <filename>meta/classes</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005026 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005027 <literallayout class='monospaced'>
5028 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
5029 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
5030 </literallayout>
Brad Bishop19323692019-04-05 15:28:33 -04005031 The <filename>FILESPATH</filename> variable is automatically
5032 extended using the overrides from the
5033 <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link>
5034 variable.
5035 <note><title>Notes</title>
5036 <itemizedlist>
5037 <listitem><para>
5038 Do not hand-edit the
5039 <filename>FILESPATH</filename> variable.
5040 If you want the build system to look in
5041 directories other than the defaults, extend the
5042 <filename>FILESPATH</filename> variable by
5043 using the
5044 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
5045 variable.
5046 </para></listitem>
5047 <listitem><para>
5048 Be aware that the default
5049 <filename>FILESPATH</filename> directories do
5050 not map to directories in custom layers
5051 where append files
5052 (<filename>.bbappend</filename>) are used.
5053 If you want the build system to find patches
5054 or files that reside with your append files,
5055 you need to extend the
5056 <filename>FILESPATH</filename> variable by
5057 using the <filename>FILESEXTRAPATHS</filename>
5058 variable.
5059 </para></listitem>
5060 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005061 </note>
Brad Bishop19323692019-04-05 15:28:33 -04005062 </para>
5063
5064 <para>
5065 You can take advantage of this searching behavior in
5066 useful ways.
5067 For example, consider a case where the following
5068 directory structure exists for general and machine-specific
5069 configurations:
5070 <literallayout class='monospaced'>
5071 files/defconfig
5072 files/MACHINEA/defconfig
5073 files/MACHINEB/defconfig
5074 </literallayout>
5075 Also in the example, the <filename>SRC_URI</filename>
5076 statement contains "file://defconfig".
5077 Given this scenario, you can set
5078 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
5079 to "MACHINEA" and cause the build system to use files
5080 from <filename>files/MACHINEA</filename>.
5081 Set <filename>MACHINE</filename> to "MACHINEB" and the
5082 build system uses files from
5083 <filename>files/MACHINEB</filename>.
5084 Finally, for any machine other than "MACHINEA" and
5085 "MACHINEB", the build system uses files from
5086 <filename>files/defconfig</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005087 </para>
5088
5089 <para>
5090 You can find out more about the patching process in the
5091 "<ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>Patching</ulink>"
5092 section in the Yocto Project Overview and Concepts Manual
5093 and the
5094 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code'>Patching Code</ulink>"
5095 section in the Yocto Project Development Tasks Manual.
5096 See the
5097 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
5098 task as well.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005099 </para>
5100 </glossdef>
5101 </glossentry>
5102
5103 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
5104 <info>
5105 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
5106 </info>
5107 <glossdef>
5108 <para role="glossdeffirst">
5109<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5110 Allows you to define your own file permissions settings table as part of
5111 your configuration for the packaging process.
5112 For example, suppose you need a consistent set of custom permissions for
5113 a set of groups and users across an entire work project.
5114 It is best to do this in the packages themselves but this is not always
5115 possible.
5116 </para>
5117
5118 <para>
5119 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
5120 is located in the <filename>meta/files</filename> folder in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005121 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005122 If you create your own file permissions setting table, you should place it in your
5123 layer or the distro's layer.
5124 </para>
5125
5126 <para>
5127 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
5128 <filename>conf/local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005129 <link linkend='build-directory'>Build Directory</link>, to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005130 point to your custom <filename>fs-perms.txt</filename>.
5131 You can specify more than a single file permissions setting table.
5132 The paths you specify to these files must be defined within the
5133 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
5134 </para>
5135
5136 <para>
5137 For guidance on how to create your own file permissions settings table file,
5138 examine the existing <filename>fs-perms.txt</filename>.
5139 </para>
5140 </glossdef>
5141 </glossentry>
5142
5143 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
5144 <info>
5145 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'."
5146 </info>
5147 <glossdef>
5148 <para role="glossdeffirst">
5149<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5150 When inheriting the
5151 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5152 class, this variable specifies the runtime dependencies
5153 for font packages.
5154 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
5155 is set to "fontconfig-utils".
5156 </para>
5157 </glossdef>
5158 </glossentry>
5159
5160 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
5161 <info>
5162 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
5163 </info>
5164 <glossdef>
5165 <para role="glossdeffirst">
5166<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5167 When inheriting the
5168 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5169 class, this variable identifies packages containing font
5170 files that need to be cached by Fontconfig.
5171 By default, the <filename>fontcache</filename> class assumes
5172 that fonts are in the recipe's main package
5173 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5174 Use this variable if fonts you need are in a package
5175 other than that main package.
5176 </para>
5177 </glossdef>
5178 </glossentry>
5179
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005180 <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
5181 <info>
5182 FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
5183 </info>
5184 <glossdef>
5185 <para role="glossdeffirst">
5186<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5187 Forces the removal of the packages listed in
5188 <filename>ROOTFS_RO_UNNEEDED</filename> during the
5189 generation of the root filesystem.
5190 </para>
5191
5192 <para>
5193 Set the variable to "1" to force the removal of these
5194 packages.
5195 </para>
5196 </glossdef>
5197 </glossentry>
5198
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005199 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
5200 <info>
5201 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'."
5202 </info>
5203 <glossdef>
5204 <para role="glossdeffirst">
5205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5206 The options to pass in
5207 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
5208 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
5209 when compiling an optimized system.
5210 This variable defaults to
5211 "-O2 -pipe ${DEBUG_FLAGS}".
5212 </para>
5213 </glossdef>
5214 </glossentry>
5215 </glossdiv>
5216
5217 <glossdiv id='var-glossary-g'><title>G</title>
5218
Brad Bishop316dfdd2018-06-25 12:45:53 -04005219 <glossentry id='var-GCCPIE'><glossterm>GCCPIE</glossterm>
5220 <info>
5221 GCCPIE[doc] = "Enables Position Independent Executables (PIE) within the GNU C Compiler (GCC)."
5222 </info>
5223 <glossdef>
5224 <para role="glossdeffirst">
5225<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5226 Enables Position Independent Executables (PIE) within the
5227 GNU C Compiler (GCC).
5228 Enabling PIE in the GCC makes Return Oriented Programming
5229 (ROP) attacks much more difficult to
5230 execute.
5231 </para>
5232
5233 <para>
5234 By default the <filename>security_flags.inc</filename>
5235 file enables PIE by setting the variable as follows:
5236 <literallayout class='monospaced'>
5237 GCCPIE ?= "--enable-default-pie"
5238 </literallayout>
5239 </para>
5240 </glossdef>
5241 </glossentry>
5242
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08005243 <glossentry id='var-GCCVERSION'><glossterm>GCCVERSION</glossterm>
5244 <info>
5245 GCCVERSION[doc] = "Specifies the default version of the GNU C Compiler (GCC) to use."
5246 </info>
5247 <glossdef>
5248 <para role="glossdeffirst">
5249<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5250 Specifies the default version of the GNU C Compiler (GCC)
5251 used for compilation.
5252 By default, <filename>GCCVERSION</filename> is set to
5253 "8.x" in the
5254 <filename>meta/conf/distro/include/tcmode-default.inc</filename>
5255 include file:
5256 <literallayout class='monospaced'>
5257 GCCVERSION ?= "8.%"
5258 </literallayout>
5259 You can override this value by setting it in a configuration
5260 file such as the <filename>local.conf</filename>.
5261 </para>
5262 </glossdef>
5263 </glossentry>
5264
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005265 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
5266 <info>
5267 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
5268 </info>
5269 <glossdef>
5270 <para role="glossdeffirst">
5271<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5272 The minimal command and arguments to run the GNU Debugger.
5273 </para>
5274 </glossdef>
5275 </glossentry>
5276
5277 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
5278 <info>
5279 GITDIR[doc] = "The directory where Git clones will be stored."
5280 </info>
5281 <glossdef>
5282 <para role="glossdeffirst">
5283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5284 The directory in which a local copy of a Git repository
5285 is stored when it is cloned.
5286 </para>
5287 </glossdef>
5288 </glossentry>
5289
5290 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
5291 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005292 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 -05005293 </info>
5294 <glossdef>
5295 <para role="glossdeffirst">
5296<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5297 Specifies the list of GLIBC locales to generate should you
Brad Bishop316dfdd2018-06-25 12:45:53 -04005298 not wish to generate all LIBC locals, which can be time
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005299 consuming.
5300 <note>
5301 If you specifically remove the locale
5302 <filename>en_US.UTF-8</filename>, you must set
5303 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
5304 appropriately.
5305 </note>
5306 </para>
5307
5308 <para>
5309 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
5310 in your <filename>local.conf</filename> file.
5311 By default, all locales are generated.
5312 <literallayout class='monospaced'>
5313 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
5314 </literallayout>
5315 </para>
5316 </glossdef>
5317 </glossentry>
5318
5319 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
5320 <info>
5321 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."
5322 </info>
5323 <glossdef>
5324 <para role="glossdeffirst">
5325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5326 When inheriting the
5327 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5328 class, this variable
5329 specifies for a package what parameters should be passed
5330 to the <filename>groupadd</filename> command
5331 if you wish to add a group to the system when the package
5332 is installed.
5333 </para>
5334
5335 <para>
5336 Here is an example from the <filename>dbus</filename>
5337 recipe:
5338 <literallayout class='monospaced'>
5339 GROUPADD_PARAM_${PN} = "-r netdev"
5340 </literallayout>
5341 For information on the standard Linux shell command
5342 <filename>groupadd</filename>, see
5343 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
5344 </para>
5345 </glossdef>
5346 </glossentry>
5347
5348 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
5349 <info>
5350 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."
5351 </info>
5352 <glossdef>
5353 <para role="glossdeffirst">
5354<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5355 When inheriting the
5356 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5357 class, this variable
5358 specifies for a package what parameters should be passed
5359 to the <filename>groupmems</filename> command
5360 if you wish to modify the members of a group when the
5361 package is installed.
5362 </para>
5363
5364 <para>
5365 For information on the standard Linux shell command
5366 <filename>groupmems</filename>, see
5367 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
5368 </para>
5369 </glossdef>
5370 </glossentry>
5371
5372 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
5373 <info>
5374 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
5375 </info>
5376 <glossdef>
5377 <para role="glossdeffirst">
5378<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5379 Configures the GNU GRand Unified Bootloader (GRUB) to have
5380 graphics and serial in the boot menu.
5381 Set this variable to "1" in your
5382 <filename>local.conf</filename> or distribution
5383 configuration file to enable graphics and serial
5384 in the menu.
5385 </para>
5386
5387 <para>
5388 See the
5389 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5390 class for more information on how this variable is used.
5391 </para>
5392 </glossdef>
5393 </glossentry>
5394
5395 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
5396 <info>
5397 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
5398 </info>
5399 <glossdef>
5400 <para role="glossdeffirst">
5401<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5402 Additional options to add to the GNU GRand Unified
5403 Bootloader (GRUB) configuration.
5404 Use a semi-colon character (<filename>;</filename>) to
5405 separate multiple options.
5406 </para>
5407
5408 <para>
5409 The <filename>GRUB_OPTS</filename> variable is optional.
5410 See the
5411 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5412 class for more information on how this variable is used.
5413 </para>
5414 </glossdef>
5415 </glossentry>
5416
5417 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
5418 <info>
5419 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
5420 </info>
5421 <glossdef>
5422 <para role="glossdeffirst">
5423<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5424 Specifies the timeout before executing the default
5425 <filename>LABEL</filename> in the GNU GRand Unified
5426 Bootloader (GRUB).
5427 </para>
5428
5429 <para>
5430 The <filename>GRUB_TIMEOUT</filename> variable is optional.
5431 See the
5432 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5433 class for more information on how this variable is used.
5434 </para>
5435 </glossdef>
5436 </glossentry>
5437
5438 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
5439 <info>
5440 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."
5441 </info>
5442 <glossdef>
5443 <para role="glossdeffirst">
5444<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5445 When inheriting the
5446 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
5447 class, this variable specifies the packages that contain the
5448 GTK+ input method modules being installed when the modules
5449 are in packages other than the main package.
5450 </para>
5451 </glossdef>
5452 </glossentry>
5453
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005454 </glossdiv>
5455
5456 <glossdiv id='var-glossary-h'><title>H</title>
5457
5458 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
5459 <info>
5460 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
5461 </info>
5462 <glossdef>
5463 <para role="glossdeffirst">
5464<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5465 Website where more information about the software the recipe is building
5466 can be found.
5467 </para>
5468 </glossdef>
5469 </glossentry>
5470
5471 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
5472 <info>
5473 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
5474
5475 </info>
5476 <glossdef>
5477 <para role="glossdeffirst">
5478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5479 The name of the target architecture, which is normally
5480 the same as
5481 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
5482 The OpenEmbedded build system supports many
5483 architectures.
5484 Here is an example list of architectures supported.
5485 This list is by no means complete as the architecture
5486 is configurable:
5487 <literallayout class='monospaced'>
5488 arm
5489 i586
5490 x86_64
5491 powerpc
5492 powerpc64
5493 mips
5494 mipsel
5495 </literallayout>
5496 </para>
5497 </glossdef>
5498 </glossentry>
5499
5500 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
5501 <info>
5502 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
5503 </info>
5504 <glossdef>
5505 <para role="glossdeffirst">
5506<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5507 Specifies architecture-specific compiler flags that are
5508 passed to the C compiler.
5509 </para>
5510
5511 <para>
5512 Default initialization for <filename>HOST_CC_ARCH</filename>
5513 varies depending on what is being built:
5514 <itemizedlist>
5515 <listitem><para>
5516 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
5517 when building for the target
5518 </para></listitem>
5519 <listitem><para>
5520 <filename>BUILD_CC_ARCH</filename>
5521 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005522 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005523 </para></listitem>
5524 <listitem><para>
5525 <filename>BUILDSDK_CC_ARCH</filename>
5526 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005527 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005528 </para></listitem>
5529 </itemizedlist>
5530 </para>
5531 </glossdef>
5532 </glossentry>
5533
5534 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
5535 <info>
5536 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
5537 </info>
5538 <glossdef>
5539 <para role="glossdeffirst">
5540<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5541 Specifies the name of the target operating system, which
5542 is normally the same as the
5543 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
5544 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005545 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005546 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005547 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005548 </para>
5549 </glossdef>
5550 </glossentry>
5551
5552 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
5553 <info>
5554 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
5555 </info>
5556 <glossdef>
5557 <para role="glossdeffirst">
5558<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5559 Specifies the prefix for the cross-compile toolchain.
5560 <filename>HOST_PREFIX</filename> is normally the same as
5561 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
5562 </para>
5563 </glossdef>
5564 </glossentry>
5565
5566 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
5567 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005568 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 -05005569 </info>
5570 <glossdef>
5571 <para role="glossdeffirst">
5572<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5573 Specifies the system, including the architecture and the
5574 operating system, for which the build is occurring
5575 in the context of the current recipe.
5576 </para>
5577
5578 <para>
5579 The OpenEmbedded build system automatically sets this
5580 variable based on
5581 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
5582 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
5583 and
5584 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
5585 variables.
5586 <note>
5587 You do not need to set the variable yourself.
5588 </note>
5589 </para>
5590
5591 <para>
5592 Consider these two examples:
5593 <itemizedlist>
5594 <listitem><para>Given a native recipe on a 32-bit
5595 x86 machine running Linux, the value is
5596 "i686-linux".
5597 </para></listitem>
5598 <listitem><para>Given a recipe being built for a
5599 little-endian MIPS target running Linux,
5600 the value might be "mipsel-linux".
5601 </para></listitem>
5602 </itemizedlist>
5603 </para>
5604 </glossdef>
5605 </glossentry>
5606
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005607 <glossentry id='var-HOSTTOOLS'><glossterm>HOSTTOOLS</glossterm>
5608 <info>
5609 HOSTTOOLS[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5610 </info>
5611 <glossdef>
5612 <para role="glossdeffirst">
5613<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5614 A space-separated list (filter) of tools on the build host
5615 that should be allowed to be called from within build tasks.
5616 Using this filter helps reduce the possibility of host
5617 contamination.
5618 If a tool specified in the value of
5619 <filename>HOSTTOOLS</filename> is not found on the
5620 build host, the OpenEmbedded build system produces
5621 an error and the build is not started.
5622 </para>
5623
5624 <para>
5625 For additional information, see
5626 <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>.
5627 </para>
5628 </glossdef>
5629 </glossentry>
5630
5631 <glossentry id='var-HOSTTOOLS_NONFATAL'><glossterm>HOSTTOOLS_NONFATAL</glossterm>
5632 <info>
5633 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."
5634 </info>
5635 <glossdef>
5636 <para role="glossdeffirst">
5637<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5638 A space-separated list (filter) of tools on the build host
5639 that should be allowed to be called from within build tasks.
5640 Using this filter helps reduce the possibility of host
5641 contamination.
5642 Unlike
5643 <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -04005644 the OpenEmbedded build system does not produce an error
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005645 if a tool specified in the value of
5646 <filename>HOSTTOOLS_NONFATAL</filename> is not found on the
5647 build host.
5648 Thus, you can use <filename>HOSTTOOLS_NONFATAL</filename>
5649 to filter optional host tools.
5650 </para>
5651 </glossdef>
5652 </glossentry>
5653
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005654 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
5655 <info>
5656 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
5657 </info>
5658 <glossdef>
5659 <para role="glossdeffirst">
5660<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5661 Specifies the name of the vendor.
5662 <filename>HOST_VENDOR</filename> is normally the same as
Brad Bishop316dfdd2018-06-25 12:45:53 -04005663 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005664 </para>
5665 </glossdef>
5666 </glossentry>
5667
5668 </glossdiv>
5669
5670 <glossdiv id='var-glossary-i'><title>I</title>
5671
5672 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
5673 <info>
5674 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
5675 </info>
5676 <glossdef>
5677 <para role="glossdeffirst">
5678<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5679 Disables or enables the <filename>icecc</filename>
5680 (Icecream) function.
5681 For more information on this function and best practices
5682 for using this variable, see the
5683 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
5684 section.
5685 </para>
5686
5687 <para>
5688 Setting this variable to "1" in your
5689 <filename>local.conf</filename> disables the function:
5690 <literallayout class='monospaced'>
5691 ICECC_DISABLED ??= "1"
5692 </literallayout>
5693 To enable the function, set the variable as follows:
5694 <literallayout class='monospaced'>
5695 ICECC_DISABLED = ""
5696 </literallayout>
5697 </para>
5698 </glossdef>
5699 </glossentry>
5700
5701 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
5702 <info>
5703 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
5704 </info>
5705 <glossdef>
5706 <para role="glossdeffirst">
5707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5708 Points to the <filename>icecc-create-env</filename> script
5709 that you provide.
5710 This variable is used by the
5711 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5712 class.
5713 You set this variable in your
5714 <filename>local.conf</filename> file.
5715 </para>
5716
5717 <para>
5718 If you do not point to a script that you provide, the
5719 OpenEmbedded build system uses the default script provided
5720 by the <filename>icecc-create-env.bb</filename> recipe,
5721 which is a modified version and not the one that comes with
5722 <filename>icecc</filename>.
5723 </para>
5724 </glossdef>
5725 </glossentry>
5726
5727 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
5728 <info>
5729 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
5730 </info>
5731 <glossdef>
5732 <para role="glossdeffirst">
5733<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5734 Extra options passed to the <filename>make</filename>
5735 command during the
5736 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
5737 task that specify parallel compilation.
5738 This variable usually takes the form of
5739 "-j <replaceable>x</replaceable>", where
5740 <replaceable>x</replaceable> represents the maximum
5741 number of parallel threads <filename>make</filename> can
5742 run.
5743 <note>
5744 The options passed affect builds on all enabled
5745 machines on the network, which are machines running the
5746 <filename>iceccd</filename> daemon.
5747 </note>
5748 </para>
5749
5750 <para>
5751 If your enabled machines support multiple cores,
5752 coming up with the maximum number of parallel threads
5753 that gives you the best performance could take some
5754 experimentation since machine speed, network lag,
5755 available memory, and existing machine loads can all
5756 affect build time.
5757 Consequently, unlike the
5758 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5759 variable, there is no rule-of-thumb for setting
5760 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
5761 optimal performance.
5762 </para>
5763
5764 <para>
5765 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
5766 the build system does not use it (i.e. the system does
5767 not detect and assign the number of cores as is done with
5768 <filename>PARALLEL_MAKE</filename>).
5769 </para>
5770 </glossdef>
5771 </glossentry>
5772
5773 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
5774 <info>
5775 ICECC_PATH[doc] = "The location of the icecc binary."
5776 </info>
5777 <glossdef>
5778 <para role="glossdeffirst">
5779<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5780 The location of the <filename>icecc</filename> binary.
5781 You can set this variable in your
5782 <filename>local.conf</filename> file.
5783 If your <filename>local.conf</filename> file does not define
5784 this variable, the
5785 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5786 class attempts to define it by locating
5787 <filename>icecc</filename> using <filename>which</filename>.
5788 </para>
5789 </glossdef>
5790 </glossentry>
5791
5792 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
5793 <info>
5794 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
5795 </info>
5796 <glossdef>
5797 <para role="glossdeffirst">
5798<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5799 Identifies user classes that you do not want the
5800 Icecream distributed compile support to consider.
5801 This variable is used by the
5802 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5803 class.
5804 You set this variable in your
5805 <filename>local.conf</filename> file.
5806 </para>
5807
5808 <para>
5809 When you list classes using this variable, you are
5810 "blacklisting" them from distributed compilation across
5811 remote hosts.
5812 Any classes you list will be distributed and compiled
5813 locally.
5814 </para>
5815 </glossdef>
5816 </glossentry>
5817
5818 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5819 <info>
5820 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5821 </info>
5822 <glossdef>
5823 <para role="glossdeffirst">
5824<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5825 Identifies user recipes that you do not want the
5826 Icecream distributed compile support to consider.
5827 This variable is used by the
5828 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5829 class.
5830 You set this variable in your
5831 <filename>local.conf</filename> file.
5832 </para>
5833
5834 <para>
5835 When you list packages using this variable, you are
5836 "blacklisting" them from distributed compilation across
5837 remote hosts.
5838 Any packages you list will be distributed and compiled
5839 locally.
5840 </para>
5841 </glossdef>
5842 </glossentry>
5843
5844 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5845 <info>
5846 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."
5847 </info>
5848 <glossdef>
5849 <para role="glossdeffirst">
5850<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5851 Identifies user recipes that use an empty
5852 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5853 variable that you want to force remote distributed
5854 compilation on using the Icecream distributed compile
5855 support.
5856 This variable is used by the
5857 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5858 class.
5859 You set this variable in your
5860 <filename>local.conf</filename> file.
5861 </para>
5862 </glossdef>
5863 </glossentry>
5864
5865 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5866 <info>
5867 IMAGE_BASENAME[doc] = "The base name of image output files."
5868 </info>
5869 <glossdef>
5870 <para role="glossdeffirst">
5871<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5872 The base name of image output files.
5873 This variable defaults to the recipe name
5874 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5875 </para>
5876 </glossdef>
5877 </glossentry>
5878
5879 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5880 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005881 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 -05005882 </info>
5883 <glossdef>
5884 <para role="glossdeffirst">
5885<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5886 A space-separated list of files installed into the
Brad Bishop316dfdd2018-06-25 12:45:53 -04005887 boot partition when preparing an image using the Wic tool
5888 with the <filename>bootimg-partition</filename> source
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005889 plugin.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005890 By default, the files are installed under the same name as
5891 the source files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005892 To change the installed name, separate it from the
5893 original name with a semi-colon (;).
5894 Source files need to be located in
5895 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5896 Here are two examples:
5897
5898 <literallayout class="monospaced">
5899 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5900 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5901 </literallayout>
5902 </para>
5903
5904 <para>
5905 Alternatively, source files can be picked up using
5906 a glob pattern.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005907 In this case, the destination file must have the same name
5908 as the base name of the source file path.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005909 To install files into a directory within the
5910 target location, pass its name after a semi-colon
5911 (;).
5912 Here are two examples:
5913 <literallayout class="monospaced">
5914 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5915 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5916 </literallayout>
5917 The first example installs all files from
5918 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5919 into the root of the target partition.
5920 The second example installs the same files into a
5921 <filename>boot</filename> directory within the
5922 target partition.
5923 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005924
5925 <para>
5926 You can find information on how to use the Wic tool in the
5927 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
5928 section of the Yocto Project Development Tasks Manual.
5929 Reference material for Wic is located in the
5930 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-kickstart'>OpenEmbedded Kickstart (.wks) Reference</ulink>"
5931 chapter.
5932 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005933 </glossdef>
5934 </glossentry>
5935
5936 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5937 <info>
5938 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5939 </info>
5940 <glossdef>
5941 <para role="glossdeffirst">
5942<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5943 A list of classes that all images should inherit.
5944 You typically use this variable to specify the list of
5945 classes that register the different types of images
5946 the OpenEmbedded build system creates.
5947 </para>
5948
5949 <para>
5950 The default value for <filename>IMAGE_CLASSES</filename> is
5951 <filename>image_types</filename>.
5952 You can set this variable in your
5953 <filename>local.conf</filename> or in a distribution
5954 configuration file.
5955 </para>
5956
5957 <para>
5958 For more information, see
5959 <filename>meta/classes/image_types.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005960 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005961 </para>
5962 </glossdef>
5963 </glossentry>
5964
5965 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5966 <info>
5967 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)."
5968 </info>
5969 <glossdef>
5970 <para role="glossdeffirst">
5971<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5972 Specifies the command to create the image file for a
5973 specific image type, which corresponds to the value set
5974 set in
5975 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5976 (e.g. <filename>ext3</filename>,
5977 <filename>btrfs</filename>, and so forth).
5978 When setting this variable, you should use
5979 an override for the associated type.
5980 Here is an example:
5981 <literallayout class='monospaced'>
5982 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5983 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5984 ${EXTRA_IMAGECMD}"
5985 </literallayout>
5986 </para>
5987
5988 <para>
5989 You typically do not need to set this variable unless
5990 you are adding support for a new image type.
5991 For more examples on how to set this variable, see the
5992 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5993 class file, which is
5994 <filename>meta/classes/image_types.bbclass</filename>.
5995 </para>
5996 </glossdef>
5997 </glossentry>
5998
5999 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
6000 <info>
6001 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."
6002 </info>
6003 <glossdef>
6004 <para role="glossdeffirst">
6005<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6006 Specifies one or more files that contain custom device
6007 tables that are passed to the
6008 <filename>makedevs</filename> command as part of creating
6009 an image.
6010 These files list basic device nodes that should be
6011 created under <filename>/dev</filename> within the image.
6012 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
6013 <filename>files/device_table-minimal.txt</filename> is
6014 used, which is located by
6015 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
6016 For details on how you should write device table files,
6017 see <filename>meta/files/device_table-minimal.txt</filename>
6018 as an example.
6019 </para>
6020 </glossdef>
6021 </glossentry>
6022
6023 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
6024 <info>
6025 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
6026 </info>
6027 <glossdef>
6028 <para role="glossdeffirst">
6029<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6030 The primary list of features to include in an image.
6031 Typically, you configure this variable in an image recipe.
6032 Although you can use this variable from your
6033 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006034 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006035 best practices dictate that you do not.
6036 <note>
6037 To enable extra features from outside the image recipe,
6038 use the
6039 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
6040 </note>
6041 </para>
6042
6043 <para>
6044 For a list of image features that ships with the Yocto
6045 Project, see the
6046 "<link linkend="ref-features-image">Image Features</link>"
6047 section.
6048 </para>
6049
6050 <para>
6051 For an example that shows how to customize your image by
6052 using this variable, see the
6053 "<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 -05006054 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006055 </para>
6056 </glossdef>
6057 </glossentry>
6058
6059 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
6060 <info>
6061 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
6062 </info>
6063 <glossdef>
6064 <para role="glossdeffirst">
6065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6066 Specifies the formats the OpenEmbedded build system uses
6067 during the build when creating the root filesystem.
6068 For example, setting <filename>IMAGE_FSTYPES</filename>
6069 as follows causes the build system to create root
6070 filesystems using two formats: <filename>.ext3</filename>
6071 and <filename>.tar.bz2</filename>:
6072 <literallayout class='monospaced'>
6073 IMAGE_FSTYPES = "ext3 tar.bz2"
6074 </literallayout>
6075 </para>
6076
6077 <para>
6078 For the complete list of supported image formats from which
6079 you can choose, see
6080 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
6081 </para>
6082
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006083 <note><title>Notes</title>
6084 <itemizedlist>
6085 <listitem><para>
Brad Bishop19323692019-04-05 15:28:33 -04006086 If an image recipe uses the "inherit image" line
6087 and you are setting
6088 <filename>IMAGE_FSTYPES</filename> inside the
6089 recipe, you must set
6090 <filename>IMAGE_FSTYPES</filename> prior to
6091 using the "inherit image" line.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006092 </para></listitem>
6093 <listitem><para>
6094 Due to the way the OpenEmbedded build system
6095 processes this variable, you cannot update its
6096 contents by using <filename>_append</filename> or
6097 <filename>_prepend</filename>.
6098 You must use the <filename>+=</filename>
6099 operator to add one or more options to the
6100 <filename>IMAGE_FSTYPES</filename> variable.
6101 </para></listitem>
6102 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006103 </note>
6104 </glossdef>
6105 </glossentry>
6106
6107 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
6108 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006109 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 -05006110 </info>
6111 <glossdef>
6112 <para role="glossdeffirst">
6113<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04006114 Used by recipes to specify the packages to install into an
6115 image through the
6116 <link linkend='ref-classes-image'><filename>image</filename></link>
6117 class.
6118 Use the <filename>IMAGE_INSTALL</filename> variable with
6119 care to avoid ordering issues.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006120 </para>
6121
6122 <para>
6123 Image recipes set <filename>IMAGE_INSTALL</filename>
6124 to specify the packages to install into an image through
6125 <filename>image.bbclass</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04006126 Additionally, "helper" classes such as the
6127 <link linkend='ref-classes-core-image'><filename>core-image</filename></link>
6128 class exist that can take lists used with
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006129 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006130 and turn them into auto-generated entries in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006131 <filename>IMAGE_INSTALL</filename> in addition to its
6132 default contents.
6133 </para>
6134
6135 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006136 When you use this variable, it is best to use it as follows:
6137 <literallayout class='monospaced'>
6138 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
6139 </literallayout>
6140 Be sure to include the space between the quotation character
6141 and the start of the package name or names.
Brad Bishop316dfdd2018-06-25 12:45:53 -04006142 <note><title>Caution</title>
6143 <itemizedlist>
6144 <listitem><para>
6145 When working with a
6146 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
6147 image, do not use the
6148 <filename>IMAGE_INSTALL</filename> variable to
6149 specify packages for installation.
6150 Instead, use the
6151 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
6152 variable, which allows the initial RAM
6153 filesystem (initramfs) recipe to use a fixed
6154 set of packages and not be affected by
6155 <filename>IMAGE_INSTALL</filename>.
6156 For information on creating an initramfs, see
6157 the
6158 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
6159 section in the Yocto Project Development Tasks
6160 Manual.
6161 </para></listitem>
6162 <listitem><para>
6163 Using <filename>IMAGE_INSTALL</filename> with
6164 the
6165 <ulink url='&YOCTO_DOCS_BB_URL;#appending-and-prepending'><filename>+=</filename></ulink>
6166 BitBake operator within the
6167 <filename>/conf/local.conf</filename> file or
6168 from within an image recipe is not recommended.
6169 Use of this operator in these ways can cause
6170 ordering issues.
6171 Since <filename>core-image.bbclass</filename>
6172 sets <filename>IMAGE_INSTALL</filename> to a
6173 default value using the
6174 <ulink url='&YOCTO_DOCS_BB_URL;#setting-a-default-value'><filename>?=</filename></ulink>
6175 operator, using a <filename>+=</filename>
6176 operation against
6177 <filename>IMAGE_INSTALL</filename> results in
6178 unexpected behavior when used within
6179 <filename>conf/local.conf</filename>.
6180 Furthermore, the same operation from within
6181 an image recipe may or may not succeed
6182 depending on the specific situation.
6183 In both these cases, the behavior is contrary
6184 to how most users expect the
6185 <filename>+=</filename> operator to work.
6186 </para></listitem>
6187 </itemizedlist>
6188 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006189 </para>
6190 </glossdef>
6191 </glossentry>
6192
6193 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
6194 <info>
6195 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
6196 </info>
6197 <glossdef>
6198 <para role="glossdeffirst">
6199<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6200 Specifies the list of locales to install into the image
6201 during the root filesystem construction process.
6202 The OpenEmbedded build system automatically splits locale
6203 files, which are used for localization, into separate
6204 packages.
6205 Setting the <filename>IMAGE_LINGUAS</filename> variable
6206 ensures that any locale packages that correspond to packages
6207 already selected for installation into the image are also
6208 installed.
6209 Here is an example:
6210 <literallayout class='monospaced'>
6211 IMAGE_LINGUAS = "pt-br de-de"
6212 </literallayout>
6213 </para>
6214
6215 <para>
6216 In this example, the build system ensures any Brazilian
6217 Portuguese and German locale files that correspond to
6218 packages in the image are installed (i.e.
6219 <filename>*-locale-pt-br</filename>
6220 and <filename>*-locale-de-de</filename> as well as
6221 <filename>*-locale-pt</filename>
6222 and <filename>*-locale-de</filename>, since some software
6223 packages only provide locale files by language and not by
6224 country-specific language).
6225 </para>
6226
6227 <para>
6228 See the
6229 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
6230 variable for information on generating GLIBC locales.
6231 </para>
6232 </glossdef>
6233 </glossentry>
6234
6235 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
6236 <info>
6237 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
6238 </info>
6239 <glossdef>
6240 <para role="glossdeffirst">
6241<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6242 The manifest file for the image.
6243 This file lists all the installed packages that make up
6244 the image.
6245 The file contains package information on a line-per-package
6246 basis as follows:
6247 <literallayout class='monospaced'>
6248 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
6249 </literallayout>
6250 </para>
6251
6252 <para>
6253 The
6254 <link linkend='ref-classes-image'><filename>image</filename></link>
6255 class defines the manifest file as follows:
6256 <literallayout class='monospaced'>
6257 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
6258 </literallayout>
6259 The location is derived using the
6260 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
6261 and
6262 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
6263 variables.
6264 You can find information on how the image
6265 is created in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006266 "<ulink url='&YOCTO_DOCS_OM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
6267 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006268 </para>
6269 </glossdef>
6270 </glossentry>
6271
6272 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
6273 <info>
6274 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
6275 </info>
6276 <glossdef>
6277 <para role="glossdeffirst">
6278<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6279 The name of the output image files minus the extension.
6280 This variable is derived using the
6281 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
6282 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6283 and
6284 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6285 variables:
6286 <literallayout class='monospaced'>
6287 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
6288 </literallayout>
6289 </para>
6290 </glossdef>
6291 </glossentry>
6292
6293 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
6294 <info>
6295 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."
6296 </info>
6297 <glossdef>
6298 <para role="glossdeffirst">
6299<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6300 Defines a multiplier that the build system applies to the initial image
6301 size for cases when the multiplier times the returned disk usage value
6302 for the image is greater than the sum of
6303 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6304 and
6305 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
6306 The result of the multiplier applied to the initial image size creates
6307 free disk space in the image as overhead.
6308 By default, the build process uses a multiplier of 1.3 for this variable.
6309 This default value results in 30% free disk space added to the image when this
6310 method is used to determine the final generated image size.
6311 You should be aware that post install scripts and the package management
6312 system uses disk space inside this overhead area.
6313 Consequently, the multiplier does not produce an image with
6314 all the theoretical free disk space.
6315 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6316 for information on how the build system determines the overall image size.
6317 </para>
6318
6319 <para>
6320 The default 30% free disk space typically gives the image enough room to boot
6321 and allows for basic post installs while still leaving a small amount of
6322 free disk space.
6323 If 30% free space is inadequate, you can increase the default value.
6324 For example, the following setting gives you 50% free space added to the image:
6325 <literallayout class='monospaced'>
6326 IMAGE_OVERHEAD_FACTOR = "1.5"
6327 </literallayout>
6328 </para>
6329
6330 <para>
6331 Alternatively, you can ensure a specific amount of free disk space is added
6332 to the image by using the
6333 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6334 variable.
6335 </para>
6336 </glossdef>
6337 </glossentry>
6338
6339 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
6340 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006341 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 -05006342 </info>
6343 <glossdef>
6344 <para role="glossdeffirst">
6345<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04006346 Defines the package type (i.e. DEB, RPM, IPK, or TAR) used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006347 by the OpenEmbedded build system.
6348 The variable is defined appropriately by the
6349 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
6350 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
6351 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
6352 or
6353 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
6354 class.
6355 <note><title>Warning</title>
6356 The <filename>package_tar</filename> class is broken
6357 and is not supported.
6358 It is recommended that you do not use it.
6359 </note>
6360 </para>
6361
6362 <para>
6363 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006364 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006365 and
6366 <link linkend='ref-classes-image'><filename>image</filename></link>
6367 classes use the <filename>IMAGE_PKGTYPE</filename> for
6368 packaging up images and SDKs.
6369 </para>
6370
6371 <para>
6372 You should not set the <filename>IMAGE_PKGTYPE</filename>
6373 manually.
6374 Rather, the variable is set indirectly through the
6375 appropriate
6376 <link linkend='ref-classes-package'><filename>package_*</filename></link>
6377 class using the
6378 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
6379 variable.
6380 The OpenEmbedded build system uses the first package type
6381 (e.g. DEB, RPM, or IPK) that appears with the variable
6382 <note>
6383 Files using the <filename>.tar</filename> format are
6384 never used as a substitute packaging format for DEB,
6385 RPM, and IPK formatted files for your image or SDK.
6386 </note>
6387 </para>
6388 </glossdef>
6389 </glossentry>
6390
6391 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
6392 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006393 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 -05006394 </info>
6395 <glossdef>
6396 <para role="glossdeffirst">
6397<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6398 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006399 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006400 output files.
6401 You can specify functions separated by semicolons:
6402 <literallayout class='monospaced'>
6403 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6404 </literallayout>
6405 </para>
6406
6407 <para>
6408 If you need to pass the root filesystem path to a command
6409 within the function, you can use
6410 <filename>${IMAGE_ROOTFS}</filename>, which points to
6411 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006412 See the
6413 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6414 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006415 </para>
6416 </glossdef>
6417 </glossentry>
6418
6419 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
6420 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006421 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 -05006422 </info>
6423 <glossdef>
6424 <para role="glossdeffirst">
6425<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6426 Specifies a list of functions to call before the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006427 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006428 output files.
6429 You can specify functions separated by semicolons:
6430 <literallayout class='monospaced'>
6431 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6432 </literallayout>
6433 </para>
6434
6435 <para>
6436 If you need to pass the root filesystem path to a command
6437 within the function, you can use
6438 <filename>${IMAGE_ROOTFS}</filename>, which points to
6439 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006440 See the
6441 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6442 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006443 </para>
6444 </glossdef>
6445 </glossentry>
6446
6447 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
6448 <info>
6449 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
6450 </info>
6451 <glossdef>
6452 <para role="glossdeffirst">
6453<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6454 The location of the root filesystem while it is under
6455 construction (i.e. during the
6456 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
6457 task).
6458 This variable is not configurable.
6459 Do not change it.
6460 </para>
6461 </glossdef>
6462 </glossentry>
6463
6464 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
6465 <info>
6466 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
6467 </info>
6468 <glossdef>
6469 <para role="glossdeffirst">
6470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6471 Specifies the alignment for the output image file in
6472 Kbytes.
6473 If the size of the image is not a multiple of
6474 this value, then the size is rounded up to the nearest
6475 multiple of the value.
6476 The default value is "1".
6477 See
6478 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
6479 for additional information.
6480 </para>
6481 </glossdef>
6482 </glossentry>
6483
6484 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
6485 <info>
6486 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
6487 </info>
6488 <glossdef>
6489 <para role="glossdeffirst">
6490<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6491 Defines additional free disk space created in the image in Kbytes.
6492 By default, this variable is set to "0".
6493 This free disk space is added to the image after the build system determines
6494 the image size as described in
6495 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
6496 </para>
6497
6498 <para>
6499 This variable is particularly useful when you want to ensure that a
6500 specific amount of free disk space is available on a device after an image
6501 is installed and running.
6502 For example, to be sure 5 Gbytes of free disk space is available, set the
6503 variable as follows:
6504 <literallayout class='monospaced'>
6505 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
6506 </literallayout>
6507 </para>
6508
6509 <para>
6510 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
6511 of extra space with the line:
6512 <literallayout class='monospaced'>
6513 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
6514 </literallayout>
6515 </para>
6516 </glossdef>
6517 </glossentry>
6518
6519 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
6520 <info>
6521 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
6522 </info>
6523 <glossdef>
6524 <para role="glossdeffirst">
6525<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6526 Defines the size in Kbytes for the generated image.
6527 The OpenEmbedded build system determines the final size for the generated
6528 image using an algorithm that takes into account the initial disk space used
6529 for the generated image, a requested size for the image, and requested
6530 additional free disk space to be added to the image.
6531 Programatically, the build system determines the final size of the
6532 generated image as follows:
6533 <literallayout class='monospaced'>
6534 if (image-du * overhead) &lt; rootfs-size:
6535 internal-rootfs-size = rootfs-size + xspace
6536 else:
6537 internal-rootfs-size = (image-du * overhead) + xspace
6538
6539 where:
6540
6541 image-du = Returned value of the du command on
6542 the image.
6543
6544 overhead = IMAGE_OVERHEAD_FACTOR
6545
6546 rootfs-size = IMAGE_ROOTFS_SIZE
6547
6548 internal-rootfs-size = Initial root filesystem
6549 size before any modifications.
6550
6551 xspace = IMAGE_ROOTFS_EXTRA_SPACE
6552 </literallayout>
6553 </para>
6554
6555 <para>
6556 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
6557 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
6558 variables for related information.
6559<!-- In the above example, <filename>overhead</filename> is defined by the
6560 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
6561 variable, <filename>xspace</filename> is defined by the
6562 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6563 variable, and <filename>du</filename> is the results of the disk usage command
6564 on the initially generated image. -->
6565 </para>
6566 </glossdef>
6567 </glossentry>
6568
6569 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
6570 <info>
6571 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
6572 </info>
6573 <glossdef>
6574 <para role="glossdeffirst">
6575<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6576 Specifies a dependency from one image type on another.
6577 Here is an example from the
6578 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6579 class:
6580 <literallayout class='monospaced'>
6581 IMAGE_TYPEDEP_live = "ext3"
6582 </literallayout>
6583 </para>
6584
6585 <para>
6586 In the previous example, the variable ensures that when
6587 "live" is listed with the
6588 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6589 variable, the OpenEmbedded build system produces an
6590 <filename>ext3</filename> image first since one of the
6591 components of the live
6592 image is an <filename>ext3</filename>
6593 formatted partition containing the root
6594 filesystem.
6595 </para>
6596 </glossdef>
6597 </glossentry>
6598
6599 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
6600 <info>
6601 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
6602 </info>
6603 <glossdef>
6604 <para role="glossdeffirst">
6605<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6606 Specifies the complete list of supported image types
6607 by default:
6608 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006609 btrfs
Brad Bishop79641f22019-09-10 07:20:22 -04006610 container
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006611 cpio
6612 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006613 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006614 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006615 cpio.xz
6616 cramfs
6617 elf
6618 ext2
6619 ext2.bz2
6620 ext2.gz
6621 ext2.lzma
6622 ext3
6623 ext3.gz
6624 ext4
6625 ext4.gz
Brad Bishop79641f22019-09-10 07:20:22 -04006626 f2fs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006627 hddimg
6628 iso
6629 jffs2
6630 jffs2.sum
6631 multiubi
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006632 squashfs
Brad Bishop79641f22019-09-10 07:20:22 -04006633 squashfs-lz4
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006634 squashfs-lzo
6635 squashfs-xz
6636 tar
6637 tar.bz2
6638 tar.gz
6639 tar.lz4
6640 tar.xz
6641 ubi
6642 ubifs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006643 wic
6644 wic.bz2
6645 wic.gz
6646 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006647 </literallayout>
6648 </para>
6649
6650 <para>
6651 For more information about these types of images, see
6652 <filename>meta/classes/image_types*.bbclass</filename>
6653 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006654 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006655 </para>
6656 </glossdef>
6657 </glossentry>
6658
6659 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
6660 <info>
6661 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
6662 </info>
6663 <glossdef>
6664 <para role="glossdeffirst">
6665<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6666 Helps define the recipe revision for recipes that share
6667 a common <filename>include</filename> file.
6668 You can think of this variable as part of the recipe revision
6669 as set from within an include file.
6670 </para>
6671
6672 <para>
6673 Suppose, for example, you have a set of recipes that
6674 are used across several projects.
6675 And, within each of those recipes the revision
6676 (its <link linkend='var-PR'><filename>PR</filename></link>
6677 value) is set accordingly.
6678 In this case, when the revision of those recipes changes,
6679 the burden is on you to find all those recipes and
6680 be sure that they get changed to reflect the updated
6681 version of the recipe.
6682 In this scenario, it can get complicated when recipes
6683 that are used in many places and provide common functionality
6684 are upgraded to a new revision.
6685 </para>
6686
6687 <para>
6688 A more efficient way of dealing with this situation is
6689 to set the <filename>INC_PR</filename> variable inside
6690 the <filename>include</filename> files that the recipes
6691 share and then expand the <filename>INC_PR</filename>
6692 variable within the recipes to help
6693 define the recipe revision.
6694 </para>
6695
6696 <para>
6697 The following provides an example that shows how to use
6698 the <filename>INC_PR</filename> variable
6699 given a common <filename>include</filename> file that
6700 defines the variable.
6701 Once the variable is defined in the
6702 <filename>include</filename> file, you can use the
6703 variable to set the <filename>PR</filename> values in
6704 each recipe.
6705 You will notice that when you set a recipe's
6706 <filename>PR</filename> you can provide more granular
6707 revisioning by appending values to the
6708 <filename>INC_PR</filename> variable:
6709 <literallayout class='monospaced'>
Brad Bishopb1114e52019-02-13 07:56:10 -05006710 recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
6711 recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
6712 recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
6713 recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006714 </literallayout>
6715 The first line of the example establishes the baseline
6716 revision to be used for all recipes that use the
6717 <filename>include</filename> file.
6718 The remaining lines in the example are from individual
6719 recipes and show how the <filename>PR</filename> value
6720 is set.
6721 </para>
6722 </glossdef>
6723 </glossentry>
6724
6725 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
6726 <info>
6727 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
6728 </info>
6729 <glossdef>
6730 <para role="glossdeffirst">
6731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6732 Specifies a space-separated list of license names
6733 (as they would appear in
6734 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
6735 that should be excluded from the build.
6736 Recipes that provide no alternatives to listed incompatible
6737 licenses are not built.
6738 Packages that are individually licensed with the specified
6739 incompatible licenses will be deleted.
6740 </para>
6741
6742 <note>
6743 This functionality is only regularly tested using
6744 the following setting:
6745 <literallayout class='monospaced'>
6746 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
6747 </literallayout>
6748 Although you can use other settings, you might be required
6749 to remove dependencies on or provide alternatives to
6750 components that are required to produce a functional system
6751 image.
6752 </note>
6753 </glossdef>
6754 </glossentry>
6755
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006756 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
6757 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006758 INHERIT[doc] = "Causes the named class or classes to be inherited globally."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006759 </info>
6760 <glossdef>
6761 <para role="glossdeffirst">
6762<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006763 Causes the named class or classes to be inherited globally.
6764 Anonymous functions in the class or classes
6765 are not executed for the
6766 base configuration and in each individual recipe.
6767 The OpenEmbedded build system ignores changes to
6768 <filename>INHERIT</filename> in individual recipes.
6769 </para>
6770
6771 <para>
6772 For more information on <filename>INHERIT</filename>, see
6773 the
6774 "<ulink url="&YOCTO_DOCS_BB_URL;#inherit-configuration-directive"><filename>INHERIT</filename> Configuration Directive</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04006775 section in the Bitbake User Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006776 </para>
6777 </glossdef>
6778 </glossentry>
6779
6780 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
6781 <info>
6782 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6783 </info>
6784 <glossdef>
6785 <para role="glossdeffirst">
6786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6787 Lists classes that will be inherited at the
6788 distribution level.
6789 It is unlikely that you want to edit this variable.
6790 </para>
6791
6792 <para>
6793 The default value of the variable is set as follows in the
6794 <filename>meta/conf/distro/defaultsetup.conf</filename>
6795 file:
6796 <literallayout class='monospaced'>
6797 INHERIT_DISTRO ?= "debian devshell sstate license"
6798 </literallayout>
6799 </para>
6800 </glossdef>
6801 </glossentry>
6802
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006803 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
6804 <info>
6805 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
6806 </info>
6807 <glossdef>
6808 <para role="glossdeffirst">
6809<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6810 Prevents the default dependencies, namely the C compiler
6811 and standard C library (libc), from being added to
6812 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
6813 This variable is usually used within recipes that do not
6814 require any compilation using the C compiler.
6815 </para>
6816
6817 <para>
6818 Set the variable to "1" to prevent the default dependencies
6819 from being added.
6820 </para>
6821 </glossdef>
6822 </glossentry>
6823
6824 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
6825 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006826 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 -05006827 </info>
6828 <glossdef>
6829 <para role="glossdeffirst">
6830<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6831 Prevents the OpenEmbedded build system from splitting
6832 out debug information during packaging.
6833 By default, the build system splits out debugging
6834 information during the
6835 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
6836 task.
6837 For more information on how debug information is split out,
6838 see the
6839 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
6840 variable.
6841 </para>
6842
6843 <para>
6844 To prevent the build system from splitting out
6845 debug information during packaging, set the
6846 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
6847 as follows:
6848 <literallayout class='monospaced'>
6849 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6850 </literallayout>
6851 </para>
6852 </glossdef>
6853 </glossentry>
6854
6855 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
6856 <info>
6857 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
6858 </info>
6859 <glossdef>
6860 <para role="glossdeffirst">
6861<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006862 If set to "1", causes the build to not strip binaries in
6863 resulting packages and prevents the
6864 <filename>-dbg</filename> package from containing the
6865 source files.
6866 </para>
6867
6868 <para>
6869 By default, the OpenEmbedded build system strips
6870 binaries and puts the debugging symbols into
6871 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
6872 Consequently, you should not set
6873 <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
6874 to debug in general.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006875 </para>
6876 </glossdef>
6877 </glossentry>
6878
Brad Bishop19323692019-04-05 15:28:33 -04006879 <glossentry id='var-INHIBIT_SYSROOT_STRIP'><glossterm>INHIBIT_SYSROOT_STRIP</glossterm>
6880 <info>
6881 INHIBIT_SYSROOT_STRIP[doc] = "If set to "1", causes the build to not strip binaries in the resulting sysroot."
6882 </info>
6883 <glossdef>
6884 <para role="glossdeffirst">
6885<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6886 If set to "1", causes the build to not strip binaries in
6887 the resulting sysroot.
6888 </para>
6889
6890 <para>
6891 By default, the OpenEmbedded build system strips
6892 binaries in the resulting sysroot.
6893 When you specifically set the
6894 <filename>INHIBIT_SYSROOT_STRIP</filename> variable to
6895 "1" in your recipe, you inhibit this stripping.
6896 </para>
6897
6898 <para>
6899 If you want to use this variable, include the
6900 <link linkend='ref-classes-staging'><filename>staging</filename></link>
6901 class.
6902 This class uses a <filename>sys_strip()</filename>
6903 function to test for the variable and acts accordingly.
6904 <note>
6905 Use of the <filename>INHIBIT_SYSROOT_STRIP</filename>
6906 variable occurs in rare and special circumstances.
6907 For example, suppose you are building bare-metal
6908 firmware by using an external GCC toolchain.
6909 Furthermore, even if the toolchain's binaries are
6910 strippable, other files exist that are needed for the
6911 build that are not strippable.
6912 </note>
6913 </para>
6914 </glossdef>
6915 </glossentry>
6916
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006917 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6918 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006919 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 -05006920 </info>
6921 <glossdef>
6922 <para role="glossdeffirst">
6923<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6924 Defines the format for the output image of an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006925 RAM filesystem (initramfs), which is used during boot.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006926 Supported formats are the same as those supported by the
6927 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6928 variable.
6929 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006930
6931 <para>
6932 The default value of this variable, which is set in the
6933 <filename>meta/conf/bitbake.conf</filename> configuration
6934 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006935 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006936 is "cpio.gz".
6937 The Linux kernel's initramfs mechanism, as opposed to the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006938 initial RAM filesystem
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006939 <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
6940 mechanism, expects an optionally compressed cpio
6941 archive.
6942 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006943 </glossdef>
6944 </glossentry>
6945
6946 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6947 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006948 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 -05006949 </info>
6950 <glossdef>
6951 <para role="glossdeffirst">
6952<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006953 Specifies the
6954 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
6955 name of an image recipe that is used to build an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006956 RAM filesystem (initramfs) image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006957 In other words, the <filename>INITRAMFS_IMAGE</filename>
6958 variable causes an additional recipe to be built as
6959 a dependency to whatever root filesystem recipe you
6960 might be using (e.g. <filename>core-image-sato</filename>).
6961 The initramfs image recipe you provide should set
6962 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6963 to
6964 <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
6965 </para>
6966
6967 <para>
6968 An initramfs image provides a temporary root filesystem
6969 used for early system initialization (e.g. loading of
6970 modules needed to locate and mount the "real" root
6971 filesystem).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006972 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006973 See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
6974 recipe in the
6975 <link linkend='source-directory'>Source Directory</link>
6976 for an example initramfs recipe.
6977 To select this sample recipe as the one built
6978 to provide the initramfs image,
6979 set <filename>INITRAMFS_IMAGE</filename> to
6980 "core-image-minimal-initramfs".
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006981 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006982 </para>
6983
6984 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006985 You can also find more information by referencing the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006986 <filename>meta-poky/conf/local.conf.sample.extended</filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006987 configuration file in the Source Directory,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006988 the
6989 <link linkend='ref-classes-image'><filename>image</filename></link>
6990 class, and the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006991 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006992 class to see how to use the
6993 <filename>INITRAMFS_IMAGE</filename> variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006994 </para>
6995
6996 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006997 If <filename>INITRAMFS_IMAGE</filename> is empty, which is
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006998 the default, then no initramfs image is built.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006999 </para>
7000
7001 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007002 For more information, you can also see the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007003 <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
7004 variable, which allows the generated image to be bundled
7005 inside the kernel image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007006 Additionally, for information on creating an initramfs
7007 image, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007008 "<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 -05007009 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007010 </para>
7011 </glossdef>
7012 </glossentry>
7013
7014 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
7015 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007016 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 -05007017 </info>
7018 <glossdef>
7019 <para role="glossdeffirst">
7020<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7021 Controls whether or not the image recipe specified by
7022 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007023 is run through an extra pass
7024 (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
7025 during kernel compilation in order to build a single binary
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007026 that contains both the kernel image and the initial RAM
7027 filesystem (initramfs) image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007028 This makes use of the
7029 <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
7030 kernel feature.
7031 <note>
7032 Using an extra compilation pass to bundle the initramfs
7033 avoids a circular dependency between the kernel recipe and
7034 the initramfs recipe should the initramfs include kernel
7035 modules.
7036 Should that be the case, the initramfs recipe depends on
7037 the kernel for the kernel modules, and the kernel depends
7038 on the initramfs recipe since the initramfs is bundled
7039 inside the kernel image.
7040 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007041 </para>
7042
7043 <para>
7044 The combined binary is deposited into the
7045 <filename>tmp/deploy</filename> directory, which is part
7046 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007047 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007048 </para>
7049
7050 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007051 Setting the variable to "1" in a configuration file causes the
7052 OpenEmbedded build system to generate a kernel image with the
Brad Bishop316dfdd2018-06-25 12:45:53 -04007053 initramfs specified in <filename>INITRAMFS_IMAGE</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007054 bundled within:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007055 <literallayout class='monospaced'>
7056 INITRAMFS_IMAGE_BUNDLE = "1"
7057 </literallayout>
7058 By default, the
7059 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7060 class sets this variable to a null string as follows:
7061 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06007062 INITRAMFS_IMAGE_BUNDLE ?= ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007063 </literallayout>
7064 <note>
7065 You must set the
7066 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
7067 a configuration file.
7068 You cannot set the variable in a recipe file.
7069 </note>
7070 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007071 <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 -05007072 file for additional information.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007073 Also, for information on creating an initramfs, see the
7074 "<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 -05007075 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007076 </para>
7077 </glossdef>
7078 </glossentry>
7079
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007080 <glossentry id='var-INITRAMFS_LINK_NAME'><glossterm>INITRAMFS_LINK_NAME</glossterm>
7081 <info>
7082 INITRAMFS_LINK_NAME[doc] = "The link name of the initial RAM filesystem image."
7083 </info>
7084 <glossdef>
7085 <para role="glossdeffirst">
7086<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7087 The link name of the initial RAM filesystem image.
7088 This variable is set in the
7089 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7090 file as follows:
7091 <literallayout class='monospaced'>
7092 INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}"
7093 </literallayout>
7094 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7095 variable, which is set in the same file, has the following
7096 value:
7097 <literallayout class='monospaced'>
7098 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7099 </literallayout>
7100 </para>
7101
7102 <para>
7103 See the
7104 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7105 variable for additional information.
7106 </para>
7107 </glossdef>
7108 </glossentry>
7109
7110 <glossentry id='var-INITRAMFS_NAME'><glossterm>INITRAMFS_NAME</glossterm>
7111 <info>
7112 INITRAMFS_NAME[doc] = "The base name of the initial RAM filesystem image."
7113 </info>
7114 <glossdef>
7115 <para role="glossdeffirst">
7116<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7117 The base name of the initial RAM filesystem image.
7118 This variable is set in the
7119 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7120 file as follows:
7121 <literallayout class='monospaced'>
7122 INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
7123 </literallayout>
7124 The value of the
7125 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7126 variable, which is set in the same file, has the following
7127 value:
7128 <literallayout class='monospaced'>
7129 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7130 </literallayout>
7131 </para>
7132 </glossdef>
7133 </glossentry>
7134
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007135 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
7136 <info>
7137 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
7138 </info>
7139 <glossdef>
7140 <para role="glossdeffirst">
7141<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7142 Indicates list of filesystem images to concatenate and use
7143 as an initial RAM disk (<filename>initrd</filename>).
7144 </para>
7145
7146 <para>
7147 The <filename>INITRD</filename> variable is an optional
7148 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007149 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007150 class.
7151 </para>
7152 </glossdef>
7153 </glossentry>
7154
7155 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
7156 <info>
7157 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."
7158 </info>
7159 <glossdef>
7160 <para role="glossdeffirst">
7161<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7162 When building a "live" bootable image (i.e. when
7163 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
7164 contains "live"), <filename>INITRD_IMAGE</filename>
7165 specifies the image recipe that should be built
7166 to provide the initial RAM disk image.
7167 The default value is "core-image-minimal-initramfs".
7168 </para>
7169
7170 <para>
7171 See the
7172 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
7173 class for more information.
7174 </para>
7175 </glossdef>
7176 </glossentry>
7177
7178 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
7179 <info>
7180 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
7181 </info>
7182 <glossdef>
7183 <para role="glossdeffirst">
7184<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7185 The filename of the initialization script as installed to
7186 <filename>${sysconfdir}/init.d</filename>.
7187 </para>
7188
7189 <para>
7190 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
7191 The variable is mandatory.
7192 </para>
7193 </glossdef>
7194 </glossentry>
7195
7196 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
7197 <info>
7198 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."
7199 </info>
7200 <glossdef>
7201 <para role="glossdeffirst">
7202<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7203 A list of the packages that contain initscripts.
7204 If multiple packages are specified, you need to append the package name
7205 to the other <filename>INITSCRIPT_*</filename> as an override.
7206 </para>
7207
7208 <para>
7209 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
7210 The variable is optional and defaults to the
7211 <link linkend='var-PN'><filename>PN</filename></link> variable.
7212 </para>
7213 </glossdef>
7214 </glossentry>
7215
7216 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
7217 <info>
7218 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."
7219 </info>
7220 <glossdef>
7221 <para role="glossdeffirst">
7222<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7223 Specifies the options to pass to <filename>update-rc.d</filename>.
7224 Here is an example:
7225 <literallayout class='monospaced'>
7226 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
7227 </literallayout>
7228 </para>
7229
7230 <para>
7231 In this example, the script has a runlevel of 99,
7232 starts the script in initlevels 2 and 5, and
7233 stops the script in levels 0, 1 and 6.
7234 </para>
7235
7236 <para>
7237 The variable's default value is "defaults", which is
7238 set in the
7239 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
7240 class.
7241 </para>
7242
7243 <para>
7244 The value in
7245 <filename>INITSCRIPT_PARAMS</filename> is passed through
7246 to the <filename>update-rc.d</filename> command.
7247 For more information on valid parameters, please see the
7248 <filename>update-rc.d</filename> manual page at
7249 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
7250 </para>
7251 </glossdef>
7252 </glossentry>
7253
7254 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
7255 <info>
7256 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
7257 </info>
7258 <glossdef>
7259 <para role="glossdeffirst">
7260<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7261 Specifies the QA checks to skip for a specific package
7262 within a recipe.
7263 For example, to skip the check for symbolic link
7264 <filename>.so</filename> files in the main package of a
7265 recipe, add the following to the recipe.
7266 The package name override must be used, which in this
7267 example is <filename>${PN}</filename>:
7268 <literallayout class='monospaced'>
7269 INSANE_SKIP_${PN} += "dev-so"
7270 </literallayout>
7271 </para>
7272
7273 <para>
7274 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
7275 section for a list of the valid QA checks you can
7276 specify using this variable.
7277 </para>
7278 </glossdef>
7279 </glossentry>
7280
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007281 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
7282 <info>
7283 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
7284 </info>
7285 <glossdef>
7286 <para role="glossdeffirst">
7287<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7288 By default, the <filename>tzdata</filename> recipe packages
7289 an <filename>/etc/timezone</filename> file.
7290 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
7291 variable to "0" at the configuration level to disable this
7292 behavior.
7293 </para>
7294 </glossdef>
7295 </glossentry>
7296
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007297 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
7298 <info>
7299 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
7300 </info>
7301 <glossdef>
7302 <para role="glossdeffirst">
7303<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7304 When the IPK backend is in use and package management
7305 is enabled on the target, you can use this variable to
7306 set up <filename>opkg</filename> in the target image
7307 to point to package feeds on a nominated server.
7308 Once the feed is established, you can perform
7309 installations or upgrades using the package manager
7310 at runtime.
7311 </para>
7312 </glossdef>
7313 </glossentry>
7314
7315<!--
7316 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
7317 <glossdef>
7318 <para>
7319 An environment variable that defines the directory where
7320 post installation hooks are installed for the
7321 post install environment.
7322 This variable is fixed as follows:
7323 <literallayout class='monospaced'>
7324 ${WORKDIR}/intercept_scripts
7325 </literallayout>
7326 </para>
7327
7328 <para>
7329 After installation of a target's root filesystem,
7330 post installation scripts, which are essentially bash scripts,
7331 are all executed just a single time.
7332 Limiting execution of these scripts minimizes installation
7333 time that would be lengthened due to certain packages
7334 triggering redundant operations.
7335 For example, consider the installation of font packages
7336 as a common example.
7337 Without limiting the execution of post installation scripts,
7338 all font directories would be rescanned to create the
7339 cache after each individual font package was installed.
7340 </para>
7341
7342 <para>
7343 Do not edit the <filename>INTERCEPT_DIR</filename>
7344 variable.
7345 </para>
7346 </glossdef>
7347 </glossentry>
7348-->
7349
7350 </glossdiv>
7351
7352<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
7353<!-- </glossdiv>-->
7354
7355 <glossdiv id='var-glossary-k'><title>K</title>
7356
7357 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
7358 <info>
7359 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
7360 </info>
7361 <glossdef>
7362 <para role="glossdeffirst">
7363<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7364 Defines the kernel architecture used when assembling
7365 the configuration.
7366 Architectures supported for this release are:
7367 <literallayout class='monospaced'>
7368 powerpc
7369 i386
7370 x86_64
7371 arm
7372 qemu
7373 mips
7374 </literallayout>
7375 </para>
7376
7377 <para>
7378 You define the <filename>KARCH</filename> variable in the
7379 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7380 </para>
7381 </glossdef>
7382 </glossentry>
7383
7384 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
7385 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007386 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 -05007387 </info>
7388 <glossdef>
7389 <para role="glossdeffirst">
7390<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7391 A regular expression used by the build process to explicitly
7392 identify the kernel branch that is validated, patched,
7393 and configured during a build.
7394 You must set this variable to ensure the exact kernel
7395 branch you want is being used by the build process.
7396 </para>
7397
7398 <para>
7399 Values for this variable are set in the kernel's recipe
7400 file and the kernel's append file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007401 For example, if you are using the
7402 <filename>linux-yocto_4.12</filename> kernel, the kernel
7403 recipe file is the
7404 <filename>meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007405 file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007406 <filename>KBRANCH</filename> is set as follows in that
7407 kernel recipe file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007408 <literallayout class='monospaced'>
7409 KBRANCH ?= "standard/base"
7410 </literallayout>
7411 </para>
7412
7413 <para>
7414 This variable is also used from the kernel's append file
7415 to identify the kernel branch specific to a particular
7416 machine or target hardware.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007417 Continuing with the previous kernel example, the kernel's
7418 append file (i.e.
7419 <filename>linux-yocto_4.12.bbappend</filename>) is located
7420 in the BSP layer for a given machine.
7421 For example, the append file for the Beaglebone,
7422 EdgeRouter, and generic versions of both 32 and 64-bit IA
7423 machines (<filename>meta-yocto-bsp</filename>) is named
7424 <filename>meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend</filename>.
7425 Here are the related statements from that append file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007426 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007427 KBRANCH_genericx86 = "standard/base"
7428 KBRANCH_genericx86-64 = "standard/base"
7429 KBRANCH_edgerouter = "standard/edgerouter"
7430 KBRANCH_beaglebone = "standard/beaglebone"
7431 KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007432 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007433 The <filename>KBRANCH</filename> statements identify
7434 the kernel branch to use when building for each
7435 supported BSP.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007436 </para>
7437 </glossdef>
7438 </glossentry>
7439
7440 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
7441 <info>
7442 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
7443 </info>
7444 <glossdef>
7445 <para role="glossdeffirst">
7446<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7447 When used with the
7448 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
7449 class, specifies an "in-tree" kernel configuration file
7450 for use during a kernel build.
7451 </para>
7452
7453 <para>
7454 Typically, when using a <filename>defconfig</filename> to
7455 configure a kernel during a build, you place the
7456 file in your layer in the same manner as you would
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007457 place patch files and configuration fragment files (i.e.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007458 "out-of-tree").
7459 However, if you want to use a <filename>defconfig</filename>
7460 file that is part of the kernel tree (i.e. "in-tree"),
7461 you can use the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007462 <filename>KBUILD_DEFCONFIG</filename> variable and append
7463 the
7464 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
7465 variable to point to the <filename>defconfig</filename>
7466 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007467 </para>
7468
7469 <para>
7470 To use the variable, set it in the append file for your
7471 kernel recipe using the following form:
7472 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007473 KBUILD_DEFCONFIG_<replaceable>KMACHINE</replaceable> ?= <replaceable>defconfig_file</replaceable>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007474 </literallayout>
7475 Here is an example from a "raspberrypi2"
7476 <filename>KMACHINE</filename> build that uses a
7477 <filename>defconfig</filename> file named
7478 "bcm2709_defconfig":
7479 <literallayout class='monospaced'>
7480 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
7481 </literallayout>
7482 As an alternative, you can use the following within your
7483 append file:
7484 <literallayout class='monospaced'>
7485 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
7486 </literallayout>
7487 For more information on how to use the
7488 <filename>KBUILD_DEFCONFIG</filename> variable, see the
7489 "<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 -04007490 section in the Yocto Project Linux Kernel Development
7491 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007492 </para>
7493 </glossdef>
7494 </glossentry>
7495
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007496 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
7497 <info>
7498 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
7499 </info>
7500 <glossdef>
7501 <para role="glossdeffirst">
7502<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7503 Specifies an alternate kernel image type for creation in
7504 addition to the kernel image type specified using the
7505 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
7506 variable.
7507 </para>
7508 </glossdef>
7509 </glossentry>
7510
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007511 <glossentry id='var-KERNEL_ARTIFACT_NAME'><glossterm>KERNEL_ARTIFACT_NAME</glossterm>
7512 <info>
7513 KERNEL_ARTIFACT_NAME[doc] = "Specifies the name of all of the build artifacts."
7514 </info>
7515 <glossdef>
7516 <para role="glossdeffirst">
7517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7518 Specifies the name of all of the build artifacts.
7519 You can change the name of the artifacts by changing the
7520 <filename>KERNEL_ARTIFACT_NAME</filename> variable.
7521 </para>
7522
7523 <para>
7524 The value of <filename>KERNEL_ARTIFACT_NAME</filename>,
7525 which is set in the
7526 <filename> meta/classes/kernel-artifact-names.bbclass</filename>
7527 file, has the following default value:
7528 <literallayout class='monospaced'>
7529 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7530 </literallayout>
7531 </para>
7532
7533 <para>
7534 See the
7535 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7536 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7537 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7538 and
7539 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7540 variables for additional information.
7541 <note>
7542 The <filename>IMAGE_VERSION_SUFFIX</filename> variable
7543 is set to
7544 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>.
7545 </note>
7546 </para>
7547 </glossdef>
7548 </glossentry>
7549
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007550 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
7551 <info>
7552 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
7553 </info>
7554 <glossdef>
7555 <para role="glossdeffirst">
7556<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7557 A list of classes defining kernel image types that the
7558 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7559 class should inherit.
7560 You typically append this variable to enable extended image
7561 types.
7562 An example is the "kernel-fitimage", which enables
7563 fitImage support and resides in
7564 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
7565 You can register custom kernel image types with the
7566 <filename>kernel</filename> class using this variable.
7567 </para>
7568 </glossdef>
7569 </glossentry>
7570
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007571 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
7572 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007573 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 -05007574 </info>
7575 <glossdef>
7576 <para role="glossdeffirst">
7577<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7578 Specifies the name of the generated Linux kernel device tree
7579 (i.e. the <filename>.dtb</filename>) file.
7580 <note>
7581 Legacy support exists for specifying the full path
7582 to the device tree.
7583 However, providing just the <filename>.dtb</filename>
7584 file is preferred.
7585 </note>
Brad Bishop79641f22019-09-10 07:20:22 -04007586 In order to use this variable, the
7587 <link linkend='ref-classes-kernel-devicetree'><filename>kernel-devicetree</filename></link>
7588 class must be inherited.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007589 </para>
7590 </glossdef>
7591 </glossentry>
7592
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007593 <glossentry id='var-KERNEL_DTB_LINK_NAME'><glossterm>KERNEL_DTB_LINK_NAME</glossterm>
7594 <info>
7595 KERNEL_DTB_LINK_NAME[doc] = "The link name of the kernel device tree binary (DTB)."
7596 </info>
7597 <glossdef>
7598 <para role="glossdeffirst">
7599<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7600 The link name of the kernel device tree binary (DTB).
7601 This variable is set in the
7602 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7603 file as follows:
7604 <literallayout class='monospaced'>
7605 KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7606 </literallayout>
7607 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7608 variable, which is set in the same file, has the following
7609 value:
7610 <literallayout class='monospaced'>
7611 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7612 </literallayout>
7613 </para>
7614
7615 <para>
7616 See the
7617 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7618 variable for additional information.
7619 </para>
7620 </glossdef>
7621 </glossentry>
7622
7623 <glossentry id='var-KERNEL_DTB_NAME'><glossterm>KERNEL_DTB_NAME</glossterm>
7624 <info>
7625 KERNEL_DTB_NAME[doc] = "The base name of the kernel device tree binary (DTB)."
7626 </info>
7627 <glossdef>
7628 <para role="glossdeffirst">
7629<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7630 The base name of the kernel device tree binary (DTB).
7631 This variable is set in the
7632 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7633 file as follows:
7634 <literallayout class='monospaced'>
7635 KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7636 </literallayout>
7637 The value of the
7638 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7639 variable, which is set in the same file, has the following
7640 value:
7641 <literallayout class='monospaced'>
7642 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7643 </literallayout>
7644 </para>
7645 </glossdef>
7646 </glossentry>
7647
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007648 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
7649 <info>
7650 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
7651 </info>
7652 <glossdef>
7653 <para role="glossdeffirst">
7654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7655 Specifies additional <filename>make</filename>
7656 command-line arguments the OpenEmbedded build system
7657 passes on when compiling the kernel.
7658 </para>
7659 </glossdef>
7660 </glossentry>
7661
7662 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
7663 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007664 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 -05007665 </info>
7666 <glossdef>
7667 <para role="glossdeffirst">
7668<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007669 Includes additional kernel metadata.
7670 In the OpenEmbedded build system, the default Board Support
7671 Packages (BSPs)
7672 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007673 is provided through
7674 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007675 and
7676 <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link>
7677 variables.
7678 You can use the <filename>KERNEL_FEATURES</filename>
7679 variable from within the kernel recipe or kernel append
7680 file to further add metadata for all BSPs or specific
7681 BSPs.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007682 </para>
7683
7684 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007685 The metadata you add through this variable includes config
7686 fragments and features descriptions,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007687 which usually includes patches as well as config fragments.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007688 You typically override the
7689 <filename>KERNEL_FEATURES</filename> variable for a
7690 specific machine.
7691 In this way, you can provide validated, but optional,
7692 sets of kernel configurations and features.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007693 </para>
7694
7695 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007696 For example, the following example from the
7697 <filename>linux-yocto-rt_4.12</filename> kernel recipe
7698 adds "netfilter" and "taskstats" features to all BSPs
7699 as well as "virtio" configurations to all QEMU machines.
7700 The last two statements add specific configurations to
7701 targeted machine types:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007702 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007703 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
7704 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007705 KERNEL_FEATURES_append_qemuall = " cfg/virtio.scc"
7706 KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc cfg/paravirt_kvm.scc"
7707 KERNEL_FEATURES_append_qemux86-64 = " cfg/sound.scc" </literallayout></para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007708 </glossdef>
7709 </glossentry>
7710
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007711 <glossentry id='var-KERNEL_FIT_LINK_NAME'><glossterm>KERNEL_FIT_LINK_NAME</glossterm>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007712 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007713 KERNEL_FIT_LINK_NAME[doc] = "The link name of the kernel flattened image tree (FIT) image."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007714 </info>
7715 <glossdef>
7716 <para role="glossdeffirst">
7717<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007718 The link name of the kernel flattened image tree (FIT) image.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007719 This variable is set in the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007720 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7721 file as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007722 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007723 KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7724 </literallayout>
7725 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7726 variable, which is set in the same file, has the following
7727 value:
7728 <literallayout class='monospaced'>
7729 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007730 </literallayout>
7731 </para>
7732
7733 <para>
7734 See the
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007735 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7736 variable for additional information.
7737 </para>
7738 </glossdef>
7739 </glossentry>
7740
7741 <glossentry id='var-KERNEL_FIT_NAME'><glossterm>KERNEL_FIT_NAME</glossterm>
7742 <info>
7743 KERNEL_FIT_NAME[doc] = "The base name of the kernel flattened image tree (FIT) image."
7744 </info>
7745 <glossdef>
7746 <para role="glossdeffirst">
7747<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7748 The base name of the kernel flattened image tree (FIT) image.
7749 This variable is set in the
7750 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7751 file as follows:
7752 <literallayout class='monospaced'>
7753 KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7754 </literallayout>
7755 The value of the
7756 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7757 variable, which is set in the same file, has the following
7758 value:
7759 <literallayout class='monospaced'>
7760 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7761 </literallayout>
7762 </para>
7763 </glossdef>
7764 </glossentry>
7765
7766 <glossentry id='var-KERNEL_IMAGE_LINK_NAME'><glossterm>KERNEL_IMAGE_LINK_NAME</glossterm>
7767 <info>
7768 KERNEL_IMAGE_LINK_NAME[doc] = "The link name for the kernel image."
7769 </info>
7770 <glossdef>
7771 <para role="glossdeffirst">
7772<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7773 The link name for the kernel image.
7774 This variable is set in the
7775 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7776 file as follows:
7777 <literallayout class='monospaced'>
7778 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
7779 </literallayout>
7780 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
7781 variable, which is set in the same file, has the following
7782 value:
7783 <literallayout class='monospaced'>
7784 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
7785 </literallayout>
7786 </para>
7787
7788 <para>
7789 See the
7790 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
7791 variable for additional information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007792 </para>
7793 </glossdef>
7794 </glossentry>
7795
7796 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
7797 <info>
7798 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
7799 </info>
7800 <glossdef>
7801 <para role="glossdeffirst">
7802<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7803 Specifies the maximum size of the kernel image file in
7804 kilobytes.
7805 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
7806 the size of the kernel image file is checked against
7807 the set value during the
7808 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
7809 task.
7810 The task fails if the kernel image file is larger than
7811 the setting.
7812 </para>
7813
7814 <para>
7815 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
7816 target devices that have a limited amount of space in
7817 which the kernel image must be stored.
7818 </para>
7819
7820 <para>
7821 By default, this variable is not set, which means the
7822 size of the kernel image is not checked.
7823 </para>
7824 </glossdef>
7825 </glossentry>
7826
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08007827 <glossentry id='var-KERNEL_IMAGE_NAME'><glossterm>KERNEL_IMAGE_NAME</glossterm>
7828 <info>
7829 KERNEL_IMAGE_NAME[doc] = "The base name of the kernel image."
7830 </info>
7831 <glossdef>
7832 <para role="glossdeffirst">
7833<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7834 The base name of the kernel image.
7835 This variable is set in the
7836 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
7837 file as follows:
7838 <literallayout class='monospaced'>
7839 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
7840 </literallayout>
7841 The value of the
7842 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
7843 variable, which is set in the same file, has the following
7844 value:
7845 <literallayout class='monospaced'>
7846 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
7847 </literallayout>
7848 </para>
7849 </glossdef>
7850 </glossentry>
7851
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007852 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
7853 <info>
7854 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
7855 </info>
7856 <glossdef>
7857 <para role="glossdeffirst">
7858<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7859 The type of kernel to build for a device, usually set by the
7860 machine configuration files and defaults to "zImage".
7861 This variable is used
7862 when building the kernel and is passed to <filename>make</filename> as the target to
7863 build.
7864 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007865
7866 <para>
7867 If you want to build an alternate kernel image type, use the
7868 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
7869 variable.
7870 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007871 </glossdef>
7872 </glossentry>
7873
7874 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
7875 <info>
7876 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
7877 </info>
7878 <glossdef>
7879 <para role="glossdeffirst">
7880<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7881 Lists kernel modules that need to be auto-loaded during
7882 boot.
7883 <note>
7884 This variable replaces the deprecated
7885 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
7886 variable.
7887 </note>
7888 </para>
7889
7890 <para>
7891 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
7892 variable anywhere that it can be
7893 recognized by the kernel recipe or by an out-of-tree kernel
7894 module recipe (e.g. a machine configuration file, a
7895 distribution configuration file, an append file for the
7896 recipe, or the recipe itself).
7897 </para>
7898
7899 <para>
7900 Specify it as follows:
7901 <literallayout class='monospaced'>
7902 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
7903 </literallayout>
7904 </para>
7905
7906 <para>
7907 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
7908 the OpenEmbedded build system to populate the
7909 <filename>/etc/modules-load.d/modname.conf</filename>
7910 file with the list of modules to be auto-loaded on boot.
7911 The modules appear one-per-line in the file.
7912 Here is an example of the most common use case:
7913 <literallayout class='monospaced'>
7914 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
7915 </literallayout>
7916 </para>
7917
7918 <para>
7919 For information on how to populate the
7920 <filename>modname.conf</filename> file with
7921 <filename>modprobe.d</filename> syntax lines, see the
7922 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
7923 variable.
7924 </para>
7925 </glossdef>
7926 </glossentry>
7927
7928 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
7929 <info>
7930 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."
7931 </info>
7932 <glossdef>
7933 <para role="glossdeffirst">
7934<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7935 Provides a list of modules for which the OpenEmbedded
7936 build system expects to find
7937 <filename>module_conf_</filename><replaceable>modname</replaceable>
7938 values that specify configuration for each of the modules.
7939 For information on how to provide those module
7940 configurations, see the
7941 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
7942 variable.
7943 </para>
7944 </glossdef>
7945 </glossentry>
7946
7947 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
7948 <info>
7949 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)."
7950 </info>
7951 <glossdef>
7952 <para role="glossdeffirst">
7953<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7954 The location of the kernel sources.
7955 This variable is set to the value of the
7956 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7957 within the
7958 <link linkend='ref-classes-module'><filename>module</filename></link>
7959 class.
7960 For information on how this variable is used, see the
7961 "<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 -04007962 section in the Yocto Project Linux Kernel Development
7963 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007964 </para>
7965
7966 <para>
7967 To help maximize compatibility with out-of-tree drivers
7968 used to build modules, the OpenEmbedded build system also
7969 recognizes and uses the
7970 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
7971 variable, which is identical to the
7972 <filename>KERNEL_PATH</filename> variable.
7973 Both variables are common variables used by external
7974 Makefiles to point to the kernel source directory.
7975 </para>
7976 </glossdef>
7977 </glossentry>
7978
7979 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
7980 <info>
7981 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)."
7982 </info>
7983 <glossdef>
7984 <para role="glossdeffirst">
7985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7986 The location of the kernel sources.
7987 This variable is set to the value of the
7988 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7989 within the
7990 <link linkend='ref-classes-module'><filename>module</filename></link>
7991 class.
7992 For information on how this variable is used, see the
7993 "<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 -04007994 section in the Yocto Project Linux Kernel Development
7995 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007996 </para>
7997
7998 <para>
7999 To help maximize compatibility with out-of-tree drivers
8000 used to build modules, the OpenEmbedded build system also
8001 recognizes and uses the
8002 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
8003 variable, which is identical to the
8004 <filename>KERNEL_SRC</filename> variable.
8005 Both variables are common variables used by external
8006 Makefiles to point to the kernel source directory.
8007 </para>
8008 </glossdef>
8009 </glossentry>
8010
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008011 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
8012 <info>
8013 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
8014 </info>
8015 <glossdef>
8016 <para role="glossdeffirst">
8017<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8018 Specifies the version of the kernel as extracted from
8019 <filename>version.h</filename> or
8020 <filename>utsrelease.h</filename> within the kernel sources.
8021 Effects of setting this variable do not take affect until
8022 the kernel has been configured.
8023 Consequently, attempting to refer to this variable in
8024 contexts prior to configuration will not work.
8025 </para>
8026 </glossdef>
8027 </glossentry>
8028
8029 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
8030 <info>
8031 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
8032 </info>
8033 <glossdef>
8034 <para role="glossdeffirst">
8035<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8036 Specifies whether the data referenced through
8037 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
8038 is needed or not.
8039 The <filename>KERNELDEPMODDEPEND</filename> does not
8040 control whether or not that data exists,
8041 but simply whether or not it is used.
8042 If you do not need to use the data, set the
8043 <filename>KERNELDEPMODDEPEND</filename> variable in your
8044 <filename>initramfs</filename> recipe.
8045 Setting the variable there when the data is not needed
8046 avoids a potential dependency loop.
8047 </para>
8048 </glossdef>
8049 </glossentry>
8050
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008051 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
8052 <info>
8053 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."
8054 </info>
8055 <glossdef>
8056 <para role="glossdeffirst">
8057<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8058 Provides a short description of a configuration fragment.
8059 You use this variable in the <filename>.scc</filename>
8060 file that describes a configuration fragment file.
8061 Here is the variable used in a file named
8062 <filename>smp.scc</filename> to describe SMP being
8063 enabled:
8064 <literallayout class='monospaced'>
8065 define KFEATURE_DESCRIPTION "Enable SMP"
8066 </literallayout>
8067 </para>
8068 </glossdef>
8069 </glossentry>
8070
8071 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
8072 <info>
8073 KMACHINE[doc] = "The machine as known by the kernel."
8074 </info>
8075 <glossdef>
8076 <para role="glossdeffirst">
8077<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8078 The machine as known by the kernel.
8079 Sometimes the machine name used by the kernel does not
8080 match the machine name used by the OpenEmbedded build
8081 system.
8082 For example, the machine name that the OpenEmbedded build
8083 system understands as
8084 <filename>core2-32-intel-common</filename> goes by a
8085 different name in the Linux Yocto kernel.
8086 The kernel understands that machine as
8087 <filename>intel-core2-32</filename>.
8088 For cases like these, the <filename>KMACHINE</filename>
8089 variable maps the kernel machine name to the OpenEmbedded
8090 build system machine name.
8091 </para>
8092
8093 <para>
8094 These mappings between different names occur in the
8095 Yocto Linux Kernel's <filename>meta</filename> branch.
8096 As an example take a look in the
8097 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
8098 file:
8099 <literallayout class='monospaced'>
8100 LINUX_VERSION_core2-32-intel-common = "3.19.0"
8101 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
8102 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
8103 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
8104 KMACHINE_core2-32-intel-common = "intel-core2-32"
8105 KBRANCH_core2-32-intel-common = "standard/base"
8106 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
8107 </literallayout>
8108 The <filename>KMACHINE</filename> statement says that
8109 the kernel understands the machine name as
8110 "intel-core2-32".
8111 However, the OpenEmbedded build system understands the
8112 machine as "core2-32-intel-common".
8113 </para>
8114
8115 </glossdef>
8116 </glossentry>
8117
8118 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
8119 <info>
8120 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8121 </info>
8122 <glossdef>
8123 <para role="glossdeffirst">
8124<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8125 Defines the kernel type to be used in assembling the
8126 configuration.
8127 The linux-yocto recipes define "standard", "tiny",
8128 and "preempt-rt" kernel types.
8129 See the
8130 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8131 section in the Yocto Project Linux Kernel Development
8132 Manual for more information on kernel types.
8133 </para>
8134
8135 <para>
8136 You define the <filename>KTYPE</filename> variable in the
8137 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
8138 The value you use must match the value used for the
8139 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
8140 value used by the kernel recipe.
8141 </para>
8142 </glossdef>
8143 </glossentry>
8144 </glossdiv>
8145
8146 <glossdiv id='var-glossary-l'><title>L</title>
8147
8148 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
8149 <info>
8150 LABELS[doc] = "Provides a list of targets for automatic configuration."
8151 </info>
8152 <glossdef>
8153 <para role="glossdeffirst">
8154<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8155 Provides a list of targets for automatic configuration.
8156 </para>
8157
8158 <para>
8159 See the
8160 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
8161 class for more information on how this variable is used.
8162 </para>
8163 </glossdef>
8164 </glossentry>
8165
8166 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
8167 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008168 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 -05008169 </info>
8170 <glossdef>
8171 <para role="glossdeffirst">
8172<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008173 Lists the layers, separated by spaces, on which this
8174 recipe depends.
8175 Optionally, you can specify a specific layer version for a
8176 dependency by adding it to the end of the layer name.
8177 Here is an example:
8178 <literallayout class='monospaced'>
8179 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
8180 </literallayout>
8181 In this previous example, version 3 of "anotherlayer"
8182 is compared against
8183 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>.
8184 </para>
8185
8186 <para>
8187 An error is produced if any dependency is missing or
8188 the version numbers (if specified) do not match exactly.
8189 This variable is used in the
8190 <filename>conf/layer.conf</filename> file and must be
8191 suffixed with the name of the specific layer (e.g.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008192 <filename>LAYERDEPENDS_mylayer</filename>).
8193 </para>
8194 </glossdef>
8195 </glossentry>
8196
8197 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
8198 <info>
8199 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
8200 </info>
8201 <glossdef>
8202 <para role="glossdeffirst">
8203<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8204 When used inside the <filename>layer.conf</filename> configuration
8205 file, this variable provides the path of the current layer.
8206 This variable is not available outside of <filename>layer.conf</filename>
8207 and references are expanded immediately when parsing of the file completes.
8208 </para>
8209 </glossdef>
8210 </glossentry>
8211
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008212 <glossentry id='var-LAYERRECOMMENDS'><glossterm>LAYERRECOMMENDS</glossterm>
8213 <info>
8214 LAYERRECOMMENDS[doc] = "Lists the layers, separated by spaces, recommended for use with this layer."
8215 </info>
8216 <glossdef>
8217 <para role="glossdeffirst">
8218<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8219 Lists the layers, separated by spaces, recommended for
8220 use with this layer.
8221 </para>
8222
8223 <para>
8224 Optionally, you can specify a specific layer version for a
8225 recommendation by adding the version to the end of the
8226 layer name.
8227 Here is an example:
8228 <literallayout class='monospaced'>
8229 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
8230 </literallayout>
8231 In this previous example, version 3 of "anotherlayer" is
8232 compared against
8233 <filename>LAYERVERSION_anotherlayer</filename>.
8234 </para>
8235
8236 <para>
8237 This variable is used in the
8238 <filename>conf/layer.conf</filename> file and must be
8239 suffixed with the name of the specific layer (e.g.
8240 <filename>LAYERRECOMMENDS_mylayer</filename>).
8241 </para>
8242 </glossdef>
8243 </glossentry>
8244
Brad Bishop316dfdd2018-06-25 12:45:53 -04008245 <glossentry id='var-LAYERSERIES_COMPAT'><glossterm>LAYERSERIES_COMPAT</glossterm>
8246 <info>
8247 LAYERSERIES_COMPAT[doc] = "Lists the OpenEmbedded-Core versions for which a layer is compatible."
8248 </info>
8249 <glossdef>
8250 <para role="glossdeffirst">
8251<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8252 Lists the versions of the
8253 <link linkend='oe-core'>OpenEmbedded-Core</link> for which
8254 a layer is compatible.
8255 Using the <filename>LAYERSERIES_COMPAT</filename> variable
8256 allows the layer maintainer to indicate which combinations
8257 of the layer and OE-Core can be expected to work.
8258 The variable gives the system a way to detect when a layer
8259 has not been tested with new releases of OE-Core (e.g.
8260 the layer is not maintained).
8261 </para>
8262
8263 <para>
8264 To specify the OE-Core versions for which a layer is
8265 compatible, use this variable in your layer's
8266 <filename>conf/layer.conf</filename> configuration file.
8267 For the list, use the Yocto Project
8268 <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Release Name</ulink>
8269 (e.g. &DISTRO_NAME_NO_CAP;).
8270 To specify multiple OE-Core versions for the layer,
8271 use a space-separated list:
8272 <literallayout class='monospaced'>
8273 LAYERSERIES_COMPAT_<replaceable>layer_root_name</replaceable> = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
8274 </literallayout>
8275 <note>
8276 Setting <filename>LAYERSERIES_COMPAT</filename> is
8277 required by the Yocto Project Compatible version 2
8278 standard.
8279 The OpenEmbedded build system produces a warning if
8280 the variable is not set for any given layer.
8281 </note>
8282 </para>
8283
8284 <para>
8285 See the
8286 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-layer'>Creating Your Own Layer</ulink>"
8287 section in the Yocto Project Development Tasks Manual.
8288 </para>
8289 </glossdef>
8290 </glossentry>
8291
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008292 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
8293 <info>
8294 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."
8295 </info>
8296 <glossdef>
8297 <para role="glossdeffirst">
8298<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8299 Optionally specifies the version of a layer as a single number.
8300 You can use this within
8301 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
8302 for another layer in order to depend on a specific version
8303 of the layer.
8304 This variable is used in the <filename>conf/layer.conf</filename> file
8305 and must be suffixed with the name of the specific layer (e.g.
8306 <filename>LAYERVERSION_mylayer</filename>).
8307 </para>
8308 </glossdef>
8309 </glossentry>
8310
8311 <glossentry id='var-LD'><glossterm>LD</glossterm>
8312 <info>
8313 LD[doc] = "Minimal command and arguments to run the linker."
8314 </info>
8315 <glossdef>
8316 <para role="glossdeffirst">
8317<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8318 The minimal command and arguments used to run the
8319 linker.
8320 </para>
8321 </glossdef>
8322 </glossentry>
8323
8324 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
8325 <info>
8326 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
8327 </info>
8328 <glossdef>
8329 <para role="glossdeffirst">
8330<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8331 Specifies the flags to pass to the linker.
8332 This variable is exported to an environment
8333 variable and thus made visible to the software being
8334 built during the compilation step.
8335 </para>
8336
8337 <para>
8338 Default initialization for <filename>LDFLAGS</filename>
8339 varies depending on what is being built:
8340 <itemizedlist>
8341 <listitem><para>
8342 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
8343 when building for the target
8344 </para></listitem>
8345 <listitem><para>
8346 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
8347 when building for the build host (i.e.
8348 <filename>-native</filename>)
8349 </para></listitem>
8350 <listitem><para>
8351 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
8352 when building for an SDK (i.e.
8353 <filename>nativesdk-</filename>)
8354 </para></listitem>
8355 </itemizedlist>
8356 </para>
8357 </glossdef>
8358 </glossentry>
8359
8360 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
8361 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008362 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 -05008363 </info>
8364 <glossdef>
8365 <para role="glossdeffirst">
8366<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8367 Specifies the lead (or primary) compiled library file
Brad Bishop316dfdd2018-06-25 12:45:53 -04008368 (i.e. <filename>.so</filename>) that the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008369 <link linkend='ref-classes-debian'><filename>debian</filename></link>
8370 class applies its naming policy to given a recipe that
8371 packages multiple libraries.
8372 </para>
8373
8374 <para>
8375 This variable works in conjunction with the
8376 <filename>debian</filename> class.
8377 </para>
8378 </glossdef>
8379 </glossentry>
8380
8381 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
8382 <info>
8383 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
8384 </info>
8385 <glossdef>
8386 <para role="glossdeffirst">
8387<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8388 Checksums of the license text in the recipe source code.
8389 </para>
8390
8391 <para>
8392 This variable tracks changes in license text of the source
8393 code files.
8394 If the license text is changed, it will trigger a build
8395 failure, which gives the developer an opportunity to review any
8396 license change.
8397 </para>
8398
8399 <para>
8400 This variable must be defined for all recipes (unless
8401 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8402 is set to "CLOSED").</para>
8403 <para>For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008404 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Tracking License Changes</ulink>"
8405 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008406 </para>
8407 </glossdef>
8408 </glossentry>
8409
8410 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
8411 <info>
8412 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
8413 </info>
8414 <glossdef>
8415 <para role="glossdeffirst">
8416<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8417 The list of source licenses for the recipe.
8418 Follow these rules:
8419 <itemizedlist>
8420 <listitem><para>Do not use spaces within individual
8421 license names.</para></listitem>
8422 <listitem><para>Separate license names using
8423 | (pipe) when there is a choice between licenses.
8424 </para></listitem>
8425 <listitem><para>Separate license names using
8426 &amp; (ampersand) when multiple licenses exist
8427 that cover different parts of the source.
8428 </para></listitem>
8429 <listitem><para>You can use spaces between license
8430 names.</para></listitem>
8431 <listitem><para>For standard licenses, use the names
8432 of the files in
8433 <filename>meta/files/common-licenses/</filename>
8434 or the
8435 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
8436 flag names defined in
8437 <filename>meta/conf/licenses.conf</filename>.
8438 </para></listitem>
8439 </itemizedlist>
8440 </para>
8441
8442 <para>
8443 Here are some examples:
8444 <literallayout class='monospaced'>
8445 LICENSE = "LGPLv2.1 | GPLv3"
8446 LICENSE = "MPL-1 &amp; LGPLv2.1"
8447 LICENSE = "GPLv2+"
8448 </literallayout>
8449 The first example is from the recipes for Qt, which the user
8450 may choose to distribute under either the LGPL version
8451 2.1 or GPL version 3.
8452 The second example is from Cairo where two licenses cover
8453 different parts of the source code.
8454 The final example is from <filename>sysstat</filename>,
8455 which presents a single license.
8456 </para>
8457
8458 <para>
8459 You can also specify licenses on a per-package basis to
8460 handle situations where components of the output have
8461 different licenses.
8462 For example, a piece of software whose code is
8463 licensed under GPLv2 but has accompanying documentation
8464 licensed under the GNU Free Documentation License 1.2 could
8465 be specified as follows:
8466 <literallayout class='monospaced'>
8467 LICENSE = "GFDL-1.2 &amp; GPLv2"
8468 LICENSE_${PN} = "GPLv2"
8469 LICENSE_${PN}-doc = "GFDL-1.2"
8470 </literallayout>
8471 </para>
8472 </glossdef>
8473 </glossentry>
8474
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008475 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
8476 <info>
8477 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
8478 </info>
8479 <glossdef>
8480 <para role="glossdeffirst">
8481<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8482 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
8483 to "1" causes the OpenEmbedded build system to create
8484 an extra package (i.e.
8485 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
8486 for each recipe and to add those packages to the
8487 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
8488 </para>
8489
8490 <para>
8491 The <filename>${PN}-lic</filename> package installs a
8492 directory in <filename>/usr/share/licenses</filename>
8493 named <filename>${PN}</filename>, which is the recipe's
8494 base name, and installs files in that directory that
8495 contain license and copyright information (i.e. copies of
8496 the appropriate license files from
8497 <filename>meta/common-licenses</filename> that match the
8498 licenses specified in the
8499 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8500 variable of the recipe metadata and copies of files marked
8501 in
8502 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
8503 as containing license text).
8504 </para>
8505
8506 <para>
8507 For related information on providing license text, see the
8508 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
8509 variable, the
8510 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
8511 variable, and the
8512 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008513 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008514 </para>
8515 </glossdef>
8516 </glossentry>
8517
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008518 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
8519 <info>
8520 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."
8521 </info>
8522 <glossdef>
8523 <para role="glossdeffirst">
8524<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8525 Specifies additional flags for a recipe you must
8526 whitelist through
8527 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
8528 in order to allow the recipe to be built.
8529 When providing multiple flags, separate them with
8530 spaces.
8531 </para>
8532
8533 <para>
8534 This value is independent of
8535 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8536 and is typically used to mark recipes that might
8537 require additional licenses in order to be used in a
8538 commercial product.
8539 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008540 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8541 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008542 </para>
8543 </glossdef>
8544 </glossentry>
8545
8546 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
8547 <info>
8548 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
8549 </info>
8550 <glossdef>
8551 <para role="glossdeffirst">
8552<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8553 Lists license flags that when specified in
8554 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
8555 within a recipe should not prevent that recipe from being
8556 built.
8557 This practice is otherwise known as "whitelisting"
8558 license flags.
8559 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008560 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8561 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008562 </para>
8563 </glossdef>
8564 </glossentry>
8565
8566 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
8567 <info>
8568 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
8569 </info>
8570 <glossdef>
8571 <para role="glossdeffirst">
8572<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8573 Path to additional licenses used during the build.
8574 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
8575 to define the directory that holds common license text used during the build.
8576 The <filename>LICENSE_PATH</filename> variable allows you to extend that
8577 location to other areas that have additional licenses:
8578 <literallayout class='monospaced'>
8579 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
8580 </literallayout>
8581 </para>
8582 </glossdef>
8583 </glossentry>
8584
8585 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
8586 <info>
8587 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8588 </info>
8589 <glossdef>
8590 <para role="glossdeffirst">
8591<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8592 Defines the kernel type to be used in assembling the
8593 configuration.
8594 The linux-yocto recipes define "standard", "tiny", and
8595 "preempt-rt" kernel types.
8596 See the
8597 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8598 section in the Yocto Project Linux Kernel Development
8599 Manual for more information on kernel types.
8600 </para>
8601
8602 <para>
8603 If you do not specify a
8604 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
8605 "standard".
8606 Together with
8607 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
8608 the <filename>LINUX_KERNEL_TYPE</filename> variable
8609 defines the search
8610 arguments used by the kernel tools to find the appropriate
8611 description within the kernel
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008612 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008613 with which to build out the sources and configuration.
8614 </para>
8615 </glossdef>
8616 </glossentry>
8617
8618 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
8619 <info>
8620 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."
8621 </info>
8622 <glossdef>
8623 <para role="glossdeffirst">
8624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8625 The Linux version from <filename>kernel.org</filename>
8626 on which the Linux kernel image being built using the
8627 OpenEmbedded build system is based.
8628 You define this variable in the kernel recipe.
8629 For example, the <filename>linux-yocto-3.4.bb</filename>
8630 kernel recipe found in
8631 <filename>meta/recipes-kernel/linux</filename>
8632 defines the variables as follows:
8633 <literallayout class='monospaced'>
8634 LINUX_VERSION ?= "3.4.24"
8635 </literallayout>
8636 </para>
8637
8638 <para>
8639 The <filename>LINUX_VERSION</filename> variable is used to
8640 define <link linkend='var-PV'><filename>PV</filename></link>
8641 for the recipe:
8642 <literallayout class='monospaced'>
8643 PV = "${LINUX_VERSION}+git${SRCPV}"
8644 </literallayout>
8645 </para>
8646 </glossdef>
8647 </glossentry>
8648
8649 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
8650 <info>
8651 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."
8652 </info>
8653 <glossdef>
8654 <para role="glossdeffirst">
8655<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8656 A string extension compiled into the version
8657 string of the Linux kernel built with the OpenEmbedded
8658 build system.
8659 You define this variable in the kernel recipe.
8660 For example, the linux-yocto kernel recipes all define
8661 the variable as follows:
8662 <literallayout class='monospaced'>
8663 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
8664 </literallayout>
8665 </para>
8666
8667 <para>
8668 Defining this variable essentially sets the
8669 Linux kernel configuration item
8670 <filename>CONFIG_LOCALVERSION</filename>, which is visible
8671 through the <filename>uname</filename> command.
8672 Here is an example that shows the extension assuming it
8673 was set as previously shown:
8674 <literallayout class='monospaced'>
8675 $ uname -r
8676 3.7.0-rc8-custom
8677 </literallayout>
8678 </para>
8679 </glossdef>
8680 </glossentry>
8681
8682 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
8683 <info>
8684 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
8685 </info>
8686 <glossdef>
8687 <para role="glossdeffirst">
8688<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8689 Specifies the directory to which the OpenEmbedded build
8690 system writes overall log files.
8691 The default directory is <filename>${TMPDIR}/log</filename>.
8692 </para>
8693
8694 <para>
8695 For the directory containing logs specific to each task,
8696 see the <link linkend='var-T'><filename>T</filename></link>
8697 variable.
8698 </para>
8699 </glossdef>
8700 </glossentry>
8701
8702 </glossdiv>
8703
8704 <glossdiv id='var-glossary-m'><title>M</title>
8705
8706 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
8707 <info>
8708 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."
8709 </info>
8710 <glossdef>
8711 <para role="glossdeffirst">
8712<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8713 Specifies the target device for which the image is built.
8714 You define <filename>MACHINE</filename> in the
8715 <filename>local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008716 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008717 By default, <filename>MACHINE</filename> is set to
8718 "qemux86", which is an x86-based architecture machine to
8719 be emulated using QEMU:
8720 <literallayout class='monospaced'>
8721 MACHINE ?= "qemux86"
8722 </literallayout>
8723 </para>
8724
8725 <para>
8726 The variable corresponds to a machine configuration file of the
8727 same name, through which machine-specific configurations are set.
8728 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
8729 exists the corresponding <filename>qemux86.conf</filename> machine
8730 configuration file, which can be found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008731 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008732 in <filename>meta/conf/machine</filename>.
8733 </para>
8734
8735 <para>
8736 The list of machines supported by the Yocto Project as
8737 shipped include the following:
8738 <literallayout class='monospaced'>
8739 MACHINE ?= "qemuarm"
8740 MACHINE ?= "qemuarm64"
8741 MACHINE ?= "qemumips"
8742 MACHINE ?= "qemumips64"
8743 MACHINE ?= "qemuppc"
8744 MACHINE ?= "qemux86"
8745 MACHINE ?= "qemux86-64"
8746 MACHINE ?= "genericx86"
8747 MACHINE ?= "genericx86-64"
8748 MACHINE ?= "beaglebone"
8749 MACHINE ?= "mpc8315e-rdb"
8750 MACHINE ?= "edgerouter"
8751 </literallayout>
8752 The last five are Yocto Project reference hardware boards, which
8753 are provided in the <filename>meta-yocto-bsp</filename> layer.
8754 <note>Adding additional Board Support Package (BSP) layers
8755 to your configuration adds new possible settings for
8756 <filename>MACHINE</filename>.
8757 </note>
8758 </para>
8759 </glossdef>
8760 </glossentry>
8761
8762 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
8763 <info>
8764 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
8765 </info>
8766 <glossdef>
8767 <para role="glossdeffirst">
8768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8769 Specifies the name of the machine-specific architecture.
8770 This variable is set automatically from
8771 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
8772 or
8773 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
8774 You should not hand-edit the
8775 <filename>MACHINE_ARCH</filename> variable.
8776 </para>
8777 </glossdef>
8778 </glossentry>
8779
8780 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
8781 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008782 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 -05008783 </info>
8784 <glossdef>
8785 <para role="glossdeffirst">
8786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8787 A list of required machine-specific packages to install as part of
8788 the image being built.
8789 The build process depends on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008790 Furthermore, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008791 packages are essential for the machine to boot.
8792 The impact of this variable affects images based on
8793 <filename>packagegroup-core-boot</filename>,
8794 including the <filename>core-image-minimal</filename> image.
8795 </para>
8796
8797 <para>
8798 This variable is similar to the
8799 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
8800 variable with the exception that the image being built has a build
8801 dependency on the variable's list of packages.
8802 In other words, the image will not build if a file in this list is not found.
8803 </para>
8804
8805 <para>
8806 As an example, suppose the machine for which you are building requires
8807 <filename>example-init</filename> to be run during boot to initialize the hardware.
8808 In this case, you would use the following in the machine's
8809 <filename>.conf</filename> configuration file:
8810 <literallayout class='monospaced'>
8811 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
8812 </literallayout>
8813 </para>
8814 </glossdef>
8815 </glossentry>
8816
8817 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
8818 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008819 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 -05008820 </info>
8821 <glossdef>
8822 <para role="glossdeffirst">
8823<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8824 A list of recommended machine-specific packages to install as part of
8825 the image being built.
8826 The build process does not depend on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008827 However, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008828 packages are essential for the machine to boot.
8829 The impact of this variable affects images based on
8830 <filename>packagegroup-core-boot</filename>,
8831 including the <filename>core-image-minimal</filename> image.
8832 </para>
8833
8834 <para>
8835 This variable is similar to the
8836 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
8837 variable with the exception that the image being built does not have a build
8838 dependency on the variable's list of packages.
8839 In other words, the image will still build if a package in this list is not found.
8840 Typically, this variable is used to handle essential kernel modules, whose
8841 functionality may be selected to be built into the kernel rather than as a module,
8842 in which case a package will not be produced.
8843 </para>
8844
8845 <para>
8846 Consider an example where you have a custom kernel where a specific touchscreen
8847 driver is required for the machine to be usable.
8848 However, the driver can be built as a module or
8849 into the kernel depending on the kernel configuration.
8850 If the driver is built as a module, you want it to be installed.
8851 But, when the driver is built into the kernel, you still want the
8852 build to succeed.
8853 This variable sets up a "recommends" relationship so that in the latter case,
8854 the build will not fail due to the missing package.
8855 To accomplish this, assuming the package for the module was called
8856 <filename>kernel-module-ab123</filename>, you would use the
8857 following in the machine's <filename>.conf</filename> configuration
8858 file:
8859 <literallayout class='monospaced'>
8860 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
8861 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008862 <note>
8863 In this example, the
8864 <filename>kernel-module-ab123</filename> recipe
8865 needs to explicitly set its
8866 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
8867 variable to ensure that BitBake does not use the
8868 kernel recipe's
8869 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
8870 variable to satisfy the dependency.
8871 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008872 </para>
8873
8874 <para>
8875 Some examples of these machine essentials are flash, screen, keyboard, mouse,
8876 or touchscreen drivers (depending on the machine).
8877 </para>
8878 </glossdef>
8879 </glossentry>
8880
8881 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
8882 <info>
8883 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."
8884 </info>
8885 <glossdef>
8886 <para role="glossdeffirst">
8887<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8888 A list of machine-specific packages to install as part of the
8889 image being built that are not essential for the machine to boot.
8890 However, the build process for more fully-featured images
8891 depends on the packages being present.
8892 </para>
8893
8894 <para>
8895 This variable affects all images based on
8896 <filename>packagegroup-base</filename>, which does not include the
8897 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8898 images.
8899 </para>
8900
8901 <para>
8902 The variable is similar to the
8903 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
8904 variable with the exception that the image being built has a build
8905 dependency on the variable's list of packages.
8906 In other words, the image will not build if a file in this list is not found.
8907 </para>
8908
8909 <para>
8910 An example is a machine that has WiFi capability but is not
8911 essential for the machine to boot the image.
8912 However, if you are building a more fully-featured image, you want to enable
8913 the WiFi.
8914 The package containing the firmware for the WiFi hardware is always
8915 expected to exist, so it is acceptable for the build process to depend upon
8916 finding the package.
8917 In this case, assuming the package for the firmware was called
8918 <filename>wifidriver-firmware</filename>, you would use the following in the
8919 <filename>.conf</filename> file for the machine:
8920 <literallayout class='monospaced'>
8921 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
8922 </literallayout>
8923 </para>
8924 </glossdef>
8925 </glossentry>
8926
8927 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
8928 <info>
8929 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."
8930 </info>
8931 <glossdef>
8932 <para role="glossdeffirst">
8933<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8934 A list of machine-specific packages to install as part of the
8935 image being built that are not essential for booting the machine.
8936 The image being built has no build dependency on this list of packages.
8937 </para>
8938
8939 <para>
8940 This variable affects only images based on
8941 <filename>packagegroup-base</filename>, which does not include the
8942 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8943 images.
8944 </para>
8945
8946 <para>
8947 This variable is similar to the
8948 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
8949 variable with the exception that the image being built does not have a build
8950 dependency on the variable's list of packages.
8951 In other words, the image will build if a file in this list is not found.
8952 </para>
8953
8954 <para>
8955 An example is a machine that has WiFi capability but is not essential
8956 For the machine to boot the image.
8957 However, if you are building a more fully-featured image, you want to enable
8958 WiFi.
8959 In this case, the package containing the WiFi kernel module will not be produced
8960 if the WiFi driver is built into the kernel, in which case you still want the
8961 build to succeed instead of failing as a result of the package not being found.
8962 To accomplish this, assuming the package for the module was called
8963 <filename>kernel-module-examplewifi</filename>, you would use the
8964 following in the <filename>.conf</filename> file for the machine:
8965 <literallayout class='monospaced'>
8966 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
8967 </literallayout>
8968 </para>
8969 </glossdef>
8970 </glossentry>
8971
8972 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
8973 <info>
8974 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
8975 </info>
8976 <glossdef>
8977 <para role="glossdeffirst">
8978<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8979 Specifies the list of hardware features the
8980 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
8981 of supporting.
8982 For related information on enabling features, see the
8983 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
8984 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
8985 and
8986 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8987 variables.
8988 </para>
8989
8990 <para>
8991 For a list of hardware features supported by the Yocto
8992 Project as shipped, see the
8993 "<link linkend='ref-features-machine'>Machine Features</link>"
8994 section.
8995 </para>
8996 </glossdef>
8997 </glossentry>
8998
8999 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
9000 <info>
9001 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."
9002 </info>
9003 <glossdef>
9004 <para role="glossdeffirst">
9005<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9006 Features to be added to
9007 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
9008 if not also present in
9009 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
9010 </para>
9011
9012 <para>
9013 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
9014 It is not intended to be user-configurable.
9015 It is best to just reference the variable to see which machine features are
9016 being backfilled for all machine configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009017 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009018 more information.
9019 </para>
9020 </glossdef>
9021 </glossentry>
9022
9023 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
9024 <info>
9025 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
9026 </info>
9027 <glossdef>
9028 <para role="glossdeffirst">
9029<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9030 Features from
9031 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
9032 that should not be backfilled (i.e. added to
9033 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
9034 during the build.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009035 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009036 more information.
9037 </para>
9038 </glossdef>
9039 </glossentry>
9040
9041 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
9042 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009043 MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009044 </info>
9045 <glossdef>
9046 <para role="glossdeffirst">
9047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009048 A colon-separated list of overrides that apply to the
9049 current machine.
9050 By default, this list includes the value of
9051 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009052 </para>
9053
9054 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009055 You can extend <filename>MACHINEOVERRIDES</filename>
9056 to add extra overrides that should apply to a machine.
9057 For example, all machines emulated in QEMU (e.g.
9058 <filename>qemuarm</filename>, <filename>qemux86</filename>,
9059 and so forth) include a file named
9060 <filename>meta/conf/machine/include/qemu.inc</filename>
9061 that prepends the following override to
9062 <filename>MACHINEOVERRIDES</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009063 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009064 MACHINEOVERRIDES =. "qemuall:"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009065 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009066 This override allows variables to be overriden for all
9067 machines emulated in QEMU, like in the following example
9068 from the <filename>connman-conf</filename> recipe:
9069 <literallayout class='monospaced'>
9070 SRC_URI_append_qemuall = "file://wired.config \
9071 file://wired-setup \
9072 "
9073 </literallayout>
9074 The underlying mechanism behind
9075 <filename>MACHINEOVERRIDES</filename> is simply that it is
9076 included in the default value of
9077 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009078 </para>
9079 </glossdef>
9080 </glossentry>
9081
9082 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
9083 <info>
9084 MAINTAINER[doc] = "The email address of the distribution maintainer."
9085 </info>
9086 <glossdef>
9087 <para role="glossdeffirst">
9088<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9089 The email address of the distribution maintainer.
9090 </para>
9091 </glossdef>
9092 </glossentry>
9093
9094 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
9095 <info>
9096 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
9097 </info>
9098 <glossdef>
9099 <para role="glossdeffirst">
9100<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9101 Specifies additional paths from which the OpenEmbedded
9102 build system gets source code.
9103 When the build system searches for source code, it first
9104 tries the local download directory.
9105 If that location fails, the build system tries locations
9106 defined by
9107 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
9108 the upstream source, and then locations specified by
9109 <filename>MIRRORS</filename> in that order.
9110 </para>
9111
9112 <para>
9113 Assuming your distribution
9114 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
9115 is "poky", the default value for
9116 <filename>MIRRORS</filename> is defined in the
9117 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009118 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009119 </para>
9120 </glossdef>
9121 </glossentry>
9122
9123 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
9124 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009125 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 -05009126 </info>
9127 <glossdef>
9128 <para role="glossdeffirst">
9129<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9130 Specifies a prefix has been added to
9131 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
Brad Bishop316dfdd2018-06-25 12:45:53 -04009132 of a recipe or package (i.e. a Multilib version).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009133 The variable is used in places where the prefix needs to be
9134 added to or removed from a the name (e.g. the
9135 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
9136 <filename>MLPREFIX</filename> gets set when a prefix has been
9137 added to <filename>PN</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009138 <note>
9139 The "ML" in <filename>MLPREFIX</filename> stands for
9140 "MultiLib".
9141 This representation is historical and comes from
9142 a time when <filename>nativesdk</filename> was a suffix
9143 rather than a prefix on the recipe name.
9144 When <filename>nativesdk</filename> was turned into a
9145 prefix, it made sense to set
9146 <filename>MLPREFIX</filename> for it as well.
9147 </note>
9148 </para>
9149
9150 <para>
9151 To help understand when <filename>MLPREFIX</filename>
9152 might be needed, consider when
9153 <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
9154 is used to provide a <filename>nativesdk</filename> version
9155 of a recipe in addition to the target version.
9156 If that recipe declares build-time dependencies on tasks in
9157 other recipes by using
9158 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
9159 then a dependency on "foo" will automatically get rewritten
9160 to a dependency on "nativesdk-foo".
9161 However, dependencies like the following will not get
9162 rewritten automatically:
9163 <literallayout class='monospaced'>
9164 do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
9165 </literallayout>
9166 If you want such a dependency to also get transformed,
9167 you can do the following:
9168 <literallayout class='monospaced'>
9169 do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
9170 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009171 </para>
9172 </glossdef>
9173 </glossentry>
9174
9175 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
9176 <info>
9177 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."
9178 </info>
9179 <glossdef>
9180 <para role="glossdeffirst">
9181<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9182 This variable has been replaced by the
9183 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
9184 You should replace all occurrences of
9185 <filename>module_autoload</filename> with additions to
9186 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
9187 <literallayout class='monospaced'>
9188 module_autoload_rfcomm = "rfcomm"
9189 </literallayout>
9190 </para>
9191
9192 <para>
9193 should now be replaced with:
9194 <literallayout class='monospaced'>
9195 KERNEL_MODULE_AUTOLOAD += "rfcomm"
9196 </literallayout>
9197 See the
9198 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
9199 variable for more information.
9200 </para>
9201 </glossdef>
9202 </glossentry>
9203
9204 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
9205 <info>
9206 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
9207 </info>
9208 <glossdef>
9209 <para role="glossdeffirst">
9210<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9211 Specifies
9212 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
9213 syntax lines for inclusion in the
9214 <filename>/etc/modprobe.d/modname.conf</filename> file.
9215 </para>
9216
9217 <para>
9218 You can use this variable anywhere that it can be
9219 recognized by the kernel recipe or out-of-tree kernel
9220 module recipe (e.g. a machine configuration file, a
9221 distribution configuration file, an append file for the
9222 recipe, or the recipe itself).
9223 If you use this variable, you must also be sure to list
9224 the module name in the
9225 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
9226 variable.
9227 </para>
9228
9229 <para>
9230 Here is the general syntax:
9231 <literallayout class='monospaced'>
9232 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
9233 </literallayout>
9234 You must use the kernel module name override.
9235 </para>
9236
9237 <para>
9238 Run <filename>man modprobe.d</filename> in the shell to
9239 find out more information on the exact syntax
9240 you want to provide with <filename>module_conf</filename>.
9241 </para>
9242
9243 <para>
9244 Including <filename>module_conf</filename> causes the
9245 OpenEmbedded build system to populate the
9246 <filename>/etc/modprobe.d/modname.conf</filename>
9247 file with <filename>modprobe.d</filename> syntax lines.
9248 Here is an example that adds the options
9249 <filename>arg1</filename> and <filename>arg2</filename>
9250 to a module named <filename>mymodule</filename>:
9251 <literallayout class='monospaced'>
9252 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
9253 </literallayout>
9254 </para>
9255
9256 <para>
9257 For information on how to specify kernel modules to
9258 auto-load on boot, see the
9259 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
9260 variable.
9261 </para>
9262 </glossdef>
9263 </glossentry>
9264
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009265 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
9266 <info>
9267 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."
9268 </info>
9269 <glossdef>
9270 <para role="glossdeffirst">
9271<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9272 Controls creation of the <filename>modules-*.tgz</filename>
9273 file.
9274 Set this variable to "0" to disable creation of this
9275 file, which contains all of the kernel modules resulting
9276 from a kernel build.
9277 </para>
9278 </glossdef>
9279 </glossentry>
9280
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009281 <glossentry id='var-MODULE_TARBALL_LINK_NAME'><glossterm>MODULE_TARBALL_LINK_NAME</glossterm>
9282 <info>
9283 MODULE_TARBALL_LINK_NAME[doc] = "The link name of the kernel module tarball."
9284 </info>
9285 <glossdef>
9286 <para role="glossdeffirst">
9287<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9288 The link name of the kernel module tarball.
9289 This variable is set in the
9290 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9291 file as follows:
9292 <literallayout class='monospaced'>
9293 MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
9294 </literallayout>
9295 The value of the <filename>KERNEL_ARTIFACT_LINK_NAME</filename>
9296 variable, which is set in the same file, has the following
9297 value:
9298 <literallayout class='monospaced'>
9299 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
9300 </literallayout>
9301 </para>
9302
9303 <para>
9304 See the
9305 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
9306 variable for additional information.
9307 </para>
9308 </glossdef>
9309 </glossentry>
9310
9311 <glossentry id='var-MODULE_TARBALL_NAME'><glossterm>MODULE_TARBALL_NAME</glossterm>
9312 <info>
9313 MODULE_TARBALL_NAME[doc] = "The base name of the kernel module tarball."
9314 </info>
9315 <glossdef>
9316 <para role="glossdeffirst">
9317<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9318 The base name of the kernel module tarball.
9319 This variable is set in the
9320 <filename>meta/classes/kernel-artifact-names.bbclass</filename>
9321 file as follows:
9322 <literallayout class='monospaced'>
9323 MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
9324 </literallayout>
9325 The value of the
9326 <link linkend='var-KERNEL_ARTIFACT_NAME'><filename>KERNEL_ARTIFACT_NAME</filename></link>
9327 variable, which is set in the same file, has the following
9328 value:
9329 <literallayout class='monospaced'>
9330 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
9331 </literallayout>
9332 </para>
9333 </glossdef>
9334 </glossentry>
9335
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009336<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009337 <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
9338 <info>
9339 MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
9340 </info>
9341 <glossdef>
9342 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009343-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009344<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009345<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009346 Serves the same purpose as
9347 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
9348 but for the "HOST" system, in situations that involve a
9349 "HOST" and a "TARGET" system.
9350 See the
9351 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9352 variable for more information.
9353 </para>
9354
9355 <para>
9356 The default value of this variable is:
9357 <literallayout class='monospaced'>
9358 ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
9359 </literallayout>
9360 </para>
9361 </glossdef>
9362 </glossentry>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009363-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009364
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009365 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
9366 <info>
9367 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
9368 </info>
9369 <glossdef>
9370 <para role="glossdeffirst">
9371<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009372 Uniquely identifies the type of the target system for
9373 which packages are being built.
9374 This variable allows output for different types of target
9375 systems to be put into different subdirectories of the same
9376 output directory.
9377 </para>
9378
9379 <para>
9380 The default value of this variable is:
9381 <literallayout class='monospaced'>
9382 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
9383 </literallayout>
9384 Some classes (e.g.
9385 <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
9386 modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
9387 </para>
9388
9389 <para>
9390 See the
9391 <link linkend='var-STAMP'><filename>STAMP</filename></link>
9392 variable for an example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009393 See the
9394 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9395 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009396 </para>
9397 </glossdef>
9398 </glossentry>
9399
9400 </glossdiv>
9401
9402 <glossdiv id='var-glossary-n'><title>N</title>
9403
9404 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
9405 <info>
9406 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
9407 </info>
9408 <glossdef>
9409 <para role="glossdeffirst">
9410<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9411 A string identifying the host distribution.
9412 Strings consist of the host distributor ID
9413 followed by the release, as reported by the
9414 <filename>lsb_release</filename> tool
9415 or as read from <filename>/etc/lsb-release</filename>.
9416 For example, when running a build on Ubuntu 12.10, the value
9417 is "Ubuntu-12.10".
9418 If this information is unable to be determined, the value
9419 resolves to "Unknown".
9420 </para>
9421
9422 <para>
9423 This variable is used by default to isolate native shared
9424 state packages for different distributions (e.g. to avoid
9425 problems with <filename>glibc</filename> version
9426 incompatibilities).
9427 Additionally, the variable is checked against
9428 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
9429 if that variable is set.
9430 </para>
9431 </glossdef>
9432 </glossentry>
9433
9434 <glossentry id='var-NM'><glossterm>NM</glossterm>
9435 <info>
9436 NM[doc] = "Minimal command and arguments to run 'nm'."
9437 </info>
9438 <glossdef>
9439 <para role="glossdeffirst">
9440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9441 The minimal command and arguments to run
9442 <filename>nm</filename>.
9443 </para>
9444 </glossdef>
9445 </glossentry>
9446
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009447 <glossentry id='var-NO_GENERIC_LICENSE'><glossterm>NO_GENERIC_LICENSE</glossterm>
9448 <info>
9449 NO_GENERIC_LICENSE[doc] = "Used to allow copying a license that does not exist in common licenses."
9450 </info>
9451 <glossdef>
9452 <para role="glossdeffirst">
9453<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9454 Avoids QA errors when you use a non-common, non-CLOSED
9455 license in a recipe.
9456 Packages exist, such as the linux-firmware package, with
9457 many licenses that are not in any way common.
9458 Also, new licenses are added occasionally to avoid
9459 introducing a lot of common license files, which are only
9460 applicable to a specific package.
9461 <filename>NO_GENERIC_LICENSE</filename> is used to allow
9462 copying a license that does not exist in common licenses.
9463 </para>
9464
9465 <para>
9466 The following example shows how to add
9467 <filename>NO_GENERIC_LICENSE</filename> to a recipe:
9468 <literallayout class='monospaced'>
9469 NO_GENERIC_LICENSE[<replaceable>license_name</replaceable>] = "<replaceable>license_file_in_fetched_source</replaceable>"
9470 </literallayout>
9471 The following is an example that uses the
9472 <filename>LICENSE.Abilis.txt</filename> file as the license
9473 from the fetched source:
9474 <literallayout class='monospaced'>
9475 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
9476 </literallayout>
9477 </para>
9478 </glossdef>
9479 </glossentry>
9480
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009481 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
9482 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009483 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 -05009484 </info>
9485 <glossdef>
9486 <para role="glossdeffirst">
9487<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9488 Prevents installation of all "recommended-only" packages.
9489 Recommended-only packages are packages installed only
9490 through the
9491 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9492 variable).
9493 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
9494 to "1" turns this feature on:
9495 <literallayout class='monospaced'>
9496 NO_RECOMMENDATIONS = "1"
9497 </literallayout>
9498 </para>
9499
9500 <para>
9501 You can set this variable globally in your
9502 <filename>local.conf</filename> file or you can attach it to
9503 a specific image recipe by using the recipe name override:
9504 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009505 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009506 </literallayout>
9507 </para>
9508
9509 <para>
9510 It is important to realize that if you choose to not install
9511 packages using this variable and some other packages are
9512 dependent on them (i.e. listed in a recipe's
9513 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9514 variable), the OpenEmbedded build system ignores your
9515 request and will install the packages to avoid dependency
9516 errors.
9517 <note>
9518 Some recommended packages might be required for certain
9519 system functionality, such as kernel modules.
9520 It is up to you to add packages with the
9521 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9522 variable.
9523 </note>
9524 </para>
9525
9526 <para>
9527 Support for this variable exists only when using the
9528 IPK and RPM packaging backend.
9529 Support does not exist for DEB.
9530 </para>
9531
9532 <para>
9533 See the
9534 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9535 and the
9536 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
9537 variables for related information.
9538 </para>
9539 </glossdef>
9540 </glossentry>
9541
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009542 <glossentry id='var-NOAUTOPACKAGEDEBUG'><glossterm>NOAUTOPACKAGEDEBUG</glossterm>
9543 <info>
9544 NOAUTOPACKAGEDEBUG[doc] = "Disables auto package from splitting .debug files."
9545 </info>
9546 <glossdef>
9547 <para role="glossdeffirst">
9548<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9549 Disables auto package from splitting
9550 <filename>.debug</filename> files. If a recipe requires
9551 <filename>FILES_${PN}-dbg</filename> to be set manually,
9552 the <filename>NOAUTOPACKAGEDEBUG</filename> can be defined
9553 allowing you to define the content of the debug package.
9554 For example:
9555 <literallayout class='monospaced'>
9556 NOAUTOPACKAGEDEBUG = "1"
9557 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
9558 FILES_${PN}-dbg = "/usr/src/debug/"
9559 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
9560 </literallayout>
9561 </para>
9562 </glossdef>
9563 </glossentry>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009564 </glossdiv>
9565
9566 <glossdiv id='var-glossary-o'><title>O</title>
9567
9568 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
9569 <info>
9570 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
9571 </info>
9572 <glossdef>
9573 <para role="glossdeffirst">
9574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9575 The minimal command and arguments to run
9576 <filename>objcopy</filename>.
9577 </para>
9578 </glossdef>
9579 </glossentry>
9580
9581 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
9582 <info>
9583 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
9584 </info>
9585 <glossdef>
9586 <para role="glossdeffirst">
9587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9588 The minimal command and arguments to run
9589 <filename>objdump</filename>.
9590 </para>
9591 </glossdef>
9592 </glossentry>
9593
9594 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
9595 <info>
9596 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
9597 </info>
9598 <glossdef>
9599 <para role="glossdeffirst">
9600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9601 When inheriting the
9602 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
9603 class, this variable
9604 specifies additional arguments passed to the "sed" command.
9605 The sed command alters any paths in configuration scripts
9606 that have been set up during compilation.
9607 Inheriting this class results in all paths in these scripts
9608 being changed to point into the
9609 <filename>sysroots/</filename> directory so that all builds
9610 that use the script will use the correct directories
9611 for the cross compiling layout.
9612 </para>
9613
9614 <para>
9615 See the <filename>meta/classes/binconfig.bbclass</filename>
9616 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009617 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009618 for details on how this class applies these additional
9619 sed command arguments.
9620 For general information on the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009621 <filename>binconfig</filename> class, see the
9622 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009623 section.
9624 </para>
9625 </glossdef>
9626 </glossentry>
9627
9628 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
9629 <info>
9630 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."
9631 </info>
9632 <glossdef>
9633 <para role="glossdeffirst">
9634<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9635 An internal variable used to tell the OpenEmbedded build
9636 system what Python modules to import for every Python
9637 function run by the system.
9638 </para>
9639
9640 <note>
9641 Do not set this variable.
9642 It is for internal use only.
9643 </note>
9644 </glossdef>
9645 </glossentry>
9646
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009647 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
9648 <info>
9649 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."
9650 </info>
9651 <glossdef>
9652 <para role="glossdeffirst">
9653<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9654 The name of the build environment setup script for the
9655 purposes of setting up the environment within the
9656 extensible SDK.
9657 The default value is "oe-init-build-env".
9658 </para>
9659
9660 <para>
9661 If you use a custom script to set up your build
9662 environment, set the
9663 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
9664 name.
9665 </para>
9666 </glossdef>
9667 </glossentry>
9668
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009669 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
9670 <info>
9671 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
9672 </info>
9673 <glossdef>
9674 <para role="glossdeffirst">
9675<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9676 Controls how the OpenEmbedded build system spawns
9677 interactive terminals on the host development system
9678 (e.g. using the BitBake command with the
9679 <filename>-c devshell</filename> command-line option).
9680 For more information, see the
9681 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009682 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009683 </para>
9684
9685 <para>
9686 You can use the following values for the
9687 <filename>OE_TERMINAL</filename> variable:
9688 <literallayout class='monospaced'>
9689 auto
9690 gnome
9691 xfce
9692 rxvt
9693 screen
9694 konsole
9695 none
9696 </literallayout>
9697 </para>
9698 </glossdef>
9699 </glossentry>
9700
9701 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
9702 <info>
9703 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
9704 </info>
9705 <glossdef>
9706 <para role="glossdeffirst">
9707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9708 The directory from which the top-level build environment
9709 setup script is sourced.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009710 The Yocto Project provides a top-level build environment
9711 setup script:
9712 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
9713 When you run this script, the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009714 <filename>OEROOT</filename> variable resolves to the
9715 directory that contains the script.
9716 </para>
9717
9718 <para>
9719 For additional information on how this variable is used,
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009720 see the initialization script.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009721 </para>
9722 </glossdef>
9723 </glossentry>
9724
9725 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
9726 <info>
9727 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
9728 </info>
9729 <glossdef>
9730 <para role="glossdeffirst">
9731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9732 Declares the oldest version of the Linux kernel that the
9733 produced binaries must support.
9734 This variable is passed into the build of the Embedded
9735 GNU C Library (<filename>glibc</filename>).
9736 </para>
9737
9738 <para>
9739 The default for this variable comes from the
9740 <filename>meta/conf/bitbake.conf</filename> configuration
9741 file.
9742 You can override this default by setting the variable
9743 in a custom distribution configuration file.
9744 </para>
9745 </glossdef>
9746 </glossentry>
9747
9748 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
9749 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009750 OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009751 </info>
9752 <glossdef>
9753 <para role="glossdeffirst">
9754<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009755 A colon-separated list of overrides that currently apply.
9756 Overrides are a BitBake mechanism that allows variables to
9757 be selectively overridden at the end of parsing.
9758 The set of overrides in <filename>OVERRIDES</filename>
9759 represents the "state" during building, which includes
9760 the current recipe being built, the machine for which
9761 it is being built, and so forth.
9762 </para>
9763
9764 <para>
9765 As an example, if the string "an-override" appears as an
9766 element in the colon-separated list in
9767 <filename>OVERRIDES</filename>, then the following
9768 assignment will override <filename>FOO</filename> with the
9769 value "overridden" at the end of parsing:
9770 <literallayout class='monospaced'>
9771 FOO_an-override = "overridden"
9772 </literallayout>
9773 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009774 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009775 section in the BitBake User Manual for more information on
9776 the overrides mechanism.
9777 </para>
9778
9779 <para>
9780 The default value of <filename>OVERRIDES</filename>
9781 includes the values of the
9782 <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
9783 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
9784 and
9785 <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
9786 variables.
9787 Another important override included by default is
9788 <filename>pn-${PN}</filename>.
9789 This override allows variables to be set for a single
9790 recipe within configuration (<filename>.conf</filename>)
9791 files.
9792 Here is an example:
9793 <literallayout class='monospaced'>
9794 FOO_pn-myrecipe = "myrecipe-specific value"
9795 </literallayout>
9796 <note><title>Tip</title>
9797 An easy way to see what overrides apply is to search for
9798 <filename>OVERRIDES</filename> in the output of the
9799 <filename>bitbake -e</filename> command.
9800 See the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009801 "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-debugging-viewing-variable-values'>Viewing Variable Values</ulink>"
9802 section in the Yocto Project Development Tasks
9803 Manual for more information.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009804 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009805 </para>
9806 </glossdef>
9807 </glossentry>
9808 </glossdiv>
9809
9810 <glossdiv id='var-glossary-p'><title>P</title>
9811
9812 <glossentry id='var-P'><glossterm>P</glossterm>
9813 <info>
9814 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
9815 </info>
9816 <glossdef>
9817 <para role="glossdeffirst">
9818<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9819 The recipe name and version.
9820 <filename>P</filename> is comprised of the following:
9821 <literallayout class='monospaced'>
9822 ${PN}-${PV}
9823 </literallayout>
9824 </para>
9825 </glossdef>
9826 </glossentry>
9827
9828 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
9829 <info>
9830 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
9831 </info>
9832 <glossdef>
9833 <para role="glossdeffirst">
9834<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9835 The architecture of the resulting package or packages.
9836 </para>
9837
9838 <para>
9839 By default, the value of this variable is set to
9840 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
9841 when building for the target,
Brad Bishop316dfdd2018-06-25 12:45:53 -04009842 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>
9843 when building for the
9844 build host, and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009845 for the SDK.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009846 <note>
9847 See
9848 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>
9849 for more information.
9850 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009851 However, if your recipe's output packages are built
Brad Bishop316dfdd2018-06-25 12:45:53 -04009852 specific to the target machine rather than generally for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009853 the architecture of the machine, you should set
9854 <filename>PACKAGE_ARCH</filename> to the value of
9855 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
9856 in the recipe as follows:
9857 <literallayout class='monospaced'>
9858 PACKAGE_ARCH = "${MACHINE_ARCH}"
9859 </literallayout>
9860 </para>
9861 </glossdef>
9862 </glossentry>
9863
9864 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
9865 <info>
9866 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
9867 </info>
9868 <glossdef>
9869 <para role="glossdeffirst">
9870<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9871 Specifies a list of architectures compatible with
9872 the target machine.
9873 This variable is set automatically and should not
9874 normally be hand-edited.
9875 Entries are separated using spaces and listed in order
9876 of priority.
9877 The default value for
9878 <filename>PACKAGE_ARCHS</filename> is "all any noarch
9879 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
9880 </para>
9881 </glossdef>
9882 </glossentry>
9883
9884 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
9885 <info>
9886 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."
9887 </info>
9888 <glossdef>
9889 <para role="glossdeffirst">
9890<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9891 Enables easily adding packages to
9892 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
9893 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
9894 so that those added packages can pick up files that would normally be
9895 included in the default package.
9896 </para>
9897 </glossdef>
9898 </glossentry>
9899
9900 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
9901 <info>
9902 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."
9903 </info>
9904 <glossdef>
9905 <para role="glossdeffirst">
9906<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9907 This variable, which is set in the
9908 <filename>local.conf</filename> configuration file found in
9909 the <filename>conf</filename> folder of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009910 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009911 specifies the package manager the OpenEmbedded build system
9912 uses when packaging data.
9913 </para>
9914
9915 <para>
9916 You can provide one or more of the following arguments for
9917 the variable:
9918 <literallayout class='monospaced'>
9919 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
9920 </literallayout>
9921 <note><title>Warning</title>
9922 While it is a legal option, the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009923 <filename>package_tar</filename> class has limited
9924 functionality due to no support for package
9925 dependencies by that backend.
9926 Therefore, it is recommended that you do not use it.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009927 </note>
9928 The build system uses only the first argument in the list
9929 as the package manager when creating your image or SDK.
9930 However, packages will be created using any additional
9931 packaging classes you specify.
9932 For example, if you use the following in your
9933 <filename>local.conf</filename> file:
9934 <literallayout class='monospaced'>
9935 PACKAGE_CLASSES ?= "package_ipk"
9936 </literallayout>
9937 The OpenEmbedded build system uses the IPK package manager
9938 to create your image or SDK.
9939 </para>
9940
9941 <para>
9942 For information on packaging and build performance effects
9943 as a result of the package manager in use, see the
9944 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
9945 section.
9946 </para>
9947 </glossdef>
9948 </glossentry>
9949
9950 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
9951 <info>
9952 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)."
9953 </info>
9954 <glossdef>
9955 <para role="glossdeffirst">
9956<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9957 Determines how to split up the binary and debug information
9958 when creating <filename>*-dbg</filename> packages to be
9959 used with the GNU Project Debugger (GDB).
9960 </para>
9961
9962 <para>
9963 With the
9964 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
9965 you can control where debug information, which can include
9966 or exclude source files, is stored:
9967 <itemizedlist>
9968 <listitem><para>
9969 ".debug": Debug symbol files are placed next
9970 to the binary in a <filename>.debug</filename>
9971 directory on the target.
9972 For example, if a binary is installed into
9973 <filename>/bin</filename>, the corresponding debug
9974 symbol files are installed in
9975 <filename>/bin/.debug</filename>.
9976 Source files are placed in
9977 <filename>/usr/src/debug</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009978 </para></listitem>
9979 <listitem><para>
9980 "debug-file-directory": Debug symbol files are
9981 placed under <filename>/usr/lib/debug</filename>
9982 on the target, and separated by the path from where
9983 the binary is installed.
9984 For example, if a binary is installed in
9985 <filename>/bin</filename>, the corresponding debug
9986 symbols are installed in
9987 <filename>/usr/lib/debug/bin</filename>.
9988 Source files are placed in
9989 <filename>/usr/src/debug</filename>.
9990 </para></listitem>
9991 <listitem><para>
9992 "debug-without-src": The same behavior as
9993 ".debug" previously described with the exception
9994 that no source files are installed.
9995 </para></listitem>.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009996 <listitem><para>
9997 "debug-with-srcpkg": The same behavior as
9998 ".debug" previously described with the exception
9999 that all source files are placed in a separate
10000 <filename>*-src</filename> pkg.
Brad Bishop19323692019-04-05 15:28:33 -040010001 This is the default behavior.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010002 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010003 </itemizedlist>
10004 </para>
10005
10006 <para>
10007 You can find out more about debugging using GDB by reading
10008 the
10009 "<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 -050010010 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010011 </para>
10012 </glossdef>
10013 </glossentry>
10014
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010015 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
10016 <info>
10017 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
10018 </info>
10019 <glossdef>
10020 <para role="glossdeffirst">
10021<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10022 Prevents specific packages from being installed when
10023 you are installing complementary packages.
10024 </para>
10025
10026 <para>
10027 You might find that you want to prevent installing certain
10028 packages when you are installing complementary packages.
10029 For example, if you are using
10030 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
10031 to install <filename>dev-pkgs</filename>, you might not want
10032 to install all packages from a particular multilib.
10033 If you find yourself in this situation, you can use the
10034 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
10035 to specify regular expressions to match the packages you
10036 want to exclude.
10037 </para>
10038 </glossdef>
10039 </glossentry>
10040
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010041 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
10042 <info>
10043 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
10044 </info>
10045 <glossdef>
10046 <para role="glossdeffirst">
10047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10048 Lists packages that should not be installed into an image.
10049 For example:
10050 <literallayout class='monospaced'>
10051 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
10052 </literallayout>
10053 </para>
10054
10055 <para>
10056 You can set this variable globally in your
10057 <filename>local.conf</filename> file or you can attach it to
10058 a specific image recipe by using the recipe name override:
10059 <literallayout class='monospaced'>
10060 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
10061 </literallayout>
10062 </para>
10063
10064 <para>
10065 If you choose to not install
10066 a package using this variable and some other package is
10067 dependent on it (i.e. listed in a recipe's
10068 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10069 variable), the OpenEmbedded build system generates a fatal
10070 installation error.
10071 Because the build system halts the process with a fatal
10072 error, you can use the variable with an iterative
10073 development process to remove specific components from a
10074 system.
10075 </para>
10076
10077 <para>
10078 Support for this variable exists only when using the
10079 IPK and RPM packaging backend.
10080 Support does not exist for DEB.
10081 </para>
10082
10083 <para>
10084 See the
10085 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
10086 and the
10087 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
10088 variables for related information.
10089 </para>
10090 </glossdef>
10091 </glossentry>
10092
10093 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
10094 <info>
10095 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."
10096 </info>
10097 <glossdef>
10098 <para role="glossdeffirst">
10099<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10100 Specifies the list of architectures compatible with the device CPU.
10101 This variable is useful when you build for several different devices that use
10102 miscellaneous processors such as XScale and ARM926-EJS.
10103 </para>
10104 </glossdef>
10105 </glossentry>
10106
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010107 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
10108 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010109 PACKAGE_FEED_ARCHS[doc] = "Optionally specifies user-defined package architectures when constructing package feed URIs."
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010110 </info>
10111 <glossdef>
10112 <para role="glossdeffirst">
10113<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010114 Optionally specifies the package architectures used as
10115 part of the package feed URIs during the build.
10116 When used, the <filename>PACKAGE_FEED_ARCHS</filename>
10117 variable is appended to the final package feed URI, which
10118 is constructed using the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010119 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
10120 and
10121 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
10122 variables.
Brad Bishop316dfdd2018-06-25 12:45:53 -040010123 <note><title>Tip</title>
10124 You can use the <filename>PACKAGE_FEEDS_ARCHS</filename>
10125 variable to whitelist specific package architectures.
10126 If you do not need to whitelist specific architectures,
10127 which is a common case, you can omit this variable.
10128 Omitting the variable results in all available
10129 architectures for the current machine being included
10130 into remote package feeds.
10131 </note>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050010132 </para>
10133
10134 <para>
10135 Consider the following example where the
10136 <filename>PACKAGE_FEED_URIS</filename>,
10137 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
10138 <filename>PACKAGE_FEED_ARCHS</filename> variables are
10139 defined in your <filename>local.conf</filename> file:
10140 <literallayout class='monospaced'>
10141 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
10142 https://example.com/packagerepos/updates"
10143 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
10144 PACKAGE_FEED_ARCHS = "all core2-64"
10145 </literallayout>
10146 Given these settings, the resulting package feeds are
10147 as follows:
10148 <literallayout class='monospaced'>
10149 https://example.com/packagerepos/release/rpm/all
10150 https://example.com/packagerepos/release/rpm/core2-64
10151 https://example.com/packagerepos/release/rpm-dev/all
10152 https://example.com/packagerepos/release/rpm-dev/core2-64
10153 https://example.com/packagerepos/updates/rpm/all
10154 https://example.com/packagerepos/updates/rpm/core2-64
10155 https://example.com/packagerepos/updates/rpm-dev/all
10156 https://example.com/packagerepos/updates/rpm-dev/core2-64
10157 </literallayout>
10158 </para>
10159 </glossdef>
10160 </glossentry>
10161
10162 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
10163 <info>
10164 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
10165 </info>
10166 <glossdef>
10167 <para role="glossdeffirst">
10168<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10169 Specifies the base path used when constructing package feed
10170 URIs.
10171 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
10172 makes up the middle portion of a package feed URI used
10173 by the OpenEmbedded build system.
10174 The base path lies between the
10175 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
10176 and
10177 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
10178 variables.
10179 </para>
10180
10181 <para>
10182 Consider the following example where the
10183 <filename>PACKAGE_FEED_URIS</filename>,
10184 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
10185 <filename>PACKAGE_FEED_ARCHS</filename> variables are
10186 defined in your <filename>local.conf</filename> file:
10187 <literallayout class='monospaced'>
10188 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
10189 https://example.com/packagerepos/updates"
10190 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
10191 PACKAGE_FEED_ARCHS = "all core2-64"
10192 </literallayout>
10193 Given these settings, the resulting package feeds are
10194 as follows:
10195 <literallayout class='monospaced'>
10196 https://example.com/packagerepos/release/rpm/all
10197 https://example.com/packagerepos/release/rpm/core2-64
10198 https://example.com/packagerepos/release/rpm-dev/all
10199 https://example.com/packagerepos/release/rpm-dev/core2-64
10200 https://example.com/packagerepos/updates/rpm/all
10201 https://example.com/packagerepos/updates/rpm/core2-64
10202 https://example.com/packagerepos/updates/rpm-dev/all
10203 https://example.com/packagerepos/updates/rpm-dev/core2-64
10204 </literallayout>
10205 </para>
10206 </glossdef>
10207 </glossentry>
10208
10209 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
10210 <info>
10211 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
10212 </info>
10213 <glossdef>
10214 <para role="glossdeffirst">
10215<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10216 Specifies the front portion of the package feed URI
10217 used by the OpenEmbedded build system.
10218 Each final package feed URI is comprised of
10219 <filename>PACKAGE_FEED_URIS</filename>,
10220 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
10221 and
10222 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
10223 variables.
10224 </para>
10225
10226 <para>
10227 Consider the following example where the
10228 <filename>PACKAGE_FEED_URIS</filename>,
10229 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
10230 <filename>PACKAGE_FEED_ARCHS</filename> variables are
10231 defined in your <filename>local.conf</filename> file:
10232 <literallayout class='monospaced'>
10233 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
10234 https://example.com/packagerepos/updates"
10235 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
10236 PACKAGE_FEED_ARCHS = "all core2-64"
10237 </literallayout>
10238 Given these settings, the resulting package feeds are
10239 as follows:
10240 <literallayout class='monospaced'>
10241 https://example.com/packagerepos/release/rpm/all
10242 https://example.com/packagerepos/release/rpm/core2-64
10243 https://example.com/packagerepos/release/rpm-dev/all
10244 https://example.com/packagerepos/release/rpm-dev/core2-64
10245 https://example.com/packagerepos/updates/rpm/all
10246 https://example.com/packagerepos/updates/rpm/core2-64
10247 https://example.com/packagerepos/updates/rpm-dev/all
10248 https://example.com/packagerepos/updates/rpm-dev/core2-64
10249 </literallayout>
10250 </para>
10251 </glossdef>
10252 </glossentry>
10253
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010254 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
10255 <info>
10256 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
10257 </info>
10258 <glossdef>
10259 <para role="glossdeffirst">
10260<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10261 The <filename>PACKAGE_GROUP</filename> variable has been
10262 renamed to
10263 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
10264 See the variable description for
10265 <filename>FEATURE_PACKAGES</filename> for information.
10266 </para>
10267
10268 <para>
10269 If if you use the <filename>PACKAGE_GROUP</filename>
10270 variable, the OpenEmbedded build system issues a warning
10271 message.
10272 </para>
10273 </glossdef>
10274 </glossentry>
10275
10276 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
10277 <info>
10278 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."
10279 </info>
10280 <glossdef>
10281 <para role="glossdeffirst">
10282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10283 The final list of packages passed to the package manager
10284 for installation into the image.
10285 </para>
10286
10287 <para>
10288 Because the package manager controls actual installation
10289 of all packages, the list of packages passed using
10290 <filename>PACKAGE_INSTALL</filename> is not the final list
10291 of packages that are actually installed.
10292 This variable is internal to the image construction
10293 code.
10294 Consequently, in general, you should use the
10295 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
10296 variable to specify packages for installation.
10297 The exception to this is when working with
10298 the
10299 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
10300 image.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010301 When working with an initial RAM filesystem (initramfs)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010302 image, use the <filename>PACKAGE_INSTALL</filename>
10303 variable.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050010304 For information on creating an initramfs, see the
10305 "<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 -050010306 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010307 </para>
10308 </glossdef>
10309 </glossentry>
10310
10311 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
10312 <info>
10313 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."
10314 </info>
10315 <glossdef>
10316 <para role="glossdeffirst">
10317<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10318 Specifies a list of packages the OpenEmbedded build
10319 system attempts to install when creating an image.
10320 If a listed package fails to install, the build system
10321 does not generate an error.
10322 This variable is generally not user-defined.
10323 </para>
10324 </glossdef>
10325 </glossentry>
10326
10327 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
10328 <info>
10329 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."
10330 </info>
10331 <glossdef>
10332 <para role="glossdeffirst">
10333<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10334 Specifies a list of functions run to pre-process the
10335 <link linkend='var-PKGD'><filename>PKGD</filename></link>
10336 directory prior to splitting the files out to individual
10337 packages.
10338 </para>
10339 </glossdef>
10340 </glossentry>
10341
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010342 <glossentry id='var-PACKAGE_WRITE_DEPS'><glossterm>PACKAGE_WRITE_DEPS</glossterm>
10343 <info>
10344 PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools."
10345 </info>
10346 <glossdef>
10347 <para role="glossdeffirst">
10348<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10349 Specifies a list of dependencies for post-installation and
10350 pre-installation scripts on native/cross tools.
10351 If your post-installation or pre-installation script can
10352 execute at rootfs creation time rather than on the
10353 target but depends on a native tool in order to execute,
10354 you need to list the tools in
Brad Bishopd5ae7d92018-06-14 09:52:03 -070010355 <filename>PACKAGE_WRITE_DEPS</filename>.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010356 </para>
10357
10358 <para>
10359 For information on running post-installation scripts, see
10360 the
10361 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-post-installation-scripts'>Post-Installation Scripts</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010362 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010363 </para>
10364 </glossdef>
10365 </glossentry>
10366
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010367 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
10368 <info>
10369 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
10370 </info>
10371 <glossdef>
10372 <para role="glossdeffirst">
10373<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10374 This variable provides a means of enabling or disabling
10375 features of a recipe on a per-recipe basis.
10376 <filename>PACKAGECONFIG</filename> blocks are defined
10377 in recipes when you specify features and then arguments
10378 that define feature behaviors.
10379 Here is the basic block structure:
10380 <literallayout class='monospaced'>
10381 PACKAGECONFIG ??= "f1 f2 f3 ..."
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010382 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1,rt-recs-f1"
10383 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2,rt-recs-f2"
10384 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3,rt-recs-f3"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010385 </literallayout>
10386 </para>
10387
10388 <para>
10389 The <filename>PACKAGECONFIG</filename>
10390 variable itself specifies a space-separated list of the
10391 features to enable.
10392 Following the features, you can determine the behavior of
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010393 each feature by providing up to five order-dependent
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010394 arguments, which are separated by commas.
10395 You can omit any argument you like but must retain the
10396 separating commas.
10397 The order is important and specifies the following:
10398 <orderedlist>
10399 <listitem><para>Extra arguments
10400 that should be added to the configure script
10401 argument list
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010402 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
10403 or
10404 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010405 if the feature is enabled.</para></listitem>
10406 <listitem><para>Extra arguments
10407 that should be added to <filename>EXTRA_OECONF</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010408 or <filename>PACKAGECONFIG_CONFARGS</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010409 if the feature is disabled.
10410 </para></listitem>
10411 <listitem><para>Additional build dependencies
10412 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
10413 that should be added if the feature is enabled.
10414 </para></listitem>
10415 <listitem><para>Additional runtime dependencies
10416 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10417 that should be added if the feature is enabled.
10418 </para></listitem>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010419 <listitem><para>Additional runtime recommendations
10420 (<link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>)
10421 that should be added if the feature is enabled.
10422 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010423 </orderedlist>
10424 </para>
10425
10426 <para>
10427 Consider the following
10428 <filename>PACKAGECONFIG</filename> block taken from the
10429 <filename>librsvg</filename> recipe.
10430 In this example the feature is <filename>croco</filename>,
10431 which has three arguments that determine the feature's
10432 behavior.
10433 <literallayout class='monospaced'>
10434 PACKAGECONFIG ??= "croco"
10435 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
10436 </literallayout>
10437 The <filename>--with-croco</filename> and
10438 <filename>libcroco</filename> arguments apply only if
10439 the feature is enabled.
10440 In this case, <filename>--with-croco</filename> is
10441 added to the configure script argument list and
10442 <filename>libcroco</filename> is added to
Brad Bishop316dfdd2018-06-25 12:45:53 -040010443 <filename>DEPENDS</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010444 On the other hand, if the feature is disabled say through
10445 a <filename>.bbappend</filename> file in another layer, then
10446 the second argument <filename>--without-croco</filename> is
10447 added to the configure script rather than
10448 <filename>--with-croco</filename>.
10449 </para>
10450
10451 <para>
10452 The basic <filename>PACKAGECONFIG</filename> structure
10453 previously described holds true regardless of whether you
10454 are creating a block or changing a block.
10455 When creating a block, use the structure inside your
10456 recipe.
10457 </para>
10458
10459 <para>
10460 If you want to change an existing
10461 <filename>PACKAGECONFIG</filename> block, you can do so
10462 one of two ways:
10463 <itemizedlist>
10464 <listitem><para><emphasis>Append file:</emphasis>
10465 Create an append file named
10466 <replaceable>recipename</replaceable><filename>.bbappend</filename>
10467 in your layer and override the value of
10468 <filename>PACKAGECONFIG</filename>.
10469 You can either completely override the variable:
10470 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010471 PACKAGECONFIG = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010472 </literallayout>
10473 Or, you can just append the variable:
10474 <literallayout class='monospaced'>
10475 PACKAGECONFIG_append = " f4"
10476 </literallayout></para></listitem>
10477 <listitem><para><emphasis>Configuration file:</emphasis>
10478 This method is identical to changing the block
10479 through an append file except you edit your
10480 <filename>local.conf</filename> or
10481 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
10482 As with append files previously described,
10483 you can either completely override the variable:
10484 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080010485 PACKAGECONFIG_pn-<replaceable>recipename</replaceable> = "f4 f5"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010486 </literallayout>
10487 Or, you can just amend the variable:
10488 <literallayout class='monospaced'>
10489 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
10490 </literallayout></para></listitem>
10491 </itemizedlist>
10492 </para>
10493 </glossdef>
10494 </glossentry>
10495
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010496 <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
10497 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010498 PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from the PACKAGECONFIG setting."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010499 </info>
10500 <glossdef>
10501 <para role="glossdeffirst">
10502<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10503 A space-separated list of configuration options generated
10504 from the
10505 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
10506 setting.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010507 </para>
10508
10509 <para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010510 Classes such as
10511 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
10512 and
10513 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
10514 use <filename>PACKAGECONFIG_CONFARGS</filename> to pass
Brad Bishop316dfdd2018-06-25 12:45:53 -040010515 <filename>PACKAGECONFIG</filename> options to
10516 <filename>configure</filename> and
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010517 <filename>cmake</filename>, respectively.
10518 If you are using
10519 <filename>PACKAGECONFIG</filename> but not a class that
10520 handles the <filename>do_configure</filename> task, then
10521 you need to use
10522 <filename>PACKAGECONFIG_CONFARGS</filename> appropriately.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010523 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010524 </glossdef>
10525 </glossentry>
10526
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010527 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
10528 <info>
10529 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
10530 </info>
10531 <glossdef>
10532 <para role="glossdeffirst">
10533<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10534 For recipes inheriting the
10535 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
10536 class, setting
10537 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
10538 "1" specifies that the normal complementary packages
10539 (i.e. <filename>-dev</filename>,
10540 <filename>-dbg</filename>, and so forth) should not be
10541 automatically created by the
10542 <filename>packagegroup</filename> recipe, which is the
10543 default behavior.
10544 </para>
10545 </glossdef>
10546 </glossentry>
10547
10548 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
10549 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010550 PACKAGES[doc] = "The list of packages the recipe creates."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010551 </info>
10552 <glossdef>
10553 <para role="glossdeffirst">
10554<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010555 The list of packages the recipe creates.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010556 The default value is the following:
10557 <literallayout class='monospaced'>
10558 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
10559 </literallayout>
10560 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010561
10562 <para>
10563 During packaging, the
10564 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
10565 task goes through <filename>PACKAGES</filename> and uses
10566 the
10567 <link linkend='var-FILES'><filename>FILES</filename></link>
10568 variable corresponding to each package to assign files to
10569 the package.
10570 If a file matches the <filename>FILES</filename> variable
10571 for more than one package in <filename>PACKAGES</filename>,
10572 it will be assigned to the earliest (leftmost) package.
10573 </para>
10574
10575 <para>
10576 Packages in the variable's list that are empty (i.e. where
10577 none of the patterns in
10578 <filename>FILES_</filename><replaceable>pkg</replaceable>
10579 match any files installed by the
10580 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10581 task) are not generated, unless generation is forced through
10582 the
10583 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
10584 variable.
10585 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010586 </glossdef>
10587 </glossentry>
10588
10589 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
10590 <info>
10591 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
10592 </info>
10593 <glossdef>
10594 <para role="glossdeffirst">
10595<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10596 A promise that your recipe satisfies runtime dependencies
10597 for optional modules that are found in other recipes.
10598 <filename>PACKAGES_DYNAMIC</filename>
10599 does not actually satisfy the dependencies, it only states that
10600 they should be satisfied.
10601 For example, if a hard, runtime dependency
10602 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10603 of another package is satisfied
10604 at build time through the <filename>PACKAGES_DYNAMIC</filename>
10605 variable, but a package with the module name is never actually
10606 produced, then the other package will be broken.
10607 Thus, if you attempt to include that package in an image,
10608 you will get a dependency failure from the packaging system
10609 during the
10610 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
10611 task.
10612 </para>
10613
10614 <para>
10615 Typically, if there is a chance that such a situation can
10616 occur and the package that is not created is valid
10617 without the dependency being satisfied, then you should use
10618 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
10619 (a soft runtime dependency) instead of
10620 <filename>RDEPENDS</filename>.
10621 </para>
10622
10623 <para>
10624 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
10625 variable when you are splitting packages, see the
10626 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010627 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010628 </para>
10629 </glossdef>
10630 </glossentry>
10631
10632 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
10633 <info>
10634 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
10635 </info>
10636 <glossdef>
10637 <para role="glossdeffirst">
10638<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10639 Specifies a list of functions run to perform additional
10640 splitting of files into individual packages.
10641 Recipes can either prepend to this variable or prepend
10642 to the <filename>populate_packages</filename> function
10643 in order to perform additional package splitting.
10644 In either case, the function should set
10645 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
10646 <link linkend='var-FILES'><filename>FILES</filename></link>,
10647 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10648 and other packaging variables appropriately in order to
10649 perform the desired splitting.
10650 </para>
10651 </glossdef>
10652 </glossentry>
10653
10654 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
10655 <info>
10656 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."
10657 </info>
10658 <glossdef>
10659 <para role="glossdeffirst">
10660<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10661 Extra options passed to the <filename>make</filename>
10662 command during the
10663 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
10664 task in order to specify parallel compilation on the local
10665 build host.
10666 This variable is usually in the form "-j <replaceable>x</replaceable>",
10667 where <replaceable>x</replaceable> represents the maximum
10668 number of parallel threads <filename>make</filename> can
10669 run.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010670 <note><title>Caution</title>
10671 In order for <filename>PARALLEL_MAKE</filename> to be
10672 effective, <filename>make</filename> must be called
10673 with
10674 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10675 An easy way to ensure this is to use the
10676 <filename>oe_runmake</filename> function.
10677 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010678 </para>
10679
10680 <para>
10681 By default, the OpenEmbedded build system automatically
10682 sets this variable to be equal to the number of cores the
10683 build system uses.
10684 <note>
10685 If the software being built experiences dependency
10686 issues during the <filename>do_compile</filename>
10687 task that result in race conditions, you can clear
10688 the <filename>PARALLEL_MAKE</filename> variable within
10689 the recipe as a workaround.
10690 For information on addressing race conditions, see the
10691 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010692 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010693 </note>
10694 For single socket systems (i.e. one CPU), you should not
10695 have to override this variable to gain optimal parallelism
10696 during builds.
10697 However, if you have very large systems that employ
10698 multiple physical CPUs, you might want to make sure the
10699 <filename>PARALLEL_MAKE</filename> variable is not
10700 set higher than "-j 20".
10701 </para>
10702
10703 <para>
10704 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010705 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
10706 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010707 </para>
10708 </glossdef>
10709 </glossentry>
10710
10711 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
10712 <info>
10713 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
10714 </info>
10715 <glossdef>
10716 <para role="glossdeffirst">
10717<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10718 Extra options passed to the
10719 <filename>make install</filename> command during the
10720 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10721 task in order to specify parallel installation.
10722 This variable defaults to the value of
10723 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010724 <note><title>Notes and Cautions</title>
10725 <para>In order for <filename>PARALLEL_MAKEINST</filename>
10726 to be
10727 effective, <filename>make</filename> must be called
10728 with
10729 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10730 An easy way to ensure this is to use the
10731 <filename>oe_runmake</filename> function.</para>
10732
10733 <para>If the software being built experiences
10734 dependency issues during the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010735 <filename>do_install</filename> task that result in
10736 race conditions, you can clear the
10737 <filename>PARALLEL_MAKEINST</filename> variable within
10738 the recipe as a workaround.
10739 For information on addressing race conditions, see the
10740 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010741 section in the Yocto Project Development Tasks Manual.
10742 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010743 </note>
10744 </para>
10745 </glossdef>
10746 </glossentry>
10747
10748 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
10749 <info>
10750 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
10751 </info>
10752 <glossdef>
10753 <para role="glossdeffirst">
10754<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10755 Determines the action to take when a patch fails.
10756 You can set this variable to one of two values: "noop" and
10757 "user".
10758 </para>
10759
10760 <para>
10761 The default value of "noop" causes the build to simply fail
10762 when the OpenEmbedded build system cannot successfully
10763 apply a patch.
10764 Setting the value to "user" causes the build system to
10765 launch a shell and places you in the right location so that
10766 you can manually resolve the conflicts.
10767 </para>
10768
10769 <para>
10770 Set this variable in your
10771 <filename>local.conf</filename> file.
10772 </para>
10773 </glossdef>
10774 </glossentry>
10775
10776 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
10777 <info>
10778 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
10779 </info>
10780 <glossdef>
10781 <para role="glossdeffirst">
10782<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10783 Specifies the utility used to apply patches for a recipe
10784 during the
10785 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
10786 task.
10787 You can specify one of three utilities: "patch", "quilt", or
10788 "git".
10789 The default utility used is "quilt" except for the
10790 quilt-native recipe itself.
10791 Because the quilt tool is not available at the
10792 time quilt-native is being patched, it uses "patch".
10793 </para>
10794
10795 <para>
10796 If you wish to use an alternative patching tool, set the
10797 variable in the recipe using one of the following:
10798 <literallayout class='monospaced'>
10799 PATCHTOOL = "patch"
10800 PATCHTOOL = "quilt"
10801 PATCHTOOL = "git"
10802 </literallayout>
10803 </para>
10804 </glossdef>
10805 </glossentry>
10806
10807 <glossentry id='var-PE'><glossterm>PE</glossterm>
10808 <info>
10809 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."
10810 </info>
10811 <glossdef>
10812 <para role="glossdeffirst">
10813<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10814 The epoch of the recipe.
10815 By default, this variable is unset.
10816 The variable is used to make upgrades possible when the
10817 versioning scheme changes in some backwards incompatible
10818 way.
10819 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010820
10821 <para>
10822 <filename>PE</filename> is the default value of the
10823 <link linkend='var-PKGE'><filename>PKGE</filename></link>
10824 variable.
10825 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010826 </glossdef>
10827 </glossentry>
10828
10829 <glossentry id='var-PF'><glossterm>PF</glossterm>
10830 <info>
10831 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
10832 </info>
10833 <glossdef>
10834 <para role="glossdeffirst">
10835<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10836 Specifies the recipe or package name and includes all version and revision
10837 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
10838 <filename>bash-4.2-r1/</filename>).
10839 This variable is comprised of the following:
10840 <literallayout class='monospaced'>
10841 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
10842 </literallayout>
10843 </para>
10844 </glossdef>
10845 </glossentry>
10846
10847 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
10848 <info>
10849 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
10850 </info>
10851 <glossdef>
10852 <para role="glossdeffirst">
10853<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10854 When inheriting the
10855 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
10856 class, this variable identifies packages that contain
10857 the pixbuf loaders used with
10858 <filename>gdk-pixbuf</filename>.
10859 By default, the <filename>pixbufcache</filename> class
10860 assumes that the loaders are in the recipe's main package
10861 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
10862 Use this variable if the loaders you need are in a package
10863 other than that main package.
10864 </para>
10865 </glossdef>
10866 </glossentry>
10867
10868 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
10869 <info>
10870 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."
10871 </info>
10872 <glossdef>
10873 <para role="glossdeffirst">
10874<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10875 The name of the resulting package created by the
10876 OpenEmbedded build system.
10877 <note>
10878 When using the <filename>PKG</filename> variable, you
10879 must use a package name override.
10880 </note>
10881 </para>
10882
10883 <para>
10884 For example, when the
10885 <link linkend='ref-classes-debian'><filename>debian</filename></link>
10886 class renames the output package, it does so by setting
10887 <filename>PKG_<replaceable>packagename</replaceable></filename>.
10888 </para>
10889 </glossdef>
10890 </glossentry>
10891
10892 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
10893 <info>
10894 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
10895 </info>
10896 <glossdef>
10897 <para role="glossdeffirst">
10898<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10899 The path to <filename>pkg-config</filename> files for the
10900 current build context.
10901 <filename>pkg-config</filename> reads this variable
10902 from the environment.
10903 </para>
10904 </glossdef>
10905 </glossentry>
10906
10907 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
10908 <info>
10909 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
10910 </info>
10911 <glossdef>
10912 <para role="glossdeffirst">
10913<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10914 Points to the destination directory for files to be
10915 packaged before they are split into individual packages.
10916 This directory defaults to the following:
10917 <literallayout class='monospaced'>
10918 ${WORKDIR}/package
10919 </literallayout>
10920 </para>
10921
10922 <para>
10923 Do not change this default.
10924 </para>
10925 </glossdef>
10926 </glossentry>
10927
10928 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
10929 <info>
10930 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
10931 </info>
10932 <glossdef>
10933 <para role="glossdeffirst">
10934<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10935 Points to a shared, global-state directory that holds data
10936 generated during the packaging process.
10937 During the packaging process, the
10938 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10939 task packages data for each recipe and installs it into
10940 this temporary, shared area.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010941 This directory defaults to the following, which you should
10942 not change:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010943 <literallayout class='monospaced'>
10944 ${STAGING_DIR_HOST}/pkgdata
10945 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010946 For examples of how this data is used, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010947 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
10948 section in the Yocto Project Overview and Concepts Manual
10949 and the
10950 "<ulink url='&YOCTO_DOCS_DEV_URL;#viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></ulink>"
10951 section in the Yocto Project Development Tasks Manual.
10952 For more information on the shared, global-state directory,
10953 see
10954 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010955 </para>
10956 </glossdef>
10957 </glossentry>
10958
10959 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
10960 <info>
10961 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
10962 </info>
10963 <glossdef>
10964 <para role="glossdeffirst">
10965<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10966 Points to the parent directory for files to be packaged
10967 after they have been split into individual packages.
10968 This directory defaults to the following:
10969 <literallayout class='monospaced'>
10970 ${WORKDIR}/packages-split
10971 </literallayout>
10972 </para>
10973
10974 <para>
10975 Under this directory, the build system creates
10976 directories for each package specified in
10977 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
10978 Do not change this default.
10979 </para>
10980 </glossdef>
10981 </glossentry>
10982
10983 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
10984 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010985 PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010986 </info>
10987 <glossdef>
10988 <para role="glossdeffirst">
10989<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010990 Points to a temporary work area where the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010991 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010992 task saves package metadata.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010993 The <filename>PKGDESTWORK</filename> location defaults to
10994 the following:
10995 <literallayout class='monospaced'>
10996 ${WORKDIR}/pkgdata
10997 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010998 Do not change this default.
10999 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011000
11001 <para>
11002 The
11003 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
11004 task copies the package metadata from
11005 <filename>PKGDESTWORK</filename> to
11006 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
11007 to make it available globally.
11008 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011009 </glossdef>
11010 </glossentry>
11011
11012 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
11013 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011014 PKGE[doc] = "The epoch of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011015 </info>
11016 <glossdef>
11017 <para role="glossdeffirst">
11018<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011019 The epoch of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011020 By default, <filename>PKGE</filename> is set to
11021 <link linkend='var-PE'><filename>PE</filename></link>.
11022 </para>
11023 </glossdef>
11024 </glossentry>
11025
11026 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
11027 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011028 PKGR[doc] = "The revision of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011029 </info>
11030 <glossdef>
11031 <para role="glossdeffirst">
11032<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011033 The revision of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011034 By default, <filename>PKGR</filename> is set to
11035 <link linkend='var-PR'><filename>PR</filename></link>.
11036 </para>
11037 </glossdef>
11038 </glossentry>
11039
11040 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
11041 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011042 PKGV[doc] = "The version of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011043 </info>
11044 <glossdef>
11045 <para role="glossdeffirst">
11046<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011047 The version of the package(s) built by the
11048 recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011049 By default, <filename>PKGV</filename> is set to
11050 <link linkend='var-PV'><filename>PV</filename></link>.
11051 </para>
11052 </glossdef>
11053 </glossentry>
11054
11055 <glossentry id='var-PN'><glossterm>PN</glossterm>
11056 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011057 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 -050011058 </info>
11059 <glossdef>
11060 <para role="glossdeffirst">
11061<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11062 This variable can have two separate functions depending on the context: a recipe
11063 name or a resulting package name.
11064 </para>
11065
11066 <para>
11067 <filename>PN</filename> refers to a recipe name in the context of a file used
11068 by the OpenEmbedded build system as input to create a package.
11069 The name is normally extracted from the recipe file name.
11070 For example, if the recipe is named
11071 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
11072 will be "expat".
11073 </para>
11074
11075 <para>
11076 The variable refers to a package name in the context of a file created or produced by the
11077 OpenEmbedded build system.
11078 </para>
11079
11080 <para>
11081 If applicable, the <filename>PN</filename> variable also contains any special
11082 suffix or prefix.
11083 For example, using <filename>bash</filename> to build packages for the native
11084 machine, <filename>PN</filename> is <filename>bash-native</filename>.
11085 Using <filename>bash</filename> to build packages for the target and for Multilib,
11086 <filename>PN</filename> would be <filename>bash</filename> and
11087 <filename>lib64-bash</filename>, respectively.
11088 </para>
11089 </glossdef>
11090 </glossentry>
11091
11092 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
11093 <info>
11094 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
11095 </info>
11096 <glossdef>
11097 <para role="glossdeffirst">
11098<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11099 Lists recipes you do not want the OpenEmbedded build system
11100 to build.
11101 This variable works in conjunction with the
11102 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011103 class, which is inherited globally.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011104 </para>
11105
11106 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011107 To prevent a recipe from being built, use the
11108 <filename>PNBLACKLIST</filename> variable in your
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011109 <filename>local.conf</filename> file.
11110 Here is an example that prevents
11111 <filename>myrecipe</filename> from being built:
11112 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011113 PNBLACKLIST[myrecipe] = "Not supported by our organization."
11114 </literallayout>
11115 </para>
11116 </glossdef>
11117 </glossentry>
11118
11119 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
11120 <info>
11121 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."
11122 </info>
11123 <glossdef>
11124 <para role="glossdeffirst">
11125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11126 Specifies a list of functions to call once the
11127 OpenEmbedded build system has created the host part of
11128 the SDK.
11129 You can specify functions separated by semicolons:
11130 <literallayout class='monospaced'>
11131 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
11132 </literallayout>
11133 </para>
11134
11135 <para>
11136 If you need to pass the SDK path to a command
11137 within a function, you can use
11138 <filename>${SDK_DIR}</filename>, which points to
11139 the parent directory used by the OpenEmbedded build
11140 system when creating SDK output.
11141 See the
11142 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
11143 variable for more information.
11144 </para>
11145 </glossdef>
11146 </glossentry>
11147
11148 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
11149 <info>
11150 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."
11151 </info>
11152 <glossdef>
11153 <para role="glossdeffirst">
11154<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11155 Specifies a list of functions to call once the
11156 OpenEmbedded build system has created the target part of
11157 the SDK.
11158 You can specify functions separated by semicolons:
11159 <literallayout class='monospaced'>
11160 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
11161 </literallayout>
11162 </para>
11163
11164 <para>
11165 If you need to pass the SDK path to a command
11166 within a function, you can use
11167 <filename>${SDK_DIR}</filename>, which points to
11168 the parent directory used by the OpenEmbedded build
11169 system when creating SDK output.
11170 See the
11171 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
11172 variable for more information.
11173 </para>
11174 </glossdef>
11175 </glossentry>
11176
11177 <glossentry id='var-PR'><glossterm>PR</glossterm>
11178 <info>
11179 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
11180 </info>
11181 <glossdef>
11182 <para role="glossdeffirst">
11183<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011184 The revision of the recipe. The default value for this
11185 variable is "r0".
11186 Subsequent revisions of the recipe conventionally have the
11187 values "r1", "r2", and so forth.
11188 When
11189 <link linkend='var-PV'><filename>PV</filename></link>
11190 increases, <filename>PR</filename> is conventionally reset
11191 to "r0".
11192 <note>
11193 The OpenEmbedded build system does not need the aid of
11194 <filename>PR</filename> to know when to rebuild a
11195 recipe.
11196 The build system uses the task
Brad Bishop316dfdd2018-06-25 12:45:53 -040011197 <ulink url='&YOCTO_DOCS_OM_URL;#overview-checksums'>input checksums</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011198 along with the
11199 <link linkend='structure-build-tmp-stamps'>stamp</link>
11200 and
Brad Bishop316dfdd2018-06-25 12:45:53 -040011201 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state cache</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011202 mechanisms.
11203 </note>
11204 The <filename>PR</filename> variable primarily becomes
11205 significant when a package manager dynamically installs
11206 packages on an already built image.
11207 In this case, <filename>PR</filename>, which is the default
11208 value of
11209 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
11210 helps the package manager distinguish which package is the
11211 most recent one in cases where many packages have the same
11212 <filename>PV</filename> (i.e. <filename>PKGV</filename>).
11213 A component having many packages with the same
11214 <filename>PV</filename> usually means that the packages all
11215 install the same upstream version, but with later
11216 (<filename>PR</filename>) version packages including
11217 packaging fixes.
11218 <note>
11219 <filename>PR</filename> does not need to be increased
11220 for changes that do not change the package contents or
11221 metadata.
11222 </note>
11223 Because manually managing <filename>PR</filename> can be
11224 cumbersome and error-prone, an automated solution exists.
11225 See the
11226 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011227 section in the Yocto Project Development Tasks Manual
11228 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011229 </para>
11230 </glossdef>
11231 </glossentry>
11232
11233 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
11234 <info>
11235 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
11236 </info>
11237 <glossdef>
11238 <para role="glossdeffirst">
11239<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040011240 If multiple recipes provide the same item, this variable
11241 determines which recipe is preferred and thus provides
11242 the item (i.e. the preferred provider).
11243 You should always suffix this variable with the name of the
11244 provided item.
11245 And, you should define the variable using the preferred
11246 recipe's name
11247 (<link linkend='var-PN'><filename>PN</filename></link>).
11248 Here is a common example:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011249 <literallayout class='monospaced'>
11250 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
Brad Bishop316dfdd2018-06-25 12:45:53 -040011251 </literallayout>
11252 In the previous example, multiple recipes are providing
11253 "virtual/kernel".
11254 The <filename>PREFERRED_PROVIDER</filename> variable is
11255 set with the name (<filename>PN</filename>) of the recipe
11256 you prefer to provide "virtual/kernel".
11257 </para>
11258
11259 <para>
11260 Following are more examples:
11261 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011262 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
11263 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
11264 </literallayout>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011265 For more information, see the
11266 "<ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>Using Virtual Providers</ulink>"
11267 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011268 <note>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011269 If you use a <filename>virtual/*</filename> item
11270 with <filename>PREFERRED_PROVIDER</filename>, then any
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011271 recipe that
11272 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011273 that item but is not selected (defined) by
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011274 <filename>PREFERRED_PROVIDER</filename> is prevented
11275 from building, which is usually desirable since this
11276 mechanism is designed to select between mutually
11277 exclusive alternative providers.
11278 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011279 </para>
11280 </glossdef>
11281 </glossentry>
11282
11283 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
11284 <info>
11285 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
11286 </info>
11287 <glossdef>
11288 <para role="glossdeffirst">
11289<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011290 If multiple versions of recipes exist, this
11291 variable determines which version is given preference.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011292 You must always suffix the variable with the
11293 <link linkend='var-PN'><filename>PN</filename></link>
11294 you want to select, and you should set the
11295 <link linkend='var-PV'><filename>PV</filename></link>
11296 accordingly for precedence.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011297 </para>
11298
11299 <para>
11300 The <filename>PREFERRED_VERSION</filename> variable
11301 supports limited wildcard use through the
11302 "<filename>%</filename>" character.
11303 You can use the character to match any number of
11304 characters, which can be useful when specifying versions
11305 that contain long revision numbers that potentially change.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011306 Here are two examples:
11307 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011308 PREFERRED_VERSION_python = "3.4.0"
Brad Bishopc342db32019-05-15 21:57:59 -040011309 PREFERRED_VERSION_linux-yocto = "5.0%"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011310 </literallayout>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011311 <note><title>Important</title>
11312 The use of the "<filename>%</filename>" character
11313 is limited in that it only works at the end of the
11314 string.
11315 You cannot use the wildcard character in any other
11316 location of the string.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011317 </note>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011318 </para>
11319
11320 <para>
11321 The specified version is matched against
11322 <link linkend='var-PV'><filename>PV</filename></link>,
11323 which does not necessarily match the version part of
11324 the recipe's filename.
11325 For example, consider two recipes
11326 <filename>foo_1.2.bb</filename> and
11327 <filename>foo_git.bb</filename> where
11328 <filename>foo_git.bb</filename> contains the following
11329 assignment:
11330 <literallayout class='monospaced'>
11331 PV = "1.1+git${SRCPV}"
11332 </literallayout>
11333 In this case, the correct way to select
11334 <filename>foo_git.bb</filename> is by using an
11335 assignment such as the following:
11336 <literallayout class='monospaced'>
11337 PREFERRED_VERSION_foo = "1.1+git%"
11338 </literallayout>
11339 Compare that previous example against the following
11340 incorrect example, which does not work:
11341 <literallayout class='monospaced'>
11342 PREFERRED_VERSION_foo = "git"
11343 </literallayout>
11344 </para>
11345
11346 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011347 Sometimes the <filename>PREFERRED_VERSION</filename>
11348 variable can be set by configuration files in a way that
11349 is hard to change.
11350 You can use
11351 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
11352 to set a machine-specific override.
11353 Here is an example:
11354 <literallayout class='monospaced'>
Brad Bishopc342db32019-05-15 21:57:59 -040011355 PREFERRED_VERSION_linux-yocto_qemux86 = "5.0%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011356 </literallayout>
11357 Although not recommended, worst case, you can also use the
11358 "forcevariable" override, which is the strongest override
11359 possible.
11360 Here is an example:
11361 <literallayout class='monospaced'>
Brad Bishopc342db32019-05-15 21:57:59 -040011362 PREFERRED_VERSION_linux-yocto_forcevariable = "5.0%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011363 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011364 <note>
11365 The <filename>_forcevariable</filename> override is
11366 not handled specially.
11367 This override only works because the default value of
Brad Bishop316dfdd2018-06-25 12:45:53 -040011368 <filename>OVERRIDES</filename> includes
11369 "forcevariable".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011370 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011371 </para>
11372 </glossdef>
11373 </glossentry>
11374
11375 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
11376 <info>
11377 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
11378 </info>
11379 <glossdef>
11380 <para role="glossdeffirst">
11381<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11382 Specifies additional paths from which the OpenEmbedded
11383 build system gets source code.
11384 When the build system searches for source code, it first
11385 tries the local download directory.
11386 If that location fails, the build system tries locations
11387 defined by <filename>PREMIRRORS</filename>, the upstream
11388 source, and then locations specified by
11389 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
11390 in that order.
11391 </para>
11392
11393 <para>
11394 Assuming your distribution
11395 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
11396 is "poky", the default value for
11397 <filename>PREMIRRORS</filename> is defined in the
11398 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011399 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011400 </para>
11401
11402 <para>
11403 Typically, you could add a specific server for the
11404 build system to attempt before any others by adding
11405 something like the following to the
11406 <filename>local.conf</filename> configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011407 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011408 <literallayout class='monospaced'>
11409 PREMIRRORS_prepend = "\
11410 git://.*/.* http://www.yoctoproject.org/sources/ \n \
11411 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
11412 http://.*/.* http://www.yoctoproject.org/sources/ \n \
11413 https://.*/.* http://www.yoctoproject.org/sources/ \n"
11414 </literallayout>
11415 These changes cause the build system to intercept
11416 Git, FTP, HTTP, and HTTPS requests and direct them to
11417 the <filename>http://</filename> sources mirror.
11418 You can use <filename>file://</filename> URLs to point
11419 to local directories or network shares as well.
11420 </para>
11421 </glossdef>
11422 </glossentry>
11423
11424 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
11425 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011426 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 -050011427 </info>
11428 <glossdef>
11429 <para role="glossdeffirst">
11430<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11431 Indicates the importance of a package.
11432 </para>
11433
11434 <para>
11435 <filename>PRIORITY</filename> is considered to be part of
11436 the distribution policy because the importance of any given
11437 recipe depends on the purpose for which the distribution
11438 is being produced.
11439 Thus, <filename>PRIORITY</filename> is not normally set
11440 within recipes.
11441 </para>
11442
11443 <para>
11444 You can set <filename>PRIORITY</filename> to "required",
11445 "standard", "extra", and "optional", which is the default.
11446 </para>
11447 </glossdef>
11448 </glossentry>
11449
11450 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
11451 <info>
11452 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
11453 </info>
11454 <glossdef>
11455 <para role="glossdeffirst">
11456<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11457 Specifies libraries installed within a recipe that
11458 should be ignored by the OpenEmbedded build system's
11459 shared library resolver.
11460 This variable is typically used when software being
11461 built by a recipe has its own private versions of a
11462 library normally provided by another recipe.
11463 In this case, you would not want the package containing
11464 the private libraries to be set as a dependency on other
11465 unrelated packages that should instead depend on the
11466 package providing the standard version of the library.
11467 </para>
11468
11469 <para>
11470 Libraries specified in this variable should be specified
11471 by their file name.
11472 For example, from the Firefox recipe in meta-browser:
11473 <literallayout class='monospaced'>
11474 PRIVATE_LIBS = "libmozjs.so \
11475 libxpcom.so \
11476 libnspr4.so \
11477 libxul.so \
11478 libmozalloc.so \
11479 libplc4.so \
11480 libplds4.so"
11481 </literallayout>
11482 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011483
11484 <para>
11485 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011486 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11487 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011488 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011489 </glossdef>
11490 </glossentry>
11491
11492 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
11493 <info>
11494 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."
11495 </info>
11496 <glossdef>
11497 <para role="glossdeffirst">
11498<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11499 A list of aliases by which a particular recipe can be
11500 known.
11501 By default, a recipe's own
11502 <filename><link linkend='var-PN'>PN</link></filename>
11503 is implicitly already in its <filename>PROVIDES</filename>
11504 list.
11505 If a recipe uses <filename>PROVIDES</filename>, the
11506 additional aliases are synonyms for the recipe and can
11507 be useful satisfying dependencies of other recipes during
11508 the build as specified by
11509 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
11510 </para>
11511
11512 <para>
11513 Consider the following example
11514 <filename>PROVIDES</filename> statement from a recipe
11515 file <filename>libav_0.8.11.bb</filename>:
11516 <literallayout class='monospaced'>
11517 PROVIDES += "libpostproc"
11518 </literallayout>
11519 The <filename>PROVIDES</filename> statement results in
11520 the "libav" recipe also being known as "libpostproc".
11521 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011522
11523 <para>
11524 In addition to providing recipes under alternate names,
11525 the <filename>PROVIDES</filename> mechanism is also used
11526 to implement virtual targets.
11527 A virtual target is a name that corresponds to some
11528 particular functionality (e.g. a Linux kernel).
11529 Recipes that provide the functionality in question list the
11530 virtual target in <filename>PROVIDES</filename>.
11531 Recipes that depend on the functionality in question can
Brad Bishop316dfdd2018-06-25 12:45:53 -040011532 include the virtual target in <filename>DEPENDS</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011533 to leave the choice of provider open.
11534 </para>
11535
11536 <para>
11537 Conventionally, virtual targets have names on the form
11538 "virtual/function" (e.g. "virtual/kernel").
11539 The slash is simply part of the name and has no
11540 syntactical significance.
11541 </para>
11542
11543 <para>
11544 The
11545 <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
11546 variable is used to select which particular recipe
11547 provides a virtual target.
11548 <note>
11549 <para>A corresponding mechanism for virtual runtime
11550 dependencies (packages) exists.
11551 However, the mechanism does not depend on any special
11552 functionality beyond ordinary variable assignments.
11553 For example,
11554 <filename>VIRTUAL-RUNTIME_dev_manager</filename>
11555 refers to the package of the component that manages
11556 the <filename>/dev</filename> directory.</para>
11557
11558 <para>Setting the "preferred provider" for runtime
11559 dependencies is as simple as using the following
11560 assignment in a configuration file:</para>
11561 <literallayout class='monospaced'>
11562 VIRTUAL-RUNTIME_dev_manager = "udev"
11563 </literallayout>
11564 </note>
11565 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011566 </glossdef>
11567 </glossentry>
11568
11569 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
11570 <info>
11571 PRSERV_HOST[doc] = "The network based PR service host and port."
11572 </info>
11573 <glossdef>
11574 <para role="glossdeffirst">
11575<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11576 The network based
11577 <link linkend='var-PR'><filename>PR</filename></link>
11578 service host and port.
11579 </para>
11580
11581 <para>
11582 The <filename>conf/local.conf.sample.extended</filename>
11583 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011584 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011585 shows how the <filename>PRSERV_HOST</filename> variable is
11586 set:
11587 <literallayout class='monospaced'>
11588 PRSERV_HOST = "localhost:0"
11589 </literallayout>
11590 You must set the variable if you want to automatically
11591 start a local
11592 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
11593 You can set <filename>PRSERV_HOST</filename> to other
11594 values to use a remote PR service.
11595 </para>
11596 </glossdef>
11597 </glossentry>
11598
11599 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
11600 <info>
11601 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
11602 </info>
11603 <glossdef>
11604 <para role="glossdeffirst">
11605<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11606 Specifies whether or not
11607 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
11608 (ptest) functionality is enabled when building a recipe.
11609 You should not set this variable directly.
11610 Enabling and disabling building Package Tests
11611 at build time should be done by adding "ptest" to (or
11612 removing it from)
11613 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
11614 </para>
11615 </glossdef>
11616 </glossentry>
11617
11618 <glossentry id='var-PV'><glossterm>PV</glossterm>
11619 <info>
11620 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
11621 </info>
11622 <glossdef>
11623 <para role="glossdeffirst">
11624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11625 The version of the recipe.
11626 The version is normally extracted from the recipe filename.
11627 For example, if the recipe is named
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011628 <filename>expat_2.0.1.bb</filename>, then the default value
11629 of <filename>PV</filename> will be "2.0.1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011630 <filename>PV</filename> is generally not overridden within
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011631 a recipe unless it is building an unstable (i.e.
11632 development) version from a source code repository
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011633 (e.g. Git or Subversion).
11634 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011635
11636 <para>
11637 <filename>PV</filename> is the default value of the
11638 <link linkend='var-PKGV'><filename>PKGV</filename></link>
11639 variable.
11640 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011641 </glossdef>
11642 </glossentry>
11643
11644 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
11645 <info>
11646 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."
11647 </info>
11648 <glossdef>
11649 <para role="glossdeffirst">
11650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11651 When used by recipes that inherit the
11652 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11653 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11654 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11655 or
11656 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11657 classes, denotes the Application Binary Interface (ABI)
11658 currently in use for Python.
11659 By default, the ABI is "m".
11660 You do not have to set this variable as the OpenEmbedded
11661 build system sets it for you.
11662 </para>
11663
11664 <para>
11665 The OpenEmbedded build system uses the ABI to construct
11666 directory names used when installing the Python headers
11667 and libraries in sysroot
11668 (e.g. <filename>.../python3.3m/...</filename>).
11669 </para>
11670
11671 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011672 Recipes that inherit the <filename>distutils</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011673 class during cross-builds also use this variable to
11674 locate the headers and libraries of the appropriate Python
11675 that the extension is targeting.
11676 </para>
11677 </glossdef>
11678 </glossentry>
11679
11680 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
11681 <info>
11682 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
11683 </info>
11684 <glossdef>
11685 <para role="glossdeffirst">
11686<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11687 When used by recipes that inherit the
11688 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11689 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11690 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11691 or
11692 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11693 classes, specifies the major Python version being built.
Brad Bishop96ff1982019-08-19 13:50:42 -040011694 For Python 3.x, <filename>PYTHON_PN</filename> would be
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011695 "python3".
11696 You do not have to set this variable as the
11697 OpenEmbedded build system automatically sets it for you.
11698 </para>
11699
11700 <para>
11701 The variable allows recipes to use common infrastructure
11702 such as the following:
11703 <literallayout class='monospaced'>
11704 DEPENDS += "${PYTHON_PN}-native"
11705 </literallayout>
11706 In the previous example, the version of the dependency
11707 is <filename>PYTHON_PN</filename>.
11708 </para>
11709 </glossdef>
11710 </glossentry>
11711
11712 </glossdiv>
11713
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011714 <glossdiv id='var-glossary-r'><title>R</title>
11715
11716 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
11717 <info>
11718 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
11719 </info>
11720 <glossdef>
11721 <para role="glossdeffirst">
11722<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11723 The minimal command and arguments to run
11724 <filename>ranlib</filename>.
11725 </para>
11726 </glossdef>
11727 </glossentry>
11728
11729 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
11730 <info>
11731 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."
11732 </info>
11733 <glossdef>
11734 <para role="glossdeffirst">
11735<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11736 The list of packages that conflict with packages.
11737 Note that packages will not be installed if conflicting
11738 packages are not first removed.
11739 </para>
11740
11741 <para>
11742 Like all package-controlling variables, you must always use
11743 them in conjunction with a package name override.
11744 Here is an example:
11745 <literallayout class='monospaced'>
11746 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
11747 </literallayout>
11748 </para>
11749
11750 <para>
11751 BitBake, which the OpenEmbedded build system uses, supports
11752 specifying versioned dependencies.
11753 Although the syntax varies depending on the packaging
11754 format, BitBake hides these differences from you.
11755 Here is the general syntax to specify versions with
11756 the <filename>RCONFLICTS</filename> variable:
11757 <literallayout class='monospaced'>
11758 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11759 </literallayout>
11760 For <filename>operator</filename>, you can specify the
11761 following:
11762 <literallayout class='monospaced'>
11763 =
11764 &lt;
11765 &gt;
11766 &lt;=
11767 &gt;=
11768 </literallayout>
11769 For example, the following sets up a dependency on version
11770 1.2 or greater of the package <filename>foo</filename>:
11771 <literallayout class='monospaced'>
11772 RCONFLICTS_${PN} = "foo (>= 1.2)"
11773 </literallayout>
11774 </para>
11775 </glossdef>
11776 </glossentry>
11777
11778 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
11779 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011780 RDEPENDS[doc] = "Lists runtime dependencies of a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011781 </info>
11782 <glossdef>
11783 <para role="glossdeffirst">
11784<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011785 Lists runtime dependencies of a package.
11786 These dependencies are other packages that must be
11787 installed in order for the package to function correctly.
11788 As an example, the following assignment declares that the
11789 package <filename>foo</filename> needs the packages
11790 <filename>bar</filename> and <filename>baz</filename> to
11791 be installed:
11792 <literallayout class='monospaced'>
11793 RDEPENDS_foo = "bar baz"
11794 </literallayout>
11795 The most common types of package runtime dependencies are
11796 automatically detected and added.
11797 Therefore, most recipes do not need to set
11798 <filename>RDEPENDS</filename>.
11799 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011800 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11801 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011802 </para>
11803
11804 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011805 The practical effect of the above
11806 <filename>RDEPENDS</filename> assignment is that
11807 <filename>bar</filename> and <filename>baz</filename>
11808 will be declared as dependencies inside the package
11809 <filename>foo</filename> when it is written out by one of
11810 the
11811 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
11812 tasks.
11813 Exactly how this is done depends on which package format
11814 is used, which is determined by
11815 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
11816 When the corresponding package manager installs the
11817 package, it will know to also install the packages on
11818 which it depends.
11819 </para>
11820
11821 <para>
11822 To ensure that the packages <filename>bar</filename> and
11823 <filename>baz</filename> get built, the previous
11824 <filename>RDEPENDS</filename> assignment also causes a task
11825 dependency to be added.
11826 This dependency is from the recipe's
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011827 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011828 (not to be confused with
11829 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
11830 task to the <filename>do_package_write_*</filename>
11831 task of the recipes that build <filename>bar</filename> and
11832 <filename>baz</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011833 </para>
11834
11835 <para>
11836 The names of the packages you list within
11837 <filename>RDEPENDS</filename> must be the names of other
11838 packages - they cannot be recipe names.
11839 Although package names and recipe names usually match,
11840 the important point here is that you are
11841 providing package names within the
11842 <filename>RDEPENDS</filename> variable.
11843 For an example of the default list of packages created from
11844 a recipe, see the
11845 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11846 variable.
11847 </para>
11848
11849 <para>
11850 Because the <filename>RDEPENDS</filename> variable applies
11851 to packages being built, you should always use the variable
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011852 in a form with an attached package name (remember that a
11853 single recipe can build multiple packages).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011854 For example, suppose you are building a development package
11855 that depends on the <filename>perl</filename> package.
11856 In this case, you would use the following
11857 <filename>RDEPENDS</filename> statement:
11858 <literallayout class='monospaced'>
11859 RDEPENDS_${PN}-dev += "perl"
11860 </literallayout>
11861 In the example, the development package depends on
11862 the <filename>perl</filename> package.
11863 Thus, the <filename>RDEPENDS</filename> variable has the
11864 <filename>${PN}-dev</filename> package name as part of the
11865 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011866 <note>
11867 <title>Caution</title>
11868 <filename>RDEPENDS_${PN}-dev</filename> includes
11869 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
11870 by default.
11871 This default is set in the BitBake configuration file
11872 (<filename>meta/conf/bitbake.conf</filename>).
11873 Be careful not to accidentally remove
11874 <filename>${PN}</filename> when modifying
11875 <filename>RDEPENDS_${PN}-dev</filename>.
11876 Use the "+=" operator rather than the "=" operator.
11877 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011878 </para>
11879
11880 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011881 The package names you use with
11882 <filename>RDEPENDS</filename> must appear as they would in
11883 the <filename>PACKAGES</filename> variable.
11884 The
11885 <link linkend='var-PKG'><filename>PKG</filename></link>
11886 variable allows a different name to be used for
11887 the final package (e.g. the
11888 <link linkend='ref-classes-debian'><filename>debian</filename></link>
11889 class uses this to rename packages), but this final package
11890 name cannot be used with <filename>RDEPENDS</filename>,
11891 which makes sense as <filename>RDEPENDS</filename> is meant
11892 to be independent of the package format used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011893 </para>
11894
11895 <para>
11896 BitBake, which the OpenEmbedded build system uses, supports
11897 specifying versioned dependencies.
11898 Although the syntax varies depending on the packaging
11899 format, BitBake hides these differences from you.
11900 Here is the general syntax to specify versions with
11901 the <filename>RDEPENDS</filename> variable:
11902 <literallayout class='monospaced'>
11903 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11904 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011905 For <replaceable>operator</replaceable>, you can specify the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011906 following:
11907 <literallayout class='monospaced'>
11908 =
11909 &lt;
11910 &gt;
11911 &lt;=
11912 &gt;=
11913 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011914 For <replaceable>version</replaceable>, provide the version
11915 number.
11916 <note><title>Tip</title>
11917 You can use
11918 <link linkend='var-EXTENDPKGV'><filename>EXTENDPKGV</filename></link>
11919 to provide a full package version specification.
11920 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011921 For example, the following sets up a dependency on version
11922 1.2 or greater of the package <filename>foo</filename>:
11923 <literallayout class='monospaced'>
11924 RDEPENDS_${PN} = "foo (>= 1.2)"
11925 </literallayout>
11926 </para>
11927
11928 <para>
11929 For information on build-time dependencies, see the
11930 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
11931 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011932 You can also see the
11933 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
11934 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
11935 sections in the BitBake User Manual for additional
11936 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011937 </para>
11938 </glossdef>
11939 </glossentry>
11940
11941 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
11942 <info>
11943 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."
11944 </info>
11945 <glossdef>
11946 <para role="glossdeffirst">
11947<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11948 When inheriting the
11949 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
11950 class, this
11951 variable identifies distribution features that must
11952 exist in the current configuration in order for the
11953 OpenEmbedded build system to build the recipe.
11954 In other words, if the
11955 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
11956 lists a feature that does not appear in
11957 <filename>DISTRO_FEATURES</filename> within the
11958 current configuration, an error occurs and the
11959 build stops.
11960 </para>
11961 </glossdef>
11962 </glossentry>
11963
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011964 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
11965 <info>
11966 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
11967 </info>
11968 <glossdef>
11969 <para role="glossdeffirst">
11970<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11971 With <filename>rm_work</filename> enabled, this
11972 variable specifies a list of recipes whose work directories
11973 should not be removed.
11974 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
11975 section for more details.
11976 </para>
11977 </glossdef>
11978 </glossentry>
11979
11980 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
11981 <info>
11982 ROOT_HOME[doc] = "Defines the root home directory."
11983 </info>
11984 <glossdef>
11985 <para role="glossdeffirst">
11986<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11987 Defines the root home directory.
11988 By default, this directory is set as follows in the
11989 BitBake configuration file:
11990 <literallayout class='monospaced'>
11991 ROOT_HOME ??= "/home/root"
11992 </literallayout>
11993 <note>
11994 This default value is likely used because some
11995 embedded solutions prefer to have a read-only root
11996 filesystem and prefer to keep writeable data in one
11997 place.
11998 </note>
11999 </para>
12000
12001 <para>
12002 You can override the default by setting the variable
12003 in any layer or in the <filename>local.conf</filename> file.
12004 Because the default is set using a "weak" assignment
12005 (i.e. "??="), you can use either of the following forms
12006 to define your override:
12007 <literallayout class='monospaced'>
12008 ROOT_HOME = "/root"
12009 ROOT_HOME ?= "/root"
12010 </literallayout>
12011 These override examples use <filename>/root</filename>,
12012 which is probably the most commonly used override.
12013 </para>
12014 </glossdef>
12015 </glossentry>
12016
12017 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
12018 <info>
12019 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
12020 </info>
12021 <glossdef>
12022 <para role="glossdeffirst">
12023<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12024 Indicates a filesystem image to include as the root
12025 filesystem.
12026 </para>
12027
12028 <para>
12029 The <filename>ROOTFS</filename> variable is an optional
12030 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012031 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012032 class.
12033 </para>
12034 </glossdef>
12035 </glossentry>
12036
12037 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
12038 <info>
12039 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
12040 </info>
12041 <glossdef>
12042 <para role="glossdeffirst">
12043<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12044 Specifies a list of functions to call after the
12045 OpenEmbedded build system has installed packages.
12046 You can specify functions separated by semicolons:
12047 <literallayout class='monospaced'>
12048 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
12049 </literallayout>
12050 </para>
12051
12052 <para>
12053 If you need to pass the root filesystem path to a command
12054 within a function, you can use
12055 <filename>${IMAGE_ROOTFS}</filename>, which points to
12056 the directory that becomes the root filesystem image.
12057 See the
12058 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12059 variable for more information.
12060 </para>
12061 </glossdef>
12062 </glossentry>
12063
12064 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
12065 <info>
12066 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
12067 </info>
12068 <glossdef>
12069 <para role="glossdeffirst">
12070<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12071 Specifies a list of functions to call once the
12072 OpenEmbedded build system has created the root filesystem.
12073 You can specify functions separated by semicolons:
12074 <literallayout class='monospaced'>
12075 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12076 </literallayout>
12077 </para>
12078
12079 <para>
12080 If you need to pass the root filesystem path to a command
12081 within a function, you can use
12082 <filename>${IMAGE_ROOTFS}</filename>, which points to
12083 the directory that becomes the root filesystem image.
12084 See the
12085 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12086 variable for more information.
12087 </para>
12088 </glossdef>
12089 </glossentry>
12090
12091 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
12092 <info>
12093 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
12094 </info>
12095 <glossdef>
12096 <para role="glossdeffirst">
12097<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12098 Specifies a list of functions to call after the
12099 OpenEmbedded build system has removed unnecessary
12100 packages.
12101 When runtime package management is disabled in the
12102 image, several packages are removed including
12103 <filename>base-passwd</filename>,
12104 <filename>shadow</filename>, and
12105 <filename>update-alternatives</filename>.
12106 You can specify functions separated by semicolons:
12107 <literallayout class='monospaced'>
12108 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
12109 </literallayout>
12110 </para>
12111
12112 <para>
12113 If you need to pass the root filesystem path to a command
12114 within a function, you can use
12115 <filename>${IMAGE_ROOTFS}</filename>, which points to
12116 the directory that becomes the root filesystem image.
12117 See the
12118 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12119 variable for more information.
12120 </para>
12121 </glossdef>
12122 </glossentry>
12123
12124 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
12125 <info>
12126 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
12127 </info>
12128 <glossdef>
12129 <para role="glossdeffirst">
12130<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12131 Specifies a list of functions to call before the
12132 OpenEmbedded build system has created the root filesystem.
12133 You can specify functions separated by semicolons:
12134 <literallayout class='monospaced'>
12135 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12136 </literallayout>
12137 </para>
12138
12139 <para>
12140 If you need to pass the root filesystem path to a command
12141 within a function, you can use
12142 <filename>${IMAGE_ROOTFS}</filename>, which points to
12143 the directory that becomes the root filesystem image.
12144 See the
12145 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
12146 variable for more information.
12147 </para>
12148 </glossdef>
12149 </glossentry>
12150
12151 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
12152 <info>
12153 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."
12154 </info>
12155 <glossdef>
12156 <para role="glossdeffirst">
12157<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12158 A list of package name aliases that a package also provides.
12159 These aliases are useful for satisfying runtime dependencies
12160 of other packages both during the build and on the target
12161 (as specified by
12162 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
12163 <note>
12164 A package's own name is implicitly already in its
12165 <filename>RPROVIDES</filename> list.
12166 </note>
12167 </para>
12168
12169 <para>
12170 As with all package-controlling variables, you must always
12171 use the variable in conjunction with a package name override.
12172 Here is an example:
12173 <literallayout class='monospaced'>
12174 RPROVIDES_${PN} = "widget-abi-2"
12175 </literallayout>
12176 </para>
12177 </glossdef>
12178 </glossentry>
12179
12180 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
12181 <info>
12182 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."
12183 </info>
12184 <glossdef>
12185 <para role="glossdeffirst">
12186<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12187 A list of packages that extends the usability of a package
12188 being built.
12189 The package being built does not depend on this list of
12190 packages in order to successfully build, but rather
12191 uses them for extended usability.
12192 To specify runtime dependencies for packages, see the
12193 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
12194 variable.
12195 </para>
12196
12197 <para>
12198 The package manager will automatically install the
12199 <filename>RRECOMMENDS</filename> list of packages when
12200 installing the built package.
12201 However, you can prevent listed packages from being
12202 installed by using the
12203 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
12204 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
12205 and
12206 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
12207 variables.
12208 </para>
12209
12210 <para>
12211 Packages specified in
12212 <filename>RRECOMMENDS</filename> need not actually be
12213 produced.
12214 However, a recipe must exist that provides each package,
12215 either through the
12216 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
12217 or
12218 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
12219 variables or the
12220 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
12221 variable, or an error will occur during the build.
12222 If such a recipe does exist and the package is not produced,
12223 the build continues without error.
12224 </para>
12225
12226 <para>
12227 Because the <filename>RRECOMMENDS</filename> variable
12228 applies to packages being built, you should always attach
12229 an override to the variable to specify the particular
12230 package whose usability is being extended.
12231 For example, suppose you are building a development package
12232 that is extended to support wireless functionality.
12233 In this case, you would use the following:
12234 <literallayout class='monospaced'>
12235 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
12236 </literallayout>
12237 In the example, the package name
12238 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
12239 must appear as it would in the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012240 <filename>PACKAGES</filename> namespace before any renaming
12241 of the output package by classes such as
12242 <filename>debian.bbclass</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012243 </para>
12244
12245 <para>
12246 BitBake, which the OpenEmbedded build system uses, supports
12247 specifying versioned recommends.
12248 Although the syntax varies depending on the packaging
12249 format, BitBake hides these differences from you.
12250 Here is the general syntax to specify versions with
12251 the <filename>RRECOMMENDS</filename> variable:
12252 <literallayout class='monospaced'>
12253 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
12254 </literallayout>
12255 For <filename>operator</filename>, you can specify the
12256 following:
12257 <literallayout class='monospaced'>
12258 =
12259 &lt;
12260 &gt;
12261 &lt;=
12262 &gt;=
12263 </literallayout>
12264 For example, the following sets up a recommend on version
12265 1.2 or greater of the package <filename>foo</filename>:
12266 <literallayout class='monospaced'>
12267 RRECOMMENDS_${PN} = "foo (>= 1.2)"
12268 </literallayout>
12269 </para>
12270 </glossdef>
12271 </glossentry>
12272
12273 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
12274 <info>
12275 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."
12276 </info>
12277 <glossdef>
12278 <para role="glossdeffirst">
12279<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12280 A list of packages replaced by a package.
12281 The package manager uses this variable to determine which
12282 package should be installed to replace other package(s)
12283 during an upgrade.
12284 In order to also have the other package(s) removed at the
12285 same time, you must add the name of the other
12286 package to the
12287 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
12288 </para>
12289
12290 <para>
12291 As with all package-controlling variables, you must use
12292 this variable in conjunction with a package name
12293 override.
12294 Here is an example:
12295 <literallayout class='monospaced'>
12296 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
12297 </literallayout>
12298 </para>
12299
12300 <para>
12301 BitBake, which the OpenEmbedded build system uses, supports
12302 specifying versioned replacements.
12303 Although the syntax varies depending on the packaging
12304 format, BitBake hides these differences from you.
12305 Here is the general syntax to specify versions with
12306 the <filename>RREPLACES</filename> variable:
12307 <literallayout class='monospaced'>
12308 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
12309 </literallayout>
12310 For <filename>operator</filename>, you can specify the
12311 following:
12312 <literallayout class='monospaced'>
12313 =
12314 &lt;
12315 &gt;
12316 &lt;=
12317 &gt;=
12318 </literallayout>
12319 For example, the following sets up a replacement using
12320 version 1.2 or greater of the package
12321 <filename>foo</filename>:
12322 <literallayout class='monospaced'>
12323 RREPLACES_${PN} = "foo (>= 1.2)"
12324 </literallayout>
12325 </para>
12326 </glossdef>
12327 </glossentry>
12328
12329 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
12330 <info>
12331 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."
12332 </info>
12333 <glossdef>
12334 <para role="glossdeffirst">
12335<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12336 A list of additional packages that you can suggest for
12337 installation by the package manager at the time a package
12338 is installed.
12339 Not all package managers support this functionality.
12340 </para>
12341
12342 <para>
12343 As with all package-controlling variables, you must always
12344 use this variable in conjunction with a package name
12345 override.
12346 Here is an example:
12347 <literallayout class='monospaced'>
12348 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
12349 </literallayout>
12350 </para>
12351 </glossdef>
12352 </glossentry>
12353
12354 </glossdiv>
12355
12356 <glossdiv id='var-glossary-s'><title>S</title>
12357
12358 <glossentry id='var-S'><glossterm>S</glossterm>
12359 <info>
12360 S[doc] = "The location in the Build Directory where unpacked package source code resides."
12361 </info>
12362 <glossdef>
12363 <para role="glossdeffirst">
12364<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12365 The location in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012366 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012367 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012368 By default, this directory is
12369 <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>,
12370 where <filename>${BPN}</filename> is the base recipe name
12371 and <filename>${PV}</filename> is the recipe version.
12372 If the source tarball extracts the code to a directory
12373 named anything other than <filename>${BPN}-${PV}</filename>,
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012374 or if the source code is fetched from an SCM such as
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012375 Git or Subversion, then you must set <filename>S</filename>
12376 in the recipe so that the OpenEmbedded build system
12377 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012378 </para>
12379
12380 <para>
12381 As an example, assume a
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012382 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012383 top-level folder named <filename>poky</filename> and a
12384 default Build Directory at <filename>poky/build</filename>.
12385 In this case, the work directory the build system uses
12386 to keep the unpacked recipe for <filename>db</filename>
12387 is the following:
12388 <literallayout class='monospaced'>
12389 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
12390 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012391 The unpacked source code resides in the
12392 <filename>db-5.1.19</filename> folder.
12393 </para>
12394
12395 <para>
12396 This next example assumes a Git repository.
12397 By default, Git repositories are cloned to
12398 <filename>${WORKDIR}/git</filename> during
12399 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
12400 Since this path is different from the default value of
12401 <filename>S</filename>, you must set it specifically
12402 so the source can be located:
12403 <literallayout class='monospaced'>
12404 SRC_URI = "git://path/to/repo.git"
12405 S = "${WORKDIR}/git"
12406 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012407 </para>
12408 </glossdef>
12409 </glossentry>
12410
12411 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
12412 <info>
12413 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."
12414 </info>
12415 <glossdef>
12416 <para role="glossdeffirst">
12417<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12418 Specifies a list of command-line utilities that should be
12419 checked for during the initial sanity checking process when
12420 running BitBake.
12421 If any of the utilities are not installed on the build host,
12422 then BitBake immediately exits with an error.
12423 </para>
12424 </glossdef>
12425 </glossentry>
12426
12427 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
12428 <info>
12429 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
12430 </info>
12431 <glossdef>
12432 <para role="glossdeffirst">
12433<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12434 A list of the host distribution identifiers that the
12435 build system has been tested against.
12436 Identifiers consist of the host distributor ID
12437 followed by the release,
12438 as reported by the <filename>lsb_release</filename> tool
12439 or as read from <filename>/etc/lsb-release</filename>.
12440 Separate the list items with explicit newline
12441 characters (<filename>\n</filename>).
12442 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
12443 and the current value of
12444 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
12445 does not appear in the list, then the build system reports
12446 a warning that indicates the current host distribution has
12447 not been tested as a build host.
12448 </para>
12449 </glossdef>
12450 </glossentry>
12451
12452 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
12453 <info>
12454 SDK_ARCH[doc] = "The target architecture for the SDK."
12455 </info>
12456 <glossdef>
12457 <para role="glossdeffirst">
12458<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12459 The target architecture for the SDK.
12460 Typically, you do not directly set this variable.
12461 Instead, use
12462 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
12463 </para>
12464 </glossdef>
12465 </glossentry>
12466
12467 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
12468 <info>
12469 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
12470 </info>
12471 <glossdef>
12472 <para role="glossdeffirst">
12473<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12474 The directory set up and used by the
12475 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012476 class to which the SDK is deployed.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012477 The <filename>populate_sdk_base</filename> class defines
12478 <filename>SDK_DEPLOY</filename> as follows:
12479 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012480 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012481 </literallayout>
12482 </para>
12483 </glossdef>
12484 </glossentry>
12485
12486 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
12487 <info>
12488 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
12489 </info>
12490 <glossdef>
12491 <para role="glossdeffirst">
12492<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12493 The parent directory used by the OpenEmbedded build system
12494 when creating SDK output.
12495 The
12496 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12497 class defines the variable as follows:
12498 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012499 SDK_DIR = "${WORKDIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012500 </literallayout>
12501 <note>
12502 The <filename>SDK_DIR</filename> directory is a
12503 temporary directory as it is part of
12504 <filename>WORKDIR</filename>.
12505 The final output directory is
12506 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12507 </note>
12508 </para>
12509 </glossdef>
12510 </glossentry>
12511
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012512 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
12513 <info>
12514 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
12515 </info>
12516 <glossdef>
12517 <para role="glossdeffirst">
12518<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12519 Controls whether or not shared state artifacts are copied
12520 into the extensible SDK.
12521 The default value of "full" copies all of the required
12522 shared state artifacts into the extensible SDK.
12523 The value "minimal" leaves these artifacts out of the
12524 SDK.
12525 <note>
12526 If you set the variable to "minimal", you need to
12527 ensure
12528 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
12529 is set in the SDK's configuration to enable the
12530 artifacts to be fetched as needed.
12531 </note>
12532 </para>
12533 </glossdef>
12534 </glossentry>
12535
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012536 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
12537 <info>
12538 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."
12539 </info>
12540 <glossdef>
12541 <para role="glossdeffirst">
12542<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12543 The manifest file for the host part of the SDK.
12544 This file lists all the installed packages that make up
Brad Bishop316dfdd2018-06-25 12:45:53 -040012545 the host part of the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012546 The file contains package information on a line-per-package
12547 basis as follows:
12548 <literallayout class='monospaced'>
12549 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12550 </literallayout>
12551 </para>
12552
12553 <para>
12554 The
12555 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12556 class defines the manifest file as follows:
12557 <literallayout class='monospaced'>
12558 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
12559 </literallayout>
12560 The location is derived using the
12561 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12562 and
12563 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12564 variables.
12565 </para>
12566 </glossdef>
12567 </glossentry>
12568
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012569 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
12570 <info>
12571 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
12572 </info>
12573 <glossdef>
12574 <para role="glossdeffirst">
12575<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12576 When set to "1", specifies to include the packagedata for
12577 all recipes in the "world" target in the extensible SDK.
12578 Including this data allows the
12579 <filename>devtool search</filename> command to find these
12580 recipes in search results, as well as allows the
12581 <filename>devtool add</filename> command to map
12582 dependencies more effectively.
12583 <note>
12584 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
12585 variable significantly increases build time because
12586 all of world needs to be built.
12587 Enabling the variable also slightly increases the size
12588 of the extensible SDK.
12589 </note>
12590 </para>
12591 </glossdef>
12592 </glossentry>
12593
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012594 <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
12595 <info>
12596 SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
12597 </info>
12598 <glossdef>
12599 <para role="glossdeffirst">
12600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12601 When set to "1", specifies to include the toolchain in the
12602 extensible SDK.
12603 Including the toolchain is useful particularly when
12604 <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
12605 is set to "minimal" to keep the SDK reasonably small
12606 but you still want to provide a usable toolchain.
12607 For example, suppose you want to use the toolchain from an
Brad Bishopc342db32019-05-15 21:57:59 -040012608 IDE or from other tools and you do not
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012609 want to perform additional steps to install the toolchain.
12610 </para>
12611
12612 <para>
12613 The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
12614 defaults to "0" if <filename>SDK_EXT_TYPE</filename>
12615 is set to "minimal", and defaults to "1" if
12616 <filename>SDK_EXT_TYPE</filename> is set to "full".
12617 </para>
12618 </glossdef>
12619 </glossentry>
12620
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012621 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
12622 <info>
12623 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
12624 </info>
12625 <glossdef>
12626 <para role="glossdeffirst">
12627<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12628 A list of classes to remove from the
12629 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
12630 value globally within the extensible SDK configuration.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012631 The
12632 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12633 class sets the default value:
12634 <literallayout class='monospaced'>
12635 SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
12636 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012637 </para>
12638
12639 <para>
12640 Some classes are not generally applicable within
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012641 the extensible SDK context.
12642 You can use this variable to disable those classes.
12643 </para>
12644
12645 <para>
12646 For additional information on how to customize the
12647 extensible SDK's configuration, see the
12648 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12649 section in the Yocto Project Application Development and
12650 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012651 </para>
12652 </glossdef>
12653 </glossentry>
12654
12655 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
12656 <info>
12657 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
12658 </info>
12659 <glossdef>
12660 <para role="glossdeffirst">
12661<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012662 A list of variables not allowed through from the
12663 OpenEmbedded build system configuration into the extensible
12664 SDK configuration.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012665 Usually, these are variables that are specific to the
12666 machine on which the build system is running and thus
12667 would be potentially problematic within the extensible SDK.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012668 </para>
12669
12670 <para>By default,
12671 <filename>SDK_LOCAL_CONF_BLACKLIST</filename> is set in the
12672 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12673 class and excludes the following variables:
12674 <literallayout class='monospaced'>
12675 <link linkend='var-CONF_VERSION'>CONF_VERSION</link>
12676 <link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link>
12677 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_NUMBER_PARSE_THREADS'>BB_NUMBER_PARSE_THREADS</ulink>
12678 <link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link>
12679 <link linkend='var-PRSERV_HOST'>PRSERV_HOST</link>
12680 <link linkend='var-SSTATE_MIRRORS'>SSTATE_MIRRORS</link>
12681 <link linkend='var-DL_DIR'>DL_DIR</link>
12682 <link linkend='var-SSTATE_DIR'>SSTATE_DIR</link>
12683 <link linkend='var-TMPDIR'>TMPDIR</link>
12684 <link linkend='var-BB_SERVER_TIMEOUT'>BB_SERVER_TIMEOUT</link>
12685 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012686 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012687
12688 <para>
12689 For additional information on how to customize the
12690 extensible SDK's configuration, see the
12691 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12692 section in the Yocto Project Application Development and
12693 the Extensible Software Development Kit (eSDK) manual.
12694 </para>
12695
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012696 </glossdef>
12697 </glossentry>
12698
12699 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
12700 <info>
12701 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
12702 </info>
12703 <glossdef>
12704 <para role="glossdeffirst">
12705<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012706 A list of variables allowed through from the OpenEmbedded
12707 build system configuration into the extensible SDK
12708 configuration.
12709 By default, the list of variables is empty and is set in
12710 the
12711 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12712 class.
12713 </para>
12714
12715 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012716 This list overrides the variables specified using the
12717 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
12718 variable as well as any variables identified by automatic
12719 blacklisting due to the "/" character being found at the
12720 start of the value, which is usually indicative of being a
12721 path and thus might not be valid on the system where the
12722 SDK is installed.
12723 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012724
12725 <para>
12726 For additional information on how to customize the
12727 extensible SDK's configuration, see the
12728 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12729 section in the Yocto Project Application Development and
12730 the Extensible Software Development Kit (eSDK) manual.
12731 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012732 </glossdef>
12733 </glossentry>
12734
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012735 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
12736 <info>
12737 SDK_NAME[doc] = "The base name for SDK output files."
12738 </info>
12739 <glossdef>
12740 <para role="glossdeffirst">
12741<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12742 The base name for SDK output files.
12743 The name is derived from the
12744 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
12745 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12746 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12747 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
12748 and
12749 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
12750 variables:
12751 <literallayout class='monospaced'>
12752 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
12753 </literallayout>
12754 </para>
12755 </glossdef>
12756 </glossentry>
12757
12758 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
12759 <info>
12760 SDK_OS[doc] = "The operating system for which the SDK will be built."
12761 </info>
12762 <glossdef>
12763 <para role="glossdeffirst">
12764<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12765 Specifies the operating system for which the SDK
12766 will be built.
12767 The default value is the value of
12768 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
12769 </para>
12770 </glossdef>
12771 </glossentry>
12772
12773 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
12774 <info>
12775 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
12776 </info>
12777 <glossdef>
12778 <para role="glossdeffirst">
12779<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12780 The location used by the OpenEmbedded build system when
12781 creating SDK output.
12782 The
12783 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12784 class defines the variable as follows:
12785 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012786 SDK_DIR = "${WORKDIR}/sdk"
12787 SDK_OUTPUT = "${SDK_DIR}/image"
12788 SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012789 </literallayout>
12790 <note>
12791 The <filename>SDK_OUTPUT</filename> directory is a
12792 temporary directory as it is part of
Brad Bishop316dfdd2018-06-25 12:45:53 -040012793 <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12794 by way of
12795 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012796 The final output directory is
12797 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12798 </note>
12799 </para>
12800 </glossdef>
12801 </glossentry>
12802
12803 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
12804 <info>
12805 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."
12806 </info>
12807 <glossdef>
12808 <para role="glossdeffirst">
12809<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12810 Specifies a list of architectures compatible with
12811 the SDK machine.
12812 This variable is set automatically and should not
12813 normally be hand-edited.
12814 Entries are separated using spaces and listed in order
12815 of priority.
12816 The default value for
12817 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
12818 ${SDK_ARCH}-${SDKPKGSUFFIX}".
12819 </para>
12820 </glossdef>
12821 </glossentry>
12822
12823 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
12824 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012825 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 -050012826 </info>
12827 <glossdef>
12828 <para role="glossdeffirst">
12829<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12830 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012831 OpenEmbedded build system creates the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012832 You can specify functions separated by semicolons:
12833 <literallayout class='monospaced'>
12834 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12835 </literallayout>
12836 </para>
12837
12838 <para>
12839 If you need to pass an SDK path to a command within a
12840 function, you can use
12841 <filename>${SDK_DIR}</filename>, which points to
12842 the parent directory used by the OpenEmbedded build system
12843 when creating SDK output.
12844 See the
12845 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
12846 variable for more information.
12847 </para>
12848 </glossdef>
12849 </glossentry>
12850
12851 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
12852 <info>
12853 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
12854 </info>
12855 <glossdef>
12856 <para role="glossdeffirst">
12857<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012858 The toolchain binary prefix used for
12859 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012860 The OpenEmbedded build system uses the
12861 <filename>SDK_PREFIX</filename> value to set the
12862 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
12863 when building <filename>nativesdk</filename> recipes.
12864 The default value is "${SDK_SYS}-".
12865 </para>
12866 </glossdef>
12867 </glossentry>
12868
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012869 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
12870 <info>
12871 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
12872 </info>
12873 <glossdef>
12874 <para role="glossdeffirst">
12875<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12876 A list of shared state tasks added to the extensible SDK.
12877 By default, the following tasks are added:
12878 <literallayout class='monospaced'>
12879 do_populate_lic
12880 do_package_qa
12881 do_populate_sysroot
12882 do_deploy
12883 </literallayout>
12884 Despite the default value of "" for the
12885 <filename>SDK_RECRDEP_TASKS</filename> variable, the
12886 above four tasks are always added to the SDK.
12887 To specify tasks beyond these four, you need to use
12888 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
12889 you are defining additional tasks that are needed in
12890 order to build
12891 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
12892 </para>
12893 </glossdef>
12894 </glossentry>
12895
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012896 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
12897 <info>
12898 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
12899 </info>
12900 <glossdef>
12901 <para role="glossdeffirst">
12902<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12903 Specifies the system, including the architecture and the
12904 operating system, for which the SDK will be built.
12905 </para>
12906
12907 <para>
12908 The OpenEmbedded build system automatically sets this
12909 variable based on
12910 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12911 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
12912 and
12913 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
12914 You do not need to set the <filename>SDK_SYS</filename>
12915 variable yourself.
12916 </para>
12917 </glossdef>
12918 </glossentry>
12919
12920 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
12921 <info>
12922 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."
12923 </info>
12924 <glossdef>
12925 <para role="glossdeffirst">
12926<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12927 The manifest file for the target part of the SDK.
12928 This file lists all the installed packages that make up
12929 the target part of the SDK.
12930 The file contains package information on a line-per-package
12931 basis as follows:
12932 <literallayout class='monospaced'>
12933 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12934 </literallayout>
12935 </para>
12936
12937 <para>
12938 The
12939 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12940 class defines the manifest file as follows:
12941 <literallayout class='monospaced'>
12942 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
12943 </literallayout>
12944 The location is derived using the
12945 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12946 and
12947 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12948 variables.
12949 </para>
12950 </glossdef>
12951 </glossentry>
12952
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012953 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
12954 <info>
12955 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
12956 </info>
12957 <glossdef>
12958 <para role="glossdeffirst">
12959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12960 A list of targets to install from shared state as part of
12961 the standard or extensible SDK installation.
12962 The default value is "${PN}" (i.e. the image from which
12963 the SDK is built).
12964 </para>
12965
12966 <para>
12967 The <filename>SDK_TARGETS</filename> variable is an
12968 internal variable and typically would not be changed.
12969 </para>
12970 </glossdef>
12971 </glossentry>
12972
12973 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
12974 <info>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012975 SDK_TITLE[doc] = "The title to be printed when running the SDK installer."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012976 </info>
12977 <glossdef>
12978 <para role="glossdeffirst">
12979<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012980 The title to be printed when running the SDK installer.
12981 By default, this title is based on the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012982 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
12983 or
12984 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012985 variable and is set in the
12986 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12987 class as follows:
12988 <literallayout class='monospaced'>
12989 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
12990 </literallayout>
12991 For the default distribution "poky",
12992 <filename>SDK_TITLE</filename> is set to
12993 "Poky (Yocto Project Reference Distro)".
12994 </para>
12995
12996 <para>
12997 For information on how to change this default title,
12998 see the
12999 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-sdk-installer-title'>Changing the Extensible SDK Installer Title</ulink>"
13000 section in the Yocto Project Application Development and
13001 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013002 </para>
13003 </glossdef>
13004 </glossentry>
13005
13006 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
13007 <info>
13008 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
13009 </info>
13010 <glossdef>
13011 <para role="glossdeffirst">
13012<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13013 An optional URL for an update server for the extensible
13014 SDK.
13015 If set, the value is used as the default update server when
13016 running <filename>devtool sdk-update</filename> within the
13017 extensible SDK.
13018 </para>
13019 </glossdef>
13020 </glossentry>
13021
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013022 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
13023 <info>
13024 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
13025 </info>
13026 <glossdef>
13027 <para role="glossdeffirst">
13028<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13029 Specifies the name of the SDK vendor.
13030 </para>
13031 </glossdef>
13032 </glossentry>
13033
13034 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
13035 <info>
13036 SDK_VERSION[doc] = "Specifies the version for the SDK."
13037 </info>
13038 <glossdef>
13039 <para role="glossdeffirst">
13040<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13041 Specifies the version of the SDK.
13042 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013043 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013044 defines the <filename>SDK_VERSION</filename> as follows:
13045 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -040013046 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}','snapshot')}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013047 </literallayout>
13048 </para>
13049
13050 <para>
13051 For additional information, see the
13052 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
13053 and
13054 <link linkend='var-DATE'><filename>DATE</filename></link>
13055 variables.
13056 </para>
13057 </glossdef>
13058 </glossentry>
13059
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013060 <glossentry id='var-SDKEXTPATH'><glossterm>SDKEXTPATH</glossterm>
13061 <info>
13062 SDKEXTPATH[doc] = "The default installation directory for the extensible SDK."
13063 </info>
13064 <glossdef>
13065 <para role="glossdeffirst">
13066<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13067 The default installation directory for the Extensible SDK.
13068 By default, this directory is based on the
13069 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
13070 variable and is set in the
13071 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
13072 class as follows:
13073 <literallayout class='monospaced'>
13074 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
13075 </literallayout>
13076 For the default distribution "poky", the
13077 <filename>SDKEXTPATH</filename> is set to "poky_sdk".
13078 </para>
13079
13080 <para>
13081 For information on how to change this default directory,
13082 see the
13083 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-changing-the-default-sdk-installation-directory'>Changing the Default SDK Installation Directory</ulink>"
13084 section in the Yocto Project Application Development and
13085 the Extensible Software Development Kit (eSDK) manual.
13086 </para>
13087 </glossdef>
13088 </glossentry>
13089
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013090 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
13091 <info>
13092 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'."
13093 </info>
13094 <glossdef>
13095 <para role="glossdeffirst">
13096<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13097 Equivalent to
13098 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
13099 However, this variable applies to the SDK generated from an
13100 image using the following command:
13101 <literallayout class='monospaced'>
13102 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
13103 </literallayout>
13104 </para>
13105 </glossdef>
13106 </glossentry>
13107
13108 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
13109 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013110 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013111 </info>
13112 <glossdef>
13113 <para role="glossdeffirst">
13114<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013115 The machine for which the SDK is built.
13116 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013117 runs on the target you specify with the
13118 <filename>SDKMACHINE</filename> value.
13119 The value points to a corresponding
13120 <filename>.conf</filename> file under
13121 <filename>conf/machine-sdk/</filename>.
13122 </para>
13123
13124 <para>
13125 You can use "i686" and "x86_64" as possible values
13126 for this variable. The variable defaults to "i686"
13127 and is set in the local.conf file in the Build Directory.
13128 <literallayout class='monospaced'>
13129 SDKMACHINE ?= "i686"
13130 </literallayout>
13131 <note>
13132 You cannot set the <filename>SDKMACHINE</filename>
13133 variable in your distribution configuration file.
13134 If you do, the configuration will not take affect.
13135 </note>
13136 </para>
13137 </glossdef>
13138 </glossentry>
13139
13140 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
13141 <info>
13142 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
13143 </info>
13144 <glossdef>
13145 <para role="glossdeffirst">
13146<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13147 Defines the path offered to the user for installation
13148 of the SDK that is generated by the OpenEmbedded build
13149 system.
13150 The path appears as the default location for installing
13151 the SDK when you run the SDK's installation script.
13152 You can override the offered path when you run the
13153 script.
13154 </para>
13155 </glossdef>
13156 </glossentry>
13157
13158 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
13159 <info>
13160 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
13161 </info>
13162 <glossdef>
13163 <para role="glossdeffirst">
13164<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13165 The full path to the sysroot used for cross-compilation
13166 within an SDK as it will be when installed into the
13167 default
13168 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
13169 </para>
13170 </glossdef>
13171 </glossentry>
13172
13173 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
13174 <info>
13175 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
13176 </info>
13177 <glossdef>
13178 <para role="glossdeffirst">
13179<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13180 The section in which packages should be categorized.
13181 Package management utilities can make use of this variable.
13182 </para>
13183 </glossdef>
13184 </glossentry>
13185
13186 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
13187 <info>
13188 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."
13189 </info>
13190 <glossdef>
13191 <para role="glossdeffirst">
13192<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13193 Specifies the optimization flags passed to the C compiler
13194 when building for the target.
13195 The flags are passed through the default value of the
13196 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
13197 variable.
13198 </para>
13199
13200 <para>
13201 The <filename>SELECTED_OPTIMIZATION</filename> variable
13202 takes the value of
13203 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
13204 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
13205 If that is the case, the value of
13206 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
13207 </para>
13208 </glossdef>
13209 </glossentry>
13210
13211 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
13212 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013213 SERIAL_CONSOLE[doc] = "Defines the serial consoles (TTYs) to enable using getty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013214 </info>
13215 <glossdef>
13216 <para role="glossdeffirst">
13217<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040013218 Defines a serial console (TTY) to enable using
13219 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013220 Provide a value that specifies the baud rate followed by
13221 the TTY device name separated by a space.
13222 You cannot specify more than one TTY device:
13223 <literallayout class='monospaced'>
13224 SERIAL_CONSOLE = "115200 ttyS0"
13225 </literallayout>
13226 <note>
13227 The <filename>SERIAL_CONSOLE</filename> variable
13228 is deprecated.
13229 Please use the
13230 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
13231 variable.
13232 </note>
13233 </para>
13234 </glossdef>
13235 </glossentry>
13236
13237 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
13238 <info>
13239 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
13240 </info>
13241 <glossdef>
13242 <para role="glossdeffirst">
13243<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040013244 Defines a serial console (TTY) to enable using
13245 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013246 Provide a value that specifies the baud rate followed by
13247 the TTY device name separated by a semicolon.
13248 Use spaces to separate multiple devices:
13249 <literallayout class='monospaced'>
13250 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
13251 </literallayout>
13252 </para>
13253 </glossdef>
13254 </glossentry>
13255
13256 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
13257 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013258 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 -050013259 </info>
13260 <glossdef>
13261 <para role="glossdeffirst">
13262<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013263 Specifies serial consoles, which must be listed in
13264 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
13265 to check against <filename>/proc/console</filename>
13266 before enabling them using getty.
13267 This variable allows aliasing in the format:
13268 &lt;device&gt;:&lt;alias&gt;.
13269 If a device was listed as "sclp_line0"
13270 in <filename>/dev/</filename> and "ttyS0" was listed
13271 in <filename>/proc/console</filename>, you would do the
13272 following:
13273 <literallayout class='monospaced'>
13274 SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
13275 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013276 This variable is currently only supported with SysVinit
13277 (i.e. not with systemd).
13278 </para>
13279 </glossdef>
13280 </glossentry>
13281
13282 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
13283 <info>
13284 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."
13285 </info>
13286 <glossdef>
13287 <para role="glossdeffirst">
13288<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13289 A list of recipe dependencies that should not be used to
13290 determine signatures of tasks from one recipe when they
13291 depend on tasks from another recipe.
13292 For example:
13293 <literallayout class='monospaced'>
13294 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
13295 </literallayout>
13296 </para>
13297
13298 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013299 In the previous example, <filename>intone</filename>
13300 depends on <filename>mplayer2</filename>.
13301 </para>
13302
13303 <para>
13304 You can use the special token <filename>"*"</filename> on
13305 the left-hand side of the dependency to match all
13306 recipes except the one on the right-hand side.
13307 Here is an example:
13308 <literallayout class='monospaced'>
13309 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
13310 </literallayout>
13311 </para>
13312
13313 <para>
13314 In the previous example, all recipes except
13315 <filename>quilt-native</filename> ignore task
13316 signatures from the <filename>quilt-native</filename>
13317 recipe when determining their task signatures.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013318 </para>
13319
13320 <para>
13321 Use of this variable is one mechanism to remove dependencies
13322 that affect task signatures and thus force rebuilds when a
13323 recipe changes.
13324 <note><title>Caution</title>
13325 If you add an inappropriate dependency for a recipe
13326 relationship, the software might break during
13327 runtime if the interface of the second recipe was
13328 changed after the first recipe had been built.
13329 </note>
13330 </para>
13331 </glossdef>
13332 </glossentry>
13333
13334 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
13335 <info>
13336 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
13337 </info>
13338 <glossdef>
13339 <para role="glossdeffirst">
13340<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13341 A list of recipes that are completely stable and will
13342 never change.
13343 The ABI for the recipes in the list are presented by
13344 output from the tasks run to build the recipe.
13345 Use of this variable is one way to remove dependencies from
13346 one recipe on another that affect task signatures and
13347 thus force rebuilds when the recipe changes.
13348 <note><title>Caution</title>
13349 If you add an inappropriate variable to this list,
13350 the software might break at runtime if the
13351 interface of the recipe was changed after the other
13352 had been built.
13353 </note>
13354 </para>
13355 </glossdef>
13356 </glossentry>
13357
13358 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
13359 <info>
13360 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
13361 </info>
13362 <glossdef>
13363 <para role="glossdeffirst">
13364<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13365 Specifies the number of bits for the target system CPU.
13366 The value should be either "32" or "64".
13367 </para>
13368 </glossdef>
13369 </glossentry>
13370
13371 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
13372 <info>
13373 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'."
13374 </info>
13375 <glossdef>
13376 <para role="glossdeffirst">
13377<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13378 Specifies the endian byte order of the target system.
13379 The value should be either "le" for little-endian or "be" for big-endian.
13380 </para>
13381 </glossdef>
13382 </glossentry>
13383
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013384 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
13385 <info>
13386 SKIP_FILEDEPS[doc] = "Enables you to remove all files from
13387 the "Provides" section of an RPM package."
13388 </info>
13389 <glossdef>
13390 <para role="glossdeffirst">
13391<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13392 Enables removal of all files from the "Provides" section of
13393 an RPM package.
13394 Removal of these files is required for packages containing
13395 prebuilt binaries and libraries such as
13396 <filename>libstdc++</filename> and
13397 <filename>glibc</filename>.
13398 </para>
13399
13400 <para>
13401 To enable file removal, set the variable to "1" in your
13402 <filename>conf/local.conf</filename> configuration file
13403 in your:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013404 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013405 <literallayout class='monospaced'>
13406 SKIP_FILEDEPS = "1"
13407 </literallayout>
13408 </para>
13409 </glossdef>
13410 </glossentry>
13411
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013412 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
13413 <info>
13414 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."
13415 </info>
13416 <glossdef>
13417 <para role="glossdeffirst">
13418<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13419 Groups together machines based upon the same family
13420 of SOC (System On Chip).
13421 You typically set this variable in a common
13422 <filename>.inc</filename> file that you include in the
13423 configuration files of all the machines.
13424 <note>
13425 You must include
13426 <filename>conf/machine/include/soc-family.inc</filename>
13427 for this variable to appear in
13428 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
13429 </note>
13430 </para>
13431 </glossdef>
13432 </glossentry>
13433
13434 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
13435 <info>
13436 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
13437 </info>
13438 <glossdef>
13439 <para role="glossdeffirst">
13440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13441 Defines the suffix for shared libraries used on the
13442 target platform.
13443 By default, this suffix is ".so.*" for all Linux-based
13444 systems and is defined in the
13445 <filename>meta/conf/bitbake.conf</filename> configuration
13446 file.
13447 </para>
13448
13449 <para>
13450 You will see this variable referenced in the default values
13451 of <filename>FILES_${PN}</filename>.
13452 </para>
13453 </glossdef>
13454 </glossentry>
13455
13456 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
13457 <info>
13458 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
13459 </info>
13460 <glossdef>
13461 <para role="glossdeffirst">
13462<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13463 Defines the suffix for the development symbolic link
13464 (symlink) for shared libraries on the target platform.
13465 By default, this suffix is ".so" for Linux-based
13466 systems and is defined in the
13467 <filename>meta/conf/bitbake.conf</filename> configuration
13468 file.
13469 </para>
13470
13471 <para>
13472 You will see this variable referenced in the default values
13473 of <filename>FILES_${PN}-dev</filename>.
13474 </para>
13475 </glossdef>
13476 </glossentry>
13477
13478 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
13479 <info>
13480 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
13481 </info>
13482 <glossdef>
13483 <para role="glossdeffirst">
13484<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13485 When you are fetching files to create a mirror of sources
13486 (i.e. creating a source mirror), setting
13487 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
13488 <filename>local.conf</filename> configuration file ensures
13489 the source for all recipes are fetched regardless of
13490 whether or not a recipe is compatible with the
13491 configuration.
13492 A recipe is considered incompatible with the currently
13493 configured machine when either or both the
13494 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
13495 variable and
13496 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
13497 variables specify compatibility with a machine other
13498 than that of the current machine or host.
13499 <note><title>Warning</title>
13500 Do not set the
13501 <filename>SOURCE_MIRROR_FETCH</filename> variable
13502 unless you are creating a source mirror.
13503 In other words, do not set the variable during a
13504 normal build.
13505 </note>
13506 </para>
13507 </glossdef>
13508 </glossentry>
13509
13510 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
13511 <info>
13512 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
13513 </info>
13514 <glossdef>
13515 <para role="glossdeffirst">
13516<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13517 Defines your own
13518 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13519 from which to first fetch source before attempting to fetch
13520 from the upstream specified in
13521 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
13522 </para>
13523
13524 <para>
13525 To use this variable, you must globally inherit the
13526 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
13527 class and then provide the URL to your mirrors.
13528 Here is the general syntax:
13529 <literallayout class='monospaced'>
13530 INHERIT += "own-mirrors"
13531 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
13532 </literallayout>
13533 <note>
13534 You can specify only a single URL in
13535 <filename>SOURCE_MIRROR_URL</filename>.
13536 </note>
13537 </para>
13538 </glossdef>
13539 </glossentry>
13540
13541 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
13542 <info>
13543 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
13544 </info>
13545 <glossdef>
13546 <para role="glossdeffirst">
13547<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13548 Maps commonly used license names to their SPDX counterparts
13549 found in <filename>meta/files/common-licenses/</filename>.
13550 For the default <filename>SPDXLICENSEMAP</filename>
13551 mappings, see the
13552 <filename>meta/conf/licenses.conf</filename> file.
13553 </para>
13554
13555 <para>
13556 For additional information, see the
13557 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
13558 variable.
13559 </para>
13560 </glossdef>
13561 </glossentry>
13562
13563 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
13564 <info>
13565 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."
13566 </info>
13567 <glossdef>
13568 <para role="glossdeffirst">
13569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13570 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
13571 OpenEmbedded build system to create variants of recipes or packages.
13572 The list specifies the prefixes to strip off during certain circumstances
13573 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
13574 </para>
13575 </glossdef>
13576 </glossentry>
13577
Brad Bishop316dfdd2018-06-25 12:45:53 -040013578 <glossentry id='var-SPL_BINARY'><glossterm>SPL_BINARY</glossterm>
13579 <info>
13580 SPL_BINARY[doc] = "The file type of the Secondary Program Loader (SPL)."
13581 </info>
13582 <glossdef>
13583 <para role="glossdeffirst">
13584<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13585 The file type for the Secondary Program Loader (SPL).
13586 Some devices use an SPL from which to boot (e.g. the
13587 BeagleBone development board).
13588 For such cases, you can declare the file type of the
13589 SPL binary in the <filename>u-boot.inc</filename> include
13590 file, which is used in the U-Boot recipe.
13591 </para>
13592
13593 <para>
13594 The SPL file type is set to "null" by default in the
13595 <filename>u-boot.inc</filename> file as follows:
13596 <literallayout class='monospaced'>
13597 # Some versions of u-boot build an SPL (Second Program Loader) image that
13598 # should be packaged along with the u-boot binary as well as placed in the
13599 # deploy directory. For those versions they can set the following variables
13600 # to allow packaging the SPL.
13601 SPL_BINARY ?= ""
13602 SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
13603 SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
13604 SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
13605 </literallayout>
13606 The <filename>SPL_BINARY</filename> variable helps form
13607 various <filename>SPL_*</filename> variables used by
13608 the OpenEmbedded build system.
13609 </para>
13610
13611 <para>
13612 See the BeagleBone machine configuration example in the
13613 "<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>"
13614 section in the Yocto Project Board Support Package
13615 Developer's Guide for additional information.
13616 </para>
13617 </glossdef>
13618 </glossentry>
13619
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013620 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
13621 <info>
13622 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."
13623 </info>
13624 <glossdef>
13625 <para role="glossdeffirst">
13626<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13627 The list of source files - local or remote.
13628 This variable tells the OpenEmbedded build system which bits
13629 to pull in for the build and how to pull them in.
13630 For example, if the recipe or append file only needs to
13631 fetch a tarball from the Internet, the recipe or
13632 append file uses a single <filename>SRC_URI</filename>
13633 entry.
13634 On the other hand, if the recipe or append file needs to
13635 fetch a tarball, apply two patches, and include a custom
13636 file, the recipe or append file would include four
13637 instances of the variable.
13638 </para>
13639
13640 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013641 The following list explains the available URI protocols.
13642 URI protocols are highly dependent on particular BitBake
13643 Fetcher submodules.
13644 Depending on the fetcher BitBake uses, various URL
13645 parameters are employed.
13646 For specifics on the supported Fetchers, see the
13647 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
13648 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013649 <itemizedlist>
13650 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
13651 Fetches files, which are usually files shipped with
13652 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013653 <link linkend='metadata'>Metadata</link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -040013654 from the local machine (e.g.
13655 <ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>patch</ulink>
13656 files).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013657 The path is relative to the
13658 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
13659 variable.
13660 Thus, the build system searches, in order, from the
13661 following directories, which are assumed to be a
13662 subdirectories of the directory in which the
13663 recipe file (<filename>.bb</filename>) or
13664 append file (<filename>.bbappend</filename>)
13665 resides:
13666 <itemizedlist>
13667 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
13668 The base recipe name without any special
13669 suffix or version numbers.
13670 </para></listitem>
13671 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
13672 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
13673 The base recipe name and version but without
13674 any special package name suffix.
13675 </para></listitem>
13676 <listitem><para><emphasis>files -</emphasis>
13677 Files within a directory, which is named
13678 <filename>files</filename> and is also
13679 alongside the recipe or append file.
13680 </para></listitem>
13681 </itemizedlist>
13682 <note>
13683 If you want the build system to pick up files
13684 specified through a
13685 <filename>SRC_URI</filename>
13686 statement from your append file, you need to be
13687 sure to extend the
13688 <filename>FILESPATH</filename>
13689 variable by also using the
13690 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
13691 variable from within your append file.
13692 </note>
13693 </para></listitem>
13694 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
13695 Bazaar revision control repository.</para></listitem>
13696 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
13697 Git revision control repository.</para></listitem>
13698 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
13699 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
13700 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
13701 a repo (Git) repository.</para></listitem>
13702 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
13703 Fetches files from a ClearCase repository.
13704 </para></listitem>
13705 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
13706 the Internet using <filename>http</filename>.</para></listitem>
13707 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
13708 from the Internet using <filename>https</filename>.</para></listitem>
13709 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
13710 from the Internet using <filename>ftp</filename>.</para></listitem>
13711 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
13712 a CVS revision control repository.</para></listitem>
13713 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
13714 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
13715 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
13716 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
13717 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
13718 a secure shell.</para></listitem>
13719 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
13720 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
Brad Bishopc342db32019-05-15 21:57:59 -040013721 <listitem><para><emphasis><filename>npm://</filename> -</emphasis> Fetches JavaScript
13722 modules from a registry.
13723 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013724 </itemizedlist>
13725 </para>
13726
13727 <para>
13728 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
13729 Here are standard options:
13730 <itemizedlist>
13731 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
13732 the patch or not.
13733 The default action is to apply the patch.</para></listitem>
13734 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
13735 striplevel to use when applying the patch.
13736 The default level is 1.</para></listitem>
13737 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
13738 the directory in which the patch should be applied.
13739 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
13740 </para></listitem>
13741 </itemizedlist>
13742 </para>
13743
13744 <para>
13745 Here are options specific to recipes building code from a revision control system:
13746 <itemizedlist>
13747 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
13748 Apply the patch only if
13749 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
13750 is equal to or greater than <filename>mindate</filename>.
13751 </para></listitem>
13752 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
13753 Apply the patch only if <filename>SRCDATE</filename>
Andrew Geissler5fa08482019-03-20 15:58:14 -050013754 is not later than <filename>maxdate</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013755 </para></listitem>
13756 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
13757 Apply the patch only if <filename>SRCREV</filename>
13758 is equal to or greater than <filename>minrev</filename>.
13759 </para></listitem>
13760 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
13761 Apply the patch only if <filename>SRCREV</filename>
13762 is not later than <filename>maxrev</filename>.
13763 </para></listitem>
13764 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
13765 Apply the patch only if <filename>SRCREV</filename>
13766 is equal to <filename>rev</filename>.
13767 </para></listitem>
13768 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
13769 Apply the patch only if <filename>SRCREV</filename>
13770 is not equal to <filename>rev</filename>.
13771 </para></listitem>
13772 </itemizedlist>
13773 </para>
13774
13775 <para>
13776 Here are some additional options worth mentioning:
13777 <itemizedlist>
13778 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
13779 whether or not to unpack the file if it is an archive.
13780 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013781 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
13782 (or extracts its contents) into the specified
13783 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
13784 when the Git fetcher is used.
13785 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013786 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
13787 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013788 subdirectory of <filename>WORKDIR</filename>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013789 when the local (<filename>file://</filename>)
13790 fetcher is used.
13791 </para></listitem>
13792 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
13793 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013794 subdirectory of <filename>WORKDIR</filename> when
13795 the CVS fetcher is used.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013796 </para></listitem>
13797 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
13798 Limits the checkout to a specific subpath of the
13799 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013800 </para></listitem>
13801 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
13802 name to be used for association with <filename>SRC_URI</filename> checksums
13803 when you have more than one file specified in <filename>SRC_URI</filename>.
13804 </para></listitem>
13805 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
13806 the filename used when storing the downloaded file.</para></listitem>
13807 </itemizedlist>
13808 </para>
13809 </glossdef>
13810 </glossentry>
13811
13812 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
13813 <info>
13814 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."
13815 </info>
13816 <glossdef>
13817 <para role="glossdeffirst">
13818<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13819 By default, the OpenEmbedded build system automatically detects whether
13820 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
13821 contains files that are machine-specific.
13822 If so, the build system automatically changes
13823 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
13824 Setting this variable to "0" disables this behavior.
13825 </para>
13826 </glossdef>
13827 </glossentry>
13828
13829 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
13830 <info>
13831 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)."
13832 </info>
13833 <glossdef>
13834 <para role="glossdeffirst">
13835<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13836 The date of the source code used to build the package.
13837 This variable applies only if the source was fetched from a Source Code Manager (SCM).
13838 </para>
13839 </glossdef>
13840 </glossentry>
13841
13842 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
13843 <info>
13844 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
13845 </info>
13846 <glossdef>
13847 <para role="glossdeffirst">
13848<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13849 Returns the version string of the current package.
13850 This string is used to help define the value of
13851 <link linkend='var-PV'><filename>PV</filename></link>.
13852 </para>
13853
13854 <para>
13855 The <filename>SRCPV</filename> variable is defined in the
13856 <filename>meta/conf/bitbake.conf</filename> configuration
13857 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013858 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013859 as follows:
13860 <literallayout class='monospaced'>
13861 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
13862 </literallayout>
13863 </para>
13864
13865 <para>
13866 Recipes that need to define <filename>PV</filename> do so
13867 with the help of the <filename>SRCPV</filename>.
13868 For example, the <filename>ofono</filename> recipe
13869 (<filename>ofono_git.bb</filename>) located in
13870 <filename>meta/recipes-connectivity</filename> in the
13871 Source Directory defines <filename>PV</filename> as
13872 follows:
13873 <literallayout class='monospaced'>
13874 PV = "0.12-git${SRCPV}"
13875 </literallayout>
13876 </para>
13877 </glossdef>
13878 </glossentry>
13879
13880 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
13881 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013882 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 -050013883 </info>
13884 <glossdef>
13885 <para role="glossdeffirst">
13886<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13887 The revision of the source code used to build the package.
Brad Bishop316dfdd2018-06-25 12:45:53 -040013888 This variable applies to Subversion, Git, Mercurial, and
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013889 Bazaar only.
13890 Note that if you want to build a fixed revision and you
13891 want to avoid performing a query on the remote repository
13892 every time BitBake parses your recipe, you should specify
13893 a <filename>SRCREV</filename> that is a
13894 full revision identifier and not just a tag.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013895 <note>
13896 For information on limitations when inheriting the
13897 latest revision of software using
13898 <filename>SRCREV</filename>, see the
13899 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
13900 variable description and the
13901 "<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 -050013902 section, which is in the Yocto Project Development
13903 Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013904 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013905 </para>
13906
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013907 </glossdef>
13908 </glossentry>
13909
13910 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
13911 <info>
13912 SSTATE_DIR[doc] = "The directory for the shared state cache."
13913 </info>
13914 <glossdef>
13915 <para role="glossdeffirst">
13916<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13917 The directory for the shared state cache.
13918 </para>
13919 </glossdef>
13920 </glossentry>
13921
13922 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
13923 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013924 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 -050013925 </info>
13926 <glossdef>
13927 <para role="glossdeffirst">
13928<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13929 If set to "1", allows fetches from
13930 mirrors that are specified in
13931 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013932 to work even when fetching from the network is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013933 disabled by setting <filename>BB_NO_NETWORK</filename>
13934 to "1".
13935 Using the
13936 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
13937 variable is useful if you have set
13938 <filename>SSTATE_MIRRORS</filename> to point to an
13939 internal server for your shared state cache, but
13940 you want to disable any other fetching from the network.
13941 </para>
13942 </glossdef>
13943 </glossentry>
13944
13945 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
13946 <info>
13947 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."
13948 </info>
13949 <glossdef>
13950 <para role="glossdeffirst">
13951<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13952 Configures the OpenEmbedded build system to search other
13953 mirror locations for prebuilt cache data objects before
13954 building out the data.
13955 This variable works like fetcher
13956 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
13957 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13958 and points to the cache locations to check for the shared
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013959 state (sstate) objects.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013960 </para>
13961
13962 <para>
13963 You can specify a filesystem directory or a remote URL such
13964 as HTTP or FTP.
13965 The locations you specify need to contain the shared state
13966 cache (sstate-cache) results from previous builds.
13967 The sstate-cache you point to can also be from builds on
13968 other machines.
13969 </para>
13970
13971 <para>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013972 When pointing to sstate build artifacts on another machine
13973 that uses a different GCC version for native builds,
13974 you must configure <filename>SSTATE_MIRROR</filename>
13975 with a regular expression that maps local search paths
13976 to server paths.
13977 The paths need to take into account
13978 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
13979 set by the
13980 <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
13981 class.
13982 For example, the following maps the local search path
13983 <filename>universal-4.9</filename> to the server-provided
13984 path <replaceable>server_url_sstate_path</replaceable>:
13985 <literallayout class='monospaced'>
13986 SSTATE_MIRRORS ?= file://universal-4.9/(.*) http://<replaceable>server_url_sstate_path</replaceable>/universal-4.8/\1 \n
13987 </literallayout>
13988 </para>
13989
13990 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013991 If a mirror uses the same structure as
13992 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
13993 you need to add
13994 "PATH" at the end as shown in the examples below.
13995 The build system substitutes the correct path within the
13996 directory structure.
13997 <literallayout class='monospaced'>
13998 SSTATE_MIRRORS ?= "\
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013999 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014000 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
14001 </literallayout>
14002 </para>
14003 </glossdef>
14004 </glossentry>
14005
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014006 <glossentry id='var-SSTATE_SCAN_FILES'><glossterm>SSTATE_SCAN_FILES</glossterm>
14007 <info>
14008 SSTATE_SCAN_FILES[doc] = "Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths."
14009 </info>
14010 <glossdef>
14011 <para role="glossdeffirst">
14012<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14013 Controls the list of files the OpenEmbedded build system
14014 scans for hardcoded installation paths. The variable uses a
14015 space-separated list of filenames (not paths) with standard
14016 wildcard characters allowed.
14017 </para>
14018
14019 <para>
14020 During a build, the OpenEmbedded build system creates a
14021 shared state (sstate) object during the first stage of
14022 preparing the sysroots. That object is scanned for
14023 hardcoded paths for original installation locations.
14024 The list of files that are scanned for paths is controlled
14025 by the <filename>SSTATE_SCAN_FILES</filename> variable.
14026 Typically, recipes add files they want to be scanned to the
14027 value of <filename>SSTATE_SCAN_FILES</filename> rather than
14028 the variable being comprehensively set. The
14029 <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
14030 class specifies the default list of files.
14031 </para>
14032
14033 <para>
14034 For details on the process, see the
14035 <link linkend='ref-classes-staging'><filename>staging</filename></link>
14036 class.
14037 </para>
14038 </glossdef>
14039 </glossentry>
14040
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014041 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
14042 <info>
14043 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
14044 </info>
14045 <glossdef>
14046 <para role="glossdeffirst">
14047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14048 Specifies the path to the <filename>/lib</filename>
14049 subdirectory of the sysroot directory for the
14050 build host.
14051 </para>
14052 </glossdef>
14053 </glossentry>
14054
14055 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
14056 <info>
14057 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)."
14058 </info>
14059 <glossdef>
14060 <para role="glossdeffirst">
14061<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14062 Specifies the path to the <filename>/lib</filename>
14063 subdirectory of the sysroot directory for the target
14064 for which the current recipe is being built
14065 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14066 </para>
14067 </glossdef>
14068 </glossentry>
14069
14070 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
14071 <info>
14072 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)."
14073 </info>
14074 <glossdef>
14075 <para role="glossdeffirst">
14076<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14077 Specifies the path to the
14078 <filename>/usr/bin</filename> subdirectory of the
14079 sysroot directory for the target for which the current
14080 recipe is being built
14081 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14082 </para>
14083 </glossdef>
14084 </glossentry>
14085
14086 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
14087 <info>
14088 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."
14089 </info>
14090 <glossdef>
14091 <para role="glossdeffirst">
14092<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14093 Specifies the path to the directory containing binary
14094 configuration scripts.
14095 These scripts provide configuration information for
14096 other software that wants to make use of libraries or
14097 include files provided by the software associated with
14098 the script.
14099 <note>
14100 This style of build configuration has been largely
14101 replaced by <filename>pkg-config</filename>.
14102 Consequently, if <filename>pkg-config</filename>
14103 is supported by the library to which you are linking,
14104 it is recommended you use
14105 <filename>pkg-config</filename> instead of a
14106 provided configuration script.
14107 </note>
14108 </para>
14109 </glossdef>
14110 </glossentry>
14111
14112 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
14113 <info>
14114 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
14115 </info>
14116 <glossdef>
14117 <para role="glossdeffirst">
14118<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14119 Specifies the path to the
14120 <filename>/usr/bin</filename> subdirectory of the
14121 sysroot directory for the build host.
14122 </para>
14123 </glossdef>
14124 </glossentry>
14125
14126 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
14127 <info>
14128 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)."
14129 </info>
14130 <glossdef>
14131 <para role="glossdeffirst">
14132<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14133 Specifies the path to the <filename>/usr/share</filename>
14134 subdirectory of the sysroot directory for the target
14135 for which the current recipe is being built
14136 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14137 </para>
14138 </glossdef>
14139 </glossentry>
14140
14141 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
14142 <info>
14143 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
14144 </info>
14145 <glossdef>
14146 <para role="glossdeffirst">
14147<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14148 Specifies the path to the <filename>/usr/share</filename>
14149 subdirectory of the sysroot directory for the build host.
14150 </para>
14151 </glossdef>
14152 </glossentry>
14153
14154 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
14155 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014156 STAGING_DIR[doc] = "Helps construct the recipe-sysroots directory, which is used during packaging."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014157 </info>
14158 <glossdef>
14159 <para role="glossdeffirst">
14160<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040014161 Helps construct the <filename>recipe-sysroots</filename>
14162 directory, which is used during packaging.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014163 </para>
14164
14165 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014166 For information on how staging for recipe-specific
14167 sysroots occurs, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014168 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014169 task, the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014170 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-sharing-files-between-recipes'>Sharing Files Between Recipes</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -040014171 section in the Yocto Project Development Tasks Manual, the
14172 "<ulink url='&YOCTO_DOCS_OM_URL;#configuration-compilation-and-staging-dev-environment'>Configuration, Compilation, and Staging</ulink>"
14173 section in the Yocto Project Overview and Concepts Manual,
14174 and the
14175 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14176 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014177 <note>
14178 Recipes should never write files directly under
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014179 the <filename>STAGING_DIR</filename> directory because
14180 the OpenEmbedded build system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014181 manages the directory automatically.
14182 Instead, files should be installed to
14183 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
14184 within your recipe's
14185 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
14186 task and then the OpenEmbedded build system will
14187 stage a subset of those files into the sysroot.
14188 </note>
14189 </para>
14190 </glossdef>
14191 </glossentry>
14192
14193 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
14194 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014195 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 -050014196 </info>
14197 <glossdef>
14198 <para role="glossdeffirst">
14199<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014200 Specifies the path to the sysroot directory for the system
Brad Bishop316dfdd2018-06-25 12:45:53 -040014201 on which the component is built to run (the system that
14202 hosts the component).
14203 For most recipes, this sysroot is the one in which that
14204 recipe's
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014205 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014206 task copies files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014207 Exceptions include <filename>-native</filename> recipes,
14208 where the <filename>do_populate_sysroot</filename> task
14209 instead uses
14210 <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
14211 Depending on the type of recipe and the build target,
14212 <filename>STAGING_DIR_HOST</filename> can have the
14213 following values:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014214 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014215 <listitem><para>
14216 For recipes building for the target machine, the
14217 value is
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014218 "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
14219 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014220 <listitem><para>
14221 For native recipes building for the build host, the
14222 value is empty given the assumption that when
14223 building for the build host, the build host's own
14224 directories should be used.
14225 <note>
14226 <para><filename>-native</filename> recipes are
14227 not installed into host paths like such as
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014228 <filename>/usr</filename>.
14229 Rather, these recipes are installed into
14230 <filename>STAGING_DIR_NATIVE</filename>.
14231 When compiling <filename>-native</filename>
14232 recipes, standard build environment variables
14233 such as
14234 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14235 and
14236 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14237 are set up so that both host paths and
14238 <filename>STAGING_DIR_NATIVE</filename> are
14239 searched for libraries and headers using, for
14240 example, GCC's <filename>-isystem</filename>
14241 option.</para>
14242
Brad Bishop316dfdd2018-06-25 12:45:53 -040014243 <para>Thus, the emphasis is that the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014244 <filename>STAGING_DIR*</filename> variables
14245 should be viewed as input variables by tasks
14246 such as
14247 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
14248 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
14249 and
14250 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
14251 Having the real system root correspond to
14252 <filename>STAGING_DIR_HOST</filename> makes
14253 conceptual sense for
14254 <filename>-native</filename> recipes, as
14255 they make use of host headers and libraries.
14256 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014257 </note>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014258 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014259 </itemizedlist>
14260 </para>
14261 </glossdef>
14262 </glossentry>
14263
14264 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
14265 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014266 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 -050014267 </info>
14268 <glossdef>
14269 <para role="glossdeffirst">
14270<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014271 Specifies the path to the sysroot directory used when
14272 building components that run on the build host itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014273 </para>
14274 </glossdef>
14275 </glossentry>
14276
14277 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
14278 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014279 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 -050014280 </info>
14281 <glossdef>
14282 <para role="glossdeffirst">
14283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014284 Specifies the path to the sysroot used for the system for
14285 which the component generates code.
14286 For components that do not generate code, which is the
14287 majority, <filename>STAGING_DIR_TARGET</filename> is set
14288 to match
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014289 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
14290 </para>
14291
14292 <para>
14293 Some recipes build binaries that can run on the target
14294 system but those binaries in turn generate code for
14295 another different system (e.g. cross-canadian recipes).
14296 Using terminology from GNU, the primary system is referred
14297 to as the "HOST" and the secondary, or different, system is
14298 referred to as the "TARGET".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014299 Thus, the binaries run on the "HOST" system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014300 and generate binaries for the "TARGET" system.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014301 The <filename>STAGING_DIR_HOST</filename> variable points
14302 to the sysroot used for the "HOST" system, while
14303 <filename>STAGING_DIR_TARGET</filename>
14304 points to the sysroot used for the "TARGET" system.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014305 </para>
14306 </glossdef>
14307 </glossentry>
14308
14309 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
14310 <info>
14311 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
14312 </info>
14313 <glossdef>
14314 <para role="glossdeffirst">
14315<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14316 Specifies the path to the <filename>/etc</filename>
14317 subdirectory of the sysroot directory for the
14318 build host.
14319 </para>
14320 </glossdef>
14321 </glossentry>
14322
14323 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
14324 <info>
14325 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)."
14326 </info>
14327 <glossdef>
14328 <para role="glossdeffirst">
14329<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14330 Specifies the path to the <filename>/usr</filename>
14331 subdirectory of the sysroot directory for the target
14332 for which the current recipe is being built
14333 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14334 </para>
14335 </glossdef>
14336 </glossentry>
14337
14338 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
14339 <info>
14340 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)."
14341 </info>
14342 <glossdef>
14343 <para role="glossdeffirst">
14344<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14345 Specifies the path to the
14346 <filename>/usr/include</filename> subdirectory of the
14347 sysroot directory for the target for which the current
14348 recipe being built
14349 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14350 </para>
14351 </glossdef>
14352 </glossentry>
14353
14354 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
14355 <info>
14356 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
14357 </info>
14358 <glossdef>
14359 <para role="glossdeffirst">
14360<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14361 Specifies the path to the <filename>/usr/include</filename>
14362 subdirectory of the sysroot directory for the build host.
14363 </para>
14364 </glossdef>
14365 </glossentry>
14366
Patrick Williamsf1e5d692016-03-30 15:21:19 -050014367 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
14368 <info>
14369 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
14370 </info>
14371 <glossdef>
14372 <para role="glossdeffirst">
14373<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14374 Points to the directory containing the kernel build
14375 artifacts.
14376 Recipes building software that needs to access kernel
14377 build artifacts
14378 (e.g. <filename>systemtap-uprobes</filename>) can look in
14379 the directory specified with the
14380 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
14381 find these artifacts after the kernel has been built.
14382 </para>
14383 </glossdef>
14384 </glossentry>
14385
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014386 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
14387 <info>
14388 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
14389 </info>
14390 <glossdef>
14391 <para role="glossdeffirst">
14392<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14393 The directory with kernel headers that are required to build out-of-tree
14394 modules.
14395 </para>
14396 </glossdef>
14397 </glossentry>
14398
14399 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
14400 <info>
14401 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)."
14402 </info>
14403 <glossdef>
14404 <para role="glossdeffirst">
14405<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14406 Specifies the path to the <filename>/usr/lib</filename>
14407 subdirectory of the sysroot directory for the target for
14408 which the current recipe is being built
14409 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
14410 </para>
14411 </glossdef>
14412 </glossentry>
14413
14414 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
14415 <info>
14416 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
14417 </info>
14418 <glossdef>
14419 <para role="glossdeffirst">
14420<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14421 Specifies the path to the <filename>/usr/lib</filename>
14422 subdirectory of the sysroot directory for the build host.
14423 </para>
14424 </glossdef>
14425 </glossentry>
14426
14427 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
14428 <info>
14429 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."
14430 </info>
14431 <glossdef>
14432 <para role="glossdeffirst">
14433<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14434 Specifies the base path used to create recipe stamp files.
14435 The path to an actual stamp file is constructed by evaluating this
14436 string and then appending additional information.
14437 Currently, the default assignment for <filename>STAMP</filename>
14438 as set in the <filename>meta/conf/bitbake.conf</filename> file
14439 is:
14440 <literallayout class='monospaced'>
14441 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
14442 </literallayout>
14443 </para>
14444
14445 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014446 For information on how BitBake uses stamp files to determine
14447 if a task should be rerun, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040014448 "<ulink url='&YOCTO_DOCS_OM_URL;#stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</ulink>"
14449 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014450 </para>
14451
14452 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014453 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
14454 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
14455 <link linkend='var-PN'><filename>PN</filename></link>,
14456 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
14457 <link linkend='var-PV'><filename>PV</filename></link>, and
14458 <link linkend='var-PR'><filename>PR</filename></link> for related variable
14459 information.
14460 </para>
14461 </glossdef>
14462 </glossentry>
14463
14464 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
14465 <info>
14466 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
14467 </info>
14468 <glossdef>
14469 <para role="glossdeffirst">
14470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14471 Specifies the base directory in which the OpenEmbedded
14472 build system places stamps.
14473 The default directory is
14474 <filename>${TMPDIR}/stamps</filename>.
14475 </para>
14476 </glossdef>
14477 </glossentry>
14478
14479 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
14480 <info>
14481 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
14482 </info>
14483 <glossdef>
14484 <para role="glossdeffirst">
14485<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14486 The minimal command and arguments to run
14487 <filename>strip</filename>, which is used to strip
14488 symbols.
14489 </para>
14490 </glossdef>
14491 </glossentry>
14492
14493 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
14494 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014495 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 -050014496 </info>
14497 <glossdef>
14498 <para role="glossdeffirst">
14499<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14500 The short (72 characters or less) summary of the binary package for packaging
Brad Bishop316dfdd2018-06-25 12:45:53 -040014501 systems such as <filename>opkg</filename>, <filename>rpm</filename>, or
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014502 <filename>dpkg</filename>.
14503 By default, <filename>SUMMARY</filename> is used to define
14504 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
14505 variable if <filename>DESCRIPTION</filename> is not set
14506 in the recipe.
14507 </para>
14508 </glossdef>
14509 </glossentry>
14510
14511 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
14512 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014513 SVNDIR[doc] = "The directory where Subversion checkouts are stored."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014514 </info>
14515 <glossdef>
14516 <para role="glossdeffirst">
14517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14518 The directory in which files checked out of a Subversion
14519 system are stored.
14520 </para>
14521 </glossdef>
14522 </glossentry>
14523
14524 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
14525 <info>
14526 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
14527 </info>
14528 <glossdef>
14529 <para role="glossdeffirst">
14530<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14531 Specifies the kernel boot default console.
14532 If you want to use a console other than the default,
14533 set this variable in your recipe as follows where "X" is
14534 the console number you want to use:
14535 <literallayout class='monospaced'>
14536 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
14537 </literallayout>
14538 </para>
14539
14540 <para>
14541 The
14542 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14543 class initially sets this variable to null but then checks
14544 for a value later.
14545 </para>
14546 </glossdef>
14547 </glossentry>
14548
14549 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
14550 <info>
14551 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
14552 </info>
14553 <glossdef>
14554 <para role="glossdeffirst">
14555<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14556 Lists additional options to add to the syslinux file.
14557 You need to set this variable in your recipe.
14558 If you want to list multiple options, separate the options
14559 with a semicolon character (<filename>;</filename>).
14560 </para>
14561
14562 <para>
14563 The
14564 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14565 class uses this variable to create a set of options.
14566 </para>
14567 </glossdef>
14568 </glossentry>
14569
14570 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
14571 <info>
14572 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
14573 </info>
14574 <glossdef>
14575 <para role="glossdeffirst">
14576<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14577 Specifies the alternate serial port or turns it off.
14578 To turn off serial, set this variable to an empty string
14579 in your recipe.
14580 The variable's default value is set in the
14581 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014582 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014583 <literallayout class='monospaced'>
14584 SYSLINUX_SERIAL ?= "0 115200"
14585 </literallayout>
14586 </para>
14587
14588 <para>
14589 The class checks for and uses the variable as needed.
14590 </para>
14591 </glossdef>
14592 </glossentry>
14593
14594 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
14595 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014596 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 -050014597 </info>
14598 <glossdef>
14599 <para role="glossdeffirst">
14600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14601 An <filename>.LSS</filename> file used as the background
Brad Bishop316dfdd2018-06-25 12:45:53 -040014602 for the VGA boot menu when you use the boot menu.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014603 You need to set this variable in your recipe.
14604 </para>
14605
14606 <para>
14607 The
14608 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14609 class checks for this variable and if found, the
14610 OpenEmbedded build system installs the splash screen.
14611 </para>
14612 </glossdef>
14613 </glossentry>
14614
14615 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
14616 <info>
14617 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
14618 </info>
14619 <glossdef>
14620 <para role="glossdeffirst">
14621<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14622 Specifies the alternate console=tty... kernel boot argument.
14623 The variable's default value is set in the
14624 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014625 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014626 <literallayout class='monospaced'>
14627 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
14628 </literallayout>
14629 </para>
14630
14631 <para>
14632 The class checks for and uses the variable as needed.
14633 </para>
14634 </glossdef>
14635 </glossentry>
14636
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014637 <glossentry id='var-SYSROOT_DESTDIR'><glossterm>SYSROOT_DESTDIR</glossterm>
14638 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014639 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 -050014640 </info>
14641 <glossdef>
14642 <para role="glossdeffirst">
14643<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14644 Points to the temporary directory under the work directory
14645 (default
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014646 "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
Brad Bishop316dfdd2018-06-25 12:45:53 -040014647 where the files populated into the sysroot are assembled
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014648 during the
14649 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14650 task.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014651 </para>
14652 </glossdef>
14653 </glossentry>
14654
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014655 <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
14656 <info>
14657 SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
14658 </info>
14659 <glossdef>
14660 <para role="glossdeffirst">
14661<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14662 Directories that are staged into the sysroot by the
14663 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14664 task.
14665 By default, the following directories are staged:
14666 <literallayout class='monospaced'>
14667 SYSROOT_DIRS = " \
14668 ${includedir} \
14669 ${libdir} \
14670 ${base_libdir} \
14671 ${nonarch_base_libdir} \
14672 ${datadir} \
14673 "
14674 </literallayout>
14675 </para>
14676 </glossdef>
14677 </glossentry>
14678
14679 <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
14680 <info>
14681 SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
14682 </info>
14683 <glossdef>
14684 <para role="glossdeffirst">
14685<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14686 Directories that are not staged into the sysroot by the
14687 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14688 task.
14689 You can use this variable to exclude certain subdirectories
14690 of directories listed in
14691 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14692 from staging.
14693 By default, the following directories are not staged:
14694 <literallayout class='monospaced'>
14695 SYSROOT_DIRS_BLACKLIST = " \
14696 ${mandir} \
14697 ${docdir} \
14698 ${infodir} \
14699 ${datadir}/locale \
14700 ${datadir}/applications \
14701 ${datadir}/fonts \
14702 ${datadir}/pixmaps \
14703 "
14704 </literallayout>
14705 </para>
14706 </glossdef>
14707 </glossentry>
14708
14709 <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
14710 <info>
14711 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."
14712 </info>
14713 <glossdef>
14714 <para role="glossdeffirst">
14715<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14716 Extra directories staged into the sysroot by the
14717 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14718 task for <filename>-native</filename> recipes, in addition
14719 to those specified in
14720 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
14721 By default, the following extra directories are staged:
14722 <literallayout class='monospaced'>
14723 SYSROOT_DIRS_NATIVE = " \
14724 ${bindir} \
14725 ${sbindir} \
14726 ${base_bindir} \
14727 ${base_sbindir} \
14728 ${libexecdir} \
14729 ${sysconfdir} \
14730 ${localstatedir} \
14731 "
14732 </literallayout>
14733 <note>
14734 Programs built by <filename>-native</filename> recipes
14735 run directly from the sysroot
14736 (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
14737 which is why additional directories containing program
14738 executables and supporting files need to be staged.
14739 </note>
14740 </para>
14741 </glossdef>
14742 </glossentry>
14743
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014744 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
14745 <info>
14746 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."
14747 </info>
14748 <glossdef>
14749 <para role="glossdeffirst">
14750<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14751 A list of functions to execute after files are staged into
14752 the sysroot.
14753 These functions are usually used to apply additional
14754 processing on the staged files, or to stage additional
14755 files.
14756 </para>
14757 </glossdef>
14758 </glossentry>
14759
14760 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
14761 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014762 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 -050014763 </info>
14764 <glossdef>
14765 <para role="glossdeffirst">
14766<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14767 When inheriting the
14768 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014769 class, this variable specifies whether the specified service
14770 in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014771 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014772 should start automatically or not.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014773 By default, the service is enabled to automatically start
14774 at boot time.
14775 The default setting is in the
14776 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14777 class as follows:
14778 <literallayout class='monospaced'>
14779 SYSTEMD_AUTO_ENABLE ??= "enable"
14780 </literallayout>
14781 </para>
14782
14783 <para>
14784 You can disable the service by setting the variable to
14785 "disable".
14786 </para>
14787 </glossdef>
14788 </glossentry>
14789
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014790 <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
14791 <info>
14792 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."
14793 </info>
14794 <glossdef>
14795 <para role="glossdeffirst">
14796<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14797 When
14798 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14799 is set to "systemd-boot", the
14800 <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
14801 configuration file that should be used.
14802 By default, the
14803 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14804 class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
14805 follows:
14806 <literallayout class='monospaced'>
14807 SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
14808 </literallayout>
14809 </para>
14810
14811 <para>
14812 For information on Systemd-boot, see the
14813 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14814 </para>
14815 </glossdef>
14816 </glossentry>
14817
14818 <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
14819 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014820 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 -060014821 </info>
14822 <glossdef>
14823 <para role="glossdeffirst">
14824<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14825 When
14826 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14827 is set to "systemd-boot", the
14828 <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
14829 a list of entry files
Brad Bishop316dfdd2018-06-25 12:45:53 -040014830 (<filename>*.conf</filename>) to install that contain
14831 one boot entry per file.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014832 By default, the
14833 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14834 class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
14835 follows:
14836 <literallayout class='monospaced'>
14837 SYSTEMD_BOOT_ENTRIES ?= ""
14838 </literallayout>
14839 </para>
14840
14841 <para>
14842 For information on Systemd-boot, see the
14843 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14844 </para>
14845 </glossdef>
14846 </glossentry>
14847
14848 <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
14849 <info>
14850 SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
14851 </info>
14852 <glossdef>
14853 <para role="glossdeffirst">
14854<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14855 When
14856 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14857 is set to "systemd-boot", the
14858 <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
14859 the boot menu timeout in seconds.
14860 By default, the
14861 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14862 class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
14863 follows:
14864 <literallayout class='monospaced'>
14865 SYSTEMD_BOOT_TIMEOUT ?= "10"
14866 </literallayout>
14867 </para>
14868
14869 <para>
14870 For information on Systemd-boot, see the
14871 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14872 </para>
14873 </glossdef>
14874 </glossentry>
14875
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014876 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
14877 <info>
14878 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."
14879 </info>
14880 <glossdef>
14881 <para role="glossdeffirst">
14882<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14883 When inheriting the
14884 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14885 class, this variable locates the systemd unit files when
14886 they are not found in the main recipe's package.
14887 By default, the
14888 <filename>SYSTEMD_PACKAGES</filename> variable is set
14889 such that the systemd unit files are assumed to reside in
14890 the recipes main package:
14891 <literallayout class='monospaced'>
14892 SYSTEMD_PACKAGES ?= "${PN}"
14893 </literallayout>
14894 </para>
14895
14896 <para>
14897 If these unit files are not in this recipe's main
14898 package, you need to use
14899 <filename>SYSTEMD_PACKAGES</filename> to list the package
14900 or packages in which the build system can find the systemd
14901 unit files.
14902 </para>
14903 </glossdef>
14904 </glossentry>
14905
14906 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
14907 <info>
14908 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
14909 </info>
14910 <glossdef>
14911 <para role="glossdeffirst">
14912<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14913 When inheriting the
14914 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14915 class, this variable specifies the systemd service name for
14916 a package.
14917 </para>
14918
14919 <para>
14920 When you specify this file in your recipe, use a package
14921 name override to indicate the package to which the value
14922 applies.
14923 Here is an example from the connman recipe:
14924 <literallayout class='monospaced'>
14925 SYSTEMD_SERVICE_${PN} = "connman.service"
14926 </literallayout>
14927 </para>
14928 </glossdef>
14929 </glossentry>
14930
14931 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
14932 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014933 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should run a getty, the default is '1'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014934 </info>
14935 <glossdef>
14936 <para role="glossdeffirst">
14937<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14938 When using
14939 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14940 specifies a space-separated list of the virtual terminals
Brad Bishop316dfdd2018-06-25 12:45:53 -040014941 that should run a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014942 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14943 (allowing login), assuming
14944 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
14945 is not set to "0".
14946 </para>
14947
14948 <para>
14949 The default value for
14950 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
14951 (i.e. only run a getty on the first virtual terminal).
14952 </para>
14953 </glossdef>
14954 </glossentry>
14955
14956 </glossdiv>
14957
14958 <glossdiv id='var-glossary-t'><title>T</title>
14959
14960 <glossentry id='var-T'><glossterm>T</glossterm>
14961 <info>
14962 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."
14963 </info>
14964 <glossdef>
14965 <para role="glossdeffirst">
14966<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14967 This variable points to a directory were BitBake places
14968 temporary files, which consist mostly of task logs and
14969 scripts, when building a particular recipe.
14970 The variable is typically set as follows:
14971 <literallayout class='monospaced'>
14972 T = "${WORKDIR}/temp"
14973 </literallayout>
14974 </para>
14975
14976 <para>
14977 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
14978 is the directory into which BitBake unpacks and builds the
14979 recipe.
14980 The default <filename>bitbake.conf</filename> file sets this variable.</para>
14981 <para>The <filename>T</filename> variable is not to be confused with
14982 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
14983 which points to the root of the directory tree where BitBake
14984 places the output of an entire build.
14985 </para>
14986 </glossdef>
14987 </glossentry>
14988
14989 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
14990 <info>
14991 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
14992 </info>
14993 <glossdef>
14994 <para role="glossdeffirst">
14995<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14996 The target machine's architecture.
14997 The OpenEmbedded build system supports many
14998 architectures.
14999 Here is an example list of architectures supported.
15000 This list is by no means complete as the architecture
15001 is configurable:
15002 <literallayout class='monospaced'>
15003 arm
15004 i586
15005 x86_64
15006 powerpc
15007 powerpc64
15008 mips
15009 mipsel
15010 </literallayout>
15011 </para>
15012
15013 <para>
15014 For additional information on machine architectures, see
15015 the
15016 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
15017 variable.
15018 </para>
15019 </glossdef>
15020 </glossentry>
15021
15022 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
15023 <info>
15024 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
15025 </info>
15026 <glossdef>
15027 <para role="glossdeffirst">
15028<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15029 Specifies architecture-specific assembler flags for the
15030 target system.
15031 <filename>TARGET_AS_ARCH</filename> is initialized from
15032 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
15033 by default in the BitBake configuration file
15034 (<filename>meta/conf/bitbake.conf</filename>):
15035 <literallayout class='monospaced'>
15036 TARGET_AS_ARCH = "${TUNE_ASARGS}"
15037 </literallayout>
15038 </para>
15039 </glossdef>
15040 </glossentry>
15041
15042 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
15043 <info>
15044 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
15045 </info>
15046 <glossdef>
15047 <para role="glossdeffirst">
15048<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15049 Specifies architecture-specific C compiler flags for the
15050 target system.
15051 <filename>TARGET_CC_ARCH</filename> is initialized from
15052 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
15053 by default.
15054 <note>
15055 It is a common workaround to append
15056 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
15057 to <filename>TARGET_CC_ARCH</filename>
15058 in recipes that build software for the target that
15059 would not otherwise respect the exported
15060 <filename>LDFLAGS</filename> variable.
15061 </note>
15062 </para>
15063 </glossdef>
15064 </glossentry>
15065
15066 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
15067 <info>
15068 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
15069 </info>
15070 <glossdef>
15071 <para role="glossdeffirst">
15072<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15073 This is a specific kernel compiler flag for a CPU or
15074 Application Binary Interface (ABI) tune.
15075 The flag is used rarely and only for cases where a
15076 userspace
15077 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
15078 is not compatible with the kernel compilation.
15079 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
15080 allows the kernel (and associated modules) to use a
15081 different configuration.
15082 See the
15083 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
15084 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015085 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015086 for an example.
15087 </para>
15088 </glossdef>
15089 </glossentry>
15090
15091 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
15092 <info>
15093 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
15094 </info>
15095 <glossdef>
15096 <para role="glossdeffirst">
15097<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15098 Specifies the flags to pass to the C compiler when building
15099 for the target.
15100 When building in the target context,
15101 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
15102 is set to the value of this variable by default.
15103 </para>
15104
15105 <para>
15106 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040015107 the <filename>CFLAGS</filename> variable in the environment
15108 to the <filename>TARGET_CFLAGS</filename> value so that
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015109 executables built using the SDK also have the flags
15110 applied.
15111 </para>
15112 </glossdef>
15113 </glossentry>
15114
15115 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
15116 <info>
15117 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."
15118 </info>
15119 <glossdef>
15120 <para role="glossdeffirst">
15121<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15122 Specifies the flags to pass to the C pre-processor
15123 (i.e. to both the C and the C++ compilers) when building
15124 for the target.
15125 When building in the target context,
15126 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
15127 is set to the value of this variable by default.
15128 </para>
15129
15130 <para>
15131 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040015132 the <filename>CPPFLAGS</filename> variable in the
15133 environment to the <filename>TARGET_CPPFLAGS</filename>
15134 value so that executables built using the SDK also have
15135 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015136 </para>
15137 </glossdef>
15138 </glossentry>
15139
15140 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
15141 <info>
15142 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
15143 </info>
15144 <glossdef>
15145 <para role="glossdeffirst">
15146<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15147 Specifies the flags to pass to the C++ compiler when
15148 building for the target.
15149 When building in the target context,
15150 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
15151 is set to the value of this variable by default.
15152 </para>
15153
15154 <para>
15155 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040015156 the <filename>CXXFLAGS</filename> variable in the
15157 environment to the <filename>TARGET_CXXFLAGS</filename>
15158 value so that executables built using the SDK also have
15159 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015160 </para>
15161 </glossdef>
15162 </glossentry>
15163
15164 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
15165 <info>
15166 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."
15167 </info>
15168 <glossdef>
15169 <para role="glossdeffirst">
15170<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15171 Specifies the method for handling FPU code.
15172 For FPU-less targets, which include most ARM CPUs, the variable must be
15173 set to "soft".
15174 If not, the kernel emulation gets used, which results in a performance penalty.
15175 </para>
15176 </glossdef>
15177 </glossentry>
15178
15179 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
15180 <info>
15181 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
15182 </info>
15183 <glossdef>
15184 <para role="glossdeffirst">
15185<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15186 Specifies architecture-specific linker flags for the
15187 target system.
15188 <filename>TARGET_LD_ARCH</filename> is initialized from
15189 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
15190 by default in the BitBake configuration file
15191 (<filename>meta/conf/bitbake.conf</filename>):
15192 <literallayout class='monospaced'>
15193 TARGET_LD_ARCH = "${TUNE_LDARGS}"
15194 </literallayout>
15195 </para>
15196 </glossdef>
15197 </glossentry>
15198
15199 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
15200 <info>
15201 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
15202 </info>
15203 <glossdef>
15204 <para role="glossdeffirst">
15205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15206 Specifies the flags to pass to the linker when building
15207 for the target.
15208 When building in the target context,
15209 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
15210 is set to the value of this variable by default.
15211 </para>
15212
15213 <para>
15214 Additionally, the SDK's environment setup script sets
15215 the
15216 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
15217 variable in the environment to the
15218 <filename>TARGET_LDFLAGS</filename> value so that
15219 executables built using the SDK also have the flags
15220 applied.
15221 </para>
15222 </glossdef>
15223 </glossentry>
15224
15225 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
15226 <info>
15227 TARGET_OS[doc] = "Specifies the target's operating system."
15228 </info>
15229 <glossdef>
15230 <para role="glossdeffirst">
15231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15232 Specifies the target's operating system.
Brad Bishop316dfdd2018-06-25 12:45:53 -040015233 The variable can be set to "linux" for glibc-based systems
15234 (GNU C Library) and to "linux-musl" for musl libc.
15235 For ARM/EABI targets, "linux-gnueabi" and "linux-musleabi"
15236 possible values exist.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015237 </para>
15238 </glossdef>
15239 </glossentry>
15240
15241 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
15242 <info>
15243 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
15244 </info>
15245 <glossdef>
15246 <para role="glossdeffirst">
15247<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15248 Specifies the prefix used for the toolchain binary target
15249 tools.
15250 </para>
15251
15252 <para>
15253 Depending on the type of recipe and the build target,
15254 <filename>TARGET_PREFIX</filename> is set as follows:
15255 <itemizedlist>
15256 <listitem><para>
15257 For recipes building for the target machine,
15258 the value is
15259 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
15260 </para></listitem>
15261 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015262 For native recipes, the build system sets the
15263 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015264 <filename>BUILD_PREFIX</filename>.
15265 </para></listitem>
15266 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015267 For native SDK recipes
15268 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015269 build system sets the variable to the value of
15270 <filename>SDK_PREFIX</filename>.
15271 </para></listitem>
15272 </itemizedlist>
15273 </para>
15274 </glossdef>
15275 </glossentry>
15276
15277 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
15278 <info>
15279 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
15280 </info>
15281 <glossdef>
15282 <para role="glossdeffirst">
15283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15284 Specifies the system, including the architecture and the
15285 operating system, for which the build is occurring in
15286 the context of the current recipe.
15287 </para>
15288
15289 <para>
15290 The OpenEmbedded build system automatically sets this
15291 variable based on
15292 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
15293 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
15294 and
15295 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
15296 variables.
15297 <note>
15298 You do not need to set the
15299 <filename>TARGET_SYS</filename> variable yourself.
15300 </note>
15301 </para>
15302
15303 <para>
15304 Consider these two examples:
15305 <itemizedlist>
15306 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015307 Given a native recipe on a 32-bit, x86 machine
15308 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015309 </para></listitem>
15310 <listitem><para>
15311 Given a recipe being built for a little-endian,
15312 MIPS target running Linux, the value might be
15313 "mipsel-linux".
15314 </para></listitem>
15315 </itemizedlist>
15316 </para>
15317 </glossdef>
15318 </glossentry>
15319
15320 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
15321 <info>
15322 TARGET_VENDOR[doc] = "The name of the target vendor."
15323 </info>
15324 <glossdef>
15325 <para role="glossdeffirst">
15326<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15327 Specifies the name of the target vendor.
15328 </para>
15329 </glossdef>
15330 </glossentry>
15331
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015332 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
15333 <info>
15334 TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc', 'musl' or "newlib."
15335 </info>
15336 <glossdef>
15337 <para role="glossdeffirst">
15338<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15339 Specifies the GNU standard C library
15340 (<filename>libc</filename>) variant to use during the
15341 build process.
15342 This variable replaces <filename>POKYLIBC</filename>,
15343 which is no longer supported.
15344 </para>
15345
15346 <para>
15347 You can select "glibc", "musl", "newlib", or "baremetal"
15348 </para>
15349 </glossdef>
15350 </glossentry>
15351
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015352 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
15353 <info>
15354 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
15355 </info>
15356 <glossdef>
15357 <para role="glossdeffirst">
15358<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15359 Specifies a suffix to be appended onto the
15360 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
15361 value.
15362 The suffix identifies the <filename>libc</filename> variant
15363 for building.
15364 When you are building for multiple variants with the same
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015365 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015366 this mechanism ensures that output for different
15367 <filename>libc</filename> variants is kept separate to
15368 avoid potential conflicts.
15369 </para>
15370
15371 <para>
15372 In the <filename>defaultsetup.conf</filename> file, the
15373 default value of <filename>TCLIBCAPPEND</filename> is
15374 "-${TCLIBC}".
15375 However, distros such as poky, which normally only support
15376 one <filename>libc</filename> variant, set
15377 <filename>TCLIBCAPPEND</filename> to "" in their distro
15378 configuration file resulting in no suffix being applied.
15379 </para>
15380 </glossdef>
15381 </glossentry>
15382
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015383 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
15384 <info>
15385 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
15386 </info>
15387 <glossdef>
15388 <para role="glossdeffirst">
15389<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15390 Specifies the toolchain selector.
15391 <filename>TCMODE</filename> controls the characteristics
15392 of the generated packages and images by telling the
15393 OpenEmbedded build system which toolchain profile to use.
15394 By default, the OpenEmbedded build system builds its own
15395 internal toolchain.
15396 The variable's default value is "default", which uses
15397 that internal toolchain.
15398 <note>
15399 If <filename>TCMODE</filename> is set to a value
15400 other than "default", then it is your responsibility
15401 to ensure that the toolchain is compatible with the
15402 default toolchain.
15403 Using older or newer versions of these components
15404 might cause build problems.
Brad Bishop316dfdd2018-06-25 12:45:53 -040015405 See the Release Notes for the Yocto Project release
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015406 for the specific components with which the toolchain
15407 must be compatible.
Brad Bishop316dfdd2018-06-25 12:45:53 -040015408 To access the Release Notes, go to the
15409 <ulink url='&YOCTO_HOME_URL;/software-overview/downloads/'>Downloads</ulink>
15410 page on the Yocto Project website and click on the
15411 "RELEASE INFORMATION" link for the appropriate
15412 release.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015413 </note>
15414 </para>
15415
15416 <para>
15417 The <filename>TCMODE</filename> variable is similar to
15418 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
15419 which controls the variant of the GNU standard C library
15420 (<filename>libc</filename>) used during the build process:
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015421 <filename>glibc</filename> or <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015422 </para>
15423
15424 <para>
15425 With additional layers, it is possible to use a pre-compiled
15426 external toolchain.
15427 One example is the Sourcery G++ Toolchain.
15428 The support for this toolchain resides in the separate
15429 <trademark class='registered'>Mentor Graphics</trademark>
15430 <filename>meta-sourcery</filename> layer at
15431 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
15432 </para>
15433
15434 <para>
15435 The layer's <filename>README</filename> file contains
15436 information on how to use the Sourcery G++ Toolchain as
15437 an external toolchain.
15438 In summary, you must be sure to add the layer to your
15439 <filename>bblayers.conf</filename> file in front of the
15440 <filename>meta</filename> layer and then set the
15441 <filename>EXTERNAL_TOOLCHAIN</filename>
15442 variable in your <filename>local.conf</filename> file
15443 to the location in which you installed the toolchain.
15444 </para>
15445
15446 <para>
15447 The fundamentals used for this example apply to any
15448 external toolchain.
15449 You can use <filename>meta-sourcery</filename> as a
15450 template for adding support for other external toolchains.
15451 </para>
15452 </glossdef>
15453 </glossentry>
15454
15455 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
15456 <info>
15457 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
15458 </info>
15459 <glossdef>
15460 <para role="glossdeffirst">
15461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15462 The location the OpenEmbedded build system uses to export
15463 tests when the
15464 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
15465 variable is set to "1".
15466 </para>
15467
15468 <para>
15469 The <filename>TEST_EXPORT_DIR</filename> variable defaults
15470 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
15471 </para>
15472 </glossdef>
15473 </glossentry>
15474
15475 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
15476 <info>
15477 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."
15478 </info>
15479 <glossdef>
15480 <para role="glossdeffirst">
15481<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15482 Specifies to export the tests only.
15483 Set this variable to "1" if you do not want to run the
15484 tests but you want them to be exported in a manner that
15485 you to run them outside of the build system.
15486 </para>
15487 </glossdef>
15488 </glossentry>
15489
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015490 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
15491 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040015492 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 -050015493 </info>
15494 <glossdef>
15495 <para role="glossdeffirst">
15496<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15497 Holds the SSH log and the boot log for QEMU machines.
15498 The <filename>TEST_LOG_DIR</filename> variable defaults
15499 to <filename>"${WORKDIR}/testimage"</filename>.
15500 <note>
15501 Actual test results reside in the task log
15502 (<filename>log.do_testimage</filename>), which is in
15503 the <filename>${WORKDIR}/temp/</filename> directory.
15504 </note>
15505 </para>
15506 </glossdef>
15507 </glossentry>
15508
15509 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
15510 <info>
15511 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
15512 </info>
15513 <glossdef>
15514 <para role="glossdeffirst">
15515<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15516 For automated hardware testing, specifies the command to
15517 use to control the power of the target machine under test.
15518 Typically, this command would point to a script that
15519 performs the appropriate action (e.g. interacting
15520 with a web-enabled power strip).
15521 The specified command should expect to receive as the last
15522 argument "off", "on" or "cycle" specifying to power off,
15523 on, or cycle (power off and then power on) the device,
15524 respectively.
15525 </para>
15526 </glossdef>
15527 </glossentry>
15528
15529 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
15530 <info>
15531 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
15532 </info>
15533 <glossdef>
15534 <para role="glossdeffirst">
15535<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15536 For automated hardware testing, specifies additional
15537 arguments to pass through to the command specified in
15538 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
15539 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
15540 is optional.
15541 You can use it if you wish, for example, to separate the
15542 machine-specific and non-machine-specific parts of the
15543 arguments.
15544 </para>
15545 </glossdef>
15546 </glossentry>
15547
15548 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
15549 <info>
15550 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
15551 </info>
15552 <glossdef>
15553 <para role="glossdeffirst">
15554<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15555 The time in seconds allowed for an image to boot before
15556 automated runtime tests begin to run against an
15557 image.
15558 The default timeout period to allow the boot process to
15559 reach the login prompt is 500 seconds.
15560 You can specify a different value in the
15561 <filename>local.conf</filename> file.
15562 </para>
15563
15564 <para>
15565 For more information on testing images, see the
15566 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015567 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015568 </para>
15569 </glossdef>
15570 </glossentry>
15571
15572 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
15573 <info>
15574 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."
15575 </info>
15576 <glossdef>
15577 <para role="glossdeffirst">
15578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15579 For automated hardware testing, specifies the command
15580 to use to connect to the serial console of the target
15581 machine under test.
15582 This command simply needs to connect to the serial console
15583 and forward that connection to standard input and output
15584 as any normal terminal program does.
15585 </para>
15586
15587 <para>
15588 For example, to use the Picocom terminal program on
15589 serial device <filename>/dev/ttyUSB0</filename> at
15590 115200bps, you would set the variable as follows:
15591 <literallayout class='monospaced'>
15592 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
15593 </literallayout>
15594 </para>
15595 </glossdef>
15596 </glossentry>
15597
15598 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
15599 <info>
15600 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
15601 </info>
15602 <glossdef>
15603 <para role="glossdeffirst">
15604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15605 For automated hardware testing, specifies additional
15606 arguments to pass through to the command specified in
15607 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
15608 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
15609 is optional.
15610 You can use it if you wish, for example, to separate the
15611 machine-specific and non-machine-specific parts of the
15612 command.
15613 </para>
15614 </glossdef>
15615 </glossentry>
15616
15617 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
15618 <info>
15619 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
15620 </info>
15621 <glossdef>
15622 <para role="glossdeffirst">
15623<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15624 The IP address of the build machine (host machine).
15625 This IP address is usually automatically detected.
15626 However, if detection fails, this variable needs to be set
15627 to the IP address of the build machine (i.e. where
15628 the build is taking place).
15629 <note>
15630 The <filename>TEST_SERVER_IP</filename> variable
15631 is only used for a small number of tests such as
Brad Bishop6e60e8b2018-02-01 10:27:11 -050015632 the "dnf" test suite, which needs to download
15633 packages from
15634 <filename>WORKDIR/oe-rootfs-repo</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015635 </note>
15636 </para>
15637 </glossdef>
15638 </glossentry>
15639
15640 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
15641 <info>
15642 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
15643 </info>
15644 <glossdef>
15645 <para role="glossdeffirst">
15646<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15647 Specifies the target controller to use when running tests
15648 against a test image.
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015649 The default controller to use is "QemuTarget":
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015650 <literallayout class='monospaced'>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015651 TEST_TARGET = "QemuTarget"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015652 </literallayout>
15653 </para>
15654
15655 <para>
15656 A target controller is a class that defines how an
15657 image gets deployed on a target and how a target is started.
15658 A layer can extend the controllers by adding a module
15659 in the layer's <filename>/lib/oeqa/controllers</filename>
15660 directory and by inheriting the
15661 <filename>BaseTarget</filename> class, which is an abstract
15662 class that cannot be used as a value of
15663 <filename>TEST_TARGET</filename>.
15664 </para>
15665
15666 <para>
15667 You can provide the following arguments with
15668 <filename>TEST_TARGET</filename>:
15669 <itemizedlist>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015670 <listitem><para><emphasis>"QemuTarget":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015671 Boots a QEMU image and runs the tests.
15672 See the
15673 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015674 section in the Yocto Project Development Tasks
15675 Manual for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015676 </para></listitem>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015677 <listitem><para><emphasis>"SimpleRemoteTarget":</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015678 Runs the tests on target hardware that is already
15679 up and running.
15680 The hardware can be on the network or it can be
15681 a device running an image on QEMU.
15682 You must also set
15683 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015684 when you use "SimpleRemoteTarget".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015685 <note>
15686 This argument is defined in
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015687 <filename>meta/lib/oeqa/controllers/simpleremote.py</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015688 </note>
15689 </para></listitem>
15690 </itemizedlist>
15691 </para>
15692
15693 <para>
15694 For information on running tests on hardware, see the
15695 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015696 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015697 </para>
15698 </glossdef>
15699 </glossentry>
15700
15701 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
15702 <info>
15703 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
15704 </info>
15705 <glossdef>
15706 <para role="glossdeffirst">
15707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15708 The IP address of your hardware under test.
15709 The <filename>TEST_TARGET_IP</filename> variable has no
15710 effect when
15711 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
15712 is set to "qemu".
15713 </para>
15714
15715 <para>
15716 When you specify the IP address, you can also include a
15717 port.
15718 Here is an example:
15719 <literallayout class='monospaced'>
15720 TEST_TARGET_IP = "192.168.1.4:2201"
15721 </literallayout>
15722 Specifying a port is useful when SSH is started on a
15723 non-standard port or in cases when your hardware under test
15724 is behind a firewall or network that is not directly
15725 accessible from your host and you need to do port address
15726 translation.
15727 </para>
15728 </glossdef>
15729 </glossentry>
15730
15731 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
15732 <info>
15733 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
15734 </info>
15735 <glossdef>
15736 <para role="glossdeffirst">
15737<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15738 An ordered list of tests (modules) to run against
15739 an image when performing automated runtime testing.
15740 </para>
15741
15742 <para>
15743 The OpenEmbedded build system provides a core set of tests
15744 that can be used against images.
15745 <note>
15746 Currently, there is only support for running these tests
15747 under QEMU.
15748 </note>
15749 Tests include <filename>ping</filename>,
15750 <filename>ssh</filename>, <filename>df</filename> among
15751 others.
15752 You can add your own tests to the list of tests by
15753 appending <filename>TEST_SUITES</filename> as follows:
15754 <literallayout class='monospaced'>
15755 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
15756 </literallayout>
15757 Alternatively, you can provide the "auto" option to
15758 have all applicable tests run against the image.
15759 <literallayout class='monospaced'>
15760 TEST_SUITES_append = " auto"
15761 </literallayout>
15762 Using this option causes the build system to automatically
15763 run tests that are applicable to the image.
15764 Tests that are not applicable are skipped.
15765 </para>
15766
15767 <para>
15768 The order in which tests are run is important.
15769 Tests that depend on another test must appear later in the
15770 list than the test on which they depend.
15771 For example, if you append the list of tests with two
15772 tests (<filename>test_A</filename> and
15773 <filename>test_B</filename>) where
15774 <filename>test_B</filename> is dependent on
15775 <filename>test_A</filename>, then you must order the tests
15776 as follows:
15777 <literallayout class='monospaced'>
15778 TEST_SUITES = " test_A test_B"
15779 </literallayout>
15780 </para>
15781
15782 <para>
15783 For more information on testing images, see the
15784 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015785 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015786 </para>
15787 </glossdef>
15788 </glossentry>
15789
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015790 <glossentry id='var-TESTIMAGE_AUTO'><glossterm>TESTIMAGE_AUTO</glossterm>
15791 <info>
15792 TESTIMAGE_AUTO[doc] = "Enables automatic testing of an image once it is built."
15793 </info>
15794 <glossdef>
15795 <para role="glossdeffirst">
15796<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15797 Automatically runs the series of automated tests for
15798 images when an image is successfully built.
15799 Setting <filename>TESTIMAGE_AUTO</filename> to "1"
15800 causes any image that successfully builds to automatically
15801 boot under QEMU.
15802 Using the variable also adds in dependencies so that any
15803 SDK for which testing is requested is automatically built
15804 first.
15805 </para>
15806
15807 <para>
15808 These tests are written in Python making use of the
15809 <filename>unittest</filename> module, and the majority of
15810 them run commands on the target system over
15811 <filename>ssh</filename>.
15812 You can set this variable to "1" in your
15813 <filename>local.conf</filename> file in the
15814 <link linkend='build-directory'>Build Directory</link>
15815 to have the OpenEmbedded build system automatically run
15816 these tests after an image successfully builds:
15817 <literallayout class='monospaced'>
15818 TESTIMAGE_AUTO = "1"
15819 </literallayout>
15820 For more information on enabling, running, and writing
15821 these tests, see the
15822 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
15823 section in the Yocto Project Development Tasks Manual and
15824 the
15825 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
15826 section.
15827 </para>
15828 </glossdef>
15829 </glossentry>
15830
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015831 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
15832 <info>
15833 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
15834 </info>
15835 <glossdef>
15836 <para role="glossdeffirst">
15837<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15838 The directory in which the file BitBake is currently
15839 parsing is located.
15840 Do not manually set this variable.
15841 </para>
15842 </glossdef>
15843 </glossentry>
15844
15845 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
15846 <info>
15847 TIME[doc] = "The time the build was started using HMS format."
15848 </info>
15849 <glossdef>
15850 <para role="glossdeffirst">
15851<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15852 The time the build was started.
15853 Times appear using the hour, minute, and second (HMS)
15854 format (e.g. "140159" for one minute and fifty-nine
15855 seconds past 1400 hours).
15856 </para>
15857 </glossdef>
15858 </glossentry>
15859
15860 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
15861 <info>
15862 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."
15863 </info>
15864 <glossdef>
15865 <para role="glossdeffirst">
15866<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15867 This variable is the base directory the OpenEmbedded
15868 build system uses for all build output and intermediate
15869 files (other than the shared state cache).
15870 By default, the <filename>TMPDIR</filename> variable points
15871 to <filename>tmp</filename> within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015872 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015873 </para>
15874
15875 <para>
15876 If you want to establish this directory in a location other
15877 than the default, you can uncomment and edit the following
15878 statement in the
15879 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015880 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015881 <literallayout class='monospaced'>
15882 #TMPDIR = "${TOPDIR}/tmp"
15883 </literallayout>
15884 An example use for this scenario is to set
15885 <filename>TMPDIR</filename> to a local disk, which does
15886 not use NFS, while having the Build Directory use NFS.
15887 </para>
15888
15889 <para>
15890 The filesystem used by <filename>TMPDIR</filename> must
15891 have standard filesystem semantics (i.e. mixed-case files
15892 are unique, POSIX file locking, and persistent inodes).
15893 Due to various issues with NFS and bugs in some
15894 implementations, NFS does not meet this minimum
15895 requirement.
15896 Consequently, <filename>TMPDIR</filename> cannot be on
15897 NFS.
15898 </para>
15899 </glossdef>
15900 </glossentry>
15901
15902 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
15903 <info>
15904 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
15905 </info>
15906 <glossdef>
15907 <para role="glossdeffirst">
15908<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15909 This variable lists packages the OpenEmbedded build system
15910 uses when building an SDK, which contains a
15911 cross-development environment.
15912 The packages specified by this variable are part of the
15913 toolchain set that runs on the
15914 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
15915 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015916 <filename>nativesdk-</filename>.
15917 For example, consider the following command when
15918 building an SDK:
15919 <literallayout class='monospaced'>
15920 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
15921 </literallayout>
15922 In this case, a default list of packages is set in this
15923 variable, but you can add additional packages to the list.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015924 See the
15925 "<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 -050015926 section in the Yocto Project Application Development and
15927 the Extensible Software Development Kit (eSDK) manual
15928 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015929 </para>
15930
15931 <para>
15932 For background information on cross-development toolchains
15933 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015934 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15935 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015936 For information on setting up a cross-development
15937 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015938 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15939 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015940 </para>
15941 </glossdef>
15942 </glossentry>
15943
15944 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
15945 <info>
15946 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
15947 </info>
15948 <glossdef>
15949 <para role="glossdeffirst">
15950<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15951 This variable defines the name used for the toolchain
15952 output.
15953 The
15954 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
15955 class sets the
15956 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
15957 follows:
15958 <literallayout class='monospaced'>
15959 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
15960 </literallayout>
15961 See the
15962 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
15963 and
15964 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
15965 variables for additional information.
15966 </para>
15967 </glossdef>
15968 </glossentry>
15969
15970 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
15971 <info>
15972 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."
15973 </info>
15974 <glossdef>
15975 <para role="glossdeffirst">
15976<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15977 This variable lists packages the OpenEmbedded build system
15978 uses when it creates the target part of an SDK
15979 (i.e. the part built for the target hardware), which
15980 includes libraries and headers.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015981 Use this variable to add individual packages to the
15982 part of the SDK that runs on the target.
15983 See the
15984 "<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 -050015985 section in the Yocto Project Application Development and
15986 the Extensible Software Development Kit (eSDK) manual for
15987 more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015988 </para>
15989
15990 <para>
15991 For background information on cross-development toolchains
15992 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015993 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15994 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015995 For information on setting up a cross-development
15996 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015997 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15998 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015999 </para>
16000 </glossdef>
16001 </glossentry>
16002
16003 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
16004 <info>
16005 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
16006 </info>
16007 <glossdef>
16008 <para role="glossdeffirst">
16009<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16010 The top-level
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016011 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016012 BitBake automatically sets this variable when you
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016013 initialize your build environment using
16014 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016015 </para>
16016 </glossdef>
16017 </glossentry>
16018
16019 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
16020 <info>
16021 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."
16022 </info>
16023 <glossdef>
16024 <para role="glossdeffirst">
16025<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16026 A sanitized version of
16027 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
16028 This variable is used where the architecture is needed in
16029 a value where underscores are not allowed, for example
16030 within package filenames.
16031 In this case, dash characters replace any underscore
Brad Bishop316dfdd2018-06-25 12:45:53 -040016032 characters used in <filename>TARGET_ARCH</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016033 </para>
16034
16035 <para>
16036 Do not edit this variable.
16037 </para>
16038 </glossdef>
16039 </glossentry>
16040
16041 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
16042 <info>
16043 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
16044 </info>
16045 <glossdef>
16046 <para role="glossdeffirst">
16047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16048 The GNU canonical architecture for a specific architecture
16049 (i.e. <filename>arm</filename>,
16050 <filename>armeb</filename>,
16051 <filename>mips</filename>,
16052 <filename>mips64</filename>, and so forth).
16053 BitBake uses this value to setup configuration.
16054 </para>
16055
16056 <para>
16057 <filename>TUNE_ARCH</filename> definitions are specific to
16058 a given architecture.
16059 The definitions can be a single static definition, or
16060 can be dynamically adjusted.
16061 You can see details for a given CPU family by looking at
16062 the architecture's <filename>README</filename> file.
16063 For example, the
16064 <filename>meta/conf/machine/include/mips/README</filename>
16065 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016066 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016067 provides information for <filename>TUNE_ARCH</filename>
16068 specific to the <filename>mips</filename> architecture.
16069 </para>
16070
16071 <para>
16072 <filename>TUNE_ARCH</filename> is tied closely to
16073 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
16074 which defines the target machine's architecture.
16075 The BitBake configuration file
16076 (<filename>meta/conf/bitbake.conf</filename>) sets
16077 <filename>TARGET_ARCH</filename> as follows:
16078 <literallayout class='monospaced'>
16079 TARGET_ARCH = "${TUNE_ARCH}"
16080 </literallayout>
16081 </para>
16082
16083 <para>
16084 The following list, which is by no means complete since
16085 architectures are configurable, shows supported machine
16086 architectures:
16087 <literallayout class='monospaced'>
16088 arm
16089 i586
16090 x86_64
16091 powerpc
16092 powerpc64
16093 mips
16094 mipsel
16095 </literallayout>
16096 </para>
16097 </glossdef>
16098 </glossentry>
16099
16100 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
16101 <info>
16102 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
16103 </info>
16104 <glossdef>
16105 <para role="glossdeffirst">
16106<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16107 Specifies architecture-specific assembler flags for
16108 the target system.
16109 The set of flags is based on the selected tune features.
16110 <filename>TUNE_ASARGS</filename> is set using
16111 the tune include files, which are typically under
16112 <filename>meta/conf/machine/include/</filename> and are
16113 influenced through
16114 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
16115 For example, the
16116 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
16117 file defines the flags for the x86 architecture as follows:
16118 <literallayout class='monospaced'>
16119 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
16120 </literallayout>
16121 <note>
16122 Board Support Packages (BSPs) select the tune.
16123 The selected tune, in turn, affects the tune variables
16124 themselves (i.e. the tune can supply its own
16125 set of flags).
16126 </note>
16127 </para>
16128 </glossdef>
16129 </glossentry>
16130
16131 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
16132 <info>
16133 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
16134 </info>
16135 <glossdef>
16136 <para role="glossdeffirst">
16137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16138 Specifies architecture-specific C compiler flags for
16139 the target system.
16140 The set of flags is based on the selected tune features.
16141 <filename>TUNE_CCARGS</filename> is set using
16142 the tune include files, which are typically under
16143 <filename>meta/conf/machine/include/</filename> and are
16144 influenced through
16145 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
16146 <note>
16147 Board Support Packages (BSPs) select the tune.
16148 The selected tune, in turn, affects the tune variables
16149 themselves (i.e. the tune can supply its own
16150 set of flags).
16151 </note>
16152 </para>
16153 </glossdef>
16154 </glossentry>
16155
16156 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
16157 <info>
16158 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
16159 </info>
16160 <glossdef>
16161 <para role="glossdeffirst">
16162<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16163 Specifies architecture-specific linker flags for
16164 the target system.
16165 The set of flags is based on the selected tune features.
16166 <filename>TUNE_LDARGS</filename> is set using
16167 the tune include files, which are typically under
16168 <filename>meta/conf/machine/include/</filename> and are
16169 influenced through
16170 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
16171 For example, the
16172 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
16173 file defines the flags for the x86 architecture as follows:
16174 <literallayout class='monospaced'>
16175 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
16176 </literallayout>
16177 <note>
16178 Board Support Packages (BSPs) select the tune.
16179 The selected tune, in turn, affects the tune variables
16180 themselves (i.e. the tune can supply its own
16181 set of flags).
16182 </note>
16183 </para>
16184 </glossdef>
16185 </glossentry>
16186
16187 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
16188 <info>
16189 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
16190 </info>
16191 <glossdef>
16192 <para role="glossdeffirst">
16193<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16194 Features used to "tune" a compiler for optimal use
16195 given a specific processor.
16196 The features are defined within the tune files and allow
16197 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
16198 dynamically generated based on the features.
16199 </para>
16200
16201 <para>
16202 The OpenEmbedded build system verifies the features
16203 to be sure they are not conflicting and that they are
16204 supported.
16205 </para>
16206
16207 <para>
16208 The BitBake configuration file
16209 (<filename>meta/conf/bitbake.conf</filename>) defines
16210 <filename>TUNE_FEATURES</filename> as follows:
16211 <literallayout class='monospaced'>
16212 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
16213 </literallayout>
16214 See the
16215 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
16216 variable for more information.
16217 </para>
16218 </glossdef>
16219 </glossentry>
16220
16221 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
16222 <info>
16223 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
16224 </info>
16225 <glossdef>
16226 <para role="glossdeffirst">
16227<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16228 The package architecture understood by the packaging
16229 system to define the architecture, ABI, and tuning of
16230 output packages.
16231 The specific tune is defined using the "_tune" override
16232 as follows:
16233 <literallayout class='monospaced'>
16234 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
16235 </literallayout>
16236 </para>
16237
16238 <para>
16239 These tune-specific package architectures are defined in
16240 the machine include files.
16241 Here is an example of the "core2-32" tuning as used
16242 in the
16243 <filename>meta/conf/machine/include/tune-core2.inc</filename>
16244 file:
16245 <literallayout class='monospaced'>
16246 TUNE_PKGARCH_tune-core2-32 = "core2-32"
16247 </literallayout>
16248 </para>
16249 </glossdef>
16250 </glossentry>
16251
16252 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
16253 <info>
16254 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."
16255 </info>
16256 <glossdef>
16257 <para role="glossdeffirst">
16258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16259 An underlying Application Binary Interface (ABI) used by
16260 a particular tuning in a given toolchain layer.
16261 Providers that use prebuilt libraries can use the
16262 <filename>TUNEABI</filename>,
16263 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
16264 and
16265 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
16266 variables to check compatibility of tunings against their
16267 selection of libraries.
16268 </para>
16269
16270 <para>
16271 If <filename>TUNEABI</filename> is undefined, then every
16272 tuning is allowed.
16273 See the
16274 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
16275 class to see how the variable is used.
16276 </para>
16277 </glossdef>
16278 </glossentry>
16279
16280 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
16281 <info>
16282 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
16283 </info>
16284 <glossdef>
16285 <para role="glossdeffirst">
16286<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16287 If set, the OpenEmbedded system ignores the
16288 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
16289 variable.
16290 Providers that use prebuilt libraries can use the
16291 <filename>TUNEABI_OVERRIDE</filename>,
16292 <filename>TUNEABI_WHITELIST</filename>,
16293 and
16294 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
16295 variables to check compatibility of a tuning against their
16296 selection of libraries.
16297 </para>
16298
16299 <para>
16300 See the
16301 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
16302 class to see how the variable is used.
16303 </para>
16304 </glossdef>
16305 </glossentry>
16306
16307 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
16308 <info>
16309 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
16310 </info>
16311 <glossdef>
16312 <para role="glossdeffirst">
16313<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16314 A whitelist of permissible
16315 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
16316 values.
16317 If <filename>TUNEABI_WHITELIST</filename> is not set,
16318 all tunes are allowed.
16319 Providers that use prebuilt libraries can use the
16320 <filename>TUNEABI_WHITELIST</filename>,
16321 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
16322 and <filename>TUNEABI</filename> variables to check
16323 compatibility of a tuning against their selection of
16324 libraries.
16325 </para>
16326
16327 <para>
16328 See the
16329 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
16330 class to see how the variable is used.
16331 </para>
16332 </glossdef>
16333 </glossentry>
16334
16335 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
16336 <info>
16337 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
16338 </info>
16339 <glossdef>
16340 <para role="glossdeffirst">
16341<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16342 Specifies CPU or Application Binary Interface (ABI)
16343 tuning features that conflict with <replaceable>feature</replaceable>.
16344 </para>
16345
16346 <para>
16347 Known tuning conflicts are specified in the machine include
16348 files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016349 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016350 Here is an example from the
16351 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
16352 include file that lists the "o32" and "n64" features as
16353 conflicting with the "n32" feature:
16354 <literallayout class='monospaced'>
16355 TUNECONFLICTS[n32] = "o32 n64"
16356 </literallayout>
16357 </para>
16358 </glossdef>
16359 </glossentry>
16360
16361 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
16362 <info>
16363 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
16364 </info>
16365 <glossdef>
16366 <para role="glossdeffirst">
16367<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16368 Specifies a valid CPU or Application Binary Interface (ABI)
16369 tuning feature.
16370 The specified feature is stored as a flag.
16371 Valid features are specified in the machine include files
16372 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
16373 Here is an example from that file:
16374 <literallayout class='monospaced'>
16375 TUNEVALID[bigendian] = "Enable big-endian mode."
16376 </literallayout>
16377 </para>
16378
16379 <para>
16380 See the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016381 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016382 for these features.
16383 </para>
16384 </glossdef>
16385 </glossentry>
16386
16387 </glossdiv>
16388
16389 <glossdiv id='var-glossary-u'><title>U</title>
16390
16391 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
16392 <info>
16393 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
16394 </info>
16395 <glossdef>
16396 <para role="glossdeffirst">
16397<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16398 Configures the
16399 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
16400 and can also define
16401 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
16402 for individual cases.
16403 </para>
16404
16405 <para>
16406 Following is an example from the
16407 <filename>meta-fsl-arm</filename> layer.
16408 <literallayout class='monospaced'>
16409 UBOOT_CONFIG ??= "sd"
16410 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
16411 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
16412 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
16413 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
16414 </literallayout>
16415 In this example, "sd" is selected as the configuration
16416 of the possible four for the
16417 <filename>UBOOT_MACHINE</filename>.
16418 The "sd" configuration defines "mx6qsabreauto_config"
16419 as the value for <filename>UBOOT_MACHINE</filename>, while
16420 the "sdcard" specifies the
16421 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
16422 image.
16423 </para>
16424
16425 <para>
16426 For more information on how the
16427 <filename>UBOOT_CONFIG</filename> is handled, see the
16428 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
16429 class.
16430 </para>
16431 </glossdef>
16432 </glossentry>
16433
16434 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
16435 <info>
16436 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
16437 </info>
16438 <glossdef>
16439 <para role="glossdeffirst">
16440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16441 Specifies the entry point for the U-Boot image.
16442 During U-Boot image creation, the
16443 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
16444 as a command-line parameter to the
16445 <filename>uboot-mkimage</filename> utility.
16446 </para>
16447 </glossdef>
16448 </glossentry>
16449
16450 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
16451 <info>
16452 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
16453 </info>
16454 <glossdef>
16455 <para role="glossdeffirst">
16456<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16457 Specifies the load address for the U-Boot image.
16458 During U-Boot image creation, the
16459 <filename>UBOOT_LOADADDRESS</filename> variable is passed
16460 as a command-line parameter to the
16461 <filename>uboot-mkimage</filename> utility.
16462 </para>
16463 </glossdef>
16464 </glossentry>
16465
16466 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
16467 <info>
16468 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
16469 </info>
16470 <glossdef>
16471 <para role="glossdeffirst">
16472<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16473 Appends a string to the name of the local version of the
16474 U-Boot image.
16475 For example, assuming the version of the U-Boot image
16476 built was "2013.10, the full version string reported by
16477 U-Boot would be "2013.10-yocto" given the following
16478 statement:
16479 <literallayout class='monospaced'>
16480 UBOOT_LOCALVERSION = "-yocto"
16481 </literallayout>
16482 </para>
16483 </glossdef>
16484 </glossentry>
16485
16486 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
16487 <info>
16488 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
16489 </info>
16490 <glossdef>
16491 <para role="glossdeffirst">
16492<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16493 Specifies the value passed on the
16494 <filename>make</filename> command line when building
16495 a U-Boot image.
16496 The value indicates the target platform configuration.
16497 You typically set this variable from the machine
16498 configuration file (i.e.
16499 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
16500 </para>
16501
16502 <para>
16503 Please see the "Selection of Processor Architecture and
16504 Board Type" section in the U-Boot README for valid values
16505 for this variable.
16506 </para>
16507 </glossdef>
16508 </glossentry>
16509
16510 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
16511 <info>
16512 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
16513 </info>
16514 <glossdef>
16515 <para role="glossdeffirst">
16516<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16517 Specifies the target called in the
16518 <filename>Makefile</filename>.
16519 The default target is "all".
16520 </para>
16521 </glossdef>
16522 </glossentry>
16523
16524 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
16525 <info>
16526 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
16527 </info>
16528 <glossdef>
16529 <para role="glossdeffirst">
16530<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16531 Points to the generated U-Boot extension.
16532 For example, <filename>u-boot.sb</filename> has a
16533 <filename>.sb</filename> extension.
16534 </para>
16535
16536 <para>
16537 The default U-Boot extension is
16538 <filename>.bin</filename>
16539 </para>
16540 </glossdef>
16541 </glossentry>
16542
16543 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
16544 <info>
16545 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
16546 </info>
16547 <glossdef>
16548 <para role="glossdeffirst">
16549<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16550 Specifies the target used for building U-Boot.
16551 The target is passed directly as part of the "make" command
16552 (e.g. SPL and AIS).
16553 If you do not specifically set this variable, the
16554 OpenEmbedded build process passes and uses "all" for the
16555 target during the U-Boot building process.
16556 </para>
16557 </glossdef>
16558 </glossentry>
16559
16560 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
16561 <info>
16562 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."
16563 </info>
16564 <glossdef>
16565 <para role="glossdeffirst">
16566<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16567 Specifies a list of options that, if reported by the
16568 configure script as being invalid, should not generate a
16569 warning during the
16570 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
16571 task.
16572 Normally, invalid configure options are simply not passed
16573 to the configure script (e.g. should be removed from
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016574 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
16575 or
16576 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016577 However, common options, for example, exist that are passed
16578 to all configure scripts at a class level that might not
16579 be valid for some configure scripts.
16580 It follows that no benefit exists in seeing a warning about
16581 these options.
16582 For these cases, the options are added to
16583 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
16584 </para>
16585
16586 <para>
16587 The configure arguments check that uses
16588 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
16589 of the
16590 <link linkend='ref-classes-insane'><filename>insane</filename></link>
16591 class and is only enabled if the recipe inherits the
16592 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
16593 class.
16594 </para>
16595 </glossdef>
16596 </glossentry>
16597
16598 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
16599 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016600 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is enabled."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016601 </info>
16602 <glossdef>
16603 <para role="glossdeffirst">
16604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16605 For recipes inheriting the
16606 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
16607 class, <filename>UPDATERCPN</filename> specifies
Brad Bishop316dfdd2018-06-25 12:45:53 -040016608 the package that contains the initscript that is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016609 enabled.
16610 </para>
16611
16612 <para>
16613 The default value is "${PN}".
16614 Given that almost all recipes that install initscripts
16615 package them in the main package for the recipe, you
16616 rarely need to set this variable in individual recipes.
16617 </para>
16618 </glossdef>
16619 </glossentry>
16620
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016621 <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
16622 <info>
16623 UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
16624 </info>
16625 <glossdef>
16626 <para role="glossdeffirst">
16627<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop15ae2502019-06-18 21:44:24 -040016628 You can perform a per-recipe check for what the latest
16629 upstream source code version is by calling
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016630 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
16631 If the recipe source code is provided from Git
16632 repositories, the OpenEmbedded build system determines the
16633 latest upstream version by picking the latest tag from the
16634 list of all repository tags.
Brad Bishop15ae2502019-06-18 21:44:24 -040016635 </para>
16636
16637 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016638 You can use the
16639 <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
16640 variable to provide a regular expression to filter only the
16641 relevant tags should the default filter not work
16642 correctly.
16643 <literallayout class='monospaced'>
16644 UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
16645 </literallayout>
16646 </para>
16647 </glossdef>
16648 </glossentry>
16649
16650 <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
16651 <info>
16652 UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
16653 </info>
16654 <glossdef>
16655 <para role="glossdeffirst">
16656<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop15ae2502019-06-18 21:44:24 -040016657 Use the <filename>UPSTREAM_CHECK_REGEX</filename> variable
16658 to specify a different regular expression instead of the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016659 default one when the package checking system is parsing
16660 the page found using
16661 <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
16662 <literallayout class='monospaced'>
16663 UPSTREAM_CHECK_REGEX = "package_regex"
16664 </literallayout>
16665 </para>
16666 </glossdef>
16667 </glossentry>
16668
16669 <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
16670 <info>
16671 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."
16672 </info>
16673 <glossdef>
16674 <para role="glossdeffirst">
16675<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop15ae2502019-06-18 21:44:24 -040016676 You can perform a per-recipe check for what the latest
16677 upstream source code version is by calling
16678 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016679 If the source code is provided from tarballs, the latest
16680 version is determined by fetching the directory listing
16681 where the tarball is and attempting to find a later tarball.
16682 When this approach does not work, you can use
16683 <filename>UPSTREAM_CHECK_URI</filename> to
16684 provide a different URI that contains the link to the
16685 latest tarball.
16686 <literallayout class='monospaced'>
16687 UPSTREAM_CHECK_URI = "recipe_url"
16688 </literallayout>
16689 </para>
16690 </glossdef>
16691 </glossentry>
16692
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016693 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
16694 <info>
16695 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
16696 </info>
16697 <glossdef>
16698 <para role="glossdeffirst">
16699<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16700 Determines if <filename>devtmpfs</filename> is used for
16701 <filename>/dev</filename> population.
16702 The default value used for <filename>USE_DEVFS</filename>
16703 is "1" when no value is specifically set.
16704 Typically, you would set <filename>USE_DEVFS</filename>
16705 to "0" for a statically populated <filename>/dev</filename>
16706 directory.
16707 </para>
16708
16709 <para>
16710 See the
16711 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016712 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016713 information on how to use this variable.
16714 </para>
16715 </glossdef>
16716 </glossentry>
16717
16718 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
16719 <info>
16720 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."
16721 </info>
16722 <glossdef>
16723 <para role="glossdeffirst">
16724<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16725 When using
16726 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
16727 determines whether or not to run a
16728 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
16729 on any virtual terminals in order to enable logging in
16730 through those terminals.
16731 </para>
16732
16733 <para>
16734 The default value used for <filename>USE_VT</filename>
16735 is "1" when no default value is specifically set.
16736 Typically, you would set <filename>USE_VT</filename>
16737 to "0" in the machine configuration file for machines
16738 that do not have a graphical display attached and
16739 therefore do not need virtual terminal functionality.
16740 </para>
16741 </glossdef>
16742 </glossentry>
16743
16744 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
16745 <info>
16746 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
16747 </info>
16748 <glossdef>
16749 <para role="glossdeffirst">
16750<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16751 A list of classes to globally inherit.
16752 These classes are used by the OpenEmbedded build system
16753 to enable extra features (e.g.
16754 <filename>buildstats</filename>,
16755 <filename>image-mklibs</filename>, and so forth).
16756 </para>
16757
16758 <para>
16759 The default list is set in your
16760 <filename>local.conf</filename> file:
16761 <literallayout class='monospaced'>
16762 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
16763 </literallayout>
16764 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050016765 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016766 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016767 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016768 </para>
16769 </glossdef>
16770 </glossentry>
16771
16772 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
16773 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016774 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 -050016775 </info>
16776 <glossdef>
16777 <para role="glossdeffirst">
16778<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016779 If set to "error", forces the OpenEmbedded build system to
16780 produce an error if the user identification
16781 (<filename>uid</filename>) and group identification
16782 (<filename>gid</filename>) values are not defined
16783 in <filename>files/passwd</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016784 and <filename>files/group</filename> files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016785 If set to "warn", a warning will be issued instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016786 </para>
16787
16788 <para>
16789 The default behavior for the build system is to dynamically
16790 apply <filename>uid</filename> and
16791 <filename>gid</filename> values.
16792 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
16793 variable is by default not set.
16794 If you plan on using statically assigned
16795 <filename>gid</filename> and <filename>uid</filename>
16796 values, you should set
16797 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
16798 your <filename>local.conf</filename> file as
16799 follows:
16800 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016801 USERADD_ERROR_DYNAMIC = "error"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016802 </literallayout>
16803 Overriding the default behavior implies you are going to
16804 also take steps to set static <filename>uid</filename> and
16805 <filename>gid</filename> values through use of the
16806 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
16807 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
16808 and
16809 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16810 variables.
16811 </para>
16812 </glossdef>
16813 </glossentry>
16814
16815 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
16816 <info>
16817 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."
16818 </info>
16819 <glossdef>
16820 <para role="glossdeffirst">
16821<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16822 Specifies a password file to use for obtaining static
16823 group identification (<filename>gid</filename>) values
16824 when the OpenEmbedded build system adds a group to the
16825 system during package installation.
16826 </para>
16827
16828 <para>
16829 When applying static group identification
16830 (<filename>gid</filename>) values, the OpenEmbedded build
16831 system looks in
16832 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16833 for a <filename>files/group</filename> file and then applies
16834 those <filename>uid</filename> values.
16835 Set the variable as follows in your
16836 <filename>local.conf</filename> file:
16837 <literallayout class='monospaced'>
16838 USERADD_GID_TABLES = "files/group"
16839 </literallayout>
16840 </para>
16841
16842 <note>
16843 Setting the
16844 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16845 variable to "useradd-staticids" causes the build system
16846 to use static <filename>gid</filename> values.
16847 </note>
16848 </glossdef>
16849 </glossentry>
16850
16851 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
16852 <info>
16853 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."
16854 </info>
16855 <glossdef>
16856 <para role="glossdeffirst">
16857<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16858 When inheriting the
16859 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16860 class, this variable
16861 specifies the individual packages within the recipe that
16862 require users and/or groups to be added.
16863 </para>
16864
16865 <para>
16866 You must set this variable if the recipe inherits the
16867 class.
16868 For example, the following enables adding a user for the
16869 main package in a recipe:
16870 <literallayout class='monospaced'>
16871 USERADD_PACKAGES = "${PN}"
16872 </literallayout>
16873 <note>
Andrew Geissler99467da2019-02-25 18:54:23 -060016874 It follows that if you are going to use the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016875 <filename>USERADD_PACKAGES</filename> variable,
16876 you need to set one or more of the
16877 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
16878 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
16879 or
16880 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
16881 variables.
16882 </note>
16883 </para>
16884
16885 </glossdef>
16886 </glossentry>
16887
16888 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
16889 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016890 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 -050016891 </info>
16892 <glossdef>
16893 <para role="glossdeffirst">
16894<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16895 When inheriting the
16896 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16897 class, this variable
Brad Bishop316dfdd2018-06-25 12:45:53 -040016898 specifies for a package what parameters should pass
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016899 to the <filename>useradd</filename> command
Brad Bishop316dfdd2018-06-25 12:45:53 -040016900 if you add a user to the system when the package
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016901 is installed.
16902 </para>
16903
16904 <para>
16905 Here is an example from the <filename>dbus</filename>
16906 recipe:
16907 <literallayout class='monospaced'>
16908 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
16909 --no-create-home --shell /bin/false \
16910 --user-group messagebus"
16911 </literallayout>
16912 For information on the standard Linux shell command
16913 <filename>useradd</filename>, see
16914 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
16915 </para>
16916 </glossdef>
16917 </glossentry>
16918
16919 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
16920 <info>
16921 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."
16922 </info>
16923 <glossdef>
16924 <para role="glossdeffirst">
16925<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16926 Specifies a password file to use for obtaining static
16927 user identification (<filename>uid</filename>) values
16928 when the OpenEmbedded build system adds a user to the
16929 system during package installation.
16930 </para>
16931
16932 <para>
16933 When applying static user identification
16934 (<filename>uid</filename>) values, the OpenEmbedded build
16935 system looks in
16936 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16937 for a <filename>files/passwd</filename> file and then applies
16938 those <filename>uid</filename> values.
16939 Set the variable as follows in your
16940 <filename>local.conf</filename> file:
16941 <literallayout class='monospaced'>
16942 USERADD_UID_TABLES = "files/passwd"
16943 </literallayout>
16944 </para>
16945
16946 <note>
16947 Setting the
16948 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16949 variable to "useradd-staticids" causes the build system
16950 to use static <filename>uid</filename> values.
16951 </note>
16952 </glossdef>
16953 </glossentry>
16954
16955 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
16956 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016957 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 -050016958 </info>
16959 <glossdef>
16960 <para role="glossdeffirst">
16961<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16962 When set to "useradd-staticids", causes the
16963 OpenEmbedded build system to base all user and group
16964 additions on a static
16965 <filename>passwd</filename> and
16966 <filename>group</filename> files found in
16967 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
16968 </para>
16969
16970 <para>
16971 To use static user identification (<filename>uid</filename>)
16972 and group identification (<filename>gid</filename>)
16973 values, set the variable
16974 as follows in your <filename>local.conf</filename> file:
16975 <literallayout class='monospaced'>
16976 USERADDEXTENSION = "useradd-staticids"
16977 </literallayout>
16978 <note>
16979 Setting this variable to use static
16980 <filename>uid</filename> and <filename>gid</filename>
16981 values causes the OpenEmbedded build system to employ
16982 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016983 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016984 class.
16985 </note>
16986 </para>
16987
16988 <para>
16989 If you use static <filename>uid</filename> and
16990 <filename>gid</filename> information, you must also
16991 specify the <filename>files/passwd</filename> and
16992 <filename>files/group</filename> files by setting the
16993 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16994 and
16995 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16996 variables.
16997 Additionally, you should also set the
16998 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
16999 variable.
17000 </para>
17001 </glossdef>
17002 </glossentry>
17003
17004 </glossdiv>
17005
Brad Bishop6e60e8b2018-02-01 10:27:11 -050017006 <glossdiv id='var-glossary-v'><title>V</title>
17007
17008 <glossentry id='var-VOLATILE_LOG_DIR'><glossterm>VOLATILE_LOG_DIR</glossterm>
17009 <info>
17010 VOLATILE_LOG_DIR[doc] = "Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files."
17011 </info>
17012 <glossdef>
17013 <para role="glossdeffirst">
17014<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17015 Specifies the persistence of the target's
17016 <filename>/var/log</filename> directory, which is used to
17017 house postinstall target log files.
17018 </para>
17019
17020 <para>
17021 By default, <filename>VOLATILE_LOG_DIR</filename> is set
17022 to "yes", which means the file is not persistent.
17023 You can override this setting by setting the
17024 variable to "no" to make the log directory persistent.
17025 </para>
17026 </glossdef>
17027 </glossentry>
17028
17029 </glossdiv>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017030
17031 <glossdiv id='var-glossary-w'><title>W</title>
17032
17033 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
17034 <info>
17035 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
17036 </info>
17037 <glossdef>
17038 <para role="glossdeffirst">
17039<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17040 Specifies the quality assurance checks whose failures are
17041 reported as warnings by the OpenEmbedded build system.
17042 You set this variable in your distribution configuration
17043 file.
17044 For a list of the checks you can control with this variable,
17045 see the
17046 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
17047 section.
17048 </para>
17049 </glossdef>
17050 </glossentry>
17051
Brad Bishop6e60e8b2018-02-01 10:27:11 -050017052 <glossentry id='var-WKS_FILE_DEPENDS'><glossterm>WKS_FILE_DEPENDS</glossterm>
17053 <info>
17054 WKS_FILE_DEPENDS[doc] = "Lists a recipe's build-time dependencies specific to Wic."
17055 </info>
17056 <glossdef>
17057 <para role="glossdeffirst">
17058 When placed in the recipe that builds your image, this
17059 variable lists build-time dependencies.
17060 The <filename>WKS_FILE_DEPENDS</filename> variable is only
17061 applicable when Wic images are active (i.e. when
17062 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
17063 contains entries related to Wic).
17064 If your recipe does not create Wic images, the variable
17065 has no effect.
17066 </para>
17067
17068 <para>
17069 The <filename>WKS_FILE_DEPENDS</filename> variable is
17070 similar to the
17071 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
17072 variable.
17073 When you use the variable in your recipe that builds the
17074 Wic image, dependencies you list in the
17075 <filename>WIC_FILE_DEPENDS</filename> variable are added to
17076 the <filename>DEPENDS</filename> variable.
17077 </para>
17078
17079 <para>
17080 With the <filename>WKS_FILE_DEPENDS</filename> variable,
17081 you have the possibility to specify a list of additional
17082 dependencies (e.g. native tools, bootloaders, and so forth),
17083 that are required to build Wic images.
17084 Following is an example:
17085 <literallayout class='monospaced'>
17086 WKS_FILE_DEPENDS = "<replaceable>some-native-tool</replaceable>"
17087 </literallayout>
17088 In the previous example,
17089 <replaceable>some-native-tool</replaceable> would be
17090 replaced with an actual native tool on which the build
17091 would depend.
17092 </para>
17093 </glossdef>
17094 </glossentry>
17095
Brad Bishop37a0e4d2017-12-04 01:01:44 -050017096 <glossentry id='var-WKS_FILE'><glossterm>WKS_FILE</glossterm>
17097 <info>
17098 WKS_FILE[doc] = "Specifies the name of the wic kickstart file."
17099 </info>
17100 <glossdef>
17101 <para role="glossdeffirst">
17102 Specifies the location of the Wic
17103 kickstart file that is used by the OpenEmbedded build
17104 system to create a partitioned image
17105 (<replaceable>image</replaceable><filename>.wic</filename>).
Brad Bishopd7bf8c12018-02-25 22:55:05 -050017106 For information on how to create a partitioned image, see
17107 the
17108 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
17109 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050017110 For details on the kickstart file format, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040017111 "<link linkend='ref-kickstart'>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050017112 Chapter.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050017113 </para>
17114 </glossdef>
17115 </glossentry>
17116
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017117 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
17118 <info>
17119 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."
17120 </info>
17121 <glossdef>
17122 <para role="glossdeffirst">
17123<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17124 The pathname of the work directory in which the OpenEmbedded
17125 build system builds a recipe.
17126 This directory is located within the
17127 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
17128 directory structure and is specific to the recipe being
17129 built and the system for which it is being built.
17130 </para>
17131
17132 <para>
17133 The <filename>WORKDIR</filename> directory is defined as
17134 follows:
17135 <literallayout class='monospaced'>
17136 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
17137 </literallayout>
17138 The actual directory depends on several things:
17139 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040017140 <listitem><filename>TMPDIR</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017141 The top-level build output directory</listitem>
17142 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
17143 The target system identifier</listitem>
17144 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
17145 The recipe name</listitem>
17146 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
17147 The epoch - (if
17148 <link linkend='var-PE'><filename>PE</filename></link>
17149 is not specified, which is usually the case for most
17150 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
17151 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
17152 The recipe version</listitem>
17153 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
17154 The recipe revision</listitem>
17155 </itemizedlist>
17156 </para>
17157
17158 <para>
17159 As an example, assume a Source Directory top-level folder
17160 name <filename>poky</filename>, a default Build Directory at
17161 <filename>poky/build</filename>, and a
17162 <filename>qemux86-poky-linux</filename> machine target
17163 system.
17164 Furthermore, suppose your recipe is named
17165 <filename>foo_1.3.0-r0.bb</filename>.
17166 In this case, the work directory the build system uses to
17167 build the package would be as follows:
17168 <literallayout class='monospaced'>
17169 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
17170 </literallayout>
17171 </para>
17172 </glossdef>
17173 </glossentry>
17174
17175 </glossdiv>
17176
17177 <glossdiv id='var-glossary-x'><title>X</title>
17178
17179 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
17180 <info>
17181 XSERVER[doc] = "Specifies the packages that should be installed
17182 to provide an X server and drivers for the current machine."
17183 </info>
17184 <glossdef>
17185 <para role="glossdeffirst">
17186<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
17187 Specifies the packages that should be installed to
17188 provide an X server and drivers for the current machine,
17189 assuming your image directly includes
17190 <filename>packagegroup-core-x11-xserver</filename> or,
17191 perhaps indirectly, includes "x11-base" in
17192 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
17193 </para>
17194
17195 <para>
17196 The default value of <filename>XSERVER</filename>, if not
17197 specified in the machine configuration, is
17198 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
17199 </para>
17200 </glossdef>
17201 </glossentry>
17202
17203 </glossdiv>
17204
17205<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
17206<!-- </glossdiv>-->
17207
17208<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
17209<!-- </glossdiv>-->
17210
17211</glossary>
17212</chapter>
17213<!--
17214vim: expandtab tw=80 ts=4
17215-->