blob: e88389647d2cb4d11dd749a68c77d3ae412607ec [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<!-- Dummy chapter -->
6<chapter id='ref-variables-glos'>
7
8<title>Variables Glossary</title>
9
10<para>
11 This chapter lists common variables used in the OpenEmbedded build system and gives an overview
12 of their function and contents.
13</para>
14
15<glossary id='ref-variables-glossary'>
16
17
18 <para>
19 <link linkend='var-ABIEXTENSION'>A</link>
20 <link linkend='var-B'>B</link>
21 <link linkend='var-CACHE'>C</link>
22 <link linkend='var-D'>D</link>
23 <link linkend='var-EFI_PROVIDER'>E</link>
24 <link linkend='var-FEATURE_PACKAGES'>F</link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040025 <link linkend='var-GCCPIE'>G</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050026 <link linkend='var-HOMEPAGE'>H</link>
27 <link linkend='var-ICECC_DISABLED'>I</link>
28<!-- <link linkend='var-glossary-j'>J</link> -->
29 <link linkend='var-KARCH'>K</link>
30 <link linkend='var-LABELS'>L</link>
31 <link linkend='var-MACHINE'>M</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050032 <link linkend='var-NATIVELSBSTRING'>N</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033 <link linkend='var-OBJCOPY'>O</link>
34 <link linkend='var-P'>P</link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050035<!-- <link linkend='var-glossary-q'>Q</link> -->
Patrick Williamsc124f4f2015-09-15 14:41:29 -050036 <link linkend='var-RANLIB'>R</link>
37 <link linkend='var-S'>S</link>
38 <link linkend='var-T'>T</link>
39 <link linkend='var-UBOOT_CONFIG'>U</link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050040 <link linkend='var-VOLATILE_LOG_DIR'>V</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050041 <link linkend='var-WARN_QA'>W</link>
42 <link linkend='var-XSERVER'>X</link>
43<!-- <link linkend='var-glossary-y'>Y</link> -->
44<!-- <link linkend='var-glossary-z'>Z</link>-->
45 </para>
46
47 <glossdiv id='var-glossary-a'><title>A</title>
48
49 <glossentry id='var-ABIEXTENSION'><glossterm>ABIEXTENSION</glossterm>
50 <info>
51 ABIEXTENSION[doc] = "Extension to the Application Binary Interface (ABI) field of the GNU canonical architecture name (e.g. "eabi")."
52 </info>
53 <glossdef>
54 <para role="glossdeffirst">
55<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
56 Extension to the Application Binary Interface (ABI)
57 field of the GNU canonical architecture name
58 (e.g. "eabi").
59 </para>
60
61 <para>
62 ABI extensions are set in the machine include files.
63 For example, the
64 <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>
65 file sets the following extension:
66 <literallayout class='monospaced'>
67 ABIEXTENSION = "eabi"
68 </literallayout>
69 </para>
70 </glossdef>
71 </glossentry>
72
73 <glossentry id='var-ALLOW_EMPTY'><glossterm>ALLOW_EMPTY</glossterm>
74 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040075 ALLOW_EMPTY[doc] = "Specifies whether to produce an output package even if it is empty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050076 </info>
77 <glossdef>
78 <para role="glossdeffirst">
79<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040080 Specifies whether to produce an output package even if it is
81 empty.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050082 By default, BitBake does not produce empty packages.
83 This default behavior can cause issues when there is an
84 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> or
85 some other hard runtime requirement on the existence of the package.
86 </para>
87
88 <para>
89 Like all package-controlling variables, you must always use them in
90 conjunction with a package name override, as in:
91 <literallayout class='monospaced'>
92 ALLOW_EMPTY_${PN} = "1"
93 ALLOW_EMPTY_${PN}-dev = "1"
94 ALLOW_EMPTY_${PN}-staticdev = "1"
95 </literallayout>
96 </para>
97 </glossdef>
98 </glossentry>
99
100 <glossentry id='var-ALTERNATIVE'><glossterm>ALTERNATIVE</glossterm>
101 <info>
102 ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
103 </info>
104 <glossdef>
105 <para role="glossdeffirst">
106<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
107 Lists commands in a package that need an alternative
108 binary naming scheme.
109 Sometimes the same command is provided in multiple packages.
110 When this occurs, the OpenEmbedded build system needs to
111 use the alternatives system to create a different binary
112 naming scheme so the commands can co-exist.
113 </para>
114
115 <para>
116 To use the variable, list out the package's commands
117 that also exist as part of another package.
118 For example, if the <filename>busybox</filename> package
119 has four commands that also exist as part of another
120 package, you identify them as follows:
121 <literallayout class='monospaced'>
122 ALTERNATIVE_busybox = "sh sed test bracket"
123 </literallayout>
124 For more information on the alternatives system, see the
125 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
126 section.
127 </para>
128 </glossdef>
129 </glossentry>
130
131 <glossentry id='var-ALTERNATIVE_LINK_NAME'><glossterm>ALTERNATIVE_LINK_NAME</glossterm>
132 <info>
133 ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
134 </info>
135 <glossdef>
136 <para role="glossdeffirst">
137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
138 Used by the alternatives system to map duplicated commands
139 to actual locations.
140 For example, if the <filename>bracket</filename> command
141 provided by the <filename>busybox</filename> package is
142 duplicated through another package, you must use the
143 <filename>ALTERNATIVE_LINK_NAME</filename> variable to
144 specify the actual location:
145 <literallayout class='monospaced'>
146 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
147 </literallayout>
148 </para>
149
150 <para>
151 In this example, the binary for the
152 <filename>bracket</filename> command (i.e.
153 <filename>[</filename>) from the
154 <filename>busybox</filename> package resides in
155 <filename>/usr/bin/</filename>.
156 <note>
157 If <filename>ALTERNATIVE_LINK_NAME</filename> is not
158 defined, it defaults to
159 <filename>${bindir}/<replaceable>name</replaceable></filename>.
160 </note>
161 </para>
162
163 <para>
164 For more information on the alternatives system, see the
165 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
166 section.
167 </para>
168 </glossdef>
169 </glossentry>
170
171 <glossentry id='var-ALTERNATIVE_PRIORITY'><glossterm>ALTERNATIVE_PRIORITY</glossterm>
172 <info>
173 ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
174 </info>
175 <glossdef>
176 <para role="glossdeffirst">
177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
178 Used by the alternatives system to create default
179 priorities for duplicated commands.
180 You can use the variable to create a single default
181 regardless of the command name or package, a default for
182 specific duplicated commands regardless of the package, or
183 a default for specific commands tied to particular packages.
184 Here are the available syntax forms:
185 <literallayout class='monospaced'>
186 ALTERNATIVE_PRIORITY = "<replaceable>priority</replaceable>"
187 ALTERNATIVE_PRIORITY[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
188 ALTERNATIVE_PRIORITY_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
189 </literallayout>
190 </para>
191
192 <para>
193 For more information on the alternatives system, see the
194 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
195 section.
196 </para>
197 </glossdef>
198 </glossentry>
199
200 <glossentry id='var-ALTERNATIVE_TARGET'><glossterm>ALTERNATIVE_TARGET</glossterm>
201 <info>
202 ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
203 </info>
204 <glossdef>
205 <para role="glossdeffirst">
206<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
207 Used by the alternatives system to create default link
208 locations for duplicated commands.
209 You can use the variable to create a single default
210 location for all duplicated commands regardless of the
211 command name or package, a default for
212 specific duplicated commands regardless of the package, or
213 a default for specific commands tied to particular packages.
214 Here are the available syntax forms:
215 <literallayout class='monospaced'>
216 ALTERNATIVE_TARGET = "<replaceable>target</replaceable>"
217 ALTERNATIVE_TARGET[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
218 ALTERNATIVE_TARGET_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
219 </literallayout>
220 <note>
221 <para>
222 If <filename>ALTERNATIVE_TARGET</filename> is not
223 defined, it inherits the value from the
224 <link linkend='var-ALTERNATIVE_LINK_NAME'><filename>ALTERNATIVE_LINK_NAME</filename></link>
225 variable.
226 </para>
227
228 <para>
229 If <filename>ALTERNATIVE_LINK_NAME</filename> and
230 <filename>ALTERNATIVE_TARGET</filename> are the
231 same, the target for
232 <filename>ALTERNATIVE_TARGET</filename>
233 has "<filename>.{BPN}</filename>" appended to it.
234 </para>
235
236 <para>
237 Finally, if the file referenced has not been
238 renamed, the alternatives system will rename it to
239 avoid the need to rename alternative files in the
240 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
241 task while
242 retaining support for the command if necessary.
243 </para>
244 </note>
245 </para>
246
247 <para>
248 For more information on the alternatives system, see the
249 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
250 section.
251 </para>
252 </glossdef>
253 </glossentry>
254
255 <glossentry id='var-APPEND'><glossterm>APPEND</glossterm>
256 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400257 APPEND[doc] = "An override list of append strings for target specified using LABELS."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500258 </info>
259 <glossdef>
260 <para role="glossdeffirst">
261<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -0400262 An override list of append strings for each target
263 specified with
264 <link linkend='var-LABELS'><filename>LABELS</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500265 </para>
266
267 <para>
268 See the
269 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
270 class for more information on how this variable is used.
271 </para>
272 </glossdef>
273 </glossentry>
274
275 <glossentry id='var-AR'><glossterm>AR</glossterm>
276 <info>
277 AR[doc] = "Minimal command and arguments to run 'ar'."
278 </info>
279 <glossdef>
280 <para role="glossdeffirst">
281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
282 The minimal command and arguments used to run
283 <filename>ar</filename>.
284 </para>
285 </glossdef>
286 </glossentry>
287
288 <glossentry id='var-ARCHIVER_MODE'><glossterm>ARCHIVER_MODE</glossterm>
289 <info>
290 ARCHIVER_MODE[doc] = "Controls archive creation used when releasing source files."
291 </info>
292 <glossdef>
293 <para role="glossdeffirst">
294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
295 When used with the
296 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
297 class, determines the type of information used to create
298 a released archive.
299 You can use this variable to create archives of patched
300 source, original source, configured source, and so forth
301 by employing the following variable flags (varflags):
302 <literallayout class='monospaced'>
303 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source
304 # files.
305
306 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is
307 # the default.
308
309 ARCHIVER_MODE[src] = "configured" # Uses configured source files.
310
311 ARCHIVER_MODE[diff] = "1" # Uses patches between do_unpack and
312 # do_patch.
313
314 ARCHIVER_MODE[diff-exclude] ?= "<replaceable>file</replaceable> <replaceable>file</replaceable> ..." # Lists files and directories to
315 # exclude from diff.
316
317 ARCHIVER_MODE[dumpdata] = "1" # Uses environment data.
318
319 ARCHIVER_MODE[recipe] = "1" # Uses recipe and include files.
320
321 ARCHIVER_MODE[srpm] = "1" # Uses RPM package files.
322 </literallayout>
323 For information on how the variable works, see the
324 <filename>meta/classes/archiver.bbclass</filename> file
325 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500326 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500327 </para>
328 </glossdef>
329 </glossentry>
330
331 <glossentry id='var-AS'><glossterm>AS</glossterm>
332 <info>
333 AS[doc] = "Minimal command and arguments to run the assembler."
334 </info>
335 <glossdef>
336 <para role="glossdeffirst">
337<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
338 The minimal command and arguments used to run the
339 assembler.
340 </para>
341 </glossdef>
342 </glossentry>
343
344 <glossentry id='var-ASSUME_PROVIDED'><glossterm>ASSUME_PROVIDED</glossterm>
345 <info>
346 ASSUME_PROVIDED[doc] = "Lists recipe names (PN values) BitBake does not attempt to build."
347 </info>
348 <glossdef>
349 <para role="glossdeffirst">
350<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
351 Lists recipe names
352 (<link linkend='var-PN'><filename>PN</filename></link>
353 values) BitBake does not attempt to build.
354 Instead, BitBake assumes these recipes have already been
355 built.
356 </para>
357
358 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400359 In OpenEmbedded-Core, <filename>ASSUME_PROVIDED</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500360 mostly specifies native tools that should not be built.
361 An example is <filename>git-native</filename>, which when
362 specified, allows for the Git binary from the host to be
363 used rather than building <filename>git-native</filename>.
364 </para>
365 </glossdef>
366 </glossentry>
367
368 <glossentry id='var-ASSUME_SHLIBS'><glossterm>ASSUME_SHLIBS</glossterm>
369 <info>
370 ASSUME_SHLIBS[doc] = Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system."
371 </info>
372 <glossdef>
373 <para role="glossdeffirst">
374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
375 Provides additional <filename>shlibs</filename> provider
376 mapping information, which adds to or overwrites the
377 information provided automatically by the system.
378 Separate multiple entries using spaces.
379 </para>
380
381 <para>
382 As an example, use the following form to add an
383 <filename>shlib</filename> provider of
384 <replaceable>shlibname</replaceable> in
385 <replaceable>packagename</replaceable> with the optional
386 <replaceable>version</replaceable>:
387 <literallayout class='monospaced'>
388 <replaceable>shlibname:packagename</replaceable>[_<replaceable>version</replaceable>]
389 </literallayout>
390 </para>
391
392 <para>
393 Here is an example that adds a shared library named
394 <filename>libEGL.so.1</filename> as being provided by
395 the <filename>libegl-implementation</filename> package:
396 <literallayout class='monospaced'>
397 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
398 </literallayout>
399 </para>
400 </glossdef>
401 </glossentry>
402
403 <glossentry id='var-AUTHOR'><glossterm>AUTHOR</glossterm>
404 <info>
405 AUTHOR[doc] = "Email address used to contact the original author or authors in order to send patches and forward bugs."
406 </info>
407 <glossdef>
408 <para role="glossdeffirst">
409<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
410 The email address used to contact the original author
411 or authors in order to send patches and forward bugs.
412 </para>
413 </glossdef>
414 </glossentry>
415
416 <glossentry id='var-AUTO_LIBNAME_PKGS'><glossterm>AUTO_LIBNAME_PKGS</glossterm>
417 <info>
418 AUTO_LIBNAME_PKGS[doc] = "Specifies which packages should be checked for libraries and renamed according to Debian library package naming."
419 </info>
420 <glossdef>
421 <para role="glossdeffirst">
422<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
423 When the
424 <link linkend='ref-classes-debian'><filename>debian</filename></link>
425 class is inherited, which is the default behavior,
426 <filename>AUTO_LIBNAME_PKGS</filename> specifies which
427 packages should be checked for libraries and renamed
428 according to Debian library package naming.
429 </para>
430
431 <para>
432 The default value is "${PACKAGES}", which causes the
433 debian class to act on all packages that are
434 explicitly generated by the recipe.
435 </para>
436 </glossdef>
437 </glossentry>
438
439 <glossentry id='var-AUTO_SYSLINUXMENU'><glossterm>AUTO_SYSLINUXMENU</glossterm>
440 <info>
441 AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
442 </info>
443 <glossdef>
444 <para role="glossdeffirst">
445<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
446 Enables creating an automatic menu for the syslinux
447 bootloader.
448 You must set this variable in your recipe.
449 The
450 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
451 class checks this variable.
452 </para>
453 </glossdef>
454 </glossentry>
455
456 <glossentry id='var-AUTOREV'><glossterm>AUTOREV</glossterm>
457 <info>
458 AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
459 </info>
460 <glossdef>
461 <para role="glossdeffirst">
462<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
463 When
464 <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
465 is set to the value of this variable, it specifies to use
466 the latest source revision in the repository.
467 Here is an example:
468 <literallayout class='monospaced'>
469 SRCREV = "${AUTOREV}"
470 </literallayout>
471 </para>
472
473 <para>
474 If you use the previous statement to retrieve the latest
475 version of software, you need to be sure
476 <link linkend='var-PV'><filename>PV</filename></link>
477 contains
478 <filename>${</filename><link linkend='var-SRCPV'><filename>SRCPV</filename></link><filename>}</filename>.
479 For example, suppose you have a kernel recipe that
480 inherits the
481 <link linkend='ref-classes-kernel'>kernel</link> class
482 and you use the previous statement.
483 In this example, <filename>${SRCPV}</filename> does not
484 automatically get into <filename>PV</filename>.
485 Consequently, you need to change <filename>PV</filename>
486 in your recipe so that it does contain
487 <filename>${SRCPV}</filename>.
488 </para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500489
490 <para>
491 For more information see the
492 "<ulink url='&YOCTO_DOCS_DEV_URL;#automatically-incrementing-a-binary-package-revision-number'>Automatically Incrementing a Binary Package Revision Number</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500493 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500494 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500495 </glossdef>
496 </glossentry>
497
498 <glossentry id='var-AVAILTUNES'><glossterm>AVAILTUNES</glossterm>
499 <info>
500 AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system."
501 </info>
502 <glossdef>
503 <para role="glossdeffirst">
504<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
505 The list of defined CPU and Application Binary Interface
506 (ABI) tunings (i.e. "tunes") available for use by the
507 OpenEmbedded build system.
508 </para>
509
510 <para>
511 The list simply presents the tunes that are available.
512 Not all tunes may be compatible with a particular
513 machine configuration, or with each other in a
514 <ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Multilib</ulink>
515 configuration.
516 </para>
517
518 <para>
519 To add a tune to the list, be sure to append it with
520 spaces using the "+=" BitBake operator.
521 Do not simply replace the list by using the "=" operator.
522 See the
523 "<ulink url='&YOCTO_DOCS_BB_URL;#basic-syntax'>Basic Syntax</ulink>"
524 section in the BitBake User Manual for more information.
525 </para>
526 </glossdef>
527 </glossentry>
528
529 </glossdiv>
530
531 <glossdiv id='var-glossary-b'><title>B</title>
532
533 <glossentry id='var-B'><glossterm>B</glossterm>
534 <info>
535 B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
536 </info>
537 <glossdef>
538 <para role="glossdeffirst">
539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
540 The directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500541 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500542 in which the OpenEmbedded build system places generated
543 objects during a recipe's build process.
544 By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
545 directory, which is defined as:
546 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600547 S = "${WORKDIR}/${BP}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500548 </literallayout>
549 </para>
550
551 <para>
552 You can separate the (<filename>S</filename>) directory
553 and the directory pointed to by the <filename>B</filename>
554 variable.
555 Most Autotools-based recipes support separating these
556 directories.
557 The build system defaults to using separate directories for
558 <filename>gcc</filename> and some kernel recipes.
559 </para>
560 </glossdef>
561 </glossentry>
562
563 <glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
564 <info>
565 BAD_RECOMMENDATIONS[doc] = "A list of packages not to install despite being recommended by a recipe. Support for this variable exists only when using the IPK packaging backend."
566 </info>
567 <glossdef>
568 <para role="glossdeffirst">
569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
570 Lists "recommended-only" packages to not install.
571 Recommended-only packages are packages installed only
572 through the
573 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
574 variable.
575 You can prevent any of these "recommended" packages from
576 being installed by listing them with the
577 <filename>BAD_RECOMMENDATIONS</filename> variable:
578 <literallayout class='monospaced'>
579 BAD_RECOMMENDATIONS = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
580 </literallayout>
581 </para>
582
583 <para>
584 You can set this variable globally in your
585 <filename>local.conf</filename> file or you can attach it to
586 a specific image recipe by using the recipe name override:
587 <literallayout class='monospaced'>
588 BAD_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
589 </literallayout>
590 </para>
591
592 <para>
593 It is important to realize that if you choose to not install
594 packages using this variable and some other packages are
595 dependent on them (i.e. listed in a recipe's
596 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
597 variable), the OpenEmbedded build system ignores your
598 request and will install the packages to avoid dependency
599 errors.
600 </para>
601
602 <para>
603 Support for this variable exists only when using the
604 IPK and RPM packaging backend.
605 Support does not exist for DEB.
606 </para>
607
608 <para>
609 See the
610 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
611 and the
612 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
613 variables for related information.
614 </para>
615 </glossdef>
616 </glossentry>
617
618 <glossentry id='var-BASE_LIB'><glossterm>BASE_LIB</glossterm>
619 <info>
620 BASE_LIB[doc] = "The library directory name for the CPU or Application Binary Interface (ABI) tune."
621 </info>
622 <glossdef>
623 <para role="glossdeffirst">
624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
625 The library directory name for the CPU or Application
626 Binary Interface (ABI) tune.
627 The <filename>BASE_LIB</filename> applies only in the
628 Multilib context.
629 See the
630 "<ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Combining Multiple Versions of Library Files into One Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500631 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500632 information on Multilib.
633 </para>
634
635 <para>
636 The <filename>BASE_LIB</filename> variable is defined in
637 the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500638 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500639 If Multilib is not being used, the value defaults to "lib".
640 </para>
641 </glossdef>
642 </glossentry>
643
644 <glossentry id='var-BASE_WORKDIR'><glossterm>BASE_WORKDIR</glossterm>
645 <info>
646 BASE_WORKDIR[doc] = "Points to the base of the work directory for all recipes."
647 </info>
648 <glossdef>
649 <para role="glossdeffirst">
650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
651 Points to the base of the work directory for all recipes.
652 The default value is "${TMPDIR}/work".
653 </para>
654 </glossdef>
655 </glossentry>
656
657 <glossentry id='var-BB_ALLOWED_NETWORKS'><glossterm>BB_ALLOWED_NETWORKS</glossterm>
658 <info>
659 BB_ALLOWED_NETWORKS[doc] = "A list of hosts that the fetcher is allowed to use to obtain the required source code."
660 </info>
661 <glossdef>
662 <para>
663 Specifies a space-delimited list of hosts that the fetcher
664 is allowed to use to obtain the required source code.
665 Following are considerations surrounding this variable:
666 <itemizedlist>
667 <listitem><para>
668 This host list is only used if
669 <filename>BB_NO_NETWORK</filename> is either not
670 set or set to "0".
671 </para></listitem>
672 <listitem><para>
673 Limited support for wildcard matching against the
674 beginning of host names exists.
675 For example, the following setting matches
676 <filename>git.gnu.org</filename>,
677 <filename>ftp.gnu.org</filename>, and
678 <filename>foo.git.gnu.org</filename>.
679 <literallayout class='monospaced'>
680 BB_ALLOWED_NETWORKS = "*.gnu.org"
681 </literallayout>
682 </para></listitem>
683 <listitem><para>
684 Mirrors not in the host list are skipped and
685 logged in debug.
686 </para></listitem>
687 <listitem><para>
688 Attempts to access networks not in the host list
689 cause a failure.
690 </para></listitem>
691 </itemizedlist>
692 Using <filename>BB_ALLOWED_NETWORKS</filename> in
693 conjunction with
694 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
695 is very useful.
696 Adding the host you want to use to
697 <filename>PREMIRRORS</filename> results in the source code
698 being fetched from an allowed location and avoids raising
699 an error when a host that is not allowed is in a
700 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
701 statement.
702 This is because the fetcher does not attempt to use the
703 host listed in <filename>SRC_URI</filename> after a
704 successful fetch from the
705 <filename>PREMIRRORS</filename> occurs.
706 </para>
707 </glossdef>
708 </glossentry>
709
710 <glossentry id='var-BB_DANGLINGAPPENDS_WARNONLY'><glossterm>BB_DANGLINGAPPENDS_WARNONLY</glossterm>
711 <info>
712 BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
713 </info>
714 <glossdef>
715 <para role="glossdeffirst">
716<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
717 Defines how BitBake handles situations where an append
718 file (<filename>.bbappend</filename>) has no
719 corresponding recipe file (<filename>.bb</filename>).
720 This condition often occurs when layers get out of sync
721 (e.g. <filename>oe-core</filename> bumps a
722 recipe version and the old recipe no longer exists and the
723 other layer has not been updated to the new version
724 of the recipe yet).
725 </para>
726
727 <para>
728 The default fatal behavior is safest because it is
729 the sane reaction given something is out of sync.
730 It is important to realize when your changes are no longer
731 being applied.
732 </para>
733
734 <para>
735 You can change the default behavior by setting this
736 variable to "1", "yes", or "true"
737 in your <filename>local.conf</filename> file, which is
738 located in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500739 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500740 Here is an example:
741 <literallayout class='monospaced'>
742 BB_DANGLINGAPPENDS_WARNONLY = "1"
743 </literallayout>
744 </para>
745 </glossdef>
746 </glossentry>
747
748 <glossentry id='var-BB_DISKMON_DIRS'><glossterm>BB_DISKMON_DIRS</glossterm>
749 <info>
750 BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
751 </info>
752 <glossdef>
753 <para role="glossdeffirst">
754<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
755 Monitors disk space and available inodes during the build
756 and allows you to control the build based on these
757 parameters.
758 </para>
759
760 <para>
761 Disk space monitoring is disabled by default.
762 To enable monitoring, add the <filename>BB_DISKMON_DIRS</filename>
763 variable to your <filename>conf/local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500764 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500765 Use the following form:
766 <literallayout class='monospaced'>
767 BB_DISKMON_DIRS = "<replaceable>action</replaceable>,<replaceable>dir</replaceable>,<replaceable>threshold</replaceable> [...]"
768
769 where:
770
771 <replaceable>action</replaceable> is:
772 ABORT: Immediately abort the build when
773 a threshold is broken.
774 STOPTASKS: Stop the build after the currently
775 executing tasks have finished when
776 a threshold is broken.
777 WARN: Issue a warning but continue the
778 build when a threshold is broken.
779 Subsequent warnings are issued as
Brad Bishop316dfdd2018-06-25 12:45:53 -0400780 defined by the BB_DISKMON_WARNINTERVAL
781 variable, which must be defined in
782 the conf/local.conf file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500783
784 <replaceable>dir</replaceable> is:
785 Any directory you choose. You can specify one or
786 more directories to monitor by separating the
787 groupings with a space. If two directories are
788 on the same device, only the first directory
789 is monitored.
790
791 <replaceable>threshold</replaceable> is:
792 Either the minimum available disk space,
793 the minimum number of free inodes, or
794 both. You must specify at least one. To
795 omit one or the other, simply omit the value.
796 Specify the threshold using G, M, K for Gbytes,
797 Mbytes, and Kbytes, respectively. If you do
798 not specify G, M, or K, Kbytes is assumed by
799 default. Do not use GB, MB, or KB.
800 </literallayout>
801 </para>
802
803 <para>
804 Here are some examples:
805 <literallayout class='monospaced'>
806 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
807 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
808 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
809 </literallayout>
810 The first example works only if you also provide
811 the <link linkend='var-BB_DISKMON_WARNINTERVAL'><filename>BB_DISKMON_WARNINTERVAL</filename></link> variable
812 in the <filename>conf/local.conf</filename>.
813 This example causes the build system to immediately
814 abort when either the disk space in <filename>${TMPDIR}</filename> drops
815 below 1 Gbyte or the available free inodes drops below
816 100 Kbytes.
817 Because two directories are provided with the variable, the
818 build system also issue a
819 warning when the disk space in the
820 <filename>${SSTATE_DIR}</filename> directory drops
821 below 1 Gbyte or the number of free inodes drops
822 below 100 Kbytes.
823 Subsequent warnings are issued during intervals as
824 defined by the <filename>BB_DISKMON_WARNINTERVAL</filename>
825 variable.
826 </para>
827
828 <para>
829 The second example stops the build after all currently
830 executing tasks complete when the minimum disk space
831 in the <filename>${<link linkend='var-TMPDIR'>TMPDIR</link>}</filename>
832 directory drops below 1 Gbyte.
833 No disk monitoring occurs for the free inodes in this case.
834 </para>
835
836 <para>
837 The final example immediately aborts the build when the
838 number of free inodes in the <filename>${TMPDIR}</filename> directory
839 drops below 100 Kbytes.
840 No disk space monitoring for the directory itself occurs
841 in this case.
842 </para>
843 </glossdef>
844 </glossentry>
845
846 <glossentry id='var-BB_DISKMON_WARNINTERVAL'><glossterm>BB_DISKMON_WARNINTERVAL</glossterm>
847 <info>
848 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."
849 </info>
850 <glossdef>
851 <para role="glossdeffirst">
852<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
853 Defines the disk space and free inode warning intervals.
854 To set these intervals, define the variable in your
855 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500856 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500857 </para>
858
859 <para>
860 If you are going to use the
861 <filename>BB_DISKMON_WARNINTERVAL</filename> variable, you must
862 also use the
863 <link linkend='var-BB_DISKMON_DIRS'><filename>BB_DISKMON_DIRS</filename></link> variable
864 and define its action as "WARN".
865 During the build, subsequent warnings are issued each time
866 disk space or number of free inodes further reduces by
867 the respective interval.
868 </para>
869
870 <para>
871 If you do not provide a <filename>BB_DISKMON_WARNINTERVAL</filename>
872 variable and you do use <filename>BB_DISKMON_DIRS</filename> with
873 the "WARN" action, the disk monitoring interval defaults to
874 the following:
875 <literallayout class='monospaced'>
876 BB_DISKMON_WARNINTERVAL = "50M,5K"
877 </literallayout>
878 </para>
879
880 <para>
881 When specifying the variable in your configuration file,
882 use the following form:
883 <literallayout class='monospaced'>
884 BB_DISKMON_WARNINTERVAL = "<replaceable>disk_space_interval</replaceable>,<replaceable>disk_inode_interval</replaceable>"
885
886 where:
887
888 <replaceable>disk_space_interval</replaceable> is:
889 An interval of memory expressed in either
890 G, M, or K for Gbytes, Mbytes, or Kbytes,
891 respectively. You cannot use GB, MB, or KB.
892
893 <replaceable>disk_inode_interval</replaceable> is:
894 An interval of free inodes expressed in either
895 G, M, or K for Gbytes, Mbytes, or Kbytes,
896 respectively. You cannot use GB, MB, or KB.
897 </literallayout>
898 </para>
899
900 <para>
901 Here is an example:
902 <literallayout class='monospaced'>
903 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
904 BB_DISKMON_WARNINTERVAL = "50M,5K"
905 </literallayout>
906 These variables cause the OpenEmbedded build system to
907 issue subsequent warnings each time the available
908 disk space further reduces by 50 Mbytes or the number
909 of free inodes further reduces by 5 Kbytes in the
910 <filename>${SSTATE_DIR}</filename> directory.
911 Subsequent warnings based on the interval occur each time
912 a respective interval is reached beyond the initial warning
913 (i.e. 1 Gbytes and 100 Kbytes).
914 </para>
915 </glossdef>
916 </glossentry>
917
918 <glossentry id='var-BB_GENERATE_MIRROR_TARBALLS'><glossterm>BB_GENERATE_MIRROR_TARBALLS</glossterm>
919 <info>
920 BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the Git repositories to be placed in the DL_DIR directory."
921 </info>
922 <glossdef>
923 <para role="glossdeffirst">
924<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
925 Causes tarballs of the Git repositories, including the
926 Git metadata, to be placed in the
927 <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
928 directory.
929 </para>
930
931 <para>
932 For performance reasons, creating and placing tarballs of
933 the Git repositories is not the default action by the
934 OpenEmbedded build system.
935 <literallayout class='monospaced'>
936 BB_GENERATE_MIRROR_TARBALLS = "1"
937 </literallayout>
938 Set this variable in your <filename>local.conf</filename>
939 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500940 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500941 </para>
942 </glossdef>
943 </glossentry>
944
945 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
946 <info>
947 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."
948 </info>
949 <glossdef>
950 <para role="glossdeffirst">
951<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
952 The maximum number of tasks BitBake should run in parallel
953 at any one time.
954 The OpenEmbedded build system automatically configures
955 this variable to be equal to the number of cores on the
956 build system.
957 For example, a system with a dual core processor that
958 also uses hyper-threading causes the
959 <filename>BB_NUMBER_THREADS</filename> variable to default
960 to "4".
961 </para>
962
963 <para>
964 For single socket systems (i.e. one CPU), you should not
965 have to override this variable to gain optimal parallelism
966 during builds.
967 However, if you have very large systems that employ
968 multiple physical CPUs, you might want to make sure the
969 <filename>BB_NUMBER_THREADS</filename> variable is not
970 set higher than "20".
971 </para>
972
973 <para>
974 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -0400975 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
976 section in the Yocto Project Development Tasks Manual.
977 </para>
978 </glossdef>
979 </glossentry>
980
981 <glossentry id='var-BB_SERVER_TIMEOUT'><glossterm>BB_SERVER_TIMEOUT</glossterm>
982 <info>
983 BB_SERVER_TIMEOUT [doc] = "Specifies the time (in seconds) after which to unload the BitBake server due to inactivity."
984 </info>
985 <glossdef>
986 <para role="glossdeffirst">
987<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
988 Specifies the time (in seconds) after which to unload the
989 BitBake server due to inactivity.
990 Set <filename>BB_SERVER_TIMEOUT</filename> to determine how
991 long the BitBake server stays resident between invocations.
992 </para>
993
994 <para>
995 For example, the following statement in your
996 <filename>local.conf</filename> file instructs the server
997 to be unloaded after 20 seconds of inactivity:
998 <literallayout class='monospaced'>
999 BB_SERVER_TIMEOUT = "20"
1000 </literallayout>
1001 If you want the server to never be unloaded, set
1002 <filename>BB_SERVER_TIMEOUT</filename> to "-1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001003 </para>
1004 </glossdef>
1005 </glossentry>
1006
1007 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
1008 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001009 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 -05001010 </info>
1011 <glossdef>
1012 <para role="glossdeffirst">
1013<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1014 Allows you to extend a recipe so that it builds variants of the software.
1015 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
1016 which is a copy of Quilt built to run on the build system;
1017 "crosses" such as <filename>gcc-cross</filename>,
1018 which is a compiler built to run on the build machine but produces binaries
1019 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
1020 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
1021 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
1022 </para>
1023
1024 <para>
1025 To build a different variant of the recipe with a minimal amount of code, it usually
1026 is as simple as adding the following to your recipe:
1027 <literallayout class='monospaced'>
1028 BBCLASSEXTEND =+ "native nativesdk"
1029 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
1030 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001031 <note>
1032 <para>
1033 Internally, the <filename>BBCLASSEXTEND</filename>
1034 mechanism generates recipe variants by rewriting
1035 variable values and applying overrides such as
1036 <filename>_class-native</filename>.
1037 For example, to generate a native version of a recipe,
1038 a
1039 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
1040 on "foo" is rewritten to a <filename>DEPENDS</filename>
1041 on "foo-native".
1042 </para>
1043
1044 <para>
1045 Even when using <filename>BBCLASSEXTEND</filename>, the
1046 recipe is only parsed once.
1047 Parsing once adds some limitations.
1048 For example, it is not possible to
1049 include a different file depending on the variant,
1050 since <filename>include</filename> statements are
1051 processed when the recipe is parsed.
1052 </para>
1053 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001054 </para>
1055 </glossdef>
1056 </glossentry>
1057
1058 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1059 <info>
1060 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1061 </info>
1062 <glossdef>
1063 <para role="glossdeffirst">
1064<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1065 Lists the names of configured layers.
1066 These names are used to find the other <filename>BBFILE_*</filename>
1067 variables.
1068 Typically, each layer will append its name to this variable in its
1069 <filename>conf/layer.conf</filename> file.
1070 </para>
1071 </glossdef>
1072 </glossentry>
1073
1074 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1075 <info>
1076 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."
1077 </info>
1078 <glossdef>
1079 <para role="glossdeffirst">
1080<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1081 Variable that expands to match files from
1082 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1083 in a particular layer.
1084 This variable is used in the <filename>conf/layer.conf</filename> file and must
1085 be suffixed with the name of the specific layer (e.g.
1086 <filename>BBFILE_PATTERN_emenlow</filename>).
1087 </para>
1088 </glossdef>
1089 </glossentry>
1090
1091 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1092 <info>
1093 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."
1094 </info>
1095 <glossdef>
1096 <para role="glossdeffirst">
1097<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1098 Assigns the priority for recipe files in each layer.
1099 </para>
1100
1101 <para>
1102 This variable is useful in situations where the same recipe appears in
1103 more than one layer.
1104 Setting this variable allows you to prioritize a
1105 layer against other layers that contain the same recipe - effectively
1106 letting you control the precedence for the multiple layers.
1107 The precedence established through this variable stands regardless of a
1108 recipe's version
1109 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1110 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1111 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1112 lower precedence.
1113 </para>
1114
1115 <para>
1116 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1117 precedence.
1118 For example, the value 6 has a higher precedence than the value 5.
1119 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1120 dependencies (see the
1121 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1122 more information.
1123 The default priority, if unspecified
1124 for a layer with no dependencies, is the lowest defined priority + 1
1125 (or 1 if no priorities are defined).
1126 </para>
1127 <tip>
1128 You can use the command <filename>bitbake-layers show-layers</filename> to list
1129 all configured layers along with their priorities.
1130 </tip>
1131 </glossdef>
1132 </glossentry>
1133
1134 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1135 <info>
1136 BBFILES[doc] = "List of recipe files used by BitBake to build software."
1137 </info>
1138 <glossdef>
1139 <para role="glossdeffirst">
1140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1141 List of recipe files used by BitBake to build software.
1142 </para>
1143 </glossdef>
1144 </glossentry>
1145
Brad Bishop316dfdd2018-06-25 12:45:53 -04001146 <glossentry id='var-BBFILES_DYNAMIC'><glossterm>BBFILES_DYNAMIC</glossterm>
1147 <info>
1148 BBFILES_DYNAMIC[doc] = "Activates content when identified layers are present."
1149 </info>
1150 <glossdef>
1151 <para role="glossdeffirst">
1152<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1153 Activates content when identified layers are present.
1154 You identify the layers by the collections that the layers
1155 define.
1156 </para>
1157
1158 <para>
1159 Use the <filename>BBFILES_DYNAMIC</filename> variable to
1160 avoid <filename>.bbappend</filename> files whose
1161 corresponding <filename>.bb</filename> file is in a layer
1162 that attempts to modify other layers through
1163 <filename>.bbappend</filename> but does not want to
1164 introduce a hard dependency on those other layers.
1165 </para>
1166
1167 <para>
1168 Use the following form for
1169 <filename>BBFILES_DYNAMIC</filename>:
1170 <literallayout class='monospaced'>
1171 <replaceable>collection_name</replaceable>:<replaceable>filename_pattern</replaceable>
1172 </literallayout>
1173 The following example identifies two collection names and
1174 two filename patterns:
1175 <literallayout class='monospaced'>
1176 BBFILES_DYNAMIC += " \
1177 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
1178 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
1179 "
1180 </literallayout>
1181 This next example shows an error message that occurs
1182 because invalid entries are found, which cause parsing to
1183 abort:
1184 <literallayout class='monospaced'>
1185 ERROR: BBFILES_DYNAMIC entries must be of the form &lt;collection name&gt;:&lt;filename pattern&gt;, not:
1186 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
1187 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
1188 </literallayout>
1189 </para>
1190 </glossdef>
1191 </glossentry>
1192
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001193 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1194 <info>
1195 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1196 </info>
1197 <glossdef>
1198 <para role="glossdeffirst">
1199<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1200 Variable that controls how BitBake displays logs on build failure.
1201 </para>
1202 </glossdef>
1203 </glossentry>
1204
1205 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1206 <info>
1207 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1208 </info>
1209 <glossdef>
1210 <para role="glossdeffirst">
1211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1212 If
1213 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1214 is set, specifies the maximum number of lines from the
1215 task log file to print when reporting a failed task.
1216 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1217 the entire log is printed.
1218 </para>
1219 </glossdef>
1220 </glossentry>
1221
1222 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1223 <info>
1224 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1225 </info>
1226 <glossdef>
1227 <para role="glossdeffirst">
1228<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1229 Lists the layers to enable during the build.
1230 This variable is defined in the <filename>bblayers.conf</filename> configuration
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001231 file in the
1232 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001233 Here is an example:
1234 <literallayout class='monospaced'>
1235 BBLAYERS = " \
1236 /home/scottrif/poky/meta \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001237 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001238 /home/scottrif/poky/meta-yocto-bsp \
1239 /home/scottrif/poky/meta-mykernel \
1240 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001241 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001242 </para>
1243
1244 <para>
1245 This example enables four layers, one of which is a custom, user-defined layer
1246 named <filename>meta-mykernel</filename>.
1247 </para>
1248 </glossdef>
1249 </glossentry>
1250
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001251 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1252 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001253 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001254 </info>
1255 <glossdef>
1256 <para role="glossdeffirst">
1257<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1258 Prevents BitBake from processing recipes and recipe
1259 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001260 </para>
1261
1262 <para>
1263 You can use the <filename>BBMASK</filename> variable
1264 to "hide" these <filename>.bb</filename> and
1265 <filename>.bbappend</filename> files.
1266 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001267 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001268 It is as if BitBake does not see them at all.
1269 Consequently, matching files are not parsed or otherwise
1270 used by BitBake.</para>
1271 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001272 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001273 expression compiler.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001274 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001275 the files.
1276 For complete syntax information, see Python's
Brad Bishop316dfdd2018-06-25 12:45:53 -04001277 documentation for the appropriate release at
1278 <ulink url='http://docs.python.org/release/'></ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001279 </para>
1280
1281 <para>
1282 The following example uses a complete regular expression
1283 to tell BitBake to ignore all recipe and recipe append
1284 files in the <filename>meta-ti/recipes-misc/</filename>
1285 directory:
1286 <literallayout class='monospaced'>
1287 BBMASK = "meta-ti/recipes-misc/"
1288 </literallayout>
1289 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001290 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001291 This next example masks out multiple directories and
1292 individual recipes:
1293 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001294 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1295 BBMASK += "/meta-oe/recipes-support/"
1296 BBMASK += "/meta-foo/.*/openldap"
1297 BBMASK += "opencv.*\.bbappend"
1298 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001299 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001300 <note>
1301 When specifying a directory name, use the trailing
1302 slash character to ensure you match just that directory
1303 name.
1304 </note>
1305 </para>
1306 </glossdef>
1307 </glossentry>
1308
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001309 <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
1310 <info>
1311 BBMULTICONFIG[doc] = "Specifies each separate configuration when you are building targets with multiple configurations."
1312 </info>
1313 <glossdef>
1314 <para role="glossdeffirst">
1315<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1316 Specifies each separate configuration when you are
1317 building targets with multiple configurations.
1318 Use this variable in your
1319 <filename>conf/local.conf</filename> configuration file.
1320 Specify a <replaceable>multiconfigname</replaceable> for
1321 each configuration file you are using.
1322 For example, the following line specifies three
1323 configuration files:
1324 <literallayout class='monospaced'>
1325 BBMULTIFONFIG = "configA configB configC"
1326 </literallayout>
1327 Each configuration file you use must reside in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001328 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001329 <filename>conf/multiconfig</filename> directory
1330 (e.g.
1331 <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
1332 </para>
1333
1334 <para>
1335 For information on how to use
1336 <filename>BBMULTICONFIG</filename> in an environment that
1337 supports building targets with multiple configurations,
1338 see the
1339 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-building-targets-with-multiple-configurations'>Building Targets with Multiple Configurations</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001340 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001341 </para>
1342 </glossdef>
1343 </glossentry>
1344
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001345 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1346 <info>
1347 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1348 </info>
1349 <glossdef>
1350 <para role="glossdeffirst">
1351<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1352 Used by BitBake to locate
1353 <filename>.bbclass</filename> and configuration files.
1354 This variable is analogous to the
1355 <filename>PATH</filename> variable.
1356 <note>
1357 If you run BitBake from a directory outside of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001358 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001359 you must be sure to set
1360 <filename>BBPATH</filename> to point to the
1361 Build Directory.
1362 Set the variable as you would any environment variable
1363 and then run BitBake:
1364 <literallayout class='monospaced'>
1365 $ BBPATH = "<replaceable>build_directory</replaceable>"
1366 $ export BBPATH
1367 $ bitbake <replaceable>target</replaceable>
1368 </literallayout>
1369 </note>
1370 </para>
1371 </glossdef>
1372 </glossentry>
1373
1374 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1375 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001376 BBSERVER[doc] = "Points to the BitBake remote server."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001377 </info>
1378 <glossdef>
1379 <para role="glossdeffirst">
1380<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001381 If defined in the BitBake environment,
1382 <filename>BBSERVER</filename> points to the BitBake
1383 remote server.
1384 </para>
1385
1386 <para>
1387 Use the following format to export the variable to the
1388 BitBake environment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001389 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001390 export BBSERVER=localhost:$port"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001391 </literallayout>
1392 </para>
1393
1394 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001395 By default, <filename>BBSERVER</filename> also appears in
1396 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>.
1397 Consequently, <filename>BBSERVER</filename> is excluded
1398 from checksum and dependency data.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001399 </para>
1400 </glossdef>
1401 </glossentry>
1402
1403 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1404 <info>
1405 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."
1406 </info>
1407 <glossdef>
1408 <para role="glossdeffirst">
1409<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1410 When inheriting the
1411 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1412 class, this variable specifies binary configuration
1413 scripts to disable in favor of using
1414 <filename>pkg-config</filename> to query the information.
1415 The <filename>binconfig-disabled</filename> class will
1416 modify the specified scripts to return an error so that
1417 calls to them can be easily found and replaced.
1418 </para>
1419
1420 <para>
1421 To add multiple scripts, separate them by spaces.
1422 Here is an example from the <filename>libpng</filename>
1423 recipe:
1424 <literallayout class='monospaced'>
1425 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1426 </literallayout>
1427 </para>
1428 </glossdef>
1429 </glossentry>
1430
1431 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1432 <info>
1433 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1434 </info>
1435 <glossdef>
1436 <para role="glossdeffirst">
1437<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1438 When inheriting the
1439 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1440 class, this variable specifies a wildcard for
1441 configuration scripts that need editing.
1442 The scripts are edited to correct any paths that have been
1443 set up during compilation so that they are correct for
1444 use when installed into the sysroot and called by the
1445 build processes of other recipes.
1446 </para>
1447
1448 <para>
1449 For more information on how this variable works, see
1450 <filename>meta/classes/binconfig.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001451 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001452 You can also find general information on the class in the
1453 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1454 section.
1455 </para>
1456 </glossdef>
1457 </glossentry>
1458
1459 <glossentry id='var-BP'><glossterm>BP</glossterm>
1460 <info>
1461 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}"
1462 </info>
1463 <glossdef>
1464 <para role="glossdeffirst">
1465<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1466 The base recipe name and version but without any special
1467 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1468 and so forth).
1469 <filename>BP</filename> is comprised of the following:
1470 <literallayout class="monospaced">
1471 ${BPN}-${PV}
1472 </literallayout>
1473 </para>
1474 </glossdef>
1475 </glossentry>
1476
1477 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1478 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001479 BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001480 </info>
1481 <glossdef>
1482 <para role="glossdeffirst">
1483<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001484 This variable is a version of the
1485 <link linkend='var-PN'><filename>PN</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001486 variable with common prefixes and suffixes
1487 removed, such as <filename>nativesdk-</filename>,
1488 <filename>-cross</filename>,
1489 <filename>-native</filename>, and multilib's
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001490 <filename>lib64-</filename> and
1491 <filename>lib32-</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001492 The exact lists of prefixes and suffixes removed are
1493 specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001494 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001495 and
1496 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1497 variables, respectively.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001498 </para>
1499 </glossdef>
1500 </glossentry>
1501
1502 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1503 <info>
1504 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1505 </info>
1506 <glossdef>
1507 <para role="glossdeffirst">
1508<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1509 Specifies a URL for an upstream bug tracking website for
1510 a recipe.
1511 The OpenEmbedded build system does not use this variable.
1512 Rather, the variable is a useful pointer in case a bug
1513 in the software being built needs to be manually reported.
1514 </para>
1515 </glossdef>
1516 </glossentry>
1517
1518 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1519 <info>
1520 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1521 </info>
1522 <glossdef>
1523 <para role="glossdeffirst">
1524<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1525 Specifies the architecture of the build host
1526 (e.g. <filename>i686</filename>).
1527 The OpenEmbedded build system sets the value of
1528 <filename>BUILD_ARCH</filename> from the machine name
1529 reported by the <filename>uname</filename> command.
1530 </para>
1531 </glossdef>
1532 </glossentry>
1533
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001534 <glossentry id='var-BUILD_AS_ARCH'><glossterm>BUILD_AS_ARCH</glossterm>
1535 <info>
1536 BUILD_AS_ARCH[doc] = "Specifies the architecture-specific assembler flags for the build host."
1537 </info>
1538 <glossdef>
1539 <para role="glossdeffirst">
1540<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1541 Specifies the architecture-specific assembler flags for
1542 the build host. By default, the value of
1543 <filename>BUILD_AS_ARCH</filename> is empty.
1544 </para>
1545 </glossdef>
1546 </glossentry>
1547
1548 <glossentry id='var-BUILD_CC_ARCH'><glossterm>BUILD_CC_ARCH</glossterm>
1549 <info>
1550 BUILD_CC_ARCH[doc] = "Specifies the architecture-specific C compiler flags for the build host."
1551 </info>
1552 <glossdef>
1553 <para role="glossdeffirst">
1554<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1555 Specifies the architecture-specific C compiler flags for
1556 the build host. By default, the value of
1557 <filename>BUILD_CC_ARCH</filename> is empty.
1558 </para>
1559 </glossdef>
1560 </glossentry>
1561
1562 <glossentry id='var-BUILD_CCLD'><glossterm>BUILD_CCLD</glossterm>
1563 <info>
1564 BUILD_CCLD[doc] = "Specifies the linker command to be used for the build host when the C compiler is being used as the linker."
1565 </info>
1566 <glossdef>
1567 <para role="glossdeffirst">
1568<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1569 Specifies the linker command to be used for the build host
1570 when the C compiler is being used as the linker. By default,
1571 <filename>BUILD_CCLD</filename> points to GCC and passes as
1572 arguments the value of
1573 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1574 assuming <filename>BUILD_CC_ARCH</filename> is set.
1575 </para>
1576 </glossdef>
1577 </glossentry>
1578
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001579 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1580 <info>
1581 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1582 </info>
1583 <glossdef>
1584 <para role="glossdeffirst">
1585<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1586 Specifies the flags to pass to the C compiler when building
1587 for the build host.
1588 When building in the <filename>-native</filename> context,
1589 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1590 is set to the value of this variable by default.
1591 </para>
1592 </glossdef>
1593 </glossentry>
1594
1595 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1596 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001597 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 -05001598 </info>
1599 <glossdef>
1600 <para role="glossdeffirst">
1601<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04001602 Specifies the flags to pass to the C preprocessor
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001603 (i.e. to both the C and the C++ compilers) when building
1604 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001605 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001606 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1607 is set to the value of this variable by default.
1608 </para>
1609 </glossdef>
1610 </glossentry>
1611
1612 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1613 <info>
1614 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1615 </info>
1616 <glossdef>
1617 <para role="glossdeffirst">
1618<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1619 Specifies the flags to pass to the C++ compiler when
1620 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001621 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001622 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1623 is set to the value of this variable by default.
1624 </para>
1625 </glossdef>
1626 </glossentry>
1627
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001628 <glossentry id='var-BUILD_FC'><glossterm>BUILD_FC</glossterm>
1629 <info>
1630 BUILD_FC[doc] = "Specifies the Fortran compiler command for the build host."
1631 </info>
1632 <glossdef>
1633 <para role="glossdeffirst">
1634<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1635 Specifies the Fortran compiler command for the build host.
1636 By default, <filename>BUILD_FC</filename> points to
1637 Gfortran and passes as arguments the value of
1638 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1639 assuming <filename>BUILD_CC_ARCH</filename> is set.
1640 </para>
1641 </glossdef>
1642 </glossentry>
1643
1644 <glossentry id='var-BUILD_LD'><glossterm>BUILD_LD</glossterm>
1645 <info>
1646 BUILD_LD[doc] = "Specifies the linker command for the build host."
1647 </info>
1648 <glossdef>
1649 <para role="glossdeffirst">
1650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1651 Specifies the linker command for the build host. By default,
1652 <filename>BUILD_LD</filename> points to the GNU linker (ld)
1653 and passes as arguments the value of
1654 <link linkend='var-BUILD_LD_ARCH'><filename>BUILD_LD_ARCH</filename></link>,
1655 assuming <filename>BUILD_LD_ARCH</filename> is set.
1656 </para>
1657 </glossdef>
1658 </glossentry>
1659
1660 <glossentry id='var-BUILD_LD_ARCH'><glossterm>BUILD_LD_ARCH</glossterm>
1661 <info>
1662 BUILD_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the build."
1663 </info>
1664 <glossdef>
1665 <para role="glossdeffirst">
1666<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1667 Specifies architecture-specific linker flags for the build
1668 host. By default, the value of
1669 <filename>BUILD_LD_ARCH</filename> is empty.
1670 </para>
1671 </glossdef>
1672 </glossentry>
1673
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001674 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1675 <info>
1676 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1677 </info>
1678 <glossdef>
1679 <para role="glossdeffirst">
1680<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1681 Specifies the flags to pass to the linker when building
1682 for the build host.
1683 When building in the <filename>-native</filename> context,
1684 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1685 is set to the value of this variable by default.
1686 </para>
1687 </glossdef>
1688 </glossentry>
1689
1690 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1691 <info>
1692 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1693 </info>
1694 <glossdef>
1695 <para role="glossdeffirst">
1696<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1697 Specifies the optimization flags passed to the C compiler
1698 when building for the build host or the SDK.
1699 The flags are passed through the
1700 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1701 and
1702 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1703 default values.
1704 </para>
1705
1706 <para>
1707 The default value of the
1708 <filename>BUILD_OPTIMIZATION</filename> variable is
1709 "-O2 -pipe".
1710 </para>
1711 </glossdef>
1712 </glossentry>
1713
1714 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1715 <info>
1716 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1717 </info>
1718 <glossdef>
1719 <para role="glossdeffirst">
1720<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1721 Specifies the operating system in use on the build
1722 host (e.g. "linux").
1723 The OpenEmbedded build system sets the value of
1724 <filename>BUILD_OS</filename> from the OS reported by
1725 the <filename>uname</filename> command - the first word,
1726 converted to lower-case characters.
1727 </para>
1728 </glossdef>
1729 </glossentry>
1730
1731 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1732 <info>
1733 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1734 </info>
1735 <glossdef>
1736 <para role="glossdeffirst">
1737<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1738 The toolchain binary prefix used for native recipes.
1739 The OpenEmbedded build system uses the
1740 <filename>BUILD_PREFIX</filename> value to set the
1741 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001742 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001743 </para>
1744 </glossdef>
1745 </glossentry>
1746
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001747 <glossentry id='var-BUILD_STRIP'><glossterm>BUILD_STRIP</glossterm>
1748 <info>
1749 BUILD_STRIP[doc] = "Specifies the command to be used to strip debugging symbols from binaries produced for the build host."
1750 </info>
1751 <glossdef>
1752 <para role="glossdeffirst">
1753<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1754 Specifies the command to be used to strip debugging symbols
1755 from binaries produced for the build host. By default,
1756 <filename>BUILD_STRIP</filename> points to
1757 <filename>${</filename><link linkend='var-BUILD_PREFIX'><filename>BUILD_PREFIX</filename></link><filename>}strip</filename>.
1758 </para>
1759 </glossdef>
1760 </glossentry>
1761
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001762 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1763 <info>
1764 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1765 </info>
1766 <glossdef>
1767 <para role="glossdeffirst">
1768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1769 Specifies the system, including the architecture and
1770 the operating system, to use when building for the build
1771 host (i.e. when building <filename>native</filename>
1772 recipes).
1773 </para>
1774
1775 <para>
1776 The OpenEmbedded build system automatically sets this
1777 variable based on
1778 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1779 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1780 and
1781 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1782 You do not need to set the <filename>BUILD_SYS</filename>
1783 variable yourself.
1784 </para>
1785 </glossdef>
1786 </glossentry>
1787
1788 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1789 <info>
1790 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1791 </info>
1792 <glossdef>
1793 <para role="glossdeffirst">
1794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1795 Specifies the vendor name to use when building for the
1796 build host.
1797 The default value is an empty string ("").
1798 </para>
1799 </glossdef>
1800 </glossentry>
1801
1802 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1803 <info>
1804 BUILDDIR[doc] = "Points to the location of the Build Directory."
1805 </info>
1806 <glossdef>
1807 <para role="glossdeffirst">
1808<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1809 Points to the location of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001810 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001811 You can define this directory indirectly through the
1812 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001813 script by passing in a Build Directory path when you run
1814 the script.
1815 If you run the script and do not provide a Build Directory
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001816 path, the <filename>BUILDDIR</filename> defaults to
1817 <filename>build</filename> in the current directory.
1818 </para>
1819 </glossdef>
1820 </glossentry>
1821
1822 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1823 <info>
1824 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."
1825 </info>
1826 <glossdef>
1827 <para role="glossdeffirst">
1828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1829 When inheriting the
1830 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1831 class, this variable specifies whether or not to commit the
1832 build history output in a local Git repository.
1833 If set to "1", this local repository will be maintained
1834 automatically by the
1835 <filename>buildhistory</filename>
1836 class and a commit will be created on every
1837 build for changes to each top-level subdirectory of the
1838 build history output (images, packages, and sdk).
1839 If you want to track changes to build history over
1840 time, you should set this value to "1".
1841 </para>
1842
1843 <para>
1844 By default, the <filename>buildhistory</filename> class
1845 does not commit the build history output in a local
1846 Git repository:
1847 <literallayout class='monospaced'>
1848 BUILDHISTORY_COMMIT ?= "0"
1849 </literallayout>
1850 </para>
1851 </glossdef>
1852 </glossentry>
1853
1854 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1855 <info>
1856 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1857 </info>
1858 <glossdef>
1859 <para role="glossdeffirst">
1860<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1861 When inheriting the
1862 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1863 class, this variable specifies the author to use for each
1864 Git commit.
1865 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1866 variable to work, the
1867 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1868 variable must be set to "1".
1869 </para>
1870
1871 <para>
1872 Git requires that the value you provide for the
1873 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
Brad Bishop316dfdd2018-06-25 12:45:53 -04001874 takes the form of "name <replaceable>email@host</replaceable>".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001875 Providing an email address or host that is not valid does
1876 not produce an error.
1877 </para>
1878
1879 <para>
1880 By default, the <filename>buildhistory</filename> class
1881 sets the variable as follows:
1882 <literallayout class='monospaced'>
1883 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1884 </literallayout>
1885 </para>
1886 </glossdef>
1887 </glossentry>
1888
1889 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1890 <info>
1891 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1892 </info>
1893 <glossdef>
1894 <para role="glossdeffirst">
1895<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1896 When inheriting the
1897 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1898 class, this variable specifies the directory in which
1899 build history information is kept.
1900 For more information on how the variable works, see the
1901 <filename>buildhistory.class</filename>.
1902 </para>
1903
1904 <para>
1905 By default, the <filename>buildhistory</filename> class
1906 sets the directory as follows:
1907 <literallayout class='monospaced'>
1908 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1909 </literallayout>
1910 </para>
1911 </glossdef>
1912 </glossentry>
1913
1914 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1915 <info>
1916 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1917 </info>
1918 <glossdef>
1919 <para role="glossdeffirst">
1920<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1921 When inheriting the
1922 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1923 class, this variable specifies the build history features
1924 to be enabled.
1925 For more information on how build history works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04001926 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
1927 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001928 </para>
1929
1930 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001931 You can specify these features in the form of a
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001932 space-separated list:
1933 <itemizedlist>
1934 <listitem><para><emphasis>image:</emphasis>
1935 Analysis of the contents of images, which
1936 includes the list of installed packages among other
1937 things.
1938 </para></listitem>
1939 <listitem><para><emphasis>package:</emphasis>
1940 Analysis of the contents of individual packages.
1941 </para></listitem>
1942 <listitem><para><emphasis>sdk:</emphasis>
1943 Analysis of the contents of the software
1944 development kit (SDK).
1945 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001946 <listitem><para><emphasis>task:</emphasis>
1947 Save output file signatures for
1948 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state</ulink>
1949 (sstate) tasks.
1950 This saves one file per task and lists the SHA-256
1951 checksums for each file staged (i.e. the output of
1952 the task).
1953 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001954 </itemizedlist>
1955 </para>
1956
1957 <para>
1958 By default, the <filename>buildhistory</filename> class
Brad Bishop316dfdd2018-06-25 12:45:53 -04001959 enables the following features:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001960 <literallayout class='monospaced'>
1961 BUILDHISTORY_FEATURES ?= "image package sdk"
1962 </literallayout>
1963 </para>
1964 </glossdef>
1965 </glossentry>
1966
1967 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
1968 <info>
1969 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."
1970 </info>
1971 <glossdef>
1972 <para role="glossdeffirst">
1973<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1974 When inheriting the
1975 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1976 class, this variable specifies a list of paths to files
1977 copied from the
1978 image contents into the build history directory under
1979 an "image-files" directory in the directory for
1980 the image, so that you can track the contents of each file.
1981 The default is to copy <filename>/etc/passwd</filename>
1982 and <filename>/etc/group</filename>, which allows you to
1983 monitor for changes in user and group entries.
1984 You can modify the list to include any file.
1985 Specifying an invalid path does not produce an error.
1986 Consequently, you can include files that might
1987 not always be present.
1988 </para>
1989
1990 <para>
1991 By default, the <filename>buildhistory</filename> class
1992 provides paths to the following files:
1993 <literallayout class='monospaced'>
1994 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1995 </literallayout>
1996 </para>
1997 </glossdef>
1998 </glossentry>
1999
2000 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
2001 <info>
2002 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
2003 </info>
2004 <glossdef>
2005 <para role="glossdeffirst">
2006<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2007 When inheriting the
2008 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2009 class, this variable optionally specifies a remote
2010 repository to which build history pushes Git changes.
2011 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
2012 to work,
2013 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
2014 must be set to "1".
2015 </para>
2016
2017 <para>
2018 The repository should correspond to a remote
2019 address that specifies a repository as understood by
2020 Git, or alternatively to a remote name that you have
2021 set up manually using <filename>git remote</filename>
2022 within the local repository.
2023 </para>
2024
2025 <para>
2026 By default, the <filename>buildhistory</filename> class
2027 sets the variable as follows:
2028 <literallayout class='monospaced'>
2029 BUILDHISTORY_PUSH_REPO ?= ""
2030 </literallayout>
2031 </para>
2032 </glossdef>
2033 </glossentry>
2034
2035 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
2036 <info>
2037 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
2038 </info>
2039 <glossdef>
2040 <para role="glossdeffirst">
2041<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2042 Specifies the flags to pass to the C compiler when building
2043 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002044 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002045 context,
2046 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
2047 is set to the value of this variable by default.
2048 </para>
2049 </glossdef>
2050 </glossentry>
2051
2052 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
2053 <info>
2054 BUILDSDK_CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers) when building for the SDK."
2055 </info>
2056 <glossdef>
2057 <para role="glossdeffirst">
2058<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2059 Specifies the flags to pass to the C pre-processor
2060 (i.e. to both the C and the C++ compilers) when building
2061 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002062 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002063 context,
2064 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
2065 is set to the value of this variable by default.
2066 </para>
2067 </glossdef>
2068 </glossentry>
2069
2070 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
2071 <info>
2072 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
2073 </info>
2074 <glossdef>
2075 <para role="glossdeffirst">
2076<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2077 Specifies the flags to pass to the C++ compiler when
2078 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002079 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002080 context,
2081 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
2082 is set to the value of this variable by default.
2083 </para>
2084 </glossdef>
2085 </glossentry>
2086
2087 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
2088 <info>
2089 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
2090 </info>
2091 <glossdef>
2092 <para role="glossdeffirst">
2093<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2094 Specifies the flags to pass to the linker when building
2095 for the SDK.
2096 When building in the <filename>nativesdk-</filename>
2097 context,
2098 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
2099 is set to the value of this variable by default.
2100 </para>
2101 </glossdef>
2102 </glossentry>
2103
2104 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
2105 <info>
2106 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
2107 </info>
2108 <glossdef>
2109 <para role="glossdeffirst">
2110<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2111 Points to the location of the directory that holds build
2112 statistics when you use and enable the
2113 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
2114 class.
2115 The <filename>BUILDSTATS_BASE</filename> directory defaults
2116 to
2117 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
2118 </para>
2119 </glossdef>
2120 </glossentry>
2121
2122 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
2123 <info>
2124 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."
2125 </info>
2126 <glossdef>
2127 <para role="glossdeffirst">
2128<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2129 For the BusyBox recipe, specifies whether to split the
2130 output executable file into two parts: one for features
2131 that require <filename>setuid root</filename>, and one for
2132 the remaining features (i.e. those that do not require
2133 <filename>setuid root</filename>).
2134 </para>
2135
2136 <para>
2137 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
2138 defaults to "1", which results in a single output
2139 executable file.
2140 Set the variable to "0" to split the output file.
2141 </para>
2142 </glossdef>
2143 </glossentry>
2144
2145 </glossdiv>
2146
2147 <glossdiv id='var-glossary-c'><title>C</title>
2148
2149 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
2150 <info>
2151 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
2152 </info>
2153 <glossdef>
2154 <para role="glossdeffirst">
2155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2156 Specifies the directory BitBake uses to store a cache
2157 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002158 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002159 so it does not need to be parsed every time BitBake is
2160 started.
2161 </para>
2162 </glossdef>
2163 </glossentry>
2164
2165 <glossentry id='var-CC'><glossterm>CC</glossterm>
2166 <info>
2167 CC[doc] = "Minimum command and arguments to run the C compiler."
2168 </info>
2169 <glossdef>
2170 <para role="glossdeffirst">
2171<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2172 The minimal command and arguments used to run the C
2173 compiler.
2174 </para>
2175 </glossdef>
2176 </glossentry>
2177
2178 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
2179 <info>
2180 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
2181 </info>
2182 <glossdef>
2183 <para role="glossdeffirst">
2184<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2185 Specifies the flags to pass to the C compiler.
2186 This variable is exported to an environment
2187 variable and thus made visible to the software being
2188 built during the compilation step.
2189 </para>
2190
2191 <para>
2192 Default initialization for <filename>CFLAGS</filename>
2193 varies depending on what is being built:
2194 <itemizedlist>
2195 <listitem><para>
2196 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2197 when building for the target
2198 </para></listitem>
2199 <listitem><para>
2200 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2201 when building for the build host (i.e.
2202 <filename>-native</filename>)
2203 </para></listitem>
2204 <listitem><para>
2205 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2206 when building for an SDK (i.e.
2207 <filename>nativesdk-</filename>)
2208 </para></listitem>
2209 </itemizedlist>
2210 </para>
2211 </glossdef>
2212 </glossentry>
2213
2214 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2215 <info>
2216 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2217 </info>
2218 <glossdef>
2219 <para role="glossdeffirst">
2220<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2221 An internal variable specifying the special class override
2222 that should currently apply (e.g. "class-target",
2223 "class-native", and so forth).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002224 The classes that use this variable (e.g.
2225 <link linkend='ref-classes-native'><filename>native</filename></link>,
2226 <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
2227 and so forth) set the variable to appropriate values.
2228 <note>
2229 <filename>CLASSOVERRIDE</filename> gets its default
2230 "class-target" value from the
2231 <filename>bitbake.conf</filename> file.
2232 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002233 </para>
2234
2235 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002236 As an example, the following override allows you to install
2237 extra files, but only when building for the target:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002238 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002239 do_install_append_class-target() {
2240 install my-extra-file ${D}${sysconfdir}
2241 }
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002242 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002243 Here is an example where <filename>FOO</filename>
2244 is set to "native" when building for the build host, and
2245 to "other" when not building for the build host:
2246 <literallayout class='monospaced'>
2247 FOO_class-native = "native"
2248 FOO = "other"
2249 </literallayout>
2250 The underlying mechanism behind
2251 <filename>CLASSOVERRIDE</filename> is simply that it is
2252 included in the default value of
2253 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002254 </para>
2255 </glossdef>
2256 </glossentry>
2257
2258 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2259 <info>
2260 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2261 </info>
2262 <glossdef>
2263 <para role="glossdeffirst">
2264<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2265 If set to "1" within a recipe,
2266 <filename>CLEANBROKEN</filename> specifies that
2267 the <filename>make clean</filename> command does
2268 not work for the software being built.
2269 Consequently, the OpenEmbedded build system will not try
2270 to run <filename>make clean</filename> during the
2271 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2272 task, which is the default behavior.
2273 </para>
2274 </glossdef>
2275 </glossentry>
2276
2277 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2278 <info>
2279 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2280 </info>
2281 <glossdef>
2282 <para role="glossdeffirst">
2283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2284 Provides a list of hardware features that are enabled in
2285 both
2286 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2287 and
2288 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2289 This select list of features contains features that make
2290 sense to be controlled both at the machine and distribution
2291 configuration level.
2292 For example, the "bluetooth" feature requires hardware
2293 support but should also be optional at the distribution
2294 level, in case the hardware supports Bluetooth but you
2295 do not ever intend to use it.
2296 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002297 </glossdef>
2298 </glossentry>
2299
2300 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2301 <info>
2302 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2303 </info>
2304 <glossdef>
2305 <para role="glossdeffirst">
2306<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2307 Points to <filename>meta/files/common-licenses</filename>
2308 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002309 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002310 which is where generic license files reside.
2311 </para>
2312 </glossdef>
2313 </glossentry>
2314
2315 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2316 <info>
2317 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."
2318 </info>
2319 <glossdef>
2320 <para role="glossdeffirst">
2321<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2322 A regular expression that resolves to one or more hosts
2323 (when the recipe is native) or one or more targets (when
2324 the recipe is non-native) with which a recipe is compatible.
2325 The regular expression is matched against
2326 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2327 You can use the variable to stop recipes from being built
2328 for classes of systems with which the recipes are not
2329 compatible.
2330 Stopping these builds is particularly useful with kernels.
2331 The variable also helps to increase parsing speed
2332 since the build system skips parsing recipes not
2333 compatible with the current system.
2334 </para>
2335 </glossdef>
2336 </glossentry>
2337
2338 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2339 <info>
2340 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2341 </info>
2342 <glossdef>
2343 <para role="glossdeffirst">
2344<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2345 A regular expression that resolves to one or more
2346 target machines with which a recipe is compatible.
2347 The regular expression is matched against
2348 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2349 You can use the variable to stop recipes from being built
2350 for machines with which the recipes are not compatible.
2351 Stopping these builds is particularly useful with kernels.
2352 The variable also helps to increase parsing speed
2353 since the build system skips parsing recipes not
2354 compatible with the current machine.
2355 </para>
2356 </glossdef>
2357 </glossentry>
2358
2359 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2360 <info>
2361 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2362 </info>
2363 <glossdef>
2364 <para role="glossdeffirst">
2365<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2366 Defines wildcards to match when installing a list of
2367 complementary packages for all the packages explicitly
2368 (or implicitly) installed in an image.
2369 The resulting list of complementary packages is associated
2370 with an item that can be added to
2371 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2372 An example usage of this is the "dev-pkgs" item that when
2373 added to <filename>IMAGE_FEATURES</filename> will
2374 install -dev packages (containing headers and other
2375 development files) for every package in the image.
2376 </para>
2377
2378 <para>
2379 To add a new feature item pointing to a wildcard, use a
2380 variable flag to specify the feature item name and
2381 use the value to specify the wildcard.
2382 Here is an example:
2383 <literallayout class='monospaced'>
2384 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2385 </literallayout>
2386 </para>
2387 </glossdef>
2388 </glossentry>
2389
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002390 <glossentry id='var-COMPONENTS_DIR'><glossterm>COMPONENTS_DIR</glossterm>
2391 <info>
2392 COMPONENTS_DIR[doc] = "Stores sysroot components for each recipe."
2393 </info>
2394 <glossdef>
2395 <para role="glossdeffirst">
2396<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2397 Stores sysroot components for each recipe.
2398 The OpenEmbedded build system uses
2399 <filename>COMPONENTS_DIR</filename> when constructing
2400 recipe-specific sysroots for other recipes.
2401 </para>
2402
2403 <para>
2404 The default is
2405 "<filename>${</filename><link linkend='var-STAGING_DIR'><filename>STAGING_DIR</filename></link><filename>}-components</filename>."
2406 (i.e. "<filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots-components</filename>").
2407 </para>
2408 </glossdef>
2409 </glossentry>
2410
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002411 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2412 <info>
2413 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2414 </info>
2415 <glossdef>
2416 <para role="glossdeffirst">
2417<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2418 Tracks the version of the local configuration file
2419 (i.e. <filename>local.conf</filename>).
2420 The value for <filename>CONF_VERSION</filename>
2421 increments each time <filename>build/conf/</filename>
2422 compatibility changes.
2423 </para>
2424 </glossdef>
2425 </glossentry>
2426
2427 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2428 <info>
2429 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2430 </info>
2431 <glossdef>
2432 <para role="glossdeffirst">
2433<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2434 Identifies editable or configurable files that are part of a package.
2435 If the Package Management System (PMS) is being used to update
2436 packages on the target system, it is possible that
2437 configuration files you have changed after the original installation
2438 and that you now want to remain unchanged are overwritten.
2439 In other words, editable files might exist in the package that you do not
2440 want reset as part of the package update process.
2441 You can use the <filename>CONFFILES</filename> variable to list the files in the
2442 package that you wish to prevent the PMS from overwriting during this update process.
2443 </para>
2444
2445 <para>
2446 To use the <filename>CONFFILES</filename> variable, provide a package name
2447 override that identifies the resulting package.
2448 Then, provide a space-separated list of files.
2449 Here is an example:
2450 <literallayout class='monospaced'>
2451 CONFFILES_${PN} += "${sysconfdir}/file1 \
2452 ${sysconfdir}/file2 ${sysconfdir}/file3"
2453 </literallayout>
2454 </para>
2455
2456 <para>
2457 A relationship exists between the <filename>CONFFILES</filename> and
2458 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2459 The files listed within <filename>CONFFILES</filename> must be a subset of
2460 the files listed within <filename>FILES</filename>.
2461 Because the configuration files you provide with <filename>CONFFILES</filename>
2462 are simply being identified so that the PMS will not overwrite them,
2463 it makes sense that
2464 the files must already be included as part of the package through the
2465 <filename>FILES</filename> variable.
2466 </para>
2467
2468 <note>
2469 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2470 it is good practice to use appropriate path variables.
2471 For example, <filename>${sysconfdir}</filename> rather than
2472 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2473 than <filename>/usr/bin</filename>.
2474 You can find a list of these variables at the top of the
2475 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002476 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002477 </note>
2478 </glossdef>
2479 </glossentry>
2480
2481 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2482 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002483 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 -05002484 </info>
2485 <glossdef>
2486 <para role="glossdeffirst">
2487<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002488 Identifies the initial RAM filesystem (initramfs) source
2489 files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002490 The OpenEmbedded build system receives and uses
2491 this kernel Kconfig variable as an environment variable.
2492 By default, the variable is set to null ("").
2493 </para>
2494
2495 <para>
2496 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2497 either a single cpio archive with a
2498 <filename>.cpio</filename> suffix or a
2499 space-separated list of directories and files for building
2500 the initramfs image.
2501 A cpio archive should contain a filesystem archive
2502 to be used as an initramfs image.
2503 Directories should contain a filesystem layout to be
2504 included in the initramfs image.
2505 Files should contain entries according to the format
2506 described by the
2507 <filename>usr/gen_init_cpio</filename> program in the
2508 kernel tree.
2509 </para>
2510
2511 <para>
2512 If you specify multiple directories and files, the
2513 initramfs image will be the aggregate of all of them.
2514 </para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002515
2516 <para>
2517 For information on creating an initramfs, see the
2518 "<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 -05002519 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002520 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002521 </glossdef>
2522 </glossentry>
2523
2524 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2525 <info>
2526 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."
2527 </info>
2528 <glossdef>
2529 <para role="glossdeffirst">
2530<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2531 A list of files that contains <filename>autoconf</filename> test results relevant
2532 to the current build.
2533 This variable is used by the Autotools utilities when running
2534 <filename>configure</filename>.
2535 </para>
2536 </glossdef>
2537 </glossentry>
2538
2539 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2540 <info>
2541 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2542 </info>
2543 <glossdef>
2544 <para role="glossdeffirst">
2545<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2546 The minimal arguments for GNU configure.
2547 </para>
2548 </glossdef>
2549 </glossentry>
2550
2551 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2552 <info>
2553 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."
2554 </info>
2555 <glossdef>
2556 <para role="glossdeffirst">
2557<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2558 When inheriting the
2559 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2560 class, this
2561 variable identifies distribution features that would
2562 be in conflict should the recipe
2563 be built.
2564 In other words, if the
2565 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2566 lists a feature that also appears in
2567 <filename>DISTRO_FEATURES</filename> within the
2568 current configuration, an error occurs and the
2569 build stops.
2570 </para>
2571 </glossdef>
2572 </glossentry>
2573
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002574 <glossentry id='var-COPYLEFT_LICENSE_EXCLUDE'><glossterm>COPYLEFT_LICENSE_EXCLUDE</glossterm>
2575 <info>
2576 COPYLEFT_LICENSE_EXCLUDE[doc] = "Licenses to exclude in the source archived by the archiver class."
2577 </info>
2578 <glossdef>
2579 <para role="glossdeffirst">
2580<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2581 A space-separated list of licenses to exclude from the
2582 source archived by the
2583 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2584 class.
2585 In other words, if a license in a recipe's
2586 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2587 value is in the value of
2588 <filename>COPYLEFT_LICENSE_EXCLUDE</filename>, then its
2589 source is not archived by the class.
2590 <note>
2591 The <filename>COPYLEFT_LICENSE_EXCLUDE</filename>
2592 variable takes precedence over the
2593 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2594 variable.
2595 </note>
2596 The default value, which is "CLOSED Proprietary", for
2597 <filename>COPYLEFT_LICENSE_EXCLUDE</filename> is set
2598 by the
2599 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2600 class, which is inherited by the
2601 <filename>archiver</filename> class.
2602 </para>
2603 </glossdef>
2604 </glossentry>
2605
2606 <glossentry id='var-COPYLEFT_LICENSE_INCLUDE'><glossterm>COPYLEFT_LICENSE_INCLUDE</glossterm>
2607 <info>
2608 COPYLEFT_LICENSE_INCLUDE[doc] = "Licenses to include in the source archived by the archiver class."
2609 </info>
2610 <glossdef>
2611 <para role="glossdeffirst">
2612<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2613 A space-separated list of licenses to include in the
2614 source archived by the
2615 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2616 class.
2617 In other words, if a license in a recipe's
2618 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2619 value is in the value of
2620 <filename>COPYLEFT_LICENSE_INCLUDE</filename>, then its
2621 source is archived by the class.
2622 </para>
2623
2624 <para>
2625 The default value is set by the
2626 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2627 class, which is inherited by the
2628 <filename>archiver</filename> class.
2629 The default value includes "GPL*", "LGPL*", and "AGPL*".
2630 </para>
2631 </glossdef>
2632 </glossentry>
2633
2634 <glossentry id='var-COPYLEFT_PN_EXCLUDE'><glossterm>COPYLEFT_PN_EXCLUDE</glossterm>
2635 <info>
2636 COPYLEFT_PN_EXCLUDE[doc] = "Recipes to exclude in the source archived by the archiver class."
2637 </info>
2638 <glossdef>
2639 <para role="glossdeffirst">
2640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2641 A list of recipes to exclude in the source archived
2642 by the
2643 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2644 class.
2645 The <filename>COPYLEFT_PN_EXCLUDE</filename> variable
2646 overrides the license inclusion and exclusion caused
2647 through the
2648 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2649 and
2650 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2651 variables, respectively.
2652 </para>
2653
2654 <para>
2655 The default value, which is "" indicating to not explicitly
2656 exclude any recipes by name, for
2657 <filename>COPYLEFT_PN_EXCLUDE</filename> is set
2658 by the
2659 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2660 class, which is inherited by the
2661 <filename>archiver</filename> class.
2662 </para>
2663 </glossdef>
2664 </glossentry>
2665
2666 <glossentry id='var-COPYLEFT_PN_INCLUDE'><glossterm>COPYLEFT_PN_INCLUDE</glossterm>
2667 <info>
2668 COPYLEFT_PN_INCLUDE[doc] = "Recipes to include in the source archived by the archiver class."
2669 </info>
2670 <glossdef>
2671 <para role="glossdeffirst">
2672<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2673 A list of recipes to include in the source archived
2674 by the
2675 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2676 class.
2677 The <filename>COPYLEFT_PN_INCLUDE</filename> variable
2678 overrides the license inclusion and exclusion caused
2679 through the
2680 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2681 and
2682 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2683 variables, respectively.
2684 </para>
2685
2686 <para>
2687 The default value, which is "" indicating to not explicitly
2688 include any recipes by name, for
2689 <filename>COPYLEFT_PN_INCLUDE</filename> is set
2690 by the
2691 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2692 class, which is inherited by the
2693 <filename>archiver</filename> class.
2694 </para>
2695 </glossdef>
2696 </glossentry>
2697
2698 <glossentry id='var-COPYLEFT_RECIPE_TYPES'><glossterm>COPYLEFT_RECIPE_TYPES</glossterm>
2699 <info>
2700 COPYLEFT_RECIPE_TYPES[doc] = "Recipe types to include in the source archived by the archiver class."
2701 </info>
2702 <glossdef>
2703 <para role="glossdeffirst">
2704<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2705 A space-separated list of recipe types to include
2706 in the source archived by the
2707 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2708 class.
2709 Recipe types are <filename>target</filename>,
2710 <filename>native</filename>,
2711 <filename>nativesdk</filename>,
2712 <filename>cross</filename>,
2713 <filename>crosssdk</filename>, and
2714 <filename>cross-canadian</filename>.
2715 </para>
2716
2717 <para>
2718 The default value, which is "target*", for
2719 <filename>COPYLEFT_RECIPE_TYPES</filename> is set
2720 by the
2721 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2722 class, which is inherited by the
2723 <filename>archiver</filename> class.
2724 </para>
2725 </glossdef>
2726 </glossentry>
2727
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002728 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2729 <info>
2730 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."
2731 </info>
2732 <glossdef>
2733 <para role="glossdeffirst">
2734<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2735 If set to "1" along with the
2736 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2737 variable, the OpenEmbedded build system copies
2738 into the image the license files, which are located in
2739 <filename>/usr/share/common-licenses</filename>,
2740 for each package.
2741 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002742 in directories within the image itself during build time.
2743 <note>
2744 The <filename>COPY_LIC_DIRS</filename> does not
2745 offer a path for adding licenses for newly installed
2746 packages to an image, which might be most suitable
2747 for read-only filesystems that cannot be upgraded.
2748 See the
2749 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2750 variable for additional information.
2751 You can also reference the
2752 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002753 section in the Yocto Project Development Tasks Manual
2754 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002755 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002756 </para>
2757 </glossdef>
2758 </glossentry>
2759
2760 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2761 <info>
2762 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."
2763 </info>
2764 <glossdef>
2765 <para role="glossdeffirst">
2766<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2767 If set to "1", the OpenEmbedded build system copies
2768 the license manifest for the image to
2769 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002770 within the image itself during build time.
2771 <note>
2772 The <filename>COPY_LIC_MANIFEST</filename> does not
2773 offer a path for adding licenses for newly installed
2774 packages to an image, which might be most suitable
2775 for read-only filesystems that cannot be upgraded.
2776 See the
2777 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2778 variable for additional information.
2779 You can also reference the
2780 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002781 section in the Yocto Project Development Tasks Manual
2782 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002783 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002784 </para>
2785 </glossdef>
2786 </glossentry>
2787
2788 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2789 <info>
2790 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."
2791 </info>
2792 <glossdef>
2793 <para role="glossdeffirst">
2794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2795 Specifies the list of packages to be added to the image.
2796 You should only set this variable in the
2797 <filename>local.conf</filename> configuration file found
2798 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002799 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002800 </para>
2801
2802 <para>
2803 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2804 </para>
2805 </glossdef>
2806 </glossentry>
2807
2808 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2809 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002810 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. meta)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002811 </info>
2812 <glossdef>
2813 <para role="glossdeffirst">
2814<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04002815 Specifies the parent directory of the OpenEmbedded-Core
2816 Metadata layer (i.e. <filename>meta</filename>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002817 </para>
2818
2819 <para>
2820 It is an important distinction that
2821 <filename>COREBASE</filename> points to the parent of this
2822 layer and not the layer itself.
2823 Consider an example where you have cloned the Poky Git
2824 repository and retained the <filename>poky</filename>
2825 name for your local copy of the repository.
2826 In this case, <filename>COREBASE</filename> points to
2827 the <filename>poky</filename> folder because it is the
2828 parent directory of the <filename>poky/meta</filename>
2829 layer.
2830 </para>
2831 </glossdef>
2832 </glossentry>
2833
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002834 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2835 <info>
2836 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2837 </info>
2838 <glossdef>
2839 <para role="glossdeffirst">
2840<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2841 Lists files from the
2842 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2843 directory that should be copied other than the layers
2844 listed in the <filename>bblayers.conf</filename> file.
2845 The <filename>COREBASE_FILES</filename> variable exists
2846 for the purpose of copying metadata from the
2847 OpenEmbedded build system into the extensible
2848 SDK.
2849 </para>
2850
2851 <para>
2852 Explicitly listing files in <filename>COREBASE</filename>
2853 is needed because it typically contains build
2854 directories and other files that should not normally
2855 be copied into the extensible SDK.
2856 Consequently, the value of
2857 <filename>COREBASE_FILES</filename> is used in order to
2858 only copy the files that are actually needed.
2859 </para>
2860 </glossdef>
2861 </glossentry>
2862
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002863 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2864 <info>
2865 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2866 </info>
2867 <glossdef>
2868 <para role="glossdeffirst">
2869<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2870 The minimal command and arguments used to run the C
2871 preprocessor.
2872 </para>
2873 </glossdef>
2874 </glossentry>
2875
2876 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2877 <info>
2878 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2879 </info>
2880 <glossdef>
2881 <para role="glossdeffirst">
2882<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2883 Specifies the flags to pass to the C pre-processor
2884 (i.e. to both the C and the C++ compilers).
2885 This variable is exported to an environment
2886 variable and thus made visible to the software being
2887 built during the compilation step.
2888 </para>
2889
2890 <para>
2891 Default initialization for <filename>CPPFLAGS</filename>
2892 varies depending on what is being built:
2893 <itemizedlist>
2894 <listitem><para>
2895 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2896 when building for the target
2897 </para></listitem>
2898 <listitem><para>
2899 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2900 when building for the build host (i.e.
2901 <filename>-native</filename>)
2902 </para></listitem>
2903 <listitem><para>
2904 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2905 when building for an SDK (i.e.
2906 <filename>nativesdk-</filename>)
2907 </para></listitem>
2908 </itemizedlist>
2909 </para>
2910 </glossdef>
2911 </glossentry>
2912
2913 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2914 <info>
2915 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2916 </info>
2917 <glossdef>
2918 <para role="glossdeffirst">
2919<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2920 The toolchain binary prefix for the target tools.
2921 The <filename>CROSS_COMPILE</filename> variable is the
2922 same as the
2923 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2924 variable.
2925 <note>
2926 The OpenEmbedded build system sets the
2927 <filename>CROSS_COMPILE</filename> variable only in
2928 certain contexts (e.g. when building for kernel
2929 and kernel module recipes).
2930 </note>
2931 </para>
2932 </glossdef>
2933 </glossentry>
2934
2935 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2936 <info>
2937 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2938 </info>
2939 <glossdef>
2940 <para role="glossdeffirst">
2941<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2942 The directory in which files checked out under the
2943 CVS system are stored.
2944 </para>
2945 </glossdef>
2946 </glossentry>
2947
2948 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2949 <info>
2950 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2951 </info>
2952 <glossdef>
2953 <para role="glossdeffirst">
2954<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2955 The minimal command and arguments used to run the C++
2956 compiler.
2957 </para>
2958 </glossdef>
2959 </glossentry>
2960
2961 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
2962 <info>
2963 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
2964 </info>
2965 <glossdef>
2966 <para role="glossdeffirst">
2967<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2968 Specifies the flags to pass to the C++ compiler.
2969 This variable is exported to an environment
2970 variable and thus made visible to the software being
2971 built during the compilation step.
2972 </para>
2973
2974 <para>
2975 Default initialization for <filename>CXXFLAGS</filename>
2976 varies depending on what is being built:
2977 <itemizedlist>
2978 <listitem><para>
2979 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
2980 when building for the target
2981 </para></listitem>
2982 <listitem><para>
2983 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
2984 when building for the build host (i.e.
2985 <filename>-native</filename>)
2986 </para></listitem>
2987 <listitem><para>
2988 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
2989 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002990 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002991 </para></listitem>
2992 </itemizedlist>
2993 </para>
2994 </glossdef>
2995 </glossentry>
2996
2997 </glossdiv>
2998
2999 <glossdiv id='var-glossary-d'><title>D</title>
3000
3001 <glossentry id='var-D'><glossterm>D</glossterm>
3002 <info>
3003 D[doc] = "The destination directory."
3004 </info>
3005 <glossdef>
3006 <para role="glossdeffirst">
3007<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3008 The destination directory.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003009 The location in the
3010 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003011 where components are installed by the
3012 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
3013 task.
3014 This location defaults to:
3015 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003016 ${WORKDIR}/image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003017 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003018 <note><title>Caution</title>
3019 Tasks that read from or write to this directory should
3020 run under
Brad Bishop316dfdd2018-06-25 12:45:53 -04003021 <ulink url='&YOCTO_DOCS_OM_URL;#fakeroot-and-pseudo'>fakeroot</ulink>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003022 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003023 </para>
3024 </glossdef>
3025 </glossentry>
3026
3027 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
3028 <info>
3029 DATE[doc] = "The date the build was started using YMD format."
3030 </info>
3031 <glossdef>
3032 <para role="glossdeffirst">
3033<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3034 The date the build was started.
3035 Dates appear using the year, month, and day (YMD) format
3036 (e.g. "20150209" for February 9th, 2015).
3037 </para>
3038 </glossdef>
3039 </glossentry>
3040
3041 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
3042 <info>
3043 DATETIME[doc] = "The date and time the build was started."
3044 </info>
3045 <glossdef>
3046 <para role="glossdeffirst">
3047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3048 The date and time on which the current build started.
3049 The format is suitable for timestamps.
3050 </para>
3051 </glossdef>
3052 </glossentry>
3053
3054 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
3055 <info>
3056 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
3057 </info>
3058 <glossdef>
3059 <para role="glossdeffirst">
3060<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3061 When the
3062 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3063 class is inherited, which is the default behavior,
3064 <filename>DEBIAN_NOAUTONAME</filename> specifies a
3065 particular package should not be renamed according to
3066 Debian library package naming.
3067 You must use the package name as an override when you
3068 set this variable.
3069 Here is an example from the <filename>fontconfig</filename>
3070 recipe:
3071 <literallayout class='monospaced'>
3072 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
3073 </literallayout>
3074 </para>
3075 </glossdef>
3076 </glossentry>
3077
3078 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
3079 <info>
3080 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
3081 </info>
3082 <glossdef>
3083 <para role="glossdeffirst">
3084<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3085 When the
3086 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3087 class is inherited, which is the default behavior,
3088 <filename>DEBIANNAME</filename> allows you to override the
3089 library name for an individual package.
3090 Overriding the library name in these cases is rare.
3091 You must use the package name as an override when you
3092 set this variable.
3093 Here is an example from the <filename>dbus</filename>
3094 recipe:
3095 <literallayout class='monospaced'>
3096 DEBIANNAME_${PN} = "dbus-1"
3097 </literallayout>
3098 </para>
3099 </glossdef>
3100 </glossentry>
3101
3102 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
3103 <info>
3104 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
3105 </info>
3106 <glossdef>
3107 <para role="glossdeffirst">
3108<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3109 Specifies to build packages with debugging information.
3110 This influences the value of the
3111 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
3112 variable.
3113 </para>
3114 </glossdef>
3115 </glossentry>
3116
3117 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
3118 <info>
3119 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'."
3120 </info>
3121 <glossdef>
3122 <para role="glossdeffirst">
3123<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3124 The options to pass in
3125 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
3126 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
3127 a system for debugging.
3128 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
3129 </para>
3130 </glossdef>
3131 </glossentry>
3132
3133 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
3134 <info>
3135 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
3136 </info>
3137 <glossdef>
3138 <para role="glossdeffirst">
3139<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3140 Specifies a weak bias for recipe selection priority.
3141 </para>
3142
3143 <para>
3144 The most common usage of this is variable is to set
3145 it to "-1" within a recipe for a development version of a
3146 piece of software.
3147 Using the variable in this way causes the stable version
3148 of the recipe to build by default in the absence of
3149 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
3150 being used to build the development version.
3151 </para>
3152
3153 <note>
3154 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
3155 is weak and is overridden by
3156 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
3157 if that variable is different between two layers
3158 that contain different versions of the same recipe.
3159 </note>
3160 </glossdef>
3161 </glossentry>
3162
3163 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
3164 <info>
3165 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
3166 </info>
3167 <glossdef>
3168 <para role="glossdeffirst">
3169<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3170 The default CPU and Application Binary Interface (ABI)
3171 tunings (i.e. the "tune") used by the OpenEmbedded build
3172 system.
3173 The <filename>DEFAULTTUNE</filename> helps define
3174 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
3175 </para>
3176
3177 <para>
3178 The default tune is either implicitly or explicitly set
3179 by the machine
3180 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
3181 However, you can override the setting using available tunes
3182 as defined with
3183 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
3184 </para>
3185 </glossdef>
3186 </glossentry>
3187
3188 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
3189 <info>
3190 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
3191 </info>
3192 <glossdef>
3193 <para role="glossdeffirst">
3194<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003195 Lists a recipe's build-time dependencies.
3196 These are dependencies on other recipes whose
3197 contents (e.g. headers and shared libraries) are needed
3198 by the recipe at build time.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003199 </para>
3200
3201 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003202 As an example, consider a recipe <filename>foo</filename>
3203 that contains the following assignment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003204 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003205 DEPENDS = "bar"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003206 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003207 The practical effect of the previous assignment is that
3208 all files installed by bar will be available in the
3209 appropriate staging sysroot, given by the
3210 <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
3211 variables, by the time the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003212 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003213 task for <filename>foo</filename> runs.
3214 This mechanism is implemented by having
3215 <filename>do_configure</filename> depend on the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003216 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003217 task of each recipe listed in <filename>DEPENDS</filename>,
3218 through a
3219 <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
3220 declaration in the
3221 <link linkend='ref-classes-base'><filename>base</filename></link>
3222 class.
3223 <note>
3224 It seldom is necessary to reference, for example,
3225 <filename>STAGING_DIR_HOST</filename> explicitly.
3226 The standard classes and build-related variables are
3227 configured to automatically use the appropriate staging
3228 sysroots.
3229 </note>
3230 As another example, <filename>DEPENDS</filename> can also
3231 be used to add utilities that run on the build machine
3232 during the build.
3233 For example, a recipe that makes use of a code generator
3234 built by the recipe <filename>codegen</filename> might have
3235 the following:
3236 <literallayout class='monospaced'>
3237 DEPENDS = "codegen-native"
3238 </literallayout>
3239 For more information, see the
3240 <link linkend='ref-classes-native'><filename>native</filename></link>
3241 class and the
3242 <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
3243 variable.
3244 <note>
3245 <title>Notes</title>
3246 <itemizedlist>
3247 <listitem><para>
3248 <filename>DEPENDS</filename> is a list of
3249 recipe names.
3250 Or, to be more precise, it is a list of
3251 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
3252 names, which usually match recipe names.
3253 Putting a package name such as "foo-dev" in
3254 <filename>DEPENDS</filename> does not make
3255 sense.
3256 Use "foo" instead, as this will put files
3257 from all the packages that make up
3258 <filename>foo</filename>, which includes
3259 those from <filename>foo-dev</filename>, into
3260 the sysroot.
3261 </para></listitem>
3262 <listitem><para>
3263 One recipe having another recipe in
3264 <filename>DEPENDS</filename> does not by itself
3265 add any runtime dependencies between the
3266 packages produced by the two recipes.
3267 However, as explained in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003268 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
3269 section in the Yocto Project Overview and
3270 Concepts Manual, runtime dependencies will
3271 often be added automatically, meaning
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003272 <filename>DEPENDS</filename> alone is
3273 sufficient for most recipes.
3274 </para></listitem>
3275 <listitem><para>
3276 Counterintuitively,
3277 <filename>DEPENDS</filename> is often necessary
3278 even for recipes that install precompiled
3279 components.
3280 For example, if <filename>libfoo</filename>
3281 is a precompiled library that links against
3282 <filename>libbar</filename>, then
3283 linking against <filename>libfoo</filename>
3284 requires both <filename>libfoo</filename>
3285 and <filename>libbar</filename> to be available
3286 in the sysroot.
3287 Without a <filename>DEPENDS</filename> from the
3288 recipe that installs <filename>libfoo</filename>
3289 to the recipe that installs
3290 <filename>libbar</filename>, other recipes might
3291 fail to link against
3292 <filename>libfoo</filename>.
3293 </para></listitem>
3294 </itemizedlist>
3295 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003296 </para>
3297
3298 <para>
3299 For information on runtime dependencies, see the
3300 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
3301 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003302 You can also see the
3303 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
3304 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
3305 sections in the BitBake User Manual for additional
3306 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003307 </para>
3308 </glossdef>
3309 </glossentry>
3310
3311 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
3312 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003313 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 -05003314 </info>
3315 <glossdef>
3316 <para role="glossdeffirst">
3317<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3318 Points to the general area that the OpenEmbedded build
Brad Bishop316dfdd2018-06-25 12:45:53 -04003319 system uses to place images, packages, SDKs, and other output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003320 files that are ready to be used outside of the build system.
3321 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003322 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003323 as <filename>${TMPDIR}/deploy</filename>.
3324 </para>
3325
3326 <para>
3327 For more information on the structure of the Build
3328 Directory, see
3329 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3330 section.
3331 For more detail on the contents of the
3332 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003333 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>",
3334 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>",
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003335 and
Brad Bishop316dfdd2018-06-25 12:45:53 -04003336 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3337 sections all in the Yocto Project Overview and Concepts
3338 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003339 </para>
3340 </glossdef>
3341 </glossentry>
3342
3343 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
3344 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003345 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 -05003346 </info>
3347 <glossdef>
3348 <para role="glossdeffirst">
3349<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3350 Points to the area that the OpenEmbedded build system uses
3351 to place Debian packages that are ready to be used outside
3352 of the build system.
3353 This variable applies only when
3354 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3355 contains "package_deb".
3356 </para>
3357
3358 <para>
3359 The BitBake configuration file initially defines the
3360 <filename>DEPLOY_DIR_DEB</filename> variable as a
3361 sub-folder of
3362 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3363 <literallayout class='monospaced'>
3364 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
3365 </literallayout>
3366 </para>
3367
3368 <para>
3369 The
3370 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
3371 class uses the
3372 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
3373 the
3374 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
3375 task writes Debian packages into the appropriate folder.
3376 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003377 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3378 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003379 </para>
3380 </glossdef>
3381 </glossentry>
3382
3383 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
3384 <info>
3385 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."
3386 </info>
3387 <glossdef>
3388 <para role="glossdeffirst">
3389<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3390 Points to the area that the OpenEmbedded build system uses
3391 to place images and other associated output files that are
3392 ready to be deployed onto the target machine.
3393 The directory is machine-specific as it contains the
3394 <filename>${MACHINE}</filename> name.
3395 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003396 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003397 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
3398 </para>
3399
3400 <para>
3401 For more information on the structure of the Build
3402 Directory, see
3403 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3404 section.
3405 For more detail on the contents of the
3406 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003407 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>"
3408 and
3409 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3410 sections both in the Yocto Project Overview and Concepts
3411 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003412 </para>
3413 </glossdef>
3414 </glossentry>
3415
3416 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
3417 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003418 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 -05003419 </info>
3420 <glossdef>
3421 <para role="glossdeffirst">
3422<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3423 Points to the area that the OpenEmbedded build system uses
3424 to place IPK packages that are ready to be used outside of
3425 the build system.
3426 This variable applies only when
3427 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3428 contains "package_ipk".
3429 </para>
3430
3431 <para>
3432 The BitBake configuration file initially defines this
3433 variable as a sub-folder of
3434 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3435 <literallayout class='monospaced'>
3436 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
3437 </literallayout>
3438 </para>
3439
3440 <para>
3441 The
3442 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
3443 class uses the
3444 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
3445 the
3446 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
3447 task writes IPK packages into the appropriate folder.
3448 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003449 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3450 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003451 </para>
3452 </glossdef>
3453 </glossentry>
3454
3455 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
3456 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003457 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 -05003458 </info>
3459 <glossdef>
3460 <para role="glossdeffirst">
3461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3462 Points to the area that the OpenEmbedded build system uses
3463 to place RPM packages that are ready to be used outside
3464 of the build system.
3465 This variable applies only when
3466 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3467 contains "package_rpm".
3468 </para>
3469
3470 <para>
3471 The BitBake configuration file initially defines this
3472 variable as a sub-folder of
3473 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3474 <literallayout class='monospaced'>
3475 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
3476 </literallayout>
3477 </para>
3478
3479 <para>
3480 The
3481 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
3482 class uses the
3483 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
3484 the
3485 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
3486 task writes RPM packages into the appropriate folder.
3487 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003488 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3489 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003490 </para>
3491 </glossdef>
3492 </glossentry>
3493
3494 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
3495 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003496 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 -05003497 </info>
3498 <glossdef>
3499 <para role="glossdeffirst">
3500<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3501 Points to the area that the OpenEmbedded build system uses
3502 to place tarballs that are ready to be used outside of
3503 the build system.
3504 This variable applies only when
3505 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3506 contains "package_tar".
3507 </para>
3508
3509 <para>
3510 The BitBake configuration file initially defines this
3511 variable as a sub-folder of
3512 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3513 <literallayout class='monospaced'>
3514 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
3515 </literallayout>
3516 </para>
3517
3518 <para>
3519 The
3520 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
3521 class uses the
3522 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
3523 the
3524 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
3525 task writes TAR packages into the appropriate folder.
3526 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003527 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3528 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003529 </para>
3530 </glossdef>
3531 </glossentry>
3532
3533 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3534 <info>
3535 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3536 </info>
3537 <glossdef>
3538 <para role="glossdeffirst">
3539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3540 When inheriting the
3541 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3542 class, the <filename>DEPLOYDIR</filename> points to a
3543 temporary work area for deployed files that is set in the
3544 <filename>deploy</filename> class as follows:
3545 <literallayout class='monospaced'>
3546 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3547 </literallayout>
3548 </para>
3549
3550 <para>
3551 Recipes inheriting the <filename>deploy</filename> class
3552 should copy files to be deployed into
3553 <filename>DEPLOYDIR</filename>, and the class will take
3554 care of copying them into
3555 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3556 afterwards.
3557 </para>
3558 </glossdef>
3559 </glossentry>
3560
3561 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3562 <info>
3563 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3564 </info>
3565 <glossdef>
3566 <para role="glossdeffirst">
3567<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3568 The package description used by package managers.
3569 If not set, <filename>DESCRIPTION</filename> takes
3570 the value of the
3571 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3572 variable.
3573 </para>
3574 </glossdef>
3575 </glossentry>
3576
3577 <glossentry id='var-DISK_SIGNATURE'><glossterm>DISK_SIGNATURE</glossterm>
3578 <info>
3579 DISK_SIGNATURE[doc] = "A 32-bit MBR disk signature used by directdisk images."
3580 </info>
3581 <glossdef>
3582 <para role="glossdeffirst">
3583<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3584 A 32-bit MBR disk signature used by
3585 <filename>directdisk</filename> images.
3586 </para>
3587
3588 <para>
3589 By default, the signature is set to an automatically
3590 generated random value that allows the OpenEmbedded
3591 build system to create a boot loader.
3592 You can override the signature in the image recipe
3593 by setting <filename>DISK_SIGNATURE</filename> to an
3594 8-digit hex string.
3595 You might want to override
3596 <filename>DISK_SIGNATURE</filename> if you want the disk
3597 signature to remain constant between image builds.
3598 </para>
3599
3600 <para>
3601 When using Linux 3.8 or later, you can use
3602 <filename>DISK_SIGNATURE</filename> to specify the root
3603 by UUID to allow the kernel to locate the root device
3604 even if the device name changes due to differences in
3605 hardware configuration.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003606 By default, <filename>ROOT_VM</filename> is set
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003607 as follows:
3608 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003609 ROOT_VM ?= "root=/dev/sda2"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003610 </literallayout>
3611 However, you can change this to locate the root device
3612 using the disk signature instead:
3613 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003614 ROOT_VM = "root=PARTUUID=${DISK_SIGNATURE}-02"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003615 </literallayout>
3616 </para>
3617
3618 <para>
3619 As previously mentioned, it is possible to set the
3620 <filename>DISK_SIGNATURE</filename> variable in your
3621 <filename>local.conf</filename> file to a fixed
3622 value if you do not want <filename>syslinux.cfg</filename>
3623 changing for each build.
3624 You might find this useful when you want to upgrade the
3625 root filesystem on a device without having to recreate or
3626 modify the master boot record.
3627 </para>
3628 </glossdef>
3629 </glossentry>
3630
3631 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3632 <info>
3633 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3634 </info>
3635 <glossdef>
3636 <para role="glossdeffirst">
3637<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3638 The short name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003639 For information on the long name of the distribution, see
3640 the
3641 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
3642 variable.
3643 </para>
3644
3645 <para>
3646 The <filename>DISTRO</filename> variable corresponds to a
3647 distribution configuration file whose root name is the
3648 same as the variable's argument and whose filename
3649 extension is <filename>.conf</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003650 For example, the distribution configuration file for the
3651 Poky distribution is named <filename>poky.conf</filename>
3652 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003653 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003654 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003655 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003656 </para>
3657
3658 <para>
3659 Within that <filename>poky.conf</filename> file, the
3660 <filename>DISTRO</filename> variable is set as follows:
3661 <literallayout class='monospaced'>
3662 DISTRO = "poky"
3663 </literallayout>
3664 </para>
3665
3666 <para>
3667 Distribution configuration files are located in a
3668 <filename>conf/distro</filename> directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003669 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003670 that contains the distribution configuration.
3671 The value for <filename>DISTRO</filename> must not contain
3672 spaces, and is typically all lower-case.
3673 <note>
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003674 If the <filename>DISTRO</filename> variable is blank,
3675 a set of default configurations are used, which are
3676 specified within
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003677 <filename>meta/conf/distro/defaultsetup.conf</filename>
3678 also in the Source Directory.
3679 </note>
3680 </para>
3681 </glossdef>
3682 </glossentry>
3683
3684 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3685 <info>
3686 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3687 </info>
3688 <glossdef>
3689 <para role="glossdeffirst">
3690<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3691 Specifies a codename for the distribution being built.
3692 </para>
3693 </glossdef>
3694 </glossentry>
3695
3696 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3697 <info>
3698 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."
3699 </info>
3700 <glossdef>
3701 <para role="glossdeffirst">
3702<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3703 Specifies a list of distro-specific packages to add to all images.
3704 This variable takes affect through
3705 <filename>packagegroup-base</filename> so the
3706 variable only really applies to the more full-featured
3707 images that include <filename>packagegroup-base</filename>.
3708 You can use this variable to keep distro policy out of
3709 generic images.
3710 As with all other distro variables, you set this variable
3711 in the distro <filename>.conf</filename> file.
3712 </para>
3713 </glossdef>
3714 </glossentry>
3715
3716 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3717 <info>
3718 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."
3719 </info>
3720 <glossdef>
3721 <para role="glossdeffirst">
3722<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3723 Specifies a list of distro-specific packages to add to all images
3724 if the packages exist.
3725 The packages might not exist or be empty (e.g. kernel modules).
3726 The list of packages are automatically installed but you can
3727 remove them.
3728 </para>
3729 </glossdef>
3730 </glossentry>
3731
3732 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3733 <info>
3734 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3735 </info>
3736 <glossdef>
3737 <para role="glossdeffirst">
3738<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3739 The software support you want in your distribution for
3740 various features.
3741 You define your distribution features in the distribution
3742 configuration file.
3743 </para>
3744
3745 <para>
3746 In most cases, the presence or absence of a feature in
3747 <filename>DISTRO_FEATURES</filename> is translated to the
3748 appropriate option supplied to the configure script
3749 during the
3750 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3751 task for recipes that optionally support the feature.
3752 For example, specifying "x11" in
3753 <filename>DISTRO_FEATURES</filename>, causes
3754 every piece of software built for the target that can
3755 optionally support X11 to have its X11 support enabled.
3756 </para>
3757
3758 <para>
3759 Two more examples are Bluetooth and NFS support.
3760 For a more complete list of features that ships with the
3761 Yocto Project and that you can provide with this variable,
3762 see the
3763 "<link linkend='ref-features-distro'>Distro Features</link>"
3764 section.
3765 </para>
3766 </glossdef>
3767 </glossentry>
3768
3769 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3770 <info>
3771 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."
3772 </info>
3773 <glossdef>
3774 <para role="glossdeffirst">
3775<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3776 Features to be added to
3777 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3778 if not also present in
3779 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3780 </para>
3781
3782 <para>
3783 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3784 It is not intended to be user-configurable.
3785 It is best to just reference the variable to see which distro features are
3786 being backfilled for all distro configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04003787 See the <link linkend='ref-features-backfill'>Feature Backfilling</link> section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003788 more information.
3789 </para>
3790 </glossdef>
3791 </glossentry>
3792
3793 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3794 <info>
3795 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3796 </info>
3797 <glossdef>
3798 <para role="glossdeffirst">
3799<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3800 Features from
3801 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3802 that should not be backfilled (i.e. added to
3803 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3804 during the build.
3805 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3806 more information.
3807 </para>
3808 </glossdef>
3809 </glossentry>
3810
3811 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3812 <info>
3813 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3814 </info>
3815 <glossdef>
3816 <para role="glossdeffirst">
3817<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3818 A convenience variable that gives you the default
3819 list of distro features with the exception of any
3820 features specific to the C library
3821 (<filename>libc</filename>).
3822 </para>
3823
3824 <para>
3825 When creating a custom distribution, you might find it
3826 useful to be able to reuse the default
3827 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3828 options without the need to write out the full set.
3829 Here is an example that uses
3830 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3831 custom distro configuration file:
3832 <literallayout class='monospaced'>
3833 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} myfeature"
3834 </literallayout>
3835 </para>
3836 </glossdef>
3837 </glossentry>
3838
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003839 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVE'><glossterm>DISTRO_FEATURES_FILTER_NATIVE</glossterm>
3840 <info>
3841 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."
3842 </info>
3843 <glossdef>
3844 <para role="glossdeffirst">
3845<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3846 Specifies a list of features that if present in
3847 the target
3848 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3849 value should be included in
3850 <filename>DISTRO_FEATURES</filename> when building native
3851 recipes.
3852 This variable is used in addition to the features
3853 filtered using the
3854 <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
3855 variable.
3856 </para>
3857 </glossdef>
3858 </glossentry>
3859
3860 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVESDK'><glossterm>DISTRO_FEATURES_FILTER_NATIVESDK</glossterm>
3861 <info>
3862 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."
3863 </info>
3864 <glossdef>
3865 <para role="glossdeffirst">
3866<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3867 Specifies a list of features that if present in the target
3868 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3869 value should be included in
3870 <filename>DISTRO_FEATURES</filename> when building
3871 nativesdk recipes.
3872 This variable is used in addition to the features
3873 filtered using the
3874 <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
3875 variable.
3876 </para>
3877 </glossdef>
3878 </glossentry>
3879
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003880 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3881 <info>
3882 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3883 </info>
3884 <glossdef>
3885 <para role="glossdeffirst">
3886<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3887 A convenience variable that specifies the list of distro
3888 features that are specific to the C library
3889 (<filename>libc</filename>).
3890 Typically, these features are prefixed with "libc-" and
3891 control which features are enabled at during the build
3892 within the C library itself.
3893 </para>
3894 </glossdef>
3895 </glossentry>
3896
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003897 <glossentry id='var-DISTRO_FEATURES_NATIVE'><glossterm>DISTRO_FEATURES_NATIVE</glossterm>
3898 <info>
3899 DISTRO_FEATURES_NATIVE[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes."
3900 </info>
3901 <glossdef>
3902 <para role="glossdeffirst">
3903<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3904 Specifies a list of features that should be included in
3905 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3906 when building native recipes.
3907 This variable is used in addition to the features
3908 filtered using the
3909 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>
3910 variable.
3911 </para>
3912 </glossdef>
3913 </glossentry>
3914
3915 <glossentry id='var-DISTRO_FEATURES_NATIVESDK'><glossterm>DISTRO_FEATURES_NATIVESDK</glossterm>
3916 <info>
3917 DISTRO_FEATURES_NATIVESDK[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes."
3918 </info>
3919 <glossdef>
3920 <para role="glossdeffirst">
3921<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3922 Specifies a list of features that should be included in
3923 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3924 when building nativesdk recipes.
3925 This variable is used in addition to the features
3926 filtered using the
3927 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>
3928 variable.
3929 </para>
3930 </glossdef>
3931 </glossentry>
3932
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003933 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3934 <info>
3935 DISTRO_NAME[doc] = "The long name of the distribution."
3936 </info>
3937 <glossdef>
3938 <para role="glossdeffirst">
3939<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3940 The long name of the distribution.
Brad Bishopd5ae7d92018-06-14 09:52:03 -07003941 For information on the short name of the distribution, see
3942 the
3943 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
3944 variable.
3945 </para>
3946
3947 <para>
3948 The <filename>DISTRO_NAME</filename> variable corresponds
3949 to a distribution configuration file whose root name is the
3950 same as the variable's argument and whose filename
3951 extension is <filename>.conf</filename>.
3952 For example, the distribution configuration file for the
3953 Poky distribution is named <filename>poky.conf</filename>
3954 and resides in the
3955 <filename>meta-poky/conf/distro</filename> directory of
3956 the
3957 <link linkend='source-directory'>Source Directory</link>.
3958 </para>
3959
3960 <para>
3961 Within that <filename>poky.conf</filename> file, the
3962 <filename>DISTRO_NAME</filename> variable is set as
3963 follows:
3964 <literallayout class='monospaced'>
3965 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
3966 </literallayout>
3967 </para>
3968
3969 <para>
3970 Distribution configuration files are located in a
3971 <filename>conf/distro</filename> directory within the
3972 <link linkend='metadata'>Metadata</link>
3973 that contains the distribution configuration.
3974 <note>
3975 If the <filename>DISTRO_NAME</filename> variable is
3976 blank, a set of default configurations are used, which
3977 are specified within
3978 <filename>meta/conf/distro/defaultsetup.conf</filename>
3979 also in the Source Directory.
3980 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003981 </para>
3982 </glossdef>
3983 </glossentry>
3984
3985 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3986 <info>
3987 DISTRO_VERSION[doc] = "The version of the distribution."
3988 </info>
3989 <glossdef>
3990 <para role="glossdeffirst">
3991<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3992 The version of the distribution.
3993 </para>
3994 </glossdef>
3995 </glossentry>
3996
3997 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3998 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003999 DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004000 </info>
4001 <glossdef>
4002 <para role="glossdeffirst">
4003<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004004 A colon-separated list of overrides specific to the
4005 current distribution.
4006 By default, this list includes the value of
4007 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
4008 </para>
4009
4010 <para>
4011 You can extend <filename>DISTROOVERRIDES</filename>
4012 to add extra overrides that should apply to
4013 the distribution.
4014 </para>
4015
4016 <para>
4017 The underlying mechanism behind
4018 <filename>DISTROOVERRIDES</filename> is simply that it
4019 is included in the default value of
4020 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004021 </para>
4022 </glossdef>
4023 </glossentry>
4024
4025 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
4026 <info>
4027 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."
4028 </info>
4029 <glossdef>
4030 <para role="glossdeffirst">
4031<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4032 The central download directory used by the build process to
4033 store downloads.
4034 By default, <filename>DL_DIR</filename> gets files
4035 suitable for mirroring for everything except Git
4036 repositories.
4037 If you want tarballs of Git repositories, use the
4038 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
4039 variable.
4040 </para>
4041
4042 <para>
4043 You can set this directory by defining the
4044 <filename>DL_DIR</filename> variable in the
4045 <filename>conf/local.conf</filename> file.
4046 This directory is self-maintaining and you should not have
4047 to touch it.
4048 By default, the directory is <filename>downloads</filename>
4049 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004050 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004051 <literallayout class='monospaced'>
4052 #DL_DIR ?= "${TOPDIR}/downloads"
4053 </literallayout>
4054 To specify a different download directory, simply remove
4055 the comment from the line and provide your directory.
4056 </para>
4057
4058 <para>
4059 During a first build, the system downloads many different
4060 source code tarballs from various upstream projects.
4061 Downloading can take a while, particularly if your network
4062 connection is slow.
4063 Tarballs are all stored in the directory defined by
4064 <filename>DL_DIR</filename> and the build system looks there
4065 first to find source tarballs.
4066 <note>
4067 When wiping and rebuilding, you can preserve this
4068 directory to speed up this part of subsequent
4069 builds.
4070 </note>
4071 </para>
4072
4073 <para>
4074 You can safely share this directory between multiple builds
4075 on the same development machine.
4076 For additional information on how the build process gets
4077 source files when working behind a firewall or proxy server,
4078 see this specific question in the
4079 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
4080 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004081 You can also refer to the
4082 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
4083 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004084 </para>
4085 </glossdef>
4086 </glossentry>
4087
4088 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
4089 <info>
4090 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."
4091 </info>
4092 <glossdef>
4093 <para role="glossdeffirst">
4094<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4095 When inheriting the
4096 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
4097 class, this variable sets the compression policy used when
4098 the OpenEmbedded build system compresses man pages and info
4099 pages.
4100 By default, the compression method used is gz (gzip).
4101 Other policies available are xz and bz2.
4102 </para>
4103
4104 <para>
4105 For information on policies and on how to use this
4106 variable, see the comments in the
4107 <filename>meta/classes/compress_doc.bbclass</filename> file.
4108 </para>
4109 </glossdef>
4110 </glossentry>
4111
4112 </glossdiv>
4113
4114 <glossdiv id='var-glossary-e'><title>E</title>
4115
4116 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
4117 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004118 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 -05004119 </info>
4120 <glossdef>
4121 <para role="glossdeffirst">
4122<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4123 When building bootable images (i.e. where
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004124 <filename>hddimg</filename>, <filename>iso</filename>,
4125 or <filename>wic.vmdk</filename> is in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004126 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
4127 the <filename>EFI_PROVIDER</filename> variable specifies
4128 the EFI bootloader to use.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004129 The default is "grub-efi", but "systemd-boot" can be used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004130 instead.
4131 </para>
4132
4133 <para>
4134 See the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004135 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05004136 and
4137 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
4138 classes for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004139 </para>
4140 </glossdef>
4141 </glossentry>
4142
4143 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
4144 <info>
4145 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."
4146 </info>
4147 <glossdef>
4148 <para role="glossdeffirst">
4149<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4150 Variable that controls which locales for
4151 <filename>glibc</filename> are generated during the
4152 build (useful if the target device has 64Mbytes
4153 of RAM or less).
4154 </para>
4155 </glossdef>
4156 </glossentry>
4157
4158 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
4159 <info>
4160 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."
4161 </info>
4162 <glossdef>
4163 <para role="glossdeffirst">
4164<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4165 When used with the
4166 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
4167 class, specifies the path used for storing the debug files
4168 created by the
4169 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
4170 which allows you to submit build errors you encounter to a
4171 central database.
4172 By default, the value of this variable is
4173 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
4174 </para>
4175
4176 <para>
4177 You can set <filename>ERR_REPORT_DIR</filename> to the path
4178 you want the error reporting tool to store the debug files
4179 as follows in your <filename>local.conf</filename> file:
4180 <literallayout class='monospaced'>
4181 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
4182 </literallayout>
4183 </para>
4184 </glossdef>
4185 </glossentry>
4186
4187 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
4188 <info>
4189 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
4190 </info>
4191 <glossdef>
4192 <para role="glossdeffirst">
4193<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4194 Specifies the quality assurance checks whose failures are
4195 reported as errors by the OpenEmbedded build system.
4196 You set this variable in your distribution configuration
4197 file.
4198 For a list of the checks you can control with this variable,
4199 see the
4200 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
4201 section.
4202 </para>
4203 </glossdef>
4204 </glossentry>
4205
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004206 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
4207 <info>
4208 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
4209 </info>
4210 <glossdef>
4211 <para role="glossdeffirst">
4212<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4213 Triggers the OpenEmbedded build system's shared libraries
4214 resolver to exclude an entire package when scanning for
4215 shared libraries.
4216 <note>
4217 The shared libraries resolver's functionality results
4218 in part from the internal function
4219 <filename>package_do_shlibs</filename>, which is part of
4220 the
4221 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
4222 task.
4223 You should be aware that the shared libraries resolver
4224 might implicitly define some dependencies between
4225 packages.
4226 </note>
4227 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
4228 similar to the
4229 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
4230 variable, which excludes a package's particular libraries
4231 only and not the whole package.
4232 </para>
4233
4234 <para>
4235 Use the
4236 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
4237 setting it to "1" for a particular package:
4238 <literallayout class='monospaced'>
4239 EXCLUDE_FROM_SHLIBS = "1"
4240 </literallayout>
4241 </para>
4242 </glossdef>
4243 </glossentry>
4244
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004245 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
4246 <info>
4247 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
4248 </info>
4249 <glossdef>
4250 <para role="glossdeffirst">
4251<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4252 Directs BitBake to exclude a recipe from world builds (i.e.
4253 <filename>bitbake world</filename>).
4254 During world builds, BitBake locates, parses and builds all
4255 recipes found in every layer exposed in the
4256 <filename>bblayers.conf</filename> configuration file.
4257 </para>
4258
4259 <para>
4260 To exclude a recipe from a world build using this variable,
4261 set the variable to "1" in the recipe.
4262 </para>
4263
4264 <note>
4265 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
4266 may still be built during a world build in order to satisfy
4267 dependencies of other recipes.
4268 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
4269 only ensures that the recipe is not explicitly added
4270 to the list of build targets in a world build.
4271 </note>
4272 </glossdef>
4273 </glossentry>
4274
4275 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
4276 <info>
4277 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."
4278 </info>
4279 <glossdef>
4280 <para role="glossdeffirst">
4281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4282 Used with file and pathnames to create a prefix for a recipe's
4283 version based on the recipe's
4284 <link linkend='var-PE'><filename>PE</filename></link> value.
4285 If <filename>PE</filename> is set and greater than zero for a recipe,
4286 <filename>EXTENDPE</filename> becomes that value (e.g if
4287 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
4288 becomes "1_").
4289 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
4290 zero, <filename>EXTENDPE</filename> becomes "".</para>
4291 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
4292 variable for an example.
4293 </para>
4294 </glossdef>
4295 </glossentry>
4296
4297 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
4298 <info>
4299 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
4300 </info>
4301 <glossdef>
4302 <para role="glossdeffirst">
4303<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4304 The full package version specification as it appears on the
4305 final packages produced by a recipe.
4306 The variable's value is normally used to fix a runtime
4307 dependency to the exact same version of another package
4308 in the same recipe:
4309 <literallayout class='monospaced'>
4310 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
4311 </literallayout>
4312 </para>
4313
4314 <para>
4315 The dependency relationships are intended to force the
4316 package manager to upgrade these types of packages in
4317 lock-step.
4318 </para>
4319 </glossdef>
4320 </glossentry>
4321
4322 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
4323 <info>
4324 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
4325 </info>
4326 <glossdef>
4327 <para role="glossdeffirst">
4328<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4329 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4330 variable indicates that these tools are not in the
4331 source tree.
4332 </para>
4333
4334 <para>
4335 When kernel tools are available in the tree, they are
4336 preferred over any externally installed tools.
4337 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4338 variable tells the OpenEmbedded build system to prefer
4339 the installed external tools.
4340 See the
4341 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
4342 class in <filename>meta/classes</filename> to see how
4343 the variable is used.
4344 </para>
4345 </glossdef>
4346 </glossentry>
4347
4348 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
4349 <info>
4350 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
4351 </info>
4352 <glossdef>
4353 <para role="glossdeffirst">
4354<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4355 When inheriting the
4356 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4357 class, this variable points to the source tree, which is
4358 outside of the OpenEmbedded build system.
4359 When set, this variable sets the
4360 <link linkend='var-S'><filename>S</filename></link>
4361 variable, which is what the OpenEmbedded build system uses
4362 to locate unpacked recipe source code.
4363 </para>
4364
4365 <para>
4366 For more information on
4367 <filename>externalsrc.bbclass</filename>, see the
4368 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4369 section.
4370 You can also find information on how to use this variable
4371 in the
4372 "<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 -05004373 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004374 </para>
4375 </glossdef>
4376 </glossentry>
4377
4378 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
4379 <info>
4380 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."
4381 </info>
4382 <glossdef>
4383 <para role="glossdeffirst">
4384<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4385 When inheriting the
4386 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4387 class, this variable points to the directory in which the
4388 recipe's source code is built, which is outside of the
4389 OpenEmbedded build system.
4390 When set, this variable sets the
4391 <link linkend='var-B'><filename>B</filename></link>
4392 variable, which is what the OpenEmbedded build system uses
4393 to locate the Build Directory.
4394 </para>
4395
4396 <para>
4397 For more information on
4398 <filename>externalsrc.bbclass</filename>, see the
4399 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4400 section.
4401 You can also find information on how to use this variable
4402 in the
4403 "<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 -05004404 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004405 </para>
4406 </glossdef>
4407 </glossentry>
4408
4409 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
4410 <info>
4411 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
4412 </info>
4413 <glossdef>
4414 <para role="glossdeffirst">
4415<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4416 For recipes inheriting the
4417 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
4418 class, you can use <filename>EXTRA_AUTORECONF</filename> to
4419 specify extra options to pass to the
4420 <filename>autoreconf</filename> command that is
4421 executed during the
4422 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
4423 task.
4424 </para>
4425
4426 <para>
4427 The default value is "--exclude=autopoint".
4428 </para>
4429 </glossdef>
4430 </glossentry>
4431
4432 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
4433 <info>
4434 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."
4435 </info>
4436 <glossdef>
4437 <para role="glossdeffirst">
4438<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4439 A list of additional features to include in an image.
4440 When listing more than one feature, separate them with
4441 a space.
4442 </para>
4443
4444 <para>
4445 Typically, you configure this variable in your
4446 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004447 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004448 Although you can use this variable from within a recipe,
4449 best practices dictate that you do not.
4450 <note>
4451 To enable primary features from within the image
4452 recipe, use the
4453 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
4454 variable.
4455 </note>
4456 </para>
4457
4458 <para>
4459 Here are some examples of features you can add:
4460 <literallayout class='monospaced'>
4461"dbg-pkgs" - Adds -dbg packages for all installed packages
4462 including symbol information for debugging and
4463 profiling.
4464
4465"debug-tweaks" - Makes an image suitable for debugging.
4466 For example, allows root logins without
4467 passwords and enables post-installation
4468 logging. See the 'allow-empty-password'
4469 and 'post-install-logging' features in
4470 the "<link linkend='ref-features-image'>Image Features</link>" section for
4471 more information.
4472
4473"dev-pkgs" - Adds -dev packages for all installed packages.
4474 This is useful if you want to develop against
4475 the libraries in the image.
4476
4477"read-only-rootfs" - Creates an image whose root
4478 filesystem is read-only. See the
4479 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
4480 section in the Yocto Project
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004481 Development Tasks Manual for
4482 more information
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004483
4484"tools-debug" - Adds debugging tools such as gdb and
4485 strace.
4486
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004487"tools-sdk" - Adds development tools such as gcc, make,
4488 pkgconfig and so forth.
4489
4490"tools-testapps" - Adds useful testing tools such as
4491 ts_print, aplay, arecord and so
4492 forth.
4493
4494 </literallayout>
4495 </para>
4496
4497 <para>
4498 For a complete list of image features that ships with the
4499 Yocto Project, see the
4500 "<link linkend="ref-features-image">Image Features</link>"
4501 section.
4502 </para>
4503
4504 <para>
4505 For an example that shows how to customize your image by
4506 using this variable, see the
4507 "<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 -05004508 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004509 </para>
4510 </glossdef>
4511 </glossentry>
4512
4513 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
4514 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04004515 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 -05004516 </info>
4517 <glossdef>
4518 <para role="glossdeffirst">
4519<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4520 Specifies additional options for the image
4521 creation command that has been specified in
4522 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004523 When setting this variable, use an override for the
4524 associated image type.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004525 Here is an example:
4526 <literallayout class='monospaced'>
4527 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
4528 </literallayout>
4529 </para>
4530 </glossdef>
4531 </glossentry>
4532
4533 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
4534 <info>
4535 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."
4536 </info>
4537 <glossdef>
4538 <para role="glossdeffirst">
4539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4540 A list of recipes to build that do not provide packages
4541 for installing into the root filesystem.
4542 </para>
4543
4544 <para>
4545 Sometimes a recipe is required to build the final image but is not
4546 needed in the root filesystem.
4547 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
4548 list these recipes and thus specify the dependencies.
4549 A typical example is a required bootloader in a machine configuration.
4550 </para>
4551
4552 <note>
4553 To add packages to the root filesystem, see the various
4554 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
4555 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
4556 variables.
4557 </note>
4558 </glossdef>
4559 </glossentry>
4560
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004561 <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
4562 <info>
4563 EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
4564 </info>
4565 <glossdef>
4566 <para role="glossdeffirst">
4567<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4568 A list of subdirectories of
4569 <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
4570 added to the beginning of the environment variable
4571 <filename>PATH</filename>.
4572 As an example, the following prepends
4573 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
4574 to <filename>PATH</filename>:
4575 <literallayout class='monospaced'>
4576 EXTRANATIVEPATH = "foo bar"
4577 </literallayout>
4578 </para>
4579 </glossdef>
4580 </glossentry>
4581
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004582 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
4583 <info>
4584 EXTRA_OECMAKE[doc] = "Additional cmake options."
4585 </info>
4586 <glossdef>
4587 <para role="glossdeffirst">
4588<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4589 Additional <filename>cmake</filename> options.
4590 </para>
4591 </glossdef>
4592 </glossentry>
4593
4594 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
4595 <info>
4596 EXTRA_OECONF[doc] = "Additional configure script options."
4597 </info>
4598 <glossdef>
4599 <para role="glossdeffirst">
4600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4601 Additional <filename>configure</filename> script options.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004602 See
4603 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
4604 for additional information on passing configure script
4605 options.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004606 </para>
4607 </glossdef>
4608 </glossentry>
4609
4610 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
4611 <info>
4612 EXTRA_OEMAKE[doc] = "Additional GNU make options."
4613 </info>
4614 <glossdef>
4615 <para role="glossdeffirst">
4616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4617 Additional GNU <filename>make</filename> options.
4618 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004619
4620 <para>
4621 Because the <filename>EXTRA_OEMAKE</filename> defaults to
4622 "", you need to set the variable to specify any required
4623 GNU options.
4624 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004625
4626 <para>
4627 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4628 and
4629 <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
4630 also make use of
4631 <filename>EXTRA_OEMAKE</filename> to pass the required
4632 flags.
4633 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004634 </glossdef>
4635 </glossentry>
4636
4637 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
4638 <info>
4639 EXTRA_OESCONS[doc] = "When a recipe inherits the scons class, this variable specifies additional configuration options you want to pass to the scons command line."
4640 </info>
4641 <glossdef>
4642 <para role="glossdeffirst">
4643<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4644 When inheriting the
4645 <link linkend='ref-classes-scons'><filename>scons</filename></link>
4646 class, this variable specifies additional configuration
4647 options you want to pass to the
4648 <filename>scons</filename> command line.
4649 </para>
4650 </glossdef>
4651 </glossentry>
4652
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004653 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
4654 <info>
4655 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
4656 </info>
4657 <glossdef>
4658 <para role="glossdeffirst">
4659<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4660 When inheriting the
4661 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
4662 class, this variable provides image level user and group
4663 operations.
4664 This is a more global method of providing user and group
4665 configuration as compared to using the
4666 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4667 class, which ties user and group configurations to a
4668 specific recipe.
4669 </para>
4670
4671 <para>
4672 The set list of commands you can configure using the
4673 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4674 <filename>extrausers</filename> class.
4675 These commands map to the normal Unix commands of the same
4676 names:
4677 <literallayout class='monospaced'>
4678 # EXTRA_USERS_PARAMS = "\
4679 # useradd -p '' tester; \
4680 # groupadd developers; \
4681 # userdel nobody; \
4682 # groupdel -g video; \
4683 # groupmod -g 1020 developers; \
4684 # usermod -s /bin/sh tester; \
4685 # "
4686 </literallayout>
4687 </para>
4688 </glossdef>
4689 </glossentry>
4690
4691 </glossdiv>
4692
4693 <glossdiv id='var-glossary-f'><title>F</title>
4694
4695 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4696 <info>
4697 FEATURE_PACKAGES[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES. When setting the value, FEATURE_PACKAGES should have the name of the feature item as an override."
4698 </info>
4699 <glossdef>
4700 <para role="glossdeffirst">
4701<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4702 Defines one or more packages to include in an image when
4703 a specific item is included in
4704 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4705 When setting the value, <filename>FEATURE_PACKAGES</filename>
4706 should have the name of the feature item as an override.
4707 Here is an example:
4708 <literallayout class='monospaced'>
4709 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4710 </literallayout>
4711 </para>
4712
4713 <para>
4714 In this example, if "widget" were added to
4715 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4716 <replaceable>package2</replaceable> would be included in the image.
4717 <note>
4718 Packages installed by features defined through
4719 <filename>FEATURE_PACKAGES</filename> are often package
4720 groups.
4721 While similarly named, you should not confuse the
4722 <filename>FEATURE_PACKAGES</filename> variable with
4723 package groups, which are discussed elsewhere in the
4724 documentation.
4725 </note>
4726 </para>
4727 </glossdef>
4728 </glossentry>
4729
4730 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4731 <info>
4732 FEED_DEPLOYDIR_BASE_URI[doc] = "Allow to serve ipk deploy directory as an ad hoc feed (bogofeed). Set to base URL of the directory as exported by HTTP. Set of ad hoc feed configs will be generated in the image."
4733 </info>
4734 <glossdef>
4735 <para role="glossdeffirst">
4736<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4737 Points to the base URL of the server and location within
4738 the document-root that provides the metadata and
4739 packages required by OPKG to support runtime package
4740 management of IPK packages.
4741 You set this variable in your
4742 <filename>local.conf</filename> file.
4743 </para>
4744
4745 <para>
4746 Consider the following example:
4747 <literallayout class='monospaced'>
4748 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4749 </literallayout>
4750 This example assumes you are serving your packages over
4751 HTTP and your databases are located in a directory
4752 named <filename>BOARD-dir</filename>, which is underneath
4753 your HTTP server's document-root.
4754 In this case, the OpenEmbedded build system generates a set
4755 of configuration files for you in your target that work
4756 with the feed.
4757 </para>
4758 </glossdef>
4759 </glossentry>
4760
4761 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4762 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004763 FILES[doc] = "The list of directories or files that are placed in a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004764 </info>
4765 <glossdef>
4766 <para role="glossdeffirst">
4767<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004768 The list of files and directories that are placed in a
4769 package.
4770 The
4771 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
4772 variable lists the packages generated by a recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004773 </para>
4774
4775 <para>
4776 To use the <filename>FILES</filename> variable, provide a
4777 package name override that identifies the resulting package.
4778 Then, provide a space-separated list of files or paths
4779 that identify the files you want included as part of the
4780 resulting package.
4781 Here is an example:
4782 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004783 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004784 </literallayout>
4785 </para>
4786
4787 <note>
4788 When specifying paths as part of the
4789 <filename>FILES</filename> variable, it is good practice
4790 to use appropriate path variables.
4791 For example, use <filename>${sysconfdir}</filename> rather
4792 than <filename>/etc</filename>, or
4793 <filename>${bindir}</filename> rather than
4794 <filename>/usr/bin</filename>.
4795 You can find a list of these variables at the top of the
4796 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004797 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004798 You will also find the default values of the various
4799 <filename>FILES_*</filename> variables in this file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004800 </note>
4801
4802 <para>
4803 If some of the files you provide with the
4804 <filename>FILES</filename> variable are editable and you
4805 know they should not be overwritten during the package
4806 update process by the Package Management System (PMS), you
4807 can identify these files so that the PMS will not
4808 overwrite them.
4809 See the
4810 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4811 variable for information on how to identify these files to
4812 the PMS.
4813 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004814 </glossdef>
4815 </glossentry>
4816
4817 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4818 <info>
4819 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4820 </info>
4821 <glossdef>
4822 <para role="glossdeffirst">
4823<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4824 Defines the file specification to match
4825 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4826 In other words, <filename>FILES_SOLIBSDEV</filename>
4827 defines the full path name of the development symbolic link
4828 (symlink) for shared libraries on the target platform.
4829 </para>
4830
4831 <para>
4832 The following statement from the
4833 <filename>bitbake.conf</filename> shows how it is set:
4834 <literallayout class='monospaced'>
4835 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4836 </literallayout>
4837 </para>
4838 </glossdef>
4839 </glossentry>
4840
4841 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4842 <info>
4843 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4844 </info>
4845 <glossdef>
4846 <para role="glossdeffirst">
4847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4848 Extends the search path the OpenEmbedded build system uses
4849 when looking for files and patches as it processes recipes
4850 and append files.
4851 The default directories BitBake uses when it processes
4852 recipes are initially defined by the
4853 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4854 variable.
4855 You can extend <filename>FILESPATH</filename> variable
4856 by using <filename>FILESEXTRAPATHS</filename>.
4857 </para>
4858
4859 <para>
4860 Best practices dictate that you accomplish this by using
4861 <filename>FILESEXTRAPATHS</filename> from within a
4862 <filename>.bbappend</filename> file and that you prepend
4863 paths as follows:
4864 <literallayout class='monospaced'>
4865 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4866 </literallayout>
4867 In the above example, the build system first looks for files
4868 in a directory that has the same name as the corresponding
4869 append file.
4870 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004871 <para>When extending
4872 <filename>FILESEXTRAPATHS</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004873 be sure to use the immediate expansion
4874 (<filename>:=</filename>) operator.
4875 Immediate expansion makes sure that BitBake evaluates
4876 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4877 at the time the directive is encountered rather than at
4878 some later time when expansion might result in a
4879 directory that does not contain the files you need.
4880 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004881
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004882 <para>Also, include the trailing separating colon
4883 character if you are prepending.
4884 The trailing colon character is necessary because you
4885 are directing BitBake to extend the path by prepending
4886 directories to the search path.</para>
4887 </note>
4888 Here is another common use:
4889 <literallayout class='monospaced'>
4890 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4891 </literallayout>
4892 In this example, the build system extends the
4893 <filename>FILESPATH</filename> variable to include a
4894 directory named <filename>files</filename> that is in the
4895 same directory as the corresponding append file.
4896 </para>
4897
4898 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004899 This next example specifically adds three paths:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004900 <literallayout class='monospaced'>
4901 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4902 </literallayout>
4903 </para>
4904
4905 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004906 A final example shows how you can extend the search path
4907 and include a
4908 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>-specific
4909 override, which is useful in a BSP layer:
4910 <literallayout class='monospaced'>
4911 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
4912 </literallayout>
4913 The previous statement appears in the
4914 <filename>linux-yocto-dev.bbappend</filename> file, which
4915 is found in the Yocto Project
Brad Bishop316dfdd2018-06-25 12:45:53 -04004916 <ulink url='&YOCTO_DOCS_OM_URL;#source-repositories'>Source Repositories</ulink>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004917 in
4918 <filename>meta-intel/common/recipes-kernel/linux</filename>.
4919 Here, the machine override is a special
4920 <link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
4921 definition for multiple <filename>meta-intel</filename>
4922 machines.
4923 <note>
4924 For a layer that supports a single BSP, the override
4925 could just be the value of <filename>MACHINE</filename>.
4926 </note>
4927 </para>
4928
4929 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004930 By prepending paths in <filename>.bbappend</filename>
4931 files, you allow multiple append files that reside in
4932 different layers but are used for the same recipe to
4933 correctly extend the path.
4934 </para>
4935 </glossdef>
4936 </glossentry>
4937
4938 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4939 <info>
4940 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4941 </info>
4942 <glossdef>
4943 <para role="glossdeffirst">
4944<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4945 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4946 used by the OpenEmbedded build system for creating
4947 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
4948 You can find more information on how overrides are handled
4949 in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04004950 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004951 </para>
4952
4953 <para>
4954 By default, the <filename>FILESOVERRIDES</filename>
4955 variable is defined as:
4956 <literallayout class='monospaced'>
4957 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4958 </literallayout>
4959
4960 <note>
4961 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4962 variable.
4963 The values match up with expected overrides and are
4964 used in an expected manner by the build system.
4965 </note>
4966 </para>
4967 </glossdef>
4968 </glossentry>
4969
4970 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4971 <info>
4972 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."
4973 </info>
4974 <glossdef>
4975 <para role="glossdeffirst">
4976<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4977 The default set of directories the OpenEmbedded build system
4978 uses when searching for patches and files.
4979 During the build process, BitBake searches each directory in
4980 <filename>FILESPATH</filename> in the specified order when
4981 looking for files and patches specified by each
Brad Bishop316dfdd2018-06-25 12:45:53 -04004982 <filename>file://</filename> URI in a recipe's
4983 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
4984 statements.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004985 </para>
4986
4987 <para>
4988 The default value for the <filename>FILESPATH</filename>
4989 variable is defined in the <filename>base.bbclass</filename>
4990 class found in <filename>meta/classes</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004991 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004992 <literallayout class='monospaced'>
4993 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4994 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4995 </literallayout>
4996 <note>
4997 Do not hand-edit the <filename>FILESPATH</filename>
4998 variable.
4999 If you want the build system to look in directories
5000 other than the defaults, extend the
5001 <filename>FILESPATH</filename> variable by using the
5002 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
5003 variable.
5004 </note>
5005 Be aware that the default <filename>FILESPATH</filename>
5006 directories do not map to directories in custom layers
5007 where append files (<filename>.bbappend</filename>)
5008 are used.
5009 If you want the build system to find patches or files
5010 that reside with your append files, you need to extend
5011 the <filename>FILESPATH</filename> variable by using
Brad Bishop316dfdd2018-06-25 12:45:53 -04005012 the <filename>FILESEXTRAPATHS</filename> variable.
5013 </para>
5014
5015 <para>
5016 You can find out more about the patching process in the
5017 "<ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>Patching</ulink>"
5018 section in the Yocto Project Overview and Concepts Manual
5019 and the
5020 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code'>Patching Code</ulink>"
5021 section in the Yocto Project Development Tasks Manual.
5022 See the
5023 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
5024 task as well.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005025 </para>
5026 </glossdef>
5027 </glossentry>
5028
5029 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
5030 <info>
5031 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
5032 </info>
5033 <glossdef>
5034 <para role="glossdeffirst">
5035<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5036 Allows you to define your own file permissions settings table as part of
5037 your configuration for the packaging process.
5038 For example, suppose you need a consistent set of custom permissions for
5039 a set of groups and users across an entire work project.
5040 It is best to do this in the packages themselves but this is not always
5041 possible.
5042 </para>
5043
5044 <para>
5045 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
5046 is located in the <filename>meta/files</filename> folder in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005047 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005048 If you create your own file permissions setting table, you should place it in your
5049 layer or the distro's layer.
5050 </para>
5051
5052 <para>
5053 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
5054 <filename>conf/local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005055 <link linkend='build-directory'>Build Directory</link>, to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005056 point to your custom <filename>fs-perms.txt</filename>.
5057 You can specify more than a single file permissions setting table.
5058 The paths you specify to these files must be defined within the
5059 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
5060 </para>
5061
5062 <para>
5063 For guidance on how to create your own file permissions settings table file,
5064 examine the existing <filename>fs-perms.txt</filename>.
5065 </para>
5066 </glossdef>
5067 </glossentry>
5068
5069 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
5070 <info>
5071 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'."
5072 </info>
5073 <glossdef>
5074 <para role="glossdeffirst">
5075<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5076 When inheriting the
5077 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5078 class, this variable specifies the runtime dependencies
5079 for font packages.
5080 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
5081 is set to "fontconfig-utils".
5082 </para>
5083 </glossdef>
5084 </glossentry>
5085
5086 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
5087 <info>
5088 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
5089 </info>
5090 <glossdef>
5091 <para role="glossdeffirst">
5092<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5093 When inheriting the
5094 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5095 class, this variable identifies packages containing font
5096 files that need to be cached by Fontconfig.
5097 By default, the <filename>fontcache</filename> class assumes
5098 that fonts are in the recipe's main package
5099 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5100 Use this variable if fonts you need are in a package
5101 other than that main package.
5102 </para>
5103 </glossdef>
5104 </glossentry>
5105
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005106 <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
5107 <info>
5108 FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
5109 </info>
5110 <glossdef>
5111 <para role="glossdeffirst">
5112<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5113 Forces the removal of the packages listed in
5114 <filename>ROOTFS_RO_UNNEEDED</filename> during the
5115 generation of the root filesystem.
5116 </para>
5117
5118 <para>
5119 Set the variable to "1" to force the removal of these
5120 packages.
5121 </para>
5122 </glossdef>
5123 </glossentry>
5124
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005125 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
5126 <info>
5127 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'."
5128 </info>
5129 <glossdef>
5130 <para role="glossdeffirst">
5131<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5132 The options to pass in
5133 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
5134 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
5135 when compiling an optimized system.
5136 This variable defaults to
5137 "-O2 -pipe ${DEBUG_FLAGS}".
5138 </para>
5139 </glossdef>
5140 </glossentry>
5141 </glossdiv>
5142
5143 <glossdiv id='var-glossary-g'><title>G</title>
5144
Brad Bishop316dfdd2018-06-25 12:45:53 -04005145 <glossentry id='var-GCCPIE'><glossterm>GCCPIE</glossterm>
5146 <info>
5147 GCCPIE[doc] = "Enables Position Independent Executables (PIE) within the GNU C Compiler (GCC)."
5148 </info>
5149 <glossdef>
5150 <para role="glossdeffirst">
5151<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5152 Enables Position Independent Executables (PIE) within the
5153 GNU C Compiler (GCC).
5154 Enabling PIE in the GCC makes Return Oriented Programming
5155 (ROP) attacks much more difficult to
5156 execute.
5157 </para>
5158
5159 <para>
5160 By default the <filename>security_flags.inc</filename>
5161 file enables PIE by setting the variable as follows:
5162 <literallayout class='monospaced'>
5163 GCCPIE ?= "--enable-default-pie"
5164 </literallayout>
5165 </para>
5166 </glossdef>
5167 </glossentry>
5168
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005169 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
5170 <info>
5171 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
5172 </info>
5173 <glossdef>
5174 <para role="glossdeffirst">
5175<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5176 The minimal command and arguments to run the GNU Debugger.
5177 </para>
5178 </glossdef>
5179 </glossentry>
5180
5181 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
5182 <info>
5183 GITDIR[doc] = "The directory where Git clones will be stored."
5184 </info>
5185 <glossdef>
5186 <para role="glossdeffirst">
5187<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5188 The directory in which a local copy of a Git repository
5189 is stored when it is cloned.
5190 </para>
5191 </glossdef>
5192 </glossentry>
5193
5194 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
5195 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005196 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 -05005197 </info>
5198 <glossdef>
5199 <para role="glossdeffirst">
5200<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5201 Specifies the list of GLIBC locales to generate should you
Brad Bishop316dfdd2018-06-25 12:45:53 -04005202 not wish to generate all LIBC locals, which can be time
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005203 consuming.
5204 <note>
5205 If you specifically remove the locale
5206 <filename>en_US.UTF-8</filename>, you must set
5207 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
5208 appropriately.
5209 </note>
5210 </para>
5211
5212 <para>
5213 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
5214 in your <filename>local.conf</filename> file.
5215 By default, all locales are generated.
5216 <literallayout class='monospaced'>
5217 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
5218 </literallayout>
5219 </para>
5220 </glossdef>
5221 </glossentry>
5222
5223 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
5224 <info>
5225 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."
5226 </info>
5227 <glossdef>
5228 <para role="glossdeffirst">
5229<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5230 When inheriting the
5231 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5232 class, this variable
5233 specifies for a package what parameters should be passed
5234 to the <filename>groupadd</filename> command
5235 if you wish to add a group to the system when the package
5236 is installed.
5237 </para>
5238
5239 <para>
5240 Here is an example from the <filename>dbus</filename>
5241 recipe:
5242 <literallayout class='monospaced'>
5243 GROUPADD_PARAM_${PN} = "-r netdev"
5244 </literallayout>
5245 For information on the standard Linux shell command
5246 <filename>groupadd</filename>, see
5247 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
5248 </para>
5249 </glossdef>
5250 </glossentry>
5251
5252 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
5253 <info>
5254 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."
5255 </info>
5256 <glossdef>
5257 <para role="glossdeffirst">
5258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5259 When inheriting the
5260 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5261 class, this variable
5262 specifies for a package what parameters should be passed
5263 to the <filename>groupmems</filename> command
5264 if you wish to modify the members of a group when the
5265 package is installed.
5266 </para>
5267
5268 <para>
5269 For information on the standard Linux shell command
5270 <filename>groupmems</filename>, see
5271 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
5272 </para>
5273 </glossdef>
5274 </glossentry>
5275
5276 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
5277 <info>
5278 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
5279 </info>
5280 <glossdef>
5281 <para role="glossdeffirst">
5282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5283 Configures the GNU GRand Unified Bootloader (GRUB) to have
5284 graphics and serial in the boot menu.
5285 Set this variable to "1" in your
5286 <filename>local.conf</filename> or distribution
5287 configuration file to enable graphics and serial
5288 in the menu.
5289 </para>
5290
5291 <para>
5292 See the
5293 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5294 class for more information on how this variable is used.
5295 </para>
5296 </glossdef>
5297 </glossentry>
5298
5299 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
5300 <info>
5301 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
5302 </info>
5303 <glossdef>
5304 <para role="glossdeffirst">
5305<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5306 Additional options to add to the GNU GRand Unified
5307 Bootloader (GRUB) configuration.
5308 Use a semi-colon character (<filename>;</filename>) to
5309 separate multiple options.
5310 </para>
5311
5312 <para>
5313 The <filename>GRUB_OPTS</filename> variable is optional.
5314 See the
5315 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5316 class for more information on how this variable is used.
5317 </para>
5318 </glossdef>
5319 </glossentry>
5320
5321 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
5322 <info>
5323 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
5324 </info>
5325 <glossdef>
5326 <para role="glossdeffirst">
5327<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5328 Specifies the timeout before executing the default
5329 <filename>LABEL</filename> in the GNU GRand Unified
5330 Bootloader (GRUB).
5331 </para>
5332
5333 <para>
5334 The <filename>GRUB_TIMEOUT</filename> variable is optional.
5335 See the
5336 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5337 class for more information on how this variable is used.
5338 </para>
5339 </glossdef>
5340 </glossentry>
5341
5342 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
5343 <info>
5344 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."
5345 </info>
5346 <glossdef>
5347 <para role="glossdeffirst">
5348<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5349 When inheriting the
5350 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
5351 class, this variable specifies the packages that contain the
5352 GTK+ input method modules being installed when the modules
5353 are in packages other than the main package.
5354 </para>
5355 </glossdef>
5356 </glossentry>
5357
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005358 </glossdiv>
5359
5360 <glossdiv id='var-glossary-h'><title>H</title>
5361
5362 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
5363 <info>
5364 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
5365 </info>
5366 <glossdef>
5367 <para role="glossdeffirst">
5368<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5369 Website where more information about the software the recipe is building
5370 can be found.
5371 </para>
5372 </glossdef>
5373 </glossentry>
5374
5375 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
5376 <info>
5377 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
5378
5379 </info>
5380 <glossdef>
5381 <para role="glossdeffirst">
5382<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5383 The name of the target architecture, which is normally
5384 the same as
5385 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
5386 The OpenEmbedded build system supports many
5387 architectures.
5388 Here is an example list of architectures supported.
5389 This list is by no means complete as the architecture
5390 is configurable:
5391 <literallayout class='monospaced'>
5392 arm
5393 i586
5394 x86_64
5395 powerpc
5396 powerpc64
5397 mips
5398 mipsel
5399 </literallayout>
5400 </para>
5401 </glossdef>
5402 </glossentry>
5403
5404 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
5405 <info>
5406 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
5407 </info>
5408 <glossdef>
5409 <para role="glossdeffirst">
5410<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5411 Specifies architecture-specific compiler flags that are
5412 passed to the C compiler.
5413 </para>
5414
5415 <para>
5416 Default initialization for <filename>HOST_CC_ARCH</filename>
5417 varies depending on what is being built:
5418 <itemizedlist>
5419 <listitem><para>
5420 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
5421 when building for the target
5422 </para></listitem>
5423 <listitem><para>
5424 <filename>BUILD_CC_ARCH</filename>
5425 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005426 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005427 </para></listitem>
5428 <listitem><para>
5429 <filename>BUILDSDK_CC_ARCH</filename>
5430 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005431 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005432 </para></listitem>
5433 </itemizedlist>
5434 </para>
5435 </glossdef>
5436 </glossentry>
5437
5438 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
5439 <info>
5440 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
5441 </info>
5442 <glossdef>
5443 <para role="glossdeffirst">
5444<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5445 Specifies the name of the target operating system, which
5446 is normally the same as the
5447 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
5448 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005449 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005450 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005451 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005452 </para>
5453 </glossdef>
5454 </glossentry>
5455
5456 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
5457 <info>
5458 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
5459 </info>
5460 <glossdef>
5461 <para role="glossdeffirst">
5462<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5463 Specifies the prefix for the cross-compile toolchain.
5464 <filename>HOST_PREFIX</filename> is normally the same as
5465 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
5466 </para>
5467 </glossdef>
5468 </glossentry>
5469
5470 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
5471 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005472 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 -05005473 </info>
5474 <glossdef>
5475 <para role="glossdeffirst">
5476<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5477 Specifies the system, including the architecture and the
5478 operating system, for which the build is occurring
5479 in the context of the current recipe.
5480 </para>
5481
5482 <para>
5483 The OpenEmbedded build system automatically sets this
5484 variable based on
5485 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
5486 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
5487 and
5488 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
5489 variables.
5490 <note>
5491 You do not need to set the variable yourself.
5492 </note>
5493 </para>
5494
5495 <para>
5496 Consider these two examples:
5497 <itemizedlist>
5498 <listitem><para>Given a native recipe on a 32-bit
5499 x86 machine running Linux, the value is
5500 "i686-linux".
5501 </para></listitem>
5502 <listitem><para>Given a recipe being built for a
5503 little-endian MIPS target running Linux,
5504 the value might be "mipsel-linux".
5505 </para></listitem>
5506 </itemizedlist>
5507 </para>
5508 </glossdef>
5509 </glossentry>
5510
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005511 <glossentry id='var-HOSTTOOLS'><glossterm>HOSTTOOLS</glossterm>
5512 <info>
5513 HOSTTOOLS[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5514 </info>
5515 <glossdef>
5516 <para role="glossdeffirst">
5517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5518 A space-separated list (filter) of tools on the build host
5519 that should be allowed to be called from within build tasks.
5520 Using this filter helps reduce the possibility of host
5521 contamination.
5522 If a tool specified in the value of
5523 <filename>HOSTTOOLS</filename> is not found on the
5524 build host, the OpenEmbedded build system produces
5525 an error and the build is not started.
5526 </para>
5527
5528 <para>
5529 For additional information, see
5530 <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>.
5531 </para>
5532 </glossdef>
5533 </glossentry>
5534
5535 <glossentry id='var-HOSTTOOLS_NONFATAL'><glossterm>HOSTTOOLS_NONFATAL</glossterm>
5536 <info>
5537 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."
5538 </info>
5539 <glossdef>
5540 <para role="glossdeffirst">
5541<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5542 A space-separated list (filter) of tools on the build host
5543 that should be allowed to be called from within build tasks.
5544 Using this filter helps reduce the possibility of host
5545 contamination.
5546 Unlike
5547 <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -04005548 the OpenEmbedded build system does not produce an error
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005549 if a tool specified in the value of
5550 <filename>HOSTTOOLS_NONFATAL</filename> is not found on the
5551 build host.
5552 Thus, you can use <filename>HOSTTOOLS_NONFATAL</filename>
5553 to filter optional host tools.
5554 </para>
5555 </glossdef>
5556 </glossentry>
5557
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005558 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
5559 <info>
5560 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
5561 </info>
5562 <glossdef>
5563 <para role="glossdeffirst">
5564<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5565 Specifies the name of the vendor.
5566 <filename>HOST_VENDOR</filename> is normally the same as
Brad Bishop316dfdd2018-06-25 12:45:53 -04005567 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005568 </para>
5569 </glossdef>
5570 </glossentry>
5571
5572 </glossdiv>
5573
5574 <glossdiv id='var-glossary-i'><title>I</title>
5575
5576 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
5577 <info>
5578 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
5579 </info>
5580 <glossdef>
5581 <para role="glossdeffirst">
5582<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5583 Disables or enables the <filename>icecc</filename>
5584 (Icecream) function.
5585 For more information on this function and best practices
5586 for using this variable, see the
5587 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
5588 section.
5589 </para>
5590
5591 <para>
5592 Setting this variable to "1" in your
5593 <filename>local.conf</filename> disables the function:
5594 <literallayout class='monospaced'>
5595 ICECC_DISABLED ??= "1"
5596 </literallayout>
5597 To enable the function, set the variable as follows:
5598 <literallayout class='monospaced'>
5599 ICECC_DISABLED = ""
5600 </literallayout>
5601 </para>
5602 </glossdef>
5603 </glossentry>
5604
5605 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
5606 <info>
5607 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
5608 </info>
5609 <glossdef>
5610 <para role="glossdeffirst">
5611<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5612 Points to the <filename>icecc-create-env</filename> script
5613 that you provide.
5614 This variable is used by the
5615 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5616 class.
5617 You set this variable in your
5618 <filename>local.conf</filename> file.
5619 </para>
5620
5621 <para>
5622 If you do not point to a script that you provide, the
5623 OpenEmbedded build system uses the default script provided
5624 by the <filename>icecc-create-env.bb</filename> recipe,
5625 which is a modified version and not the one that comes with
5626 <filename>icecc</filename>.
5627 </para>
5628 </glossdef>
5629 </glossentry>
5630
5631 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
5632 <info>
5633 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
5634 </info>
5635 <glossdef>
5636 <para role="glossdeffirst">
5637<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5638 Extra options passed to the <filename>make</filename>
5639 command during the
5640 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
5641 task that specify parallel compilation.
5642 This variable usually takes the form of
5643 "-j <replaceable>x</replaceable>", where
5644 <replaceable>x</replaceable> represents the maximum
5645 number of parallel threads <filename>make</filename> can
5646 run.
5647 <note>
5648 The options passed affect builds on all enabled
5649 machines on the network, which are machines running the
5650 <filename>iceccd</filename> daemon.
5651 </note>
5652 </para>
5653
5654 <para>
5655 If your enabled machines support multiple cores,
5656 coming up with the maximum number of parallel threads
5657 that gives you the best performance could take some
5658 experimentation since machine speed, network lag,
5659 available memory, and existing machine loads can all
5660 affect build time.
5661 Consequently, unlike the
5662 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5663 variable, there is no rule-of-thumb for setting
5664 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
5665 optimal performance.
5666 </para>
5667
5668 <para>
5669 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
5670 the build system does not use it (i.e. the system does
5671 not detect and assign the number of cores as is done with
5672 <filename>PARALLEL_MAKE</filename>).
5673 </para>
5674 </glossdef>
5675 </glossentry>
5676
5677 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
5678 <info>
5679 ICECC_PATH[doc] = "The location of the icecc binary."
5680 </info>
5681 <glossdef>
5682 <para role="glossdeffirst">
5683<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5684 The location of the <filename>icecc</filename> binary.
5685 You can set this variable in your
5686 <filename>local.conf</filename> file.
5687 If your <filename>local.conf</filename> file does not define
5688 this variable, the
5689 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5690 class attempts to define it by locating
5691 <filename>icecc</filename> using <filename>which</filename>.
5692 </para>
5693 </glossdef>
5694 </glossentry>
5695
5696 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
5697 <info>
5698 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
5699 </info>
5700 <glossdef>
5701 <para role="glossdeffirst">
5702<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5703 Identifies user classes that you do not want the
5704 Icecream distributed compile support to consider.
5705 This variable is used by the
5706 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5707 class.
5708 You set this variable in your
5709 <filename>local.conf</filename> file.
5710 </para>
5711
5712 <para>
5713 When you list classes using this variable, you are
5714 "blacklisting" them from distributed compilation across
5715 remote hosts.
5716 Any classes you list will be distributed and compiled
5717 locally.
5718 </para>
5719 </glossdef>
5720 </glossentry>
5721
5722 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5723 <info>
5724 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5725 </info>
5726 <glossdef>
5727 <para role="glossdeffirst">
5728<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5729 Identifies user recipes that you do not want the
5730 Icecream distributed compile support to consider.
5731 This variable is used by the
5732 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5733 class.
5734 You set this variable in your
5735 <filename>local.conf</filename> file.
5736 </para>
5737
5738 <para>
5739 When you list packages using this variable, you are
5740 "blacklisting" them from distributed compilation across
5741 remote hosts.
5742 Any packages you list will be distributed and compiled
5743 locally.
5744 </para>
5745 </glossdef>
5746 </glossentry>
5747
5748 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5749 <info>
5750 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."
5751 </info>
5752 <glossdef>
5753 <para role="glossdeffirst">
5754<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5755 Identifies user recipes that use an empty
5756 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5757 variable that you want to force remote distributed
5758 compilation on using the Icecream distributed compile
5759 support.
5760 This variable is used by the
5761 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5762 class.
5763 You set this variable in your
5764 <filename>local.conf</filename> file.
5765 </para>
5766 </glossdef>
5767 </glossentry>
5768
5769 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5770 <info>
5771 IMAGE_BASENAME[doc] = "The base name of image output files."
5772 </info>
5773 <glossdef>
5774 <para role="glossdeffirst">
5775<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5776 The base name of image output files.
5777 This variable defaults to the recipe name
5778 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5779 </para>
5780 </glossdef>
5781 </glossentry>
5782
5783 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5784 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005785 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 -05005786 </info>
5787 <glossdef>
5788 <para role="glossdeffirst">
5789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5790 A space-separated list of files installed into the
Brad Bishop316dfdd2018-06-25 12:45:53 -04005791 boot partition when preparing an image using the Wic tool
5792 with the <filename>bootimg-partition</filename> source
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005793 plugin.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005794 By default, the files are installed under the same name as
5795 the source files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005796 To change the installed name, separate it from the
5797 original name with a semi-colon (;).
5798 Source files need to be located in
5799 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5800 Here are two examples:
5801
5802 <literallayout class="monospaced">
5803 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5804 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5805 </literallayout>
5806 </para>
5807
5808 <para>
5809 Alternatively, source files can be picked up using
5810 a glob pattern.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005811 In this case, the destination file must have the same name
5812 as the base name of the source file path.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005813 To install files into a directory within the
5814 target location, pass its name after a semi-colon
5815 (;).
5816 Here are two examples:
5817 <literallayout class="monospaced">
5818 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5819 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5820 </literallayout>
5821 The first example installs all files from
5822 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5823 into the root of the target partition.
5824 The second example installs the same files into a
5825 <filename>boot</filename> directory within the
5826 target partition.
5827 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005828
5829 <para>
5830 You can find information on how to use the Wic tool in the
5831 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
5832 section of the Yocto Project Development Tasks Manual.
5833 Reference material for Wic is located in the
5834 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-kickstart'>OpenEmbedded Kickstart (.wks) Reference</ulink>"
5835 chapter.
5836 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005837 </glossdef>
5838 </glossentry>
5839
5840 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5841 <info>
5842 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5843 </info>
5844 <glossdef>
5845 <para role="glossdeffirst">
5846<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5847 A list of classes that all images should inherit.
5848 You typically use this variable to specify the list of
5849 classes that register the different types of images
5850 the OpenEmbedded build system creates.
5851 </para>
5852
5853 <para>
5854 The default value for <filename>IMAGE_CLASSES</filename> is
5855 <filename>image_types</filename>.
5856 You can set this variable in your
5857 <filename>local.conf</filename> or in a distribution
5858 configuration file.
5859 </para>
5860
5861 <para>
5862 For more information, see
5863 <filename>meta/classes/image_types.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005864 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005865 </para>
5866 </glossdef>
5867 </glossentry>
5868
5869 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5870 <info>
5871 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)."
5872 </info>
5873 <glossdef>
5874 <para role="glossdeffirst">
5875<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5876 Specifies the command to create the image file for a
5877 specific image type, which corresponds to the value set
5878 set in
5879 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5880 (e.g. <filename>ext3</filename>,
5881 <filename>btrfs</filename>, and so forth).
5882 When setting this variable, you should use
5883 an override for the associated type.
5884 Here is an example:
5885 <literallayout class='monospaced'>
5886 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5887 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5888 ${EXTRA_IMAGECMD}"
5889 </literallayout>
5890 </para>
5891
5892 <para>
5893 You typically do not need to set this variable unless
5894 you are adding support for a new image type.
5895 For more examples on how to set this variable, see the
5896 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5897 class file, which is
5898 <filename>meta/classes/image_types.bbclass</filename>.
5899 </para>
5900 </glossdef>
5901 </glossentry>
5902
5903 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5904 <info>
5905 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."
5906 </info>
5907 <glossdef>
5908 <para role="glossdeffirst">
5909<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5910 Specifies one or more files that contain custom device
5911 tables that are passed to the
5912 <filename>makedevs</filename> command as part of creating
5913 an image.
5914 These files list basic device nodes that should be
5915 created under <filename>/dev</filename> within the image.
5916 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5917 <filename>files/device_table-minimal.txt</filename> is
5918 used, which is located by
5919 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5920 For details on how you should write device table files,
5921 see <filename>meta/files/device_table-minimal.txt</filename>
5922 as an example.
5923 </para>
5924 </glossdef>
5925 </glossentry>
5926
5927 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5928 <info>
5929 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5930 </info>
5931 <glossdef>
5932 <para role="glossdeffirst">
5933<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5934 The primary list of features to include in an image.
5935 Typically, you configure this variable in an image recipe.
5936 Although you can use this variable from your
5937 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005938 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005939 best practices dictate that you do not.
5940 <note>
5941 To enable extra features from outside the image recipe,
5942 use the
5943 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5944 </note>
5945 </para>
5946
5947 <para>
5948 For a list of image features that ships with the Yocto
5949 Project, see the
5950 "<link linkend="ref-features-image">Image Features</link>"
5951 section.
5952 </para>
5953
5954 <para>
5955 For an example that shows how to customize your image by
5956 using this variable, see the
5957 "<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 -05005958 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005959 </para>
5960 </glossdef>
5961 </glossentry>
5962
5963 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5964 <info>
5965 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5966 </info>
5967 <glossdef>
5968 <para role="glossdeffirst">
5969<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5970 Specifies the formats the OpenEmbedded build system uses
5971 during the build when creating the root filesystem.
5972 For example, setting <filename>IMAGE_FSTYPES</filename>
5973 as follows causes the build system to create root
5974 filesystems using two formats: <filename>.ext3</filename>
5975 and <filename>.tar.bz2</filename>:
5976 <literallayout class='monospaced'>
5977 IMAGE_FSTYPES = "ext3 tar.bz2"
5978 </literallayout>
5979 </para>
5980
5981 <para>
5982 For the complete list of supported image formats from which
5983 you can choose, see
5984 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5985 </para>
5986
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005987 <note><title>Notes</title>
5988 <itemizedlist>
5989 <listitem><para>
5990 If you add "live" to
5991 <filename>IMAGE_FSTYPES</filename> inside an image
5992 recipe, be sure that you do so prior to the
5993 "inherit image" line of the recipe or the live
5994 image will not build.
5995 </para></listitem>
5996 <listitem><para>
5997 Due to the way the OpenEmbedded build system
5998 processes this variable, you cannot update its
5999 contents by using <filename>_append</filename> or
6000 <filename>_prepend</filename>.
6001 You must use the <filename>+=</filename>
6002 operator to add one or more options to the
6003 <filename>IMAGE_FSTYPES</filename> variable.
6004 </para></listitem>
6005 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006006 </note>
6007 </glossdef>
6008 </glossentry>
6009
6010 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
6011 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006012 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 -05006013 </info>
6014 <glossdef>
6015 <para role="glossdeffirst">
6016<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04006017 Used by recipes to specify the packages to install into an
6018 image through the
6019 <link linkend='ref-classes-image'><filename>image</filename></link>
6020 class.
6021 Use the <filename>IMAGE_INSTALL</filename> variable with
6022 care to avoid ordering issues.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006023 </para>
6024
6025 <para>
6026 Image recipes set <filename>IMAGE_INSTALL</filename>
6027 to specify the packages to install into an image through
6028 <filename>image.bbclass</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04006029 Additionally, "helper" classes such as the
6030 <link linkend='ref-classes-core-image'><filename>core-image</filename></link>
6031 class exist that can take lists used with
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006032 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006033 and turn them into auto-generated entries in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006034 <filename>IMAGE_INSTALL</filename> in addition to its
6035 default contents.
6036 </para>
6037
6038 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006039 When you use this variable, it is best to use it as follows:
6040 <literallayout class='monospaced'>
6041 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
6042 </literallayout>
6043 Be sure to include the space between the quotation character
6044 and the start of the package name or names.
Brad Bishop316dfdd2018-06-25 12:45:53 -04006045 <note><title>Caution</title>
6046 <itemizedlist>
6047 <listitem><para>
6048 When working with a
6049 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
6050 image, do not use the
6051 <filename>IMAGE_INSTALL</filename> variable to
6052 specify packages for installation.
6053 Instead, use the
6054 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
6055 variable, which allows the initial RAM
6056 filesystem (initramfs) recipe to use a fixed
6057 set of packages and not be affected by
6058 <filename>IMAGE_INSTALL</filename>.
6059 For information on creating an initramfs, see
6060 the
6061 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
6062 section in the Yocto Project Development Tasks
6063 Manual.
6064 </para></listitem>
6065 <listitem><para>
6066 Using <filename>IMAGE_INSTALL</filename> with
6067 the
6068 <ulink url='&YOCTO_DOCS_BB_URL;#appending-and-prepending'><filename>+=</filename></ulink>
6069 BitBake operator within the
6070 <filename>/conf/local.conf</filename> file or
6071 from within an image recipe is not recommended.
6072 Use of this operator in these ways can cause
6073 ordering issues.
6074 Since <filename>core-image.bbclass</filename>
6075 sets <filename>IMAGE_INSTALL</filename> to a
6076 default value using the
6077 <ulink url='&YOCTO_DOCS_BB_URL;#setting-a-default-value'><filename>?=</filename></ulink>
6078 operator, using a <filename>+=</filename>
6079 operation against
6080 <filename>IMAGE_INSTALL</filename> results in
6081 unexpected behavior when used within
6082 <filename>conf/local.conf</filename>.
6083 Furthermore, the same operation from within
6084 an image recipe may or may not succeed
6085 depending on the specific situation.
6086 In both these cases, the behavior is contrary
6087 to how most users expect the
6088 <filename>+=</filename> operator to work.
6089 </para></listitem>
6090 </itemizedlist>
6091 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006092 </para>
6093 </glossdef>
6094 </glossentry>
6095
6096 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
6097 <info>
6098 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
6099 </info>
6100 <glossdef>
6101 <para role="glossdeffirst">
6102<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6103 Specifies the list of locales to install into the image
6104 during the root filesystem construction process.
6105 The OpenEmbedded build system automatically splits locale
6106 files, which are used for localization, into separate
6107 packages.
6108 Setting the <filename>IMAGE_LINGUAS</filename> variable
6109 ensures that any locale packages that correspond to packages
6110 already selected for installation into the image are also
6111 installed.
6112 Here is an example:
6113 <literallayout class='monospaced'>
6114 IMAGE_LINGUAS = "pt-br de-de"
6115 </literallayout>
6116 </para>
6117
6118 <para>
6119 In this example, the build system ensures any Brazilian
6120 Portuguese and German locale files that correspond to
6121 packages in the image are installed (i.e.
6122 <filename>*-locale-pt-br</filename>
6123 and <filename>*-locale-de-de</filename> as well as
6124 <filename>*-locale-pt</filename>
6125 and <filename>*-locale-de</filename>, since some software
6126 packages only provide locale files by language and not by
6127 country-specific language).
6128 </para>
6129
6130 <para>
6131 See the
6132 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
6133 variable for information on generating GLIBC locales.
6134 </para>
6135 </glossdef>
6136 </glossentry>
6137
6138 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
6139 <info>
6140 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
6141 </info>
6142 <glossdef>
6143 <para role="glossdeffirst">
6144<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6145 The manifest file for the image.
6146 This file lists all the installed packages that make up
6147 the image.
6148 The file contains package information on a line-per-package
6149 basis as follows:
6150 <literallayout class='monospaced'>
6151 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
6152 </literallayout>
6153 </para>
6154
6155 <para>
6156 The
6157 <link linkend='ref-classes-image'><filename>image</filename></link>
6158 class defines the manifest file as follows:
6159 <literallayout class='monospaced'>
6160 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
6161 </literallayout>
6162 The location is derived using the
6163 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
6164 and
6165 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
6166 variables.
6167 You can find information on how the image
6168 is created in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006169 "<ulink url='&YOCTO_DOCS_OM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
6170 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006171 </para>
6172 </glossdef>
6173 </glossentry>
6174
6175 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
6176 <info>
6177 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
6178 </info>
6179 <glossdef>
6180 <para role="glossdeffirst">
6181<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6182 The name of the output image files minus the extension.
6183 This variable is derived using the
6184 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
6185 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6186 and
6187 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6188 variables:
6189 <literallayout class='monospaced'>
6190 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
6191 </literallayout>
6192 </para>
6193 </glossdef>
6194 </glossentry>
6195
6196 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
6197 <info>
6198 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."
6199 </info>
6200 <glossdef>
6201 <para role="glossdeffirst">
6202<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6203 Defines a multiplier that the build system applies to the initial image
6204 size for cases when the multiplier times the returned disk usage value
6205 for the image is greater than the sum of
6206 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6207 and
6208 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
6209 The result of the multiplier applied to the initial image size creates
6210 free disk space in the image as overhead.
6211 By default, the build process uses a multiplier of 1.3 for this variable.
6212 This default value results in 30% free disk space added to the image when this
6213 method is used to determine the final generated image size.
6214 You should be aware that post install scripts and the package management
6215 system uses disk space inside this overhead area.
6216 Consequently, the multiplier does not produce an image with
6217 all the theoretical free disk space.
6218 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6219 for information on how the build system determines the overall image size.
6220 </para>
6221
6222 <para>
6223 The default 30% free disk space typically gives the image enough room to boot
6224 and allows for basic post installs while still leaving a small amount of
6225 free disk space.
6226 If 30% free space is inadequate, you can increase the default value.
6227 For example, the following setting gives you 50% free space added to the image:
6228 <literallayout class='monospaced'>
6229 IMAGE_OVERHEAD_FACTOR = "1.5"
6230 </literallayout>
6231 </para>
6232
6233 <para>
6234 Alternatively, you can ensure a specific amount of free disk space is added
6235 to the image by using the
6236 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6237 variable.
6238 </para>
6239 </glossdef>
6240 </glossentry>
6241
6242 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
6243 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006244 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 -05006245 </info>
6246 <glossdef>
6247 <para role="glossdeffirst">
6248<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04006249 Defines the package type (i.e. DEB, RPM, IPK, or TAR) used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006250 by the OpenEmbedded build system.
6251 The variable is defined appropriately by the
6252 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
6253 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
6254 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
6255 or
6256 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
6257 class.
6258 <note><title>Warning</title>
6259 The <filename>package_tar</filename> class is broken
6260 and is not supported.
6261 It is recommended that you do not use it.
6262 </note>
6263 </para>
6264
6265 <para>
6266 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006267 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006268 and
6269 <link linkend='ref-classes-image'><filename>image</filename></link>
6270 classes use the <filename>IMAGE_PKGTYPE</filename> for
6271 packaging up images and SDKs.
6272 </para>
6273
6274 <para>
6275 You should not set the <filename>IMAGE_PKGTYPE</filename>
6276 manually.
6277 Rather, the variable is set indirectly through the
6278 appropriate
6279 <link linkend='ref-classes-package'><filename>package_*</filename></link>
6280 class using the
6281 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
6282 variable.
6283 The OpenEmbedded build system uses the first package type
6284 (e.g. DEB, RPM, or IPK) that appears with the variable
6285 <note>
6286 Files using the <filename>.tar</filename> format are
6287 never used as a substitute packaging format for DEB,
6288 RPM, and IPK formatted files for your image or SDK.
6289 </note>
6290 </para>
6291 </glossdef>
6292 </glossentry>
6293
6294 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
6295 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006296 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 -05006297 </info>
6298 <glossdef>
6299 <para role="glossdeffirst">
6300<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6301 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006302 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006303 output files.
6304 You can specify functions separated by semicolons:
6305 <literallayout class='monospaced'>
6306 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6307 </literallayout>
6308 </para>
6309
6310 <para>
6311 If you need to pass the root filesystem path to a command
6312 within the function, you can use
6313 <filename>${IMAGE_ROOTFS}</filename>, which points to
6314 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006315 See the
6316 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6317 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006318 </para>
6319 </glossdef>
6320 </glossentry>
6321
6322 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
6323 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006324 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 -05006325 </info>
6326 <glossdef>
6327 <para role="glossdeffirst">
6328<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6329 Specifies a list of functions to call before the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006330 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006331 output files.
6332 You can specify functions separated by semicolons:
6333 <literallayout class='monospaced'>
6334 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6335 </literallayout>
6336 </para>
6337
6338 <para>
6339 If you need to pass the root filesystem path to a command
6340 within the function, you can use
6341 <filename>${IMAGE_ROOTFS}</filename>, which points to
6342 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006343 See the
6344 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6345 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006346 </para>
6347 </glossdef>
6348 </glossentry>
6349
6350 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
6351 <info>
6352 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
6353 </info>
6354 <glossdef>
6355 <para role="glossdeffirst">
6356<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6357 The location of the root filesystem while it is under
6358 construction (i.e. during the
6359 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
6360 task).
6361 This variable is not configurable.
6362 Do not change it.
6363 </para>
6364 </glossdef>
6365 </glossentry>
6366
6367 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
6368 <info>
6369 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
6370 </info>
6371 <glossdef>
6372 <para role="glossdeffirst">
6373<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6374 Specifies the alignment for the output image file in
6375 Kbytes.
6376 If the size of the image is not a multiple of
6377 this value, then the size is rounded up to the nearest
6378 multiple of the value.
6379 The default value is "1".
6380 See
6381 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
6382 for additional information.
6383 </para>
6384 </glossdef>
6385 </glossentry>
6386
6387 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
6388 <info>
6389 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
6390 </info>
6391 <glossdef>
6392 <para role="glossdeffirst">
6393<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6394 Defines additional free disk space created in the image in Kbytes.
6395 By default, this variable is set to "0".
6396 This free disk space is added to the image after the build system determines
6397 the image size as described in
6398 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
6399 </para>
6400
6401 <para>
6402 This variable is particularly useful when you want to ensure that a
6403 specific amount of free disk space is available on a device after an image
6404 is installed and running.
6405 For example, to be sure 5 Gbytes of free disk space is available, set the
6406 variable as follows:
6407 <literallayout class='monospaced'>
6408 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
6409 </literallayout>
6410 </para>
6411
6412 <para>
6413 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
6414 of extra space with the line:
6415 <literallayout class='monospaced'>
6416 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
6417 </literallayout>
6418 </para>
6419 </glossdef>
6420 </glossentry>
6421
6422 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
6423 <info>
6424 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
6425 </info>
6426 <glossdef>
6427 <para role="glossdeffirst">
6428<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6429 Defines the size in Kbytes for the generated image.
6430 The OpenEmbedded build system determines the final size for the generated
6431 image using an algorithm that takes into account the initial disk space used
6432 for the generated image, a requested size for the image, and requested
6433 additional free disk space to be added to the image.
6434 Programatically, the build system determines the final size of the
6435 generated image as follows:
6436 <literallayout class='monospaced'>
6437 if (image-du * overhead) &lt; rootfs-size:
6438 internal-rootfs-size = rootfs-size + xspace
6439 else:
6440 internal-rootfs-size = (image-du * overhead) + xspace
6441
6442 where:
6443
6444 image-du = Returned value of the du command on
6445 the image.
6446
6447 overhead = IMAGE_OVERHEAD_FACTOR
6448
6449 rootfs-size = IMAGE_ROOTFS_SIZE
6450
6451 internal-rootfs-size = Initial root filesystem
6452 size before any modifications.
6453
6454 xspace = IMAGE_ROOTFS_EXTRA_SPACE
6455 </literallayout>
6456 </para>
6457
6458 <para>
6459 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
6460 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
6461 variables for related information.
6462<!-- In the above example, <filename>overhead</filename> is defined by the
6463 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
6464 variable, <filename>xspace</filename> is defined by the
6465 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6466 variable, and <filename>du</filename> is the results of the disk usage command
6467 on the initially generated image. -->
6468 </para>
6469 </glossdef>
6470 </glossentry>
6471
6472 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
6473 <info>
6474 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
6475 </info>
6476 <glossdef>
6477 <para role="glossdeffirst">
6478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6479 Specifies a dependency from one image type on another.
6480 Here is an example from the
6481 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6482 class:
6483 <literallayout class='monospaced'>
6484 IMAGE_TYPEDEP_live = "ext3"
6485 </literallayout>
6486 </para>
6487
6488 <para>
6489 In the previous example, the variable ensures that when
6490 "live" is listed with the
6491 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6492 variable, the OpenEmbedded build system produces an
6493 <filename>ext3</filename> image first since one of the
6494 components of the live
6495 image is an <filename>ext3</filename>
6496 formatted partition containing the root
6497 filesystem.
6498 </para>
6499 </glossdef>
6500 </glossentry>
6501
6502 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
6503 <info>
6504 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
6505 </info>
6506 <glossdef>
6507 <para role="glossdeffirst">
6508<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6509 Specifies the complete list of supported image types
6510 by default:
6511 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006512 btrfs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006513 cpio
6514 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006515 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006516 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006517 cpio.xz
6518 cramfs
6519 elf
6520 ext2
6521 ext2.bz2
6522 ext2.gz
6523 ext2.lzma
6524 ext3
6525 ext3.gz
6526 ext4
6527 ext4.gz
6528 hdddirect
6529 hddimg
6530 iso
6531 jffs2
6532 jffs2.sum
6533 multiubi
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006534 squashfs
6535 squashfs-lzo
6536 squashfs-xz
6537 tar
6538 tar.bz2
6539 tar.gz
6540 tar.lz4
6541 tar.xz
6542 ubi
6543 ubifs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006544 wic
6545 wic.bz2
6546 wic.gz
6547 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006548 </literallayout>
6549 </para>
6550
6551 <para>
6552 For more information about these types of images, see
6553 <filename>meta/classes/image_types*.bbclass</filename>
6554 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006555 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006556 </para>
6557 </glossdef>
6558 </glossentry>
6559
6560 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
6561 <info>
6562 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
6563 </info>
6564 <glossdef>
6565 <para role="glossdeffirst">
6566<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6567 Helps define the recipe revision for recipes that share
6568 a common <filename>include</filename> file.
6569 You can think of this variable as part of the recipe revision
6570 as set from within an include file.
6571 </para>
6572
6573 <para>
6574 Suppose, for example, you have a set of recipes that
6575 are used across several projects.
6576 And, within each of those recipes the revision
6577 (its <link linkend='var-PR'><filename>PR</filename></link>
6578 value) is set accordingly.
6579 In this case, when the revision of those recipes changes,
6580 the burden is on you to find all those recipes and
6581 be sure that they get changed to reflect the updated
6582 version of the recipe.
6583 In this scenario, it can get complicated when recipes
6584 that are used in many places and provide common functionality
6585 are upgraded to a new revision.
6586 </para>
6587
6588 <para>
6589 A more efficient way of dealing with this situation is
6590 to set the <filename>INC_PR</filename> variable inside
6591 the <filename>include</filename> files that the recipes
6592 share and then expand the <filename>INC_PR</filename>
6593 variable within the recipes to help
6594 define the recipe revision.
6595 </para>
6596
6597 <para>
6598 The following provides an example that shows how to use
6599 the <filename>INC_PR</filename> variable
6600 given a common <filename>include</filename> file that
6601 defines the variable.
6602 Once the variable is defined in the
6603 <filename>include</filename> file, you can use the
6604 variable to set the <filename>PR</filename> values in
6605 each recipe.
6606 You will notice that when you set a recipe's
6607 <filename>PR</filename> you can provide more granular
6608 revisioning by appending values to the
6609 <filename>INC_PR</filename> variable:
6610 <literallayout class='monospaced'>
6611recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
6612recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
6613recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
6614recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
6615 </literallayout>
6616 The first line of the example establishes the baseline
6617 revision to be used for all recipes that use the
6618 <filename>include</filename> file.
6619 The remaining lines in the example are from individual
6620 recipes and show how the <filename>PR</filename> value
6621 is set.
6622 </para>
6623 </glossdef>
6624 </glossentry>
6625
6626 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
6627 <info>
6628 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
6629 </info>
6630 <glossdef>
6631 <para role="glossdeffirst">
6632<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6633 Specifies a space-separated list of license names
6634 (as they would appear in
6635 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
6636 that should be excluded from the build.
6637 Recipes that provide no alternatives to listed incompatible
6638 licenses are not built.
6639 Packages that are individually licensed with the specified
6640 incompatible licenses will be deleted.
6641 </para>
6642
6643 <note>
6644 This functionality is only regularly tested using
6645 the following setting:
6646 <literallayout class='monospaced'>
6647 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
6648 </literallayout>
6649 Although you can use other settings, you might be required
6650 to remove dependencies on or provide alternatives to
6651 components that are required to produce a functional system
6652 image.
6653 </note>
6654 </glossdef>
6655 </glossentry>
6656
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006657 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
6658 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006659 INHERIT[doc] = "Causes the named class or classes to be inherited globally."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006660 </info>
6661 <glossdef>
6662 <para role="glossdeffirst">
6663<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006664 Causes the named class or classes to be inherited globally.
6665 Anonymous functions in the class or classes
6666 are not executed for the
6667 base configuration and in each individual recipe.
6668 The OpenEmbedded build system ignores changes to
6669 <filename>INHERIT</filename> in individual recipes.
6670 </para>
6671
6672 <para>
6673 For more information on <filename>INHERIT</filename>, see
6674 the
6675 "<ulink url="&YOCTO_DOCS_BB_URL;#inherit-configuration-directive"><filename>INHERIT</filename> Configuration Directive</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04006676 section in the Bitbake User Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006677 </para>
6678 </glossdef>
6679 </glossentry>
6680
6681 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
6682 <info>
6683 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6684 </info>
6685 <glossdef>
6686 <para role="glossdeffirst">
6687<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6688 Lists classes that will be inherited at the
6689 distribution level.
6690 It is unlikely that you want to edit this variable.
6691 </para>
6692
6693 <para>
6694 The default value of the variable is set as follows in the
6695 <filename>meta/conf/distro/defaultsetup.conf</filename>
6696 file:
6697 <literallayout class='monospaced'>
6698 INHERIT_DISTRO ?= "debian devshell sstate license"
6699 </literallayout>
6700 </para>
6701 </glossdef>
6702 </glossentry>
6703
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006704 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
6705 <info>
6706 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
6707 </info>
6708 <glossdef>
6709 <para role="glossdeffirst">
6710<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6711 Prevents the default dependencies, namely the C compiler
6712 and standard C library (libc), from being added to
6713 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
6714 This variable is usually used within recipes that do not
6715 require any compilation using the C compiler.
6716 </para>
6717
6718 <para>
6719 Set the variable to "1" to prevent the default dependencies
6720 from being added.
6721 </para>
6722 </glossdef>
6723 </glossentry>
6724
6725 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
6726 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006727 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 -05006728 </info>
6729 <glossdef>
6730 <para role="glossdeffirst">
6731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6732 Prevents the OpenEmbedded build system from splitting
6733 out debug information during packaging.
6734 By default, the build system splits out debugging
6735 information during the
6736 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
6737 task.
6738 For more information on how debug information is split out,
6739 see the
6740 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
6741 variable.
6742 </para>
6743
6744 <para>
6745 To prevent the build system from splitting out
6746 debug information during packaging, set the
6747 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
6748 as follows:
6749 <literallayout class='monospaced'>
6750 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6751 </literallayout>
6752 </para>
6753 </glossdef>
6754 </glossentry>
6755
6756 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
6757 <info>
6758 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
6759 </info>
6760 <glossdef>
6761 <para role="glossdeffirst">
6762<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006763 If set to "1", causes the build to not strip binaries in
6764 resulting packages and prevents the
6765 <filename>-dbg</filename> package from containing the
6766 source files.
6767 </para>
6768
6769 <para>
6770 By default, the OpenEmbedded build system strips
6771 binaries and puts the debugging symbols into
6772 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
6773 Consequently, you should not set
6774 <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
6775 to debug in general.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006776 </para>
6777 </glossdef>
6778 </glossentry>
6779
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006780 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6781 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006782 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 -05006783 </info>
6784 <glossdef>
6785 <para role="glossdeffirst">
6786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6787 Defines the format for the output image of an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006788 RAM filesystem (initramfs), which is used during boot.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006789 Supported formats are the same as those supported by the
6790 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6791 variable.
6792 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006793
6794 <para>
6795 The default value of this variable, which is set in the
6796 <filename>meta/conf/bitbake.conf</filename> configuration
6797 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006798 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006799 is "cpio.gz".
6800 The Linux kernel's initramfs mechanism, as opposed to the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006801 initial RAM filesystem
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006802 <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
6803 mechanism, expects an optionally compressed cpio
6804 archive.
6805 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006806 </glossdef>
6807 </glossentry>
6808
6809 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6810 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006811 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 -05006812 </info>
6813 <glossdef>
6814 <para role="glossdeffirst">
6815<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006816 Specifies the
6817 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
6818 name of an image recipe that is used to build an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006819 RAM filesystem (initramfs) image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006820 In other words, the <filename>INITRAMFS_IMAGE</filename>
6821 variable causes an additional recipe to be built as
6822 a dependency to whatever root filesystem recipe you
6823 might be using (e.g. <filename>core-image-sato</filename>).
6824 The initramfs image recipe you provide should set
6825 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6826 to
6827 <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
6828 </para>
6829
6830 <para>
6831 An initramfs image provides a temporary root filesystem
6832 used for early system initialization (e.g. loading of
6833 modules needed to locate and mount the "real" root
6834 filesystem).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006835 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006836 See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
6837 recipe in the
6838 <link linkend='source-directory'>Source Directory</link>
6839 for an example initramfs recipe.
6840 To select this sample recipe as the one built
6841 to provide the initramfs image,
6842 set <filename>INITRAMFS_IMAGE</filename> to
6843 "core-image-minimal-initramfs".
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006844 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006845 </para>
6846
6847 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006848 You can also find more information by referencing the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006849 <filename>meta-poky/conf/local.conf.sample.extended</filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006850 configuration file in the Source Directory,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006851 the
6852 <link linkend='ref-classes-image'><filename>image</filename></link>
6853 class, and the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006854 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006855 class to see how to use the
6856 <filename>INITRAMFS_IMAGE</filename> variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006857 </para>
6858
6859 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006860 If <filename>INITRAMFS_IMAGE</filename> is empty, which is
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006861 the default, then no initramfs image is built.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006862 </para>
6863
6864 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006865 For more information, you can also see the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006866 <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
6867 variable, which allows the generated image to be bundled
6868 inside the kernel image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006869 Additionally, for information on creating an initramfs
6870 image, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006871 "<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 -05006872 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006873 </para>
6874 </glossdef>
6875 </glossentry>
6876
6877 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6878 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006879 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 -05006880 </info>
6881 <glossdef>
6882 <para role="glossdeffirst">
6883<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6884 Controls whether or not the image recipe specified by
6885 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006886 is run through an extra pass
6887 (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
6888 during kernel compilation in order to build a single binary
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006889 that contains both the kernel image and the initial RAM
6890 filesystem (initramfs) image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006891 This makes use of the
6892 <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
6893 kernel feature.
6894 <note>
6895 Using an extra compilation pass to bundle the initramfs
6896 avoids a circular dependency between the kernel recipe and
6897 the initramfs recipe should the initramfs include kernel
6898 modules.
6899 Should that be the case, the initramfs recipe depends on
6900 the kernel for the kernel modules, and the kernel depends
6901 on the initramfs recipe since the initramfs is bundled
6902 inside the kernel image.
6903 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006904 </para>
6905
6906 <para>
6907 The combined binary is deposited into the
6908 <filename>tmp/deploy</filename> directory, which is part
6909 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006910 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006911 </para>
6912
6913 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006914 Setting the variable to "1" in a configuration file causes the
6915 OpenEmbedded build system to generate a kernel image with the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006916 initramfs specified in <filename>INITRAMFS_IMAGE</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006917 bundled within:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006918 <literallayout class='monospaced'>
6919 INITRAMFS_IMAGE_BUNDLE = "1"
6920 </literallayout>
6921 By default, the
6922 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6923 class sets this variable to a null string as follows:
6924 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006925 INITRAMFS_IMAGE_BUNDLE ?= ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006926 </literallayout>
6927 <note>
6928 You must set the
6929 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6930 a configuration file.
6931 You cannot set the variable in a recipe file.
6932 </note>
6933 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006934 <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 -05006935 file for additional information.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006936 Also, for information on creating an initramfs, see the
6937 "<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 -05006938 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006939 </para>
6940 </glossdef>
6941 </glossentry>
6942
6943 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6944 <info>
6945 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6946 </info>
6947 <glossdef>
6948 <para role="glossdeffirst">
6949<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6950 Indicates list of filesystem images to concatenate and use
6951 as an initial RAM disk (<filename>initrd</filename>).
6952 </para>
6953
6954 <para>
6955 The <filename>INITRD</filename> variable is an optional
6956 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006957 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006958 class.
6959 </para>
6960 </glossdef>
6961 </glossentry>
6962
6963 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6964 <info>
6965 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."
6966 </info>
6967 <glossdef>
6968 <para role="glossdeffirst">
6969<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6970 When building a "live" bootable image (i.e. when
6971 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6972 contains "live"), <filename>INITRD_IMAGE</filename>
6973 specifies the image recipe that should be built
6974 to provide the initial RAM disk image.
6975 The default value is "core-image-minimal-initramfs".
6976 </para>
6977
6978 <para>
6979 See the
6980 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6981 class for more information.
6982 </para>
6983 </glossdef>
6984 </glossentry>
6985
6986 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6987 <info>
6988 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6989 </info>
6990 <glossdef>
6991 <para role="glossdeffirst">
6992<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6993 The filename of the initialization script as installed to
6994 <filename>${sysconfdir}/init.d</filename>.
6995 </para>
6996
6997 <para>
6998 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6999 The variable is mandatory.
7000 </para>
7001 </glossdef>
7002 </glossentry>
7003
7004 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
7005 <info>
7006 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."
7007 </info>
7008 <glossdef>
7009 <para role="glossdeffirst">
7010<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7011 A list of the packages that contain initscripts.
7012 If multiple packages are specified, you need to append the package name
7013 to the other <filename>INITSCRIPT_*</filename> as an override.
7014 </para>
7015
7016 <para>
7017 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
7018 The variable is optional and defaults to the
7019 <link linkend='var-PN'><filename>PN</filename></link> variable.
7020 </para>
7021 </glossdef>
7022 </glossentry>
7023
7024 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
7025 <info>
7026 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."
7027 </info>
7028 <glossdef>
7029 <para role="glossdeffirst">
7030<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7031 Specifies the options to pass to <filename>update-rc.d</filename>.
7032 Here is an example:
7033 <literallayout class='monospaced'>
7034 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
7035 </literallayout>
7036 </para>
7037
7038 <para>
7039 In this example, the script has a runlevel of 99,
7040 starts the script in initlevels 2 and 5, and
7041 stops the script in levels 0, 1 and 6.
7042 </para>
7043
7044 <para>
7045 The variable's default value is "defaults", which is
7046 set in the
7047 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
7048 class.
7049 </para>
7050
7051 <para>
7052 The value in
7053 <filename>INITSCRIPT_PARAMS</filename> is passed through
7054 to the <filename>update-rc.d</filename> command.
7055 For more information on valid parameters, please see the
7056 <filename>update-rc.d</filename> manual page at
7057 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
7058 </para>
7059 </glossdef>
7060 </glossentry>
7061
7062 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
7063 <info>
7064 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
7065 </info>
7066 <glossdef>
7067 <para role="glossdeffirst">
7068<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7069 Specifies the QA checks to skip for a specific package
7070 within a recipe.
7071 For example, to skip the check for symbolic link
7072 <filename>.so</filename> files in the main package of a
7073 recipe, add the following to the recipe.
7074 The package name override must be used, which in this
7075 example is <filename>${PN}</filename>:
7076 <literallayout class='monospaced'>
7077 INSANE_SKIP_${PN} += "dev-so"
7078 </literallayout>
7079 </para>
7080
7081 <para>
7082 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
7083 section for a list of the valid QA checks you can
7084 specify using this variable.
7085 </para>
7086 </glossdef>
7087 </glossentry>
7088
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007089 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
7090 <info>
7091 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
7092 </info>
7093 <glossdef>
7094 <para role="glossdeffirst">
7095<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7096 By default, the <filename>tzdata</filename> recipe packages
7097 an <filename>/etc/timezone</filename> file.
7098 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
7099 variable to "0" at the configuration level to disable this
7100 behavior.
7101 </para>
7102 </glossdef>
7103 </glossentry>
7104
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007105 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
7106 <info>
7107 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
7108 </info>
7109 <glossdef>
7110 <para role="glossdeffirst">
7111<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7112 When the IPK backend is in use and package management
7113 is enabled on the target, you can use this variable to
7114 set up <filename>opkg</filename> in the target image
7115 to point to package feeds on a nominated server.
7116 Once the feed is established, you can perform
7117 installations or upgrades using the package manager
7118 at runtime.
7119 </para>
7120 </glossdef>
7121 </glossentry>
7122
7123<!--
7124 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
7125 <glossdef>
7126 <para>
7127 An environment variable that defines the directory where
7128 post installation hooks are installed for the
7129 post install environment.
7130 This variable is fixed as follows:
7131 <literallayout class='monospaced'>
7132 ${WORKDIR}/intercept_scripts
7133 </literallayout>
7134 </para>
7135
7136 <para>
7137 After installation of a target's root filesystem,
7138 post installation scripts, which are essentially bash scripts,
7139 are all executed just a single time.
7140 Limiting execution of these scripts minimizes installation
7141 time that would be lengthened due to certain packages
7142 triggering redundant operations.
7143 For example, consider the installation of font packages
7144 as a common example.
7145 Without limiting the execution of post installation scripts,
7146 all font directories would be rescanned to create the
7147 cache after each individual font package was installed.
7148 </para>
7149
7150 <para>
7151 Do not edit the <filename>INTERCEPT_DIR</filename>
7152 variable.
7153 </para>
7154 </glossdef>
7155 </glossentry>
7156-->
7157
7158 </glossdiv>
7159
7160<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
7161<!-- </glossdiv>-->
7162
7163 <glossdiv id='var-glossary-k'><title>K</title>
7164
7165 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
7166 <info>
7167 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
7168 </info>
7169 <glossdef>
7170 <para role="glossdeffirst">
7171<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7172 Defines the kernel architecture used when assembling
7173 the configuration.
7174 Architectures supported for this release are:
7175 <literallayout class='monospaced'>
7176 powerpc
7177 i386
7178 x86_64
7179 arm
7180 qemu
7181 mips
7182 </literallayout>
7183 </para>
7184
7185 <para>
7186 You define the <filename>KARCH</filename> variable in the
7187 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7188 </para>
7189 </glossdef>
7190 </glossentry>
7191
7192 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
7193 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007194 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 -05007195 </info>
7196 <glossdef>
7197 <para role="glossdeffirst">
7198<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7199 A regular expression used by the build process to explicitly
7200 identify the kernel branch that is validated, patched,
7201 and configured during a build.
7202 You must set this variable to ensure the exact kernel
7203 branch you want is being used by the build process.
7204 </para>
7205
7206 <para>
7207 Values for this variable are set in the kernel's recipe
7208 file and the kernel's append file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007209 For example, if you are using the
7210 <filename>linux-yocto_4.12</filename> kernel, the kernel
7211 recipe file is the
7212 <filename>meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007213 file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007214 <filename>KBRANCH</filename> is set as follows in that
7215 kernel recipe file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007216 <literallayout class='monospaced'>
7217 KBRANCH ?= "standard/base"
7218 </literallayout>
7219 </para>
7220
7221 <para>
7222 This variable is also used from the kernel's append file
7223 to identify the kernel branch specific to a particular
7224 machine or target hardware.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007225 Continuing with the previous kernel example, the kernel's
7226 append file (i.e.
7227 <filename>linux-yocto_4.12.bbappend</filename>) is located
7228 in the BSP layer for a given machine.
7229 For example, the append file for the Beaglebone,
7230 EdgeRouter, and generic versions of both 32 and 64-bit IA
7231 machines (<filename>meta-yocto-bsp</filename>) is named
7232 <filename>meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend</filename>.
7233 Here are the related statements from that append file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007234 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007235 KBRANCH_genericx86 = "standard/base"
7236 KBRANCH_genericx86-64 = "standard/base"
7237 KBRANCH_edgerouter = "standard/edgerouter"
7238 KBRANCH_beaglebone = "standard/beaglebone"
7239 KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007240 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007241 The <filename>KBRANCH</filename> statements identify
7242 the kernel branch to use when building for each
7243 supported BSP.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007244 </para>
7245 </glossdef>
7246 </glossentry>
7247
7248 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
7249 <info>
7250 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
7251 </info>
7252 <glossdef>
7253 <para role="glossdeffirst">
7254<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7255 When used with the
7256 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
7257 class, specifies an "in-tree" kernel configuration file
7258 for use during a kernel build.
7259 </para>
7260
7261 <para>
7262 Typically, when using a <filename>defconfig</filename> to
7263 configure a kernel during a build, you place the
7264 file in your layer in the same manner as you would
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007265 place patch files and configuration fragment files (i.e.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007266 "out-of-tree").
7267 However, if you want to use a <filename>defconfig</filename>
7268 file that is part of the kernel tree (i.e. "in-tree"),
7269 you can use the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007270 <filename>KBUILD_DEFCONFIG</filename> variable and append
7271 the
7272 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
7273 variable to point to the <filename>defconfig</filename>
7274 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007275 </para>
7276
7277 <para>
7278 To use the variable, set it in the append file for your
7279 kernel recipe using the following form:
7280 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007281 KBUILD_DEFCONFIG_<replaceable>KMACHINE</replaceable> ?= <replaceable>defconfig_file</replaceable>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007282 </literallayout>
7283 Here is an example from a "raspberrypi2"
7284 <filename>KMACHINE</filename> build that uses a
7285 <filename>defconfig</filename> file named
7286 "bcm2709_defconfig":
7287 <literallayout class='monospaced'>
7288 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
7289 </literallayout>
7290 As an alternative, you can use the following within your
7291 append file:
7292 <literallayout class='monospaced'>
7293 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
7294 </literallayout>
7295 For more information on how to use the
7296 <filename>KBUILD_DEFCONFIG</filename> variable, see the
7297 "<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 -04007298 section in the Yocto Project Linux Kernel Development
7299 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007300 </para>
7301 </glossdef>
7302 </glossentry>
7303
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007304 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
7305 <info>
7306 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
7307 </info>
7308 <glossdef>
7309 <para role="glossdeffirst">
7310<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7311 Specifies an alternate kernel image type for creation in
7312 addition to the kernel image type specified using the
7313 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
7314 variable.
7315 </para>
7316 </glossdef>
7317 </glossentry>
7318
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007319 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
7320 <info>
7321 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
7322 </info>
7323 <glossdef>
7324 <para role="glossdeffirst">
7325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7326 A list of classes defining kernel image types that the
7327 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7328 class should inherit.
7329 You typically append this variable to enable extended image
7330 types.
7331 An example is the "kernel-fitimage", which enables
7332 fitImage support and resides in
7333 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
7334 You can register custom kernel image types with the
7335 <filename>kernel</filename> class using this variable.
7336 </para>
7337 </glossdef>
7338 </glossentry>
7339
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007340 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
7341 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007342 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 -05007343 </info>
7344 <glossdef>
7345 <para role="glossdeffirst">
7346<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7347 Specifies the name of the generated Linux kernel device tree
7348 (i.e. the <filename>.dtb</filename>) file.
7349 <note>
7350 Legacy support exists for specifying the full path
7351 to the device tree.
7352 However, providing just the <filename>.dtb</filename>
7353 file is preferred.
7354 </note>
7355 In order to use this variable, you must have the include
7356 files in your kernel recipe:
7357 <literallayout class='monospaced'>
7358 require recipes-kernel/linux/linux-dtb.inc
7359 </literallayout>
7360 or
7361 <literallayout class='monospaced'>
7362 require recipes-kernel/linux/linux-yocto.inc
7363 </literallayout>
7364 </para>
7365 </glossdef>
7366 </glossentry>
7367
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007368 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
7369 <info>
7370 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
7371 </info>
7372 <glossdef>
7373 <para role="glossdeffirst">
7374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7375 Specifies additional <filename>make</filename>
7376 command-line arguments the OpenEmbedded build system
7377 passes on when compiling the kernel.
7378 </para>
7379 </glossdef>
7380 </glossentry>
7381
7382 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
7383 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007384 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 -05007385 </info>
7386 <glossdef>
7387 <para role="glossdeffirst">
7388<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007389 Includes additional kernel metadata.
7390 In the OpenEmbedded build system, the default Board Support
7391 Packages (BSPs)
7392 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007393 is provided through
7394 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007395 and
7396 <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link>
7397 variables.
7398 You can use the <filename>KERNEL_FEATURES</filename>
7399 variable from within the kernel recipe or kernel append
7400 file to further add metadata for all BSPs or specific
7401 BSPs.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007402 </para>
7403
7404 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007405 The metadata you add through this variable includes config
7406 fragments and features descriptions,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007407 which usually includes patches as well as config fragments.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007408 You typically override the
7409 <filename>KERNEL_FEATURES</filename> variable for a
7410 specific machine.
7411 In this way, you can provide validated, but optional,
7412 sets of kernel configurations and features.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007413 </para>
7414
7415 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007416 For example, the following example from the
7417 <filename>linux-yocto-rt_4.12</filename> kernel recipe
7418 adds "netfilter" and "taskstats" features to all BSPs
7419 as well as "virtio" configurations to all QEMU machines.
7420 The last two statements add specific configurations to
7421 targeted machine types:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007422 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007423 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
7424 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
7425 KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
7426 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
7427 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007428 </literallayout></para>
7429 </glossdef>
7430 </glossentry>
7431
7432 <glossentry id='var-KERNEL_IMAGE_BASE_NAME'><glossterm>KERNEL_IMAGE_BASE_NAME</glossterm>
7433 <info>
7434 KERNEL_IMAGE_BASE_NAME[doc] = "The base name of the kernel image."
7435 </info>
7436 <glossdef>
7437 <para role="glossdeffirst">
7438<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7439 The base name of the kernel image.
7440 This variable is set in the
7441 <link linkend='ref-classes-kernel'>kernel</link> class
7442 as follows:
7443 <literallayout class='monospaced'>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007444 KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007445 </literallayout>
7446 </para>
7447
7448 <para>
7449 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007450 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7451 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7452 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7453 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
7454 and
7455 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
7456 variables for additional information.
7457 </para>
7458 </glossdef>
7459 </glossentry>
7460
7461 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
7462 <info>
7463 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
7464 </info>
7465 <glossdef>
7466 <para role="glossdeffirst">
7467<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7468 Specifies the maximum size of the kernel image file in
7469 kilobytes.
7470 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
7471 the size of the kernel image file is checked against
7472 the set value during the
7473 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
7474 task.
7475 The task fails if the kernel image file is larger than
7476 the setting.
7477 </para>
7478
7479 <para>
7480 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
7481 target devices that have a limited amount of space in
7482 which the kernel image must be stored.
7483 </para>
7484
7485 <para>
7486 By default, this variable is not set, which means the
7487 size of the kernel image is not checked.
7488 </para>
7489 </glossdef>
7490 </glossentry>
7491
7492 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
7493 <info>
7494 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
7495 </info>
7496 <glossdef>
7497 <para role="glossdeffirst">
7498<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7499 The type of kernel to build for a device, usually set by the
7500 machine configuration files and defaults to "zImage".
7501 This variable is used
7502 when building the kernel and is passed to <filename>make</filename> as the target to
7503 build.
7504 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007505
7506 <para>
7507 If you want to build an alternate kernel image type, use the
7508 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
7509 variable.
7510 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007511 </glossdef>
7512 </glossentry>
7513
7514 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
7515 <info>
7516 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
7517 </info>
7518 <glossdef>
7519 <para role="glossdeffirst">
7520<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7521 Lists kernel modules that need to be auto-loaded during
7522 boot.
7523 <note>
7524 This variable replaces the deprecated
7525 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
7526 variable.
7527 </note>
7528 </para>
7529
7530 <para>
7531 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
7532 variable anywhere that it can be
7533 recognized by the kernel recipe or by an out-of-tree kernel
7534 module recipe (e.g. a machine configuration file, a
7535 distribution configuration file, an append file for the
7536 recipe, or the recipe itself).
7537 </para>
7538
7539 <para>
7540 Specify it as follows:
7541 <literallayout class='monospaced'>
7542 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
7543 </literallayout>
7544 </para>
7545
7546 <para>
7547 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
7548 the OpenEmbedded build system to populate the
7549 <filename>/etc/modules-load.d/modname.conf</filename>
7550 file with the list of modules to be auto-loaded on boot.
7551 The modules appear one-per-line in the file.
7552 Here is an example of the most common use case:
7553 <literallayout class='monospaced'>
7554 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
7555 </literallayout>
7556 </para>
7557
7558 <para>
7559 For information on how to populate the
7560 <filename>modname.conf</filename> file with
7561 <filename>modprobe.d</filename> syntax lines, see the
7562 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
7563 variable.
7564 </para>
7565 </glossdef>
7566 </glossentry>
7567
7568 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
7569 <info>
7570 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."
7571 </info>
7572 <glossdef>
7573 <para role="glossdeffirst">
7574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7575 Provides a list of modules for which the OpenEmbedded
7576 build system expects to find
7577 <filename>module_conf_</filename><replaceable>modname</replaceable>
7578 values that specify configuration for each of the modules.
7579 For information on how to provide those module
7580 configurations, see the
7581 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
7582 variable.
7583 </para>
7584 </glossdef>
7585 </glossentry>
7586
7587 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
7588 <info>
7589 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)."
7590 </info>
7591 <glossdef>
7592 <para role="glossdeffirst">
7593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7594 The location of the kernel sources.
7595 This variable is set to the value of the
7596 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7597 within the
7598 <link linkend='ref-classes-module'><filename>module</filename></link>
7599 class.
7600 For information on how this variable is used, see the
7601 "<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 -04007602 section in the Yocto Project Linux Kernel Development
7603 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007604 </para>
7605
7606 <para>
7607 To help maximize compatibility with out-of-tree drivers
7608 used to build modules, the OpenEmbedded build system also
7609 recognizes and uses the
7610 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
7611 variable, which is identical to the
7612 <filename>KERNEL_PATH</filename> variable.
7613 Both variables are common variables used by external
7614 Makefiles to point to the kernel source directory.
7615 </para>
7616 </glossdef>
7617 </glossentry>
7618
7619 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
7620 <info>
7621 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)."
7622 </info>
7623 <glossdef>
7624 <para role="glossdeffirst">
7625<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7626 The location of the kernel sources.
7627 This variable is set to the value of the
7628 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7629 within the
7630 <link linkend='ref-classes-module'><filename>module</filename></link>
7631 class.
7632 For information on how this variable is used, see the
7633 "<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 -04007634 section in the Yocto Project Linux Kernel Development
7635 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007636 </para>
7637
7638 <para>
7639 To help maximize compatibility with out-of-tree drivers
7640 used to build modules, the OpenEmbedded build system also
7641 recognizes and uses the
7642 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
7643 variable, which is identical to the
7644 <filename>KERNEL_SRC</filename> variable.
7645 Both variables are common variables used by external
7646 Makefiles to point to the kernel source directory.
7647 </para>
7648 </glossdef>
7649 </glossentry>
7650
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007651 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
7652 <info>
7653 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
7654 </info>
7655 <glossdef>
7656 <para role="glossdeffirst">
7657<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7658 Specifies the version of the kernel as extracted from
7659 <filename>version.h</filename> or
7660 <filename>utsrelease.h</filename> within the kernel sources.
7661 Effects of setting this variable do not take affect until
7662 the kernel has been configured.
7663 Consequently, attempting to refer to this variable in
7664 contexts prior to configuration will not work.
7665 </para>
7666 </glossdef>
7667 </glossentry>
7668
7669 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
7670 <info>
7671 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
7672 </info>
7673 <glossdef>
7674 <para role="glossdeffirst">
7675<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7676 Specifies whether the data referenced through
7677 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
7678 is needed or not.
7679 The <filename>KERNELDEPMODDEPEND</filename> does not
7680 control whether or not that data exists,
7681 but simply whether or not it is used.
7682 If you do not need to use the data, set the
7683 <filename>KERNELDEPMODDEPEND</filename> variable in your
7684 <filename>initramfs</filename> recipe.
7685 Setting the variable there when the data is not needed
7686 avoids a potential dependency loop.
7687 </para>
7688 </glossdef>
7689 </glossentry>
7690
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007691 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
7692 <info>
7693 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."
7694 </info>
7695 <glossdef>
7696 <para role="glossdeffirst">
7697<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7698 Provides a short description of a configuration fragment.
7699 You use this variable in the <filename>.scc</filename>
7700 file that describes a configuration fragment file.
7701 Here is the variable used in a file named
7702 <filename>smp.scc</filename> to describe SMP being
7703 enabled:
7704 <literallayout class='monospaced'>
7705 define KFEATURE_DESCRIPTION "Enable SMP"
7706 </literallayout>
7707 </para>
7708 </glossdef>
7709 </glossentry>
7710
7711 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
7712 <info>
7713 KMACHINE[doc] = "The machine as known by the kernel."
7714 </info>
7715 <glossdef>
7716 <para role="glossdeffirst">
7717<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7718 The machine as known by the kernel.
7719 Sometimes the machine name used by the kernel does not
7720 match the machine name used by the OpenEmbedded build
7721 system.
7722 For example, the machine name that the OpenEmbedded build
7723 system understands as
7724 <filename>core2-32-intel-common</filename> goes by a
7725 different name in the Linux Yocto kernel.
7726 The kernel understands that machine as
7727 <filename>intel-core2-32</filename>.
7728 For cases like these, the <filename>KMACHINE</filename>
7729 variable maps the kernel machine name to the OpenEmbedded
7730 build system machine name.
7731 </para>
7732
7733 <para>
7734 These mappings between different names occur in the
7735 Yocto Linux Kernel's <filename>meta</filename> branch.
7736 As an example take a look in the
7737 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
7738 file:
7739 <literallayout class='monospaced'>
7740 LINUX_VERSION_core2-32-intel-common = "3.19.0"
7741 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
7742 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
7743 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
7744 KMACHINE_core2-32-intel-common = "intel-core2-32"
7745 KBRANCH_core2-32-intel-common = "standard/base"
7746 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
7747 </literallayout>
7748 The <filename>KMACHINE</filename> statement says that
7749 the kernel understands the machine name as
7750 "intel-core2-32".
7751 However, the OpenEmbedded build system understands the
7752 machine as "core2-32-intel-common".
7753 </para>
7754
7755 </glossdef>
7756 </glossentry>
7757
7758 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
7759 <info>
7760 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7761 </info>
7762 <glossdef>
7763 <para role="glossdeffirst">
7764<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7765 Defines the kernel type to be used in assembling the
7766 configuration.
7767 The linux-yocto recipes define "standard", "tiny",
7768 and "preempt-rt" kernel types.
7769 See the
7770 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7771 section in the Yocto Project Linux Kernel Development
7772 Manual for more information on kernel types.
7773 </para>
7774
7775 <para>
7776 You define the <filename>KTYPE</filename> variable in the
7777 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7778 The value you use must match the value used for the
7779 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
7780 value used by the kernel recipe.
7781 </para>
7782 </glossdef>
7783 </glossentry>
7784 </glossdiv>
7785
7786 <glossdiv id='var-glossary-l'><title>L</title>
7787
7788 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
7789 <info>
7790 LABELS[doc] = "Provides a list of targets for automatic configuration."
7791 </info>
7792 <glossdef>
7793 <para role="glossdeffirst">
7794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7795 Provides a list of targets for automatic configuration.
7796 </para>
7797
7798 <para>
7799 See the
7800 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
7801 class for more information on how this variable is used.
7802 </para>
7803 </glossdef>
7804 </glossentry>
7805
7806 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
7807 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007808 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 -05007809 </info>
7810 <glossdef>
7811 <para role="glossdeffirst">
7812<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007813 Lists the layers, separated by spaces, on which this
7814 recipe depends.
7815 Optionally, you can specify a specific layer version for a
7816 dependency by adding it to the end of the layer name.
7817 Here is an example:
7818 <literallayout class='monospaced'>
7819 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
7820 </literallayout>
7821 In this previous example, version 3 of "anotherlayer"
7822 is compared against
7823 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>.
7824 </para>
7825
7826 <para>
7827 An error is produced if any dependency is missing or
7828 the version numbers (if specified) do not match exactly.
7829 This variable is used in the
7830 <filename>conf/layer.conf</filename> file and must be
7831 suffixed with the name of the specific layer (e.g.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007832 <filename>LAYERDEPENDS_mylayer</filename>).
7833 </para>
7834 </glossdef>
7835 </glossentry>
7836
7837 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
7838 <info>
7839 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
7840 </info>
7841 <glossdef>
7842 <para role="glossdeffirst">
7843<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7844 When used inside the <filename>layer.conf</filename> configuration
7845 file, this variable provides the path of the current layer.
7846 This variable is not available outside of <filename>layer.conf</filename>
7847 and references are expanded immediately when parsing of the file completes.
7848 </para>
7849 </glossdef>
7850 </glossentry>
7851
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007852 <glossentry id='var-LAYERRECOMMENDS'><glossterm>LAYERRECOMMENDS</glossterm>
7853 <info>
7854 LAYERRECOMMENDS[doc] = "Lists the layers, separated by spaces, recommended for use with this layer."
7855 </info>
7856 <glossdef>
7857 <para role="glossdeffirst">
7858<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7859 Lists the layers, separated by spaces, recommended for
7860 use with this layer.
7861 </para>
7862
7863 <para>
7864 Optionally, you can specify a specific layer version for a
7865 recommendation by adding the version to the end of the
7866 layer name.
7867 Here is an example:
7868 <literallayout class='monospaced'>
7869 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
7870 </literallayout>
7871 In this previous example, version 3 of "anotherlayer" is
7872 compared against
7873 <filename>LAYERVERSION_anotherlayer</filename>.
7874 </para>
7875
7876 <para>
7877 This variable is used in the
7878 <filename>conf/layer.conf</filename> file and must be
7879 suffixed with the name of the specific layer (e.g.
7880 <filename>LAYERRECOMMENDS_mylayer</filename>).
7881 </para>
7882 </glossdef>
7883 </glossentry>
7884
Brad Bishop316dfdd2018-06-25 12:45:53 -04007885 <glossentry id='var-LAYERSERIES_COMPAT'><glossterm>LAYERSERIES_COMPAT</glossterm>
7886 <info>
7887 LAYERSERIES_COMPAT[doc] = "Lists the OpenEmbedded-Core versions for which a layer is compatible."
7888 </info>
7889 <glossdef>
7890 <para role="glossdeffirst">
7891<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7892 Lists the versions of the
7893 <link linkend='oe-core'>OpenEmbedded-Core</link> for which
7894 a layer is compatible.
7895 Using the <filename>LAYERSERIES_COMPAT</filename> variable
7896 allows the layer maintainer to indicate which combinations
7897 of the layer and OE-Core can be expected to work.
7898 The variable gives the system a way to detect when a layer
7899 has not been tested with new releases of OE-Core (e.g.
7900 the layer is not maintained).
7901 </para>
7902
7903 <para>
7904 To specify the OE-Core versions for which a layer is
7905 compatible, use this variable in your layer's
7906 <filename>conf/layer.conf</filename> configuration file.
7907 For the list, use the Yocto Project
7908 <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Release Name</ulink>
7909 (e.g. &DISTRO_NAME_NO_CAP;).
7910 To specify multiple OE-Core versions for the layer,
7911 use a space-separated list:
7912 <literallayout class='monospaced'>
7913 LAYERSERIES_COMPAT_<replaceable>layer_root_name</replaceable> = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
7914 </literallayout>
7915 <note>
7916 Setting <filename>LAYERSERIES_COMPAT</filename> is
7917 required by the Yocto Project Compatible version 2
7918 standard.
7919 The OpenEmbedded build system produces a warning if
7920 the variable is not set for any given layer.
7921 </note>
7922 </para>
7923
7924 <para>
7925 See the
7926 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-layer'>Creating Your Own Layer</ulink>"
7927 section in the Yocto Project Development Tasks Manual.
7928 </para>
7929 </glossdef>
7930 </glossentry>
7931
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007932 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
7933 <info>
7934 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."
7935 </info>
7936 <glossdef>
7937 <para role="glossdeffirst">
7938<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7939 Optionally specifies the version of a layer as a single number.
7940 You can use this within
7941 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
7942 for another layer in order to depend on a specific version
7943 of the layer.
7944 This variable is used in the <filename>conf/layer.conf</filename> file
7945 and must be suffixed with the name of the specific layer (e.g.
7946 <filename>LAYERVERSION_mylayer</filename>).
7947 </para>
7948 </glossdef>
7949 </glossentry>
7950
7951 <glossentry id='var-LD'><glossterm>LD</glossterm>
7952 <info>
7953 LD[doc] = "Minimal command and arguments to run the linker."
7954 </info>
7955 <glossdef>
7956 <para role="glossdeffirst">
7957<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7958 The minimal command and arguments used to run the
7959 linker.
7960 </para>
7961 </glossdef>
7962 </glossentry>
7963
7964 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
7965 <info>
7966 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
7967 </info>
7968 <glossdef>
7969 <para role="glossdeffirst">
7970<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7971 Specifies the flags to pass to the linker.
7972 This variable is exported to an environment
7973 variable and thus made visible to the software being
7974 built during the compilation step.
7975 </para>
7976
7977 <para>
7978 Default initialization for <filename>LDFLAGS</filename>
7979 varies depending on what is being built:
7980 <itemizedlist>
7981 <listitem><para>
7982 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
7983 when building for the target
7984 </para></listitem>
7985 <listitem><para>
7986 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
7987 when building for the build host (i.e.
7988 <filename>-native</filename>)
7989 </para></listitem>
7990 <listitem><para>
7991 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
7992 when building for an SDK (i.e.
7993 <filename>nativesdk-</filename>)
7994 </para></listitem>
7995 </itemizedlist>
7996 </para>
7997 </glossdef>
7998 </glossentry>
7999
8000 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
8001 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008002 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 -05008003 </info>
8004 <glossdef>
8005 <para role="glossdeffirst">
8006<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8007 Specifies the lead (or primary) compiled library file
Brad Bishop316dfdd2018-06-25 12:45:53 -04008008 (i.e. <filename>.so</filename>) that the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008009 <link linkend='ref-classes-debian'><filename>debian</filename></link>
8010 class applies its naming policy to given a recipe that
8011 packages multiple libraries.
8012 </para>
8013
8014 <para>
8015 This variable works in conjunction with the
8016 <filename>debian</filename> class.
8017 </para>
8018 </glossdef>
8019 </glossentry>
8020
8021 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
8022 <info>
8023 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
8024 </info>
8025 <glossdef>
8026 <para role="glossdeffirst">
8027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8028 Checksums of the license text in the recipe source code.
8029 </para>
8030
8031 <para>
8032 This variable tracks changes in license text of the source
8033 code files.
8034 If the license text is changed, it will trigger a build
8035 failure, which gives the developer an opportunity to review any
8036 license change.
8037 </para>
8038
8039 <para>
8040 This variable must be defined for all recipes (unless
8041 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8042 is set to "CLOSED").</para>
8043 <para>For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008044 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Tracking License Changes</ulink>"
8045 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008046 </para>
8047 </glossdef>
8048 </glossentry>
8049
8050 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
8051 <info>
8052 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
8053 </info>
8054 <glossdef>
8055 <para role="glossdeffirst">
8056<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8057 The list of source licenses for the recipe.
8058 Follow these rules:
8059 <itemizedlist>
8060 <listitem><para>Do not use spaces within individual
8061 license names.</para></listitem>
8062 <listitem><para>Separate license names using
8063 | (pipe) when there is a choice between licenses.
8064 </para></listitem>
8065 <listitem><para>Separate license names using
8066 &amp; (ampersand) when multiple licenses exist
8067 that cover different parts of the source.
8068 </para></listitem>
8069 <listitem><para>You can use spaces between license
8070 names.</para></listitem>
8071 <listitem><para>For standard licenses, use the names
8072 of the files in
8073 <filename>meta/files/common-licenses/</filename>
8074 or the
8075 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
8076 flag names defined in
8077 <filename>meta/conf/licenses.conf</filename>.
8078 </para></listitem>
8079 </itemizedlist>
8080 </para>
8081
8082 <para>
8083 Here are some examples:
8084 <literallayout class='monospaced'>
8085 LICENSE = "LGPLv2.1 | GPLv3"
8086 LICENSE = "MPL-1 &amp; LGPLv2.1"
8087 LICENSE = "GPLv2+"
8088 </literallayout>
8089 The first example is from the recipes for Qt, which the user
8090 may choose to distribute under either the LGPL version
8091 2.1 or GPL version 3.
8092 The second example is from Cairo where two licenses cover
8093 different parts of the source code.
8094 The final example is from <filename>sysstat</filename>,
8095 which presents a single license.
8096 </para>
8097
8098 <para>
8099 You can also specify licenses on a per-package basis to
8100 handle situations where components of the output have
8101 different licenses.
8102 For example, a piece of software whose code is
8103 licensed under GPLv2 but has accompanying documentation
8104 licensed under the GNU Free Documentation License 1.2 could
8105 be specified as follows:
8106 <literallayout class='monospaced'>
8107 LICENSE = "GFDL-1.2 &amp; GPLv2"
8108 LICENSE_${PN} = "GPLv2"
8109 LICENSE_${PN}-doc = "GFDL-1.2"
8110 </literallayout>
8111 </para>
8112 </glossdef>
8113 </glossentry>
8114
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008115 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
8116 <info>
8117 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
8118 </info>
8119 <glossdef>
8120 <para role="glossdeffirst">
8121<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8122 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
8123 to "1" causes the OpenEmbedded build system to create
8124 an extra package (i.e.
8125 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
8126 for each recipe and to add those packages to the
8127 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
8128 </para>
8129
8130 <para>
8131 The <filename>${PN}-lic</filename> package installs a
8132 directory in <filename>/usr/share/licenses</filename>
8133 named <filename>${PN}</filename>, which is the recipe's
8134 base name, and installs files in that directory that
8135 contain license and copyright information (i.e. copies of
8136 the appropriate license files from
8137 <filename>meta/common-licenses</filename> that match the
8138 licenses specified in the
8139 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8140 variable of the recipe metadata and copies of files marked
8141 in
8142 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
8143 as containing license text).
8144 </para>
8145
8146 <para>
8147 For related information on providing license text, see the
8148 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
8149 variable, the
8150 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
8151 variable, and the
8152 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008153 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008154 </para>
8155 </glossdef>
8156 </glossentry>
8157
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008158 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
8159 <info>
8160 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."
8161 </info>
8162 <glossdef>
8163 <para role="glossdeffirst">
8164<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8165 Specifies additional flags for a recipe you must
8166 whitelist through
8167 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
8168 in order to allow the recipe to be built.
8169 When providing multiple flags, separate them with
8170 spaces.
8171 </para>
8172
8173 <para>
8174 This value is independent of
8175 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8176 and is typically used to mark recipes that might
8177 require additional licenses in order to be used in a
8178 commercial product.
8179 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008180 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8181 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008182 </para>
8183 </glossdef>
8184 </glossentry>
8185
8186 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
8187 <info>
8188 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
8189 </info>
8190 <glossdef>
8191 <para role="glossdeffirst">
8192<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8193 Lists license flags that when specified in
8194 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
8195 within a recipe should not prevent that recipe from being
8196 built.
8197 This practice is otherwise known as "whitelisting"
8198 license flags.
8199 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008200 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8201 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008202 </para>
8203 </glossdef>
8204 </glossentry>
8205
8206 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
8207 <info>
8208 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
8209 </info>
8210 <glossdef>
8211 <para role="glossdeffirst">
8212<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8213 Path to additional licenses used during the build.
8214 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
8215 to define the directory that holds common license text used during the build.
8216 The <filename>LICENSE_PATH</filename> variable allows you to extend that
8217 location to other areas that have additional licenses:
8218 <literallayout class='monospaced'>
8219 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
8220 </literallayout>
8221 </para>
8222 </glossdef>
8223 </glossentry>
8224
8225 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
8226 <info>
8227 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8228 </info>
8229 <glossdef>
8230 <para role="glossdeffirst">
8231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8232 Defines the kernel type to be used in assembling the
8233 configuration.
8234 The linux-yocto recipes define "standard", "tiny", and
8235 "preempt-rt" kernel types.
8236 See the
8237 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8238 section in the Yocto Project Linux Kernel Development
8239 Manual for more information on kernel types.
8240 </para>
8241
8242 <para>
8243 If you do not specify a
8244 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
8245 "standard".
8246 Together with
8247 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
8248 the <filename>LINUX_KERNEL_TYPE</filename> variable
8249 defines the search
8250 arguments used by the kernel tools to find the appropriate
8251 description within the kernel
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008252 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008253 with which to build out the sources and configuration.
8254 </para>
8255 </glossdef>
8256 </glossentry>
8257
8258 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
8259 <info>
8260 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."
8261 </info>
8262 <glossdef>
8263 <para role="glossdeffirst">
8264<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8265 The Linux version from <filename>kernel.org</filename>
8266 on which the Linux kernel image being built using the
8267 OpenEmbedded build system is based.
8268 You define this variable in the kernel recipe.
8269 For example, the <filename>linux-yocto-3.4.bb</filename>
8270 kernel recipe found in
8271 <filename>meta/recipes-kernel/linux</filename>
8272 defines the variables as follows:
8273 <literallayout class='monospaced'>
8274 LINUX_VERSION ?= "3.4.24"
8275 </literallayout>
8276 </para>
8277
8278 <para>
8279 The <filename>LINUX_VERSION</filename> variable is used to
8280 define <link linkend='var-PV'><filename>PV</filename></link>
8281 for the recipe:
8282 <literallayout class='monospaced'>
8283 PV = "${LINUX_VERSION}+git${SRCPV}"
8284 </literallayout>
8285 </para>
8286 </glossdef>
8287 </glossentry>
8288
8289 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
8290 <info>
8291 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."
8292 </info>
8293 <glossdef>
8294 <para role="glossdeffirst">
8295<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8296 A string extension compiled into the version
8297 string of the Linux kernel built with the OpenEmbedded
8298 build system.
8299 You define this variable in the kernel recipe.
8300 For example, the linux-yocto kernel recipes all define
8301 the variable as follows:
8302 <literallayout class='monospaced'>
8303 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
8304 </literallayout>
8305 </para>
8306
8307 <para>
8308 Defining this variable essentially sets the
8309 Linux kernel configuration item
8310 <filename>CONFIG_LOCALVERSION</filename>, which is visible
8311 through the <filename>uname</filename> command.
8312 Here is an example that shows the extension assuming it
8313 was set as previously shown:
8314 <literallayout class='monospaced'>
8315 $ uname -r
8316 3.7.0-rc8-custom
8317 </literallayout>
8318 </para>
8319 </glossdef>
8320 </glossentry>
8321
8322 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
8323 <info>
8324 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
8325 </info>
8326 <glossdef>
8327 <para role="glossdeffirst">
8328<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8329 Specifies the directory to which the OpenEmbedded build
8330 system writes overall log files.
8331 The default directory is <filename>${TMPDIR}/log</filename>.
8332 </para>
8333
8334 <para>
8335 For the directory containing logs specific to each task,
8336 see the <link linkend='var-T'><filename>T</filename></link>
8337 variable.
8338 </para>
8339 </glossdef>
8340 </glossentry>
8341
8342 </glossdiv>
8343
8344 <glossdiv id='var-glossary-m'><title>M</title>
8345
8346 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
8347 <info>
8348 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."
8349 </info>
8350 <glossdef>
8351 <para role="glossdeffirst">
8352<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8353 Specifies the target device for which the image is built.
8354 You define <filename>MACHINE</filename> in the
8355 <filename>local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008356 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008357 By default, <filename>MACHINE</filename> is set to
8358 "qemux86", which is an x86-based architecture machine to
8359 be emulated using QEMU:
8360 <literallayout class='monospaced'>
8361 MACHINE ?= "qemux86"
8362 </literallayout>
8363 </para>
8364
8365 <para>
8366 The variable corresponds to a machine configuration file of the
8367 same name, through which machine-specific configurations are set.
8368 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
8369 exists the corresponding <filename>qemux86.conf</filename> machine
8370 configuration file, which can be found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008371 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008372 in <filename>meta/conf/machine</filename>.
8373 </para>
8374
8375 <para>
8376 The list of machines supported by the Yocto Project as
8377 shipped include the following:
8378 <literallayout class='monospaced'>
8379 MACHINE ?= "qemuarm"
8380 MACHINE ?= "qemuarm64"
8381 MACHINE ?= "qemumips"
8382 MACHINE ?= "qemumips64"
8383 MACHINE ?= "qemuppc"
8384 MACHINE ?= "qemux86"
8385 MACHINE ?= "qemux86-64"
8386 MACHINE ?= "genericx86"
8387 MACHINE ?= "genericx86-64"
8388 MACHINE ?= "beaglebone"
8389 MACHINE ?= "mpc8315e-rdb"
8390 MACHINE ?= "edgerouter"
8391 </literallayout>
8392 The last five are Yocto Project reference hardware boards, which
8393 are provided in the <filename>meta-yocto-bsp</filename> layer.
8394 <note>Adding additional Board Support Package (BSP) layers
8395 to your configuration adds new possible settings for
8396 <filename>MACHINE</filename>.
8397 </note>
8398 </para>
8399 </glossdef>
8400 </glossentry>
8401
8402 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
8403 <info>
8404 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
8405 </info>
8406 <glossdef>
8407 <para role="glossdeffirst">
8408<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8409 Specifies the name of the machine-specific architecture.
8410 This variable is set automatically from
8411 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
8412 or
8413 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
8414 You should not hand-edit the
8415 <filename>MACHINE_ARCH</filename> variable.
8416 </para>
8417 </glossdef>
8418 </glossentry>
8419
8420 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
8421 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008422 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 -05008423 </info>
8424 <glossdef>
8425 <para role="glossdeffirst">
8426<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8427 A list of required machine-specific packages to install as part of
8428 the image being built.
8429 The build process depends on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008430 Furthermore, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008431 packages are essential for the machine to boot.
8432 The impact of this variable affects images based on
8433 <filename>packagegroup-core-boot</filename>,
8434 including the <filename>core-image-minimal</filename> image.
8435 </para>
8436
8437 <para>
8438 This variable is similar to the
8439 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
8440 variable with the exception that the image being built has a build
8441 dependency on the variable's list of packages.
8442 In other words, the image will not build if a file in this list is not found.
8443 </para>
8444
8445 <para>
8446 As an example, suppose the machine for which you are building requires
8447 <filename>example-init</filename> to be run during boot to initialize the hardware.
8448 In this case, you would use the following in the machine's
8449 <filename>.conf</filename> configuration file:
8450 <literallayout class='monospaced'>
8451 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
8452 </literallayout>
8453 </para>
8454 </glossdef>
8455 </glossentry>
8456
8457 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
8458 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008459 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 -05008460 </info>
8461 <glossdef>
8462 <para role="glossdeffirst">
8463<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8464 A list of recommended machine-specific packages to install as part of
8465 the image being built.
8466 The build process does not depend on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008467 However, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008468 packages are essential for the machine to boot.
8469 The impact of this variable affects images based on
8470 <filename>packagegroup-core-boot</filename>,
8471 including the <filename>core-image-minimal</filename> image.
8472 </para>
8473
8474 <para>
8475 This variable is similar to the
8476 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
8477 variable with the exception that the image being built does not have a build
8478 dependency on the variable's list of packages.
8479 In other words, the image will still build if a package in this list is not found.
8480 Typically, this variable is used to handle essential kernel modules, whose
8481 functionality may be selected to be built into the kernel rather than as a module,
8482 in which case a package will not be produced.
8483 </para>
8484
8485 <para>
8486 Consider an example where you have a custom kernel where a specific touchscreen
8487 driver is required for the machine to be usable.
8488 However, the driver can be built as a module or
8489 into the kernel depending on the kernel configuration.
8490 If the driver is built as a module, you want it to be installed.
8491 But, when the driver is built into the kernel, you still want the
8492 build to succeed.
8493 This variable sets up a "recommends" relationship so that in the latter case,
8494 the build will not fail due to the missing package.
8495 To accomplish this, assuming the package for the module was called
8496 <filename>kernel-module-ab123</filename>, you would use the
8497 following in the machine's <filename>.conf</filename> configuration
8498 file:
8499 <literallayout class='monospaced'>
8500 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
8501 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008502 <note>
8503 In this example, the
8504 <filename>kernel-module-ab123</filename> recipe
8505 needs to explicitly set its
8506 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
8507 variable to ensure that BitBake does not use the
8508 kernel recipe's
8509 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
8510 variable to satisfy the dependency.
8511 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008512 </para>
8513
8514 <para>
8515 Some examples of these machine essentials are flash, screen, keyboard, mouse,
8516 or touchscreen drivers (depending on the machine).
8517 </para>
8518 </glossdef>
8519 </glossentry>
8520
8521 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
8522 <info>
8523 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."
8524 </info>
8525 <glossdef>
8526 <para role="glossdeffirst">
8527<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8528 A list of machine-specific packages to install as part of the
8529 image being built that are not essential for the machine to boot.
8530 However, the build process for more fully-featured images
8531 depends on the packages being present.
8532 </para>
8533
8534 <para>
8535 This variable affects all images based on
8536 <filename>packagegroup-base</filename>, which does not include the
8537 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8538 images.
8539 </para>
8540
8541 <para>
8542 The variable is similar to the
8543 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
8544 variable with the exception that the image being built has a build
8545 dependency on the variable's list of packages.
8546 In other words, the image will not build if a file in this list is not found.
8547 </para>
8548
8549 <para>
8550 An example is a machine that has WiFi capability but is not
8551 essential for the machine to boot the image.
8552 However, if you are building a more fully-featured image, you want to enable
8553 the WiFi.
8554 The package containing the firmware for the WiFi hardware is always
8555 expected to exist, so it is acceptable for the build process to depend upon
8556 finding the package.
8557 In this case, assuming the package for the firmware was called
8558 <filename>wifidriver-firmware</filename>, you would use the following in the
8559 <filename>.conf</filename> file for the machine:
8560 <literallayout class='monospaced'>
8561 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
8562 </literallayout>
8563 </para>
8564 </glossdef>
8565 </glossentry>
8566
8567 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
8568 <info>
8569 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."
8570 </info>
8571 <glossdef>
8572 <para role="glossdeffirst">
8573<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8574 A list of machine-specific packages to install as part of the
8575 image being built that are not essential for booting the machine.
8576 The image being built has no build dependency on this list of packages.
8577 </para>
8578
8579 <para>
8580 This variable affects only images based on
8581 <filename>packagegroup-base</filename>, which does not include the
8582 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8583 images.
8584 </para>
8585
8586 <para>
8587 This variable is similar to the
8588 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
8589 variable with the exception that the image being built does not have a build
8590 dependency on the variable's list of packages.
8591 In other words, the image will build if a file in this list is not found.
8592 </para>
8593
8594 <para>
8595 An example is a machine that has WiFi capability but is not essential
8596 For the machine to boot the image.
8597 However, if you are building a more fully-featured image, you want to enable
8598 WiFi.
8599 In this case, the package containing the WiFi kernel module will not be produced
8600 if the WiFi driver is built into the kernel, in which case you still want the
8601 build to succeed instead of failing as a result of the package not being found.
8602 To accomplish this, assuming the package for the module was called
8603 <filename>kernel-module-examplewifi</filename>, you would use the
8604 following in the <filename>.conf</filename> file for the machine:
8605 <literallayout class='monospaced'>
8606 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
8607 </literallayout>
8608 </para>
8609 </glossdef>
8610 </glossentry>
8611
8612 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
8613 <info>
8614 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
8615 </info>
8616 <glossdef>
8617 <para role="glossdeffirst">
8618<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8619 Specifies the list of hardware features the
8620 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
8621 of supporting.
8622 For related information on enabling features, see the
8623 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
8624 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
8625 and
8626 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8627 variables.
8628 </para>
8629
8630 <para>
8631 For a list of hardware features supported by the Yocto
8632 Project as shipped, see the
8633 "<link linkend='ref-features-machine'>Machine Features</link>"
8634 section.
8635 </para>
8636 </glossdef>
8637 </glossentry>
8638
8639 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
8640 <info>
8641 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."
8642 </info>
8643 <glossdef>
8644 <para role="glossdeffirst">
8645<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8646 Features to be added to
8647 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
8648 if not also present in
8649 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
8650 </para>
8651
8652 <para>
8653 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
8654 It is not intended to be user-configurable.
8655 It is best to just reference the variable to see which machine features are
8656 being backfilled for all machine configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008657 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008658 more information.
8659 </para>
8660 </glossdef>
8661 </glossentry>
8662
8663 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
8664 <info>
8665 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
8666 </info>
8667 <glossdef>
8668 <para role="glossdeffirst">
8669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8670 Features from
8671 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
8672 that should not be backfilled (i.e. added to
8673 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
8674 during the build.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008675 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008676 more information.
8677 </para>
8678 </glossdef>
8679 </glossentry>
8680
8681 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
8682 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008683 MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008684 </info>
8685 <glossdef>
8686 <para role="glossdeffirst">
8687<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008688 A colon-separated list of overrides that apply to the
8689 current machine.
8690 By default, this list includes the value of
8691 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008692 </para>
8693
8694 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008695 You can extend <filename>MACHINEOVERRIDES</filename>
8696 to add extra overrides that should apply to a machine.
8697 For example, all machines emulated in QEMU (e.g.
8698 <filename>qemuarm</filename>, <filename>qemux86</filename>,
8699 and so forth) include a file named
8700 <filename>meta/conf/machine/include/qemu.inc</filename>
8701 that prepends the following override to
8702 <filename>MACHINEOVERRIDES</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008703 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008704 MACHINEOVERRIDES =. "qemuall:"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008705 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008706 This override allows variables to be overriden for all
8707 machines emulated in QEMU, like in the following example
8708 from the <filename>connman-conf</filename> recipe:
8709 <literallayout class='monospaced'>
8710 SRC_URI_append_qemuall = "file://wired.config \
8711 file://wired-setup \
8712 "
8713 </literallayout>
8714 The underlying mechanism behind
8715 <filename>MACHINEOVERRIDES</filename> is simply that it is
8716 included in the default value of
8717 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008718 </para>
8719 </glossdef>
8720 </glossentry>
8721
8722 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
8723 <info>
8724 MAINTAINER[doc] = "The email address of the distribution maintainer."
8725 </info>
8726 <glossdef>
8727 <para role="glossdeffirst">
8728<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8729 The email address of the distribution maintainer.
8730 </para>
8731 </glossdef>
8732 </glossentry>
8733
8734 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
8735 <info>
8736 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
8737 </info>
8738 <glossdef>
8739 <para role="glossdeffirst">
8740<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8741 Specifies additional paths from which the OpenEmbedded
8742 build system gets source code.
8743 When the build system searches for source code, it first
8744 tries the local download directory.
8745 If that location fails, the build system tries locations
8746 defined by
8747 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
8748 the upstream source, and then locations specified by
8749 <filename>MIRRORS</filename> in that order.
8750 </para>
8751
8752 <para>
8753 Assuming your distribution
8754 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
8755 is "poky", the default value for
8756 <filename>MIRRORS</filename> is defined in the
8757 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008758 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008759 </para>
8760 </glossdef>
8761 </glossentry>
8762
8763 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
8764 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008765 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 -05008766 </info>
8767 <glossdef>
8768 <para role="glossdeffirst">
8769<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8770 Specifies a prefix has been added to
8771 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
Brad Bishop316dfdd2018-06-25 12:45:53 -04008772 of a recipe or package (i.e. a Multilib version).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008773 The variable is used in places where the prefix needs to be
8774 added to or removed from a the name (e.g. the
8775 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
8776 <filename>MLPREFIX</filename> gets set when a prefix has been
8777 added to <filename>PN</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008778 <note>
8779 The "ML" in <filename>MLPREFIX</filename> stands for
8780 "MultiLib".
8781 This representation is historical and comes from
8782 a time when <filename>nativesdk</filename> was a suffix
8783 rather than a prefix on the recipe name.
8784 When <filename>nativesdk</filename> was turned into a
8785 prefix, it made sense to set
8786 <filename>MLPREFIX</filename> for it as well.
8787 </note>
8788 </para>
8789
8790 <para>
8791 To help understand when <filename>MLPREFIX</filename>
8792 might be needed, consider when
8793 <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
8794 is used to provide a <filename>nativesdk</filename> version
8795 of a recipe in addition to the target version.
8796 If that recipe declares build-time dependencies on tasks in
8797 other recipes by using
8798 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
8799 then a dependency on "foo" will automatically get rewritten
8800 to a dependency on "nativesdk-foo".
8801 However, dependencies like the following will not get
8802 rewritten automatically:
8803 <literallayout class='monospaced'>
8804 do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
8805 </literallayout>
8806 If you want such a dependency to also get transformed,
8807 you can do the following:
8808 <literallayout class='monospaced'>
8809 do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
8810 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008811 </para>
8812 </glossdef>
8813 </glossentry>
8814
8815 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
8816 <info>
8817 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."
8818 </info>
8819 <glossdef>
8820 <para role="glossdeffirst">
8821<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8822 This variable has been replaced by the
8823 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
8824 You should replace all occurrences of
8825 <filename>module_autoload</filename> with additions to
8826 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
8827 <literallayout class='monospaced'>
8828 module_autoload_rfcomm = "rfcomm"
8829 </literallayout>
8830 </para>
8831
8832 <para>
8833 should now be replaced with:
8834 <literallayout class='monospaced'>
8835 KERNEL_MODULE_AUTOLOAD += "rfcomm"
8836 </literallayout>
8837 See the
8838 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8839 variable for more information.
8840 </para>
8841 </glossdef>
8842 </glossentry>
8843
8844 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
8845 <info>
8846 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
8847 </info>
8848 <glossdef>
8849 <para role="glossdeffirst">
8850<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8851 Specifies
8852 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
8853 syntax lines for inclusion in the
8854 <filename>/etc/modprobe.d/modname.conf</filename> file.
8855 </para>
8856
8857 <para>
8858 You can use this variable anywhere that it can be
8859 recognized by the kernel recipe or out-of-tree kernel
8860 module recipe (e.g. a machine configuration file, a
8861 distribution configuration file, an append file for the
8862 recipe, or the recipe itself).
8863 If you use this variable, you must also be sure to list
8864 the module name in the
8865 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8866 variable.
8867 </para>
8868
8869 <para>
8870 Here is the general syntax:
8871 <literallayout class='monospaced'>
8872 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
8873 </literallayout>
8874 You must use the kernel module name override.
8875 </para>
8876
8877 <para>
8878 Run <filename>man modprobe.d</filename> in the shell to
8879 find out more information on the exact syntax
8880 you want to provide with <filename>module_conf</filename>.
8881 </para>
8882
8883 <para>
8884 Including <filename>module_conf</filename> causes the
8885 OpenEmbedded build system to populate the
8886 <filename>/etc/modprobe.d/modname.conf</filename>
8887 file with <filename>modprobe.d</filename> syntax lines.
8888 Here is an example that adds the options
8889 <filename>arg1</filename> and <filename>arg2</filename>
8890 to a module named <filename>mymodule</filename>:
8891 <literallayout class='monospaced'>
8892 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
8893 </literallayout>
8894 </para>
8895
8896 <para>
8897 For information on how to specify kernel modules to
8898 auto-load on boot, see the
8899 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8900 variable.
8901 </para>
8902 </glossdef>
8903 </glossentry>
8904
8905 <glossentry id='var-MODULE_IMAGE_BASE_NAME'><glossterm>MODULE_IMAGE_BASE_NAME</glossterm>
8906 <info>
8907 MODULE_IMAGE_BASE_NAME[doc] = "The base name of the kernel modules tarball."
8908 </info>
8909 <glossdef>
8910 <para role="glossdeffirst">
8911<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8912 The base name of the kernel modules tarball.
8913 This variable is set in the
8914 <link linkend='ref-classes-kernel'>kernel</link> class
8915 as follows:
8916 <literallayout class='monospaced'>
8917 MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
8918 </literallayout>
8919 </para>
8920
8921 <para>
8922 See the
8923 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
8924 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
8925 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
8926 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
8927 and
8928 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
8929 variables for additional information.
8930 </para>
8931 </glossdef>
8932 </glossentry>
8933
8934 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
8935 <info>
8936 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."
8937 </info>
8938 <glossdef>
8939 <para role="glossdeffirst">
8940<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8941 Controls creation of the <filename>modules-*.tgz</filename>
8942 file.
8943 Set this variable to "0" to disable creation of this
8944 file, which contains all of the kernel modules resulting
8945 from a kernel build.
8946 </para>
8947 </glossdef>
8948 </glossentry>
8949
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008950<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008951 <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
8952 <info>
8953 MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
8954 </info>
8955 <glossdef>
8956 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008957-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008958<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008959<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008960 Serves the same purpose as
8961 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
8962 but for the "HOST" system, in situations that involve a
8963 "HOST" and a "TARGET" system.
8964 See the
8965 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
8966 variable for more information.
8967 </para>
8968
8969 <para>
8970 The default value of this variable is:
8971 <literallayout class='monospaced'>
8972 ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
8973 </literallayout>
8974 </para>
8975 </glossdef>
8976 </glossentry>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008977-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008978
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008979 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
8980 <info>
8981 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
8982 </info>
8983 <glossdef>
8984 <para role="glossdeffirst">
8985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008986 Uniquely identifies the type of the target system for
8987 which packages are being built.
8988 This variable allows output for different types of target
8989 systems to be put into different subdirectories of the same
8990 output directory.
8991 </para>
8992
8993 <para>
8994 The default value of this variable is:
8995 <literallayout class='monospaced'>
8996 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
8997 </literallayout>
8998 Some classes (e.g.
8999 <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
9000 modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
9001 </para>
9002
9003 <para>
9004 See the
9005 <link linkend='var-STAMP'><filename>STAMP</filename></link>
9006 variable for an example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009007 See the
9008 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
9009 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009010 </para>
9011 </glossdef>
9012 </glossentry>
9013
9014 </glossdiv>
9015
9016 <glossdiv id='var-glossary-n'><title>N</title>
9017
9018 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
9019 <info>
9020 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
9021 </info>
9022 <glossdef>
9023 <para role="glossdeffirst">
9024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9025 A string identifying the host distribution.
9026 Strings consist of the host distributor ID
9027 followed by the release, as reported by the
9028 <filename>lsb_release</filename> tool
9029 or as read from <filename>/etc/lsb-release</filename>.
9030 For example, when running a build on Ubuntu 12.10, the value
9031 is "Ubuntu-12.10".
9032 If this information is unable to be determined, the value
9033 resolves to "Unknown".
9034 </para>
9035
9036 <para>
9037 This variable is used by default to isolate native shared
9038 state packages for different distributions (e.g. to avoid
9039 problems with <filename>glibc</filename> version
9040 incompatibilities).
9041 Additionally, the variable is checked against
9042 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
9043 if that variable is set.
9044 </para>
9045 </glossdef>
9046 </glossentry>
9047
9048 <glossentry id='var-NM'><glossterm>NM</glossterm>
9049 <info>
9050 NM[doc] = "Minimal command and arguments to run 'nm'."
9051 </info>
9052 <glossdef>
9053 <para role="glossdeffirst">
9054<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9055 The minimal command and arguments to run
9056 <filename>nm</filename>.
9057 </para>
9058 </glossdef>
9059 </glossentry>
9060
9061 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
9062 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009063 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 -05009064 </info>
9065 <glossdef>
9066 <para role="glossdeffirst">
9067<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9068 Prevents installation of all "recommended-only" packages.
9069 Recommended-only packages are packages installed only
9070 through the
9071 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9072 variable).
9073 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
9074 to "1" turns this feature on:
9075 <literallayout class='monospaced'>
9076 NO_RECOMMENDATIONS = "1"
9077 </literallayout>
9078 </para>
9079
9080 <para>
9081 You can set this variable globally in your
9082 <filename>local.conf</filename> file or you can attach it to
9083 a specific image recipe by using the recipe name override:
9084 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009085 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009086 </literallayout>
9087 </para>
9088
9089 <para>
9090 It is important to realize that if you choose to not install
9091 packages using this variable and some other packages are
9092 dependent on them (i.e. listed in a recipe's
9093 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9094 variable), the OpenEmbedded build system ignores your
9095 request and will install the packages to avoid dependency
9096 errors.
9097 <note>
9098 Some recommended packages might be required for certain
9099 system functionality, such as kernel modules.
9100 It is up to you to add packages with the
9101 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9102 variable.
9103 </note>
9104 </para>
9105
9106 <para>
9107 Support for this variable exists only when using the
9108 IPK and RPM packaging backend.
9109 Support does not exist for DEB.
9110 </para>
9111
9112 <para>
9113 See the
9114 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9115 and the
9116 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
9117 variables for related information.
9118 </para>
9119 </glossdef>
9120 </glossentry>
9121
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009122 <glossentry id='var-NOAUTOPACKAGEDEBUG'><glossterm>NOAUTOPACKAGEDEBUG</glossterm>
9123 <info>
9124 NOAUTOPACKAGEDEBUG[doc] = "Disables auto package from splitting .debug files."
9125 </info>
9126 <glossdef>
9127 <para role="glossdeffirst">
9128<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9129 Disables auto package from splitting
9130 <filename>.debug</filename> files. If a recipe requires
9131 <filename>FILES_${PN}-dbg</filename> to be set manually,
9132 the <filename>NOAUTOPACKAGEDEBUG</filename> can be defined
9133 allowing you to define the content of the debug package.
9134 For example:
9135 <literallayout class='monospaced'>
9136 NOAUTOPACKAGEDEBUG = "1"
9137 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
9138 FILES_${PN}-dbg = "/usr/src/debug/"
9139 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
9140 </literallayout>
9141 </para>
9142 </glossdef>
9143 </glossentry>
9144
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009145 <glossentry id='var-NOHDD'><glossterm>NOHDD</glossterm>
9146 <info>
9147 NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
9148 </info>
9149 <glossdef>
9150 <para role="glossdeffirst">
9151<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9152 Causes the OpenEmbedded build system to skip building the
9153 <filename>.hddimg</filename> image.
9154 The <filename>NOHDD</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009155 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009156 class.
9157 Set the variable to "1" to prevent the
9158 <filename>.hddimg</filename> image from being built.
9159 </para>
9160 </glossdef>
9161 </glossentry>
9162
9163 <glossentry id='var-NOISO'><glossterm>NOISO</glossterm>
9164 <info>
9165 NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
9166 </info>
9167 <glossdef>
9168 <para role="glossdeffirst">
9169<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9170 Causes the OpenEmbedded build system to skip building the
9171 ISO image.
9172 The <filename>NOISO</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009173 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009174 class.
9175 Set the variable to "1" to prevent the ISO image from
9176 being built.
9177 To enable building an ISO image, set the variable to "0".
9178 </para>
9179 </glossdef>
9180 </glossentry>
9181
9182 </glossdiv>
9183
9184 <glossdiv id='var-glossary-o'><title>O</title>
9185
9186 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
9187 <info>
9188 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
9189 </info>
9190 <glossdef>
9191 <para role="glossdeffirst">
9192<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9193 The minimal command and arguments to run
9194 <filename>objcopy</filename>.
9195 </para>
9196 </glossdef>
9197 </glossentry>
9198
9199 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
9200 <info>
9201 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
9202 </info>
9203 <glossdef>
9204 <para role="glossdeffirst">
9205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9206 The minimal command and arguments to run
9207 <filename>objdump</filename>.
9208 </para>
9209 </glossdef>
9210 </glossentry>
9211
9212 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
9213 <info>
9214 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
9215 </info>
9216 <glossdef>
9217 <para role="glossdeffirst">
9218<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9219 When inheriting the
9220 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
9221 class, this variable
9222 specifies additional arguments passed to the "sed" command.
9223 The sed command alters any paths in configuration scripts
9224 that have been set up during compilation.
9225 Inheriting this class results in all paths in these scripts
9226 being changed to point into the
9227 <filename>sysroots/</filename> directory so that all builds
9228 that use the script will use the correct directories
9229 for the cross compiling layout.
9230 </para>
9231
9232 <para>
9233 See the <filename>meta/classes/binconfig.bbclass</filename>
9234 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009235 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009236 for details on how this class applies these additional
9237 sed command arguments.
9238 For general information on the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009239 <filename>binconfig</filename> class, see the
9240 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009241 section.
9242 </para>
9243 </glossdef>
9244 </glossentry>
9245
9246 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
9247 <info>
9248 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."
9249 </info>
9250 <glossdef>
9251 <para role="glossdeffirst">
9252<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9253 An internal variable used to tell the OpenEmbedded build
9254 system what Python modules to import for every Python
9255 function run by the system.
9256 </para>
9257
9258 <note>
9259 Do not set this variable.
9260 It is for internal use only.
9261 </note>
9262 </glossdef>
9263 </glossentry>
9264
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009265 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
9266 <info>
9267 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."
9268 </info>
9269 <glossdef>
9270 <para role="glossdeffirst">
9271<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9272 The name of the build environment setup script for the
9273 purposes of setting up the environment within the
9274 extensible SDK.
9275 The default value is "oe-init-build-env".
9276 </para>
9277
9278 <para>
9279 If you use a custom script to set up your build
9280 environment, set the
9281 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
9282 name.
9283 </para>
9284 </glossdef>
9285 </glossentry>
9286
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009287 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
9288 <info>
9289 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
9290 </info>
9291 <glossdef>
9292 <para role="glossdeffirst">
9293<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9294 Controls how the OpenEmbedded build system spawns
9295 interactive terminals on the host development system
9296 (e.g. using the BitBake command with the
9297 <filename>-c devshell</filename> command-line option).
9298 For more information, see the
9299 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009300 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009301 </para>
9302
9303 <para>
9304 You can use the following values for the
9305 <filename>OE_TERMINAL</filename> variable:
9306 <literallayout class='monospaced'>
9307 auto
9308 gnome
9309 xfce
9310 rxvt
9311 screen
9312 konsole
9313 none
9314 </literallayout>
9315 </para>
9316 </glossdef>
9317 </glossentry>
9318
9319 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
9320 <info>
9321 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
9322 </info>
9323 <glossdef>
9324 <para role="glossdeffirst">
9325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9326 The directory from which the top-level build environment
9327 setup script is sourced.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009328 The Yocto Project provides a top-level build environment
9329 setup script:
9330 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
9331 When you run this script, the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009332 <filename>OEROOT</filename> variable resolves to the
9333 directory that contains the script.
9334 </para>
9335
9336 <para>
9337 For additional information on how this variable is used,
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009338 see the initialization script.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009339 </para>
9340 </glossdef>
9341 </glossentry>
9342
9343 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
9344 <info>
9345 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
9346 </info>
9347 <glossdef>
9348 <para role="glossdeffirst">
9349<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9350 Declares the oldest version of the Linux kernel that the
9351 produced binaries must support.
9352 This variable is passed into the build of the Embedded
9353 GNU C Library (<filename>glibc</filename>).
9354 </para>
9355
9356 <para>
9357 The default for this variable comes from the
9358 <filename>meta/conf/bitbake.conf</filename> configuration
9359 file.
9360 You can override this default by setting the variable
9361 in a custom distribution configuration file.
9362 </para>
9363 </glossdef>
9364 </glossentry>
9365
9366 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
9367 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009368 OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009369 </info>
9370 <glossdef>
9371 <para role="glossdeffirst">
9372<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009373 A colon-separated list of overrides that currently apply.
9374 Overrides are a BitBake mechanism that allows variables to
9375 be selectively overridden at the end of parsing.
9376 The set of overrides in <filename>OVERRIDES</filename>
9377 represents the "state" during building, which includes
9378 the current recipe being built, the machine for which
9379 it is being built, and so forth.
9380 </para>
9381
9382 <para>
9383 As an example, if the string "an-override" appears as an
9384 element in the colon-separated list in
9385 <filename>OVERRIDES</filename>, then the following
9386 assignment will override <filename>FOO</filename> with the
9387 value "overridden" at the end of parsing:
9388 <literallayout class='monospaced'>
9389 FOO_an-override = "overridden"
9390 </literallayout>
9391 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009392 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009393 section in the BitBake User Manual for more information on
9394 the overrides mechanism.
9395 </para>
9396
9397 <para>
9398 The default value of <filename>OVERRIDES</filename>
9399 includes the values of the
9400 <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
9401 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
9402 and
9403 <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
9404 variables.
9405 Another important override included by default is
9406 <filename>pn-${PN}</filename>.
9407 This override allows variables to be set for a single
9408 recipe within configuration (<filename>.conf</filename>)
9409 files.
9410 Here is an example:
9411 <literallayout class='monospaced'>
9412 FOO_pn-myrecipe = "myrecipe-specific value"
9413 </literallayout>
9414 <note><title>Tip</title>
9415 An easy way to see what overrides apply is to search for
9416 <filename>OVERRIDES</filename> in the output of the
9417 <filename>bitbake -e</filename> command.
9418 See the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009419 "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-debugging-viewing-variable-values'>Viewing Variable Values</ulink>"
9420 section in the Yocto Project Development Tasks
9421 Manual for more information.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009422 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009423 </para>
9424 </glossdef>
9425 </glossentry>
9426 </glossdiv>
9427
9428 <glossdiv id='var-glossary-p'><title>P</title>
9429
9430 <glossentry id='var-P'><glossterm>P</glossterm>
9431 <info>
9432 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
9433 </info>
9434 <glossdef>
9435 <para role="glossdeffirst">
9436<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9437 The recipe name and version.
9438 <filename>P</filename> is comprised of the following:
9439 <literallayout class='monospaced'>
9440 ${PN}-${PV}
9441 </literallayout>
9442 </para>
9443 </glossdef>
9444 </glossentry>
9445
9446 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
9447 <info>
9448 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
9449 </info>
9450 <glossdef>
9451 <para role="glossdeffirst">
9452<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9453 The architecture of the resulting package or packages.
9454 </para>
9455
9456 <para>
9457 By default, the value of this variable is set to
9458 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
9459 when building for the target,
Brad Bishop316dfdd2018-06-25 12:45:53 -04009460 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>
9461 when building for the
9462 build host, and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009463 for the SDK.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009464 <note>
9465 See
9466 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>
9467 for more information.
9468 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009469 However, if your recipe's output packages are built
Brad Bishop316dfdd2018-06-25 12:45:53 -04009470 specific to the target machine rather than generally for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009471 the architecture of the machine, you should set
9472 <filename>PACKAGE_ARCH</filename> to the value of
9473 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
9474 in the recipe as follows:
9475 <literallayout class='monospaced'>
9476 PACKAGE_ARCH = "${MACHINE_ARCH}"
9477 </literallayout>
9478 </para>
9479 </glossdef>
9480 </glossentry>
9481
9482 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
9483 <info>
9484 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
9485 </info>
9486 <glossdef>
9487 <para role="glossdeffirst">
9488<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9489 Specifies a list of architectures compatible with
9490 the target machine.
9491 This variable is set automatically and should not
9492 normally be hand-edited.
9493 Entries are separated using spaces and listed in order
9494 of priority.
9495 The default value for
9496 <filename>PACKAGE_ARCHS</filename> is "all any noarch
9497 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
9498 </para>
9499 </glossdef>
9500 </glossentry>
9501
9502 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
9503 <info>
9504 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."
9505 </info>
9506 <glossdef>
9507 <para role="glossdeffirst">
9508<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9509 Enables easily adding packages to
9510 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
9511 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
9512 so that those added packages can pick up files that would normally be
9513 included in the default package.
9514 </para>
9515 </glossdef>
9516 </glossentry>
9517
9518 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
9519 <info>
9520 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."
9521 </info>
9522 <glossdef>
9523 <para role="glossdeffirst">
9524<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9525 This variable, which is set in the
9526 <filename>local.conf</filename> configuration file found in
9527 the <filename>conf</filename> folder of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009528 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009529 specifies the package manager the OpenEmbedded build system
9530 uses when packaging data.
9531 </para>
9532
9533 <para>
9534 You can provide one or more of the following arguments for
9535 the variable:
9536 <literallayout class='monospaced'>
9537 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
9538 </literallayout>
9539 <note><title>Warning</title>
9540 While it is a legal option, the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009541 <filename>package_tar</filename> class has limited
9542 functionality due to no support for package
9543 dependencies by that backend.
9544 Therefore, it is recommended that you do not use it.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009545 </note>
9546 The build system uses only the first argument in the list
9547 as the package manager when creating your image or SDK.
9548 However, packages will be created using any additional
9549 packaging classes you specify.
9550 For example, if you use the following in your
9551 <filename>local.conf</filename> file:
9552 <literallayout class='monospaced'>
9553 PACKAGE_CLASSES ?= "package_ipk"
9554 </literallayout>
9555 The OpenEmbedded build system uses the IPK package manager
9556 to create your image or SDK.
9557 </para>
9558
9559 <para>
9560 For information on packaging and build performance effects
9561 as a result of the package manager in use, see the
9562 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
9563 section.
9564 </para>
9565 </glossdef>
9566 </glossentry>
9567
9568 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
9569 <info>
9570 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)."
9571 </info>
9572 <glossdef>
9573 <para role="glossdeffirst">
9574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9575 Determines how to split up the binary and debug information
9576 when creating <filename>*-dbg</filename> packages to be
9577 used with the GNU Project Debugger (GDB).
9578 </para>
9579
9580 <para>
9581 With the
9582 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
9583 you can control where debug information, which can include
9584 or exclude source files, is stored:
9585 <itemizedlist>
9586 <listitem><para>
9587 ".debug": Debug symbol files are placed next
9588 to the binary in a <filename>.debug</filename>
9589 directory on the target.
9590 For example, if a binary is installed into
9591 <filename>/bin</filename>, the corresponding debug
9592 symbol files are installed in
9593 <filename>/bin/.debug</filename>.
9594 Source files are placed in
9595 <filename>/usr/src/debug</filename>.
9596 This is the default behavior.
9597 </para></listitem>
9598 <listitem><para>
9599 "debug-file-directory": Debug symbol files are
9600 placed under <filename>/usr/lib/debug</filename>
9601 on the target, and separated by the path from where
9602 the binary is installed.
9603 For example, if a binary is installed in
9604 <filename>/bin</filename>, the corresponding debug
9605 symbols are installed in
9606 <filename>/usr/lib/debug/bin</filename>.
9607 Source files are placed in
9608 <filename>/usr/src/debug</filename>.
9609 </para></listitem>
9610 <listitem><para>
9611 "debug-without-src": The same behavior as
9612 ".debug" previously described with the exception
9613 that no source files are installed.
9614 </para></listitem>.
9615 </itemizedlist>
9616 </para>
9617
9618 <para>
9619 You can find out more about debugging using GDB by reading
9620 the
9621 "<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 -05009622 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009623 </para>
9624 </glossdef>
9625 </glossentry>
9626
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009627 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
9628 <info>
9629 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
9630 </info>
9631 <glossdef>
9632 <para role="glossdeffirst">
9633<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9634 Prevents specific packages from being installed when
9635 you are installing complementary packages.
9636 </para>
9637
9638 <para>
9639 You might find that you want to prevent installing certain
9640 packages when you are installing complementary packages.
9641 For example, if you are using
9642 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
9643 to install <filename>dev-pkgs</filename>, you might not want
9644 to install all packages from a particular multilib.
9645 If you find yourself in this situation, you can use the
9646 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
9647 to specify regular expressions to match the packages you
9648 want to exclude.
9649 </para>
9650 </glossdef>
9651 </glossentry>
9652
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009653 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
9654 <info>
9655 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
9656 </info>
9657 <glossdef>
9658 <para role="glossdeffirst">
9659<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9660 Lists packages that should not be installed into an image.
9661 For example:
9662 <literallayout class='monospaced'>
9663 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
9664 </literallayout>
9665 </para>
9666
9667 <para>
9668 You can set this variable globally in your
9669 <filename>local.conf</filename> file or you can attach it to
9670 a specific image recipe by using the recipe name override:
9671 <literallayout class='monospaced'>
9672 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
9673 </literallayout>
9674 </para>
9675
9676 <para>
9677 If you choose to not install
9678 a package using this variable and some other package is
9679 dependent on it (i.e. listed in a recipe's
9680 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9681 variable), the OpenEmbedded build system generates a fatal
9682 installation error.
9683 Because the build system halts the process with a fatal
9684 error, you can use the variable with an iterative
9685 development process to remove specific components from a
9686 system.
9687 </para>
9688
9689 <para>
9690 Support for this variable exists only when using the
9691 IPK and RPM packaging backend.
9692 Support does not exist for DEB.
9693 </para>
9694
9695 <para>
9696 See the
9697 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
9698 and the
9699 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9700 variables for related information.
9701 </para>
9702 </glossdef>
9703 </glossentry>
9704
9705 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
9706 <info>
9707 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."
9708 </info>
9709 <glossdef>
9710 <para role="glossdeffirst">
9711<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9712 Specifies the list of architectures compatible with the device CPU.
9713 This variable is useful when you build for several different devices that use
9714 miscellaneous processors such as XScale and ARM926-EJS.
9715 </para>
9716 </glossdef>
9717 </glossentry>
9718
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009719 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
9720 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009721 PACKAGE_FEED_ARCHS[doc] = "Optionally specifies user-defined package architectures when constructing package feed URIs."
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009722 </info>
9723 <glossdef>
9724 <para role="glossdeffirst">
9725<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04009726 Optionally specifies the package architectures used as
9727 part of the package feed URIs during the build.
9728 When used, the <filename>PACKAGE_FEED_ARCHS</filename>
9729 variable is appended to the final package feed URI, which
9730 is constructed using the
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009731 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9732 and
9733 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
9734 variables.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009735 <note><title>Tip</title>
9736 You can use the <filename>PACKAGE_FEEDS_ARCHS</filename>
9737 variable to whitelist specific package architectures.
9738 If you do not need to whitelist specific architectures,
9739 which is a common case, you can omit this variable.
9740 Omitting the variable results in all available
9741 architectures for the current machine being included
9742 into remote package feeds.
9743 </note>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009744 </para>
9745
9746 <para>
9747 Consider the following example where the
9748 <filename>PACKAGE_FEED_URIS</filename>,
9749 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9750 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9751 defined in your <filename>local.conf</filename> file:
9752 <literallayout class='monospaced'>
9753 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9754 https://example.com/packagerepos/updates"
9755 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9756 PACKAGE_FEED_ARCHS = "all core2-64"
9757 </literallayout>
9758 Given these settings, the resulting package feeds are
9759 as follows:
9760 <literallayout class='monospaced'>
9761 https://example.com/packagerepos/release/rpm/all
9762 https://example.com/packagerepos/release/rpm/core2-64
9763 https://example.com/packagerepos/release/rpm-dev/all
9764 https://example.com/packagerepos/release/rpm-dev/core2-64
9765 https://example.com/packagerepos/updates/rpm/all
9766 https://example.com/packagerepos/updates/rpm/core2-64
9767 https://example.com/packagerepos/updates/rpm-dev/all
9768 https://example.com/packagerepos/updates/rpm-dev/core2-64
9769 </literallayout>
9770 </para>
9771 </glossdef>
9772 </glossentry>
9773
9774 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
9775 <info>
9776 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
9777 </info>
9778 <glossdef>
9779 <para role="glossdeffirst">
9780<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9781 Specifies the base path used when constructing package feed
9782 URIs.
9783 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
9784 makes up the middle portion of a package feed URI used
9785 by the OpenEmbedded build system.
9786 The base path lies between the
9787 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9788 and
9789 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9790 variables.
9791 </para>
9792
9793 <para>
9794 Consider the following example where the
9795 <filename>PACKAGE_FEED_URIS</filename>,
9796 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9797 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9798 defined in your <filename>local.conf</filename> file:
9799 <literallayout class='monospaced'>
9800 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9801 https://example.com/packagerepos/updates"
9802 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9803 PACKAGE_FEED_ARCHS = "all core2-64"
9804 </literallayout>
9805 Given these settings, the resulting package feeds are
9806 as follows:
9807 <literallayout class='monospaced'>
9808 https://example.com/packagerepos/release/rpm/all
9809 https://example.com/packagerepos/release/rpm/core2-64
9810 https://example.com/packagerepos/release/rpm-dev/all
9811 https://example.com/packagerepos/release/rpm-dev/core2-64
9812 https://example.com/packagerepos/updates/rpm/all
9813 https://example.com/packagerepos/updates/rpm/core2-64
9814 https://example.com/packagerepos/updates/rpm-dev/all
9815 https://example.com/packagerepos/updates/rpm-dev/core2-64
9816 </literallayout>
9817 </para>
9818 </glossdef>
9819 </glossentry>
9820
9821 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
9822 <info>
9823 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
9824 </info>
9825 <glossdef>
9826 <para role="glossdeffirst">
9827<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9828 Specifies the front portion of the package feed URI
9829 used by the OpenEmbedded build system.
9830 Each final package feed URI is comprised of
9831 <filename>PACKAGE_FEED_URIS</filename>,
9832 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
9833 and
9834 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9835 variables.
9836 </para>
9837
9838 <para>
9839 Consider the following example where the
9840 <filename>PACKAGE_FEED_URIS</filename>,
9841 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9842 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9843 defined in your <filename>local.conf</filename> file:
9844 <literallayout class='monospaced'>
9845 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9846 https://example.com/packagerepos/updates"
9847 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9848 PACKAGE_FEED_ARCHS = "all core2-64"
9849 </literallayout>
9850 Given these settings, the resulting package feeds are
9851 as follows:
9852 <literallayout class='monospaced'>
9853 https://example.com/packagerepos/release/rpm/all
9854 https://example.com/packagerepos/release/rpm/core2-64
9855 https://example.com/packagerepos/release/rpm-dev/all
9856 https://example.com/packagerepos/release/rpm-dev/core2-64
9857 https://example.com/packagerepos/updates/rpm/all
9858 https://example.com/packagerepos/updates/rpm/core2-64
9859 https://example.com/packagerepos/updates/rpm-dev/all
9860 https://example.com/packagerepos/updates/rpm-dev/core2-64
9861 </literallayout>
9862 </para>
9863 </glossdef>
9864 </glossentry>
9865
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009866 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
9867 <info>
9868 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
9869 </info>
9870 <glossdef>
9871 <para role="glossdeffirst">
9872<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9873 The <filename>PACKAGE_GROUP</filename> variable has been
9874 renamed to
9875 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
9876 See the variable description for
9877 <filename>FEATURE_PACKAGES</filename> for information.
9878 </para>
9879
9880 <para>
9881 If if you use the <filename>PACKAGE_GROUP</filename>
9882 variable, the OpenEmbedded build system issues a warning
9883 message.
9884 </para>
9885 </glossdef>
9886 </glossentry>
9887
9888 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
9889 <info>
9890 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."
9891 </info>
9892 <glossdef>
9893 <para role="glossdeffirst">
9894<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9895 The final list of packages passed to the package manager
9896 for installation into the image.
9897 </para>
9898
9899 <para>
9900 Because the package manager controls actual installation
9901 of all packages, the list of packages passed using
9902 <filename>PACKAGE_INSTALL</filename> is not the final list
9903 of packages that are actually installed.
9904 This variable is internal to the image construction
9905 code.
9906 Consequently, in general, you should use the
9907 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9908 variable to specify packages for installation.
9909 The exception to this is when working with
9910 the
9911 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
9912 image.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05009913 When working with an initial RAM filesystem (initramfs)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009914 image, use the <filename>PACKAGE_INSTALL</filename>
9915 variable.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05009916 For information on creating an initramfs, see the
9917 "<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 -05009918 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009919 </para>
9920 </glossdef>
9921 </glossentry>
9922
9923 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
9924 <info>
9925 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."
9926 </info>
9927 <glossdef>
9928 <para role="glossdeffirst">
9929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9930 Specifies a list of packages the OpenEmbedded build
9931 system attempts to install when creating an image.
9932 If a listed package fails to install, the build system
9933 does not generate an error.
9934 This variable is generally not user-defined.
9935 </para>
9936 </glossdef>
9937 </glossentry>
9938
9939 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
9940 <info>
9941 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."
9942 </info>
9943 <glossdef>
9944 <para role="glossdeffirst">
9945<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9946 Specifies a list of functions run to pre-process the
9947 <link linkend='var-PKGD'><filename>PKGD</filename></link>
9948 directory prior to splitting the files out to individual
9949 packages.
9950 </para>
9951 </glossdef>
9952 </glossentry>
9953
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009954 <glossentry id='var-PACKAGE_WRITE_DEPS'><glossterm>PACKAGE_WRITE_DEPS</glossterm>
9955 <info>
9956 PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools."
9957 </info>
9958 <glossdef>
9959 <para role="glossdeffirst">
9960<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9961 Specifies a list of dependencies for post-installation and
9962 pre-installation scripts on native/cross tools.
9963 If your post-installation or pre-installation script can
9964 execute at rootfs creation time rather than on the
9965 target but depends on a native tool in order to execute,
9966 you need to list the tools in
Brad Bishopd5ae7d92018-06-14 09:52:03 -07009967 <filename>PACKAGE_WRITE_DEPS</filename>.
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009968 </para>
9969
9970 <para>
9971 For information on running post-installation scripts, see
9972 the
9973 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-post-installation-scripts'>Post-Installation Scripts</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009974 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009975 </para>
9976 </glossdef>
9977 </glossentry>
9978
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009979 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
9980 <info>
9981 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
9982 </info>
9983 <glossdef>
9984 <para role="glossdeffirst">
9985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9986 This variable provides a means of enabling or disabling
9987 features of a recipe on a per-recipe basis.
9988 <filename>PACKAGECONFIG</filename> blocks are defined
9989 in recipes when you specify features and then arguments
9990 that define feature behaviors.
9991 Here is the basic block structure:
9992 <literallayout class='monospaced'>
9993 PACKAGECONFIG ??= "f1 f2 f3 ..."
9994 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1"
9995 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2"
9996 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3"
9997 </literallayout>
9998 </para>
9999
10000 <para>
10001 The <filename>PACKAGECONFIG</filename>
10002 variable itself specifies a space-separated list of the
10003 features to enable.
10004 Following the features, you can determine the behavior of
10005 each feature by providing up to four order-dependent
10006 arguments, which are separated by commas.
10007 You can omit any argument you like but must retain the
10008 separating commas.
10009 The order is important and specifies the following:
10010 <orderedlist>
10011 <listitem><para>Extra arguments
10012 that should be added to the configure script
10013 argument list
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010014 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
10015 or
10016 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010017 if the feature is enabled.</para></listitem>
10018 <listitem><para>Extra arguments
10019 that should be added to <filename>EXTRA_OECONF</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010020 or <filename>PACKAGECONFIG_CONFARGS</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010021 if the feature is disabled.
10022 </para></listitem>
10023 <listitem><para>Additional build dependencies
10024 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
10025 that should be added if the feature is enabled.
10026 </para></listitem>
10027 <listitem><para>Additional runtime dependencies
10028 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10029 that should be added if the feature is enabled.
10030 </para></listitem>
10031 </orderedlist>
10032 </para>
10033
10034 <para>
10035 Consider the following
10036 <filename>PACKAGECONFIG</filename> block taken from the
10037 <filename>librsvg</filename> recipe.
10038 In this example the feature is <filename>croco</filename>,
10039 which has three arguments that determine the feature's
10040 behavior.
10041 <literallayout class='monospaced'>
10042 PACKAGECONFIG ??= "croco"
10043 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
10044 </literallayout>
10045 The <filename>--with-croco</filename> and
10046 <filename>libcroco</filename> arguments apply only if
10047 the feature is enabled.
10048 In this case, <filename>--with-croco</filename> is
10049 added to the configure script argument list and
10050 <filename>libcroco</filename> is added to
Brad Bishop316dfdd2018-06-25 12:45:53 -040010051 <filename>DEPENDS</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010052 On the other hand, if the feature is disabled say through
10053 a <filename>.bbappend</filename> file in another layer, then
10054 the second argument <filename>--without-croco</filename> is
10055 added to the configure script rather than
10056 <filename>--with-croco</filename>.
10057 </para>
10058
10059 <para>
10060 The basic <filename>PACKAGECONFIG</filename> structure
10061 previously described holds true regardless of whether you
10062 are creating a block or changing a block.
10063 When creating a block, use the structure inside your
10064 recipe.
10065 </para>
10066
10067 <para>
10068 If you want to change an existing
10069 <filename>PACKAGECONFIG</filename> block, you can do so
10070 one of two ways:
10071 <itemizedlist>
10072 <listitem><para><emphasis>Append file:</emphasis>
10073 Create an append file named
10074 <replaceable>recipename</replaceable><filename>.bbappend</filename>
10075 in your layer and override the value of
10076 <filename>PACKAGECONFIG</filename>.
10077 You can either completely override the variable:
10078 <literallayout class='monospaced'>
10079 PACKAGECONFIG="f4 f5"
10080 </literallayout>
10081 Or, you can just append the variable:
10082 <literallayout class='monospaced'>
10083 PACKAGECONFIG_append = " f4"
10084 </literallayout></para></listitem>
10085 <listitem><para><emphasis>Configuration file:</emphasis>
10086 This method is identical to changing the block
10087 through an append file except you edit your
10088 <filename>local.conf</filename> or
10089 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
10090 As with append files previously described,
10091 you can either completely override the variable:
10092 <literallayout class='monospaced'>
10093 PACKAGECONFIG_pn-<replaceable>recipename</replaceable>="f4 f5"
10094 </literallayout>
10095 Or, you can just amend the variable:
10096 <literallayout class='monospaced'>
10097 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
10098 </literallayout></para></listitem>
10099 </itemizedlist>
10100 </para>
10101 </glossdef>
10102 </glossentry>
10103
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010104 <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
10105 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010106 PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from the PACKAGECONFIG setting."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010107 </info>
10108 <glossdef>
10109 <para role="glossdeffirst">
10110<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10111 A space-separated list of configuration options generated
10112 from the
10113 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
10114 setting.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010115 </para>
10116
10117 <para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010118 Classes such as
10119 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
10120 and
10121 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
10122 use <filename>PACKAGECONFIG_CONFARGS</filename> to pass
Brad Bishop316dfdd2018-06-25 12:45:53 -040010123 <filename>PACKAGECONFIG</filename> options to
10124 <filename>configure</filename> and
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010125 <filename>cmake</filename>, respectively.
10126 If you are using
10127 <filename>PACKAGECONFIG</filename> but not a class that
10128 handles the <filename>do_configure</filename> task, then
10129 you need to use
10130 <filename>PACKAGECONFIG_CONFARGS</filename> appropriately.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010131 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010132 </glossdef>
10133 </glossentry>
10134
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010135 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
10136 <info>
10137 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
10138 </info>
10139 <glossdef>
10140 <para role="glossdeffirst">
10141<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10142 For recipes inheriting the
10143 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
10144 class, setting
10145 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
10146 "1" specifies that the normal complementary packages
10147 (i.e. <filename>-dev</filename>,
10148 <filename>-dbg</filename>, and so forth) should not be
10149 automatically created by the
10150 <filename>packagegroup</filename> recipe, which is the
10151 default behavior.
10152 </para>
10153 </glossdef>
10154 </glossentry>
10155
10156 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
10157 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010158 PACKAGES[doc] = "The list of packages the recipe creates."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010159 </info>
10160 <glossdef>
10161 <para role="glossdeffirst">
10162<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010163 The list of packages the recipe creates.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010164 The default value is the following:
10165 <literallayout class='monospaced'>
10166 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
10167 </literallayout>
10168 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010169
10170 <para>
10171 During packaging, the
10172 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
10173 task goes through <filename>PACKAGES</filename> and uses
10174 the
10175 <link linkend='var-FILES'><filename>FILES</filename></link>
10176 variable corresponding to each package to assign files to
10177 the package.
10178 If a file matches the <filename>FILES</filename> variable
10179 for more than one package in <filename>PACKAGES</filename>,
10180 it will be assigned to the earliest (leftmost) package.
10181 </para>
10182
10183 <para>
10184 Packages in the variable's list that are empty (i.e. where
10185 none of the patterns in
10186 <filename>FILES_</filename><replaceable>pkg</replaceable>
10187 match any files installed by the
10188 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10189 task) are not generated, unless generation is forced through
10190 the
10191 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
10192 variable.
10193 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010194 </glossdef>
10195 </glossentry>
10196
10197 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
10198 <info>
10199 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
10200 </info>
10201 <glossdef>
10202 <para role="glossdeffirst">
10203<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10204 A promise that your recipe satisfies runtime dependencies
10205 for optional modules that are found in other recipes.
10206 <filename>PACKAGES_DYNAMIC</filename>
10207 does not actually satisfy the dependencies, it only states that
10208 they should be satisfied.
10209 For example, if a hard, runtime dependency
10210 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10211 of another package is satisfied
10212 at build time through the <filename>PACKAGES_DYNAMIC</filename>
10213 variable, but a package with the module name is never actually
10214 produced, then the other package will be broken.
10215 Thus, if you attempt to include that package in an image,
10216 you will get a dependency failure from the packaging system
10217 during the
10218 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
10219 task.
10220 </para>
10221
10222 <para>
10223 Typically, if there is a chance that such a situation can
10224 occur and the package that is not created is valid
10225 without the dependency being satisfied, then you should use
10226 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
10227 (a soft runtime dependency) instead of
10228 <filename>RDEPENDS</filename>.
10229 </para>
10230
10231 <para>
10232 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
10233 variable when you are splitting packages, see the
10234 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010235 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010236 </para>
10237 </glossdef>
10238 </glossentry>
10239
10240 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
10241 <info>
10242 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
10243 </info>
10244 <glossdef>
10245 <para role="glossdeffirst">
10246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10247 Specifies a list of functions run to perform additional
10248 splitting of files into individual packages.
10249 Recipes can either prepend to this variable or prepend
10250 to the <filename>populate_packages</filename> function
10251 in order to perform additional package splitting.
10252 In either case, the function should set
10253 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
10254 <link linkend='var-FILES'><filename>FILES</filename></link>,
10255 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10256 and other packaging variables appropriately in order to
10257 perform the desired splitting.
10258 </para>
10259 </glossdef>
10260 </glossentry>
10261
10262 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
10263 <info>
10264 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."
10265 </info>
10266 <glossdef>
10267 <para role="glossdeffirst">
10268<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10269 Extra options passed to the <filename>make</filename>
10270 command during the
10271 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
10272 task in order to specify parallel compilation on the local
10273 build host.
10274 This variable is usually in the form "-j <replaceable>x</replaceable>",
10275 where <replaceable>x</replaceable> represents the maximum
10276 number of parallel threads <filename>make</filename> can
10277 run.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010278 <note><title>Caution</title>
10279 In order for <filename>PARALLEL_MAKE</filename> to be
10280 effective, <filename>make</filename> must be called
10281 with
10282 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10283 An easy way to ensure this is to use the
10284 <filename>oe_runmake</filename> function.
10285 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010286 </para>
10287
10288 <para>
10289 By default, the OpenEmbedded build system automatically
10290 sets this variable to be equal to the number of cores the
10291 build system uses.
10292 <note>
10293 If the software being built experiences dependency
10294 issues during the <filename>do_compile</filename>
10295 task that result in race conditions, you can clear
10296 the <filename>PARALLEL_MAKE</filename> variable within
10297 the recipe as a workaround.
10298 For information on addressing race conditions, see the
10299 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010300 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010301 </note>
10302 For single socket systems (i.e. one CPU), you should not
10303 have to override this variable to gain optimal parallelism
10304 during builds.
10305 However, if you have very large systems that employ
10306 multiple physical CPUs, you might want to make sure the
10307 <filename>PARALLEL_MAKE</filename> variable is not
10308 set higher than "-j 20".
10309 </para>
10310
10311 <para>
10312 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010313 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
10314 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010315 </para>
10316 </glossdef>
10317 </glossentry>
10318
10319 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
10320 <info>
10321 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
10322 </info>
10323 <glossdef>
10324 <para role="glossdeffirst">
10325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10326 Extra options passed to the
10327 <filename>make install</filename> command during the
10328 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10329 task in order to specify parallel installation.
10330 This variable defaults to the value of
10331 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010332 <note><title>Notes and Cautions</title>
10333 <para>In order for <filename>PARALLEL_MAKEINST</filename>
10334 to be
10335 effective, <filename>make</filename> must be called
10336 with
10337 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10338 An easy way to ensure this is to use the
10339 <filename>oe_runmake</filename> function.</para>
10340
10341 <para>If the software being built experiences
10342 dependency issues during the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010343 <filename>do_install</filename> task that result in
10344 race conditions, you can clear the
10345 <filename>PARALLEL_MAKEINST</filename> variable within
10346 the recipe as a workaround.
10347 For information on addressing race conditions, see the
10348 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010349 section in the Yocto Project Development Tasks Manual.
10350 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010351 </note>
10352 </para>
10353 </glossdef>
10354 </glossentry>
10355
10356 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
10357 <info>
10358 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
10359 </info>
10360 <glossdef>
10361 <para role="glossdeffirst">
10362<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10363 Determines the action to take when a patch fails.
10364 You can set this variable to one of two values: "noop" and
10365 "user".
10366 </para>
10367
10368 <para>
10369 The default value of "noop" causes the build to simply fail
10370 when the OpenEmbedded build system cannot successfully
10371 apply a patch.
10372 Setting the value to "user" causes the build system to
10373 launch a shell and places you in the right location so that
10374 you can manually resolve the conflicts.
10375 </para>
10376
10377 <para>
10378 Set this variable in your
10379 <filename>local.conf</filename> file.
10380 </para>
10381 </glossdef>
10382 </glossentry>
10383
10384 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
10385 <info>
10386 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
10387 </info>
10388 <glossdef>
10389 <para role="glossdeffirst">
10390<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10391 Specifies the utility used to apply patches for a recipe
10392 during the
10393 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
10394 task.
10395 You can specify one of three utilities: "patch", "quilt", or
10396 "git".
10397 The default utility used is "quilt" except for the
10398 quilt-native recipe itself.
10399 Because the quilt tool is not available at the
10400 time quilt-native is being patched, it uses "patch".
10401 </para>
10402
10403 <para>
10404 If you wish to use an alternative patching tool, set the
10405 variable in the recipe using one of the following:
10406 <literallayout class='monospaced'>
10407 PATCHTOOL = "patch"
10408 PATCHTOOL = "quilt"
10409 PATCHTOOL = "git"
10410 </literallayout>
10411 </para>
10412 </glossdef>
10413 </glossentry>
10414
10415 <glossentry id='var-PE'><glossterm>PE</glossterm>
10416 <info>
10417 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."
10418 </info>
10419 <glossdef>
10420 <para role="glossdeffirst">
10421<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10422 The epoch of the recipe.
10423 By default, this variable is unset.
10424 The variable is used to make upgrades possible when the
10425 versioning scheme changes in some backwards incompatible
10426 way.
10427 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010428
10429 <para>
10430 <filename>PE</filename> is the default value of the
10431 <link linkend='var-PKGE'><filename>PKGE</filename></link>
10432 variable.
10433 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010434 </glossdef>
10435 </glossentry>
10436
10437 <glossentry id='var-PF'><glossterm>PF</glossterm>
10438 <info>
10439 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
10440 </info>
10441 <glossdef>
10442 <para role="glossdeffirst">
10443<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10444 Specifies the recipe or package name and includes all version and revision
10445 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
10446 <filename>bash-4.2-r1/</filename>).
10447 This variable is comprised of the following:
10448 <literallayout class='monospaced'>
10449 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
10450 </literallayout>
10451 </para>
10452 </glossdef>
10453 </glossentry>
10454
10455 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
10456 <info>
10457 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
10458 </info>
10459 <glossdef>
10460 <para role="glossdeffirst">
10461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10462 When inheriting the
10463 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
10464 class, this variable identifies packages that contain
10465 the pixbuf loaders used with
10466 <filename>gdk-pixbuf</filename>.
10467 By default, the <filename>pixbufcache</filename> class
10468 assumes that the loaders are in the recipe's main package
10469 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
10470 Use this variable if the loaders you need are in a package
10471 other than that main package.
10472 </para>
10473 </glossdef>
10474 </glossentry>
10475
10476 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
10477 <info>
10478 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."
10479 </info>
10480 <glossdef>
10481 <para role="glossdeffirst">
10482<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10483 The name of the resulting package created by the
10484 OpenEmbedded build system.
10485 <note>
10486 When using the <filename>PKG</filename> variable, you
10487 must use a package name override.
10488 </note>
10489 </para>
10490
10491 <para>
10492 For example, when the
10493 <link linkend='ref-classes-debian'><filename>debian</filename></link>
10494 class renames the output package, it does so by setting
10495 <filename>PKG_<replaceable>packagename</replaceable></filename>.
10496 </para>
10497 </glossdef>
10498 </glossentry>
10499
10500 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
10501 <info>
10502 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
10503 </info>
10504 <glossdef>
10505 <para role="glossdeffirst">
10506<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10507 The path to <filename>pkg-config</filename> files for the
10508 current build context.
10509 <filename>pkg-config</filename> reads this variable
10510 from the environment.
10511 </para>
10512 </glossdef>
10513 </glossentry>
10514
10515 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
10516 <info>
10517 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
10518 </info>
10519 <glossdef>
10520 <para role="glossdeffirst">
10521<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10522 Points to the destination directory for files to be
10523 packaged before they are split into individual packages.
10524 This directory defaults to the following:
10525 <literallayout class='monospaced'>
10526 ${WORKDIR}/package
10527 </literallayout>
10528 </para>
10529
10530 <para>
10531 Do not change this default.
10532 </para>
10533 </glossdef>
10534 </glossentry>
10535
10536 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
10537 <info>
10538 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
10539 </info>
10540 <glossdef>
10541 <para role="glossdeffirst">
10542<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10543 Points to a shared, global-state directory that holds data
10544 generated during the packaging process.
10545 During the packaging process, the
10546 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10547 task packages data for each recipe and installs it into
10548 this temporary, shared area.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010549 This directory defaults to the following, which you should
10550 not change:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010551 <literallayout class='monospaced'>
10552 ${STAGING_DIR_HOST}/pkgdata
10553 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010554 For examples of how this data is used, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010555 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
10556 section in the Yocto Project Overview and Concepts Manual
10557 and the
10558 "<ulink url='&YOCTO_DOCS_DEV_URL;#viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></ulink>"
10559 section in the Yocto Project Development Tasks Manual.
10560 For more information on the shared, global-state directory,
10561 see
10562 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010563 </para>
10564 </glossdef>
10565 </glossentry>
10566
10567 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
10568 <info>
10569 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
10570 </info>
10571 <glossdef>
10572 <para role="glossdeffirst">
10573<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10574 Points to the parent directory for files to be packaged
10575 after they have been split into individual packages.
10576 This directory defaults to the following:
10577 <literallayout class='monospaced'>
10578 ${WORKDIR}/packages-split
10579 </literallayout>
10580 </para>
10581
10582 <para>
10583 Under this directory, the build system creates
10584 directories for each package specified in
10585 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
10586 Do not change this default.
10587 </para>
10588 </glossdef>
10589 </glossentry>
10590
10591 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
10592 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010593 PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010594 </info>
10595 <glossdef>
10596 <para role="glossdeffirst">
10597<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010598 Points to a temporary work area where the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010599 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010600 task saves package metadata.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010601 The <filename>PKGDESTWORK</filename> location defaults to
10602 the following:
10603 <literallayout class='monospaced'>
10604 ${WORKDIR}/pkgdata
10605 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010606 Do not change this default.
10607 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010608
10609 <para>
10610 The
10611 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10612 task copies the package metadata from
10613 <filename>PKGDESTWORK</filename> to
10614 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
10615 to make it available globally.
10616 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010617 </glossdef>
10618 </glossentry>
10619
10620 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
10621 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010622 PKGE[doc] = "The epoch of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010623 </info>
10624 <glossdef>
10625 <para role="glossdeffirst">
10626<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010627 The epoch of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010628 By default, <filename>PKGE</filename> is set to
10629 <link linkend='var-PE'><filename>PE</filename></link>.
10630 </para>
10631 </glossdef>
10632 </glossentry>
10633
10634 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
10635 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010636 PKGR[doc] = "The revision of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010637 </info>
10638 <glossdef>
10639 <para role="glossdeffirst">
10640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010641 The revision of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010642 By default, <filename>PKGR</filename> is set to
10643 <link linkend='var-PR'><filename>PR</filename></link>.
10644 </para>
10645 </glossdef>
10646 </glossentry>
10647
10648 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
10649 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010650 PKGV[doc] = "The version of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010651 </info>
10652 <glossdef>
10653 <para role="glossdeffirst">
10654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010655 The version of the package(s) built by the
10656 recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010657 By default, <filename>PKGV</filename> is set to
10658 <link linkend='var-PV'><filename>PV</filename></link>.
10659 </para>
10660 </glossdef>
10661 </glossentry>
10662
10663 <glossentry id='var-PN'><glossterm>PN</glossterm>
10664 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010665 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 -050010666 </info>
10667 <glossdef>
10668 <para role="glossdeffirst">
10669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10670 This variable can have two separate functions depending on the context: a recipe
10671 name or a resulting package name.
10672 </para>
10673
10674 <para>
10675 <filename>PN</filename> refers to a recipe name in the context of a file used
10676 by the OpenEmbedded build system as input to create a package.
10677 The name is normally extracted from the recipe file name.
10678 For example, if the recipe is named
10679 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
10680 will be "expat".
10681 </para>
10682
10683 <para>
10684 The variable refers to a package name in the context of a file created or produced by the
10685 OpenEmbedded build system.
10686 </para>
10687
10688 <para>
10689 If applicable, the <filename>PN</filename> variable also contains any special
10690 suffix or prefix.
10691 For example, using <filename>bash</filename> to build packages for the native
10692 machine, <filename>PN</filename> is <filename>bash-native</filename>.
10693 Using <filename>bash</filename> to build packages for the target and for Multilib,
10694 <filename>PN</filename> would be <filename>bash</filename> and
10695 <filename>lib64-bash</filename>, respectively.
10696 </para>
10697 </glossdef>
10698 </glossentry>
10699
10700 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
10701 <info>
10702 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
10703 </info>
10704 <glossdef>
10705 <para role="glossdeffirst">
10706<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10707 Lists recipes you do not want the OpenEmbedded build system
10708 to build.
10709 This variable works in conjunction with the
10710 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
10711 class, which the recipe must inherit globally.
10712 </para>
10713
10714 <para>
10715 To prevent a recipe from being built, inherit the class
10716 globally and use the variable in your
10717 <filename>local.conf</filename> file.
10718 Here is an example that prevents
10719 <filename>myrecipe</filename> from being built:
10720 <literallayout class='monospaced'>
10721 INHERIT += "blacklist"
10722 PNBLACKLIST[myrecipe] = "Not supported by our organization."
10723 </literallayout>
10724 </para>
10725 </glossdef>
10726 </glossentry>
10727
10728 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
10729 <info>
10730 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."
10731 </info>
10732 <glossdef>
10733 <para role="glossdeffirst">
10734<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10735 Specifies a list of functions to call once the
10736 OpenEmbedded build system has created the host part of
10737 the SDK.
10738 You can specify functions separated by semicolons:
10739 <literallayout class='monospaced'>
10740 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
10741 </literallayout>
10742 </para>
10743
10744 <para>
10745 If you need to pass the SDK path to a command
10746 within a function, you can use
10747 <filename>${SDK_DIR}</filename>, which points to
10748 the parent directory used by the OpenEmbedded build
10749 system when creating SDK output.
10750 See the
10751 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10752 variable for more information.
10753 </para>
10754 </glossdef>
10755 </glossentry>
10756
10757 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
10758 <info>
10759 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."
10760 </info>
10761 <glossdef>
10762 <para role="glossdeffirst">
10763<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10764 Specifies a list of functions to call once the
10765 OpenEmbedded build system has created the target part of
10766 the SDK.
10767 You can specify functions separated by semicolons:
10768 <literallayout class='monospaced'>
10769 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
10770 </literallayout>
10771 </para>
10772
10773 <para>
10774 If you need to pass the SDK path to a command
10775 within a function, you can use
10776 <filename>${SDK_DIR}</filename>, which points to
10777 the parent directory used by the OpenEmbedded build
10778 system when creating SDK output.
10779 See the
10780 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10781 variable for more information.
10782 </para>
10783 </glossdef>
10784 </glossentry>
10785
10786 <glossentry id='var-PR'><glossterm>PR</glossterm>
10787 <info>
10788 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
10789 </info>
10790 <glossdef>
10791 <para role="glossdeffirst">
10792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010793 The revision of the recipe. The default value for this
10794 variable is "r0".
10795 Subsequent revisions of the recipe conventionally have the
10796 values "r1", "r2", and so forth.
10797 When
10798 <link linkend='var-PV'><filename>PV</filename></link>
10799 increases, <filename>PR</filename> is conventionally reset
10800 to "r0".
10801 <note>
10802 The OpenEmbedded build system does not need the aid of
10803 <filename>PR</filename> to know when to rebuild a
10804 recipe.
10805 The build system uses the task
Brad Bishop316dfdd2018-06-25 12:45:53 -040010806 <ulink url='&YOCTO_DOCS_OM_URL;#overview-checksums'>input checksums</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010807 along with the
10808 <link linkend='structure-build-tmp-stamps'>stamp</link>
10809 and
Brad Bishop316dfdd2018-06-25 12:45:53 -040010810 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state cache</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010811 mechanisms.
10812 </note>
10813 The <filename>PR</filename> variable primarily becomes
10814 significant when a package manager dynamically installs
10815 packages on an already built image.
10816 In this case, <filename>PR</filename>, which is the default
10817 value of
10818 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
10819 helps the package manager distinguish which package is the
10820 most recent one in cases where many packages have the same
10821 <filename>PV</filename> (i.e. <filename>PKGV</filename>).
10822 A component having many packages with the same
10823 <filename>PV</filename> usually means that the packages all
10824 install the same upstream version, but with later
10825 (<filename>PR</filename>) version packages including
10826 packaging fixes.
10827 <note>
10828 <filename>PR</filename> does not need to be increased
10829 for changes that do not change the package contents or
10830 metadata.
10831 </note>
10832 Because manually managing <filename>PR</filename> can be
10833 cumbersome and error-prone, an automated solution exists.
10834 See the
10835 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010836 section in the Yocto Project Development Tasks Manual
10837 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010838 </para>
10839 </glossdef>
10840 </glossentry>
10841
10842 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
10843 <info>
10844 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
10845 </info>
10846 <glossdef>
10847 <para role="glossdeffirst">
10848<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010849 If multiple recipes provide the same item, this variable
10850 determines which recipe is preferred and thus provides
10851 the item (i.e. the preferred provider).
10852 You should always suffix this variable with the name of the
10853 provided item.
10854 And, you should define the variable using the preferred
10855 recipe's name
10856 (<link linkend='var-PN'><filename>PN</filename></link>).
10857 Here is a common example:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010858 <literallayout class='monospaced'>
10859 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
Brad Bishop316dfdd2018-06-25 12:45:53 -040010860 </literallayout>
10861 In the previous example, multiple recipes are providing
10862 "virtual/kernel".
10863 The <filename>PREFERRED_PROVIDER</filename> variable is
10864 set with the name (<filename>PN</filename>) of the recipe
10865 you prefer to provide "virtual/kernel".
10866 </para>
10867
10868 <para>
10869 Following are more examples:
10870 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010871 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
10872 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
10873 </literallayout>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010874 For more information, see the
10875 "<ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>Using Virtual Providers</ulink>"
10876 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010877 <note>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010878 If you use a <filename>virtual/*</filename> item
10879 with <filename>PREFERRED_PROVIDER</filename>, then any
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010880 recipe that
10881 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010882 that item but is not selected (defined) by
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010883 <filename>PREFERRED_PROVIDER</filename> is prevented
10884 from building, which is usually desirable since this
10885 mechanism is designed to select between mutually
10886 exclusive alternative providers.
10887 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010888 </para>
10889 </glossdef>
10890 </glossentry>
10891
10892 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
10893 <info>
10894 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
10895 </info>
10896 <glossdef>
10897 <para role="glossdeffirst">
10898<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10899 If there are multiple versions of recipes available, this
10900 variable determines which recipe should be given preference.
10901 You must always suffix the variable with the
10902 <link linkend='var-PN'><filename>PN</filename></link>
10903 you want to select, and you should set the
10904 <link linkend='var-PV'><filename>PV</filename></link>
10905 accordingly for precedence.
10906 You can use the "<filename>%</filename>" character as a
10907 wildcard to match any number of characters, which can be
10908 useful when specifying versions that contain long revision
10909 numbers that could potentially change.
10910 Here are two examples:
10911 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010912 PREFERRED_VERSION_python = "3.4.0"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010913 PREFERRED_VERSION_linux-yocto = "4.12%"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010914 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010915 <note>
10916 The specified version is matched against
10917 <link linkend='var-PV'><filename>PV</filename></link>,
10918 which does not necessarily match the version part of
10919 the recipe's filename.
10920 For example, consider two recipes
10921 <filename>foo_1.2.bb</filename> and
10922 <filename>foo_git.bb</filename> where
10923 <filename>foo_git.bb</filename> contains the following
10924 assignment:
10925 <literallayout class='monospaced'>
10926 PV = "1.1+git${SRCPV}"
10927 </literallayout>
10928 In this case, the correct way to select
10929 <filename>foo_git.bb</filename> is by using an
10930 assignment such as the following:
10931 <literallayout class='monospaced'>
10932 PREFERRED_VERSION_foo = "1.1+git%"
10933 </literallayout>
10934 Compare that previous example against the following
10935 incorrect example, which does not work:
10936 <literallayout class='monospaced'>
10937 PREFERRED_VERSION_foo = "git"
10938 </literallayout>
10939 </note>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010940 Sometimes the <filename>PREFERRED_VERSION</filename>
10941 variable can be set by configuration files in a way that
10942 is hard to change.
10943 You can use
10944 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
10945 to set a machine-specific override.
10946 Here is an example:
10947 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010948 PREFERRED_VERSION_linux-yocto_qemux86 = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010949 </literallayout>
10950 Although not recommended, worst case, you can also use the
10951 "forcevariable" override, which is the strongest override
10952 possible.
10953 Here is an example:
10954 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010955 PREFERRED_VERSION_linux-yocto_forcevariable = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010956 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010957 <note>
10958 The <filename>_forcevariable</filename> override is
10959 not handled specially.
10960 This override only works because the default value of
Brad Bishop316dfdd2018-06-25 12:45:53 -040010961 <filename>OVERRIDES</filename> includes
10962 "forcevariable".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010963 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010964 </para>
10965 </glossdef>
10966 </glossentry>
10967
10968 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
10969 <info>
10970 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
10971 </info>
10972 <glossdef>
10973 <para role="glossdeffirst">
10974<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10975 Specifies additional paths from which the OpenEmbedded
10976 build system gets source code.
10977 When the build system searches for source code, it first
10978 tries the local download directory.
10979 If that location fails, the build system tries locations
10980 defined by <filename>PREMIRRORS</filename>, the upstream
10981 source, and then locations specified by
10982 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
10983 in that order.
10984 </para>
10985
10986 <para>
10987 Assuming your distribution
10988 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
10989 is "poky", the default value for
10990 <filename>PREMIRRORS</filename> is defined in the
10991 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010992 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010993 </para>
10994
10995 <para>
10996 Typically, you could add a specific server for the
10997 build system to attempt before any others by adding
10998 something like the following to the
10999 <filename>local.conf</filename> configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011000 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011001 <literallayout class='monospaced'>
11002 PREMIRRORS_prepend = "\
11003 git://.*/.* http://www.yoctoproject.org/sources/ \n \
11004 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
11005 http://.*/.* http://www.yoctoproject.org/sources/ \n \
11006 https://.*/.* http://www.yoctoproject.org/sources/ \n"
11007 </literallayout>
11008 These changes cause the build system to intercept
11009 Git, FTP, HTTP, and HTTPS requests and direct them to
11010 the <filename>http://</filename> sources mirror.
11011 You can use <filename>file://</filename> URLs to point
11012 to local directories or network shares as well.
11013 </para>
11014 </glossdef>
11015 </glossentry>
11016
11017 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
11018 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011019 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 -050011020 </info>
11021 <glossdef>
11022 <para role="glossdeffirst">
11023<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11024 Indicates the importance of a package.
11025 </para>
11026
11027 <para>
11028 <filename>PRIORITY</filename> is considered to be part of
11029 the distribution policy because the importance of any given
11030 recipe depends on the purpose for which the distribution
11031 is being produced.
11032 Thus, <filename>PRIORITY</filename> is not normally set
11033 within recipes.
11034 </para>
11035
11036 <para>
11037 You can set <filename>PRIORITY</filename> to "required",
11038 "standard", "extra", and "optional", which is the default.
11039 </para>
11040 </glossdef>
11041 </glossentry>
11042
11043 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
11044 <info>
11045 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
11046 </info>
11047 <glossdef>
11048 <para role="glossdeffirst">
11049<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11050 Specifies libraries installed within a recipe that
11051 should be ignored by the OpenEmbedded build system's
11052 shared library resolver.
11053 This variable is typically used when software being
11054 built by a recipe has its own private versions of a
11055 library normally provided by another recipe.
11056 In this case, you would not want the package containing
11057 the private libraries to be set as a dependency on other
11058 unrelated packages that should instead depend on the
11059 package providing the standard version of the library.
11060 </para>
11061
11062 <para>
11063 Libraries specified in this variable should be specified
11064 by their file name.
11065 For example, from the Firefox recipe in meta-browser:
11066 <literallayout class='monospaced'>
11067 PRIVATE_LIBS = "libmozjs.so \
11068 libxpcom.so \
11069 libnspr4.so \
11070 libxul.so \
11071 libmozalloc.so \
11072 libplc4.so \
11073 libplds4.so"
11074 </literallayout>
11075 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011076
11077 <para>
11078 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011079 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11080 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011081 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011082 </glossdef>
11083 </glossentry>
11084
11085 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
11086 <info>
11087 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."
11088 </info>
11089 <glossdef>
11090 <para role="glossdeffirst">
11091<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11092 A list of aliases by which a particular recipe can be
11093 known.
11094 By default, a recipe's own
11095 <filename><link linkend='var-PN'>PN</link></filename>
11096 is implicitly already in its <filename>PROVIDES</filename>
11097 list.
11098 If a recipe uses <filename>PROVIDES</filename>, the
11099 additional aliases are synonyms for the recipe and can
11100 be useful satisfying dependencies of other recipes during
11101 the build as specified by
11102 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
11103 </para>
11104
11105 <para>
11106 Consider the following example
11107 <filename>PROVIDES</filename> statement from a recipe
11108 file <filename>libav_0.8.11.bb</filename>:
11109 <literallayout class='monospaced'>
11110 PROVIDES += "libpostproc"
11111 </literallayout>
11112 The <filename>PROVIDES</filename> statement results in
11113 the "libav" recipe also being known as "libpostproc".
11114 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011115
11116 <para>
11117 In addition to providing recipes under alternate names,
11118 the <filename>PROVIDES</filename> mechanism is also used
11119 to implement virtual targets.
11120 A virtual target is a name that corresponds to some
11121 particular functionality (e.g. a Linux kernel).
11122 Recipes that provide the functionality in question list the
11123 virtual target in <filename>PROVIDES</filename>.
11124 Recipes that depend on the functionality in question can
Brad Bishop316dfdd2018-06-25 12:45:53 -040011125 include the virtual target in <filename>DEPENDS</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011126 to leave the choice of provider open.
11127 </para>
11128
11129 <para>
11130 Conventionally, virtual targets have names on the form
11131 "virtual/function" (e.g. "virtual/kernel").
11132 The slash is simply part of the name and has no
11133 syntactical significance.
11134 </para>
11135
11136 <para>
11137 The
11138 <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
11139 variable is used to select which particular recipe
11140 provides a virtual target.
11141 <note>
11142 <para>A corresponding mechanism for virtual runtime
11143 dependencies (packages) exists.
11144 However, the mechanism does not depend on any special
11145 functionality beyond ordinary variable assignments.
11146 For example,
11147 <filename>VIRTUAL-RUNTIME_dev_manager</filename>
11148 refers to the package of the component that manages
11149 the <filename>/dev</filename> directory.</para>
11150
11151 <para>Setting the "preferred provider" for runtime
11152 dependencies is as simple as using the following
11153 assignment in a configuration file:</para>
11154 <literallayout class='monospaced'>
11155 VIRTUAL-RUNTIME_dev_manager = "udev"
11156 </literallayout>
11157 </note>
11158 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011159 </glossdef>
11160 </glossentry>
11161
11162 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
11163 <info>
11164 PRSERV_HOST[doc] = "The network based PR service host and port."
11165 </info>
11166 <glossdef>
11167 <para role="glossdeffirst">
11168<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11169 The network based
11170 <link linkend='var-PR'><filename>PR</filename></link>
11171 service host and port.
11172 </para>
11173
11174 <para>
11175 The <filename>conf/local.conf.sample.extended</filename>
11176 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011177 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011178 shows how the <filename>PRSERV_HOST</filename> variable is
11179 set:
11180 <literallayout class='monospaced'>
11181 PRSERV_HOST = "localhost:0"
11182 </literallayout>
11183 You must set the variable if you want to automatically
11184 start a local
11185 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
11186 You can set <filename>PRSERV_HOST</filename> to other
11187 values to use a remote PR service.
11188 </para>
11189 </glossdef>
11190 </glossentry>
11191
11192 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
11193 <info>
11194 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
11195 </info>
11196 <glossdef>
11197 <para role="glossdeffirst">
11198<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11199 Specifies whether or not
11200 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
11201 (ptest) functionality is enabled when building a recipe.
11202 You should not set this variable directly.
11203 Enabling and disabling building Package Tests
11204 at build time should be done by adding "ptest" to (or
11205 removing it from)
11206 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
11207 </para>
11208 </glossdef>
11209 </glossentry>
11210
11211 <glossentry id='var-PV'><glossterm>PV</glossterm>
11212 <info>
11213 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
11214 </info>
11215 <glossdef>
11216 <para role="glossdeffirst">
11217<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11218 The version of the recipe.
11219 The version is normally extracted from the recipe filename.
11220 For example, if the recipe is named
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011221 <filename>expat_2.0.1.bb</filename>, then the default value
11222 of <filename>PV</filename> will be "2.0.1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011223 <filename>PV</filename> is generally not overridden within
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011224 a recipe unless it is building an unstable (i.e.
11225 development) version from a source code repository
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011226 (e.g. Git or Subversion).
11227 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011228
11229 <para>
11230 <filename>PV</filename> is the default value of the
11231 <link linkend='var-PKGV'><filename>PKGV</filename></link>
11232 variable.
11233 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011234 </glossdef>
11235 </glossentry>
11236
11237 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
11238 <info>
11239 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."
11240 </info>
11241 <glossdef>
11242 <para role="glossdeffirst">
11243<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11244 When used by recipes that inherit the
11245 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11246 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11247 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11248 or
11249 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11250 classes, denotes the Application Binary Interface (ABI)
11251 currently in use for Python.
11252 By default, the ABI is "m".
11253 You do not have to set this variable as the OpenEmbedded
11254 build system sets it for you.
11255 </para>
11256
11257 <para>
11258 The OpenEmbedded build system uses the ABI to construct
11259 directory names used when installing the Python headers
11260 and libraries in sysroot
11261 (e.g. <filename>.../python3.3m/...</filename>).
11262 </para>
11263
11264 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011265 Recipes that inherit the <filename>distutils</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011266 class during cross-builds also use this variable to
11267 locate the headers and libraries of the appropriate Python
11268 that the extension is targeting.
11269 </para>
11270 </glossdef>
11271 </glossentry>
11272
11273 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
11274 <info>
11275 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
11276 </info>
11277 <glossdef>
11278 <para role="glossdeffirst">
11279<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11280 When used by recipes that inherit the
11281 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11282 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11283 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11284 or
11285 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11286 classes, specifies the major Python version being built.
11287 For Python 2.x, <filename>PYTHON_PN</filename> would
11288 be "python2". For Python 3.x, the variable would be
11289 "python3".
11290 You do not have to set this variable as the
11291 OpenEmbedded build system automatically sets it for you.
11292 </para>
11293
11294 <para>
11295 The variable allows recipes to use common infrastructure
11296 such as the following:
11297 <literallayout class='monospaced'>
11298 DEPENDS += "${PYTHON_PN}-native"
11299 </literallayout>
11300 In the previous example, the version of the dependency
11301 is <filename>PYTHON_PN</filename>.
11302 </para>
11303 </glossdef>
11304 </glossentry>
11305
11306 </glossdiv>
11307
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011308 <glossdiv id='var-glossary-r'><title>R</title>
11309
11310 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
11311 <info>
11312 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
11313 </info>
11314 <glossdef>
11315 <para role="glossdeffirst">
11316<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11317 The minimal command and arguments to run
11318 <filename>ranlib</filename>.
11319 </para>
11320 </glossdef>
11321 </glossentry>
11322
11323 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
11324 <info>
11325 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."
11326 </info>
11327 <glossdef>
11328 <para role="glossdeffirst">
11329<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11330 The list of packages that conflict with packages.
11331 Note that packages will not be installed if conflicting
11332 packages are not first removed.
11333 </para>
11334
11335 <para>
11336 Like all package-controlling variables, you must always use
11337 them in conjunction with a package name override.
11338 Here is an example:
11339 <literallayout class='monospaced'>
11340 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
11341 </literallayout>
11342 </para>
11343
11344 <para>
11345 BitBake, which the OpenEmbedded build system uses, supports
11346 specifying versioned dependencies.
11347 Although the syntax varies depending on the packaging
11348 format, BitBake hides these differences from you.
11349 Here is the general syntax to specify versions with
11350 the <filename>RCONFLICTS</filename> variable:
11351 <literallayout class='monospaced'>
11352 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11353 </literallayout>
11354 For <filename>operator</filename>, you can specify the
11355 following:
11356 <literallayout class='monospaced'>
11357 =
11358 &lt;
11359 &gt;
11360 &lt;=
11361 &gt;=
11362 </literallayout>
11363 For example, the following sets up a dependency on version
11364 1.2 or greater of the package <filename>foo</filename>:
11365 <literallayout class='monospaced'>
11366 RCONFLICTS_${PN} = "foo (>= 1.2)"
11367 </literallayout>
11368 </para>
11369 </glossdef>
11370 </glossentry>
11371
11372 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
11373 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011374 RDEPENDS[doc] = "Lists runtime dependencies of a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011375 </info>
11376 <glossdef>
11377 <para role="glossdeffirst">
11378<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011379 Lists runtime dependencies of a package.
11380 These dependencies are other packages that must be
11381 installed in order for the package to function correctly.
11382 As an example, the following assignment declares that the
11383 package <filename>foo</filename> needs the packages
11384 <filename>bar</filename> and <filename>baz</filename> to
11385 be installed:
11386 <literallayout class='monospaced'>
11387 RDEPENDS_foo = "bar baz"
11388 </literallayout>
11389 The most common types of package runtime dependencies are
11390 automatically detected and added.
11391 Therefore, most recipes do not need to set
11392 <filename>RDEPENDS</filename>.
11393 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011394 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11395 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011396 </para>
11397
11398 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011399 The practical effect of the above
11400 <filename>RDEPENDS</filename> assignment is that
11401 <filename>bar</filename> and <filename>baz</filename>
11402 will be declared as dependencies inside the package
11403 <filename>foo</filename> when it is written out by one of
11404 the
11405 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
11406 tasks.
11407 Exactly how this is done depends on which package format
11408 is used, which is determined by
11409 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
11410 When the corresponding package manager installs the
11411 package, it will know to also install the packages on
11412 which it depends.
11413 </para>
11414
11415 <para>
11416 To ensure that the packages <filename>bar</filename> and
11417 <filename>baz</filename> get built, the previous
11418 <filename>RDEPENDS</filename> assignment also causes a task
11419 dependency to be added.
11420 This dependency is from the recipe's
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011421 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011422 (not to be confused with
11423 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
11424 task to the <filename>do_package_write_*</filename>
11425 task of the recipes that build <filename>bar</filename> and
11426 <filename>baz</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011427 </para>
11428
11429 <para>
11430 The names of the packages you list within
11431 <filename>RDEPENDS</filename> must be the names of other
11432 packages - they cannot be recipe names.
11433 Although package names and recipe names usually match,
11434 the important point here is that you are
11435 providing package names within the
11436 <filename>RDEPENDS</filename> variable.
11437 For an example of the default list of packages created from
11438 a recipe, see the
11439 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11440 variable.
11441 </para>
11442
11443 <para>
11444 Because the <filename>RDEPENDS</filename> variable applies
11445 to packages being built, you should always use the variable
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011446 in a form with an attached package name (remember that a
11447 single recipe can build multiple packages).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011448 For example, suppose you are building a development package
11449 that depends on the <filename>perl</filename> package.
11450 In this case, you would use the following
11451 <filename>RDEPENDS</filename> statement:
11452 <literallayout class='monospaced'>
11453 RDEPENDS_${PN}-dev += "perl"
11454 </literallayout>
11455 In the example, the development package depends on
11456 the <filename>perl</filename> package.
11457 Thus, the <filename>RDEPENDS</filename> variable has the
11458 <filename>${PN}-dev</filename> package name as part of the
11459 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011460 <note>
11461 <title>Caution</title>
11462 <filename>RDEPENDS_${PN}-dev</filename> includes
11463 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
11464 by default.
11465 This default is set in the BitBake configuration file
11466 (<filename>meta/conf/bitbake.conf</filename>).
11467 Be careful not to accidentally remove
11468 <filename>${PN}</filename> when modifying
11469 <filename>RDEPENDS_${PN}-dev</filename>.
11470 Use the "+=" operator rather than the "=" operator.
11471 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011472 </para>
11473
11474 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011475 The package names you use with
11476 <filename>RDEPENDS</filename> must appear as they would in
11477 the <filename>PACKAGES</filename> variable.
11478 The
11479 <link linkend='var-PKG'><filename>PKG</filename></link>
11480 variable allows a different name to be used for
11481 the final package (e.g. the
11482 <link linkend='ref-classes-debian'><filename>debian</filename></link>
11483 class uses this to rename packages), but this final package
11484 name cannot be used with <filename>RDEPENDS</filename>,
11485 which makes sense as <filename>RDEPENDS</filename> is meant
11486 to be independent of the package format used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011487 </para>
11488
11489 <para>
11490 BitBake, which the OpenEmbedded build system uses, supports
11491 specifying versioned dependencies.
11492 Although the syntax varies depending on the packaging
11493 format, BitBake hides these differences from you.
11494 Here is the general syntax to specify versions with
11495 the <filename>RDEPENDS</filename> variable:
11496 <literallayout class='monospaced'>
11497 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11498 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011499 For <replaceable>operator</replaceable>, you can specify the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011500 following:
11501 <literallayout class='monospaced'>
11502 =
11503 &lt;
11504 &gt;
11505 &lt;=
11506 &gt;=
11507 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011508 For <replaceable>version</replaceable>, provide the version
11509 number.
11510 <note><title>Tip</title>
11511 You can use
11512 <link linkend='var-EXTENDPKGV'><filename>EXTENDPKGV</filename></link>
11513 to provide a full package version specification.
11514 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011515 For example, the following sets up a dependency on version
11516 1.2 or greater of the package <filename>foo</filename>:
11517 <literallayout class='monospaced'>
11518 RDEPENDS_${PN} = "foo (>= 1.2)"
11519 </literallayout>
11520 </para>
11521
11522 <para>
11523 For information on build-time dependencies, see the
11524 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
11525 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011526 You can also see the
11527 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
11528 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
11529 sections in the BitBake User Manual for additional
11530 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011531 </para>
11532 </glossdef>
11533 </glossentry>
11534
11535 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
11536 <info>
11537 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."
11538 </info>
11539 <glossdef>
11540 <para role="glossdeffirst">
11541<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11542 When inheriting the
11543 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
11544 class, this
11545 variable identifies distribution features that must
11546 exist in the current configuration in order for the
11547 OpenEmbedded build system to build the recipe.
11548 In other words, if the
11549 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
11550 lists a feature that does not appear in
11551 <filename>DISTRO_FEATURES</filename> within the
11552 current configuration, an error occurs and the
11553 build stops.
11554 </para>
11555 </glossdef>
11556 </glossentry>
11557
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011558 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
11559 <info>
11560 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
11561 </info>
11562 <glossdef>
11563 <para role="glossdeffirst">
11564<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11565 With <filename>rm_work</filename> enabled, this
11566 variable specifies a list of recipes whose work directories
11567 should not be removed.
11568 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
11569 section for more details.
11570 </para>
11571 </glossdef>
11572 </glossentry>
11573
11574 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
11575 <info>
11576 ROOT_HOME[doc] = "Defines the root home directory."
11577 </info>
11578 <glossdef>
11579 <para role="glossdeffirst">
11580<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11581 Defines the root home directory.
11582 By default, this directory is set as follows in the
11583 BitBake configuration file:
11584 <literallayout class='monospaced'>
11585 ROOT_HOME ??= "/home/root"
11586 </literallayout>
11587 <note>
11588 This default value is likely used because some
11589 embedded solutions prefer to have a read-only root
11590 filesystem and prefer to keep writeable data in one
11591 place.
11592 </note>
11593 </para>
11594
11595 <para>
11596 You can override the default by setting the variable
11597 in any layer or in the <filename>local.conf</filename> file.
11598 Because the default is set using a "weak" assignment
11599 (i.e. "??="), you can use either of the following forms
11600 to define your override:
11601 <literallayout class='monospaced'>
11602 ROOT_HOME = "/root"
11603 ROOT_HOME ?= "/root"
11604 </literallayout>
11605 These override examples use <filename>/root</filename>,
11606 which is probably the most commonly used override.
11607 </para>
11608 </glossdef>
11609 </glossentry>
11610
11611 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
11612 <info>
11613 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
11614 </info>
11615 <glossdef>
11616 <para role="glossdeffirst">
11617<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11618 Indicates a filesystem image to include as the root
11619 filesystem.
11620 </para>
11621
11622 <para>
11623 The <filename>ROOTFS</filename> variable is an optional
11624 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011625 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011626 class.
11627 </para>
11628 </glossdef>
11629 </glossentry>
11630
11631 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
11632 <info>
11633 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
11634 </info>
11635 <glossdef>
11636 <para role="glossdeffirst">
11637<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11638 Specifies a list of functions to call after the
11639 OpenEmbedded build system has installed packages.
11640 You can specify functions separated by semicolons:
11641 <literallayout class='monospaced'>
11642 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11643 </literallayout>
11644 </para>
11645
11646 <para>
11647 If you need to pass the root filesystem path to a command
11648 within a function, you can use
11649 <filename>${IMAGE_ROOTFS}</filename>, which points to
11650 the directory that becomes the root filesystem image.
11651 See the
11652 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11653 variable for more information.
11654 </para>
11655 </glossdef>
11656 </glossentry>
11657
11658 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
11659 <info>
11660 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
11661 </info>
11662 <glossdef>
11663 <para role="glossdeffirst">
11664<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11665 Specifies a list of functions to call once the
11666 OpenEmbedded build system has created the root filesystem.
11667 You can specify functions separated by semicolons:
11668 <literallayout class='monospaced'>
11669 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11670 </literallayout>
11671 </para>
11672
11673 <para>
11674 If you need to pass the root filesystem path to a command
11675 within a function, you can use
11676 <filename>${IMAGE_ROOTFS}</filename>, which points to
11677 the directory that becomes the root filesystem image.
11678 See the
11679 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11680 variable for more information.
11681 </para>
11682 </glossdef>
11683 </glossentry>
11684
11685 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
11686 <info>
11687 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
11688 </info>
11689 <glossdef>
11690 <para role="glossdeffirst">
11691<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11692 Specifies a list of functions to call after the
11693 OpenEmbedded build system has removed unnecessary
11694 packages.
11695 When runtime package management is disabled in the
11696 image, several packages are removed including
11697 <filename>base-passwd</filename>,
11698 <filename>shadow</filename>, and
11699 <filename>update-alternatives</filename>.
11700 You can specify functions separated by semicolons:
11701 <literallayout class='monospaced'>
11702 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11703 </literallayout>
11704 </para>
11705
11706 <para>
11707 If you need to pass the root filesystem path to a command
11708 within a function, you can use
11709 <filename>${IMAGE_ROOTFS}</filename>, which points to
11710 the directory that becomes the root filesystem image.
11711 See the
11712 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11713 variable for more information.
11714 </para>
11715 </glossdef>
11716 </glossentry>
11717
11718 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
11719 <info>
11720 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
11721 </info>
11722 <glossdef>
11723 <para role="glossdeffirst">
11724<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11725 Specifies a list of functions to call before the
11726 OpenEmbedded build system has created the root filesystem.
11727 You can specify functions separated by semicolons:
11728 <literallayout class='monospaced'>
11729 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11730 </literallayout>
11731 </para>
11732
11733 <para>
11734 If you need to pass the root filesystem path to a command
11735 within a function, you can use
11736 <filename>${IMAGE_ROOTFS}</filename>, which points to
11737 the directory that becomes the root filesystem image.
11738 See the
11739 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11740 variable for more information.
11741 </para>
11742 </glossdef>
11743 </glossentry>
11744
11745 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
11746 <info>
11747 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."
11748 </info>
11749 <glossdef>
11750 <para role="glossdeffirst">
11751<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11752 A list of package name aliases that a package also provides.
11753 These aliases are useful for satisfying runtime dependencies
11754 of other packages both during the build and on the target
11755 (as specified by
11756 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
11757 <note>
11758 A package's own name is implicitly already in its
11759 <filename>RPROVIDES</filename> list.
11760 </note>
11761 </para>
11762
11763 <para>
11764 As with all package-controlling variables, you must always
11765 use the variable in conjunction with a package name override.
11766 Here is an example:
11767 <literallayout class='monospaced'>
11768 RPROVIDES_${PN} = "widget-abi-2"
11769 </literallayout>
11770 </para>
11771 </glossdef>
11772 </glossentry>
11773
11774 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
11775 <info>
11776 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."
11777 </info>
11778 <glossdef>
11779 <para role="glossdeffirst">
11780<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11781 A list of packages that extends the usability of a package
11782 being built.
11783 The package being built does not depend on this list of
11784 packages in order to successfully build, but rather
11785 uses them for extended usability.
11786 To specify runtime dependencies for packages, see the
11787 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
11788 variable.
11789 </para>
11790
11791 <para>
11792 The package manager will automatically install the
11793 <filename>RRECOMMENDS</filename> list of packages when
11794 installing the built package.
11795 However, you can prevent listed packages from being
11796 installed by using the
11797 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
11798 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
11799 and
11800 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
11801 variables.
11802 </para>
11803
11804 <para>
11805 Packages specified in
11806 <filename>RRECOMMENDS</filename> need not actually be
11807 produced.
11808 However, a recipe must exist that provides each package,
11809 either through the
11810 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11811 or
11812 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
11813 variables or the
11814 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
11815 variable, or an error will occur during the build.
11816 If such a recipe does exist and the package is not produced,
11817 the build continues without error.
11818 </para>
11819
11820 <para>
11821 Because the <filename>RRECOMMENDS</filename> variable
11822 applies to packages being built, you should always attach
11823 an override to the variable to specify the particular
11824 package whose usability is being extended.
11825 For example, suppose you are building a development package
11826 that is extended to support wireless functionality.
11827 In this case, you would use the following:
11828 <literallayout class='monospaced'>
11829 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
11830 </literallayout>
11831 In the example, the package name
11832 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
11833 must appear as it would in the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011834 <filename>PACKAGES</filename> namespace before any renaming
11835 of the output package by classes such as
11836 <filename>debian.bbclass</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011837 </para>
11838
11839 <para>
11840 BitBake, which the OpenEmbedded build system uses, supports
11841 specifying versioned recommends.
11842 Although the syntax varies depending on the packaging
11843 format, BitBake hides these differences from you.
11844 Here is the general syntax to specify versions with
11845 the <filename>RRECOMMENDS</filename> variable:
11846 <literallayout class='monospaced'>
11847 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11848 </literallayout>
11849 For <filename>operator</filename>, you can specify the
11850 following:
11851 <literallayout class='monospaced'>
11852 =
11853 &lt;
11854 &gt;
11855 &lt;=
11856 &gt;=
11857 </literallayout>
11858 For example, the following sets up a recommend on version
11859 1.2 or greater of the package <filename>foo</filename>:
11860 <literallayout class='monospaced'>
11861 RRECOMMENDS_${PN} = "foo (>= 1.2)"
11862 </literallayout>
11863 </para>
11864 </glossdef>
11865 </glossentry>
11866
11867 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
11868 <info>
11869 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."
11870 </info>
11871 <glossdef>
11872 <para role="glossdeffirst">
11873<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11874 A list of packages replaced by a package.
11875 The package manager uses this variable to determine which
11876 package should be installed to replace other package(s)
11877 during an upgrade.
11878 In order to also have the other package(s) removed at the
11879 same time, you must add the name of the other
11880 package to the
11881 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
11882 </para>
11883
11884 <para>
11885 As with all package-controlling variables, you must use
11886 this variable in conjunction with a package name
11887 override.
11888 Here is an example:
11889 <literallayout class='monospaced'>
11890 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
11891 </literallayout>
11892 </para>
11893
11894 <para>
11895 BitBake, which the OpenEmbedded build system uses, supports
11896 specifying versioned replacements.
11897 Although the syntax varies depending on the packaging
11898 format, BitBake hides these differences from you.
11899 Here is the general syntax to specify versions with
11900 the <filename>RREPLACES</filename> variable:
11901 <literallayout class='monospaced'>
11902 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11903 </literallayout>
11904 For <filename>operator</filename>, you can specify the
11905 following:
11906 <literallayout class='monospaced'>
11907 =
11908 &lt;
11909 &gt;
11910 &lt;=
11911 &gt;=
11912 </literallayout>
11913 For example, the following sets up a replacement using
11914 version 1.2 or greater of the package
11915 <filename>foo</filename>:
11916 <literallayout class='monospaced'>
11917 RREPLACES_${PN} = "foo (>= 1.2)"
11918 </literallayout>
11919 </para>
11920 </glossdef>
11921 </glossentry>
11922
11923 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
11924 <info>
11925 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."
11926 </info>
11927 <glossdef>
11928 <para role="glossdeffirst">
11929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11930 A list of additional packages that you can suggest for
11931 installation by the package manager at the time a package
11932 is installed.
11933 Not all package managers support this functionality.
11934 </para>
11935
11936 <para>
11937 As with all package-controlling variables, you must always
11938 use this variable in conjunction with a package name
11939 override.
11940 Here is an example:
11941 <literallayout class='monospaced'>
11942 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
11943 </literallayout>
11944 </para>
11945 </glossdef>
11946 </glossentry>
11947
11948 </glossdiv>
11949
11950 <glossdiv id='var-glossary-s'><title>S</title>
11951
11952 <glossentry id='var-S'><glossterm>S</glossterm>
11953 <info>
11954 S[doc] = "The location in the Build Directory where unpacked package source code resides."
11955 </info>
11956 <glossdef>
11957 <para role="glossdeffirst">
11958<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11959 The location in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011960 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011961 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011962 By default, this directory is
11963 <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>,
11964 where <filename>${BPN}</filename> is the base recipe name
11965 and <filename>${PV}</filename> is the recipe version.
11966 If the source tarball extracts the code to a directory
11967 named anything other than <filename>${BPN}-${PV}</filename>,
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011968 or if the source code is fetched from an SCM such as
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011969 Git or Subversion, then you must set <filename>S</filename>
11970 in the recipe so that the OpenEmbedded build system
11971 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011972 </para>
11973
11974 <para>
11975 As an example, assume a
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011976 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011977 top-level folder named <filename>poky</filename> and a
11978 default Build Directory at <filename>poky/build</filename>.
11979 In this case, the work directory the build system uses
11980 to keep the unpacked recipe for <filename>db</filename>
11981 is the following:
11982 <literallayout class='monospaced'>
11983 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
11984 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011985 The unpacked source code resides in the
11986 <filename>db-5.1.19</filename> folder.
11987 </para>
11988
11989 <para>
11990 This next example assumes a Git repository.
11991 By default, Git repositories are cloned to
11992 <filename>${WORKDIR}/git</filename> during
11993 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
11994 Since this path is different from the default value of
11995 <filename>S</filename>, you must set it specifically
11996 so the source can be located:
11997 <literallayout class='monospaced'>
11998 SRC_URI = "git://path/to/repo.git"
11999 S = "${WORKDIR}/git"
12000 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012001 </para>
12002 </glossdef>
12003 </glossentry>
12004
12005 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
12006 <info>
12007 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."
12008 </info>
12009 <glossdef>
12010 <para role="glossdeffirst">
12011<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12012 Specifies a list of command-line utilities that should be
12013 checked for during the initial sanity checking process when
12014 running BitBake.
12015 If any of the utilities are not installed on the build host,
12016 then BitBake immediately exits with an error.
12017 </para>
12018 </glossdef>
12019 </glossentry>
12020
12021 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
12022 <info>
12023 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
12024 </info>
12025 <glossdef>
12026 <para role="glossdeffirst">
12027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12028 A list of the host distribution identifiers that the
12029 build system has been tested against.
12030 Identifiers consist of the host distributor ID
12031 followed by the release,
12032 as reported by the <filename>lsb_release</filename> tool
12033 or as read from <filename>/etc/lsb-release</filename>.
12034 Separate the list items with explicit newline
12035 characters (<filename>\n</filename>).
12036 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
12037 and the current value of
12038 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
12039 does not appear in the list, then the build system reports
12040 a warning that indicates the current host distribution has
12041 not been tested as a build host.
12042 </para>
12043 </glossdef>
12044 </glossentry>
12045
12046 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
12047 <info>
12048 SDK_ARCH[doc] = "The target architecture for the SDK."
12049 </info>
12050 <glossdef>
12051 <para role="glossdeffirst">
12052<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12053 The target architecture for the SDK.
12054 Typically, you do not directly set this variable.
12055 Instead, use
12056 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
12057 </para>
12058 </glossdef>
12059 </glossentry>
12060
12061 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
12062 <info>
12063 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
12064 </info>
12065 <glossdef>
12066 <para role="glossdeffirst">
12067<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12068 The directory set up and used by the
12069 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012070 class to which the SDK is deployed.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012071 The <filename>populate_sdk_base</filename> class defines
12072 <filename>SDK_DEPLOY</filename> as follows:
12073 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012074 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012075 </literallayout>
12076 </para>
12077 </glossdef>
12078 </glossentry>
12079
12080 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
12081 <info>
12082 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
12083 </info>
12084 <glossdef>
12085 <para role="glossdeffirst">
12086<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12087 The parent directory used by the OpenEmbedded build system
12088 when creating SDK output.
12089 The
12090 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12091 class defines the variable as follows:
12092 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012093 SDK_DIR = "${WORKDIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012094 </literallayout>
12095 <note>
12096 The <filename>SDK_DIR</filename> directory is a
12097 temporary directory as it is part of
12098 <filename>WORKDIR</filename>.
12099 The final output directory is
12100 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12101 </note>
12102 </para>
12103 </glossdef>
12104 </glossentry>
12105
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012106 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
12107 <info>
12108 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
12109 </info>
12110 <glossdef>
12111 <para role="glossdeffirst">
12112<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12113 Controls whether or not shared state artifacts are copied
12114 into the extensible SDK.
12115 The default value of "full" copies all of the required
12116 shared state artifacts into the extensible SDK.
12117 The value "minimal" leaves these artifacts out of the
12118 SDK.
12119 <note>
12120 If you set the variable to "minimal", you need to
12121 ensure
12122 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
12123 is set in the SDK's configuration to enable the
12124 artifacts to be fetched as needed.
12125 </note>
12126 </para>
12127 </glossdef>
12128 </glossentry>
12129
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012130 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
12131 <info>
12132 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."
12133 </info>
12134 <glossdef>
12135 <para role="glossdeffirst">
12136<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12137 The manifest file for the host part of the SDK.
12138 This file lists all the installed packages that make up
Brad Bishop316dfdd2018-06-25 12:45:53 -040012139 the host part of the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012140 The file contains package information on a line-per-package
12141 basis as follows:
12142 <literallayout class='monospaced'>
12143 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12144 </literallayout>
12145 </para>
12146
12147 <para>
12148 The
12149 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12150 class defines the manifest file as follows:
12151 <literallayout class='monospaced'>
12152 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
12153 </literallayout>
12154 The location is derived using the
12155 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12156 and
12157 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12158 variables.
12159 </para>
12160 </glossdef>
12161 </glossentry>
12162
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012163 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
12164 <info>
12165 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
12166 </info>
12167 <glossdef>
12168 <para role="glossdeffirst">
12169<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12170 When set to "1", specifies to include the packagedata for
12171 all recipes in the "world" target in the extensible SDK.
12172 Including this data allows the
12173 <filename>devtool search</filename> command to find these
12174 recipes in search results, as well as allows the
12175 <filename>devtool add</filename> command to map
12176 dependencies more effectively.
12177 <note>
12178 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
12179 variable significantly increases build time because
12180 all of world needs to be built.
12181 Enabling the variable also slightly increases the size
12182 of the extensible SDK.
12183 </note>
12184 </para>
12185 </glossdef>
12186 </glossentry>
12187
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012188 <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
12189 <info>
12190 SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
12191 </info>
12192 <glossdef>
12193 <para role="glossdeffirst">
12194<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12195 When set to "1", specifies to include the toolchain in the
12196 extensible SDK.
12197 Including the toolchain is useful particularly when
12198 <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
12199 is set to "minimal" to keep the SDK reasonably small
12200 but you still want to provide a usable toolchain.
12201 For example, suppose you want to use the toolchain from an
12202 IDE (e.g. Eclipse) or from other tools and you do not
12203 want to perform additional steps to install the toolchain.
12204 </para>
12205
12206 <para>
12207 The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
12208 defaults to "0" if <filename>SDK_EXT_TYPE</filename>
12209 is set to "minimal", and defaults to "1" if
12210 <filename>SDK_EXT_TYPE</filename> is set to "full".
12211 </para>
12212 </glossdef>
12213 </glossentry>
12214
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012215 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
12216 <info>
12217 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
12218 </info>
12219 <glossdef>
12220 <para role="glossdeffirst">
12221<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12222 A list of classes to remove from the
12223 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
12224 value globally within the extensible SDK configuration.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012225 The
12226 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12227 class sets the default value:
12228 <literallayout class='monospaced'>
12229 SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
12230 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012231 </para>
12232
12233 <para>
12234 Some classes are not generally applicable within
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012235 the extensible SDK context.
12236 You can use this variable to disable those classes.
12237 </para>
12238
12239 <para>
12240 For additional information on how to customize the
12241 extensible SDK's configuration, see the
12242 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12243 section in the Yocto Project Application Development and
12244 the Extensible Software Development Kit (eSDK) manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012245 </para>
12246 </glossdef>
12247 </glossentry>
12248
12249 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
12250 <info>
12251 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
12252 </info>
12253 <glossdef>
12254 <para role="glossdeffirst">
12255<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012256 A list of variables not allowed through from the
12257 OpenEmbedded build system configuration into the extensible
12258 SDK configuration.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012259 Usually, these are variables that are specific to the
12260 machine on which the build system is running and thus
12261 would be potentially problematic within the extensible SDK.
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012262 </para>
12263
12264 <para>By default,
12265 <filename>SDK_LOCAL_CONF_BLACKLIST</filename> is set in the
12266 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12267 class and excludes the following variables:
12268 <literallayout class='monospaced'>
12269 <link linkend='var-CONF_VERSION'>CONF_VERSION</link>
12270 <link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link>
12271 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_NUMBER_PARSE_THREADS'>BB_NUMBER_PARSE_THREADS</ulink>
12272 <link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link>
12273 <link linkend='var-PRSERV_HOST'>PRSERV_HOST</link>
12274 <link linkend='var-SSTATE_MIRRORS'>SSTATE_MIRRORS</link>
12275 <link linkend='var-DL_DIR'>DL_DIR</link>
12276 <link linkend='var-SSTATE_DIR'>SSTATE_DIR</link>
12277 <link linkend='var-TMPDIR'>TMPDIR</link>
12278 <link linkend='var-BB_SERVER_TIMEOUT'>BB_SERVER_TIMEOUT</link>
12279 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012280 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012281
12282 <para>
12283 For additional information on how to customize the
12284 extensible SDK's configuration, see the
12285 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12286 section in the Yocto Project Application Development and
12287 the Extensible Software Development Kit (eSDK) manual.
12288 </para>
12289
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012290 </glossdef>
12291 </glossentry>
12292
12293 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
12294 <info>
12295 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
12296 </info>
12297 <glossdef>
12298 <para role="glossdeffirst">
12299<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012300 A list of variables allowed through from the OpenEmbedded
12301 build system configuration into the extensible SDK
12302 configuration.
12303 By default, the list of variables is empty and is set in
12304 the
12305 <link linkend='ref-classes-populate-sdk-*'><filename>populate-sdk-ext</filename></link>
12306 class.
12307 </para>
12308
12309 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012310 This list overrides the variables specified using the
12311 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
12312 variable as well as any variables identified by automatic
12313 blacklisting due to the "/" character being found at the
12314 start of the value, which is usually indicative of being a
12315 path and thus might not be valid on the system where the
12316 SDK is installed.
12317 </para>
Brad Bishopd5ae7d92018-06-14 09:52:03 -070012318
12319 <para>
12320 For additional information on how to customize the
12321 extensible SDK's configuration, see the
12322 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-configuring-the-extensible-sdk'>Configuring the Extensible SDK</ulink>"
12323 section in the Yocto Project Application Development and
12324 the Extensible Software Development Kit (eSDK) manual.
12325 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012326 </glossdef>
12327 </glossentry>
12328
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012329 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
12330 <info>
12331 SDK_NAME[doc] = "The base name for SDK output files."
12332 </info>
12333 <glossdef>
12334 <para role="glossdeffirst">
12335<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12336 The base name for SDK output files.
12337 The name is derived from the
12338 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
12339 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12340 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12341 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
12342 and
12343 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
12344 variables:
12345 <literallayout class='monospaced'>
12346 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
12347 </literallayout>
12348 </para>
12349 </glossdef>
12350 </glossentry>
12351
12352 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
12353 <info>
12354 SDK_OS[doc] = "The operating system for which the SDK will be built."
12355 </info>
12356 <glossdef>
12357 <para role="glossdeffirst">
12358<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12359 Specifies the operating system for which the SDK
12360 will be built.
12361 The default value is the value of
12362 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
12363 </para>
12364 </glossdef>
12365 </glossentry>
12366
12367 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
12368 <info>
12369 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
12370 </info>
12371 <glossdef>
12372 <para role="glossdeffirst">
12373<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12374 The location used by the OpenEmbedded build system when
12375 creating SDK output.
12376 The
12377 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12378 class defines the variable as follows:
12379 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012380 SDK_DIR = "${WORKDIR}/sdk"
12381 SDK_OUTPUT = "${SDK_DIR}/image"
12382 SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012383 </literallayout>
12384 <note>
12385 The <filename>SDK_OUTPUT</filename> directory is a
12386 temporary directory as it is part of
Brad Bishop316dfdd2018-06-25 12:45:53 -040012387 <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12388 by way of
12389 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012390 The final output directory is
12391 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12392 </note>
12393 </para>
12394 </glossdef>
12395 </glossentry>
12396
12397 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
12398 <info>
12399 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."
12400 </info>
12401 <glossdef>
12402 <para role="glossdeffirst">
12403<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12404 Specifies a list of architectures compatible with
12405 the SDK machine.
12406 This variable is set automatically and should not
12407 normally be hand-edited.
12408 Entries are separated using spaces and listed in order
12409 of priority.
12410 The default value for
12411 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
12412 ${SDK_ARCH}-${SDKPKGSUFFIX}".
12413 </para>
12414 </glossdef>
12415 </glossentry>
12416
12417 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
12418 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012419 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 -050012420 </info>
12421 <glossdef>
12422 <para role="glossdeffirst">
12423<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12424 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012425 OpenEmbedded build system creates the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012426 You can specify functions separated by semicolons:
12427 <literallayout class='monospaced'>
12428 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12429 </literallayout>
12430 </para>
12431
12432 <para>
12433 If you need to pass an SDK path to a command within a
12434 function, you can use
12435 <filename>${SDK_DIR}</filename>, which points to
12436 the parent directory used by the OpenEmbedded build system
12437 when creating SDK output.
12438 See the
12439 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
12440 variable for more information.
12441 </para>
12442 </glossdef>
12443 </glossentry>
12444
12445 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
12446 <info>
12447 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
12448 </info>
12449 <glossdef>
12450 <para role="glossdeffirst">
12451<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012452 The toolchain binary prefix used for
12453 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012454 The OpenEmbedded build system uses the
12455 <filename>SDK_PREFIX</filename> value to set the
12456 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
12457 when building <filename>nativesdk</filename> recipes.
12458 The default value is "${SDK_SYS}-".
12459 </para>
12460 </glossdef>
12461 </glossentry>
12462
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012463 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
12464 <info>
12465 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
12466 </info>
12467 <glossdef>
12468 <para role="glossdeffirst">
12469<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12470 A list of shared state tasks added to the extensible SDK.
12471 By default, the following tasks are added:
12472 <literallayout class='monospaced'>
12473 do_populate_lic
12474 do_package_qa
12475 do_populate_sysroot
12476 do_deploy
12477 </literallayout>
12478 Despite the default value of "" for the
12479 <filename>SDK_RECRDEP_TASKS</filename> variable, the
12480 above four tasks are always added to the SDK.
12481 To specify tasks beyond these four, you need to use
12482 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
12483 you are defining additional tasks that are needed in
12484 order to build
12485 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
12486 </para>
12487 </glossdef>
12488 </glossentry>
12489
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012490 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
12491 <info>
12492 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
12493 </info>
12494 <glossdef>
12495 <para role="glossdeffirst">
12496<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12497 Specifies the system, including the architecture and the
12498 operating system, for which the SDK will be built.
12499 </para>
12500
12501 <para>
12502 The OpenEmbedded build system automatically sets this
12503 variable based on
12504 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12505 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
12506 and
12507 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
12508 You do not need to set the <filename>SDK_SYS</filename>
12509 variable yourself.
12510 </para>
12511 </glossdef>
12512 </glossentry>
12513
12514 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
12515 <info>
12516 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."
12517 </info>
12518 <glossdef>
12519 <para role="glossdeffirst">
12520<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12521 The manifest file for the target part of the SDK.
12522 This file lists all the installed packages that make up
12523 the target part of the SDK.
12524 The file contains package information on a line-per-package
12525 basis as follows:
12526 <literallayout class='monospaced'>
12527 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12528 </literallayout>
12529 </para>
12530
12531 <para>
12532 The
12533 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12534 class defines the manifest file as follows:
12535 <literallayout class='monospaced'>
12536 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
12537 </literallayout>
12538 The location is derived using the
12539 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12540 and
12541 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12542 variables.
12543 </para>
12544 </glossdef>
12545 </glossentry>
12546
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012547 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
12548 <info>
12549 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
12550 </info>
12551 <glossdef>
12552 <para role="glossdeffirst">
12553<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12554 A list of targets to install from shared state as part of
12555 the standard or extensible SDK installation.
12556 The default value is "${PN}" (i.e. the image from which
12557 the SDK is built).
12558 </para>
12559
12560 <para>
12561 The <filename>SDK_TARGETS</filename> variable is an
12562 internal variable and typically would not be changed.
12563 </para>
12564 </glossdef>
12565 </glossentry>
12566
12567 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
12568 <info>
12569 SDK_TITLE[doc] = "Specifies a title to be printed when running the SDK installer."
12570 </info>
12571 <glossdef>
12572 <para role="glossdeffirst">
12573<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12574 Specifies a title to be printed when running the SDK
12575 installer.
12576 The <filename>SDK_TITLE</filename> variable defaults to
12577 "<replaceable>distro</replaceable> SDK" for the standard
12578 SDK and "<replaceable>distro</replaceable> Extensible SDK"
12579 for the extensible SDK, where
12580 <replaceable>distro</replaceable> is the first one of
12581 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
12582 or
12583 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
12584 that is set in your configuration.
12585 </para>
12586 </glossdef>
12587 </glossentry>
12588
12589 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
12590 <info>
12591 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
12592 </info>
12593 <glossdef>
12594 <para role="glossdeffirst">
12595<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12596 An optional URL for an update server for the extensible
12597 SDK.
12598 If set, the value is used as the default update server when
12599 running <filename>devtool sdk-update</filename> within the
12600 extensible SDK.
12601 </para>
12602 </glossdef>
12603 </glossentry>
12604
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012605 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
12606 <info>
12607 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
12608 </info>
12609 <glossdef>
12610 <para role="glossdeffirst">
12611<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12612 Specifies the name of the SDK vendor.
12613 </para>
12614 </glossdef>
12615 </glossentry>
12616
12617 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
12618 <info>
12619 SDK_VERSION[doc] = "Specifies the version for the SDK."
12620 </info>
12621 <glossdef>
12622 <para role="glossdeffirst">
12623<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12624 Specifies the version of the SDK.
12625 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012626 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012627 defines the <filename>SDK_VERSION</filename> as follows:
12628 <literallayout class='monospaced'>
12629 SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
12630 </literallayout>
12631 </para>
12632
12633 <para>
12634 For additional information, see the
12635 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
12636 and
12637 <link linkend='var-DATE'><filename>DATE</filename></link>
12638 variables.
12639 </para>
12640 </glossdef>
12641 </glossentry>
12642
12643 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
12644 <info>
12645 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'."
12646 </info>
12647 <glossdef>
12648 <para role="glossdeffirst">
12649<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12650 Equivalent to
12651 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
12652 However, this variable applies to the SDK generated from an
12653 image using the following command:
12654 <literallayout class='monospaced'>
12655 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
12656 </literallayout>
12657 </para>
12658 </glossdef>
12659 </glossentry>
12660
12661 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
12662 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012663 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012664 </info>
12665 <glossdef>
12666 <para role="glossdeffirst">
12667<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012668 The machine for which the SDK is built.
12669 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012670 runs on the target you specify with the
12671 <filename>SDKMACHINE</filename> value.
12672 The value points to a corresponding
12673 <filename>.conf</filename> file under
12674 <filename>conf/machine-sdk/</filename>.
12675 </para>
12676
12677 <para>
12678 You can use "i686" and "x86_64" as possible values
12679 for this variable. The variable defaults to "i686"
12680 and is set in the local.conf file in the Build Directory.
12681 <literallayout class='monospaced'>
12682 SDKMACHINE ?= "i686"
12683 </literallayout>
12684 <note>
12685 You cannot set the <filename>SDKMACHINE</filename>
12686 variable in your distribution configuration file.
12687 If you do, the configuration will not take affect.
12688 </note>
12689 </para>
12690 </glossdef>
12691 </glossentry>
12692
12693 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
12694 <info>
12695 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
12696 </info>
12697 <glossdef>
12698 <para role="glossdeffirst">
12699<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12700 Defines the path offered to the user for installation
12701 of the SDK that is generated by the OpenEmbedded build
12702 system.
12703 The path appears as the default location for installing
12704 the SDK when you run the SDK's installation script.
12705 You can override the offered path when you run the
12706 script.
12707 </para>
12708 </glossdef>
12709 </glossentry>
12710
12711 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
12712 <info>
12713 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
12714 </info>
12715 <glossdef>
12716 <para role="glossdeffirst">
12717<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12718 The full path to the sysroot used for cross-compilation
12719 within an SDK as it will be when installed into the
12720 default
12721 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
12722 </para>
12723 </glossdef>
12724 </glossentry>
12725
12726 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
12727 <info>
12728 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
12729 </info>
12730 <glossdef>
12731 <para role="glossdeffirst">
12732<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12733 The section in which packages should be categorized.
12734 Package management utilities can make use of this variable.
12735 </para>
12736 </glossdef>
12737 </glossentry>
12738
12739 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
12740 <info>
12741 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."
12742 </info>
12743 <glossdef>
12744 <para role="glossdeffirst">
12745<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12746 Specifies the optimization flags passed to the C compiler
12747 when building for the target.
12748 The flags are passed through the default value of the
12749 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
12750 variable.
12751 </para>
12752
12753 <para>
12754 The <filename>SELECTED_OPTIMIZATION</filename> variable
12755 takes the value of
12756 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
12757 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
12758 If that is the case, the value of
12759 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
12760 </para>
12761 </glossdef>
12762 </glossentry>
12763
12764 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
12765 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012766 SERIAL_CONSOLE[doc] = "Defines the serial consoles (TTYs) to enable using getty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012767 </info>
12768 <glossdef>
12769 <para role="glossdeffirst">
12770<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040012771 Defines a serial console (TTY) to enable using
12772 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012773 Provide a value that specifies the baud rate followed by
12774 the TTY device name separated by a space.
12775 You cannot specify more than one TTY device:
12776 <literallayout class='monospaced'>
12777 SERIAL_CONSOLE = "115200 ttyS0"
12778 </literallayout>
12779 <note>
12780 The <filename>SERIAL_CONSOLE</filename> variable
12781 is deprecated.
12782 Please use the
12783 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
12784 variable.
12785 </note>
12786 </para>
12787 </glossdef>
12788 </glossentry>
12789
12790 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
12791 <info>
12792 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
12793 </info>
12794 <glossdef>
12795 <para role="glossdeffirst">
12796<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040012797 Defines a serial console (TTY) to enable using
12798 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012799 Provide a value that specifies the baud rate followed by
12800 the TTY device name separated by a semicolon.
12801 Use spaces to separate multiple devices:
12802 <literallayout class='monospaced'>
12803 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
12804 </literallayout>
12805 </para>
12806 </glossdef>
12807 </glossentry>
12808
12809 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
12810 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012811 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 -050012812 </info>
12813 <glossdef>
12814 <para role="glossdeffirst">
12815<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012816 Specifies serial consoles, which must be listed in
12817 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
12818 to check against <filename>/proc/console</filename>
12819 before enabling them using getty.
12820 This variable allows aliasing in the format:
12821 &lt;device&gt;:&lt;alias&gt;.
12822 If a device was listed as "sclp_line0"
12823 in <filename>/dev/</filename> and "ttyS0" was listed
12824 in <filename>/proc/console</filename>, you would do the
12825 following:
12826 <literallayout class='monospaced'>
12827 SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
12828 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012829 This variable is currently only supported with SysVinit
12830 (i.e. not with systemd).
12831 </para>
12832 </glossdef>
12833 </glossentry>
12834
12835 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
12836 <info>
12837 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."
12838 </info>
12839 <glossdef>
12840 <para role="glossdeffirst">
12841<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12842 A list of recipe dependencies that should not be used to
12843 determine signatures of tasks from one recipe when they
12844 depend on tasks from another recipe.
12845 For example:
12846 <literallayout class='monospaced'>
12847 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
12848 </literallayout>
12849 </para>
12850
12851 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012852 In the previous example, <filename>intone</filename>
12853 depends on <filename>mplayer2</filename>.
12854 </para>
12855
12856 <para>
12857 You can use the special token <filename>"*"</filename> on
12858 the left-hand side of the dependency to match all
12859 recipes except the one on the right-hand side.
12860 Here is an example:
12861 <literallayout class='monospaced'>
12862 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
12863 </literallayout>
12864 </para>
12865
12866 <para>
12867 In the previous example, all recipes except
12868 <filename>quilt-native</filename> ignore task
12869 signatures from the <filename>quilt-native</filename>
12870 recipe when determining their task signatures.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012871 </para>
12872
12873 <para>
12874 Use of this variable is one mechanism to remove dependencies
12875 that affect task signatures and thus force rebuilds when a
12876 recipe changes.
12877 <note><title>Caution</title>
12878 If you add an inappropriate dependency for a recipe
12879 relationship, the software might break during
12880 runtime if the interface of the second recipe was
12881 changed after the first recipe had been built.
12882 </note>
12883 </para>
12884 </glossdef>
12885 </glossentry>
12886
12887 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
12888 <info>
12889 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
12890 </info>
12891 <glossdef>
12892 <para role="glossdeffirst">
12893<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12894 A list of recipes that are completely stable and will
12895 never change.
12896 The ABI for the recipes in the list are presented by
12897 output from the tasks run to build the recipe.
12898 Use of this variable is one way to remove dependencies from
12899 one recipe on another that affect task signatures and
12900 thus force rebuilds when the recipe changes.
12901 <note><title>Caution</title>
12902 If you add an inappropriate variable to this list,
12903 the software might break at runtime if the
12904 interface of the recipe was changed after the other
12905 had been built.
12906 </note>
12907 </para>
12908 </glossdef>
12909 </glossentry>
12910
12911 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
12912 <info>
12913 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
12914 </info>
12915 <glossdef>
12916 <para role="glossdeffirst">
12917<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12918 Specifies the number of bits for the target system CPU.
12919 The value should be either "32" or "64".
12920 </para>
12921 </glossdef>
12922 </glossentry>
12923
12924 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
12925 <info>
12926 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'."
12927 </info>
12928 <glossdef>
12929 <para role="glossdeffirst">
12930<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12931 Specifies the endian byte order of the target system.
12932 The value should be either "le" for little-endian or "be" for big-endian.
12933 </para>
12934 </glossdef>
12935 </glossentry>
12936
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012937 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
12938 <info>
12939 SKIP_FILEDEPS[doc] = "Enables you to remove all files from
12940 the "Provides" section of an RPM package."
12941 </info>
12942 <glossdef>
12943 <para role="glossdeffirst">
12944<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12945 Enables removal of all files from the "Provides" section of
12946 an RPM package.
12947 Removal of these files is required for packages containing
12948 prebuilt binaries and libraries such as
12949 <filename>libstdc++</filename> and
12950 <filename>glibc</filename>.
12951 </para>
12952
12953 <para>
12954 To enable file removal, set the variable to "1" in your
12955 <filename>conf/local.conf</filename> configuration file
12956 in your:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012957 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012958 <literallayout class='monospaced'>
12959 SKIP_FILEDEPS = "1"
12960 </literallayout>
12961 </para>
12962 </glossdef>
12963 </glossentry>
12964
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012965 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
12966 <info>
12967 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."
12968 </info>
12969 <glossdef>
12970 <para role="glossdeffirst">
12971<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12972 Groups together machines based upon the same family
12973 of SOC (System On Chip).
12974 You typically set this variable in a common
12975 <filename>.inc</filename> file that you include in the
12976 configuration files of all the machines.
12977 <note>
12978 You must include
12979 <filename>conf/machine/include/soc-family.inc</filename>
12980 for this variable to appear in
12981 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
12982 </note>
12983 </para>
12984 </glossdef>
12985 </glossentry>
12986
12987 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
12988 <info>
12989 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
12990 </info>
12991 <glossdef>
12992 <para role="glossdeffirst">
12993<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12994 Defines the suffix for shared libraries used on the
12995 target platform.
12996 By default, this suffix is ".so.*" for all Linux-based
12997 systems and is defined in the
12998 <filename>meta/conf/bitbake.conf</filename> configuration
12999 file.
13000 </para>
13001
13002 <para>
13003 You will see this variable referenced in the default values
13004 of <filename>FILES_${PN}</filename>.
13005 </para>
13006 </glossdef>
13007 </glossentry>
13008
13009 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
13010 <info>
13011 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
13012 </info>
13013 <glossdef>
13014 <para role="glossdeffirst">
13015<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13016 Defines the suffix for the development symbolic link
13017 (symlink) for shared libraries on the target platform.
13018 By default, this suffix is ".so" for Linux-based
13019 systems and is defined in the
13020 <filename>meta/conf/bitbake.conf</filename> configuration
13021 file.
13022 </para>
13023
13024 <para>
13025 You will see this variable referenced in the default values
13026 of <filename>FILES_${PN}-dev</filename>.
13027 </para>
13028 </glossdef>
13029 </glossentry>
13030
13031 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
13032 <info>
13033 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
13034 </info>
13035 <glossdef>
13036 <para role="glossdeffirst">
13037<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13038 When you are fetching files to create a mirror of sources
13039 (i.e. creating a source mirror), setting
13040 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
13041 <filename>local.conf</filename> configuration file ensures
13042 the source for all recipes are fetched regardless of
13043 whether or not a recipe is compatible with the
13044 configuration.
13045 A recipe is considered incompatible with the currently
13046 configured machine when either or both the
13047 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
13048 variable and
13049 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
13050 variables specify compatibility with a machine other
13051 than that of the current machine or host.
13052 <note><title>Warning</title>
13053 Do not set the
13054 <filename>SOURCE_MIRROR_FETCH</filename> variable
13055 unless you are creating a source mirror.
13056 In other words, do not set the variable during a
13057 normal build.
13058 </note>
13059 </para>
13060 </glossdef>
13061 </glossentry>
13062
13063 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
13064 <info>
13065 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
13066 </info>
13067 <glossdef>
13068 <para role="glossdeffirst">
13069<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13070 Defines your own
13071 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13072 from which to first fetch source before attempting to fetch
13073 from the upstream specified in
13074 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
13075 </para>
13076
13077 <para>
13078 To use this variable, you must globally inherit the
13079 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
13080 class and then provide the URL to your mirrors.
13081 Here is the general syntax:
13082 <literallayout class='monospaced'>
13083 INHERIT += "own-mirrors"
13084 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
13085 </literallayout>
13086 <note>
13087 You can specify only a single URL in
13088 <filename>SOURCE_MIRROR_URL</filename>.
13089 </note>
13090 </para>
13091 </glossdef>
13092 </glossentry>
13093
13094 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
13095 <info>
13096 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
13097 </info>
13098 <glossdef>
13099 <para role="glossdeffirst">
13100<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13101 Maps commonly used license names to their SPDX counterparts
13102 found in <filename>meta/files/common-licenses/</filename>.
13103 For the default <filename>SPDXLICENSEMAP</filename>
13104 mappings, see the
13105 <filename>meta/conf/licenses.conf</filename> file.
13106 </para>
13107
13108 <para>
13109 For additional information, see the
13110 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
13111 variable.
13112 </para>
13113 </glossdef>
13114 </glossentry>
13115
13116 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
13117 <info>
13118 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."
13119 </info>
13120 <glossdef>
13121 <para role="glossdeffirst">
13122<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13123 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
13124 OpenEmbedded build system to create variants of recipes or packages.
13125 The list specifies the prefixes to strip off during certain circumstances
13126 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
13127 </para>
13128 </glossdef>
13129 </glossentry>
13130
Brad Bishop316dfdd2018-06-25 12:45:53 -040013131 <glossentry id='var-SPL_BINARY'><glossterm>SPL_BINARY</glossterm>
13132 <info>
13133 SPL_BINARY[doc] = "The file type of the Secondary Program Loader (SPL)."
13134 </info>
13135 <glossdef>
13136 <para role="glossdeffirst">
13137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13138 The file type for the Secondary Program Loader (SPL).
13139 Some devices use an SPL from which to boot (e.g. the
13140 BeagleBone development board).
13141 For such cases, you can declare the file type of the
13142 SPL binary in the <filename>u-boot.inc</filename> include
13143 file, which is used in the U-Boot recipe.
13144 </para>
13145
13146 <para>
13147 The SPL file type is set to "null" by default in the
13148 <filename>u-boot.inc</filename> file as follows:
13149 <literallayout class='monospaced'>
13150 # Some versions of u-boot build an SPL (Second Program Loader) image that
13151 # should be packaged along with the u-boot binary as well as placed in the
13152 # deploy directory. For those versions they can set the following variables
13153 # to allow packaging the SPL.
13154 SPL_BINARY ?= ""
13155 SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
13156 SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
13157 SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
13158 </literallayout>
13159 The <filename>SPL_BINARY</filename> variable helps form
13160 various <filename>SPL_*</filename> variables used by
13161 the OpenEmbedded build system.
13162 </para>
13163
13164 <para>
13165 See the BeagleBone machine configuration example in the
13166 "<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>"
13167 section in the Yocto Project Board Support Package
13168 Developer's Guide for additional information.
13169 </para>
13170 </glossdef>
13171 </glossentry>
13172
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013173 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
13174 <info>
13175 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."
13176 </info>
13177 <glossdef>
13178 <para role="glossdeffirst">
13179<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13180 The list of source files - local or remote.
13181 This variable tells the OpenEmbedded build system which bits
13182 to pull in for the build and how to pull them in.
13183 For example, if the recipe or append file only needs to
13184 fetch a tarball from the Internet, the recipe or
13185 append file uses a single <filename>SRC_URI</filename>
13186 entry.
13187 On the other hand, if the recipe or append file needs to
13188 fetch a tarball, apply two patches, and include a custom
13189 file, the recipe or append file would include four
13190 instances of the variable.
13191 </para>
13192
13193 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013194 The following list explains the available URI protocols.
13195 URI protocols are highly dependent on particular BitBake
13196 Fetcher submodules.
13197 Depending on the fetcher BitBake uses, various URL
13198 parameters are employed.
13199 For specifics on the supported Fetchers, see the
13200 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
13201 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013202 <itemizedlist>
13203 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
13204 Fetches files, which are usually files shipped with
13205 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013206 <link linkend='metadata'>Metadata</link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -040013207 from the local machine (e.g.
13208 <ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>patch</ulink>
13209 files).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013210 The path is relative to the
13211 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
13212 variable.
13213 Thus, the build system searches, in order, from the
13214 following directories, which are assumed to be a
13215 subdirectories of the directory in which the
13216 recipe file (<filename>.bb</filename>) or
13217 append file (<filename>.bbappend</filename>)
13218 resides:
13219 <itemizedlist>
13220 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
13221 The base recipe name without any special
13222 suffix or version numbers.
13223 </para></listitem>
13224 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
13225 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
13226 The base recipe name and version but without
13227 any special package name suffix.
13228 </para></listitem>
13229 <listitem><para><emphasis>files -</emphasis>
13230 Files within a directory, which is named
13231 <filename>files</filename> and is also
13232 alongside the recipe or append file.
13233 </para></listitem>
13234 </itemizedlist>
13235 <note>
13236 If you want the build system to pick up files
13237 specified through a
13238 <filename>SRC_URI</filename>
13239 statement from your append file, you need to be
13240 sure to extend the
13241 <filename>FILESPATH</filename>
13242 variable by also using the
13243 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
13244 variable from within your append file.
13245 </note>
13246 </para></listitem>
13247 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
13248 Bazaar revision control repository.</para></listitem>
13249 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
13250 Git revision control repository.</para></listitem>
13251 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
13252 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
13253 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
13254 a repo (Git) repository.</para></listitem>
13255 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
13256 Fetches files from a ClearCase repository.
13257 </para></listitem>
13258 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
13259 the Internet using <filename>http</filename>.</para></listitem>
13260 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
13261 from the Internet using <filename>https</filename>.</para></listitem>
13262 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
13263 from the Internet using <filename>ftp</filename>.</para></listitem>
13264 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
13265 a CVS revision control repository.</para></listitem>
13266 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
13267 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
13268 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
13269 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
13270 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
13271 a secure shell.</para></listitem>
13272 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
13273 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
13274 </itemizedlist>
13275 </para>
13276
13277 <para>
13278 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
13279 Here are standard options:
13280 <itemizedlist>
13281 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
13282 the patch or not.
13283 The default action is to apply the patch.</para></listitem>
13284 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
13285 striplevel to use when applying the patch.
13286 The default level is 1.</para></listitem>
13287 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
13288 the directory in which the patch should be applied.
13289 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
13290 </para></listitem>
13291 </itemizedlist>
13292 </para>
13293
13294 <para>
13295 Here are options specific to recipes building code from a revision control system:
13296 <itemizedlist>
13297 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
13298 Apply the patch only if
13299 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
13300 is equal to or greater than <filename>mindate</filename>.
13301 </para></listitem>
13302 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
13303 Apply the patch only if <filename>SRCDATE</filename>
13304 is not later than <filename>mindate</filename>.
13305 </para></listitem>
13306 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
13307 Apply the patch only if <filename>SRCREV</filename>
13308 is equal to or greater than <filename>minrev</filename>.
13309 </para></listitem>
13310 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
13311 Apply the patch only if <filename>SRCREV</filename>
13312 is not later than <filename>maxrev</filename>.
13313 </para></listitem>
13314 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
13315 Apply the patch only if <filename>SRCREV</filename>
13316 is equal to <filename>rev</filename>.
13317 </para></listitem>
13318 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
13319 Apply the patch only if <filename>SRCREV</filename>
13320 is not equal to <filename>rev</filename>.
13321 </para></listitem>
13322 </itemizedlist>
13323 </para>
13324
13325 <para>
13326 Here are some additional options worth mentioning:
13327 <itemizedlist>
13328 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
13329 whether or not to unpack the file if it is an archive.
13330 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013331 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
13332 (or extracts its contents) into the specified
13333 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
13334 when the Git fetcher is used.
13335 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013336 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
13337 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013338 subdirectory of <filename>WORKDIR</filename>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013339 when the local (<filename>file://</filename>)
13340 fetcher is used.
13341 </para></listitem>
13342 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
13343 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013344 subdirectory of <filename>WORKDIR</filename> when
13345 the CVS fetcher is used.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013346 </para></listitem>
13347 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
13348 Limits the checkout to a specific subpath of the
13349 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013350 </para></listitem>
13351 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
13352 name to be used for association with <filename>SRC_URI</filename> checksums
13353 when you have more than one file specified in <filename>SRC_URI</filename>.
13354 </para></listitem>
13355 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
13356 the filename used when storing the downloaded file.</para></listitem>
13357 </itemizedlist>
13358 </para>
13359 </glossdef>
13360 </glossentry>
13361
13362 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
13363 <info>
13364 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."
13365 </info>
13366 <glossdef>
13367 <para role="glossdeffirst">
13368<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13369 By default, the OpenEmbedded build system automatically detects whether
13370 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
13371 contains files that are machine-specific.
13372 If so, the build system automatically changes
13373 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
13374 Setting this variable to "0" disables this behavior.
13375 </para>
13376 </glossdef>
13377 </glossentry>
13378
13379 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
13380 <info>
13381 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)."
13382 </info>
13383 <glossdef>
13384 <para role="glossdeffirst">
13385<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13386 The date of the source code used to build the package.
13387 This variable applies only if the source was fetched from a Source Code Manager (SCM).
13388 </para>
13389 </glossdef>
13390 </glossentry>
13391
13392 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
13393 <info>
13394 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
13395 </info>
13396 <glossdef>
13397 <para role="glossdeffirst">
13398<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13399 Returns the version string of the current package.
13400 This string is used to help define the value of
13401 <link linkend='var-PV'><filename>PV</filename></link>.
13402 </para>
13403
13404 <para>
13405 The <filename>SRCPV</filename> variable is defined in the
13406 <filename>meta/conf/bitbake.conf</filename> configuration
13407 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013408 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013409 as follows:
13410 <literallayout class='monospaced'>
13411 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
13412 </literallayout>
13413 </para>
13414
13415 <para>
13416 Recipes that need to define <filename>PV</filename> do so
13417 with the help of the <filename>SRCPV</filename>.
13418 For example, the <filename>ofono</filename> recipe
13419 (<filename>ofono_git.bb</filename>) located in
13420 <filename>meta/recipes-connectivity</filename> in the
13421 Source Directory defines <filename>PV</filename> as
13422 follows:
13423 <literallayout class='monospaced'>
13424 PV = "0.12-git${SRCPV}"
13425 </literallayout>
13426 </para>
13427 </glossdef>
13428 </glossentry>
13429
13430 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
13431 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013432 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 -050013433 </info>
13434 <glossdef>
13435 <para role="glossdeffirst">
13436<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13437 The revision of the source code used to build the package.
Brad Bishop316dfdd2018-06-25 12:45:53 -040013438 This variable applies to Subversion, Git, Mercurial, and
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013439 Bazaar only.
13440 Note that if you want to build a fixed revision and you
13441 want to avoid performing a query on the remote repository
13442 every time BitBake parses your recipe, you should specify
13443 a <filename>SRCREV</filename> that is a
13444 full revision identifier and not just a tag.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013445 <note>
13446 For information on limitations when inheriting the
13447 latest revision of software using
13448 <filename>SRCREV</filename>, see the
13449 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
13450 variable description and the
13451 "<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 -050013452 section, which is in the Yocto Project Development
13453 Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013454 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013455 </para>
13456
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013457 </glossdef>
13458 </glossentry>
13459
13460 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
13461 <info>
13462 SSTATE_DIR[doc] = "The directory for the shared state cache."
13463 </info>
13464 <glossdef>
13465 <para role="glossdeffirst">
13466<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13467 The directory for the shared state cache.
13468 </para>
13469 </glossdef>
13470 </glossentry>
13471
13472 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
13473 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013474 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 -050013475 </info>
13476 <glossdef>
13477 <para role="glossdeffirst">
13478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13479 If set to "1", allows fetches from
13480 mirrors that are specified in
13481 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013482 to work even when fetching from the network is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013483 disabled by setting <filename>BB_NO_NETWORK</filename>
13484 to "1".
13485 Using the
13486 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
13487 variable is useful if you have set
13488 <filename>SSTATE_MIRRORS</filename> to point to an
13489 internal server for your shared state cache, but
13490 you want to disable any other fetching from the network.
13491 </para>
13492 </glossdef>
13493 </glossentry>
13494
13495 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
13496 <info>
13497 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."
13498 </info>
13499 <glossdef>
13500 <para role="glossdeffirst">
13501<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13502 Configures the OpenEmbedded build system to search other
13503 mirror locations for prebuilt cache data objects before
13504 building out the data.
13505 This variable works like fetcher
13506 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
13507 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13508 and points to the cache locations to check for the shared
13509 objects.
13510 </para>
13511
13512 <para>
13513 You can specify a filesystem directory or a remote URL such
13514 as HTTP or FTP.
13515 The locations you specify need to contain the shared state
13516 cache (sstate-cache) results from previous builds.
13517 The sstate-cache you point to can also be from builds on
13518 other machines.
13519 </para>
13520
13521 <para>
13522 If a mirror uses the same structure as
13523 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
13524 you need to add
13525 "PATH" at the end as shown in the examples below.
13526 The build system substitutes the correct path within the
13527 directory structure.
13528 <literallayout class='monospaced'>
13529 SSTATE_MIRRORS ?= "\
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013530 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013531 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
13532 </literallayout>
13533 </para>
13534 </glossdef>
13535 </glossentry>
13536
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013537 <glossentry id='var-SSTATE_SCAN_FILES'><glossterm>SSTATE_SCAN_FILES</glossterm>
13538 <info>
13539 SSTATE_SCAN_FILES[doc] = "Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths."
13540 </info>
13541 <glossdef>
13542 <para role="glossdeffirst">
13543<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13544 Controls the list of files the OpenEmbedded build system
13545 scans for hardcoded installation paths. The variable uses a
13546 space-separated list of filenames (not paths) with standard
13547 wildcard characters allowed.
13548 </para>
13549
13550 <para>
13551 During a build, the OpenEmbedded build system creates a
13552 shared state (sstate) object during the first stage of
13553 preparing the sysroots. That object is scanned for
13554 hardcoded paths for original installation locations.
13555 The list of files that are scanned for paths is controlled
13556 by the <filename>SSTATE_SCAN_FILES</filename> variable.
13557 Typically, recipes add files they want to be scanned to the
13558 value of <filename>SSTATE_SCAN_FILES</filename> rather than
13559 the variable being comprehensively set. The
13560 <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
13561 class specifies the default list of files.
13562 </para>
13563
13564 <para>
13565 For details on the process, see the
13566 <link linkend='ref-classes-staging'><filename>staging</filename></link>
13567 class.
13568 </para>
13569 </glossdef>
13570 </glossentry>
13571
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013572 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
13573 <info>
13574 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
13575 </info>
13576 <glossdef>
13577 <para role="glossdeffirst">
13578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13579 Specifies the path to the <filename>/lib</filename>
13580 subdirectory of the sysroot directory for the
13581 build host.
13582 </para>
13583 </glossdef>
13584 </glossentry>
13585
13586 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
13587 <info>
13588 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)."
13589 </info>
13590 <glossdef>
13591 <para role="glossdeffirst">
13592<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13593 Specifies the path to the <filename>/lib</filename>
13594 subdirectory of the sysroot directory for the target
13595 for which the current recipe is being built
13596 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13597 </para>
13598 </glossdef>
13599 </glossentry>
13600
13601 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
13602 <info>
13603 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)."
13604 </info>
13605 <glossdef>
13606 <para role="glossdeffirst">
13607<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13608 Specifies the path to the
13609 <filename>/usr/bin</filename> subdirectory of the
13610 sysroot directory for the target for which the current
13611 recipe is being built
13612 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13613 </para>
13614 </glossdef>
13615 </glossentry>
13616
13617 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
13618 <info>
13619 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."
13620 </info>
13621 <glossdef>
13622 <para role="glossdeffirst">
13623<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13624 Specifies the path to the directory containing binary
13625 configuration scripts.
13626 These scripts provide configuration information for
13627 other software that wants to make use of libraries or
13628 include files provided by the software associated with
13629 the script.
13630 <note>
13631 This style of build configuration has been largely
13632 replaced by <filename>pkg-config</filename>.
13633 Consequently, if <filename>pkg-config</filename>
13634 is supported by the library to which you are linking,
13635 it is recommended you use
13636 <filename>pkg-config</filename> instead of a
13637 provided configuration script.
13638 </note>
13639 </para>
13640 </glossdef>
13641 </glossentry>
13642
13643 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
13644 <info>
13645 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
13646 </info>
13647 <glossdef>
13648 <para role="glossdeffirst">
13649<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13650 Specifies the path to the
13651 <filename>/usr/bin</filename> subdirectory of the
13652 sysroot directory for the build host.
13653 </para>
13654 </glossdef>
13655 </glossentry>
13656
13657 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
13658 <info>
13659 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)."
13660 </info>
13661 <glossdef>
13662 <para role="glossdeffirst">
13663<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13664 Specifies the path to the <filename>/usr/share</filename>
13665 subdirectory of the sysroot directory for the target
13666 for which the current recipe is being built
13667 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13668 </para>
13669 </glossdef>
13670 </glossentry>
13671
13672 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
13673 <info>
13674 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
13675 </info>
13676 <glossdef>
13677 <para role="glossdeffirst">
13678<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13679 Specifies the path to the <filename>/usr/share</filename>
13680 subdirectory of the sysroot directory for the build host.
13681 </para>
13682 </glossdef>
13683 </glossentry>
13684
13685 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
13686 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013687 STAGING_DIR[doc] = "Helps construct the recipe-sysroots directory, which is used during packaging."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013688 </info>
13689 <glossdef>
13690 <para role="glossdeffirst">
13691<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040013692 Helps construct the <filename>recipe-sysroots</filename>
13693 directory, which is used during packaging.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013694 </para>
13695
13696 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013697 For information on how staging for recipe-specific
13698 sysroots occurs, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013699 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013700 task, the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013701 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-sharing-files-between-recipes'>Sharing Files Between Recipes</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -040013702 section in the Yocto Project Development Tasks Manual, the
13703 "<ulink url='&YOCTO_DOCS_OM_URL;#configuration-compilation-and-staging-dev-environment'>Configuration, Compilation, and Staging</ulink>"
13704 section in the Yocto Project Overview and Concepts Manual,
13705 and the
13706 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
13707 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013708 <note>
13709 Recipes should never write files directly under
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013710 the <filename>STAGING_DIR</filename> directory because
13711 the OpenEmbedded build system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013712 manages the directory automatically.
13713 Instead, files should be installed to
13714 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
13715 within your recipe's
13716 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
13717 task and then the OpenEmbedded build system will
13718 stage a subset of those files into the sysroot.
13719 </note>
13720 </para>
13721 </glossdef>
13722 </glossentry>
13723
13724 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
13725 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013726 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 -050013727 </info>
13728 <glossdef>
13729 <para role="glossdeffirst">
13730<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013731 Specifies the path to the sysroot directory for the system
Brad Bishop316dfdd2018-06-25 12:45:53 -040013732 on which the component is built to run (the system that
13733 hosts the component).
13734 For most recipes, this sysroot is the one in which that
13735 recipe's
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013736 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013737 task copies files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013738 Exceptions include <filename>-native</filename> recipes,
13739 where the <filename>do_populate_sysroot</filename> task
13740 instead uses
13741 <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
13742 Depending on the type of recipe and the build target,
13743 <filename>STAGING_DIR_HOST</filename> can have the
13744 following values:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013745 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013746 <listitem><para>
13747 For recipes building for the target machine, the
13748 value is
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013749 "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
13750 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013751 <listitem><para>
13752 For native recipes building for the build host, the
13753 value is empty given the assumption that when
13754 building for the build host, the build host's own
13755 directories should be used.
13756 <note>
13757 <para><filename>-native</filename> recipes are
13758 not installed into host paths like such as
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013759 <filename>/usr</filename>.
13760 Rather, these recipes are installed into
13761 <filename>STAGING_DIR_NATIVE</filename>.
13762 When compiling <filename>-native</filename>
13763 recipes, standard build environment variables
13764 such as
13765 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
13766 and
13767 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
13768 are set up so that both host paths and
13769 <filename>STAGING_DIR_NATIVE</filename> are
13770 searched for libraries and headers using, for
13771 example, GCC's <filename>-isystem</filename>
13772 option.</para>
13773
Brad Bishop316dfdd2018-06-25 12:45:53 -040013774 <para>Thus, the emphasis is that the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013775 <filename>STAGING_DIR*</filename> variables
13776 should be viewed as input variables by tasks
13777 such as
13778 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
13779 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
13780 and
13781 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
13782 Having the real system root correspond to
13783 <filename>STAGING_DIR_HOST</filename> makes
13784 conceptual sense for
13785 <filename>-native</filename> recipes, as
13786 they make use of host headers and libraries.
13787 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013788 </note>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013789 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013790 </itemizedlist>
13791 </para>
13792 </glossdef>
13793 </glossentry>
13794
13795 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
13796 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013797 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 -050013798 </info>
13799 <glossdef>
13800 <para role="glossdeffirst">
13801<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013802 Specifies the path to the sysroot directory used when
13803 building components that run on the build host itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013804 </para>
13805 </glossdef>
13806 </glossentry>
13807
13808 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
13809 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013810 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 -050013811 </info>
13812 <glossdef>
13813 <para role="glossdeffirst">
13814<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013815 Specifies the path to the sysroot used for the system for
13816 which the component generates code.
13817 For components that do not generate code, which is the
13818 majority, <filename>STAGING_DIR_TARGET</filename> is set
13819 to match
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013820 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
13821 </para>
13822
13823 <para>
13824 Some recipes build binaries that can run on the target
13825 system but those binaries in turn generate code for
13826 another different system (e.g. cross-canadian recipes).
13827 Using terminology from GNU, the primary system is referred
13828 to as the "HOST" and the secondary, or different, system is
13829 referred to as the "TARGET".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013830 Thus, the binaries run on the "HOST" system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013831 and generate binaries for the "TARGET" system.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013832 The <filename>STAGING_DIR_HOST</filename> variable points
13833 to the sysroot used for the "HOST" system, while
13834 <filename>STAGING_DIR_TARGET</filename>
13835 points to the sysroot used for the "TARGET" system.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013836 </para>
13837 </glossdef>
13838 </glossentry>
13839
13840 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
13841 <info>
13842 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
13843 </info>
13844 <glossdef>
13845 <para role="glossdeffirst">
13846<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13847 Specifies the path to the <filename>/etc</filename>
13848 subdirectory of the sysroot directory for the
13849 build host.
13850 </para>
13851 </glossdef>
13852 </glossentry>
13853
13854 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
13855 <info>
13856 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)."
13857 </info>
13858 <glossdef>
13859 <para role="glossdeffirst">
13860<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13861 Specifies the path to the <filename>/usr</filename>
13862 subdirectory of the sysroot directory for the target
13863 for which the current recipe is being built
13864 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13865 </para>
13866 </glossdef>
13867 </glossentry>
13868
13869 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
13870 <info>
13871 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)."
13872 </info>
13873 <glossdef>
13874 <para role="glossdeffirst">
13875<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13876 Specifies the path to the
13877 <filename>/usr/include</filename> subdirectory of the
13878 sysroot directory for the target for which the current
13879 recipe being built
13880 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13881 </para>
13882 </glossdef>
13883 </glossentry>
13884
13885 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
13886 <info>
13887 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
13888 </info>
13889 <glossdef>
13890 <para role="glossdeffirst">
13891<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13892 Specifies the path to the <filename>/usr/include</filename>
13893 subdirectory of the sysroot directory for the build host.
13894 </para>
13895 </glossdef>
13896 </glossentry>
13897
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013898 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
13899 <info>
13900 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
13901 </info>
13902 <glossdef>
13903 <para role="glossdeffirst">
13904<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13905 Points to the directory containing the kernel build
13906 artifacts.
13907 Recipes building software that needs to access kernel
13908 build artifacts
13909 (e.g. <filename>systemtap-uprobes</filename>) can look in
13910 the directory specified with the
13911 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
13912 find these artifacts after the kernel has been built.
13913 </para>
13914 </glossdef>
13915 </glossentry>
13916
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013917 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
13918 <info>
13919 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
13920 </info>
13921 <glossdef>
13922 <para role="glossdeffirst">
13923<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13924 The directory with kernel headers that are required to build out-of-tree
13925 modules.
13926 </para>
13927 </glossdef>
13928 </glossentry>
13929
13930 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
13931 <info>
13932 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)."
13933 </info>
13934 <glossdef>
13935 <para role="glossdeffirst">
13936<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13937 Specifies the path to the <filename>/usr/lib</filename>
13938 subdirectory of the sysroot directory for the target for
13939 which the current recipe is being built
13940 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13941 </para>
13942 </glossdef>
13943 </glossentry>
13944
13945 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
13946 <info>
13947 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
13948 </info>
13949 <glossdef>
13950 <para role="glossdeffirst">
13951<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13952 Specifies the path to the <filename>/usr/lib</filename>
13953 subdirectory of the sysroot directory for the build host.
13954 </para>
13955 </glossdef>
13956 </glossentry>
13957
13958 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
13959 <info>
13960 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."
13961 </info>
13962 <glossdef>
13963 <para role="glossdeffirst">
13964<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13965 Specifies the base path used to create recipe stamp files.
13966 The path to an actual stamp file is constructed by evaluating this
13967 string and then appending additional information.
13968 Currently, the default assignment for <filename>STAMP</filename>
13969 as set in the <filename>meta/conf/bitbake.conf</filename> file
13970 is:
13971 <literallayout class='monospaced'>
13972 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
13973 </literallayout>
13974 </para>
13975
13976 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013977 For information on how BitBake uses stamp files to determine
13978 if a task should be rerun, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040013979 "<ulink url='&YOCTO_DOCS_OM_URL;#stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</ulink>"
13980 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013981 </para>
13982
13983 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013984 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
13985 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
13986 <link linkend='var-PN'><filename>PN</filename></link>,
13987 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
13988 <link linkend='var-PV'><filename>PV</filename></link>, and
13989 <link linkend='var-PR'><filename>PR</filename></link> for related variable
13990 information.
13991 </para>
13992 </glossdef>
13993 </glossentry>
13994
13995 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
13996 <info>
13997 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
13998 </info>
13999 <glossdef>
14000 <para role="glossdeffirst">
14001<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14002 Specifies the base directory in which the OpenEmbedded
14003 build system places stamps.
14004 The default directory is
14005 <filename>${TMPDIR}/stamps</filename>.
14006 </para>
14007 </glossdef>
14008 </glossentry>
14009
14010 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
14011 <info>
14012 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
14013 </info>
14014 <glossdef>
14015 <para role="glossdeffirst">
14016<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14017 The minimal command and arguments to run
14018 <filename>strip</filename>, which is used to strip
14019 symbols.
14020 </para>
14021 </glossdef>
14022 </glossentry>
14023
14024 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
14025 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014026 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 -050014027 </info>
14028 <glossdef>
14029 <para role="glossdeffirst">
14030<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14031 The short (72 characters or less) summary of the binary package for packaging
Brad Bishop316dfdd2018-06-25 12:45:53 -040014032 systems such as <filename>opkg</filename>, <filename>rpm</filename>, or
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014033 <filename>dpkg</filename>.
14034 By default, <filename>SUMMARY</filename> is used to define
14035 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
14036 variable if <filename>DESCRIPTION</filename> is not set
14037 in the recipe.
14038 </para>
14039 </glossdef>
14040 </glossentry>
14041
14042 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
14043 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014044 SVNDIR[doc] = "The directory where Subversion checkouts are stored."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014045 </info>
14046 <glossdef>
14047 <para role="glossdeffirst">
14048<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14049 The directory in which files checked out of a Subversion
14050 system are stored.
14051 </para>
14052 </glossdef>
14053 </glossentry>
14054
14055 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
14056 <info>
14057 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
14058 </info>
14059 <glossdef>
14060 <para role="glossdeffirst">
14061<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14062 Specifies the kernel boot default console.
14063 If you want to use a console other than the default,
14064 set this variable in your recipe as follows where "X" is
14065 the console number you want to use:
14066 <literallayout class='monospaced'>
14067 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
14068 </literallayout>
14069 </para>
14070
14071 <para>
14072 The
14073 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14074 class initially sets this variable to null but then checks
14075 for a value later.
14076 </para>
14077 </glossdef>
14078 </glossentry>
14079
14080 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
14081 <info>
14082 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
14083 </info>
14084 <glossdef>
14085 <para role="glossdeffirst">
14086<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14087 Lists additional options to add to the syslinux file.
14088 You need to set this variable in your recipe.
14089 If you want to list multiple options, separate the options
14090 with a semicolon character (<filename>;</filename>).
14091 </para>
14092
14093 <para>
14094 The
14095 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14096 class uses this variable to create a set of options.
14097 </para>
14098 </glossdef>
14099 </glossentry>
14100
14101 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
14102 <info>
14103 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
14104 </info>
14105 <glossdef>
14106 <para role="glossdeffirst">
14107<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14108 Specifies the alternate serial port or turns it off.
14109 To turn off serial, set this variable to an empty string
14110 in your recipe.
14111 The variable's default value is set in the
14112 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014113 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014114 <literallayout class='monospaced'>
14115 SYSLINUX_SERIAL ?= "0 115200"
14116 </literallayout>
14117 </para>
14118
14119 <para>
14120 The class checks for and uses the variable as needed.
14121 </para>
14122 </glossdef>
14123 </glossentry>
14124
14125 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
14126 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014127 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 -050014128 </info>
14129 <glossdef>
14130 <para role="glossdeffirst">
14131<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14132 An <filename>.LSS</filename> file used as the background
Brad Bishop316dfdd2018-06-25 12:45:53 -040014133 for the VGA boot menu when you use the boot menu.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014134 You need to set this variable in your recipe.
14135 </para>
14136
14137 <para>
14138 The
14139 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14140 class checks for this variable and if found, the
14141 OpenEmbedded build system installs the splash screen.
14142 </para>
14143 </glossdef>
14144 </glossentry>
14145
14146 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
14147 <info>
14148 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
14149 </info>
14150 <glossdef>
14151 <para role="glossdeffirst">
14152<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14153 Specifies the alternate console=tty... kernel boot argument.
14154 The variable's default value is set in the
14155 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014156 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014157 <literallayout class='monospaced'>
14158 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
14159 </literallayout>
14160 </para>
14161
14162 <para>
14163 The class checks for and uses the variable as needed.
14164 </para>
14165 </glossdef>
14166 </glossentry>
14167
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014168 <glossentry id='var-SYSROOT_DESTDIR'><glossterm>SYSROOT_DESTDIR</glossterm>
14169 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014170 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 -050014171 </info>
14172 <glossdef>
14173 <para role="glossdeffirst">
14174<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14175 Points to the temporary directory under the work directory
14176 (default
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014177 "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
Brad Bishop316dfdd2018-06-25 12:45:53 -040014178 where the files populated into the sysroot are assembled
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014179 during the
14180 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14181 task.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014182 </para>
14183 </glossdef>
14184 </glossentry>
14185
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014186 <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
14187 <info>
14188 SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
14189 </info>
14190 <glossdef>
14191 <para role="glossdeffirst">
14192<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14193 Directories that are staged into the sysroot by the
14194 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14195 task.
14196 By default, the following directories are staged:
14197 <literallayout class='monospaced'>
14198 SYSROOT_DIRS = " \
14199 ${includedir} \
14200 ${libdir} \
14201 ${base_libdir} \
14202 ${nonarch_base_libdir} \
14203 ${datadir} \
14204 "
14205 </literallayout>
14206 </para>
14207 </glossdef>
14208 </glossentry>
14209
14210 <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
14211 <info>
14212 SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
14213 </info>
14214 <glossdef>
14215 <para role="glossdeffirst">
14216<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14217 Directories that are not staged into the sysroot by the
14218 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14219 task.
14220 You can use this variable to exclude certain subdirectories
14221 of directories listed in
14222 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14223 from staging.
14224 By default, the following directories are not staged:
14225 <literallayout class='monospaced'>
14226 SYSROOT_DIRS_BLACKLIST = " \
14227 ${mandir} \
14228 ${docdir} \
14229 ${infodir} \
14230 ${datadir}/locale \
14231 ${datadir}/applications \
14232 ${datadir}/fonts \
14233 ${datadir}/pixmaps \
14234 "
14235 </literallayout>
14236 </para>
14237 </glossdef>
14238 </glossentry>
14239
14240 <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
14241 <info>
14242 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."
14243 </info>
14244 <glossdef>
14245 <para role="glossdeffirst">
14246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14247 Extra directories staged into the sysroot by the
14248 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14249 task for <filename>-native</filename> recipes, in addition
14250 to those specified in
14251 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
14252 By default, the following extra directories are staged:
14253 <literallayout class='monospaced'>
14254 SYSROOT_DIRS_NATIVE = " \
14255 ${bindir} \
14256 ${sbindir} \
14257 ${base_bindir} \
14258 ${base_sbindir} \
14259 ${libexecdir} \
14260 ${sysconfdir} \
14261 ${localstatedir} \
14262 "
14263 </literallayout>
14264 <note>
14265 Programs built by <filename>-native</filename> recipes
14266 run directly from the sysroot
14267 (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
14268 which is why additional directories containing program
14269 executables and supporting files need to be staged.
14270 </note>
14271 </para>
14272 </glossdef>
14273 </glossentry>
14274
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014275 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
14276 <info>
14277 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."
14278 </info>
14279 <glossdef>
14280 <para role="glossdeffirst">
14281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14282 A list of functions to execute after files are staged into
14283 the sysroot.
14284 These functions are usually used to apply additional
14285 processing on the staged files, or to stage additional
14286 files.
14287 </para>
14288 </glossdef>
14289 </glossentry>
14290
14291 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
14292 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014293 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 -050014294 </info>
14295 <glossdef>
14296 <para role="glossdeffirst">
14297<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14298 When inheriting the
14299 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014300 class, this variable specifies whether the specified service
14301 in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014302 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014303 should start automatically or not.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014304 By default, the service is enabled to automatically start
14305 at boot time.
14306 The default setting is in the
14307 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14308 class as follows:
14309 <literallayout class='monospaced'>
14310 SYSTEMD_AUTO_ENABLE ??= "enable"
14311 </literallayout>
14312 </para>
14313
14314 <para>
14315 You can disable the service by setting the variable to
14316 "disable".
14317 </para>
14318 </glossdef>
14319 </glossentry>
14320
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014321 <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
14322 <info>
14323 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."
14324 </info>
14325 <glossdef>
14326 <para role="glossdeffirst">
14327<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14328 When
14329 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14330 is set to "systemd-boot", the
14331 <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
14332 configuration file that should be used.
14333 By default, the
14334 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14335 class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
14336 follows:
14337 <literallayout class='monospaced'>
14338 SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
14339 </literallayout>
14340 </para>
14341
14342 <para>
14343 For information on Systemd-boot, see the
14344 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14345 </para>
14346 </glossdef>
14347 </glossentry>
14348
14349 <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
14350 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014351 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 -060014352 </info>
14353 <glossdef>
14354 <para role="glossdeffirst">
14355<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14356 When
14357 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14358 is set to "systemd-boot", the
14359 <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
14360 a list of entry files
Brad Bishop316dfdd2018-06-25 12:45:53 -040014361 (<filename>*.conf</filename>) to install that contain
14362 one boot entry per file.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014363 By default, the
14364 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14365 class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
14366 follows:
14367 <literallayout class='monospaced'>
14368 SYSTEMD_BOOT_ENTRIES ?= ""
14369 </literallayout>
14370 </para>
14371
14372 <para>
14373 For information on Systemd-boot, see the
14374 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14375 </para>
14376 </glossdef>
14377 </glossentry>
14378
14379 <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
14380 <info>
14381 SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
14382 </info>
14383 <glossdef>
14384 <para role="glossdeffirst">
14385<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14386 When
14387 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14388 is set to "systemd-boot", the
14389 <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
14390 the boot menu timeout in seconds.
14391 By default, the
14392 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14393 class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
14394 follows:
14395 <literallayout class='monospaced'>
14396 SYSTEMD_BOOT_TIMEOUT ?= "10"
14397 </literallayout>
14398 </para>
14399
14400 <para>
14401 For information on Systemd-boot, see the
14402 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14403 </para>
14404 </glossdef>
14405 </glossentry>
14406
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014407 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
14408 <info>
14409 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."
14410 </info>
14411 <glossdef>
14412 <para role="glossdeffirst">
14413<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14414 When inheriting the
14415 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14416 class, this variable locates the systemd unit files when
14417 they are not found in the main recipe's package.
14418 By default, the
14419 <filename>SYSTEMD_PACKAGES</filename> variable is set
14420 such that the systemd unit files are assumed to reside in
14421 the recipes main package:
14422 <literallayout class='monospaced'>
14423 SYSTEMD_PACKAGES ?= "${PN}"
14424 </literallayout>
14425 </para>
14426
14427 <para>
14428 If these unit files are not in this recipe's main
14429 package, you need to use
14430 <filename>SYSTEMD_PACKAGES</filename> to list the package
14431 or packages in which the build system can find the systemd
14432 unit files.
14433 </para>
14434 </glossdef>
14435 </glossentry>
14436
14437 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
14438 <info>
14439 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
14440 </info>
14441 <glossdef>
14442 <para role="glossdeffirst">
14443<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14444 When inheriting the
14445 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14446 class, this variable specifies the systemd service name for
14447 a package.
14448 </para>
14449
14450 <para>
14451 When you specify this file in your recipe, use a package
14452 name override to indicate the package to which the value
14453 applies.
14454 Here is an example from the connman recipe:
14455 <literallayout class='monospaced'>
14456 SYSTEMD_SERVICE_${PN} = "connman.service"
14457 </literallayout>
14458 </para>
14459 </glossdef>
14460 </glossentry>
14461
14462 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
14463 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014464 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should run a getty, the default is '1'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014465 </info>
14466 <glossdef>
14467 <para role="glossdeffirst">
14468<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14469 When using
14470 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14471 specifies a space-separated list of the virtual terminals
Brad Bishop316dfdd2018-06-25 12:45:53 -040014472 that should run a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014473 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14474 (allowing login), assuming
14475 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
14476 is not set to "0".
14477 </para>
14478
14479 <para>
14480 The default value for
14481 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
14482 (i.e. only run a getty on the first virtual terminal).
14483 </para>
14484 </glossdef>
14485 </glossentry>
14486
14487 </glossdiv>
14488
14489 <glossdiv id='var-glossary-t'><title>T</title>
14490
14491 <glossentry id='var-T'><glossterm>T</glossterm>
14492 <info>
14493 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."
14494 </info>
14495 <glossdef>
14496 <para role="glossdeffirst">
14497<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14498 This variable points to a directory were BitBake places
14499 temporary files, which consist mostly of task logs and
14500 scripts, when building a particular recipe.
14501 The variable is typically set as follows:
14502 <literallayout class='monospaced'>
14503 T = "${WORKDIR}/temp"
14504 </literallayout>
14505 </para>
14506
14507 <para>
14508 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
14509 is the directory into which BitBake unpacks and builds the
14510 recipe.
14511 The default <filename>bitbake.conf</filename> file sets this variable.</para>
14512 <para>The <filename>T</filename> variable is not to be confused with
14513 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
14514 which points to the root of the directory tree where BitBake
14515 places the output of an entire build.
14516 </para>
14517 </glossdef>
14518 </glossentry>
14519
14520 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
14521 <info>
14522 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
14523 </info>
14524 <glossdef>
14525 <para role="glossdeffirst">
14526<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14527 The target machine's architecture.
14528 The OpenEmbedded build system supports many
14529 architectures.
14530 Here is an example list of architectures supported.
14531 This list is by no means complete as the architecture
14532 is configurable:
14533 <literallayout class='monospaced'>
14534 arm
14535 i586
14536 x86_64
14537 powerpc
14538 powerpc64
14539 mips
14540 mipsel
14541 </literallayout>
14542 </para>
14543
14544 <para>
14545 For additional information on machine architectures, see
14546 the
14547 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
14548 variable.
14549 </para>
14550 </glossdef>
14551 </glossentry>
14552
14553 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
14554 <info>
14555 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
14556 </info>
14557 <glossdef>
14558 <para role="glossdeffirst">
14559<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14560 Specifies architecture-specific assembler flags for the
14561 target system.
14562 <filename>TARGET_AS_ARCH</filename> is initialized from
14563 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
14564 by default in the BitBake configuration file
14565 (<filename>meta/conf/bitbake.conf</filename>):
14566 <literallayout class='monospaced'>
14567 TARGET_AS_ARCH = "${TUNE_ASARGS}"
14568 </literallayout>
14569 </para>
14570 </glossdef>
14571 </glossentry>
14572
14573 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
14574 <info>
14575 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
14576 </info>
14577 <glossdef>
14578 <para role="glossdeffirst">
14579<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14580 Specifies architecture-specific C compiler flags for the
14581 target system.
14582 <filename>TARGET_CC_ARCH</filename> is initialized from
14583 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14584 by default.
14585 <note>
14586 It is a common workaround to append
14587 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14588 to <filename>TARGET_CC_ARCH</filename>
14589 in recipes that build software for the target that
14590 would not otherwise respect the exported
14591 <filename>LDFLAGS</filename> variable.
14592 </note>
14593 </para>
14594 </glossdef>
14595 </glossentry>
14596
14597 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
14598 <info>
14599 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
14600 </info>
14601 <glossdef>
14602 <para role="glossdeffirst">
14603<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14604 This is a specific kernel compiler flag for a CPU or
14605 Application Binary Interface (ABI) tune.
14606 The flag is used rarely and only for cases where a
14607 userspace
14608 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14609 is not compatible with the kernel compilation.
14610 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
14611 allows the kernel (and associated modules) to use a
14612 different configuration.
14613 See the
14614 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
14615 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014616 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014617 for an example.
14618 </para>
14619 </glossdef>
14620 </glossentry>
14621
14622 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
14623 <info>
14624 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
14625 </info>
14626 <glossdef>
14627 <para role="glossdeffirst">
14628<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14629 Specifies the flags to pass to the C compiler when building
14630 for the target.
14631 When building in the target context,
14632 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14633 is set to the value of this variable by default.
14634 </para>
14635
14636 <para>
14637 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014638 the <filename>CFLAGS</filename> variable in the environment
14639 to the <filename>TARGET_CFLAGS</filename> value so that
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014640 executables built using the SDK also have the flags
14641 applied.
14642 </para>
14643 </glossdef>
14644 </glossentry>
14645
14646 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
14647 <info>
14648 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."
14649 </info>
14650 <glossdef>
14651 <para role="glossdeffirst">
14652<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14653 Specifies the flags to pass to the C pre-processor
14654 (i.e. to both the C and the C++ compilers) when building
14655 for the target.
14656 When building in the target context,
14657 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14658 is set to the value of this variable by default.
14659 </para>
14660
14661 <para>
14662 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014663 the <filename>CPPFLAGS</filename> variable in the
14664 environment to the <filename>TARGET_CPPFLAGS</filename>
14665 value so that executables built using the SDK also have
14666 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014667 </para>
14668 </glossdef>
14669 </glossentry>
14670
14671 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
14672 <info>
14673 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
14674 </info>
14675 <glossdef>
14676 <para role="glossdeffirst">
14677<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14678 Specifies the flags to pass to the C++ compiler when
14679 building for the target.
14680 When building in the target context,
14681 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
14682 is set to the value of this variable by default.
14683 </para>
14684
14685 <para>
14686 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014687 the <filename>CXXFLAGS</filename> variable in the
14688 environment to the <filename>TARGET_CXXFLAGS</filename>
14689 value so that executables built using the SDK also have
14690 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014691 </para>
14692 </glossdef>
14693 </glossentry>
14694
14695 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
14696 <info>
14697 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."
14698 </info>
14699 <glossdef>
14700 <para role="glossdeffirst">
14701<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14702 Specifies the method for handling FPU code.
14703 For FPU-less targets, which include most ARM CPUs, the variable must be
14704 set to "soft".
14705 If not, the kernel emulation gets used, which results in a performance penalty.
14706 </para>
14707 </glossdef>
14708 </glossentry>
14709
14710 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
14711 <info>
14712 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
14713 </info>
14714 <glossdef>
14715 <para role="glossdeffirst">
14716<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14717 Specifies architecture-specific linker flags for the
14718 target system.
14719 <filename>TARGET_LD_ARCH</filename> is initialized from
14720 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
14721 by default in the BitBake configuration file
14722 (<filename>meta/conf/bitbake.conf</filename>):
14723 <literallayout class='monospaced'>
14724 TARGET_LD_ARCH = "${TUNE_LDARGS}"
14725 </literallayout>
14726 </para>
14727 </glossdef>
14728 </glossentry>
14729
14730 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
14731 <info>
14732 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
14733 </info>
14734 <glossdef>
14735 <para role="glossdeffirst">
14736<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14737 Specifies the flags to pass to the linker when building
14738 for the target.
14739 When building in the target context,
14740 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14741 is set to the value of this variable by default.
14742 </para>
14743
14744 <para>
14745 Additionally, the SDK's environment setup script sets
14746 the
14747 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14748 variable in the environment to the
14749 <filename>TARGET_LDFLAGS</filename> value so that
14750 executables built using the SDK also have the flags
14751 applied.
14752 </para>
14753 </glossdef>
14754 </glossentry>
14755
14756 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
14757 <info>
14758 TARGET_OS[doc] = "Specifies the target's operating system."
14759 </info>
14760 <glossdef>
14761 <para role="glossdeffirst">
14762<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14763 Specifies the target's operating system.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014764 The variable can be set to "linux" for glibc-based systems
14765 (GNU C Library) and to "linux-musl" for musl libc.
14766 For ARM/EABI targets, "linux-gnueabi" and "linux-musleabi"
14767 possible values exist.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014768 </para>
14769 </glossdef>
14770 </glossentry>
14771
14772 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
14773 <info>
14774 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
14775 </info>
14776 <glossdef>
14777 <para role="glossdeffirst">
14778<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14779 Specifies the prefix used for the toolchain binary target
14780 tools.
14781 </para>
14782
14783 <para>
14784 Depending on the type of recipe and the build target,
14785 <filename>TARGET_PREFIX</filename> is set as follows:
14786 <itemizedlist>
14787 <listitem><para>
14788 For recipes building for the target machine,
14789 the value is
14790 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
14791 </para></listitem>
14792 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014793 For native recipes, the build system sets the
14794 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014795 <filename>BUILD_PREFIX</filename>.
14796 </para></listitem>
14797 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014798 For native SDK recipes
14799 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014800 build system sets the variable to the value of
14801 <filename>SDK_PREFIX</filename>.
14802 </para></listitem>
14803 </itemizedlist>
14804 </para>
14805 </glossdef>
14806 </glossentry>
14807
14808 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
14809 <info>
14810 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
14811 </info>
14812 <glossdef>
14813 <para role="glossdeffirst">
14814<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14815 Specifies the system, including the architecture and the
14816 operating system, for which the build is occurring in
14817 the context of the current recipe.
14818 </para>
14819
14820 <para>
14821 The OpenEmbedded build system automatically sets this
14822 variable based on
14823 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
14824 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
14825 and
14826 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
14827 variables.
14828 <note>
14829 You do not need to set the
14830 <filename>TARGET_SYS</filename> variable yourself.
14831 </note>
14832 </para>
14833
14834 <para>
14835 Consider these two examples:
14836 <itemizedlist>
14837 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014838 Given a native recipe on a 32-bit, x86 machine
14839 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014840 </para></listitem>
14841 <listitem><para>
14842 Given a recipe being built for a little-endian,
14843 MIPS target running Linux, the value might be
14844 "mipsel-linux".
14845 </para></listitem>
14846 </itemizedlist>
14847 </para>
14848 </glossdef>
14849 </glossentry>
14850
14851 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
14852 <info>
14853 TARGET_VENDOR[doc] = "The name of the target vendor."
14854 </info>
14855 <glossdef>
14856 <para role="glossdeffirst">
14857<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14858 Specifies the name of the target vendor.
14859 </para>
14860 </glossdef>
14861 </glossentry>
14862
14863 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
14864 <info>
14865 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
14866 </info>
14867 <glossdef>
14868 <para role="glossdeffirst">
14869<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14870 Specifies a suffix to be appended onto the
14871 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14872 value.
14873 The suffix identifies the <filename>libc</filename> variant
14874 for building.
14875 When you are building for multiple variants with the same
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014876 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014877 this mechanism ensures that output for different
14878 <filename>libc</filename> variants is kept separate to
14879 avoid potential conflicts.
14880 </para>
14881
14882 <para>
14883 In the <filename>defaultsetup.conf</filename> file, the
14884 default value of <filename>TCLIBCAPPEND</filename> is
14885 "-${TCLIBC}".
14886 However, distros such as poky, which normally only support
14887 one <filename>libc</filename> variant, set
14888 <filename>TCLIBCAPPEND</filename> to "" in their distro
14889 configuration file resulting in no suffix being applied.
14890 </para>
14891 </glossdef>
14892 </glossentry>
14893
14894 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
14895 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014896 TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc' or 'musl'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014897 </info>
14898 <glossdef>
14899 <para role="glossdeffirst">
14900<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14901 Specifies the GNU standard C library (<filename>libc</filename>)
14902 variant to use during the build process.
14903 This variable replaces <filename>POKYLIBC</filename>, which is no longer
14904 supported.
14905 </para>
14906
14907 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014908 You can select "glibc" or "musl".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014909 </para>
14910 </glossdef>
14911 </glossentry>
14912
14913 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
14914 <info>
14915 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
14916 </info>
14917 <glossdef>
14918 <para role="glossdeffirst">
14919<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14920 Specifies the toolchain selector.
14921 <filename>TCMODE</filename> controls the characteristics
14922 of the generated packages and images by telling the
14923 OpenEmbedded build system which toolchain profile to use.
14924 By default, the OpenEmbedded build system builds its own
14925 internal toolchain.
14926 The variable's default value is "default", which uses
14927 that internal toolchain.
14928 <note>
14929 If <filename>TCMODE</filename> is set to a value
14930 other than "default", then it is your responsibility
14931 to ensure that the toolchain is compatible with the
14932 default toolchain.
14933 Using older or newer versions of these components
14934 might cause build problems.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014935 See the Release Notes for the Yocto Project release
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014936 for the specific components with which the toolchain
14937 must be compatible.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014938 To access the Release Notes, go to the
14939 <ulink url='&YOCTO_HOME_URL;/software-overview/downloads/'>Downloads</ulink>
14940 page on the Yocto Project website and click on the
14941 "RELEASE INFORMATION" link for the appropriate
14942 release.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014943 </note>
14944 </para>
14945
14946 <para>
14947 The <filename>TCMODE</filename> variable is similar to
14948 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
14949 which controls the variant of the GNU standard C library
14950 (<filename>libc</filename>) used during the build process:
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014951 <filename>glibc</filename> or <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014952 </para>
14953
14954 <para>
14955 With additional layers, it is possible to use a pre-compiled
14956 external toolchain.
14957 One example is the Sourcery G++ Toolchain.
14958 The support for this toolchain resides in the separate
14959 <trademark class='registered'>Mentor Graphics</trademark>
14960 <filename>meta-sourcery</filename> layer at
14961 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
14962 </para>
14963
14964 <para>
14965 The layer's <filename>README</filename> file contains
14966 information on how to use the Sourcery G++ Toolchain as
14967 an external toolchain.
14968 In summary, you must be sure to add the layer to your
14969 <filename>bblayers.conf</filename> file in front of the
14970 <filename>meta</filename> layer and then set the
14971 <filename>EXTERNAL_TOOLCHAIN</filename>
14972 variable in your <filename>local.conf</filename> file
14973 to the location in which you installed the toolchain.
14974 </para>
14975
14976 <para>
14977 The fundamentals used for this example apply to any
14978 external toolchain.
14979 You can use <filename>meta-sourcery</filename> as a
14980 template for adding support for other external toolchains.
14981 </para>
14982 </glossdef>
14983 </glossentry>
14984
14985 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
14986 <info>
14987 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
14988 </info>
14989 <glossdef>
14990 <para role="glossdeffirst">
14991<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14992 The location the OpenEmbedded build system uses to export
14993 tests when the
14994 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
14995 variable is set to "1".
14996 </para>
14997
14998 <para>
14999 The <filename>TEST_EXPORT_DIR</filename> variable defaults
15000 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
15001 </para>
15002 </glossdef>
15003 </glossentry>
15004
15005 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
15006 <info>
15007 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."
15008 </info>
15009 <glossdef>
15010 <para role="glossdeffirst">
15011<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15012 Specifies to export the tests only.
15013 Set this variable to "1" if you do not want to run the
15014 tests but you want them to be exported in a manner that
15015 you to run them outside of the build system.
15016 </para>
15017 </glossdef>
15018 </glossentry>
15019
15020 <glossentry id='var-TEST_IMAGE'><glossterm>TEST_IMAGE</glossterm>
15021 <info>
15022 TEST_IMAGE[doc] = "Enables test booting of virtual machine images under the QEMU emulator after any root filesystems are created and runs tests against those images."
15023 </info>
15024 <glossdef>
15025 <para role="glossdeffirst">
15026<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15027 Automatically runs the series of automated tests for
15028 images when an image is successfully built.
15029 </para>
15030
15031 <para>
15032 These tests are written in Python making use of the
15033 <filename>unittest</filename> module, and the majority of
15034 them run commands on the target system over
15035 <filename>ssh</filename>.
15036 You can set this variable to "1" in your
15037 <filename>local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015038 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015039 to have the OpenEmbedded build system automatically run
15040 these tests after an image successfully builds:
15041 <literallayout class='monospaced'>
15042 TEST_IMAGE = "1"
15043 </literallayout>
15044 For more information on enabling, running, and writing
15045 these tests, see the
15046 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015047 section in the Yocto Project Development Tasks Manual and
15048 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050015049 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015050 section.
15051 </para>
15052 </glossdef>
15053 </glossentry>
15054
15055 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
15056 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040015057 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 -050015058 </info>
15059 <glossdef>
15060 <para role="glossdeffirst">
15061<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15062 Holds the SSH log and the boot log for QEMU machines.
15063 The <filename>TEST_LOG_DIR</filename> variable defaults
15064 to <filename>"${WORKDIR}/testimage"</filename>.
15065 <note>
15066 Actual test results reside in the task log
15067 (<filename>log.do_testimage</filename>), which is in
15068 the <filename>${WORKDIR}/temp/</filename> directory.
15069 </note>
15070 </para>
15071 </glossdef>
15072 </glossentry>
15073
15074 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
15075 <info>
15076 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
15077 </info>
15078 <glossdef>
15079 <para role="glossdeffirst">
15080<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15081 For automated hardware testing, specifies the command to
15082 use to control the power of the target machine under test.
15083 Typically, this command would point to a script that
15084 performs the appropriate action (e.g. interacting
15085 with a web-enabled power strip).
15086 The specified command should expect to receive as the last
15087 argument "off", "on" or "cycle" specifying to power off,
15088 on, or cycle (power off and then power on) the device,
15089 respectively.
15090 </para>
15091 </glossdef>
15092 </glossentry>
15093
15094 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
15095 <info>
15096 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
15097 </info>
15098 <glossdef>
15099 <para role="glossdeffirst">
15100<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15101 For automated hardware testing, specifies additional
15102 arguments to pass through to the command specified in
15103 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
15104 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
15105 is optional.
15106 You can use it if you wish, for example, to separate the
15107 machine-specific and non-machine-specific parts of the
15108 arguments.
15109 </para>
15110 </glossdef>
15111 </glossentry>
15112
15113 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
15114 <info>
15115 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
15116 </info>
15117 <glossdef>
15118 <para role="glossdeffirst">
15119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15120 The time in seconds allowed for an image to boot before
15121 automated runtime tests begin to run against an
15122 image.
15123 The default timeout period to allow the boot process to
15124 reach the login prompt is 500 seconds.
15125 You can specify a different value in the
15126 <filename>local.conf</filename> file.
15127 </para>
15128
15129 <para>
15130 For more information on testing images, see the
15131 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015132 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015133 </para>
15134 </glossdef>
15135 </glossentry>
15136
15137 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
15138 <info>
15139 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."
15140 </info>
15141 <glossdef>
15142 <para role="glossdeffirst">
15143<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15144 For automated hardware testing, specifies the command
15145 to use to connect to the serial console of the target
15146 machine under test.
15147 This command simply needs to connect to the serial console
15148 and forward that connection to standard input and output
15149 as any normal terminal program does.
15150 </para>
15151
15152 <para>
15153 For example, to use the Picocom terminal program on
15154 serial device <filename>/dev/ttyUSB0</filename> at
15155 115200bps, you would set the variable as follows:
15156 <literallayout class='monospaced'>
15157 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
15158 </literallayout>
15159 </para>
15160 </glossdef>
15161 </glossentry>
15162
15163 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
15164 <info>
15165 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
15166 </info>
15167 <glossdef>
15168 <para role="glossdeffirst">
15169<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15170 For automated hardware testing, specifies additional
15171 arguments to pass through to the command specified in
15172 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
15173 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
15174 is optional.
15175 You can use it if you wish, for example, to separate the
15176 machine-specific and non-machine-specific parts of the
15177 command.
15178 </para>
15179 </glossdef>
15180 </glossentry>
15181
15182 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
15183 <info>
15184 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
15185 </info>
15186 <glossdef>
15187 <para role="glossdeffirst">
15188<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15189 The IP address of the build machine (host machine).
15190 This IP address is usually automatically detected.
15191 However, if detection fails, this variable needs to be set
15192 to the IP address of the build machine (i.e. where
15193 the build is taking place).
15194 <note>
15195 The <filename>TEST_SERVER_IP</filename> variable
15196 is only used for a small number of tests such as
Brad Bishop6e60e8b2018-02-01 10:27:11 -050015197 the "dnf" test suite, which needs to download
15198 packages from
15199 <filename>WORKDIR/oe-rootfs-repo</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015200 </note>
15201 </para>
15202 </glossdef>
15203 </glossentry>
15204
15205 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
15206 <info>
15207 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
15208 </info>
15209 <glossdef>
15210 <para role="glossdeffirst">
15211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15212 Specifies the target controller to use when running tests
15213 against a test image.
15214 The default controller to use is "qemu":
15215 <literallayout class='monospaced'>
15216 TEST_TARGET = "qemu"
15217 </literallayout>
15218 </para>
15219
15220 <para>
15221 A target controller is a class that defines how an
15222 image gets deployed on a target and how a target is started.
15223 A layer can extend the controllers by adding a module
15224 in the layer's <filename>/lib/oeqa/controllers</filename>
15225 directory and by inheriting the
15226 <filename>BaseTarget</filename> class, which is an abstract
15227 class that cannot be used as a value of
15228 <filename>TEST_TARGET</filename>.
15229 </para>
15230
15231 <para>
15232 You can provide the following arguments with
15233 <filename>TEST_TARGET</filename>:
15234 <itemizedlist>
15235 <listitem><para><emphasis>"qemu" and "QemuTarget":</emphasis>
15236 Boots a QEMU image and runs the tests.
15237 See the
15238 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015239 section in the Yocto Project Development Tasks
15240 Manual for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015241 </para></listitem>
15242 <listitem><para><emphasis>"simpleremote" and "SimpleRemoteTarget":</emphasis>
15243 Runs the tests on target hardware that is already
15244 up and running.
15245 The hardware can be on the network or it can be
15246 a device running an image on QEMU.
15247 You must also set
15248 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
15249 when you use "simpleremote" or "SimpleRemoteTarget".
15250 <note>
15251 This argument is defined in
15252 <filename>meta/lib/oeqa/targetcontrol.py</filename>.
15253 The small caps names are kept for compatibility
15254 reasons.
15255 </note>
15256 </para></listitem>
15257 <listitem><para><emphasis>"GummibootTarget":</emphasis>
15258 Automatically deploys and runs tests on an
15259 EFI-enabled machine that has a master image
15260 installed.
15261 <note>
15262 This argument is defined in
15263 <filename>meta/lib/oeqa/controllers/masterimage.py</filename>.
15264 </note>
15265 </para></listitem>
15266 </itemizedlist>
15267 </para>
15268
15269 <para>
15270 For information on running tests on hardware, see the
15271 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015272 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015273 </para>
15274 </glossdef>
15275 </glossentry>
15276
15277 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
15278 <info>
15279 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
15280 </info>
15281 <glossdef>
15282 <para role="glossdeffirst">
15283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15284 The IP address of your hardware under test.
15285 The <filename>TEST_TARGET_IP</filename> variable has no
15286 effect when
15287 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
15288 is set to "qemu".
15289 </para>
15290
15291 <para>
15292 When you specify the IP address, you can also include a
15293 port.
15294 Here is an example:
15295 <literallayout class='monospaced'>
15296 TEST_TARGET_IP = "192.168.1.4:2201"
15297 </literallayout>
15298 Specifying a port is useful when SSH is started on a
15299 non-standard port or in cases when your hardware under test
15300 is behind a firewall or network that is not directly
15301 accessible from your host and you need to do port address
15302 translation.
15303 </para>
15304 </glossdef>
15305 </glossentry>
15306
15307 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
15308 <info>
15309 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
15310 </info>
15311 <glossdef>
15312 <para role="glossdeffirst">
15313<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15314 An ordered list of tests (modules) to run against
15315 an image when performing automated runtime testing.
15316 </para>
15317
15318 <para>
15319 The OpenEmbedded build system provides a core set of tests
15320 that can be used against images.
15321 <note>
15322 Currently, there is only support for running these tests
15323 under QEMU.
15324 </note>
15325 Tests include <filename>ping</filename>,
15326 <filename>ssh</filename>, <filename>df</filename> among
15327 others.
15328 You can add your own tests to the list of tests by
15329 appending <filename>TEST_SUITES</filename> as follows:
15330 <literallayout class='monospaced'>
15331 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
15332 </literallayout>
15333 Alternatively, you can provide the "auto" option to
15334 have all applicable tests run against the image.
15335 <literallayout class='monospaced'>
15336 TEST_SUITES_append = " auto"
15337 </literallayout>
15338 Using this option causes the build system to automatically
15339 run tests that are applicable to the image.
15340 Tests that are not applicable are skipped.
15341 </para>
15342
15343 <para>
15344 The order in which tests are run is important.
15345 Tests that depend on another test must appear later in the
15346 list than the test on which they depend.
15347 For example, if you append the list of tests with two
15348 tests (<filename>test_A</filename> and
15349 <filename>test_B</filename>) where
15350 <filename>test_B</filename> is dependent on
15351 <filename>test_A</filename>, then you must order the tests
15352 as follows:
15353 <literallayout class='monospaced'>
15354 TEST_SUITES = " test_A test_B"
15355 </literallayout>
15356 </para>
15357
15358 <para>
15359 For more information on testing images, see the
15360 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015361 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015362 </para>
15363 </glossdef>
15364 </glossentry>
15365
15366 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
15367 <info>
15368 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
15369 </info>
15370 <glossdef>
15371 <para role="glossdeffirst">
15372<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15373 The directory in which the file BitBake is currently
15374 parsing is located.
15375 Do not manually set this variable.
15376 </para>
15377 </glossdef>
15378 </glossentry>
15379
15380 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
15381 <info>
15382 TIME[doc] = "The time the build was started using HMS format."
15383 </info>
15384 <glossdef>
15385 <para role="glossdeffirst">
15386<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15387 The time the build was started.
15388 Times appear using the hour, minute, and second (HMS)
15389 format (e.g. "140159" for one minute and fifty-nine
15390 seconds past 1400 hours).
15391 </para>
15392 </glossdef>
15393 </glossentry>
15394
15395 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
15396 <info>
15397 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."
15398 </info>
15399 <glossdef>
15400 <para role="glossdeffirst">
15401<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15402 This variable is the base directory the OpenEmbedded
15403 build system uses for all build output and intermediate
15404 files (other than the shared state cache).
15405 By default, the <filename>TMPDIR</filename> variable points
15406 to <filename>tmp</filename> within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015407 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015408 </para>
15409
15410 <para>
15411 If you want to establish this directory in a location other
15412 than the default, you can uncomment and edit the following
15413 statement in the
15414 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015415 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015416 <literallayout class='monospaced'>
15417 #TMPDIR = "${TOPDIR}/tmp"
15418 </literallayout>
15419 An example use for this scenario is to set
15420 <filename>TMPDIR</filename> to a local disk, which does
15421 not use NFS, while having the Build Directory use NFS.
15422 </para>
15423
15424 <para>
15425 The filesystem used by <filename>TMPDIR</filename> must
15426 have standard filesystem semantics (i.e. mixed-case files
15427 are unique, POSIX file locking, and persistent inodes).
15428 Due to various issues with NFS and bugs in some
15429 implementations, NFS does not meet this minimum
15430 requirement.
15431 Consequently, <filename>TMPDIR</filename> cannot be on
15432 NFS.
15433 </para>
15434 </glossdef>
15435 </glossentry>
15436
15437 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
15438 <info>
15439 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
15440 </info>
15441 <glossdef>
15442 <para role="glossdeffirst">
15443<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15444 This variable lists packages the OpenEmbedded build system
15445 uses when building an SDK, which contains a
15446 cross-development environment.
15447 The packages specified by this variable are part of the
15448 toolchain set that runs on the
15449 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
15450 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015451 <filename>nativesdk-</filename>.
15452 For example, consider the following command when
15453 building an SDK:
15454 <literallayout class='monospaced'>
15455 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
15456 </literallayout>
15457 In this case, a default list of packages is set in this
15458 variable, but you can add additional packages to the list.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015459 See the
15460 "<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 -050015461 section in the Yocto Project Application Development and
15462 the Extensible Software Development Kit (eSDK) manual
15463 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015464 </para>
15465
15466 <para>
15467 For background information on cross-development toolchains
15468 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015469 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15470 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015471 For information on setting up a cross-development
15472 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015473 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15474 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015475 </para>
15476 </glossdef>
15477 </glossentry>
15478
15479 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
15480 <info>
15481 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
15482 </info>
15483 <glossdef>
15484 <para role="glossdeffirst">
15485<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15486 This variable defines the name used for the toolchain
15487 output.
15488 The
15489 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
15490 class sets the
15491 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
15492 follows:
15493 <literallayout class='monospaced'>
15494 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
15495 </literallayout>
15496 See the
15497 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
15498 and
15499 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
15500 variables for additional information.
15501 </para>
15502 </glossdef>
15503 </glossentry>
15504
15505 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
15506 <info>
15507 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."
15508 </info>
15509 <glossdef>
15510 <para role="glossdeffirst">
15511<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15512 This variable lists packages the OpenEmbedded build system
15513 uses when it creates the target part of an SDK
15514 (i.e. the part built for the target hardware), which
15515 includes libraries and headers.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015516 Use this variable to add individual packages to the
15517 part of the SDK that runs on the target.
15518 See the
15519 "<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 -050015520 section in the Yocto Project Application Development and
15521 the Extensible Software Development Kit (eSDK) manual for
15522 more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015523 </para>
15524
15525 <para>
15526 For background information on cross-development toolchains
15527 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015528 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15529 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015530 For information on setting up a cross-development
15531 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015532 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15533 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015534 </para>
15535 </glossdef>
15536 </glossentry>
15537
15538 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
15539 <info>
15540 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
15541 </info>
15542 <glossdef>
15543 <para role="glossdeffirst">
15544<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15545 The top-level
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015546 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015547 BitBake automatically sets this variable when you
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015548 initialize your build environment using
15549 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015550 </para>
15551 </glossdef>
15552 </glossentry>
15553
15554 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
15555 <info>
15556 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."
15557 </info>
15558 <glossdef>
15559 <para role="glossdeffirst">
15560<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15561 A sanitized version of
15562 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
15563 This variable is used where the architecture is needed in
15564 a value where underscores are not allowed, for example
15565 within package filenames.
15566 In this case, dash characters replace any underscore
Brad Bishop316dfdd2018-06-25 12:45:53 -040015567 characters used in <filename>TARGET_ARCH</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015568 </para>
15569
15570 <para>
15571 Do not edit this variable.
15572 </para>
15573 </glossdef>
15574 </glossentry>
15575
15576 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
15577 <info>
15578 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
15579 </info>
15580 <glossdef>
15581 <para role="glossdeffirst">
15582<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15583 The GNU canonical architecture for a specific architecture
15584 (i.e. <filename>arm</filename>,
15585 <filename>armeb</filename>,
15586 <filename>mips</filename>,
15587 <filename>mips64</filename>, and so forth).
15588 BitBake uses this value to setup configuration.
15589 </para>
15590
15591 <para>
15592 <filename>TUNE_ARCH</filename> definitions are specific to
15593 a given architecture.
15594 The definitions can be a single static definition, or
15595 can be dynamically adjusted.
15596 You can see details for a given CPU family by looking at
15597 the architecture's <filename>README</filename> file.
15598 For example, the
15599 <filename>meta/conf/machine/include/mips/README</filename>
15600 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015601 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015602 provides information for <filename>TUNE_ARCH</filename>
15603 specific to the <filename>mips</filename> architecture.
15604 </para>
15605
15606 <para>
15607 <filename>TUNE_ARCH</filename> is tied closely to
15608 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
15609 which defines the target machine's architecture.
15610 The BitBake configuration file
15611 (<filename>meta/conf/bitbake.conf</filename>) sets
15612 <filename>TARGET_ARCH</filename> as follows:
15613 <literallayout class='monospaced'>
15614 TARGET_ARCH = "${TUNE_ARCH}"
15615 </literallayout>
15616 </para>
15617
15618 <para>
15619 The following list, which is by no means complete since
15620 architectures are configurable, shows supported machine
15621 architectures:
15622 <literallayout class='monospaced'>
15623 arm
15624 i586
15625 x86_64
15626 powerpc
15627 powerpc64
15628 mips
15629 mipsel
15630 </literallayout>
15631 </para>
15632 </glossdef>
15633 </glossentry>
15634
15635 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
15636 <info>
15637 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
15638 </info>
15639 <glossdef>
15640 <para role="glossdeffirst">
15641<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15642 Specifies architecture-specific assembler flags for
15643 the target system.
15644 The set of flags is based on the selected tune features.
15645 <filename>TUNE_ASARGS</filename> is set using
15646 the tune include files, which are typically under
15647 <filename>meta/conf/machine/include/</filename> and are
15648 influenced through
15649 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15650 For example, the
15651 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15652 file defines the flags for the x86 architecture as follows:
15653 <literallayout class='monospaced'>
15654 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
15655 </literallayout>
15656 <note>
15657 Board Support Packages (BSPs) select the tune.
15658 The selected tune, in turn, affects the tune variables
15659 themselves (i.e. the tune can supply its own
15660 set of flags).
15661 </note>
15662 </para>
15663 </glossdef>
15664 </glossentry>
15665
15666 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
15667 <info>
15668 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
15669 </info>
15670 <glossdef>
15671 <para role="glossdeffirst">
15672<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15673 Specifies architecture-specific C compiler flags for
15674 the target system.
15675 The set of flags is based on the selected tune features.
15676 <filename>TUNE_CCARGS</filename> is set using
15677 the tune include files, which are typically under
15678 <filename>meta/conf/machine/include/</filename> and are
15679 influenced through
15680 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15681 <note>
15682 Board Support Packages (BSPs) select the tune.
15683 The selected tune, in turn, affects the tune variables
15684 themselves (i.e. the tune can supply its own
15685 set of flags).
15686 </note>
15687 </para>
15688 </glossdef>
15689 </glossentry>
15690
15691 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
15692 <info>
15693 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
15694 </info>
15695 <glossdef>
15696 <para role="glossdeffirst">
15697<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15698 Specifies architecture-specific linker flags for
15699 the target system.
15700 The set of flags is based on the selected tune features.
15701 <filename>TUNE_LDARGS</filename> is set using
15702 the tune include files, which are typically under
15703 <filename>meta/conf/machine/include/</filename> and are
15704 influenced through
15705 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15706 For example, the
15707 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15708 file defines the flags for the x86 architecture as follows:
15709 <literallayout class='monospaced'>
15710 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
15711 </literallayout>
15712 <note>
15713 Board Support Packages (BSPs) select the tune.
15714 The selected tune, in turn, affects the tune variables
15715 themselves (i.e. the tune can supply its own
15716 set of flags).
15717 </note>
15718 </para>
15719 </glossdef>
15720 </glossentry>
15721
15722 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
15723 <info>
15724 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
15725 </info>
15726 <glossdef>
15727 <para role="glossdeffirst">
15728<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15729 Features used to "tune" a compiler for optimal use
15730 given a specific processor.
15731 The features are defined within the tune files and allow
15732 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
15733 dynamically generated based on the features.
15734 </para>
15735
15736 <para>
15737 The OpenEmbedded build system verifies the features
15738 to be sure they are not conflicting and that they are
15739 supported.
15740 </para>
15741
15742 <para>
15743 The BitBake configuration file
15744 (<filename>meta/conf/bitbake.conf</filename>) defines
15745 <filename>TUNE_FEATURES</filename> as follows:
15746 <literallayout class='monospaced'>
15747 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
15748 </literallayout>
15749 See the
15750 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
15751 variable for more information.
15752 </para>
15753 </glossdef>
15754 </glossentry>
15755
15756 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
15757 <info>
15758 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
15759 </info>
15760 <glossdef>
15761 <para role="glossdeffirst">
15762<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15763 The package architecture understood by the packaging
15764 system to define the architecture, ABI, and tuning of
15765 output packages.
15766 The specific tune is defined using the "_tune" override
15767 as follows:
15768 <literallayout class='monospaced'>
15769 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
15770 </literallayout>
15771 </para>
15772
15773 <para>
15774 These tune-specific package architectures are defined in
15775 the machine include files.
15776 Here is an example of the "core2-32" tuning as used
15777 in the
15778 <filename>meta/conf/machine/include/tune-core2.inc</filename>
15779 file:
15780 <literallayout class='monospaced'>
15781 TUNE_PKGARCH_tune-core2-32 = "core2-32"
15782 </literallayout>
15783 </para>
15784 </glossdef>
15785 </glossentry>
15786
15787 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
15788 <info>
15789 TUNEABI[doc] = "An underlying ABI used by a particular tuning in a given toolchain layer. This feature allows providers using prebuilt libraries to check compatibility of a tuning against their selection of libraries."
15790 </info>
15791 <glossdef>
15792 <para role="glossdeffirst">
15793<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15794 An underlying Application Binary Interface (ABI) used by
15795 a particular tuning in a given toolchain layer.
15796 Providers that use prebuilt libraries can use the
15797 <filename>TUNEABI</filename>,
15798 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15799 and
15800 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15801 variables to check compatibility of tunings against their
15802 selection of libraries.
15803 </para>
15804
15805 <para>
15806 If <filename>TUNEABI</filename> is undefined, then every
15807 tuning is allowed.
15808 See the
15809 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15810 class to see how the variable is used.
15811 </para>
15812 </glossdef>
15813 </glossentry>
15814
15815 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
15816 <info>
15817 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
15818 </info>
15819 <glossdef>
15820 <para role="glossdeffirst">
15821<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15822 If set, the OpenEmbedded system ignores the
15823 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15824 variable.
15825 Providers that use prebuilt libraries can use the
15826 <filename>TUNEABI_OVERRIDE</filename>,
15827 <filename>TUNEABI_WHITELIST</filename>,
15828 and
15829 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15830 variables to check compatibility of a tuning against their
15831 selection of libraries.
15832 </para>
15833
15834 <para>
15835 See the
15836 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15837 class to see how the variable is used.
15838 </para>
15839 </glossdef>
15840 </glossentry>
15841
15842 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
15843 <info>
15844 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
15845 </info>
15846 <glossdef>
15847 <para role="glossdeffirst">
15848<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15849 A whitelist of permissible
15850 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15851 values.
15852 If <filename>TUNEABI_WHITELIST</filename> is not set,
15853 all tunes are allowed.
15854 Providers that use prebuilt libraries can use the
15855 <filename>TUNEABI_WHITELIST</filename>,
15856 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15857 and <filename>TUNEABI</filename> variables to check
15858 compatibility of a tuning against their selection of
15859 libraries.
15860 </para>
15861
15862 <para>
15863 See the
15864 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15865 class to see how the variable is used.
15866 </para>
15867 </glossdef>
15868 </glossentry>
15869
15870 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
15871 <info>
15872 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
15873 </info>
15874 <glossdef>
15875 <para role="glossdeffirst">
15876<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15877 Specifies CPU or Application Binary Interface (ABI)
15878 tuning features that conflict with <replaceable>feature</replaceable>.
15879 </para>
15880
15881 <para>
15882 Known tuning conflicts are specified in the machine include
15883 files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015884 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015885 Here is an example from the
15886 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
15887 include file that lists the "o32" and "n64" features as
15888 conflicting with the "n32" feature:
15889 <literallayout class='monospaced'>
15890 TUNECONFLICTS[n32] = "o32 n64"
15891 </literallayout>
15892 </para>
15893 </glossdef>
15894 </glossentry>
15895
15896 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
15897 <info>
15898 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
15899 </info>
15900 <glossdef>
15901 <para role="glossdeffirst">
15902<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15903 Specifies a valid CPU or Application Binary Interface (ABI)
15904 tuning feature.
15905 The specified feature is stored as a flag.
15906 Valid features are specified in the machine include files
15907 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
15908 Here is an example from that file:
15909 <literallayout class='monospaced'>
15910 TUNEVALID[bigendian] = "Enable big-endian mode."
15911 </literallayout>
15912 </para>
15913
15914 <para>
15915 See the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015916 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015917 for these features.
15918 </para>
15919 </glossdef>
15920 </glossentry>
15921
15922 </glossdiv>
15923
15924 <glossdiv id='var-glossary-u'><title>U</title>
15925
15926 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
15927 <info>
15928 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
15929 </info>
15930 <glossdef>
15931 <para role="glossdeffirst">
15932<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15933 Configures the
15934 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
15935 and can also define
15936 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
15937 for individual cases.
15938 </para>
15939
15940 <para>
15941 Following is an example from the
15942 <filename>meta-fsl-arm</filename> layer.
15943 <literallayout class='monospaced'>
15944 UBOOT_CONFIG ??= "sd"
15945 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
15946 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
15947 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
15948 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
15949 </literallayout>
15950 In this example, "sd" is selected as the configuration
15951 of the possible four for the
15952 <filename>UBOOT_MACHINE</filename>.
15953 The "sd" configuration defines "mx6qsabreauto_config"
15954 as the value for <filename>UBOOT_MACHINE</filename>, while
15955 the "sdcard" specifies the
15956 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
15957 image.
15958 </para>
15959
15960 <para>
15961 For more information on how the
15962 <filename>UBOOT_CONFIG</filename> is handled, see the
15963 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
15964 class.
15965 </para>
15966 </glossdef>
15967 </glossentry>
15968
15969 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
15970 <info>
15971 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
15972 </info>
15973 <glossdef>
15974 <para role="glossdeffirst">
15975<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15976 Specifies the entry point for the U-Boot image.
15977 During U-Boot image creation, the
15978 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
15979 as a command-line parameter to the
15980 <filename>uboot-mkimage</filename> utility.
15981 </para>
15982 </glossdef>
15983 </glossentry>
15984
15985 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
15986 <info>
15987 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
15988 </info>
15989 <glossdef>
15990 <para role="glossdeffirst">
15991<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15992 Specifies the load address for the U-Boot image.
15993 During U-Boot image creation, the
15994 <filename>UBOOT_LOADADDRESS</filename> variable is passed
15995 as a command-line parameter to the
15996 <filename>uboot-mkimage</filename> utility.
15997 </para>
15998 </glossdef>
15999 </glossentry>
16000
16001 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
16002 <info>
16003 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
16004 </info>
16005 <glossdef>
16006 <para role="glossdeffirst">
16007<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16008 Appends a string to the name of the local version of the
16009 U-Boot image.
16010 For example, assuming the version of the U-Boot image
16011 built was "2013.10, the full version string reported by
16012 U-Boot would be "2013.10-yocto" given the following
16013 statement:
16014 <literallayout class='monospaced'>
16015 UBOOT_LOCALVERSION = "-yocto"
16016 </literallayout>
16017 </para>
16018 </glossdef>
16019 </glossentry>
16020
16021 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
16022 <info>
16023 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
16024 </info>
16025 <glossdef>
16026 <para role="glossdeffirst">
16027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16028 Specifies the value passed on the
16029 <filename>make</filename> command line when building
16030 a U-Boot image.
16031 The value indicates the target platform configuration.
16032 You typically set this variable from the machine
16033 configuration file (i.e.
16034 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
16035 </para>
16036
16037 <para>
16038 Please see the "Selection of Processor Architecture and
16039 Board Type" section in the U-Boot README for valid values
16040 for this variable.
16041 </para>
16042 </glossdef>
16043 </glossentry>
16044
16045 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
16046 <info>
16047 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
16048 </info>
16049 <glossdef>
16050 <para role="glossdeffirst">
16051<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16052 Specifies the target called in the
16053 <filename>Makefile</filename>.
16054 The default target is "all".
16055 </para>
16056 </glossdef>
16057 </glossentry>
16058
16059 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
16060 <info>
16061 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
16062 </info>
16063 <glossdef>
16064 <para role="glossdeffirst">
16065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16066 Points to the generated U-Boot extension.
16067 For example, <filename>u-boot.sb</filename> has a
16068 <filename>.sb</filename> extension.
16069 </para>
16070
16071 <para>
16072 The default U-Boot extension is
16073 <filename>.bin</filename>
16074 </para>
16075 </glossdef>
16076 </glossentry>
16077
16078 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
16079 <info>
16080 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
16081 </info>
16082 <glossdef>
16083 <para role="glossdeffirst">
16084<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16085 Specifies the target used for building U-Boot.
16086 The target is passed directly as part of the "make" command
16087 (e.g. SPL and AIS).
16088 If you do not specifically set this variable, the
16089 OpenEmbedded build process passes and uses "all" for the
16090 target during the U-Boot building process.
16091 </para>
16092 </glossdef>
16093 </glossentry>
16094
16095 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
16096 <info>
16097 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."
16098 </info>
16099 <glossdef>
16100 <para role="glossdeffirst">
16101<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16102 Specifies a list of options that, if reported by the
16103 configure script as being invalid, should not generate a
16104 warning during the
16105 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
16106 task.
16107 Normally, invalid configure options are simply not passed
16108 to the configure script (e.g. should be removed from
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016109 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
16110 or
16111 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016112 However, common options, for example, exist that are passed
16113 to all configure scripts at a class level that might not
16114 be valid for some configure scripts.
16115 It follows that no benefit exists in seeing a warning about
16116 these options.
16117 For these cases, the options are added to
16118 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
16119 </para>
16120
16121 <para>
16122 The configure arguments check that uses
16123 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
16124 of the
16125 <link linkend='ref-classes-insane'><filename>insane</filename></link>
16126 class and is only enabled if the recipe inherits the
16127 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
16128 class.
16129 </para>
16130 </glossdef>
16131 </glossentry>
16132
16133 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
16134 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016135 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is enabled."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016136 </info>
16137 <glossdef>
16138 <para role="glossdeffirst">
16139<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16140 For recipes inheriting the
16141 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
16142 class, <filename>UPDATERCPN</filename> specifies
Brad Bishop316dfdd2018-06-25 12:45:53 -040016143 the package that contains the initscript that is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016144 enabled.
16145 </para>
16146
16147 <para>
16148 The default value is "${PN}".
16149 Given that almost all recipes that install initscripts
16150 package them in the main package for the recipe, you
16151 rarely need to set this variable in individual recipes.
16152 </para>
16153 </glossdef>
16154 </glossentry>
16155
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016156 <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
16157 <info>
16158 UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
16159 </info>
16160 <glossdef>
16161 <para role="glossdeffirst">
16162<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16163 When the
16164 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16165 class is enabled globally, you can perform a per-recipe
16166 check for what the latest upstream source code version is
16167 by calling
16168 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
16169 If the recipe source code is provided from Git
16170 repositories, the OpenEmbedded build system determines the
16171 latest upstream version by picking the latest tag from the
16172 list of all repository tags.
16173 You can use the
16174 <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
16175 variable to provide a regular expression to filter only the
16176 relevant tags should the default filter not work
16177 correctly.
16178 <literallayout class='monospaced'>
16179 UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
16180 </literallayout>
16181 </para>
16182 </glossdef>
16183 </glossentry>
16184
16185 <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
16186 <info>
16187 UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
16188 </info>
16189 <glossdef>
16190 <para role="glossdeffirst">
16191<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16192 When the
16193 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16194 class is enabled globally, use the
16195 <filename>UPSTREAM_CHECK_REGEX</filename> variable to
16196 specify a different regular expression instead of the
16197 default one when the package checking system is parsing
16198 the page found using
16199 <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
16200 <literallayout class='monospaced'>
16201 UPSTREAM_CHECK_REGEX = "package_regex"
16202 </literallayout>
16203 </para>
16204 </glossdef>
16205 </glossentry>
16206
16207 <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
16208 <info>
16209 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."
16210 </info>
16211 <glossdef>
16212 <para role="glossdeffirst">
16213<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16214 When the
16215 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16216 class is enabled globally, you can perform a per-recipe
16217 check for what the latest upstream source code version is
16218 by calling <filename>bitbake -c checkpkg</filename>
16219 <replaceable>recipe</replaceable>.
16220 If the source code is provided from tarballs, the latest
16221 version is determined by fetching the directory listing
16222 where the tarball is and attempting to find a later tarball.
16223 When this approach does not work, you can use
16224 <filename>UPSTREAM_CHECK_URI</filename> to
16225 provide a different URI that contains the link to the
16226 latest tarball.
16227 <literallayout class='monospaced'>
16228 UPSTREAM_CHECK_URI = "recipe_url"
16229 </literallayout>
16230 </para>
16231 </glossdef>
16232 </glossentry>
16233
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016234 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
16235 <info>
16236 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
16237 </info>
16238 <glossdef>
16239 <para role="glossdeffirst">
16240<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16241 Determines if <filename>devtmpfs</filename> is used for
16242 <filename>/dev</filename> population.
16243 The default value used for <filename>USE_DEVFS</filename>
16244 is "1" when no value is specifically set.
16245 Typically, you would set <filename>USE_DEVFS</filename>
16246 to "0" for a statically populated <filename>/dev</filename>
16247 directory.
16248 </para>
16249
16250 <para>
16251 See the
16252 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016253 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016254 information on how to use this variable.
16255 </para>
16256 </glossdef>
16257 </glossentry>
16258
16259 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
16260 <info>
16261 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."
16262 </info>
16263 <glossdef>
16264 <para role="glossdeffirst">
16265<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16266 When using
16267 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
16268 determines whether or not to run a
16269 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
16270 on any virtual terminals in order to enable logging in
16271 through those terminals.
16272 </para>
16273
16274 <para>
16275 The default value used for <filename>USE_VT</filename>
16276 is "1" when no default value is specifically set.
16277 Typically, you would set <filename>USE_VT</filename>
16278 to "0" in the machine configuration file for machines
16279 that do not have a graphical display attached and
16280 therefore do not need virtual terminal functionality.
16281 </para>
16282 </glossdef>
16283 </glossentry>
16284
16285 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
16286 <info>
16287 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
16288 </info>
16289 <glossdef>
16290 <para role="glossdeffirst">
16291<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16292 A list of classes to globally inherit.
16293 These classes are used by the OpenEmbedded build system
16294 to enable extra features (e.g.
16295 <filename>buildstats</filename>,
16296 <filename>image-mklibs</filename>, and so forth).
16297 </para>
16298
16299 <para>
16300 The default list is set in your
16301 <filename>local.conf</filename> file:
16302 <literallayout class='monospaced'>
16303 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
16304 </literallayout>
16305 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050016306 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016307 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016308 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016309 </para>
16310 </glossdef>
16311 </glossentry>
16312
16313 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
16314 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016315 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 -050016316 </info>
16317 <glossdef>
16318 <para role="glossdeffirst">
16319<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016320 If set to "error", forces the OpenEmbedded build system to
16321 produce an error if the user identification
16322 (<filename>uid</filename>) and group identification
16323 (<filename>gid</filename>) values are not defined
16324 in <filename>files/passwd</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016325 and <filename>files/group</filename> files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016326 If set to "warn", a warning will be issued instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016327 </para>
16328
16329 <para>
16330 The default behavior for the build system is to dynamically
16331 apply <filename>uid</filename> and
16332 <filename>gid</filename> values.
16333 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
16334 variable is by default not set.
16335 If you plan on using statically assigned
16336 <filename>gid</filename> and <filename>uid</filename>
16337 values, you should set
16338 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
16339 your <filename>local.conf</filename> file as
16340 follows:
16341 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016342 USERADD_ERROR_DYNAMIC = "error"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016343 </literallayout>
16344 Overriding the default behavior implies you are going to
16345 also take steps to set static <filename>uid</filename> and
16346 <filename>gid</filename> values through use of the
16347 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
16348 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
16349 and
16350 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16351 variables.
16352 </para>
16353 </glossdef>
16354 </glossentry>
16355
16356 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
16357 <info>
16358 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."
16359 </info>
16360 <glossdef>
16361 <para role="glossdeffirst">
16362<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16363 Specifies a password file to use for obtaining static
16364 group identification (<filename>gid</filename>) values
16365 when the OpenEmbedded build system adds a group to the
16366 system during package installation.
16367 </para>
16368
16369 <para>
16370 When applying static group identification
16371 (<filename>gid</filename>) values, the OpenEmbedded build
16372 system looks in
16373 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16374 for a <filename>files/group</filename> file and then applies
16375 those <filename>uid</filename> values.
16376 Set the variable as follows in your
16377 <filename>local.conf</filename> file:
16378 <literallayout class='monospaced'>
16379 USERADD_GID_TABLES = "files/group"
16380 </literallayout>
16381 </para>
16382
16383 <note>
16384 Setting the
16385 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16386 variable to "useradd-staticids" causes the build system
16387 to use static <filename>gid</filename> values.
16388 </note>
16389 </glossdef>
16390 </glossentry>
16391
16392 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
16393 <info>
16394 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."
16395 </info>
16396 <glossdef>
16397 <para role="glossdeffirst">
16398<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16399 When inheriting the
16400 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16401 class, this variable
16402 specifies the individual packages within the recipe that
16403 require users and/or groups to be added.
16404 </para>
16405
16406 <para>
16407 You must set this variable if the recipe inherits the
16408 class.
16409 For example, the following enables adding a user for the
16410 main package in a recipe:
16411 <literallayout class='monospaced'>
16412 USERADD_PACKAGES = "${PN}"
16413 </literallayout>
16414 <note>
16415 If follows that if you are going to use the
16416 <filename>USERADD_PACKAGES</filename> variable,
16417 you need to set one or more of the
16418 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
16419 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
16420 or
16421 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
16422 variables.
16423 </note>
16424 </para>
16425
16426 </glossdef>
16427 </glossentry>
16428
16429 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
16430 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016431 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 -050016432 </info>
16433 <glossdef>
16434 <para role="glossdeffirst">
16435<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16436 When inheriting the
16437 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16438 class, this variable
Brad Bishop316dfdd2018-06-25 12:45:53 -040016439 specifies for a package what parameters should pass
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016440 to the <filename>useradd</filename> command
Brad Bishop316dfdd2018-06-25 12:45:53 -040016441 if you add a user to the system when the package
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016442 is installed.
16443 </para>
16444
16445 <para>
16446 Here is an example from the <filename>dbus</filename>
16447 recipe:
16448 <literallayout class='monospaced'>
16449 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
16450 --no-create-home --shell /bin/false \
16451 --user-group messagebus"
16452 </literallayout>
16453 For information on the standard Linux shell command
16454 <filename>useradd</filename>, see
16455 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
16456 </para>
16457 </glossdef>
16458 </glossentry>
16459
16460 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
16461 <info>
16462 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."
16463 </info>
16464 <glossdef>
16465 <para role="glossdeffirst">
16466<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16467 Specifies a password file to use for obtaining static
16468 user identification (<filename>uid</filename>) values
16469 when the OpenEmbedded build system adds a user to the
16470 system during package installation.
16471 </para>
16472
16473 <para>
16474 When applying static user identification
16475 (<filename>uid</filename>) values, the OpenEmbedded build
16476 system looks in
16477 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16478 for a <filename>files/passwd</filename> file and then applies
16479 those <filename>uid</filename> values.
16480 Set the variable as follows in your
16481 <filename>local.conf</filename> file:
16482 <literallayout class='monospaced'>
16483 USERADD_UID_TABLES = "files/passwd"
16484 </literallayout>
16485 </para>
16486
16487 <note>
16488 Setting the
16489 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16490 variable to "useradd-staticids" causes the build system
16491 to use static <filename>uid</filename> values.
16492 </note>
16493 </glossdef>
16494 </glossentry>
16495
16496 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
16497 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016498 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 -050016499 </info>
16500 <glossdef>
16501 <para role="glossdeffirst">
16502<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16503 When set to "useradd-staticids", causes the
16504 OpenEmbedded build system to base all user and group
16505 additions on a static
16506 <filename>passwd</filename> and
16507 <filename>group</filename> files found in
16508 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
16509 </para>
16510
16511 <para>
16512 To use static user identification (<filename>uid</filename>)
16513 and group identification (<filename>gid</filename>)
16514 values, set the variable
16515 as follows in your <filename>local.conf</filename> file:
16516 <literallayout class='monospaced'>
16517 USERADDEXTENSION = "useradd-staticids"
16518 </literallayout>
16519 <note>
16520 Setting this variable to use static
16521 <filename>uid</filename> and <filename>gid</filename>
16522 values causes the OpenEmbedded build system to employ
16523 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016524 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016525 class.
16526 </note>
16527 </para>
16528
16529 <para>
16530 If you use static <filename>uid</filename> and
16531 <filename>gid</filename> information, you must also
16532 specify the <filename>files/passwd</filename> and
16533 <filename>files/group</filename> files by setting the
16534 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16535 and
16536 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16537 variables.
16538 Additionally, you should also set the
16539 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
16540 variable.
16541 </para>
16542 </glossdef>
16543 </glossentry>
16544
16545 </glossdiv>
16546
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016547 <glossdiv id='var-glossary-v'><title>V</title>
16548
16549 <glossentry id='var-VOLATILE_LOG_DIR'><glossterm>VOLATILE_LOG_DIR</glossterm>
16550 <info>
16551 VOLATILE_LOG_DIR[doc] = "Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files."
16552 </info>
16553 <glossdef>
16554 <para role="glossdeffirst">
16555<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16556 Specifies the persistence of the target's
16557 <filename>/var/log</filename> directory, which is used to
16558 house postinstall target log files.
16559 </para>
16560
16561 <para>
16562 By default, <filename>VOLATILE_LOG_DIR</filename> is set
16563 to "yes", which means the file is not persistent.
16564 You can override this setting by setting the
16565 variable to "no" to make the log directory persistent.
16566 </para>
16567 </glossdef>
16568 </glossentry>
16569
16570 </glossdiv>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016571
16572 <glossdiv id='var-glossary-w'><title>W</title>
16573
16574 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
16575 <info>
16576 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
16577 </info>
16578 <glossdef>
16579 <para role="glossdeffirst">
16580<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16581 Specifies the quality assurance checks whose failures are
16582 reported as warnings by the OpenEmbedded build system.
16583 You set this variable in your distribution configuration
16584 file.
16585 For a list of the checks you can control with this variable,
16586 see the
16587 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
16588 section.
16589 </para>
16590 </glossdef>
16591 </glossentry>
16592
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016593 <glossentry id='var-WKS_FILE_DEPENDS'><glossterm>WKS_FILE_DEPENDS</glossterm>
16594 <info>
16595 WKS_FILE_DEPENDS[doc] = "Lists a recipe's build-time dependencies specific to Wic."
16596 </info>
16597 <glossdef>
16598 <para role="glossdeffirst">
16599 When placed in the recipe that builds your image, this
16600 variable lists build-time dependencies.
16601 The <filename>WKS_FILE_DEPENDS</filename> variable is only
16602 applicable when Wic images are active (i.e. when
16603 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
16604 contains entries related to Wic).
16605 If your recipe does not create Wic images, the variable
16606 has no effect.
16607 </para>
16608
16609 <para>
16610 The <filename>WKS_FILE_DEPENDS</filename> variable is
16611 similar to the
16612 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
16613 variable.
16614 When you use the variable in your recipe that builds the
16615 Wic image, dependencies you list in the
16616 <filename>WIC_FILE_DEPENDS</filename> variable are added to
16617 the <filename>DEPENDS</filename> variable.
16618 </para>
16619
16620 <para>
16621 With the <filename>WKS_FILE_DEPENDS</filename> variable,
16622 you have the possibility to specify a list of additional
16623 dependencies (e.g. native tools, bootloaders, and so forth),
16624 that are required to build Wic images.
16625 Following is an example:
16626 <literallayout class='monospaced'>
16627 WKS_FILE_DEPENDS = "<replaceable>some-native-tool</replaceable>"
16628 </literallayout>
16629 In the previous example,
16630 <replaceable>some-native-tool</replaceable> would be
16631 replaced with an actual native tool on which the build
16632 would depend.
16633 </para>
16634 </glossdef>
16635 </glossentry>
16636
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016637 <glossentry id='var-WKS_FILE'><glossterm>WKS_FILE</glossterm>
16638 <info>
16639 WKS_FILE[doc] = "Specifies the name of the wic kickstart file."
16640 </info>
16641 <glossdef>
16642 <para role="glossdeffirst">
16643 Specifies the location of the Wic
16644 kickstart file that is used by the OpenEmbedded build
16645 system to create a partitioned image
16646 (<replaceable>image</replaceable><filename>.wic</filename>).
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016647 For information on how to create a partitioned image, see
16648 the
16649 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
16650 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016651 For details on the kickstart file format, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040016652 "<link linkend='ref-kickstart'>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016653 Chapter.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016654 </para>
16655 </glossdef>
16656 </glossentry>
16657
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016658 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
16659 <info>
16660 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."
16661 </info>
16662 <glossdef>
16663 <para role="glossdeffirst">
16664<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16665 The pathname of the work directory in which the OpenEmbedded
16666 build system builds a recipe.
16667 This directory is located within the
16668 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
16669 directory structure and is specific to the recipe being
16670 built and the system for which it is being built.
16671 </para>
16672
16673 <para>
16674 The <filename>WORKDIR</filename> directory is defined as
16675 follows:
16676 <literallayout class='monospaced'>
16677 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
16678 </literallayout>
16679 The actual directory depends on several things:
16680 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016681 <listitem><filename>TMPDIR</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016682 The top-level build output directory</listitem>
16683 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
16684 The target system identifier</listitem>
16685 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
16686 The recipe name</listitem>
16687 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
16688 The epoch - (if
16689 <link linkend='var-PE'><filename>PE</filename></link>
16690 is not specified, which is usually the case for most
16691 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
16692 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
16693 The recipe version</listitem>
16694 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
16695 The recipe revision</listitem>
16696 </itemizedlist>
16697 </para>
16698
16699 <para>
16700 As an example, assume a Source Directory top-level folder
16701 name <filename>poky</filename>, a default Build Directory at
16702 <filename>poky/build</filename>, and a
16703 <filename>qemux86-poky-linux</filename> machine target
16704 system.
16705 Furthermore, suppose your recipe is named
16706 <filename>foo_1.3.0-r0.bb</filename>.
16707 In this case, the work directory the build system uses to
16708 build the package would be as follows:
16709 <literallayout class='monospaced'>
16710 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
16711 </literallayout>
16712 </para>
16713 </glossdef>
16714 </glossentry>
16715
16716 </glossdiv>
16717
16718 <glossdiv id='var-glossary-x'><title>X</title>
16719
16720 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
16721 <info>
16722 XSERVER[doc] = "Specifies the packages that should be installed
16723 to provide an X server and drivers for the current machine."
16724 </info>
16725 <glossdef>
16726 <para role="glossdeffirst">
16727<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16728 Specifies the packages that should be installed to
16729 provide an X server and drivers for the current machine,
16730 assuming your image directly includes
16731 <filename>packagegroup-core-x11-xserver</filename> or,
16732 perhaps indirectly, includes "x11-base" in
16733 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
16734 </para>
16735
16736 <para>
16737 The default value of <filename>XSERVER</filename>, if not
16738 specified in the machine configuration, is
16739 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
16740 </para>
16741 </glossdef>
16742 </glossentry>
16743
16744 </glossdiv>
16745
16746<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
16747<!-- </glossdiv>-->
16748
16749<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
16750<!-- </glossdiv>-->
16751
16752</glossary>
16753</chapter>
16754<!--
16755vim: expandtab tw=80 ts=4
16756-->