blob: 2b0172317dd4251e7f2deaf608040de7e84756f7 [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>
25 <link linkend='var-GDB'>G</link>
26 <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>
75 ALLOW_EMPTY[doc] = "Specifies if an output package should still be produced if it is empty."
76 </info>
77 <glossdef>
78 <para role="glossdeffirst">
79<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
80 Specifies if an output package should still be produced if it is empty.
81 By default, BitBake does not produce empty packages.
82 This default behavior can cause issues when there is an
83 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> or
84 some other hard runtime requirement on the existence of the package.
85 </para>
86
87 <para>
88 Like all package-controlling variables, you must always use them in
89 conjunction with a package name override, as in:
90 <literallayout class='monospaced'>
91 ALLOW_EMPTY_${PN} = "1"
92 ALLOW_EMPTY_${PN}-dev = "1"
93 ALLOW_EMPTY_${PN}-staticdev = "1"
94 </literallayout>
95 </para>
96 </glossdef>
97 </glossentry>
98
99 <glossentry id='var-ALTERNATIVE'><glossterm>ALTERNATIVE</glossterm>
100 <info>
101 ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
102 </info>
103 <glossdef>
104 <para role="glossdeffirst">
105<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
106 Lists commands in a package that need an alternative
107 binary naming scheme.
108 Sometimes the same command is provided in multiple packages.
109 When this occurs, the OpenEmbedded build system needs to
110 use the alternatives system to create a different binary
111 naming scheme so the commands can co-exist.
112 </para>
113
114 <para>
115 To use the variable, list out the package's commands
116 that also exist as part of another package.
117 For example, if the <filename>busybox</filename> package
118 has four commands that also exist as part of another
119 package, you identify them as follows:
120 <literallayout class='monospaced'>
121 ALTERNATIVE_busybox = "sh sed test bracket"
122 </literallayout>
123 For more information on the alternatives system, see the
124 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
125 section.
126 </para>
127 </glossdef>
128 </glossentry>
129
130 <glossentry id='var-ALTERNATIVE_LINK_NAME'><glossterm>ALTERNATIVE_LINK_NAME</glossterm>
131 <info>
132 ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
133 </info>
134 <glossdef>
135 <para role="glossdeffirst">
136<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
137 Used by the alternatives system to map duplicated commands
138 to actual locations.
139 For example, if the <filename>bracket</filename> command
140 provided by the <filename>busybox</filename> package is
141 duplicated through another package, you must use the
142 <filename>ALTERNATIVE_LINK_NAME</filename> variable to
143 specify the actual location:
144 <literallayout class='monospaced'>
145 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
146 </literallayout>
147 </para>
148
149 <para>
150 In this example, the binary for the
151 <filename>bracket</filename> command (i.e.
152 <filename>[</filename>) from the
153 <filename>busybox</filename> package resides in
154 <filename>/usr/bin/</filename>.
155 <note>
156 If <filename>ALTERNATIVE_LINK_NAME</filename> is not
157 defined, it defaults to
158 <filename>${bindir}/<replaceable>name</replaceable></filename>.
159 </note>
160 </para>
161
162 <para>
163 For more information on the alternatives system, see the
164 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
165 section.
166 </para>
167 </glossdef>
168 </glossentry>
169
170 <glossentry id='var-ALTERNATIVE_PRIORITY'><glossterm>ALTERNATIVE_PRIORITY</glossterm>
171 <info>
172 ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
173 </info>
174 <glossdef>
175 <para role="glossdeffirst">
176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
177 Used by the alternatives system to create default
178 priorities for duplicated commands.
179 You can use the variable to create a single default
180 regardless of the command name or package, a default for
181 specific duplicated commands regardless of the package, or
182 a default for specific commands tied to particular packages.
183 Here are the available syntax forms:
184 <literallayout class='monospaced'>
185 ALTERNATIVE_PRIORITY = "<replaceable>priority</replaceable>"
186 ALTERNATIVE_PRIORITY[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
187 ALTERNATIVE_PRIORITY_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
188 </literallayout>
189 </para>
190
191 <para>
192 For more information on the alternatives system, see the
193 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
194 section.
195 </para>
196 </glossdef>
197 </glossentry>
198
199 <glossentry id='var-ALTERNATIVE_TARGET'><glossterm>ALTERNATIVE_TARGET</glossterm>
200 <info>
201 ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
202 </info>
203 <glossdef>
204 <para role="glossdeffirst">
205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
206 Used by the alternatives system to create default link
207 locations for duplicated commands.
208 You can use the variable to create a single default
209 location for all duplicated commands regardless of the
210 command name or package, a default for
211 specific duplicated commands regardless of the package, or
212 a default for specific commands tied to particular packages.
213 Here are the available syntax forms:
214 <literallayout class='monospaced'>
215 ALTERNATIVE_TARGET = "<replaceable>target</replaceable>"
216 ALTERNATIVE_TARGET[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
217 ALTERNATIVE_TARGET_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
218 </literallayout>
219 <note>
220 <para>
221 If <filename>ALTERNATIVE_TARGET</filename> is not
222 defined, it inherits the value from the
223 <link linkend='var-ALTERNATIVE_LINK_NAME'><filename>ALTERNATIVE_LINK_NAME</filename></link>
224 variable.
225 </para>
226
227 <para>
228 If <filename>ALTERNATIVE_LINK_NAME</filename> and
229 <filename>ALTERNATIVE_TARGET</filename> are the
230 same, the target for
231 <filename>ALTERNATIVE_TARGET</filename>
232 has "<filename>.{BPN}</filename>" appended to it.
233 </para>
234
235 <para>
236 Finally, if the file referenced has not been
237 renamed, the alternatives system will rename it to
238 avoid the need to rename alternative files in the
239 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
240 task while
241 retaining support for the command if necessary.
242 </para>
243 </note>
244 </para>
245
246 <para>
247 For more information on the alternatives system, see the
248 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
249 section.
250 </para>
251 </glossdef>
252 </glossentry>
253
254 <glossentry id='var-APPEND'><glossterm>APPEND</glossterm>
255 <info>
256 APPEND[doc] = "An override list of append strings for each LABEL."
257 </info>
258 <glossdef>
259 <para role="glossdeffirst">
260<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
261 An override list of append strings for each
262 <link linkend='var-LABELS'><filename>LABEL</filename></link>.
263 </para>
264
265 <para>
266 See the
267 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
268 class for more information on how this variable is used.
269 </para>
270 </glossdef>
271 </glossentry>
272
273 <glossentry id='var-AR'><glossterm>AR</glossterm>
274 <info>
275 AR[doc] = "Minimal command and arguments to run 'ar'."
276 </info>
277 <glossdef>
278 <para role="glossdeffirst">
279<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
280 The minimal command and arguments used to run
281 <filename>ar</filename>.
282 </para>
283 </glossdef>
284 </glossentry>
285
286 <glossentry id='var-ARCHIVER_MODE'><glossterm>ARCHIVER_MODE</glossterm>
287 <info>
288 ARCHIVER_MODE[doc] = "Controls archive creation used when releasing source files."
289 </info>
290 <glossdef>
291 <para role="glossdeffirst">
292<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
293 When used with the
294 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
295 class, determines the type of information used to create
296 a released archive.
297 You can use this variable to create archives of patched
298 source, original source, configured source, and so forth
299 by employing the following variable flags (varflags):
300 <literallayout class='monospaced'>
301 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source
302 # files.
303
304 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is
305 # the default.
306
307 ARCHIVER_MODE[src] = "configured" # Uses configured source files.
308
309 ARCHIVER_MODE[diff] = "1" # Uses patches between do_unpack and
310 # do_patch.
311
312 ARCHIVER_MODE[diff-exclude] ?= "<replaceable>file</replaceable> <replaceable>file</replaceable> ..." # Lists files and directories to
313 # exclude from diff.
314
315 ARCHIVER_MODE[dumpdata] = "1" # Uses environment data.
316
317 ARCHIVER_MODE[recipe] = "1" # Uses recipe and include files.
318
319 ARCHIVER_MODE[srpm] = "1" # Uses RPM package files.
320 </literallayout>
321 For information on how the variable works, see the
322 <filename>meta/classes/archiver.bbclass</filename> file
323 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500324 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500325 </para>
326 </glossdef>
327 </glossentry>
328
329 <glossentry id='var-AS'><glossterm>AS</glossterm>
330 <info>
331 AS[doc] = "Minimal command and arguments to run the assembler."
332 </info>
333 <glossdef>
334 <para role="glossdeffirst">
335<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
336 The minimal command and arguments used to run the
337 assembler.
338 </para>
339 </glossdef>
340 </glossentry>
341
342 <glossentry id='var-ASSUME_PROVIDED'><glossterm>ASSUME_PROVIDED</glossterm>
343 <info>
344 ASSUME_PROVIDED[doc] = "Lists recipe names (PN values) BitBake does not attempt to build."
345 </info>
346 <glossdef>
347 <para role="glossdeffirst">
348<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
349 Lists recipe names
350 (<link linkend='var-PN'><filename>PN</filename></link>
351 values) BitBake does not attempt to build.
352 Instead, BitBake assumes these recipes have already been
353 built.
354 </para>
355
356 <para>
357 In OpenEmbedded Core, <filename>ASSUME_PROVIDED</filename>
358 mostly specifies native tools that should not be built.
359 An example is <filename>git-native</filename>, which when
360 specified, allows for the Git binary from the host to be
361 used rather than building <filename>git-native</filename>.
362 </para>
363 </glossdef>
364 </glossentry>
365
366 <glossentry id='var-ASSUME_SHLIBS'><glossterm>ASSUME_SHLIBS</glossterm>
367 <info>
368 ASSUME_SHLIBS[doc] = Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system."
369 </info>
370 <glossdef>
371 <para role="glossdeffirst">
372<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
373 Provides additional <filename>shlibs</filename> provider
374 mapping information, which adds to or overwrites the
375 information provided automatically by the system.
376 Separate multiple entries using spaces.
377 </para>
378
379 <para>
380 As an example, use the following form to add an
381 <filename>shlib</filename> provider of
382 <replaceable>shlibname</replaceable> in
383 <replaceable>packagename</replaceable> with the optional
384 <replaceable>version</replaceable>:
385 <literallayout class='monospaced'>
386 <replaceable>shlibname:packagename</replaceable>[_<replaceable>version</replaceable>]
387 </literallayout>
388 </para>
389
390 <para>
391 Here is an example that adds a shared library named
392 <filename>libEGL.so.1</filename> as being provided by
393 the <filename>libegl-implementation</filename> package:
394 <literallayout class='monospaced'>
395 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
396 </literallayout>
397 </para>
398 </glossdef>
399 </glossentry>
400
401 <glossentry id='var-AUTHOR'><glossterm>AUTHOR</glossterm>
402 <info>
403 AUTHOR[doc] = "Email address used to contact the original author or authors in order to send patches and forward bugs."
404 </info>
405 <glossdef>
406 <para role="glossdeffirst">
407<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
408 The email address used to contact the original author
409 or authors in order to send patches and forward bugs.
410 </para>
411 </glossdef>
412 </glossentry>
413
414 <glossentry id='var-AUTO_LIBNAME_PKGS'><glossterm>AUTO_LIBNAME_PKGS</glossterm>
415 <info>
416 AUTO_LIBNAME_PKGS[doc] = "Specifies which packages should be checked for libraries and renamed according to Debian library package naming."
417 </info>
418 <glossdef>
419 <para role="glossdeffirst">
420<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
421 When the
422 <link linkend='ref-classes-debian'><filename>debian</filename></link>
423 class is inherited, which is the default behavior,
424 <filename>AUTO_LIBNAME_PKGS</filename> specifies which
425 packages should be checked for libraries and renamed
426 according to Debian library package naming.
427 </para>
428
429 <para>
430 The default value is "${PACKAGES}", which causes the
431 debian class to act on all packages that are
432 explicitly generated by the recipe.
433 </para>
434 </glossdef>
435 </glossentry>
436
437 <glossentry id='var-AUTO_SYSLINUXMENU'><glossterm>AUTO_SYSLINUXMENU</glossterm>
438 <info>
439 AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
440 </info>
441 <glossdef>
442 <para role="glossdeffirst">
443<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
444 Enables creating an automatic menu for the syslinux
445 bootloader.
446 You must set this variable in your recipe.
447 The
448 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
449 class checks this variable.
450 </para>
451 </glossdef>
452 </glossentry>
453
454 <glossentry id='var-AUTOREV'><glossterm>AUTOREV</glossterm>
455 <info>
456 AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
457 </info>
458 <glossdef>
459 <para role="glossdeffirst">
460<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
461 When
462 <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
463 is set to the value of this variable, it specifies to use
464 the latest source revision in the repository.
465 Here is an example:
466 <literallayout class='monospaced'>
467 SRCREV = "${AUTOREV}"
468 </literallayout>
469 </para>
470
471 <para>
472 If you use the previous statement to retrieve the latest
473 version of software, you need to be sure
474 <link linkend='var-PV'><filename>PV</filename></link>
475 contains
476 <filename>${</filename><link linkend='var-SRCPV'><filename>SRCPV</filename></link><filename>}</filename>.
477 For example, suppose you have a kernel recipe that
478 inherits the
479 <link linkend='ref-classes-kernel'>kernel</link> class
480 and you use the previous statement.
481 In this example, <filename>${SRCPV}</filename> does not
482 automatically get into <filename>PV</filename>.
483 Consequently, you need to change <filename>PV</filename>
484 in your recipe so that it does contain
485 <filename>${SRCPV}</filename>.
486 </para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500487
488 <para>
489 For more information see the
490 "<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 -0500491 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500492 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500493 </glossdef>
494 </glossentry>
495
496 <glossentry id='var-AVAILTUNES'><glossterm>AVAILTUNES</glossterm>
497 <info>
498 AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system."
499 </info>
500 <glossdef>
501 <para role="glossdeffirst">
502<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
503 The list of defined CPU and Application Binary Interface
504 (ABI) tunings (i.e. "tunes") available for use by the
505 OpenEmbedded build system.
506 </para>
507
508 <para>
509 The list simply presents the tunes that are available.
510 Not all tunes may be compatible with a particular
511 machine configuration, or with each other in a
512 <ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Multilib</ulink>
513 configuration.
514 </para>
515
516 <para>
517 To add a tune to the list, be sure to append it with
518 spaces using the "+=" BitBake operator.
519 Do not simply replace the list by using the "=" operator.
520 See the
521 "<ulink url='&YOCTO_DOCS_BB_URL;#basic-syntax'>Basic Syntax</ulink>"
522 section in the BitBake User Manual for more information.
523 </para>
524 </glossdef>
525 </glossentry>
526
527 </glossdiv>
528
529 <glossdiv id='var-glossary-b'><title>B</title>
530
531 <glossentry id='var-B'><glossterm>B</glossterm>
532 <info>
533 B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
534 </info>
535 <glossdef>
536 <para role="glossdeffirst">
537<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
538 The directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500539 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500540 in which the OpenEmbedded build system places generated
541 objects during a recipe's build process.
542 By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
543 directory, which is defined as:
544 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600545 S = "${WORKDIR}/${BP}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500546 </literallayout>
547 </para>
548
549 <para>
550 You can separate the (<filename>S</filename>) directory
551 and the directory pointed to by the <filename>B</filename>
552 variable.
553 Most Autotools-based recipes support separating these
554 directories.
555 The build system defaults to using separate directories for
556 <filename>gcc</filename> and some kernel recipes.
557 </para>
558 </glossdef>
559 </glossentry>
560
561 <glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
562 <info>
563 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."
564 </info>
565 <glossdef>
566 <para role="glossdeffirst">
567<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
568 Lists "recommended-only" packages to not install.
569 Recommended-only packages are packages installed only
570 through the
571 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
572 variable.
573 You can prevent any of these "recommended" packages from
574 being installed by listing them with the
575 <filename>BAD_RECOMMENDATIONS</filename> variable:
576 <literallayout class='monospaced'>
577 BAD_RECOMMENDATIONS = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
578 </literallayout>
579 </para>
580
581 <para>
582 You can set this variable globally in your
583 <filename>local.conf</filename> file or you can attach it to
584 a specific image recipe by using the recipe name override:
585 <literallayout class='monospaced'>
586 BAD_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
587 </literallayout>
588 </para>
589
590 <para>
591 It is important to realize that if you choose to not install
592 packages using this variable and some other packages are
593 dependent on them (i.e. listed in a recipe's
594 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
595 variable), the OpenEmbedded build system ignores your
596 request and will install the packages to avoid dependency
597 errors.
598 </para>
599
600 <para>
601 Support for this variable exists only when using the
602 IPK and RPM packaging backend.
603 Support does not exist for DEB.
604 </para>
605
606 <para>
607 See the
608 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
609 and the
610 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
611 variables for related information.
612 </para>
613 </glossdef>
614 </glossentry>
615
616 <glossentry id='var-BASE_LIB'><glossterm>BASE_LIB</glossterm>
617 <info>
618 BASE_LIB[doc] = "The library directory name for the CPU or Application Binary Interface (ABI) tune."
619 </info>
620 <glossdef>
621 <para role="glossdeffirst">
622<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
623 The library directory name for the CPU or Application
624 Binary Interface (ABI) tune.
625 The <filename>BASE_LIB</filename> applies only in the
626 Multilib context.
627 See the
628 "<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 -0500629 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500630 information on Multilib.
631 </para>
632
633 <para>
634 The <filename>BASE_LIB</filename> variable is defined in
635 the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500636 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500637 If Multilib is not being used, the value defaults to "lib".
638 </para>
639 </glossdef>
640 </glossentry>
641
642 <glossentry id='var-BASE_WORKDIR'><glossterm>BASE_WORKDIR</glossterm>
643 <info>
644 BASE_WORKDIR[doc] = "Points to the base of the work directory for all recipes."
645 </info>
646 <glossdef>
647 <para role="glossdeffirst">
648<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
649 Points to the base of the work directory for all recipes.
650 The default value is "${TMPDIR}/work".
651 </para>
652 </glossdef>
653 </glossentry>
654
655 <glossentry id='var-BB_ALLOWED_NETWORKS'><glossterm>BB_ALLOWED_NETWORKS</glossterm>
656 <info>
657 BB_ALLOWED_NETWORKS[doc] = "A list of hosts that the fetcher is allowed to use to obtain the required source code."
658 </info>
659 <glossdef>
660 <para>
661 Specifies a space-delimited list of hosts that the fetcher
662 is allowed to use to obtain the required source code.
663 Following are considerations surrounding this variable:
664 <itemizedlist>
665 <listitem><para>
666 This host list is only used if
667 <filename>BB_NO_NETWORK</filename> is either not
668 set or set to "0".
669 </para></listitem>
670 <listitem><para>
671 Limited support for wildcard matching against the
672 beginning of host names exists.
673 For example, the following setting matches
674 <filename>git.gnu.org</filename>,
675 <filename>ftp.gnu.org</filename>, and
676 <filename>foo.git.gnu.org</filename>.
677 <literallayout class='monospaced'>
678 BB_ALLOWED_NETWORKS = "*.gnu.org"
679 </literallayout>
680 </para></listitem>
681 <listitem><para>
682 Mirrors not in the host list are skipped and
683 logged in debug.
684 </para></listitem>
685 <listitem><para>
686 Attempts to access networks not in the host list
687 cause a failure.
688 </para></listitem>
689 </itemizedlist>
690 Using <filename>BB_ALLOWED_NETWORKS</filename> in
691 conjunction with
692 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
693 is very useful.
694 Adding the host you want to use to
695 <filename>PREMIRRORS</filename> results in the source code
696 being fetched from an allowed location and avoids raising
697 an error when a host that is not allowed is in a
698 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
699 statement.
700 This is because the fetcher does not attempt to use the
701 host listed in <filename>SRC_URI</filename> after a
702 successful fetch from the
703 <filename>PREMIRRORS</filename> occurs.
704 </para>
705 </glossdef>
706 </glossentry>
707
708 <glossentry id='var-BB_DANGLINGAPPENDS_WARNONLY'><glossterm>BB_DANGLINGAPPENDS_WARNONLY</glossterm>
709 <info>
710 BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
711 </info>
712 <glossdef>
713 <para role="glossdeffirst">
714<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
715 Defines how BitBake handles situations where an append
716 file (<filename>.bbappend</filename>) has no
717 corresponding recipe file (<filename>.bb</filename>).
718 This condition often occurs when layers get out of sync
719 (e.g. <filename>oe-core</filename> bumps a
720 recipe version and the old recipe no longer exists and the
721 other layer has not been updated to the new version
722 of the recipe yet).
723 </para>
724
725 <para>
726 The default fatal behavior is safest because it is
727 the sane reaction given something is out of sync.
728 It is important to realize when your changes are no longer
729 being applied.
730 </para>
731
732 <para>
733 You can change the default behavior by setting this
734 variable to "1", "yes", or "true"
735 in your <filename>local.conf</filename> file, which is
736 located in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500737 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500738 Here is an example:
739 <literallayout class='monospaced'>
740 BB_DANGLINGAPPENDS_WARNONLY = "1"
741 </literallayout>
742 </para>
743 </glossdef>
744 </glossentry>
745
746 <glossentry id='var-BB_DISKMON_DIRS'><glossterm>BB_DISKMON_DIRS</glossterm>
747 <info>
748 BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
749 </info>
750 <glossdef>
751 <para role="glossdeffirst">
752<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
753 Monitors disk space and available inodes during the build
754 and allows you to control the build based on these
755 parameters.
756 </para>
757
758 <para>
759 Disk space monitoring is disabled by default.
760 To enable monitoring, add the <filename>BB_DISKMON_DIRS</filename>
761 variable to your <filename>conf/local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500762 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500763 Use the following form:
764 <literallayout class='monospaced'>
765 BB_DISKMON_DIRS = "<replaceable>action</replaceable>,<replaceable>dir</replaceable>,<replaceable>threshold</replaceable> [...]"
766
767 where:
768
769 <replaceable>action</replaceable> is:
770 ABORT: Immediately abort the build when
771 a threshold is broken.
772 STOPTASKS: Stop the build after the currently
773 executing tasks have finished when
774 a threshold is broken.
775 WARN: Issue a warning but continue the
776 build when a threshold is broken.
777 Subsequent warnings are issued as
778 defined by the
779 <link linkend='var-BB_DISKMON_WARNINTERVAL'>BB_DISKMON_WARNINTERVAL</link> variable,
780 which must be defined in the
781 conf/local.conf file.
782
783 <replaceable>dir</replaceable> is:
784 Any directory you choose. You can specify one or
785 more directories to monitor by separating the
786 groupings with a space. If two directories are
787 on the same device, only the first directory
788 is monitored.
789
790 <replaceable>threshold</replaceable> is:
791 Either the minimum available disk space,
792 the minimum number of free inodes, or
793 both. You must specify at least one. To
794 omit one or the other, simply omit the value.
795 Specify the threshold using G, M, K for Gbytes,
796 Mbytes, and Kbytes, respectively. If you do
797 not specify G, M, or K, Kbytes is assumed by
798 default. Do not use GB, MB, or KB.
799 </literallayout>
800 </para>
801
802 <para>
803 Here are some examples:
804 <literallayout class='monospaced'>
805 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
806 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
807 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
808 </literallayout>
809 The first example works only if you also provide
810 the <link linkend='var-BB_DISKMON_WARNINTERVAL'><filename>BB_DISKMON_WARNINTERVAL</filename></link> variable
811 in the <filename>conf/local.conf</filename>.
812 This example causes the build system to immediately
813 abort when either the disk space in <filename>${TMPDIR}</filename> drops
814 below 1 Gbyte or the available free inodes drops below
815 100 Kbytes.
816 Because two directories are provided with the variable, the
817 build system also issue a
818 warning when the disk space in the
819 <filename>${SSTATE_DIR}</filename> directory drops
820 below 1 Gbyte or the number of free inodes drops
821 below 100 Kbytes.
822 Subsequent warnings are issued during intervals as
823 defined by the <filename>BB_DISKMON_WARNINTERVAL</filename>
824 variable.
825 </para>
826
827 <para>
828 The second example stops the build after all currently
829 executing tasks complete when the minimum disk space
830 in the <filename>${<link linkend='var-TMPDIR'>TMPDIR</link>}</filename>
831 directory drops below 1 Gbyte.
832 No disk monitoring occurs for the free inodes in this case.
833 </para>
834
835 <para>
836 The final example immediately aborts the build when the
837 number of free inodes in the <filename>${TMPDIR}</filename> directory
838 drops below 100 Kbytes.
839 No disk space monitoring for the directory itself occurs
840 in this case.
841 </para>
842 </glossdef>
843 </glossentry>
844
845 <glossentry id='var-BB_DISKMON_WARNINTERVAL'><glossterm>BB_DISKMON_WARNINTERVAL</glossterm>
846 <info>
847 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."
848 </info>
849 <glossdef>
850 <para role="glossdeffirst">
851<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
852 Defines the disk space and free inode warning intervals.
853 To set these intervals, define the variable in your
854 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500855 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500856 </para>
857
858 <para>
859 If you are going to use the
860 <filename>BB_DISKMON_WARNINTERVAL</filename> variable, you must
861 also use the
862 <link linkend='var-BB_DISKMON_DIRS'><filename>BB_DISKMON_DIRS</filename></link> variable
863 and define its action as "WARN".
864 During the build, subsequent warnings are issued each time
865 disk space or number of free inodes further reduces by
866 the respective interval.
867 </para>
868
869 <para>
870 If you do not provide a <filename>BB_DISKMON_WARNINTERVAL</filename>
871 variable and you do use <filename>BB_DISKMON_DIRS</filename> with
872 the "WARN" action, the disk monitoring interval defaults to
873 the following:
874 <literallayout class='monospaced'>
875 BB_DISKMON_WARNINTERVAL = "50M,5K"
876 </literallayout>
877 </para>
878
879 <para>
880 When specifying the variable in your configuration file,
881 use the following form:
882 <literallayout class='monospaced'>
883 BB_DISKMON_WARNINTERVAL = "<replaceable>disk_space_interval</replaceable>,<replaceable>disk_inode_interval</replaceable>"
884
885 where:
886
887 <replaceable>disk_space_interval</replaceable> is:
888 An interval of memory expressed in either
889 G, M, or K for Gbytes, Mbytes, or Kbytes,
890 respectively. You cannot use GB, MB, or KB.
891
892 <replaceable>disk_inode_interval</replaceable> is:
893 An interval of free inodes expressed in either
894 G, M, or K for Gbytes, Mbytes, or Kbytes,
895 respectively. You cannot use GB, MB, or KB.
896 </literallayout>
897 </para>
898
899 <para>
900 Here is an example:
901 <literallayout class='monospaced'>
902 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
903 BB_DISKMON_WARNINTERVAL = "50M,5K"
904 </literallayout>
905 These variables cause the OpenEmbedded build system to
906 issue subsequent warnings each time the available
907 disk space further reduces by 50 Mbytes or the number
908 of free inodes further reduces by 5 Kbytes in the
909 <filename>${SSTATE_DIR}</filename> directory.
910 Subsequent warnings based on the interval occur each time
911 a respective interval is reached beyond the initial warning
912 (i.e. 1 Gbytes and 100 Kbytes).
913 </para>
914 </glossdef>
915 </glossentry>
916
917 <glossentry id='var-BB_GENERATE_MIRROR_TARBALLS'><glossterm>BB_GENERATE_MIRROR_TARBALLS</glossterm>
918 <info>
919 BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the Git repositories to be placed in the DL_DIR directory."
920 </info>
921 <glossdef>
922 <para role="glossdeffirst">
923<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
924 Causes tarballs of the Git repositories, including the
925 Git metadata, to be placed in the
926 <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
927 directory.
928 </para>
929
930 <para>
931 For performance reasons, creating and placing tarballs of
932 the Git repositories is not the default action by the
933 OpenEmbedded build system.
934 <literallayout class='monospaced'>
935 BB_GENERATE_MIRROR_TARBALLS = "1"
936 </literallayout>
937 Set this variable in your <filename>local.conf</filename>
938 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500939 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500940 </para>
941 </glossdef>
942 </glossentry>
943
944 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
945 <info>
946 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."
947 </info>
948 <glossdef>
949 <para role="glossdeffirst">
950<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
951 The maximum number of tasks BitBake should run in parallel
952 at any one time.
953 The OpenEmbedded build system automatically configures
954 this variable to be equal to the number of cores on the
955 build system.
956 For example, a system with a dual core processor that
957 also uses hyper-threading causes the
958 <filename>BB_NUMBER_THREADS</filename> variable to default
959 to "4".
960 </para>
961
962 <para>
963 For single socket systems (i.e. one CPU), you should not
964 have to override this variable to gain optimal parallelism
965 during builds.
966 However, if you have very large systems that employ
967 multiple physical CPUs, you might want to make sure the
968 <filename>BB_NUMBER_THREADS</filename> variable is not
969 set higher than "20".
970 </para>
971
972 <para>
973 For more information on speeding up builds, see the
974 "<link linkend='speeding-up-the-build'>Speeding Up the Build</link>"
975 section.
976 </para>
977 </glossdef>
978 </glossentry>
979
980 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
981 <info>
982 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."
983 </info>
984 <glossdef>
985 <para role="glossdeffirst">
986<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
987 Allows you to extend a recipe so that it builds variants of the software.
988 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
989 which is a copy of Quilt built to run on the build system;
990 "crosses" such as <filename>gcc-cross</filename>,
991 which is a compiler built to run on the build machine but produces binaries
992 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
993 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
994 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
995 </para>
996
997 <para>
998 To build a different variant of the recipe with a minimal amount of code, it usually
999 is as simple as adding the following to your recipe:
1000 <literallayout class='monospaced'>
1001 BBCLASSEXTEND =+ "native nativesdk"
1002 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
1003 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001004 <note>
1005 <para>
1006 Internally, the <filename>BBCLASSEXTEND</filename>
1007 mechanism generates recipe variants by rewriting
1008 variable values and applying overrides such as
1009 <filename>_class-native</filename>.
1010 For example, to generate a native version of a recipe,
1011 a
1012 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
1013 on "foo" is rewritten to a <filename>DEPENDS</filename>
1014 on "foo-native".
1015 </para>
1016
1017 <para>
1018 Even when using <filename>BBCLASSEXTEND</filename>, the
1019 recipe is only parsed once.
1020 Parsing once adds some limitations.
1021 For example, it is not possible to
1022 include a different file depending on the variant,
1023 since <filename>include</filename> statements are
1024 processed when the recipe is parsed.
1025 </para>
1026 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001027 </para>
1028 </glossdef>
1029 </glossentry>
1030
1031 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1032 <info>
1033 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1034 </info>
1035 <glossdef>
1036 <para role="glossdeffirst">
1037<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1038 Lists the names of configured layers.
1039 These names are used to find the other <filename>BBFILE_*</filename>
1040 variables.
1041 Typically, each layer will append its name to this variable in its
1042 <filename>conf/layer.conf</filename> file.
1043 </para>
1044 </glossdef>
1045 </glossentry>
1046
1047 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1048 <info>
1049 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."
1050 </info>
1051 <glossdef>
1052 <para role="glossdeffirst">
1053<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1054 Variable that expands to match files from
1055 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1056 in a particular layer.
1057 This variable is used in the <filename>conf/layer.conf</filename> file and must
1058 be suffixed with the name of the specific layer (e.g.
1059 <filename>BBFILE_PATTERN_emenlow</filename>).
1060 </para>
1061 </glossdef>
1062 </glossentry>
1063
1064 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1065 <info>
1066 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."
1067 </info>
1068 <glossdef>
1069 <para role="glossdeffirst">
1070<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1071 Assigns the priority for recipe files in each layer.
1072 </para>
1073
1074 <para>
1075 This variable is useful in situations where the same recipe appears in
1076 more than one layer.
1077 Setting this variable allows you to prioritize a
1078 layer against other layers that contain the same recipe - effectively
1079 letting you control the precedence for the multiple layers.
1080 The precedence established through this variable stands regardless of a
1081 recipe's version
1082 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1083 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1084 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1085 lower precedence.
1086 </para>
1087
1088 <para>
1089 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1090 precedence.
1091 For example, the value 6 has a higher precedence than the value 5.
1092 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1093 dependencies (see the
1094 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1095 more information.
1096 The default priority, if unspecified
1097 for a layer with no dependencies, is the lowest defined priority + 1
1098 (or 1 if no priorities are defined).
1099 </para>
1100 <tip>
1101 You can use the command <filename>bitbake-layers show-layers</filename> to list
1102 all configured layers along with their priorities.
1103 </tip>
1104 </glossdef>
1105 </glossentry>
1106
1107 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1108 <info>
1109 BBFILES[doc] = "List of recipe files used by BitBake to build software."
1110 </info>
1111 <glossdef>
1112 <para role="glossdeffirst">
1113<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1114 List of recipe files used by BitBake to build software.
1115 </para>
1116 </glossdef>
1117 </glossentry>
1118
1119 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1120 <info>
1121 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1122 </info>
1123 <glossdef>
1124 <para role="glossdeffirst">
1125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1126 Variable that controls how BitBake displays logs on build failure.
1127 </para>
1128 </glossdef>
1129 </glossentry>
1130
1131 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1132 <info>
1133 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1134 </info>
1135 <glossdef>
1136 <para role="glossdeffirst">
1137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1138 If
1139 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1140 is set, specifies the maximum number of lines from the
1141 task log file to print when reporting a failed task.
1142 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1143 the entire log is printed.
1144 </para>
1145 </glossdef>
1146 </glossentry>
1147
1148 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1149 <info>
1150 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1151 </info>
1152 <glossdef>
1153 <para role="glossdeffirst">
1154<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1155 Lists the layers to enable during the build.
1156 This variable is defined in the <filename>bblayers.conf</filename> configuration
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001157 file in the
1158 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001159 Here is an example:
1160 <literallayout class='monospaced'>
1161 BBLAYERS = " \
1162 /home/scottrif/poky/meta \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001163 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001164 /home/scottrif/poky/meta-yocto-bsp \
1165 /home/scottrif/poky/meta-mykernel \
1166 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001167 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001168 </para>
1169
1170 <para>
1171 This example enables four layers, one of which is a custom, user-defined layer
1172 named <filename>meta-mykernel</filename>.
1173 </para>
1174 </glossdef>
1175 </glossentry>
1176
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001177 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1178 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001179 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001180 </info>
1181 <glossdef>
1182 <para role="glossdeffirst">
1183<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1184 Prevents BitBake from processing recipes and recipe
1185 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001186 </para>
1187
1188 <para>
1189 You can use the <filename>BBMASK</filename> variable
1190 to "hide" these <filename>.bb</filename> and
1191 <filename>.bbappend</filename> files.
1192 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001193 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001194 It is as if BitBake does not see them at all.
1195 Consequently, matching files are not parsed or otherwise
1196 used by BitBake.</para>
1197 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001198 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001199 expression compiler.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001200 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001201 the files.
1202 For complete syntax information, see Python's
1203 documentation at
1204 <ulink url='http://docs.python.org/release/2.3/lib/re-syntax.html'></ulink>.
1205 </para>
1206
1207 <para>
1208 The following example uses a complete regular expression
1209 to tell BitBake to ignore all recipe and recipe append
1210 files in the <filename>meta-ti/recipes-misc/</filename>
1211 directory:
1212 <literallayout class='monospaced'>
1213 BBMASK = "meta-ti/recipes-misc/"
1214 </literallayout>
1215 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001216 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001217 This next example masks out multiple directories and
1218 individual recipes:
1219 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001220 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1221 BBMASK += "/meta-oe/recipes-support/"
1222 BBMASK += "/meta-foo/.*/openldap"
1223 BBMASK += "opencv.*\.bbappend"
1224 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001225 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001226 <note>
1227 When specifying a directory name, use the trailing
1228 slash character to ensure you match just that directory
1229 name.
1230 </note>
1231 </para>
1232 </glossdef>
1233 </glossentry>
1234
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001235 <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
1236 <info>
1237 BBMULTICONFIG[doc] = "Specifies each separate configuration when you are building targets with multiple configurations."
1238 </info>
1239 <glossdef>
1240 <para role="glossdeffirst">
1241<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1242 Specifies each separate configuration when you are
1243 building targets with multiple configurations.
1244 Use this variable in your
1245 <filename>conf/local.conf</filename> configuration file.
1246 Specify a <replaceable>multiconfigname</replaceable> for
1247 each configuration file you are using.
1248 For example, the following line specifies three
1249 configuration files:
1250 <literallayout class='monospaced'>
1251 BBMULTIFONFIG = "configA configB configC"
1252 </literallayout>
1253 Each configuration file you use must reside in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001254 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001255 <filename>conf/multiconfig</filename> directory
1256 (e.g.
1257 <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
1258 </para>
1259
1260 <para>
1261 For information on how to use
1262 <filename>BBMULTICONFIG</filename> in an environment that
1263 supports building targets with multiple configurations,
1264 see the
1265 "<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 -05001266 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001267 </para>
1268 </glossdef>
1269 </glossentry>
1270
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001271 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1272 <info>
1273 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1274 </info>
1275 <glossdef>
1276 <para role="glossdeffirst">
1277<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1278 Used by BitBake to locate
1279 <filename>.bbclass</filename> and configuration files.
1280 This variable is analogous to the
1281 <filename>PATH</filename> variable.
1282 <note>
1283 If you run BitBake from a directory outside of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001284 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001285 you must be sure to set
1286 <filename>BBPATH</filename> to point to the
1287 Build Directory.
1288 Set the variable as you would any environment variable
1289 and then run BitBake:
1290 <literallayout class='monospaced'>
1291 $ BBPATH = "<replaceable>build_directory</replaceable>"
1292 $ export BBPATH
1293 $ bitbake <replaceable>target</replaceable>
1294 </literallayout>
1295 </note>
1296 </para>
1297 </glossdef>
1298 </glossentry>
1299
1300 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1301 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001302 BBSERVER[doc] = "Points to the BitBake remote server."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001303 </info>
1304 <glossdef>
1305 <para role="glossdeffirst">
1306<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001307 If defined in the BitBake environment,
1308 <filename>BBSERVER</filename> points to the BitBake
1309 remote server.
1310 </para>
1311
1312 <para>
1313 Use the following format to export the variable to the
1314 BitBake environment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001315 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001316 export BBSERVER=localhost:$port"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001317 </literallayout>
1318 </para>
1319
1320 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001321 By default, <filename>BBSERVER</filename> also appears in
1322 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>.
1323 Consequently, <filename>BBSERVER</filename> is excluded
1324 from checksum and dependency data.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001325 </para>
1326 </glossdef>
1327 </glossentry>
1328
1329 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1330 <info>
1331 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."
1332 </info>
1333 <glossdef>
1334 <para role="glossdeffirst">
1335<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1336 When inheriting the
1337 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1338 class, this variable specifies binary configuration
1339 scripts to disable in favor of using
1340 <filename>pkg-config</filename> to query the information.
1341 The <filename>binconfig-disabled</filename> class will
1342 modify the specified scripts to return an error so that
1343 calls to them can be easily found and replaced.
1344 </para>
1345
1346 <para>
1347 To add multiple scripts, separate them by spaces.
1348 Here is an example from the <filename>libpng</filename>
1349 recipe:
1350 <literallayout class='monospaced'>
1351 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1352 </literallayout>
1353 </para>
1354 </glossdef>
1355 </glossentry>
1356
1357 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1358 <info>
1359 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1360 </info>
1361 <glossdef>
1362 <para role="glossdeffirst">
1363<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1364 When inheriting the
1365 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1366 class, this variable specifies a wildcard for
1367 configuration scripts that need editing.
1368 The scripts are edited to correct any paths that have been
1369 set up during compilation so that they are correct for
1370 use when installed into the sysroot and called by the
1371 build processes of other recipes.
1372 </para>
1373
1374 <para>
1375 For more information on how this variable works, see
1376 <filename>meta/classes/binconfig.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001377 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001378 You can also find general information on the class in the
1379 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1380 section.
1381 </para>
1382 </glossdef>
1383 </glossentry>
1384
1385 <glossentry id='var-BP'><glossterm>BP</glossterm>
1386 <info>
1387 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}"
1388 </info>
1389 <glossdef>
1390 <para role="glossdeffirst">
1391<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1392 The base recipe name and version but without any special
1393 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1394 and so forth).
1395 <filename>BP</filename> is comprised of the following:
1396 <literallayout class="monospaced">
1397 ${BPN}-${PV}
1398 </literallayout>
1399 </para>
1400 </glossdef>
1401 </glossentry>
1402
1403 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1404 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001405 BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001406 </info>
1407 <glossdef>
1408 <para role="glossdeffirst">
1409<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001410 This variable is a version of the
1411 <link linkend='var-PN'><filename>PN</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001412 variable with common prefixes and suffixes
1413 removed, such as <filename>nativesdk-</filename>,
1414 <filename>-cross</filename>,
1415 <filename>-native</filename>, and multilib's
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001416 <filename>lib64-</filename> and
1417 <filename>lib32-</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001418 The exact lists of prefixes and suffixes removed are
1419 specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001420 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001421 and
1422 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1423 variables, respectively.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001424 </para>
1425 </glossdef>
1426 </glossentry>
1427
1428 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1429 <info>
1430 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1431 </info>
1432 <glossdef>
1433 <para role="glossdeffirst">
1434<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1435 Specifies a URL for an upstream bug tracking website for
1436 a recipe.
1437 The OpenEmbedded build system does not use this variable.
1438 Rather, the variable is a useful pointer in case a bug
1439 in the software being built needs to be manually reported.
1440 </para>
1441 </glossdef>
1442 </glossentry>
1443
1444 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1445 <info>
1446 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1447 </info>
1448 <glossdef>
1449 <para role="glossdeffirst">
1450<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1451 Specifies the architecture of the build host
1452 (e.g. <filename>i686</filename>).
1453 The OpenEmbedded build system sets the value of
1454 <filename>BUILD_ARCH</filename> from the machine name
1455 reported by the <filename>uname</filename> command.
1456 </para>
1457 </glossdef>
1458 </glossentry>
1459
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001460 <glossentry id='var-BUILD_AS_ARCH'><glossterm>BUILD_AS_ARCH</glossterm>
1461 <info>
1462 BUILD_AS_ARCH[doc] = "Specifies the architecture-specific assembler flags for the build host."
1463 </info>
1464 <glossdef>
1465 <para role="glossdeffirst">
1466<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1467 Specifies the architecture-specific assembler flags for
1468 the build host. By default, the value of
1469 <filename>BUILD_AS_ARCH</filename> is empty.
1470 </para>
1471 </glossdef>
1472 </glossentry>
1473
1474 <glossentry id='var-BUILD_CC_ARCH'><glossterm>BUILD_CC_ARCH</glossterm>
1475 <info>
1476 BUILD_CC_ARCH[doc] = "Specifies the architecture-specific C compiler flags for the build host."
1477 </info>
1478 <glossdef>
1479 <para role="glossdeffirst">
1480<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1481 Specifies the architecture-specific C compiler flags for
1482 the build host. By default, the value of
1483 <filename>BUILD_CC_ARCH</filename> is empty.
1484 </para>
1485 </glossdef>
1486 </glossentry>
1487
1488 <glossentry id='var-BUILD_CCLD'><glossterm>BUILD_CCLD</glossterm>
1489 <info>
1490 BUILD_CCLD[doc] = "Specifies the linker command to be used for the build host when the C compiler is being used as the linker."
1491 </info>
1492 <glossdef>
1493 <para role="glossdeffirst">
1494<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1495 Specifies the linker command to be used for the build host
1496 when the C compiler is being used as the linker. By default,
1497 <filename>BUILD_CCLD</filename> points to GCC and passes as
1498 arguments the value of
1499 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1500 assuming <filename>BUILD_CC_ARCH</filename> is set.
1501 </para>
1502 </glossdef>
1503 </glossentry>
1504
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001505 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1506 <info>
1507 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1508 </info>
1509 <glossdef>
1510 <para role="glossdeffirst">
1511<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1512 Specifies the flags to pass to the C compiler when building
1513 for the build host.
1514 When building in the <filename>-native</filename> context,
1515 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1516 is set to the value of this variable by default.
1517 </para>
1518 </glossdef>
1519 </glossentry>
1520
1521 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1522 <info>
1523 BUILD_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 build host."
1524 </info>
1525 <glossdef>
1526 <para role="glossdeffirst">
1527<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1528 Specifies the flags to pass to the C pre-processor
1529 (i.e. to both the C and the C++ compilers) when building
1530 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001531 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001532 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1533 is set to the value of this variable by default.
1534 </para>
1535 </glossdef>
1536 </glossentry>
1537
1538 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1539 <info>
1540 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1541 </info>
1542 <glossdef>
1543 <para role="glossdeffirst">
1544<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1545 Specifies the flags to pass to the C++ compiler when
1546 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001547 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001548 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1549 is set to the value of this variable by default.
1550 </para>
1551 </glossdef>
1552 </glossentry>
1553
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001554 <glossentry id='var-BUILD_FC'><glossterm>BUILD_FC</glossterm>
1555 <info>
1556 BUILD_FC[doc] = "Specifies the Fortran compiler command for the build host."
1557 </info>
1558 <glossdef>
1559 <para role="glossdeffirst">
1560<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1561 Specifies the Fortran compiler command for the build host.
1562 By default, <filename>BUILD_FC</filename> points to
1563 Gfortran and passes as arguments the value of
1564 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1565 assuming <filename>BUILD_CC_ARCH</filename> is set.
1566 </para>
1567 </glossdef>
1568 </glossentry>
1569
1570 <glossentry id='var-BUILD_LD'><glossterm>BUILD_LD</glossterm>
1571 <info>
1572 BUILD_LD[doc] = "Specifies the linker command for the build host."
1573 </info>
1574 <glossdef>
1575 <para role="glossdeffirst">
1576<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1577 Specifies the linker command for the build host. By default,
1578 <filename>BUILD_LD</filename> points to the GNU linker (ld)
1579 and passes as arguments the value of
1580 <link linkend='var-BUILD_LD_ARCH'><filename>BUILD_LD_ARCH</filename></link>,
1581 assuming <filename>BUILD_LD_ARCH</filename> is set.
1582 </para>
1583 </glossdef>
1584 </glossentry>
1585
1586 <glossentry id='var-BUILD_LD_ARCH'><glossterm>BUILD_LD_ARCH</glossterm>
1587 <info>
1588 BUILD_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the build."
1589 </info>
1590 <glossdef>
1591 <para role="glossdeffirst">
1592<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1593 Specifies architecture-specific linker flags for the build
1594 host. By default, the value of
1595 <filename>BUILD_LD_ARCH</filename> is empty.
1596 </para>
1597 </glossdef>
1598 </glossentry>
1599
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001600 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1601 <info>
1602 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1603 </info>
1604 <glossdef>
1605 <para role="glossdeffirst">
1606<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1607 Specifies the flags to pass to the linker when building
1608 for the build host.
1609 When building in the <filename>-native</filename> context,
1610 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1611 is set to the value of this variable by default.
1612 </para>
1613 </glossdef>
1614 </glossentry>
1615
1616 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1617 <info>
1618 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1619 </info>
1620 <glossdef>
1621 <para role="glossdeffirst">
1622<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1623 Specifies the optimization flags passed to the C compiler
1624 when building for the build host or the SDK.
1625 The flags are passed through the
1626 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1627 and
1628 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1629 default values.
1630 </para>
1631
1632 <para>
1633 The default value of the
1634 <filename>BUILD_OPTIMIZATION</filename> variable is
1635 "-O2 -pipe".
1636 </para>
1637 </glossdef>
1638 </glossentry>
1639
1640 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1641 <info>
1642 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1643 </info>
1644 <glossdef>
1645 <para role="glossdeffirst">
1646<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1647 Specifies the operating system in use on the build
1648 host (e.g. "linux").
1649 The OpenEmbedded build system sets the value of
1650 <filename>BUILD_OS</filename> from the OS reported by
1651 the <filename>uname</filename> command - the first word,
1652 converted to lower-case characters.
1653 </para>
1654 </glossdef>
1655 </glossentry>
1656
1657 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1658 <info>
1659 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1660 </info>
1661 <glossdef>
1662 <para role="glossdeffirst">
1663<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1664 The toolchain binary prefix used for native recipes.
1665 The OpenEmbedded build system uses the
1666 <filename>BUILD_PREFIX</filename> value to set the
1667 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001668 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001669 </para>
1670 </glossdef>
1671 </glossentry>
1672
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001673 <glossentry id='var-BUILD_STRIP'><glossterm>BUILD_STRIP</glossterm>
1674 <info>
1675 BUILD_STRIP[doc] = "Specifies the command to be used to strip debugging symbols from binaries produced for the build host."
1676 </info>
1677 <glossdef>
1678 <para role="glossdeffirst">
1679<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1680 Specifies the command to be used to strip debugging symbols
1681 from binaries produced for the build host. By default,
1682 <filename>BUILD_STRIP</filename> points to
1683 <filename>${</filename><link linkend='var-BUILD_PREFIX'><filename>BUILD_PREFIX</filename></link><filename>}strip</filename>.
1684 </para>
1685 </glossdef>
1686 </glossentry>
1687
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001688 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1689 <info>
1690 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1691 </info>
1692 <glossdef>
1693 <para role="glossdeffirst">
1694<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1695 Specifies the system, including the architecture and
1696 the operating system, to use when building for the build
1697 host (i.e. when building <filename>native</filename>
1698 recipes).
1699 </para>
1700
1701 <para>
1702 The OpenEmbedded build system automatically sets this
1703 variable based on
1704 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1705 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1706 and
1707 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1708 You do not need to set the <filename>BUILD_SYS</filename>
1709 variable yourself.
1710 </para>
1711 </glossdef>
1712 </glossentry>
1713
1714 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1715 <info>
1716 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1717 </info>
1718 <glossdef>
1719 <para role="glossdeffirst">
1720<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1721 Specifies the vendor name to use when building for the
1722 build host.
1723 The default value is an empty string ("").
1724 </para>
1725 </glossdef>
1726 </glossentry>
1727
1728 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1729 <info>
1730 BUILDDIR[doc] = "Points to the location of the Build Directory."
1731 </info>
1732 <glossdef>
1733 <para role="glossdeffirst">
1734<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1735 Points to the location of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001736 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001737 You can define this directory indirectly through the
1738 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001739 script by passing in a Build Directory path when you run
1740 the script.
1741 If you run the script and do not provide a Build Directory
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001742 path, the <filename>BUILDDIR</filename> defaults to
1743 <filename>build</filename> in the current directory.
1744 </para>
1745 </glossdef>
1746 </glossentry>
1747
1748 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1749 <info>
1750 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."
1751 </info>
1752 <glossdef>
1753 <para role="glossdeffirst">
1754<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1755 When inheriting the
1756 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1757 class, this variable specifies whether or not to commit the
1758 build history output in a local Git repository.
1759 If set to "1", this local repository will be maintained
1760 automatically by the
1761 <filename>buildhistory</filename>
1762 class and a commit will be created on every
1763 build for changes to each top-level subdirectory of the
1764 build history output (images, packages, and sdk).
1765 If you want to track changes to build history over
1766 time, you should set this value to "1".
1767 </para>
1768
1769 <para>
1770 By default, the <filename>buildhistory</filename> class
1771 does not commit the build history output in a local
1772 Git repository:
1773 <literallayout class='monospaced'>
1774 BUILDHISTORY_COMMIT ?= "0"
1775 </literallayout>
1776 </para>
1777 </glossdef>
1778 </glossentry>
1779
1780 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1781 <info>
1782 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1783 </info>
1784 <glossdef>
1785 <para role="glossdeffirst">
1786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1787 When inheriting the
1788 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1789 class, this variable specifies the author to use for each
1790 Git commit.
1791 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1792 variable to work, the
1793 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1794 variable must be set to "1".
1795 </para>
1796
1797 <para>
1798 Git requires that the value you provide for the
1799 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
1800 takes the form of "name &lt;email@host&gt;".
1801 Providing an email address or host that is not valid does
1802 not produce an error.
1803 </para>
1804
1805 <para>
1806 By default, the <filename>buildhistory</filename> class
1807 sets the variable as follows:
1808 <literallayout class='monospaced'>
1809 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1810 </literallayout>
1811 </para>
1812 </glossdef>
1813 </glossentry>
1814
1815 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1816 <info>
1817 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1818 </info>
1819 <glossdef>
1820 <para role="glossdeffirst">
1821<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1822 When inheriting the
1823 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1824 class, this variable specifies the directory in which
1825 build history information is kept.
1826 For more information on how the variable works, see the
1827 <filename>buildhistory.class</filename>.
1828 </para>
1829
1830 <para>
1831 By default, the <filename>buildhistory</filename> class
1832 sets the directory as follows:
1833 <literallayout class='monospaced'>
1834 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1835 </literallayout>
1836 </para>
1837 </glossdef>
1838 </glossentry>
1839
1840 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1841 <info>
1842 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1843 </info>
1844 <glossdef>
1845 <para role="glossdeffirst">
1846<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1847 When inheriting the
1848 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1849 class, this variable specifies the build history features
1850 to be enabled.
1851 For more information on how build history works, see the
1852 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
1853 section.
1854 </para>
1855
1856 <para>
1857 You can specify three features in the form of a
1858 space-separated list:
1859 <itemizedlist>
1860 <listitem><para><emphasis>image:</emphasis>
1861 Analysis of the contents of images, which
1862 includes the list of installed packages among other
1863 things.
1864 </para></listitem>
1865 <listitem><para><emphasis>package:</emphasis>
1866 Analysis of the contents of individual packages.
1867 </para></listitem>
1868 <listitem><para><emphasis>sdk:</emphasis>
1869 Analysis of the contents of the software
1870 development kit (SDK).
1871 </para></listitem>
1872 </itemizedlist>
1873 </para>
1874
1875 <para>
1876 By default, the <filename>buildhistory</filename> class
1877 enables all three features:
1878 <literallayout class='monospaced'>
1879 BUILDHISTORY_FEATURES ?= "image package sdk"
1880 </literallayout>
1881 </para>
1882 </glossdef>
1883 </glossentry>
1884
1885 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
1886 <info>
1887 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."
1888 </info>
1889 <glossdef>
1890 <para role="glossdeffirst">
1891<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1892 When inheriting the
1893 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1894 class, this variable specifies a list of paths to files
1895 copied from the
1896 image contents into the build history directory under
1897 an "image-files" directory in the directory for
1898 the image, so that you can track the contents of each file.
1899 The default is to copy <filename>/etc/passwd</filename>
1900 and <filename>/etc/group</filename>, which allows you to
1901 monitor for changes in user and group entries.
1902 You can modify the list to include any file.
1903 Specifying an invalid path does not produce an error.
1904 Consequently, you can include files that might
1905 not always be present.
1906 </para>
1907
1908 <para>
1909 By default, the <filename>buildhistory</filename> class
1910 provides paths to the following files:
1911 <literallayout class='monospaced'>
1912 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1913 </literallayout>
1914 </para>
1915 </glossdef>
1916 </glossentry>
1917
1918 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
1919 <info>
1920 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
1921 </info>
1922 <glossdef>
1923 <para role="glossdeffirst">
1924<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1925 When inheriting the
1926 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1927 class, this variable optionally specifies a remote
1928 repository to which build history pushes Git changes.
1929 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
1930 to work,
1931 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1932 must be set to "1".
1933 </para>
1934
1935 <para>
1936 The repository should correspond to a remote
1937 address that specifies a repository as understood by
1938 Git, or alternatively to a remote name that you have
1939 set up manually using <filename>git remote</filename>
1940 within the local repository.
1941 </para>
1942
1943 <para>
1944 By default, the <filename>buildhistory</filename> class
1945 sets the variable as follows:
1946 <literallayout class='monospaced'>
1947 BUILDHISTORY_PUSH_REPO ?= ""
1948 </literallayout>
1949 </para>
1950 </glossdef>
1951 </glossentry>
1952
1953 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
1954 <info>
1955 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
1956 </info>
1957 <glossdef>
1958 <para role="glossdeffirst">
1959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1960 Specifies the flags to pass to the C compiler when building
1961 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001962 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001963 context,
1964 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1965 is set to the value of this variable by default.
1966 </para>
1967 </glossdef>
1968 </glossentry>
1969
1970 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
1971 <info>
1972 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."
1973 </info>
1974 <glossdef>
1975 <para role="glossdeffirst">
1976<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1977 Specifies the flags to pass to the C pre-processor
1978 (i.e. to both the C and the C++ compilers) when building
1979 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001980 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001981 context,
1982 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1983 is set to the value of this variable by default.
1984 </para>
1985 </glossdef>
1986 </glossentry>
1987
1988 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
1989 <info>
1990 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
1991 </info>
1992 <glossdef>
1993 <para role="glossdeffirst">
1994<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1995 Specifies the flags to pass to the C++ compiler when
1996 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001997 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001998 context,
1999 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
2000 is set to the value of this variable by default.
2001 </para>
2002 </glossdef>
2003 </glossentry>
2004
2005 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
2006 <info>
2007 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
2008 </info>
2009 <glossdef>
2010 <para role="glossdeffirst">
2011<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2012 Specifies the flags to pass to the linker when building
2013 for the SDK.
2014 When building in the <filename>nativesdk-</filename>
2015 context,
2016 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
2017 is set to the value of this variable by default.
2018 </para>
2019 </glossdef>
2020 </glossentry>
2021
2022 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
2023 <info>
2024 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
2025 </info>
2026 <glossdef>
2027 <para role="glossdeffirst">
2028<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2029 Points to the location of the directory that holds build
2030 statistics when you use and enable the
2031 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
2032 class.
2033 The <filename>BUILDSTATS_BASE</filename> directory defaults
2034 to
2035 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
2036 </para>
2037 </glossdef>
2038 </glossentry>
2039
2040 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
2041 <info>
2042 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."
2043 </info>
2044 <glossdef>
2045 <para role="glossdeffirst">
2046<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2047 For the BusyBox recipe, specifies whether to split the
2048 output executable file into two parts: one for features
2049 that require <filename>setuid root</filename>, and one for
2050 the remaining features (i.e. those that do not require
2051 <filename>setuid root</filename>).
2052 </para>
2053
2054 <para>
2055 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
2056 defaults to "1", which results in a single output
2057 executable file.
2058 Set the variable to "0" to split the output file.
2059 </para>
2060 </glossdef>
2061 </glossentry>
2062
2063 </glossdiv>
2064
2065 <glossdiv id='var-glossary-c'><title>C</title>
2066
2067 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
2068 <info>
2069 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
2070 </info>
2071 <glossdef>
2072 <para role="glossdeffirst">
2073<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2074 Specifies the directory BitBake uses to store a cache
2075 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002076 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002077 so it does not need to be parsed every time BitBake is
2078 started.
2079 </para>
2080 </glossdef>
2081 </glossentry>
2082
2083 <glossentry id='var-CC'><glossterm>CC</glossterm>
2084 <info>
2085 CC[doc] = "Minimum command and arguments to run the C compiler."
2086 </info>
2087 <glossdef>
2088 <para role="glossdeffirst">
2089<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2090 The minimal command and arguments used to run the C
2091 compiler.
2092 </para>
2093 </glossdef>
2094 </glossentry>
2095
2096 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
2097 <info>
2098 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
2099 </info>
2100 <glossdef>
2101 <para role="glossdeffirst">
2102<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2103 Specifies the flags to pass to the C compiler.
2104 This variable is exported to an environment
2105 variable and thus made visible to the software being
2106 built during the compilation step.
2107 </para>
2108
2109 <para>
2110 Default initialization for <filename>CFLAGS</filename>
2111 varies depending on what is being built:
2112 <itemizedlist>
2113 <listitem><para>
2114 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2115 when building for the target
2116 </para></listitem>
2117 <listitem><para>
2118 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2119 when building for the build host (i.e.
2120 <filename>-native</filename>)
2121 </para></listitem>
2122 <listitem><para>
2123 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2124 when building for an SDK (i.e.
2125 <filename>nativesdk-</filename>)
2126 </para></listitem>
2127 </itemizedlist>
2128 </para>
2129 </glossdef>
2130 </glossentry>
2131
2132 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2133 <info>
2134 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2135 </info>
2136 <glossdef>
2137 <para role="glossdeffirst">
2138<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2139 An internal variable specifying the special class override
2140 that should currently apply (e.g. "class-target",
2141 "class-native", and so forth).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002142 The classes that use this variable (e.g.
2143 <link linkend='ref-classes-native'><filename>native</filename></link>,
2144 <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
2145 and so forth) set the variable to appropriate values.
2146 <note>
2147 <filename>CLASSOVERRIDE</filename> gets its default
2148 "class-target" value from the
2149 <filename>bitbake.conf</filename> file.
2150 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002151 </para>
2152
2153 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002154 As an example, the following override allows you to install
2155 extra files, but only when building for the target:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002156 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002157 do_install_append_class-target() {
2158 install my-extra-file ${D}${sysconfdir}
2159 }
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002160 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002161 Here is an example where <filename>FOO</filename>
2162 is set to "native" when building for the build host, and
2163 to "other" when not building for the build host:
2164 <literallayout class='monospaced'>
2165 FOO_class-native = "native"
2166 FOO = "other"
2167 </literallayout>
2168 The underlying mechanism behind
2169 <filename>CLASSOVERRIDE</filename> is simply that it is
2170 included in the default value of
2171 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002172 </para>
2173 </glossdef>
2174 </glossentry>
2175
2176 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2177 <info>
2178 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2179 </info>
2180 <glossdef>
2181 <para role="glossdeffirst">
2182<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2183 If set to "1" within a recipe,
2184 <filename>CLEANBROKEN</filename> specifies that
2185 the <filename>make clean</filename> command does
2186 not work for the software being built.
2187 Consequently, the OpenEmbedded build system will not try
2188 to run <filename>make clean</filename> during the
2189 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2190 task, which is the default behavior.
2191 </para>
2192 </glossdef>
2193 </glossentry>
2194
2195 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2196 <info>
2197 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2198 </info>
2199 <glossdef>
2200 <para role="glossdeffirst">
2201<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2202 Provides a list of hardware features that are enabled in
2203 both
2204 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2205 and
2206 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2207 This select list of features contains features that make
2208 sense to be controlled both at the machine and distribution
2209 configuration level.
2210 For example, the "bluetooth" feature requires hardware
2211 support but should also be optional at the distribution
2212 level, in case the hardware supports Bluetooth but you
2213 do not ever intend to use it.
2214 </para>
2215
2216 <para>
2217 For more information, see the
2218 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2219 and <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
2220 variables.
2221 </para>
2222 </glossdef>
2223 </glossentry>
2224
2225 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2226 <info>
2227 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2228 </info>
2229 <glossdef>
2230 <para role="glossdeffirst">
2231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2232 Points to <filename>meta/files/common-licenses</filename>
2233 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002234 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002235 which is where generic license files reside.
2236 </para>
2237 </glossdef>
2238 </glossentry>
2239
2240 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2241 <info>
2242 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."
2243 </info>
2244 <glossdef>
2245 <para role="glossdeffirst">
2246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2247 A regular expression that resolves to one or more hosts
2248 (when the recipe is native) or one or more targets (when
2249 the recipe is non-native) with which a recipe is compatible.
2250 The regular expression is matched against
2251 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2252 You can use the variable to stop recipes from being built
2253 for classes of systems with which the recipes are not
2254 compatible.
2255 Stopping these builds is particularly useful with kernels.
2256 The variable also helps to increase parsing speed
2257 since the build system skips parsing recipes not
2258 compatible with the current system.
2259 </para>
2260 </glossdef>
2261 </glossentry>
2262
2263 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2264 <info>
2265 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2266 </info>
2267 <glossdef>
2268 <para role="glossdeffirst">
2269<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2270 A regular expression that resolves to one or more
2271 target machines with which a recipe is compatible.
2272 The regular expression is matched against
2273 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2274 You can use the variable to stop recipes from being built
2275 for machines with which the recipes are not compatible.
2276 Stopping these builds is particularly useful with kernels.
2277 The variable also helps to increase parsing speed
2278 since the build system skips parsing recipes not
2279 compatible with the current machine.
2280 </para>
2281 </glossdef>
2282 </glossentry>
2283
2284 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2285 <info>
2286 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2287 </info>
2288 <glossdef>
2289 <para role="glossdeffirst">
2290<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2291 Defines wildcards to match when installing a list of
2292 complementary packages for all the packages explicitly
2293 (or implicitly) installed in an image.
2294 The resulting list of complementary packages is associated
2295 with an item that can be added to
2296 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2297 An example usage of this is the "dev-pkgs" item that when
2298 added to <filename>IMAGE_FEATURES</filename> will
2299 install -dev packages (containing headers and other
2300 development files) for every package in the image.
2301 </para>
2302
2303 <para>
2304 To add a new feature item pointing to a wildcard, use a
2305 variable flag to specify the feature item name and
2306 use the value to specify the wildcard.
2307 Here is an example:
2308 <literallayout class='monospaced'>
2309 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2310 </literallayout>
2311 </para>
2312 </glossdef>
2313 </glossentry>
2314
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002315 <glossentry id='var-COMPONENTS_DIR'><glossterm>COMPONENTS_DIR</glossterm>
2316 <info>
2317 COMPONENTS_DIR[doc] = "Stores sysroot components for each recipe."
2318 </info>
2319 <glossdef>
2320 <para role="glossdeffirst">
2321<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2322 Stores sysroot components for each recipe.
2323 The OpenEmbedded build system uses
2324 <filename>COMPONENTS_DIR</filename> when constructing
2325 recipe-specific sysroots for other recipes.
2326 </para>
2327
2328 <para>
2329 The default is
2330 "<filename>${</filename><link linkend='var-STAGING_DIR'><filename>STAGING_DIR</filename></link><filename>}-components</filename>."
2331 (i.e. "<filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots-components</filename>").
2332 </para>
2333 </glossdef>
2334 </glossentry>
2335
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002336 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2337 <info>
2338 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2339 </info>
2340 <glossdef>
2341 <para role="glossdeffirst">
2342<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2343 Tracks the version of the local configuration file
2344 (i.e. <filename>local.conf</filename>).
2345 The value for <filename>CONF_VERSION</filename>
2346 increments each time <filename>build/conf/</filename>
2347 compatibility changes.
2348 </para>
2349 </glossdef>
2350 </glossentry>
2351
2352 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2353 <info>
2354 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2355 </info>
2356 <glossdef>
2357 <para role="glossdeffirst">
2358<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2359 Identifies editable or configurable files that are part of a package.
2360 If the Package Management System (PMS) is being used to update
2361 packages on the target system, it is possible that
2362 configuration files you have changed after the original installation
2363 and that you now want to remain unchanged are overwritten.
2364 In other words, editable files might exist in the package that you do not
2365 want reset as part of the package update process.
2366 You can use the <filename>CONFFILES</filename> variable to list the files in the
2367 package that you wish to prevent the PMS from overwriting during this update process.
2368 </para>
2369
2370 <para>
2371 To use the <filename>CONFFILES</filename> variable, provide a package name
2372 override that identifies the resulting package.
2373 Then, provide a space-separated list of files.
2374 Here is an example:
2375 <literallayout class='monospaced'>
2376 CONFFILES_${PN} += "${sysconfdir}/file1 \
2377 ${sysconfdir}/file2 ${sysconfdir}/file3"
2378 </literallayout>
2379 </para>
2380
2381 <para>
2382 A relationship exists between the <filename>CONFFILES</filename> and
2383 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2384 The files listed within <filename>CONFFILES</filename> must be a subset of
2385 the files listed within <filename>FILES</filename>.
2386 Because the configuration files you provide with <filename>CONFFILES</filename>
2387 are simply being identified so that the PMS will not overwrite them,
2388 it makes sense that
2389 the files must already be included as part of the package through the
2390 <filename>FILES</filename> variable.
2391 </para>
2392
2393 <note>
2394 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2395 it is good practice to use appropriate path variables.
2396 For example, <filename>${sysconfdir}</filename> rather than
2397 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2398 than <filename>/usr/bin</filename>.
2399 You can find a list of these variables at the top of the
2400 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002401 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002402 </note>
2403 </glossdef>
2404 </glossentry>
2405
2406 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2407 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002408 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 -05002409 </info>
2410 <glossdef>
2411 <para role="glossdeffirst">
2412<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002413 Identifies the initial RAM filesystem (initramfs) source
2414 files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002415 The OpenEmbedded build system receives and uses
2416 this kernel Kconfig variable as an environment variable.
2417 By default, the variable is set to null ("").
2418 </para>
2419
2420 <para>
2421 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2422 either a single cpio archive with a
2423 <filename>.cpio</filename> suffix or a
2424 space-separated list of directories and files for building
2425 the initramfs image.
2426 A cpio archive should contain a filesystem archive
2427 to be used as an initramfs image.
2428 Directories should contain a filesystem layout to be
2429 included in the initramfs image.
2430 Files should contain entries according to the format
2431 described by the
2432 <filename>usr/gen_init_cpio</filename> program in the
2433 kernel tree.
2434 </para>
2435
2436 <para>
2437 If you specify multiple directories and files, the
2438 initramfs image will be the aggregate of all of them.
2439 </para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002440
2441 <para>
2442 For information on creating an initramfs, see the
2443 "<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 -05002444 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002445 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002446 </glossdef>
2447 </glossentry>
2448
2449 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2450 <info>
2451 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."
2452 </info>
2453 <glossdef>
2454 <para role="glossdeffirst">
2455<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2456 A list of files that contains <filename>autoconf</filename> test results relevant
2457 to the current build.
2458 This variable is used by the Autotools utilities when running
2459 <filename>configure</filename>.
2460 </para>
2461 </glossdef>
2462 </glossentry>
2463
2464 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2465 <info>
2466 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2467 </info>
2468 <glossdef>
2469 <para role="glossdeffirst">
2470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2471 The minimal arguments for GNU configure.
2472 </para>
2473 </glossdef>
2474 </glossentry>
2475
2476 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2477 <info>
2478 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."
2479 </info>
2480 <glossdef>
2481 <para role="glossdeffirst">
2482<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2483 When inheriting the
2484 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2485 class, this
2486 variable identifies distribution features that would
2487 be in conflict should the recipe
2488 be built.
2489 In other words, if the
2490 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2491 lists a feature that also appears in
2492 <filename>DISTRO_FEATURES</filename> within the
2493 current configuration, an error occurs and the
2494 build stops.
2495 </para>
2496 </glossdef>
2497 </glossentry>
2498
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002499 <glossentry id='var-COPYLEFT_LICENSE_EXCLUDE'><glossterm>COPYLEFT_LICENSE_EXCLUDE</glossterm>
2500 <info>
2501 COPYLEFT_LICENSE_EXCLUDE[doc] = "Licenses to exclude in the source archived by the archiver class."
2502 </info>
2503 <glossdef>
2504 <para role="glossdeffirst">
2505<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2506 A space-separated list of licenses to exclude from the
2507 source archived by the
2508 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2509 class.
2510 In other words, if a license in a recipe's
2511 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2512 value is in the value of
2513 <filename>COPYLEFT_LICENSE_EXCLUDE</filename>, then its
2514 source is not archived by the class.
2515 <note>
2516 The <filename>COPYLEFT_LICENSE_EXCLUDE</filename>
2517 variable takes precedence over the
2518 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2519 variable.
2520 </note>
2521 The default value, which is "CLOSED Proprietary", for
2522 <filename>COPYLEFT_LICENSE_EXCLUDE</filename> is set
2523 by the
2524 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2525 class, which is inherited by the
2526 <filename>archiver</filename> class.
2527 </para>
2528 </glossdef>
2529 </glossentry>
2530
2531 <glossentry id='var-COPYLEFT_LICENSE_INCLUDE'><glossterm>COPYLEFT_LICENSE_INCLUDE</glossterm>
2532 <info>
2533 COPYLEFT_LICENSE_INCLUDE[doc] = "Licenses to include in the source archived by the archiver class."
2534 </info>
2535 <glossdef>
2536 <para role="glossdeffirst">
2537<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2538 A space-separated list of licenses to include in the
2539 source archived by the
2540 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2541 class.
2542 In other words, if a license in a recipe's
2543 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2544 value is in the value of
2545 <filename>COPYLEFT_LICENSE_INCLUDE</filename>, then its
2546 source is archived by the class.
2547 </para>
2548
2549 <para>
2550 The default value is set by the
2551 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2552 class, which is inherited by the
2553 <filename>archiver</filename> class.
2554 The default value includes "GPL*", "LGPL*", and "AGPL*".
2555 </para>
2556 </glossdef>
2557 </glossentry>
2558
2559 <glossentry id='var-COPYLEFT_PN_EXCLUDE'><glossterm>COPYLEFT_PN_EXCLUDE</glossterm>
2560 <info>
2561 COPYLEFT_PN_EXCLUDE[doc] = "Recipes to exclude in the source archived by the archiver class."
2562 </info>
2563 <glossdef>
2564 <para role="glossdeffirst">
2565<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2566 A list of recipes to exclude in the source archived
2567 by the
2568 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2569 class.
2570 The <filename>COPYLEFT_PN_EXCLUDE</filename> variable
2571 overrides the license inclusion and exclusion caused
2572 through the
2573 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2574 and
2575 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2576 variables, respectively.
2577 </para>
2578
2579 <para>
2580 The default value, which is "" indicating to not explicitly
2581 exclude any recipes by name, for
2582 <filename>COPYLEFT_PN_EXCLUDE</filename> is set
2583 by the
2584 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2585 class, which is inherited by the
2586 <filename>archiver</filename> class.
2587 </para>
2588 </glossdef>
2589 </glossentry>
2590
2591 <glossentry id='var-COPYLEFT_PN_INCLUDE'><glossterm>COPYLEFT_PN_INCLUDE</glossterm>
2592 <info>
2593 COPYLEFT_PN_INCLUDE[doc] = "Recipes to include in the source archived by the archiver class."
2594 </info>
2595 <glossdef>
2596 <para role="glossdeffirst">
2597<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2598 A list of recipes to include in the source archived
2599 by the
2600 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2601 class.
2602 The <filename>COPYLEFT_PN_INCLUDE</filename> variable
2603 overrides the license inclusion and exclusion caused
2604 through the
2605 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2606 and
2607 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2608 variables, respectively.
2609 </para>
2610
2611 <para>
2612 The default value, which is "" indicating to not explicitly
2613 include any recipes by name, for
2614 <filename>COPYLEFT_PN_INCLUDE</filename> is set
2615 by the
2616 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2617 class, which is inherited by the
2618 <filename>archiver</filename> class.
2619 </para>
2620 </glossdef>
2621 </glossentry>
2622
2623 <glossentry id='var-COPYLEFT_RECIPE_TYPES'><glossterm>COPYLEFT_RECIPE_TYPES</glossterm>
2624 <info>
2625 COPYLEFT_RECIPE_TYPES[doc] = "Recipe types to include in the source archived by the archiver class."
2626 </info>
2627 <glossdef>
2628 <para role="glossdeffirst">
2629<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2630 A space-separated list of recipe types to include
2631 in the source archived by the
2632 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2633 class.
2634 Recipe types are <filename>target</filename>,
2635 <filename>native</filename>,
2636 <filename>nativesdk</filename>,
2637 <filename>cross</filename>,
2638 <filename>crosssdk</filename>, and
2639 <filename>cross-canadian</filename>.
2640 </para>
2641
2642 <para>
2643 The default value, which is "target*", for
2644 <filename>COPYLEFT_RECIPE_TYPES</filename> is set
2645 by the
2646 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2647 class, which is inherited by the
2648 <filename>archiver</filename> class.
2649 </para>
2650 </glossdef>
2651 </glossentry>
2652
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002653 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2654 <info>
2655 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."
2656 </info>
2657 <glossdef>
2658 <para role="glossdeffirst">
2659<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2660 If set to "1" along with the
2661 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2662 variable, the OpenEmbedded build system copies
2663 into the image the license files, which are located in
2664 <filename>/usr/share/common-licenses</filename>,
2665 for each package.
2666 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002667 in directories within the image itself during build time.
2668 <note>
2669 The <filename>COPY_LIC_DIRS</filename> does not
2670 offer a path for adding licenses for newly installed
2671 packages to an image, which might be most suitable
2672 for read-only filesystems that cannot be upgraded.
2673 See the
2674 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2675 variable for additional information.
2676 You can also reference the
2677 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002678 section in the Yocto Project Development Tasks Manual
2679 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002680 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002681 </para>
2682 </glossdef>
2683 </glossentry>
2684
2685 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2686 <info>
2687 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."
2688 </info>
2689 <glossdef>
2690 <para role="glossdeffirst">
2691<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2692 If set to "1", the OpenEmbedded build system copies
2693 the license manifest for the image to
2694 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002695 within the image itself during build time.
2696 <note>
2697 The <filename>COPY_LIC_MANIFEST</filename> does not
2698 offer a path for adding licenses for newly installed
2699 packages to an image, which might be most suitable
2700 for read-only filesystems that cannot be upgraded.
2701 See the
2702 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2703 variable for additional information.
2704 You can also reference the
2705 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002706 section in the Yocto Project Development Tasks Manual
2707 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002708 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002709 </para>
2710 </glossdef>
2711 </glossentry>
2712
2713 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2714 <info>
2715 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."
2716 </info>
2717 <glossdef>
2718 <para role="glossdeffirst">
2719<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2720 Specifies the list of packages to be added to the image.
2721 You should only set this variable in the
2722 <filename>local.conf</filename> configuration file found
2723 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002724 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002725 </para>
2726
2727 <para>
2728 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2729 </para>
2730 </glossdef>
2731 </glossentry>
2732
2733 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2734 <info>
2735 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded Core Metadata layer (i.e. meta)."
2736 </info>
2737 <glossdef>
2738 <para role="glossdeffirst">
2739<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2740 Specifies the parent directory of the OpenEmbedded
2741 Core Metadata layer (i.e. <filename>meta</filename>).
2742 </para>
2743
2744 <para>
2745 It is an important distinction that
2746 <filename>COREBASE</filename> points to the parent of this
2747 layer and not the layer itself.
2748 Consider an example where you have cloned the Poky Git
2749 repository and retained the <filename>poky</filename>
2750 name for your local copy of the repository.
2751 In this case, <filename>COREBASE</filename> points to
2752 the <filename>poky</filename> folder because it is the
2753 parent directory of the <filename>poky/meta</filename>
2754 layer.
2755 </para>
2756 </glossdef>
2757 </glossentry>
2758
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002759 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2760 <info>
2761 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2762 </info>
2763 <glossdef>
2764 <para role="glossdeffirst">
2765<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2766 Lists files from the
2767 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2768 directory that should be copied other than the layers
2769 listed in the <filename>bblayers.conf</filename> file.
2770 The <filename>COREBASE_FILES</filename> variable exists
2771 for the purpose of copying metadata from the
2772 OpenEmbedded build system into the extensible
2773 SDK.
2774 </para>
2775
2776 <para>
2777 Explicitly listing files in <filename>COREBASE</filename>
2778 is needed because it typically contains build
2779 directories and other files that should not normally
2780 be copied into the extensible SDK.
2781 Consequently, the value of
2782 <filename>COREBASE_FILES</filename> is used in order to
2783 only copy the files that are actually needed.
2784 </para>
2785 </glossdef>
2786 </glossentry>
2787
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002788 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2789 <info>
2790 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2791 </info>
2792 <glossdef>
2793 <para role="glossdeffirst">
2794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2795 The minimal command and arguments used to run the C
2796 preprocessor.
2797 </para>
2798 </glossdef>
2799 </glossentry>
2800
2801 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2802 <info>
2803 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2804 </info>
2805 <glossdef>
2806 <para role="glossdeffirst">
2807<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2808 Specifies the flags to pass to the C pre-processor
2809 (i.e. to both the C and the C++ compilers).
2810 This variable is exported to an environment
2811 variable and thus made visible to the software being
2812 built during the compilation step.
2813 </para>
2814
2815 <para>
2816 Default initialization for <filename>CPPFLAGS</filename>
2817 varies depending on what is being built:
2818 <itemizedlist>
2819 <listitem><para>
2820 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2821 when building for the target
2822 </para></listitem>
2823 <listitem><para>
2824 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2825 when building for the build host (i.e.
2826 <filename>-native</filename>)
2827 </para></listitem>
2828 <listitem><para>
2829 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2830 when building for an SDK (i.e.
2831 <filename>nativesdk-</filename>)
2832 </para></listitem>
2833 </itemizedlist>
2834 </para>
2835 </glossdef>
2836 </glossentry>
2837
2838 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2839 <info>
2840 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2841 </info>
2842 <glossdef>
2843 <para role="glossdeffirst">
2844<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2845 The toolchain binary prefix for the target tools.
2846 The <filename>CROSS_COMPILE</filename> variable is the
2847 same as the
2848 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2849 variable.
2850 <note>
2851 The OpenEmbedded build system sets the
2852 <filename>CROSS_COMPILE</filename> variable only in
2853 certain contexts (e.g. when building for kernel
2854 and kernel module recipes).
2855 </note>
2856 </para>
2857 </glossdef>
2858 </glossentry>
2859
2860 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2861 <info>
2862 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2863 </info>
2864 <glossdef>
2865 <para role="glossdeffirst">
2866<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2867 The directory in which files checked out under the
2868 CVS system are stored.
2869 </para>
2870 </glossdef>
2871 </glossentry>
2872
2873 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2874 <info>
2875 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2876 </info>
2877 <glossdef>
2878 <para role="glossdeffirst">
2879<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2880 The minimal command and arguments used to run the C++
2881 compiler.
2882 </para>
2883 </glossdef>
2884 </glossentry>
2885
2886 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
2887 <info>
2888 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
2889 </info>
2890 <glossdef>
2891 <para role="glossdeffirst">
2892<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2893 Specifies the flags to pass to the C++ compiler.
2894 This variable is exported to an environment
2895 variable and thus made visible to the software being
2896 built during the compilation step.
2897 </para>
2898
2899 <para>
2900 Default initialization for <filename>CXXFLAGS</filename>
2901 varies depending on what is being built:
2902 <itemizedlist>
2903 <listitem><para>
2904 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
2905 when building for the target
2906 </para></listitem>
2907 <listitem><para>
2908 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
2909 when building for the build host (i.e.
2910 <filename>-native</filename>)
2911 </para></listitem>
2912 <listitem><para>
2913 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
2914 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002915 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002916 </para></listitem>
2917 </itemizedlist>
2918 </para>
2919 </glossdef>
2920 </glossentry>
2921
2922 </glossdiv>
2923
2924 <glossdiv id='var-glossary-d'><title>D</title>
2925
2926 <glossentry id='var-D'><glossterm>D</glossterm>
2927 <info>
2928 D[doc] = "The destination directory."
2929 </info>
2930 <glossdef>
2931 <para role="glossdeffirst">
2932<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2933 The destination directory.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002934 The location in the
2935 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002936 where components are installed by the
2937 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
2938 task.
2939 This location defaults to:
2940 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002941 ${<link linkend='var-WORKDIR'>WORKDIR</link>}/image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002942 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002943 <note><title>Caution</title>
2944 Tasks that read from or write to this directory should
2945 run under
2946 <link linkend='fakeroot-and-pseudo'>fakeroot</link>.
2947 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002948 </para>
2949 </glossdef>
2950 </glossentry>
2951
2952 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
2953 <info>
2954 DATE[doc] = "The date the build was started using YMD format."
2955 </info>
2956 <glossdef>
2957 <para role="glossdeffirst">
2958<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2959 The date the build was started.
2960 Dates appear using the year, month, and day (YMD) format
2961 (e.g. "20150209" for February 9th, 2015).
2962 </para>
2963 </glossdef>
2964 </glossentry>
2965
2966 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
2967 <info>
2968 DATETIME[doc] = "The date and time the build was started."
2969 </info>
2970 <glossdef>
2971 <para role="glossdeffirst">
2972<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2973 The date and time on which the current build started.
2974 The format is suitable for timestamps.
2975 </para>
2976 </glossdef>
2977 </glossentry>
2978
2979 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
2980 <info>
2981 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
2982 </info>
2983 <glossdef>
2984 <para role="glossdeffirst">
2985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2986 When the
2987 <link linkend='ref-classes-debian'><filename>debian</filename></link>
2988 class is inherited, which is the default behavior,
2989 <filename>DEBIAN_NOAUTONAME</filename> specifies a
2990 particular package should not be renamed according to
2991 Debian library package naming.
2992 You must use the package name as an override when you
2993 set this variable.
2994 Here is an example from the <filename>fontconfig</filename>
2995 recipe:
2996 <literallayout class='monospaced'>
2997 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
2998 </literallayout>
2999 </para>
3000 </glossdef>
3001 </glossentry>
3002
3003 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
3004 <info>
3005 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
3006 </info>
3007 <glossdef>
3008 <para role="glossdeffirst">
3009<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3010 When the
3011 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3012 class is inherited, which is the default behavior,
3013 <filename>DEBIANNAME</filename> allows you to override the
3014 library name for an individual package.
3015 Overriding the library name in these cases is rare.
3016 You must use the package name as an override when you
3017 set this variable.
3018 Here is an example from the <filename>dbus</filename>
3019 recipe:
3020 <literallayout class='monospaced'>
3021 DEBIANNAME_${PN} = "dbus-1"
3022 </literallayout>
3023 </para>
3024 </glossdef>
3025 </glossentry>
3026
3027 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
3028 <info>
3029 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
3030 </info>
3031 <glossdef>
3032 <para role="glossdeffirst">
3033<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3034 Specifies to build packages with debugging information.
3035 This influences the value of the
3036 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
3037 variable.
3038 </para>
3039 </glossdef>
3040 </glossentry>
3041
3042 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
3043 <info>
3044 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'."
3045 </info>
3046 <glossdef>
3047 <para role="glossdeffirst">
3048<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3049 The options to pass in
3050 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
3051 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
3052 a system for debugging.
3053 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
3054 </para>
3055 </glossdef>
3056 </glossentry>
3057
3058 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
3059 <info>
3060 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
3061 </info>
3062 <glossdef>
3063 <para role="glossdeffirst">
3064<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3065 Specifies a weak bias for recipe selection priority.
3066 </para>
3067
3068 <para>
3069 The most common usage of this is variable is to set
3070 it to "-1" within a recipe for a development version of a
3071 piece of software.
3072 Using the variable in this way causes the stable version
3073 of the recipe to build by default in the absence of
3074 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
3075 being used to build the development version.
3076 </para>
3077
3078 <note>
3079 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
3080 is weak and is overridden by
3081 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
3082 if that variable is different between two layers
3083 that contain different versions of the same recipe.
3084 </note>
3085 </glossdef>
3086 </glossentry>
3087
3088 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
3089 <info>
3090 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
3091 </info>
3092 <glossdef>
3093 <para role="glossdeffirst">
3094<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3095 The default CPU and Application Binary Interface (ABI)
3096 tunings (i.e. the "tune") used by the OpenEmbedded build
3097 system.
3098 The <filename>DEFAULTTUNE</filename> helps define
3099 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
3100 </para>
3101
3102 <para>
3103 The default tune is either implicitly or explicitly set
3104 by the machine
3105 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
3106 However, you can override the setting using available tunes
3107 as defined with
3108 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
3109 </para>
3110 </glossdef>
3111 </glossentry>
3112
3113 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
3114 <info>
3115 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
3116 </info>
3117 <glossdef>
3118 <para role="glossdeffirst">
3119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003120 Lists a recipe's build-time dependencies.
3121 These are dependencies on other recipes whose
3122 contents (e.g. headers and shared libraries) are needed
3123 by the recipe at build time.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003124 </para>
3125
3126 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003127 As an example, consider a recipe <filename>foo</filename>
3128 that contains the following assignment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003129 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003130 DEPENDS = "bar"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003131 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003132 The practical effect of the previous assignment is that
3133 all files installed by bar will be available in the
3134 appropriate staging sysroot, given by the
3135 <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
3136 variables, by the time the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003137 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003138 task for <filename>foo</filename> runs.
3139 This mechanism is implemented by having
3140 <filename>do_configure</filename> depend on the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003141 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003142 task of each recipe listed in <filename>DEPENDS</filename>,
3143 through a
3144 <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
3145 declaration in the
3146 <link linkend='ref-classes-base'><filename>base</filename></link>
3147 class.
3148 <note>
3149 It seldom is necessary to reference, for example,
3150 <filename>STAGING_DIR_HOST</filename> explicitly.
3151 The standard classes and build-related variables are
3152 configured to automatically use the appropriate staging
3153 sysroots.
3154 </note>
3155 As another example, <filename>DEPENDS</filename> can also
3156 be used to add utilities that run on the build machine
3157 during the build.
3158 For example, a recipe that makes use of a code generator
3159 built by the recipe <filename>codegen</filename> might have
3160 the following:
3161 <literallayout class='monospaced'>
3162 DEPENDS = "codegen-native"
3163 </literallayout>
3164 For more information, see the
3165 <link linkend='ref-classes-native'><filename>native</filename></link>
3166 class and the
3167 <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
3168 variable.
3169 <note>
3170 <title>Notes</title>
3171 <itemizedlist>
3172 <listitem><para>
3173 <filename>DEPENDS</filename> is a list of
3174 recipe names.
3175 Or, to be more precise, it is a list of
3176 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
3177 names, which usually match recipe names.
3178 Putting a package name such as "foo-dev" in
3179 <filename>DEPENDS</filename> does not make
3180 sense.
3181 Use "foo" instead, as this will put files
3182 from all the packages that make up
3183 <filename>foo</filename>, which includes
3184 those from <filename>foo-dev</filename>, into
3185 the sysroot.
3186 </para></listitem>
3187 <listitem><para>
3188 One recipe having another recipe in
3189 <filename>DEPENDS</filename> does not by itself
3190 add any runtime dependencies between the
3191 packages produced by the two recipes.
3192 However, as explained in the
3193 "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
3194 section, runtime dependencies will often be
3195 added automatically, meaning
3196 <filename>DEPENDS</filename> alone is
3197 sufficient for most recipes.
3198 </para></listitem>
3199 <listitem><para>
3200 Counterintuitively,
3201 <filename>DEPENDS</filename> is often necessary
3202 even for recipes that install precompiled
3203 components.
3204 For example, if <filename>libfoo</filename>
3205 is a precompiled library that links against
3206 <filename>libbar</filename>, then
3207 linking against <filename>libfoo</filename>
3208 requires both <filename>libfoo</filename>
3209 and <filename>libbar</filename> to be available
3210 in the sysroot.
3211 Without a <filename>DEPENDS</filename> from the
3212 recipe that installs <filename>libfoo</filename>
3213 to the recipe that installs
3214 <filename>libbar</filename>, other recipes might
3215 fail to link against
3216 <filename>libfoo</filename>.
3217 </para></listitem>
3218 </itemizedlist>
3219 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003220 </para>
3221
3222 <para>
3223 For information on runtime dependencies, see the
3224 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
3225 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003226 You can also see the
3227 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
3228 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
3229 sections in the BitBake User Manual for additional
3230 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003231 </para>
3232 </glossdef>
3233 </glossentry>
3234
3235 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
3236 <info>
3237 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."
3238 </info>
3239 <glossdef>
3240 <para role="glossdeffirst">
3241<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3242 Points to the general area that the OpenEmbedded build
3243 system uses to place images, packages, SDKs and other output
3244 files that are ready to be used outside of the build system.
3245 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003246 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003247 as <filename>${TMPDIR}/deploy</filename>.
3248 </para>
3249
3250 <para>
3251 For more information on the structure of the Build
3252 Directory, see
3253 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3254 section.
3255 For more detail on the contents of the
3256 <filename>deploy</filename> directory, see the
3257 "<link linkend='images-dev-environment'>Images</link>",
3258 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>",
3259 and
3260 "<link linkend='sdk-dev-environment'>Application Development SDK</link>"
3261 sections.
3262 </para>
3263 </glossdef>
3264 </glossentry>
3265
3266 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
3267 <info>
3268 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."
3269 </info>
3270 <glossdef>
3271 <para role="glossdeffirst">
3272<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3273 Points to the area that the OpenEmbedded build system uses
3274 to place Debian packages that are ready to be used outside
3275 of the build system.
3276 This variable applies only when
3277 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3278 contains "package_deb".
3279 </para>
3280
3281 <para>
3282 The BitBake configuration file initially defines the
3283 <filename>DEPLOY_DIR_DEB</filename> variable as a
3284 sub-folder of
3285 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3286 <literallayout class='monospaced'>
3287 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
3288 </literallayout>
3289 </para>
3290
3291 <para>
3292 The
3293 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
3294 class uses the
3295 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
3296 the
3297 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
3298 task writes Debian packages into the appropriate folder.
3299 For more information on how packaging works, see the
3300 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
3301 section.
3302 </para>
3303 </glossdef>
3304 </glossentry>
3305
3306 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
3307 <info>
3308 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."
3309 </info>
3310 <glossdef>
3311 <para role="glossdeffirst">
3312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3313 Points to the area that the OpenEmbedded build system uses
3314 to place images and other associated output files that are
3315 ready to be deployed onto the target machine.
3316 The directory is machine-specific as it contains the
3317 <filename>${MACHINE}</filename> name.
3318 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003319 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003320 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
3321 </para>
3322
3323 <para>
3324 For more information on the structure of the Build
3325 Directory, see
3326 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3327 section.
3328 For more detail on the contents of the
3329 <filename>deploy</filename> directory, see the
3330 "<link linkend='images-dev-environment'>Images</link>" and
3331 "<link linkend='sdk-dev-environment'>Application Development SDK</link>"
3332 sections.
3333 </para>
3334 </glossdef>
3335 </glossentry>
3336
3337 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
3338 <info>
3339 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."
3340 </info>
3341 <glossdef>
3342 <para role="glossdeffirst">
3343<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3344 Points to the area that the OpenEmbedded build system uses
3345 to place IPK packages that are ready to be used outside of
3346 the build system.
3347 This variable applies only when
3348 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3349 contains "package_ipk".
3350 </para>
3351
3352 <para>
3353 The BitBake configuration file initially defines this
3354 variable as a sub-folder of
3355 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3356 <literallayout class='monospaced'>
3357 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
3358 </literallayout>
3359 </para>
3360
3361 <para>
3362 The
3363 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
3364 class uses the
3365 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
3366 the
3367 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
3368 task writes IPK packages into the appropriate folder.
3369 For more information on how packaging works, see the
3370 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
3371 section.
3372 </para>
3373 </glossdef>
3374 </glossentry>
3375
3376 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
3377 <info>
3378 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."
3379 </info>
3380 <glossdef>
3381 <para role="glossdeffirst">
3382<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3383 Points to the area that the OpenEmbedded build system uses
3384 to place RPM packages that are ready to be used outside
3385 of the build system.
3386 This variable applies only when
3387 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3388 contains "package_rpm".
3389 </para>
3390
3391 <para>
3392 The BitBake configuration file initially defines this
3393 variable as a sub-folder of
3394 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3395 <literallayout class='monospaced'>
3396 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
3397 </literallayout>
3398 </para>
3399
3400 <para>
3401 The
3402 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
3403 class uses the
3404 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
3405 the
3406 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
3407 task writes RPM packages into the appropriate folder.
3408 For more information on how packaging works, see the
3409 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
3410 section.
3411 </para>
3412 </glossdef>
3413 </glossentry>
3414
3415 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
3416 <info>
3417 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."
3418 </info>
3419 <glossdef>
3420 <para role="glossdeffirst">
3421<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3422 Points to the area that the OpenEmbedded build system uses
3423 to place tarballs that are ready to be used outside of
3424 the build system.
3425 This variable applies only when
3426 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3427 contains "package_tar".
3428 </para>
3429
3430 <para>
3431 The BitBake configuration file initially defines this
3432 variable as a sub-folder of
3433 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3434 <literallayout class='monospaced'>
3435 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
3436 </literallayout>
3437 </para>
3438
3439 <para>
3440 The
3441 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
3442 class uses the
3443 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
3444 the
3445 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
3446 task writes TAR packages into the appropriate folder.
3447 For more information on how packaging works, see the
3448 "<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
3449 section.
3450 </para>
3451 </glossdef>
3452 </glossentry>
3453
3454 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3455 <info>
3456 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3457 </info>
3458 <glossdef>
3459 <para role="glossdeffirst">
3460<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3461 When inheriting the
3462 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3463 class, the <filename>DEPLOYDIR</filename> points to a
3464 temporary work area for deployed files that is set in the
3465 <filename>deploy</filename> class as follows:
3466 <literallayout class='monospaced'>
3467 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3468 </literallayout>
3469 </para>
3470
3471 <para>
3472 Recipes inheriting the <filename>deploy</filename> class
3473 should copy files to be deployed into
3474 <filename>DEPLOYDIR</filename>, and the class will take
3475 care of copying them into
3476 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3477 afterwards.
3478 </para>
3479 </glossdef>
3480 </glossentry>
3481
3482 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3483 <info>
3484 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3485 </info>
3486 <glossdef>
3487 <para role="glossdeffirst">
3488<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3489 The package description used by package managers.
3490 If not set, <filename>DESCRIPTION</filename> takes
3491 the value of the
3492 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3493 variable.
3494 </para>
3495 </glossdef>
3496 </glossentry>
3497
3498 <glossentry id='var-DISK_SIGNATURE'><glossterm>DISK_SIGNATURE</glossterm>
3499 <info>
3500 DISK_SIGNATURE[doc] = "A 32-bit MBR disk signature used by directdisk images."
3501 </info>
3502 <glossdef>
3503 <para role="glossdeffirst">
3504<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3505 A 32-bit MBR disk signature used by
3506 <filename>directdisk</filename> images.
3507 </para>
3508
3509 <para>
3510 By default, the signature is set to an automatically
3511 generated random value that allows the OpenEmbedded
3512 build system to create a boot loader.
3513 You can override the signature in the image recipe
3514 by setting <filename>DISK_SIGNATURE</filename> to an
3515 8-digit hex string.
3516 You might want to override
3517 <filename>DISK_SIGNATURE</filename> if you want the disk
3518 signature to remain constant between image builds.
3519 </para>
3520
3521 <para>
3522 When using Linux 3.8 or later, you can use
3523 <filename>DISK_SIGNATURE</filename> to specify the root
3524 by UUID to allow the kernel to locate the root device
3525 even if the device name changes due to differences in
3526 hardware configuration.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003527 By default, <filename>ROOT_VM</filename> is set
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003528 as follows:
3529 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003530 ROOT_VM ?= "root=/dev/sda2"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003531 </literallayout>
3532 However, you can change this to locate the root device
3533 using the disk signature instead:
3534 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003535 ROOT_VM = "root=PARTUUID=${DISK_SIGNATURE}-02"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003536 </literallayout>
3537 </para>
3538
3539 <para>
3540 As previously mentioned, it is possible to set the
3541 <filename>DISK_SIGNATURE</filename> variable in your
3542 <filename>local.conf</filename> file to a fixed
3543 value if you do not want <filename>syslinux.cfg</filename>
3544 changing for each build.
3545 You might find this useful when you want to upgrade the
3546 root filesystem on a device without having to recreate or
3547 modify the master boot record.
3548 </para>
3549 </glossdef>
3550 </glossentry>
3551
3552 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3553 <info>
3554 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3555 </info>
3556 <glossdef>
3557 <para role="glossdeffirst">
3558<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3559 The short name of the distribution.
3560 This variable corresponds to a distribution
3561 configuration file whose root name is the same as the
3562 variable's argument and whose filename extension is
3563 <filename>.conf</filename>.
3564 For example, the distribution configuration file for the
3565 Poky distribution is named <filename>poky.conf</filename>
3566 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003567 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003568 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003569 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003570 </para>
3571
3572 <para>
3573 Within that <filename>poky.conf</filename> file, the
3574 <filename>DISTRO</filename> variable is set as follows:
3575 <literallayout class='monospaced'>
3576 DISTRO = "poky"
3577 </literallayout>
3578 </para>
3579
3580 <para>
3581 Distribution configuration files are located in a
3582 <filename>conf/distro</filename> directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003583 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003584 that contains the distribution configuration.
3585 The value for <filename>DISTRO</filename> must not contain
3586 spaces, and is typically all lower-case.
3587 <note>
3588 If the <filename>DISTRO</filename> variable is blank, a set
3589 of default configurations are used, which are specified
3590 within
3591 <filename>meta/conf/distro/defaultsetup.conf</filename>
3592 also in the Source Directory.
3593 </note>
3594 </para>
3595 </glossdef>
3596 </glossentry>
3597
3598 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3599 <info>
3600 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3601 </info>
3602 <glossdef>
3603 <para role="glossdeffirst">
3604<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3605 Specifies a codename for the distribution being built.
3606 </para>
3607 </glossdef>
3608 </glossentry>
3609
3610 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3611 <info>
3612 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."
3613 </info>
3614 <glossdef>
3615 <para role="glossdeffirst">
3616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3617 Specifies a list of distro-specific packages to add to all images.
3618 This variable takes affect through
3619 <filename>packagegroup-base</filename> so the
3620 variable only really applies to the more full-featured
3621 images that include <filename>packagegroup-base</filename>.
3622 You can use this variable to keep distro policy out of
3623 generic images.
3624 As with all other distro variables, you set this variable
3625 in the distro <filename>.conf</filename> file.
3626 </para>
3627 </glossdef>
3628 </glossentry>
3629
3630 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3631 <info>
3632 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."
3633 </info>
3634 <glossdef>
3635 <para role="glossdeffirst">
3636<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3637 Specifies a list of distro-specific packages to add to all images
3638 if the packages exist.
3639 The packages might not exist or be empty (e.g. kernel modules).
3640 The list of packages are automatically installed but you can
3641 remove them.
3642 </para>
3643 </glossdef>
3644 </glossentry>
3645
3646 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3647 <info>
3648 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3649 </info>
3650 <glossdef>
3651 <para role="glossdeffirst">
3652<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3653 The software support you want in your distribution for
3654 various features.
3655 You define your distribution features in the distribution
3656 configuration file.
3657 </para>
3658
3659 <para>
3660 In most cases, the presence or absence of a feature in
3661 <filename>DISTRO_FEATURES</filename> is translated to the
3662 appropriate option supplied to the configure script
3663 during the
3664 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3665 task for recipes that optionally support the feature.
3666 For example, specifying "x11" in
3667 <filename>DISTRO_FEATURES</filename>, causes
3668 every piece of software built for the target that can
3669 optionally support X11 to have its X11 support enabled.
3670 </para>
3671
3672 <para>
3673 Two more examples are Bluetooth and NFS support.
3674 For a more complete list of features that ships with the
3675 Yocto Project and that you can provide with this variable,
3676 see the
3677 "<link linkend='ref-features-distro'>Distro Features</link>"
3678 section.
3679 </para>
3680 </glossdef>
3681 </glossentry>
3682
3683 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3684 <info>
3685 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."
3686 </info>
3687 <glossdef>
3688 <para role="glossdeffirst">
3689<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3690 Features to be added to
3691 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3692 if not also present in
3693 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3694 </para>
3695
3696 <para>
3697 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3698 It is not intended to be user-configurable.
3699 It is best to just reference the variable to see which distro features are
3700 being backfilled for all distro configurations.
3701 See the <link linkend='ref-features-backfill'>Feature backfilling</link> section for
3702 more information.
3703 </para>
3704 </glossdef>
3705 </glossentry>
3706
3707 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3708 <info>
3709 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3710 </info>
3711 <glossdef>
3712 <para role="glossdeffirst">
3713<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3714 Features from
3715 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3716 that should not be backfilled (i.e. added to
3717 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3718 during the build.
3719 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3720 more information.
3721 </para>
3722 </glossdef>
3723 </glossentry>
3724
3725 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3726 <info>
3727 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3728 </info>
3729 <glossdef>
3730 <para role="glossdeffirst">
3731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3732 A convenience variable that gives you the default
3733 list of distro features with the exception of any
3734 features specific to the C library
3735 (<filename>libc</filename>).
3736 </para>
3737
3738 <para>
3739 When creating a custom distribution, you might find it
3740 useful to be able to reuse the default
3741 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3742 options without the need to write out the full set.
3743 Here is an example that uses
3744 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3745 custom distro configuration file:
3746 <literallayout class='monospaced'>
3747 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} myfeature"
3748 </literallayout>
3749 </para>
3750 </glossdef>
3751 </glossentry>
3752
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003753 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVE'><glossterm>DISTRO_FEATURES_FILTER_NATIVE</glossterm>
3754 <info>
3755 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."
3756 </info>
3757 <glossdef>
3758 <para role="glossdeffirst">
3759<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3760 Specifies a list of features that if present in
3761 the target
3762 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3763 value should be included in
3764 <filename>DISTRO_FEATURES</filename> when building native
3765 recipes.
3766 This variable is used in addition to the features
3767 filtered using the
3768 <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
3769 variable.
3770 </para>
3771 </glossdef>
3772 </glossentry>
3773
3774 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVESDK'><glossterm>DISTRO_FEATURES_FILTER_NATIVESDK</glossterm>
3775 <info>
3776 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."
3777 </info>
3778 <glossdef>
3779 <para role="glossdeffirst">
3780<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3781 Specifies a list of features that if present in the target
3782 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3783 value should be included in
3784 <filename>DISTRO_FEATURES</filename> when building
3785 nativesdk recipes.
3786 This variable is used in addition to the features
3787 filtered using the
3788 <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
3789 variable.
3790 </para>
3791 </glossdef>
3792 </glossentry>
3793
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003794 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3795 <info>
3796 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3797 </info>
3798 <glossdef>
3799 <para role="glossdeffirst">
3800<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3801 A convenience variable that specifies the list of distro
3802 features that are specific to the C library
3803 (<filename>libc</filename>).
3804 Typically, these features are prefixed with "libc-" and
3805 control which features are enabled at during the build
3806 within the C library itself.
3807 </para>
3808 </glossdef>
3809 </glossentry>
3810
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003811 <glossentry id='var-DISTRO_FEATURES_NATIVE'><glossterm>DISTRO_FEATURES_NATIVE</glossterm>
3812 <info>
3813 DISTRO_FEATURES_NATIVE[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes."
3814 </info>
3815 <glossdef>
3816 <para role="glossdeffirst">
3817<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3818 Specifies a list of features that should be included in
3819 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3820 when building native recipes.
3821 This variable is used in addition to the features
3822 filtered using the
3823 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>
3824 variable.
3825 </para>
3826 </glossdef>
3827 </glossentry>
3828
3829 <glossentry id='var-DISTRO_FEATURES_NATIVESDK'><glossterm>DISTRO_FEATURES_NATIVESDK</glossterm>
3830 <info>
3831 DISTRO_FEATURES_NATIVESDK[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes."
3832 </info>
3833 <glossdef>
3834 <para role="glossdeffirst">
3835<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3836 Specifies a list of features that should be included in
3837 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3838 when building nativesdk recipes.
3839 This variable is used in addition to the features
3840 filtered using the
3841 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>
3842 variable.
3843 </para>
3844 </glossdef>
3845 </glossentry>
3846
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003847 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3848 <info>
3849 DISTRO_NAME[doc] = "The long name of the distribution."
3850 </info>
3851 <glossdef>
3852 <para role="glossdeffirst">
3853<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3854 The long name of the distribution.
3855 </para>
3856 </glossdef>
3857 </glossentry>
3858
3859 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3860 <info>
3861 DISTRO_VERSION[doc] = "The version of the distribution."
3862 </info>
3863 <glossdef>
3864 <para role="glossdeffirst">
3865<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3866 The version of the distribution.
3867 </para>
3868 </glossdef>
3869 </glossentry>
3870
3871 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3872 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003873 DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003874 </info>
3875 <glossdef>
3876 <para role="glossdeffirst">
3877<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003878 A colon-separated list of overrides specific to the
3879 current distribution.
3880 By default, this list includes the value of
3881 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
3882 </para>
3883
3884 <para>
3885 You can extend <filename>DISTROOVERRIDES</filename>
3886 to add extra overrides that should apply to
3887 the distribution.
3888 </para>
3889
3890 <para>
3891 The underlying mechanism behind
3892 <filename>DISTROOVERRIDES</filename> is simply that it
3893 is included in the default value of
3894 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003895 </para>
3896 </glossdef>
3897 </glossentry>
3898
3899 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
3900 <info>
3901 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."
3902 </info>
3903 <glossdef>
3904 <para role="glossdeffirst">
3905<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3906 The central download directory used by the build process to
3907 store downloads.
3908 By default, <filename>DL_DIR</filename> gets files
3909 suitable for mirroring for everything except Git
3910 repositories.
3911 If you want tarballs of Git repositories, use the
3912 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
3913 variable.
3914 </para>
3915
3916 <para>
3917 You can set this directory by defining the
3918 <filename>DL_DIR</filename> variable in the
3919 <filename>conf/local.conf</filename> file.
3920 This directory is self-maintaining and you should not have
3921 to touch it.
3922 By default, the directory is <filename>downloads</filename>
3923 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003924 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003925 <literallayout class='monospaced'>
3926 #DL_DIR ?= "${TOPDIR}/downloads"
3927 </literallayout>
3928 To specify a different download directory, simply remove
3929 the comment from the line and provide your directory.
3930 </para>
3931
3932 <para>
3933 During a first build, the system downloads many different
3934 source code tarballs from various upstream projects.
3935 Downloading can take a while, particularly if your network
3936 connection is slow.
3937 Tarballs are all stored in the directory defined by
3938 <filename>DL_DIR</filename> and the build system looks there
3939 first to find source tarballs.
3940 <note>
3941 When wiping and rebuilding, you can preserve this
3942 directory to speed up this part of subsequent
3943 builds.
3944 </note>
3945 </para>
3946
3947 <para>
3948 You can safely share this directory between multiple builds
3949 on the same development machine.
3950 For additional information on how the build process gets
3951 source files when working behind a firewall or proxy server,
3952 see this specific question in the
3953 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
3954 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003955 You can also refer to the
3956 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
3957 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003958 </para>
3959 </glossdef>
3960 </glossentry>
3961
3962 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
3963 <info>
3964 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."
3965 </info>
3966 <glossdef>
3967 <para role="glossdeffirst">
3968<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3969 When inheriting the
3970 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
3971 class, this variable sets the compression policy used when
3972 the OpenEmbedded build system compresses man pages and info
3973 pages.
3974 By default, the compression method used is gz (gzip).
3975 Other policies available are xz and bz2.
3976 </para>
3977
3978 <para>
3979 For information on policies and on how to use this
3980 variable, see the comments in the
3981 <filename>meta/classes/compress_doc.bbclass</filename> file.
3982 </para>
3983 </glossdef>
3984 </glossentry>
3985
3986 </glossdiv>
3987
3988 <glossdiv id='var-glossary-e'><title>E</title>
3989
3990 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
3991 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003992 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 -05003993 </info>
3994 <glossdef>
3995 <para role="glossdeffirst">
3996<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3997 When building bootable images (i.e. where
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003998 <filename>hddimg</filename>, <filename>iso</filename>,
3999 or <filename>wic.vmdk</filename> is in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004000 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
4001 the <filename>EFI_PROVIDER</filename> variable specifies
4002 the EFI bootloader to use.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004003 The default is "grub-efi", but "systemd-boot" can be used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004004 instead.
4005 </para>
4006
4007 <para>
4008 See the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004009 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05004010 and
4011 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
4012 classes for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004013 </para>
4014 </glossdef>
4015 </glossentry>
4016
4017 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
4018 <info>
4019 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."
4020 </info>
4021 <glossdef>
4022 <para role="glossdeffirst">
4023<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4024 Variable that controls which locales for
4025 <filename>glibc</filename> are generated during the
4026 build (useful if the target device has 64Mbytes
4027 of RAM or less).
4028 </para>
4029 </glossdef>
4030 </glossentry>
4031
4032 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
4033 <info>
4034 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."
4035 </info>
4036 <glossdef>
4037 <para role="glossdeffirst">
4038<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4039 When used with the
4040 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
4041 class, specifies the path used for storing the debug files
4042 created by the
4043 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
4044 which allows you to submit build errors you encounter to a
4045 central database.
4046 By default, the value of this variable is
4047 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
4048 </para>
4049
4050 <para>
4051 You can set <filename>ERR_REPORT_DIR</filename> to the path
4052 you want the error reporting tool to store the debug files
4053 as follows in your <filename>local.conf</filename> file:
4054 <literallayout class='monospaced'>
4055 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
4056 </literallayout>
4057 </para>
4058 </glossdef>
4059 </glossentry>
4060
4061 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
4062 <info>
4063 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
4064 </info>
4065 <glossdef>
4066 <para role="glossdeffirst">
4067<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4068 Specifies the quality assurance checks whose failures are
4069 reported as errors by the OpenEmbedded build system.
4070 You set this variable in your distribution configuration
4071 file.
4072 For a list of the checks you can control with this variable,
4073 see the
4074 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
4075 section.
4076 </para>
4077 </glossdef>
4078 </glossentry>
4079
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004080 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
4081 <info>
4082 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
4083 </info>
4084 <glossdef>
4085 <para role="glossdeffirst">
4086<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4087 Triggers the OpenEmbedded build system's shared libraries
4088 resolver to exclude an entire package when scanning for
4089 shared libraries.
4090 <note>
4091 The shared libraries resolver's functionality results
4092 in part from the internal function
4093 <filename>package_do_shlibs</filename>, which is part of
4094 the
4095 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
4096 task.
4097 You should be aware that the shared libraries resolver
4098 might implicitly define some dependencies between
4099 packages.
4100 </note>
4101 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
4102 similar to the
4103 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
4104 variable, which excludes a package's particular libraries
4105 only and not the whole package.
4106 </para>
4107
4108 <para>
4109 Use the
4110 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
4111 setting it to "1" for a particular package:
4112 <literallayout class='monospaced'>
4113 EXCLUDE_FROM_SHLIBS = "1"
4114 </literallayout>
4115 </para>
4116 </glossdef>
4117 </glossentry>
4118
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004119 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
4120 <info>
4121 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
4122 </info>
4123 <glossdef>
4124 <para role="glossdeffirst">
4125<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4126 Directs BitBake to exclude a recipe from world builds (i.e.
4127 <filename>bitbake world</filename>).
4128 During world builds, BitBake locates, parses and builds all
4129 recipes found in every layer exposed in the
4130 <filename>bblayers.conf</filename> configuration file.
4131 </para>
4132
4133 <para>
4134 To exclude a recipe from a world build using this variable,
4135 set the variable to "1" in the recipe.
4136 </para>
4137
4138 <note>
4139 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
4140 may still be built during a world build in order to satisfy
4141 dependencies of other recipes.
4142 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
4143 only ensures that the recipe is not explicitly added
4144 to the list of build targets in a world build.
4145 </note>
4146 </glossdef>
4147 </glossentry>
4148
4149 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
4150 <info>
4151 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."
4152 </info>
4153 <glossdef>
4154 <para role="glossdeffirst">
4155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4156 Used with file and pathnames to create a prefix for a recipe's
4157 version based on the recipe's
4158 <link linkend='var-PE'><filename>PE</filename></link> value.
4159 If <filename>PE</filename> is set and greater than zero for a recipe,
4160 <filename>EXTENDPE</filename> becomes that value (e.g if
4161 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
4162 becomes "1_").
4163 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
4164 zero, <filename>EXTENDPE</filename> becomes "".</para>
4165 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
4166 variable for an example.
4167 </para>
4168 </glossdef>
4169 </glossentry>
4170
4171 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
4172 <info>
4173 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
4174 </info>
4175 <glossdef>
4176 <para role="glossdeffirst">
4177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4178 The full package version specification as it appears on the
4179 final packages produced by a recipe.
4180 The variable's value is normally used to fix a runtime
4181 dependency to the exact same version of another package
4182 in the same recipe:
4183 <literallayout class='monospaced'>
4184 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
4185 </literallayout>
4186 </para>
4187
4188 <para>
4189 The dependency relationships are intended to force the
4190 package manager to upgrade these types of packages in
4191 lock-step.
4192 </para>
4193 </glossdef>
4194 </glossentry>
4195
4196 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
4197 <info>
4198 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
4199 </info>
4200 <glossdef>
4201 <para role="glossdeffirst">
4202<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4203 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4204 variable indicates that these tools are not in the
4205 source tree.
4206 </para>
4207
4208 <para>
4209 When kernel tools are available in the tree, they are
4210 preferred over any externally installed tools.
4211 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4212 variable tells the OpenEmbedded build system to prefer
4213 the installed external tools.
4214 See the
4215 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
4216 class in <filename>meta/classes</filename> to see how
4217 the variable is used.
4218 </para>
4219 </glossdef>
4220 </glossentry>
4221
4222 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
4223 <info>
4224 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
4225 </info>
4226 <glossdef>
4227 <para role="glossdeffirst">
4228<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4229 When inheriting the
4230 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4231 class, this variable points to the source tree, which is
4232 outside of the OpenEmbedded build system.
4233 When set, this variable sets the
4234 <link linkend='var-S'><filename>S</filename></link>
4235 variable, which is what the OpenEmbedded build system uses
4236 to locate unpacked recipe source code.
4237 </para>
4238
4239 <para>
4240 For more information on
4241 <filename>externalsrc.bbclass</filename>, see the
4242 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4243 section.
4244 You can also find information on how to use this variable
4245 in the
4246 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004247 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004248 </para>
4249 </glossdef>
4250 </glossentry>
4251
4252 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
4253 <info>
4254 EXTERNALSRC_BUILD[doc] = "If externalsrc.bbclass is inherited, this variable points to the directory in which the recipe's source code is built, which is outside of the OpenEmbedded build system."
4255 </info>
4256 <glossdef>
4257 <para role="glossdeffirst">
4258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4259 When inheriting the
4260 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4261 class, this variable points to the directory in which the
4262 recipe's source code is built, which is outside of the
4263 OpenEmbedded build system.
4264 When set, this variable sets the
4265 <link linkend='var-B'><filename>B</filename></link>
4266 variable, which is what the OpenEmbedded build system uses
4267 to locate the Build Directory.
4268 </para>
4269
4270 <para>
4271 For more information on
4272 <filename>externalsrc.bbclass</filename>, see the
4273 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4274 section.
4275 You can also find information on how to use this variable
4276 in the
4277 "<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 -05004278 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004279 </para>
4280 </glossdef>
4281 </glossentry>
4282
4283 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
4284 <info>
4285 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
4286 </info>
4287 <glossdef>
4288 <para role="glossdeffirst">
4289<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4290 For recipes inheriting the
4291 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
4292 class, you can use <filename>EXTRA_AUTORECONF</filename> to
4293 specify extra options to pass to the
4294 <filename>autoreconf</filename> command that is
4295 executed during the
4296 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
4297 task.
4298 </para>
4299
4300 <para>
4301 The default value is "--exclude=autopoint".
4302 </para>
4303 </glossdef>
4304 </glossentry>
4305
4306 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
4307 <info>
4308 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."
4309 </info>
4310 <glossdef>
4311 <para role="glossdeffirst">
4312<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4313 A list of additional features to include in an image.
4314 When listing more than one feature, separate them with
4315 a space.
4316 </para>
4317
4318 <para>
4319 Typically, you configure this variable in your
4320 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004321 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004322 Although you can use this variable from within a recipe,
4323 best practices dictate that you do not.
4324 <note>
4325 To enable primary features from within the image
4326 recipe, use the
4327 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
4328 variable.
4329 </note>
4330 </para>
4331
4332 <para>
4333 Here are some examples of features you can add:
4334 <literallayout class='monospaced'>
4335"dbg-pkgs" - Adds -dbg packages for all installed packages
4336 including symbol information for debugging and
4337 profiling.
4338
4339"debug-tweaks" - Makes an image suitable for debugging.
4340 For example, allows root logins without
4341 passwords and enables post-installation
4342 logging. See the 'allow-empty-password'
4343 and 'post-install-logging' features in
4344 the "<link linkend='ref-features-image'>Image Features</link>" section for
4345 more information.
4346
4347"dev-pkgs" - Adds -dev packages for all installed packages.
4348 This is useful if you want to develop against
4349 the libraries in the image.
4350
4351"read-only-rootfs" - Creates an image whose root
4352 filesystem is read-only. See the
4353 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
4354 section in the Yocto Project
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004355 Development Tasks Manual for
4356 more information
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004357
4358"tools-debug" - Adds debugging tools such as gdb and
4359 strace.
4360
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004361"tools-sdk" - Adds development tools such as gcc, make,
4362 pkgconfig and so forth.
4363
4364"tools-testapps" - Adds useful testing tools such as
4365 ts_print, aplay, arecord and so
4366 forth.
4367
4368 </literallayout>
4369 </para>
4370
4371 <para>
4372 For a complete list of image features that ships with the
4373 Yocto Project, see the
4374 "<link linkend="ref-features-image">Image Features</link>"
4375 section.
4376 </para>
4377
4378 <para>
4379 For an example that shows how to customize your image by
4380 using this variable, see the
4381 "<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 -05004382 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004383 </para>
4384 </glossdef>
4385 </glossentry>
4386
4387 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
4388 <info>
4389 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 type."
4390 </info>
4391 <glossdef>
4392 <para role="glossdeffirst">
4393<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4394 Specifies additional options for the image
4395 creation command that has been specified in
4396 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
4397 When setting this variable, you should
4398 use an override for the associated type.
4399 Here is an example:
4400 <literallayout class='monospaced'>
4401 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
4402 </literallayout>
4403 </para>
4404 </glossdef>
4405 </glossentry>
4406
4407 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
4408 <info>
4409 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."
4410 </info>
4411 <glossdef>
4412 <para role="glossdeffirst">
4413<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4414 A list of recipes to build that do not provide packages
4415 for installing into the root filesystem.
4416 </para>
4417
4418 <para>
4419 Sometimes a recipe is required to build the final image but is not
4420 needed in the root filesystem.
4421 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
4422 list these recipes and thus specify the dependencies.
4423 A typical example is a required bootloader in a machine configuration.
4424 </para>
4425
4426 <note>
4427 To add packages to the root filesystem, see the various
4428 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
4429 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
4430 variables.
4431 </note>
4432 </glossdef>
4433 </glossentry>
4434
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004435 <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
4436 <info>
4437 EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
4438 </info>
4439 <glossdef>
4440 <para role="glossdeffirst">
4441<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4442 A list of subdirectories of
4443 <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
4444 added to the beginning of the environment variable
4445 <filename>PATH</filename>.
4446 As an example, the following prepends
4447 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
4448 to <filename>PATH</filename>:
4449 <literallayout class='monospaced'>
4450 EXTRANATIVEPATH = "foo bar"
4451 </literallayout>
4452 </para>
4453 </glossdef>
4454 </glossentry>
4455
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004456 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
4457 <info>
4458 EXTRA_OECMAKE[doc] = "Additional cmake options."
4459 </info>
4460 <glossdef>
4461 <para role="glossdeffirst">
4462<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4463 Additional <filename>cmake</filename> options.
4464 </para>
4465 </glossdef>
4466 </glossentry>
4467
4468 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
4469 <info>
4470 EXTRA_OECONF[doc] = "Additional configure script options."
4471 </info>
4472 <glossdef>
4473 <para role="glossdeffirst">
4474<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4475 Additional <filename>configure</filename> script options.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004476 See
4477 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
4478 for additional information on passing configure script
4479 options.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004480 </para>
4481 </glossdef>
4482 </glossentry>
4483
4484 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
4485 <info>
4486 EXTRA_OEMAKE[doc] = "Additional GNU make options."
4487 </info>
4488 <glossdef>
4489 <para role="glossdeffirst">
4490<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4491 Additional GNU <filename>make</filename> options.
4492 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004493
4494 <para>
4495 Because the <filename>EXTRA_OEMAKE</filename> defaults to
4496 "", you need to set the variable to specify any required
4497 GNU options.
4498 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004499
4500 <para>
4501 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4502 and
4503 <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
4504 also make use of
4505 <filename>EXTRA_OEMAKE</filename> to pass the required
4506 flags.
4507 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004508 </glossdef>
4509 </glossentry>
4510
4511 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
4512 <info>
4513 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."
4514 </info>
4515 <glossdef>
4516 <para role="glossdeffirst">
4517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4518 When inheriting the
4519 <link linkend='ref-classes-scons'><filename>scons</filename></link>
4520 class, this variable specifies additional configuration
4521 options you want to pass to the
4522 <filename>scons</filename> command line.
4523 </para>
4524 </glossdef>
4525 </glossentry>
4526
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004527 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
4528 <info>
4529 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
4530 </info>
4531 <glossdef>
4532 <para role="glossdeffirst">
4533<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4534 When inheriting the
4535 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
4536 class, this variable provides image level user and group
4537 operations.
4538 This is a more global method of providing user and group
4539 configuration as compared to using the
4540 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4541 class, which ties user and group configurations to a
4542 specific recipe.
4543 </para>
4544
4545 <para>
4546 The set list of commands you can configure using the
4547 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4548 <filename>extrausers</filename> class.
4549 These commands map to the normal Unix commands of the same
4550 names:
4551 <literallayout class='monospaced'>
4552 # EXTRA_USERS_PARAMS = "\
4553 # useradd -p '' tester; \
4554 # groupadd developers; \
4555 # userdel nobody; \
4556 # groupdel -g video; \
4557 # groupmod -g 1020 developers; \
4558 # usermod -s /bin/sh tester; \
4559 # "
4560 </literallayout>
4561 </para>
4562 </glossdef>
4563 </glossentry>
4564
4565 </glossdiv>
4566
4567 <glossdiv id='var-glossary-f'><title>F</title>
4568
4569 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4570 <info>
4571 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."
4572 </info>
4573 <glossdef>
4574 <para role="glossdeffirst">
4575<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4576 Defines one or more packages to include in an image when
4577 a specific item is included in
4578 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4579 When setting the value, <filename>FEATURE_PACKAGES</filename>
4580 should have the name of the feature item as an override.
4581 Here is an example:
4582 <literallayout class='monospaced'>
4583 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4584 </literallayout>
4585 </para>
4586
4587 <para>
4588 In this example, if "widget" were added to
4589 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4590 <replaceable>package2</replaceable> would be included in the image.
4591 <note>
4592 Packages installed by features defined through
4593 <filename>FEATURE_PACKAGES</filename> are often package
4594 groups.
4595 While similarly named, you should not confuse the
4596 <filename>FEATURE_PACKAGES</filename> variable with
4597 package groups, which are discussed elsewhere in the
4598 documentation.
4599 </note>
4600 </para>
4601 </glossdef>
4602 </glossentry>
4603
4604 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4605 <info>
4606 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."
4607 </info>
4608 <glossdef>
4609 <para role="glossdeffirst">
4610<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4611 Points to the base URL of the server and location within
4612 the document-root that provides the metadata and
4613 packages required by OPKG to support runtime package
4614 management of IPK packages.
4615 You set this variable in your
4616 <filename>local.conf</filename> file.
4617 </para>
4618
4619 <para>
4620 Consider the following example:
4621 <literallayout class='monospaced'>
4622 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4623 </literallayout>
4624 This example assumes you are serving your packages over
4625 HTTP and your databases are located in a directory
4626 named <filename>BOARD-dir</filename>, which is underneath
4627 your HTTP server's document-root.
4628 In this case, the OpenEmbedded build system generates a set
4629 of configuration files for you in your target that work
4630 with the feed.
4631 </para>
4632 </glossdef>
4633 </glossentry>
4634
4635 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4636 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004637 FILES[doc] = "The list of directories or files that are placed in a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004638 </info>
4639 <glossdef>
4640 <para role="glossdeffirst">
4641<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004642 The list of files and directories that are placed in a
4643 package.
4644 The
4645 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
4646 variable lists the packages generated by a recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004647 </para>
4648
4649 <para>
4650 To use the <filename>FILES</filename> variable, provide a
4651 package name override that identifies the resulting package.
4652 Then, provide a space-separated list of files or paths
4653 that identify the files you want included as part of the
4654 resulting package.
4655 Here is an example:
4656 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004657 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004658 </literallayout>
4659 </para>
4660
4661 <note>
4662 When specifying paths as part of the
4663 <filename>FILES</filename> variable, it is good practice
4664 to use appropriate path variables.
4665 For example, use <filename>${sysconfdir}</filename> rather
4666 than <filename>/etc</filename>, or
4667 <filename>${bindir}</filename> rather than
4668 <filename>/usr/bin</filename>.
4669 You can find a list of these variables at the top of the
4670 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004671 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004672 You will also find the default values of the various
4673 <filename>FILES_*</filename> variables in this file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004674 </note>
4675
4676 <para>
4677 If some of the files you provide with the
4678 <filename>FILES</filename> variable are editable and you
4679 know they should not be overwritten during the package
4680 update process by the Package Management System (PMS), you
4681 can identify these files so that the PMS will not
4682 overwrite them.
4683 See the
4684 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4685 variable for information on how to identify these files to
4686 the PMS.
4687 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004688 </glossdef>
4689 </glossentry>
4690
4691 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4692 <info>
4693 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4694 </info>
4695 <glossdef>
4696 <para role="glossdeffirst">
4697<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4698 Defines the file specification to match
4699 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4700 In other words, <filename>FILES_SOLIBSDEV</filename>
4701 defines the full path name of the development symbolic link
4702 (symlink) for shared libraries on the target platform.
4703 </para>
4704
4705 <para>
4706 The following statement from the
4707 <filename>bitbake.conf</filename> shows how it is set:
4708 <literallayout class='monospaced'>
4709 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4710 </literallayout>
4711 </para>
4712 </glossdef>
4713 </glossentry>
4714
4715 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4716 <info>
4717 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4718 </info>
4719 <glossdef>
4720 <para role="glossdeffirst">
4721<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4722 Extends the search path the OpenEmbedded build system uses
4723 when looking for files and patches as it processes recipes
4724 and append files.
4725 The default directories BitBake uses when it processes
4726 recipes are initially defined by the
4727 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4728 variable.
4729 You can extend <filename>FILESPATH</filename> variable
4730 by using <filename>FILESEXTRAPATHS</filename>.
4731 </para>
4732
4733 <para>
4734 Best practices dictate that you accomplish this by using
4735 <filename>FILESEXTRAPATHS</filename> from within a
4736 <filename>.bbappend</filename> file and that you prepend
4737 paths as follows:
4738 <literallayout class='monospaced'>
4739 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4740 </literallayout>
4741 In the above example, the build system first looks for files
4742 in a directory that has the same name as the corresponding
4743 append file.
4744 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004745 <para>When extending
4746 <filename>FILESEXTRAPATHS</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004747 be sure to use the immediate expansion
4748 (<filename>:=</filename>) operator.
4749 Immediate expansion makes sure that BitBake evaluates
4750 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4751 at the time the directive is encountered rather than at
4752 some later time when expansion might result in a
4753 directory that does not contain the files you need.
4754 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004755
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004756 <para>Also, include the trailing separating colon
4757 character if you are prepending.
4758 The trailing colon character is necessary because you
4759 are directing BitBake to extend the path by prepending
4760 directories to the search path.</para>
4761 </note>
4762 Here is another common use:
4763 <literallayout class='monospaced'>
4764 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4765 </literallayout>
4766 In this example, the build system extends the
4767 <filename>FILESPATH</filename> variable to include a
4768 directory named <filename>files</filename> that is in the
4769 same directory as the corresponding append file.
4770 </para>
4771
4772 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004773 This next example specifically adds three paths:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004774 <literallayout class='monospaced'>
4775 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4776 </literallayout>
4777 </para>
4778
4779 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004780 A final example shows how you can extend the search path
4781 and include a
4782 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>-specific
4783 override, which is useful in a BSP layer:
4784 <literallayout class='monospaced'>
4785 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
4786 </literallayout>
4787 The previous statement appears in the
4788 <filename>linux-yocto-dev.bbappend</filename> file, which
4789 is found in the Yocto Project
4790 <link linkend='source-repositories'>Source Repositories</link>
4791 in
4792 <filename>meta-intel/common/recipes-kernel/linux</filename>.
4793 Here, the machine override is a special
4794 <link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
4795 definition for multiple <filename>meta-intel</filename>
4796 machines.
4797 <note>
4798 For a layer that supports a single BSP, the override
4799 could just be the value of <filename>MACHINE</filename>.
4800 </note>
4801 </para>
4802
4803 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004804 By prepending paths in <filename>.bbappend</filename>
4805 files, you allow multiple append files that reside in
4806 different layers but are used for the same recipe to
4807 correctly extend the path.
4808 </para>
4809 </glossdef>
4810 </glossentry>
4811
4812 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4813 <info>
4814 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4815 </info>
4816 <glossdef>
4817 <para role="glossdeffirst">
4818<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4819 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4820 used by the OpenEmbedded build system for creating
4821 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
4822 You can find more information on how overrides are handled
4823 in the
4824 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake Manual</ulink>.
4825 </para>
4826
4827 <para>
4828 By default, the <filename>FILESOVERRIDES</filename>
4829 variable is defined as:
4830 <literallayout class='monospaced'>
4831 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4832 </literallayout>
4833
4834 <note>
4835 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4836 variable.
4837 The values match up with expected overrides and are
4838 used in an expected manner by the build system.
4839 </note>
4840 </para>
4841 </glossdef>
4842 </glossentry>
4843
4844 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4845 <info>
4846 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."
4847 </info>
4848 <glossdef>
4849 <para role="glossdeffirst">
4850<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4851 The default set of directories the OpenEmbedded build system
4852 uses when searching for patches and files.
4853 During the build process, BitBake searches each directory in
4854 <filename>FILESPATH</filename> in the specified order when
4855 looking for files and patches specified by each
4856 <filename>file://</filename> URI in a recipe.
4857 </para>
4858
4859 <para>
4860 The default value for the <filename>FILESPATH</filename>
4861 variable is defined in the <filename>base.bbclass</filename>
4862 class found in <filename>meta/classes</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004863 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004864 <literallayout class='monospaced'>
4865 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4866 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4867 </literallayout>
4868 <note>
4869 Do not hand-edit the <filename>FILESPATH</filename>
4870 variable.
4871 If you want the build system to look in directories
4872 other than the defaults, extend the
4873 <filename>FILESPATH</filename> variable by using the
4874 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4875 variable.
4876 </note>
4877 Be aware that the default <filename>FILESPATH</filename>
4878 directories do not map to directories in custom layers
4879 where append files (<filename>.bbappend</filename>)
4880 are used.
4881 If you want the build system to find patches or files
4882 that reside with your append files, you need to extend
4883 the <filename>FILESPATH</filename> variable by using
4884 the
4885 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4886 variable.
4887 </para>
4888 </glossdef>
4889 </glossentry>
4890
4891 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
4892 <info>
4893 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
4894 </info>
4895 <glossdef>
4896 <para role="glossdeffirst">
4897<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4898 Allows you to define your own file permissions settings table as part of
4899 your configuration for the packaging process.
4900 For example, suppose you need a consistent set of custom permissions for
4901 a set of groups and users across an entire work project.
4902 It is best to do this in the packages themselves but this is not always
4903 possible.
4904 </para>
4905
4906 <para>
4907 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
4908 is located in the <filename>meta/files</filename> folder in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004909 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004910 If you create your own file permissions setting table, you should place it in your
4911 layer or the distro's layer.
4912 </para>
4913
4914 <para>
4915 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
4916 <filename>conf/local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004917 <link linkend='build-directory'>Build Directory</link>, to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004918 point to your custom <filename>fs-perms.txt</filename>.
4919 You can specify more than a single file permissions setting table.
4920 The paths you specify to these files must be defined within the
4921 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
4922 </para>
4923
4924 <para>
4925 For guidance on how to create your own file permissions settings table file,
4926 examine the existing <filename>fs-perms.txt</filename>.
4927 </para>
4928 </glossdef>
4929 </glossentry>
4930
4931 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
4932 <info>
4933 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'."
4934 </info>
4935 <glossdef>
4936 <para role="glossdeffirst">
4937<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4938 When inheriting the
4939 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4940 class, this variable specifies the runtime dependencies
4941 for font packages.
4942 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
4943 is set to "fontconfig-utils".
4944 </para>
4945 </glossdef>
4946 </glossentry>
4947
4948 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
4949 <info>
4950 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
4951 </info>
4952 <glossdef>
4953 <para role="glossdeffirst">
4954<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4955 When inheriting the
4956 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
4957 class, this variable identifies packages containing font
4958 files that need to be cached by Fontconfig.
4959 By default, the <filename>fontcache</filename> class assumes
4960 that fonts are in the recipe's main package
4961 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
4962 Use this variable if fonts you need are in a package
4963 other than that main package.
4964 </para>
4965 </glossdef>
4966 </glossentry>
4967
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004968 <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
4969 <info>
4970 FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
4971 </info>
4972 <glossdef>
4973 <para role="glossdeffirst">
4974<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4975 Forces the removal of the packages listed in
4976 <filename>ROOTFS_RO_UNNEEDED</filename> during the
4977 generation of the root filesystem.
4978 </para>
4979
4980 <para>
4981 Set the variable to "1" to force the removal of these
4982 packages.
4983 </para>
4984 </glossdef>
4985 </glossentry>
4986
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004987 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
4988 <info>
4989 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'."
4990 </info>
4991 <glossdef>
4992 <para role="glossdeffirst">
4993<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4994 The options to pass in
4995 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
4996 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
4997 when compiling an optimized system.
4998 This variable defaults to
4999 "-O2 -pipe ${DEBUG_FLAGS}".
5000 </para>
5001 </glossdef>
5002 </glossentry>
5003 </glossdiv>
5004
5005 <glossdiv id='var-glossary-g'><title>G</title>
5006
5007 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
5008 <info>
5009 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
5010 </info>
5011 <glossdef>
5012 <para role="glossdeffirst">
5013<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5014 The minimal command and arguments to run the GNU Debugger.
5015 </para>
5016 </glossdef>
5017 </glossentry>
5018
5019 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
5020 <info>
5021 GITDIR[doc] = "The directory where Git clones will be stored."
5022 </info>
5023 <glossdef>
5024 <para role="glossdeffirst">
5025<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5026 The directory in which a local copy of a Git repository
5027 is stored when it is cloned.
5028 </para>
5029 </glossdef>
5030 </glossentry>
5031
5032 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
5033 <info>
5034 GLIBC_GENERATE_LOCALES[doc]= "Specifies the list of GLIBC locales to generate should you not wish generate all LIBC locals, which can be time consuming."
5035 </info>
5036 <glossdef>
5037 <para role="glossdeffirst">
5038<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5039 Specifies the list of GLIBC locales to generate should you
5040 not wish generate all LIBC locals, which can be time
5041 consuming.
5042 <note>
5043 If you specifically remove the locale
5044 <filename>en_US.UTF-8</filename>, you must set
5045 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
5046 appropriately.
5047 </note>
5048 </para>
5049
5050 <para>
5051 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
5052 in your <filename>local.conf</filename> file.
5053 By default, all locales are generated.
5054 <literallayout class='monospaced'>
5055 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
5056 </literallayout>
5057 </para>
5058 </glossdef>
5059 </glossentry>
5060
5061 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
5062 <info>
5063 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."
5064 </info>
5065 <glossdef>
5066 <para role="glossdeffirst">
5067<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5068 When inheriting the
5069 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5070 class, this variable
5071 specifies for a package what parameters should be passed
5072 to the <filename>groupadd</filename> command
5073 if you wish to add a group to the system when the package
5074 is installed.
5075 </para>
5076
5077 <para>
5078 Here is an example from the <filename>dbus</filename>
5079 recipe:
5080 <literallayout class='monospaced'>
5081 GROUPADD_PARAM_${PN} = "-r netdev"
5082 </literallayout>
5083 For information on the standard Linux shell command
5084 <filename>groupadd</filename>, see
5085 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
5086 </para>
5087 </glossdef>
5088 </glossentry>
5089
5090 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
5091 <info>
5092 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."
5093 </info>
5094 <glossdef>
5095 <para role="glossdeffirst">
5096<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5097 When inheriting the
5098 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5099 class, this variable
5100 specifies for a package what parameters should be passed
5101 to the <filename>groupmems</filename> command
5102 if you wish to modify the members of a group when the
5103 package is installed.
5104 </para>
5105
5106 <para>
5107 For information on the standard Linux shell command
5108 <filename>groupmems</filename>, see
5109 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
5110 </para>
5111 </glossdef>
5112 </glossentry>
5113
5114 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
5115 <info>
5116 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
5117 </info>
5118 <glossdef>
5119 <para role="glossdeffirst">
5120<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5121 Configures the GNU GRand Unified Bootloader (GRUB) to have
5122 graphics and serial in the boot menu.
5123 Set this variable to "1" in your
5124 <filename>local.conf</filename> or distribution
5125 configuration file to enable graphics and serial
5126 in the menu.
5127 </para>
5128
5129 <para>
5130 See the
5131 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5132 class for more information on how this variable is used.
5133 </para>
5134 </glossdef>
5135 </glossentry>
5136
5137 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
5138 <info>
5139 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
5140 </info>
5141 <glossdef>
5142 <para role="glossdeffirst">
5143<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5144 Additional options to add to the GNU GRand Unified
5145 Bootloader (GRUB) configuration.
5146 Use a semi-colon character (<filename>;</filename>) to
5147 separate multiple options.
5148 </para>
5149
5150 <para>
5151 The <filename>GRUB_OPTS</filename> variable is optional.
5152 See the
5153 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5154 class for more information on how this variable is used.
5155 </para>
5156 </glossdef>
5157 </glossentry>
5158
5159 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
5160 <info>
5161 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
5162 </info>
5163 <glossdef>
5164 <para role="glossdeffirst">
5165<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5166 Specifies the timeout before executing the default
5167 <filename>LABEL</filename> in the GNU GRand Unified
5168 Bootloader (GRUB).
5169 </para>
5170
5171 <para>
5172 The <filename>GRUB_TIMEOUT</filename> variable is optional.
5173 See the
5174 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5175 class for more information on how this variable is used.
5176 </para>
5177 </glossdef>
5178 </glossentry>
5179
5180 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
5181 <info>
5182 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."
5183 </info>
5184 <glossdef>
5185 <para role="glossdeffirst">
5186<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5187 When inheriting the
5188 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
5189 class, this variable specifies the packages that contain the
5190 GTK+ input method modules being installed when the modules
5191 are in packages other than the main package.
5192 </para>
5193 </glossdef>
5194 </glossentry>
5195
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005196 </glossdiv>
5197
5198 <glossdiv id='var-glossary-h'><title>H</title>
5199
5200 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
5201 <info>
5202 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
5203 </info>
5204 <glossdef>
5205 <para role="glossdeffirst">
5206<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5207 Website where more information about the software the recipe is building
5208 can be found.
5209 </para>
5210 </glossdef>
5211 </glossentry>
5212
5213 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
5214 <info>
5215 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
5216
5217 </info>
5218 <glossdef>
5219 <para role="glossdeffirst">
5220<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5221 The name of the target architecture, which is normally
5222 the same as
5223 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
5224 The OpenEmbedded build system supports many
5225 architectures.
5226 Here is an example list of architectures supported.
5227 This list is by no means complete as the architecture
5228 is configurable:
5229 <literallayout class='monospaced'>
5230 arm
5231 i586
5232 x86_64
5233 powerpc
5234 powerpc64
5235 mips
5236 mipsel
5237 </literallayout>
5238 </para>
5239 </glossdef>
5240 </glossentry>
5241
5242 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
5243 <info>
5244 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
5245 </info>
5246 <glossdef>
5247 <para role="glossdeffirst">
5248<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5249 Specifies architecture-specific compiler flags that are
5250 passed to the C compiler.
5251 </para>
5252
5253 <para>
5254 Default initialization for <filename>HOST_CC_ARCH</filename>
5255 varies depending on what is being built:
5256 <itemizedlist>
5257 <listitem><para>
5258 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
5259 when building for the target
5260 </para></listitem>
5261 <listitem><para>
5262 <filename>BUILD_CC_ARCH</filename>
5263 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005264 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005265 </para></listitem>
5266 <listitem><para>
5267 <filename>BUILDSDK_CC_ARCH</filename>
5268 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005269 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005270 </para></listitem>
5271 </itemizedlist>
5272 </para>
5273 </glossdef>
5274 </glossentry>
5275
5276 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
5277 <info>
5278 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
5279 </info>
5280 <glossdef>
5281 <para role="glossdeffirst">
5282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5283 Specifies the name of the target operating system, which
5284 is normally the same as the
5285 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
5286 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005287 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005288 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005289 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005290 </para>
5291 </glossdef>
5292 </glossentry>
5293
5294 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
5295 <info>
5296 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
5297 </info>
5298 <glossdef>
5299 <para role="glossdeffirst">
5300<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5301 Specifies the prefix for the cross-compile toolchain.
5302 <filename>HOST_PREFIX</filename> is normally the same as
5303 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
5304 </para>
5305 </glossdef>
5306 </glossentry>
5307
5308 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
5309 <info>
5310 HOST_SYS[doc] = "Specifies the system, including the architecture and the operating system, for with the build is occurring in the context of the current recipe."
5311 </info>
5312 <glossdef>
5313 <para role="glossdeffirst">
5314<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5315 Specifies the system, including the architecture and the
5316 operating system, for which the build is occurring
5317 in the context of the current recipe.
5318 </para>
5319
5320 <para>
5321 The OpenEmbedded build system automatically sets this
5322 variable based on
5323 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
5324 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
5325 and
5326 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
5327 variables.
5328 <note>
5329 You do not need to set the variable yourself.
5330 </note>
5331 </para>
5332
5333 <para>
5334 Consider these two examples:
5335 <itemizedlist>
5336 <listitem><para>Given a native recipe on a 32-bit
5337 x86 machine running Linux, the value is
5338 "i686-linux".
5339 </para></listitem>
5340 <listitem><para>Given a recipe being built for a
5341 little-endian MIPS target running Linux,
5342 the value might be "mipsel-linux".
5343 </para></listitem>
5344 </itemizedlist>
5345 </para>
5346 </glossdef>
5347 </glossentry>
5348
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005349 <glossentry id='var-HOSTTOOLS'><glossterm>HOSTTOOLS</glossterm>
5350 <info>
5351 HOSTTOOLS[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5352 </info>
5353 <glossdef>
5354 <para role="glossdeffirst">
5355<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5356 A space-separated list (filter) of tools on the build host
5357 that should be allowed to be called from within build tasks.
5358 Using this filter helps reduce the possibility of host
5359 contamination.
5360 If a tool specified in the value of
5361 <filename>HOSTTOOLS</filename> is not found on the
5362 build host, the OpenEmbedded build system produces
5363 an error and the build is not started.
5364 </para>
5365
5366 <para>
5367 For additional information, see
5368 <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>.
5369 </para>
5370 </glossdef>
5371 </glossentry>
5372
5373 <glossentry id='var-HOSTTOOLS_NONFATAL'><glossterm>HOSTTOOLS_NONFATAL</glossterm>
5374 <info>
5375 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."
5376 </info>
5377 <glossdef>
5378 <para role="glossdeffirst">
5379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5380 A space-separated list (filter) of tools on the build host
5381 that should be allowed to be called from within build tasks.
5382 Using this filter helps reduce the possibility of host
5383 contamination.
5384 Unlike
5385 <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>,
5386 the OpenEmbedded build system does not produce and error
5387 if a tool specified in the value of
5388 <filename>HOSTTOOLS_NONFATAL</filename> is not found on the
5389 build host.
5390 Thus, you can use <filename>HOSTTOOLS_NONFATAL</filename>
5391 to filter optional host tools.
5392 </para>
5393 </glossdef>
5394 </glossentry>
5395
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005396 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
5397 <info>
5398 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
5399 </info>
5400 <glossdef>
5401 <para role="glossdeffirst">
5402<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5403 Specifies the name of the vendor.
5404 <filename>HOST_VENDOR</filename> is normally the same as
5405 <link linkend='var-TARGET_PREFIX'><filename>TARGET_VENDOR</filename></link>.
5406 </para>
5407 </glossdef>
5408 </glossentry>
5409
5410 </glossdiv>
5411
5412 <glossdiv id='var-glossary-i'><title>I</title>
5413
5414 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
5415 <info>
5416 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
5417 </info>
5418 <glossdef>
5419 <para role="glossdeffirst">
5420<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5421 Disables or enables the <filename>icecc</filename>
5422 (Icecream) function.
5423 For more information on this function and best practices
5424 for using this variable, see the
5425 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
5426 section.
5427 </para>
5428
5429 <para>
5430 Setting this variable to "1" in your
5431 <filename>local.conf</filename> disables the function:
5432 <literallayout class='monospaced'>
5433 ICECC_DISABLED ??= "1"
5434 </literallayout>
5435 To enable the function, set the variable as follows:
5436 <literallayout class='monospaced'>
5437 ICECC_DISABLED = ""
5438 </literallayout>
5439 </para>
5440 </glossdef>
5441 </glossentry>
5442
5443 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
5444 <info>
5445 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
5446 </info>
5447 <glossdef>
5448 <para role="glossdeffirst">
5449<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5450 Points to the <filename>icecc-create-env</filename> script
5451 that you provide.
5452 This variable is used by the
5453 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5454 class.
5455 You set this variable in your
5456 <filename>local.conf</filename> file.
5457 </para>
5458
5459 <para>
5460 If you do not point to a script that you provide, the
5461 OpenEmbedded build system uses the default script provided
5462 by the <filename>icecc-create-env.bb</filename> recipe,
5463 which is a modified version and not the one that comes with
5464 <filename>icecc</filename>.
5465 </para>
5466 </glossdef>
5467 </glossentry>
5468
5469 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
5470 <info>
5471 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
5472 </info>
5473 <glossdef>
5474 <para role="glossdeffirst">
5475<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5476 Extra options passed to the <filename>make</filename>
5477 command during the
5478 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
5479 task that specify parallel compilation.
5480 This variable usually takes the form of
5481 "-j <replaceable>x</replaceable>", where
5482 <replaceable>x</replaceable> represents the maximum
5483 number of parallel threads <filename>make</filename> can
5484 run.
5485 <note>
5486 The options passed affect builds on all enabled
5487 machines on the network, which are machines running the
5488 <filename>iceccd</filename> daemon.
5489 </note>
5490 </para>
5491
5492 <para>
5493 If your enabled machines support multiple cores,
5494 coming up with the maximum number of parallel threads
5495 that gives you the best performance could take some
5496 experimentation since machine speed, network lag,
5497 available memory, and existing machine loads can all
5498 affect build time.
5499 Consequently, unlike the
5500 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5501 variable, there is no rule-of-thumb for setting
5502 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
5503 optimal performance.
5504 </para>
5505
5506 <para>
5507 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
5508 the build system does not use it (i.e. the system does
5509 not detect and assign the number of cores as is done with
5510 <filename>PARALLEL_MAKE</filename>).
5511 </para>
5512 </glossdef>
5513 </glossentry>
5514
5515 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
5516 <info>
5517 ICECC_PATH[doc] = "The location of the icecc binary."
5518 </info>
5519 <glossdef>
5520 <para role="glossdeffirst">
5521<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5522 The location of the <filename>icecc</filename> binary.
5523 You can set this variable in your
5524 <filename>local.conf</filename> file.
5525 If your <filename>local.conf</filename> file does not define
5526 this variable, the
5527 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5528 class attempts to define it by locating
5529 <filename>icecc</filename> using <filename>which</filename>.
5530 </para>
5531 </glossdef>
5532 </glossentry>
5533
5534 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
5535 <info>
5536 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
5537 </info>
5538 <glossdef>
5539 <para role="glossdeffirst">
5540<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5541 Identifies user classes that you do not want the
5542 Icecream distributed compile support to consider.
5543 This variable is used by the
5544 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5545 class.
5546 You set this variable in your
5547 <filename>local.conf</filename> file.
5548 </para>
5549
5550 <para>
5551 When you list classes using this variable, you are
5552 "blacklisting" them from distributed compilation across
5553 remote hosts.
5554 Any classes you list will be distributed and compiled
5555 locally.
5556 </para>
5557 </glossdef>
5558 </glossentry>
5559
5560 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5561 <info>
5562 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5563 </info>
5564 <glossdef>
5565 <para role="glossdeffirst">
5566<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5567 Identifies user recipes that you do not want the
5568 Icecream distributed compile support to consider.
5569 This variable is used by the
5570 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5571 class.
5572 You set this variable in your
5573 <filename>local.conf</filename> file.
5574 </para>
5575
5576 <para>
5577 When you list packages using this variable, you are
5578 "blacklisting" them from distributed compilation across
5579 remote hosts.
5580 Any packages you list will be distributed and compiled
5581 locally.
5582 </para>
5583 </glossdef>
5584 </glossentry>
5585
5586 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5587 <info>
5588 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."
5589 </info>
5590 <glossdef>
5591 <para role="glossdeffirst">
5592<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5593 Identifies user recipes that use an empty
5594 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5595 variable that you want to force remote distributed
5596 compilation on using the Icecream distributed compile
5597 support.
5598 This variable is used by the
5599 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5600 class.
5601 You set this variable in your
5602 <filename>local.conf</filename> file.
5603 </para>
5604 </glossdef>
5605 </glossentry>
5606
5607 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5608 <info>
5609 IMAGE_BASENAME[doc] = "The base name of image output files."
5610 </info>
5611 <glossdef>
5612 <para role="glossdeffirst">
5613<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5614 The base name of image output files.
5615 This variable defaults to the recipe name
5616 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5617 </para>
5618 </glossdef>
5619 </glossentry>
5620
5621 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5622 <info>
5623 IMAGE_BOOT_FILES[doc] = "Whitespace separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition. Entries will be installed under a same name as the source file. To change the destination file name, pass a desired name after a semicolon (eg. u-boot.img;uboot)."
5624 </info>
5625 <glossdef>
5626 <para role="glossdeffirst">
5627<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5628 A space-separated list of files installed into the
5629 boot partition when preparing an image using the
5630 <filename>wic</filename> tool with the
5631 <filename>bootimg-partition</filename> source
5632 plugin.
5633 By default, the files are installed under
5634 the same name as the source files.
5635 To change the installed name, separate it from the
5636 original name with a semi-colon (;).
5637 Source files need to be located in
5638 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5639 Here are two examples:
5640
5641 <literallayout class="monospaced">
5642 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5643 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5644 </literallayout>
5645 </para>
5646
5647 <para>
5648 Alternatively, source files can be picked up using
5649 a glob pattern.
5650 In this case, the destination file
5651 will have the same name as the base name of the source file
5652 path.
5653 To install files into a directory within the
5654 target location, pass its name after a semi-colon
5655 (;).
5656 Here are two examples:
5657 <literallayout class="monospaced">
5658 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5659 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5660 </literallayout>
5661 The first example installs all files from
5662 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5663 into the root of the target partition.
5664 The second example installs the same files into a
5665 <filename>boot</filename> directory within the
5666 target partition.
5667 </para>
5668 </glossdef>
5669 </glossentry>
5670
5671 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5672 <info>
5673 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5674 </info>
5675 <glossdef>
5676 <para role="glossdeffirst">
5677<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5678 A list of classes that all images should inherit.
5679 You typically use this variable to specify the list of
5680 classes that register the different types of images
5681 the OpenEmbedded build system creates.
5682 </para>
5683
5684 <para>
5685 The default value for <filename>IMAGE_CLASSES</filename> is
5686 <filename>image_types</filename>.
5687 You can set this variable in your
5688 <filename>local.conf</filename> or in a distribution
5689 configuration file.
5690 </para>
5691
5692 <para>
5693 For more information, see
5694 <filename>meta/classes/image_types.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005695 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005696 </para>
5697 </glossdef>
5698 </glossentry>
5699
5700 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5701 <info>
5702 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)."
5703 </info>
5704 <glossdef>
5705 <para role="glossdeffirst">
5706<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5707 Specifies the command to create the image file for a
5708 specific image type, which corresponds to the value set
5709 set in
5710 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5711 (e.g. <filename>ext3</filename>,
5712 <filename>btrfs</filename>, and so forth).
5713 When setting this variable, you should use
5714 an override for the associated type.
5715 Here is an example:
5716 <literallayout class='monospaced'>
5717 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5718 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5719 ${EXTRA_IMAGECMD}"
5720 </literallayout>
5721 </para>
5722
5723 <para>
5724 You typically do not need to set this variable unless
5725 you are adding support for a new image type.
5726 For more examples on how to set this variable, see the
5727 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5728 class file, which is
5729 <filename>meta/classes/image_types.bbclass</filename>.
5730 </para>
5731 </glossdef>
5732 </glossentry>
5733
5734 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5735 <info>
5736 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."
5737 </info>
5738 <glossdef>
5739 <para role="glossdeffirst">
5740<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5741 Specifies one or more files that contain custom device
5742 tables that are passed to the
5743 <filename>makedevs</filename> command as part of creating
5744 an image.
5745 These files list basic device nodes that should be
5746 created under <filename>/dev</filename> within the image.
5747 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5748 <filename>files/device_table-minimal.txt</filename> is
5749 used, which is located by
5750 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5751 For details on how you should write device table files,
5752 see <filename>meta/files/device_table-minimal.txt</filename>
5753 as an example.
5754 </para>
5755 </glossdef>
5756 </glossentry>
5757
5758 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5759 <info>
5760 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5761 </info>
5762 <glossdef>
5763 <para role="glossdeffirst">
5764<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5765 The primary list of features to include in an image.
5766 Typically, you configure this variable in an image recipe.
5767 Although you can use this variable from your
5768 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005769 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005770 best practices dictate that you do not.
5771 <note>
5772 To enable extra features from outside the image recipe,
5773 use the
5774 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5775 </note>
5776 </para>
5777
5778 <para>
5779 For a list of image features that ships with the Yocto
5780 Project, see the
5781 "<link linkend="ref-features-image">Image Features</link>"
5782 section.
5783 </para>
5784
5785 <para>
5786 For an example that shows how to customize your image by
5787 using this variable, see the
5788 "<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 -05005789 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005790 </para>
5791 </glossdef>
5792 </glossentry>
5793
5794 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5795 <info>
5796 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5797 </info>
5798 <glossdef>
5799 <para role="glossdeffirst">
5800<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5801 Specifies the formats the OpenEmbedded build system uses
5802 during the build when creating the root filesystem.
5803 For example, setting <filename>IMAGE_FSTYPES</filename>
5804 as follows causes the build system to create root
5805 filesystems using two formats: <filename>.ext3</filename>
5806 and <filename>.tar.bz2</filename>:
5807 <literallayout class='monospaced'>
5808 IMAGE_FSTYPES = "ext3 tar.bz2"
5809 </literallayout>
5810 </para>
5811
5812 <para>
5813 For the complete list of supported image formats from which
5814 you can choose, see
5815 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5816 </para>
5817
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005818 <note><title>Notes</title>
5819 <itemizedlist>
5820 <listitem><para>
5821 If you add "live" to
5822 <filename>IMAGE_FSTYPES</filename> inside an image
5823 recipe, be sure that you do so prior to the
5824 "inherit image" line of the recipe or the live
5825 image will not build.
5826 </para></listitem>
5827 <listitem><para>
5828 Due to the way the OpenEmbedded build system
5829 processes this variable, you cannot update its
5830 contents by using <filename>_append</filename> or
5831 <filename>_prepend</filename>.
5832 You must use the <filename>+=</filename>
5833 operator to add one or more options to the
5834 <filename>IMAGE_FSTYPES</filename> variable.
5835 </para></listitem>
5836 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005837 </note>
5838 </glossdef>
5839 </glossentry>
5840
5841 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
5842 <info>
5843 IMAGE_INSTALL[doc] = "Specifies the packages to install into an image. Image recipes set IMAGE_INSTALL to specify the packages to install into an image through image.bbclass."
5844 </info>
5845 <glossdef>
5846 <para role="glossdeffirst">
5847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5848 Specifies the packages to install into an image.
5849 The <filename>IMAGE_INSTALL</filename> variable is a
5850 mechanism for an image recipe and you should use it
5851 with care to avoid ordering issues.
5852 <note>
5853 When working with an
5854 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
5855 image, do not use the <filename>IMAGE_INSTALL</filename>
5856 variable to specify packages for installation.
5857 Instead, use the
5858 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005859 variable, which allows the initial RAM filesystem
5860 (initramfs) recipe to use a fixed set of packages and
5861 not be affected by <filename>IMAGE_INSTALL</filename>.
5862 For information on creating an initramfs, see the
5863 "<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 -05005864 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005865 </note>
5866 </para>
5867
5868 <para>
5869 Image recipes set <filename>IMAGE_INSTALL</filename>
5870 to specify the packages to install into an image through
5871 <filename>image.bbclass</filename>.
5872 Additionally, "helper" classes exist, such as
5873 <filename>core-image.bbclass</filename>, that can take
5874 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
5875 lists and turn these into auto-generated entries in
5876 <filename>IMAGE_INSTALL</filename> in addition to its
5877 default contents.
5878 </para>
5879
5880 <para>
5881 Using <filename>IMAGE_INSTALL</filename> with the
5882 <filename>+=</filename> operator from the
5883 <filename>/conf/local.conf</filename> file or from within
5884 an image recipe is not recommended as it can cause ordering
5885 issues.
5886 Since <filename>core-image.bbclass</filename> sets
5887 <filename>IMAGE_INSTALL</filename> to a default value using
5888 the <filename>?=</filename> operator, using a
5889 <filename>+=</filename> operation against
5890 <filename>IMAGE_INSTALL</filename> will result in
5891 unexpected behavior when used in
5892 <filename>conf/local.conf</filename>.
5893 Furthermore, the same operation from within an image
5894 recipe may or may not succeed depending on the specific
5895 situation.
5896 In both these cases, the behavior is contrary to how most
5897 users expect the <filename>+=</filename> operator to work.
5898 </para>
5899
5900 <para>
5901 When you use this variable, it is best to use it as follows:
5902 <literallayout class='monospaced'>
5903 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
5904 </literallayout>
5905 Be sure to include the space between the quotation character
5906 and the start of the package name or names.
5907 </para>
5908 </glossdef>
5909 </glossentry>
5910
5911 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
5912 <info>
5913 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
5914 </info>
5915 <glossdef>
5916 <para role="glossdeffirst">
5917<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5918 Specifies the list of locales to install into the image
5919 during the root filesystem construction process.
5920 The OpenEmbedded build system automatically splits locale
5921 files, which are used for localization, into separate
5922 packages.
5923 Setting the <filename>IMAGE_LINGUAS</filename> variable
5924 ensures that any locale packages that correspond to packages
5925 already selected for installation into the image are also
5926 installed.
5927 Here is an example:
5928 <literallayout class='monospaced'>
5929 IMAGE_LINGUAS = "pt-br de-de"
5930 </literallayout>
5931 </para>
5932
5933 <para>
5934 In this example, the build system ensures any Brazilian
5935 Portuguese and German locale files that correspond to
5936 packages in the image are installed (i.e.
5937 <filename>*-locale-pt-br</filename>
5938 and <filename>*-locale-de-de</filename> as well as
5939 <filename>*-locale-pt</filename>
5940 and <filename>*-locale-de</filename>, since some software
5941 packages only provide locale files by language and not by
5942 country-specific language).
5943 </para>
5944
5945 <para>
5946 See the
5947 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
5948 variable for information on generating GLIBC locales.
5949 </para>
5950 </glossdef>
5951 </glossentry>
5952
5953 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
5954 <info>
5955 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
5956 </info>
5957 <glossdef>
5958 <para role="glossdeffirst">
5959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5960 The manifest file for the image.
5961 This file lists all the installed packages that make up
5962 the image.
5963 The file contains package information on a line-per-package
5964 basis as follows:
5965 <literallayout class='monospaced'>
5966 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
5967 </literallayout>
5968 </para>
5969
5970 <para>
5971 The
5972 <link linkend='ref-classes-image'><filename>image</filename></link>
5973 class defines the manifest file as follows:
5974 <literallayout class='monospaced'>
5975 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
5976 </literallayout>
5977 The location is derived using the
5978 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
5979 and
5980 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
5981 variables.
5982 You can find information on how the image
5983 is created in the
5984 "<link linkend='image-generation-dev-environment'>Image Generation</link>"
5985 section.
5986 </para>
5987 </glossdef>
5988 </glossentry>
5989
5990 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
5991 <info>
5992 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
5993 </info>
5994 <glossdef>
5995 <para role="glossdeffirst">
5996<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5997 The name of the output image files minus the extension.
5998 This variable is derived using the
5999 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
6000 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6001 and
6002 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6003 variables:
6004 <literallayout class='monospaced'>
6005 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
6006 </literallayout>
6007 </para>
6008 </glossdef>
6009 </glossentry>
6010
6011 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
6012 <info>
6013 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."
6014 </info>
6015 <glossdef>
6016 <para role="glossdeffirst">
6017<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6018 Defines a multiplier that the build system applies to the initial image
6019 size for cases when the multiplier times the returned disk usage value
6020 for the image is greater than the sum of
6021 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6022 and
6023 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
6024 The result of the multiplier applied to the initial image size creates
6025 free disk space in the image as overhead.
6026 By default, the build process uses a multiplier of 1.3 for this variable.
6027 This default value results in 30% free disk space added to the image when this
6028 method is used to determine the final generated image size.
6029 You should be aware that post install scripts and the package management
6030 system uses disk space inside this overhead area.
6031 Consequently, the multiplier does not produce an image with
6032 all the theoretical free disk space.
6033 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6034 for information on how the build system determines the overall image size.
6035 </para>
6036
6037 <para>
6038 The default 30% free disk space typically gives the image enough room to boot
6039 and allows for basic post installs while still leaving a small amount of
6040 free disk space.
6041 If 30% free space is inadequate, you can increase the default value.
6042 For example, the following setting gives you 50% free space added to the image:
6043 <literallayout class='monospaced'>
6044 IMAGE_OVERHEAD_FACTOR = "1.5"
6045 </literallayout>
6046 </para>
6047
6048 <para>
6049 Alternatively, you can ensure a specific amount of free disk space is added
6050 to the image by using the
6051 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6052 variable.
6053 </para>
6054 </glossdef>
6055 </glossentry>
6056
6057 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
6058 <info>
6059 IMAGE_PKGTYPE[doc] = "Defines the package type (DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
6060 </info>
6061 <glossdef>
6062 <para role="glossdeffirst">
6063<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6064 Defines the package type (DEB, RPM, IPK, or TAR) used
6065 by the OpenEmbedded build system.
6066 The variable is defined appropriately by the
6067 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
6068 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
6069 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
6070 or
6071 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
6072 class.
6073 <note><title>Warning</title>
6074 The <filename>package_tar</filename> class is broken
6075 and is not supported.
6076 It is recommended that you do not use it.
6077 </note>
6078 </para>
6079
6080 <para>
6081 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006082 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006083 and
6084 <link linkend='ref-classes-image'><filename>image</filename></link>
6085 classes use the <filename>IMAGE_PKGTYPE</filename> for
6086 packaging up images and SDKs.
6087 </para>
6088
6089 <para>
6090 You should not set the <filename>IMAGE_PKGTYPE</filename>
6091 manually.
6092 Rather, the variable is set indirectly through the
6093 appropriate
6094 <link linkend='ref-classes-package'><filename>package_*</filename></link>
6095 class using the
6096 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
6097 variable.
6098 The OpenEmbedded build system uses the first package type
6099 (e.g. DEB, RPM, or IPK) that appears with the variable
6100 <note>
6101 Files using the <filename>.tar</filename> format are
6102 never used as a substitute packaging format for DEB,
6103 RPM, and IPK formatted files for your image or SDK.
6104 </note>
6105 </para>
6106 </glossdef>
6107 </glossentry>
6108
6109 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
6110 <info>
6111 IMAGE_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the final image output files."
6112 </info>
6113 <glossdef>
6114 <para role="glossdeffirst">
6115<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6116 Specifies a list of functions to call once the
6117 OpenEmbedded build system has created the final image
6118 output files.
6119 You can specify functions separated by semicolons:
6120 <literallayout class='monospaced'>
6121 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6122 </literallayout>
6123 </para>
6124
6125 <para>
6126 If you need to pass the root filesystem path to a command
6127 within the function, you can use
6128 <filename>${IMAGE_ROOTFS}</filename>, which points to
6129 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006130 See the
6131 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6132 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006133 </para>
6134 </glossdef>
6135 </glossentry>
6136
6137 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
6138 <info>
6139 IMAGE_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the final image output files."
6140 </info>
6141 <glossdef>
6142 <para role="glossdeffirst">
6143<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6144 Specifies a list of functions to call before the
6145 OpenEmbedded build system has created the final image
6146 output files.
6147 You can specify functions separated by semicolons:
6148 <literallayout class='monospaced'>
6149 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6150 </literallayout>
6151 </para>
6152
6153 <para>
6154 If you need to pass the root filesystem path to a command
6155 within the function, you can use
6156 <filename>${IMAGE_ROOTFS}</filename>, which points to
6157 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006158 See the
6159 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6160 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006161 </para>
6162 </glossdef>
6163 </glossentry>
6164
6165 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
6166 <info>
6167 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
6168 </info>
6169 <glossdef>
6170 <para role="glossdeffirst">
6171<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6172 The location of the root filesystem while it is under
6173 construction (i.e. during the
6174 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
6175 task).
6176 This variable is not configurable.
6177 Do not change it.
6178 </para>
6179 </glossdef>
6180 </glossentry>
6181
6182 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
6183 <info>
6184 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
6185 </info>
6186 <glossdef>
6187 <para role="glossdeffirst">
6188<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6189 Specifies the alignment for the output image file in
6190 Kbytes.
6191 If the size of the image is not a multiple of
6192 this value, then the size is rounded up to the nearest
6193 multiple of the value.
6194 The default value is "1".
6195 See
6196 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
6197 for additional information.
6198 </para>
6199 </glossdef>
6200 </glossentry>
6201
6202 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
6203 <info>
6204 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
6205 </info>
6206 <glossdef>
6207 <para role="glossdeffirst">
6208<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6209 Defines additional free disk space created in the image in Kbytes.
6210 By default, this variable is set to "0".
6211 This free disk space is added to the image after the build system determines
6212 the image size as described in
6213 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
6214 </para>
6215
6216 <para>
6217 This variable is particularly useful when you want to ensure that a
6218 specific amount of free disk space is available on a device after an image
6219 is installed and running.
6220 For example, to be sure 5 Gbytes of free disk space is available, set the
6221 variable as follows:
6222 <literallayout class='monospaced'>
6223 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
6224 </literallayout>
6225 </para>
6226
6227 <para>
6228 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
6229 of extra space with the line:
6230 <literallayout class='monospaced'>
6231 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
6232 </literallayout>
6233 </para>
6234 </glossdef>
6235 </glossentry>
6236
6237 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
6238 <info>
6239 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
6240 </info>
6241 <glossdef>
6242 <para role="glossdeffirst">
6243<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6244 Defines the size in Kbytes for the generated image.
6245 The OpenEmbedded build system determines the final size for the generated
6246 image using an algorithm that takes into account the initial disk space used
6247 for the generated image, a requested size for the image, and requested
6248 additional free disk space to be added to the image.
6249 Programatically, the build system determines the final size of the
6250 generated image as follows:
6251 <literallayout class='monospaced'>
6252 if (image-du * overhead) &lt; rootfs-size:
6253 internal-rootfs-size = rootfs-size + xspace
6254 else:
6255 internal-rootfs-size = (image-du * overhead) + xspace
6256
6257 where:
6258
6259 image-du = Returned value of the du command on
6260 the image.
6261
6262 overhead = IMAGE_OVERHEAD_FACTOR
6263
6264 rootfs-size = IMAGE_ROOTFS_SIZE
6265
6266 internal-rootfs-size = Initial root filesystem
6267 size before any modifications.
6268
6269 xspace = IMAGE_ROOTFS_EXTRA_SPACE
6270 </literallayout>
6271 </para>
6272
6273 <para>
6274 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
6275 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
6276 variables for related information.
6277<!-- In the above example, <filename>overhead</filename> is defined by the
6278 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
6279 variable, <filename>xspace</filename> is defined by the
6280 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6281 variable, and <filename>du</filename> is the results of the disk usage command
6282 on the initially generated image. -->
6283 </para>
6284 </glossdef>
6285 </glossentry>
6286
6287 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
6288 <info>
6289 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
6290 </info>
6291 <glossdef>
6292 <para role="glossdeffirst">
6293<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6294 Specifies a dependency from one image type on another.
6295 Here is an example from the
6296 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6297 class:
6298 <literallayout class='monospaced'>
6299 IMAGE_TYPEDEP_live = "ext3"
6300 </literallayout>
6301 </para>
6302
6303 <para>
6304 In the previous example, the variable ensures that when
6305 "live" is listed with the
6306 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6307 variable, the OpenEmbedded build system produces an
6308 <filename>ext3</filename> image first since one of the
6309 components of the live
6310 image is an <filename>ext3</filename>
6311 formatted partition containing the root
6312 filesystem.
6313 </para>
6314 </glossdef>
6315 </glossentry>
6316
6317 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
6318 <info>
6319 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
6320 </info>
6321 <glossdef>
6322 <para role="glossdeffirst">
6323<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6324 Specifies the complete list of supported image types
6325 by default:
6326 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006327 btrfs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006328 cpio
6329 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006330 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006331 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006332 cpio.xz
6333 cramfs
6334 elf
6335 ext2
6336 ext2.bz2
6337 ext2.gz
6338 ext2.lzma
6339 ext3
6340 ext3.gz
6341 ext4
6342 ext4.gz
6343 hdddirect
6344 hddimg
6345 iso
6346 jffs2
6347 jffs2.sum
6348 multiubi
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006349 squashfs
6350 squashfs-lzo
6351 squashfs-xz
6352 tar
6353 tar.bz2
6354 tar.gz
6355 tar.lz4
6356 tar.xz
6357 ubi
6358 ubifs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006359 wic
6360 wic.bz2
6361 wic.gz
6362 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006363 </literallayout>
6364 </para>
6365
6366 <para>
6367 For more information about these types of images, see
6368 <filename>meta/classes/image_types*.bbclass</filename>
6369 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006370 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006371 </para>
6372 </glossdef>
6373 </glossentry>
6374
6375 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
6376 <info>
6377 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
6378 </info>
6379 <glossdef>
6380 <para role="glossdeffirst">
6381<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6382 Helps define the recipe revision for recipes that share
6383 a common <filename>include</filename> file.
6384 You can think of this variable as part of the recipe revision
6385 as set from within an include file.
6386 </para>
6387
6388 <para>
6389 Suppose, for example, you have a set of recipes that
6390 are used across several projects.
6391 And, within each of those recipes the revision
6392 (its <link linkend='var-PR'><filename>PR</filename></link>
6393 value) is set accordingly.
6394 In this case, when the revision of those recipes changes,
6395 the burden is on you to find all those recipes and
6396 be sure that they get changed to reflect the updated
6397 version of the recipe.
6398 In this scenario, it can get complicated when recipes
6399 that are used in many places and provide common functionality
6400 are upgraded to a new revision.
6401 </para>
6402
6403 <para>
6404 A more efficient way of dealing with this situation is
6405 to set the <filename>INC_PR</filename> variable inside
6406 the <filename>include</filename> files that the recipes
6407 share and then expand the <filename>INC_PR</filename>
6408 variable within the recipes to help
6409 define the recipe revision.
6410 </para>
6411
6412 <para>
6413 The following provides an example that shows how to use
6414 the <filename>INC_PR</filename> variable
6415 given a common <filename>include</filename> file that
6416 defines the variable.
6417 Once the variable is defined in the
6418 <filename>include</filename> file, you can use the
6419 variable to set the <filename>PR</filename> values in
6420 each recipe.
6421 You will notice that when you set a recipe's
6422 <filename>PR</filename> you can provide more granular
6423 revisioning by appending values to the
6424 <filename>INC_PR</filename> variable:
6425 <literallayout class='monospaced'>
6426recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
6427recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
6428recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
6429recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
6430 </literallayout>
6431 The first line of the example establishes the baseline
6432 revision to be used for all recipes that use the
6433 <filename>include</filename> file.
6434 The remaining lines in the example are from individual
6435 recipes and show how the <filename>PR</filename> value
6436 is set.
6437 </para>
6438 </glossdef>
6439 </glossentry>
6440
6441 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
6442 <info>
6443 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
6444 </info>
6445 <glossdef>
6446 <para role="glossdeffirst">
6447<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6448 Specifies a space-separated list of license names
6449 (as they would appear in
6450 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
6451 that should be excluded from the build.
6452 Recipes that provide no alternatives to listed incompatible
6453 licenses are not built.
6454 Packages that are individually licensed with the specified
6455 incompatible licenses will be deleted.
6456 </para>
6457
6458 <note>
6459 This functionality is only regularly tested using
6460 the following setting:
6461 <literallayout class='monospaced'>
6462 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
6463 </literallayout>
6464 Although you can use other settings, you might be required
6465 to remove dependencies on or provide alternatives to
6466 components that are required to produce a functional system
6467 image.
6468 </note>
6469 </glossdef>
6470 </glossentry>
6471
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006472 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
6473 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006474 INHERIT[doc] = "Causes the named class or classes to be inherited globally."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006475 </info>
6476 <glossdef>
6477 <para role="glossdeffirst">
6478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006479 Causes the named class or classes to be inherited globally.
6480 Anonymous functions in the class or classes
6481 are not executed for the
6482 base configuration and in each individual recipe.
6483 The OpenEmbedded build system ignores changes to
6484 <filename>INHERIT</filename> in individual recipes.
6485 </para>
6486
6487 <para>
6488 For more information on <filename>INHERIT</filename>, see
6489 the
6490 "<ulink url="&YOCTO_DOCS_BB_URL;#inherit-configuration-directive"><filename>INHERIT</filename> Configuration Directive</ulink>"
6491 section in the Yocto Project Bitbake User Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006492 </para>
6493 </glossdef>
6494 </glossentry>
6495
6496 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
6497 <info>
6498 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6499 </info>
6500 <glossdef>
6501 <para role="glossdeffirst">
6502<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6503 Lists classes that will be inherited at the
6504 distribution level.
6505 It is unlikely that you want to edit this variable.
6506 </para>
6507
6508 <para>
6509 The default value of the variable is set as follows in the
6510 <filename>meta/conf/distro/defaultsetup.conf</filename>
6511 file:
6512 <literallayout class='monospaced'>
6513 INHERIT_DISTRO ?= "debian devshell sstate license"
6514 </literallayout>
6515 </para>
6516 </glossdef>
6517 </glossentry>
6518
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006519 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
6520 <info>
6521 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
6522 </info>
6523 <glossdef>
6524 <para role="glossdeffirst">
6525<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6526 Prevents the default dependencies, namely the C compiler
6527 and standard C library (libc), from being added to
6528 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
6529 This variable is usually used within recipes that do not
6530 require any compilation using the C compiler.
6531 </para>
6532
6533 <para>
6534 Set the variable to "1" to prevent the default dependencies
6535 from being added.
6536 </para>
6537 </glossdef>
6538 </glossentry>
6539
6540 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
6541 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006542 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 -05006543 </info>
6544 <glossdef>
6545 <para role="glossdeffirst">
6546<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6547 Prevents the OpenEmbedded build system from splitting
6548 out debug information during packaging.
6549 By default, the build system splits out debugging
6550 information during the
6551 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
6552 task.
6553 For more information on how debug information is split out,
6554 see the
6555 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
6556 variable.
6557 </para>
6558
6559 <para>
6560 To prevent the build system from splitting out
6561 debug information during packaging, set the
6562 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
6563 as follows:
6564 <literallayout class='monospaced'>
6565 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6566 </literallayout>
6567 </para>
6568 </glossdef>
6569 </glossentry>
6570
6571 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
6572 <info>
6573 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
6574 </info>
6575 <glossdef>
6576 <para role="glossdeffirst">
6577<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006578 If set to "1", causes the build to not strip binaries in
6579 resulting packages and prevents the
6580 <filename>-dbg</filename> package from containing the
6581 source files.
6582 </para>
6583
6584 <para>
6585 By default, the OpenEmbedded build system strips
6586 binaries and puts the debugging symbols into
6587 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
6588 Consequently, you should not set
6589 <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
6590 to debug in general.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006591 </para>
6592 </glossdef>
6593 </glossentry>
6594
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006595 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6596 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006597 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 -05006598 </info>
6599 <glossdef>
6600 <para role="glossdeffirst">
6601<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6602 Defines the format for the output image of an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006603 RAM filesystem (initramfs), which is used during boot.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006604 Supported formats are the same as those supported by the
6605 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6606 variable.
6607 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006608
6609 <para>
6610 The default value of this variable, which is set in the
6611 <filename>meta/conf/bitbake.conf</filename> configuration
6612 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006613 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006614 is "cpio.gz".
6615 The Linux kernel's initramfs mechanism, as opposed to the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006616 initial RAM filesystem
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006617 <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
6618 mechanism, expects an optionally compressed cpio
6619 archive.
6620 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006621 </glossdef>
6622 </glossentry>
6623
6624 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6625 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006626 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 -05006627 </info>
6628 <glossdef>
6629 <para role="glossdeffirst">
6630<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006631 Specifies the
6632 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
6633 name of an image recipe that is used to build an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006634 RAM filesystem (initramfs) image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006635 In other words, the <filename>INITRAMFS_IMAGE</filename>
6636 variable causes an additional recipe to be built as
6637 a dependency to whatever root filesystem recipe you
6638 might be using (e.g. <filename>core-image-sato</filename>).
6639 The initramfs image recipe you provide should set
6640 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6641 to
6642 <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
6643 </para>
6644
6645 <para>
6646 An initramfs image provides a temporary root filesystem
6647 used for early system initialization (e.g. loading of
6648 modules needed to locate and mount the "real" root
6649 filesystem).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006650 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006651 See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
6652 recipe in the
6653 <link linkend='source-directory'>Source Directory</link>
6654 for an example initramfs recipe.
6655 To select this sample recipe as the one built
6656 to provide the initramfs image,
6657 set <filename>INITRAMFS_IMAGE</filename> to
6658 "core-image-minimal-initramfs".
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006659 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006660 </para>
6661
6662 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006663 You can also find more information by referencing the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006664 <filename>meta-poky/conf/local.conf.sample.extended</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006665 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006666 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006667 the
6668 <link linkend='ref-classes-image'><filename>image</filename></link>
6669 class, and the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006670 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006671 class to see how to use the
6672 <filename>INITRAMFS_IMAGE</filename> variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006673 </para>
6674
6675 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006676 If <filename>INITRAMFS_IMAGE</filename> is empty, which is
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006677 the default, then no initramfs image is built.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006678 </para>
6679
6680 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006681 For more information, you can also see the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006682 <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
6683 variable, which allows the generated image to be bundled
6684 inside the kernel image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006685 Additionally, for information on creating an initramfs
6686 image, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006687 "<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 -05006688 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006689 </para>
6690 </glossdef>
6691 </glossentry>
6692
6693 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6694 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006695 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 -05006696 </info>
6697 <glossdef>
6698 <para role="glossdeffirst">
6699<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6700 Controls whether or not the image recipe specified by
6701 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006702 is run through an extra pass
6703 (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
6704 during kernel compilation in order to build a single binary
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006705 that contains both the kernel image and the initial RAM
6706 filesystem (initramfs) image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006707 This makes use of the
6708 <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
6709 kernel feature.
6710 <note>
6711 Using an extra compilation pass to bundle the initramfs
6712 avoids a circular dependency between the kernel recipe and
6713 the initramfs recipe should the initramfs include kernel
6714 modules.
6715 Should that be the case, the initramfs recipe depends on
6716 the kernel for the kernel modules, and the kernel depends
6717 on the initramfs recipe since the initramfs is bundled
6718 inside the kernel image.
6719 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006720 </para>
6721
6722 <para>
6723 The combined binary is deposited into the
6724 <filename>tmp/deploy</filename> directory, which is part
6725 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006726 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006727 </para>
6728
6729 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006730 Setting the variable to "1" in a configuration file causes the
6731 OpenEmbedded build system to generate a kernel image with the
6732 initramfs specified in
6733 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
6734 bundled within:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006735 <literallayout class='monospaced'>
6736 INITRAMFS_IMAGE_BUNDLE = "1"
6737 </literallayout>
6738 By default, the
6739 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6740 class sets this variable to a null string as follows:
6741 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006742 INITRAMFS_IMAGE_BUNDLE ?= ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006743 </literallayout>
6744 <note>
6745 You must set the
6746 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6747 a configuration file.
6748 You cannot set the variable in a recipe file.
6749 </note>
6750 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006751 <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 -05006752 file for additional information.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006753 Also, for information on creating an initramfs, see the
6754 "<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 -05006755 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006756 </para>
6757 </glossdef>
6758 </glossentry>
6759
6760 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6761 <info>
6762 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6763 </info>
6764 <glossdef>
6765 <para role="glossdeffirst">
6766<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6767 Indicates list of filesystem images to concatenate and use
6768 as an initial RAM disk (<filename>initrd</filename>).
6769 </para>
6770
6771 <para>
6772 The <filename>INITRD</filename> variable is an optional
6773 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006774 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006775 class.
6776 </para>
6777 </glossdef>
6778 </glossentry>
6779
6780 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6781 <info>
6782 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."
6783 </info>
6784 <glossdef>
6785 <para role="glossdeffirst">
6786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6787 When building a "live" bootable image (i.e. when
6788 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6789 contains "live"), <filename>INITRD_IMAGE</filename>
6790 specifies the image recipe that should be built
6791 to provide the initial RAM disk image.
6792 The default value is "core-image-minimal-initramfs".
6793 </para>
6794
6795 <para>
6796 See the
6797 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6798 class for more information.
6799 </para>
6800 </glossdef>
6801 </glossentry>
6802
6803 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6804 <info>
6805 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6806 </info>
6807 <glossdef>
6808 <para role="glossdeffirst">
6809<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6810 The filename of the initialization script as installed to
6811 <filename>${sysconfdir}/init.d</filename>.
6812 </para>
6813
6814 <para>
6815 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6816 The variable is mandatory.
6817 </para>
6818 </glossdef>
6819 </glossentry>
6820
6821 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
6822 <info>
6823 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."
6824 </info>
6825 <glossdef>
6826 <para role="glossdeffirst">
6827<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6828 A list of the packages that contain initscripts.
6829 If multiple packages are specified, you need to append the package name
6830 to the other <filename>INITSCRIPT_*</filename> as an override.
6831 </para>
6832
6833 <para>
6834 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6835 The variable is optional and defaults to the
6836 <link linkend='var-PN'><filename>PN</filename></link> variable.
6837 </para>
6838 </glossdef>
6839 </glossentry>
6840
6841 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
6842 <info>
6843 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."
6844 </info>
6845 <glossdef>
6846 <para role="glossdeffirst">
6847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6848 Specifies the options to pass to <filename>update-rc.d</filename>.
6849 Here is an example:
6850 <literallayout class='monospaced'>
6851 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
6852 </literallayout>
6853 </para>
6854
6855 <para>
6856 In this example, the script has a runlevel of 99,
6857 starts the script in initlevels 2 and 5, and
6858 stops the script in levels 0, 1 and 6.
6859 </para>
6860
6861 <para>
6862 The variable's default value is "defaults", which is
6863 set in the
6864 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
6865 class.
6866 </para>
6867
6868 <para>
6869 The value in
6870 <filename>INITSCRIPT_PARAMS</filename> is passed through
6871 to the <filename>update-rc.d</filename> command.
6872 For more information on valid parameters, please see the
6873 <filename>update-rc.d</filename> manual page at
6874 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
6875 </para>
6876 </glossdef>
6877 </glossentry>
6878
6879 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
6880 <info>
6881 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
6882 </info>
6883 <glossdef>
6884 <para role="glossdeffirst">
6885<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6886 Specifies the QA checks to skip for a specific package
6887 within a recipe.
6888 For example, to skip the check for symbolic link
6889 <filename>.so</filename> files in the main package of a
6890 recipe, add the following to the recipe.
6891 The package name override must be used, which in this
6892 example is <filename>${PN}</filename>:
6893 <literallayout class='monospaced'>
6894 INSANE_SKIP_${PN} += "dev-so"
6895 </literallayout>
6896 </para>
6897
6898 <para>
6899 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
6900 section for a list of the valid QA checks you can
6901 specify using this variable.
6902 </para>
6903 </glossdef>
6904 </glossentry>
6905
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006906 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
6907 <info>
6908 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
6909 </info>
6910 <glossdef>
6911 <para role="glossdeffirst">
6912<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6913 By default, the <filename>tzdata</filename> recipe packages
6914 an <filename>/etc/timezone</filename> file.
6915 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
6916 variable to "0" at the configuration level to disable this
6917 behavior.
6918 </para>
6919 </glossdef>
6920 </glossentry>
6921
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006922 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
6923 <info>
6924 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
6925 </info>
6926 <glossdef>
6927 <para role="glossdeffirst">
6928<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6929 When the IPK backend is in use and package management
6930 is enabled on the target, you can use this variable to
6931 set up <filename>opkg</filename> in the target image
6932 to point to package feeds on a nominated server.
6933 Once the feed is established, you can perform
6934 installations or upgrades using the package manager
6935 at runtime.
6936 </para>
6937 </glossdef>
6938 </glossentry>
6939
6940<!--
6941 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
6942 <glossdef>
6943 <para>
6944 An environment variable that defines the directory where
6945 post installation hooks are installed for the
6946 post install environment.
6947 This variable is fixed as follows:
6948 <literallayout class='monospaced'>
6949 ${WORKDIR}/intercept_scripts
6950 </literallayout>
6951 </para>
6952
6953 <para>
6954 After installation of a target's root filesystem,
6955 post installation scripts, which are essentially bash scripts,
6956 are all executed just a single time.
6957 Limiting execution of these scripts minimizes installation
6958 time that would be lengthened due to certain packages
6959 triggering redundant operations.
6960 For example, consider the installation of font packages
6961 as a common example.
6962 Without limiting the execution of post installation scripts,
6963 all font directories would be rescanned to create the
6964 cache after each individual font package was installed.
6965 </para>
6966
6967 <para>
6968 Do not edit the <filename>INTERCEPT_DIR</filename>
6969 variable.
6970 </para>
6971 </glossdef>
6972 </glossentry>
6973-->
6974
6975 </glossdiv>
6976
6977<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
6978<!-- </glossdiv>-->
6979
6980 <glossdiv id='var-glossary-k'><title>K</title>
6981
6982 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
6983 <info>
6984 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
6985 </info>
6986 <glossdef>
6987 <para role="glossdeffirst">
6988<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6989 Defines the kernel architecture used when assembling
6990 the configuration.
6991 Architectures supported for this release are:
6992 <literallayout class='monospaced'>
6993 powerpc
6994 i386
6995 x86_64
6996 arm
6997 qemu
6998 mips
6999 </literallayout>
7000 </para>
7001
7002 <para>
7003 You define the <filename>KARCH</filename> variable in the
7004 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7005 </para>
7006 </glossdef>
7007 </glossentry>
7008
7009 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
7010 <info>
7011 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."
7012 </info>
7013 <glossdef>
7014 <para role="glossdeffirst">
7015<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7016 A regular expression used by the build process to explicitly
7017 identify the kernel branch that is validated, patched,
7018 and configured during a build.
7019 You must set this variable to ensure the exact kernel
7020 branch you want is being used by the build process.
7021 </para>
7022
7023 <para>
7024 Values for this variable are set in the kernel's recipe
7025 file and the kernel's append file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007026 For example, if you are using the
7027 <filename>linux-yocto_4.12</filename> kernel, the kernel
7028 recipe file is the
7029 <filename>meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007030 file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007031 <filename>KBRANCH</filename> is set as follows in that
7032 kernel recipe file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007033 <literallayout class='monospaced'>
7034 KBRANCH ?= "standard/base"
7035 </literallayout>
7036 </para>
7037
7038 <para>
7039 This variable is also used from the kernel's append file
7040 to identify the kernel branch specific to a particular
7041 machine or target hardware.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007042 Continuing with the previous kernel example, the kernel's
7043 append file (i.e.
7044 <filename>linux-yocto_4.12.bbappend</filename>) is located
7045 in the BSP layer for a given machine.
7046 For example, the append file for the Beaglebone,
7047 EdgeRouter, and generic versions of both 32 and 64-bit IA
7048 machines (<filename>meta-yocto-bsp</filename>) is named
7049 <filename>meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend</filename>.
7050 Here are the related statements from that append file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007051 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007052 KBRANCH_genericx86 = "standard/base"
7053 KBRANCH_genericx86-64 = "standard/base"
7054 KBRANCH_edgerouter = "standard/edgerouter"
7055 KBRANCH_beaglebone = "standard/beaglebone"
7056 KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007057 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007058 The <filename>KBRANCH</filename> statements identify
7059 the kernel branch to use when building for each
7060 supported BSP.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007061 </para>
7062 </glossdef>
7063 </glossentry>
7064
7065 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
7066 <info>
7067 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
7068 </info>
7069 <glossdef>
7070 <para role="glossdeffirst">
7071<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7072 When used with the
7073 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
7074 class, specifies an "in-tree" kernel configuration file
7075 for use during a kernel build.
7076 </para>
7077
7078 <para>
7079 Typically, when using a <filename>defconfig</filename> to
7080 configure a kernel during a build, you place the
7081 file in your layer in the same manner as you would
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007082 place patch files and configuration fragment files (i.e.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007083 "out-of-tree").
7084 However, if you want to use a <filename>defconfig</filename>
7085 file that is part of the kernel tree (i.e. "in-tree"),
7086 you can use the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007087 <filename>KBUILD_DEFCONFIG</filename> variable and append
7088 the
7089 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
7090 variable to point to the <filename>defconfig</filename>
7091 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007092 </para>
7093
7094 <para>
7095 To use the variable, set it in the append file for your
7096 kernel recipe using the following form:
7097 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007098 KBUILD_DEFCONFIG_<replaceable>KMACHINE</replaceable> ?= <replaceable>defconfig_file</replaceable>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007099 </literallayout>
7100 Here is an example from a "raspberrypi2"
7101 <filename>KMACHINE</filename> build that uses a
7102 <filename>defconfig</filename> file named
7103 "bcm2709_defconfig":
7104 <literallayout class='monospaced'>
7105 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
7106 </literallayout>
7107 As an alternative, you can use the following within your
7108 append file:
7109 <literallayout class='monospaced'>
7110 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
7111 </literallayout>
7112 For more information on how to use the
7113 <filename>KBUILD_DEFCONFIG</filename> variable, see the
7114 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-an-in-tree-defconfig-file'>Using an "In-Tree" <filename>defconfig</filename> File</ulink>"
7115 section.
7116 </para>
7117 </glossdef>
7118 </glossentry>
7119
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007120 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
7121 <info>
7122 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
7123 </info>
7124 <glossdef>
7125 <para role="glossdeffirst">
7126<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7127 Specifies an alternate kernel image type for creation in
7128 addition to the kernel image type specified using the
7129 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
7130 variable.
7131 </para>
7132 </glossdef>
7133 </glossentry>
7134
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007135 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
7136 <info>
7137 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
7138 </info>
7139 <glossdef>
7140 <para role="glossdeffirst">
7141<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7142 A list of classes defining kernel image types that the
7143 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7144 class should inherit.
7145 You typically append this variable to enable extended image
7146 types.
7147 An example is the "kernel-fitimage", which enables
7148 fitImage support and resides in
7149 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
7150 You can register custom kernel image types with the
7151 <filename>kernel</filename> class using this variable.
7152 </para>
7153 </glossdef>
7154 </glossentry>
7155
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007156 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
7157 <info>
7158 KERNEL_DEVICETREE[doc] = "Specifies the name of the generated Linux kernel device tree (i.e. the <filename>.dtb</filename>) file."
7159 </info>
7160 <glossdef>
7161 <para role="glossdeffirst">
7162<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7163 Specifies the name of the generated Linux kernel device tree
7164 (i.e. the <filename>.dtb</filename>) file.
7165 <note>
7166 Legacy support exists for specifying the full path
7167 to the device tree.
7168 However, providing just the <filename>.dtb</filename>
7169 file is preferred.
7170 </note>
7171 In order to use this variable, you must have the include
7172 files in your kernel recipe:
7173 <literallayout class='monospaced'>
7174 require recipes-kernel/linux/linux-dtb.inc
7175 </literallayout>
7176 or
7177 <literallayout class='monospaced'>
7178 require recipes-kernel/linux/linux-yocto.inc
7179 </literallayout>
7180 </para>
7181 </glossdef>
7182 </glossentry>
7183
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007184 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
7185 <info>
7186 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
7187 </info>
7188 <glossdef>
7189 <para role="glossdeffirst">
7190<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7191 Specifies additional <filename>make</filename>
7192 command-line arguments the OpenEmbedded build system
7193 passes on when compiling the kernel.
7194 </para>
7195 </glossdef>
7196 </glossentry>
7197
7198 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
7199 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007200 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 -05007201 </info>
7202 <glossdef>
7203 <para role="glossdeffirst">
7204<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007205 Includes additional kernel metadata.
7206 In the OpenEmbedded build system, the default Board Support
7207 Packages (BSPs)
7208 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007209 is provided through
7210 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007211 and
7212 <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link>
7213 variables.
7214 You can use the <filename>KERNEL_FEATURES</filename>
7215 variable from within the kernel recipe or kernel append
7216 file to further add metadata for all BSPs or specific
7217 BSPs.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007218 </para>
7219
7220 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007221 The metadata you add through this variable includes config
7222 fragments and features descriptions,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007223 which usually includes patches as well as config fragments.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007224 You typically override the
7225 <filename>KERNEL_FEATURES</filename> variable for a
7226 specific machine.
7227 In this way, you can provide validated, but optional,
7228 sets of kernel configurations and features.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007229 </para>
7230
7231 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007232 For example, the following example from the
7233 <filename>linux-yocto-rt_4.12</filename> kernel recipe
7234 adds "netfilter" and "taskstats" features to all BSPs
7235 as well as "virtio" configurations to all QEMU machines.
7236 The last two statements add specific configurations to
7237 targeted machine types:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007238 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007239 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
7240 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
7241 KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
7242 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
7243 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007244 </literallayout></para>
7245 </glossdef>
7246 </glossentry>
7247
7248 <glossentry id='var-KERNEL_IMAGE_BASE_NAME'><glossterm>KERNEL_IMAGE_BASE_NAME</glossterm>
7249 <info>
7250 KERNEL_IMAGE_BASE_NAME[doc] = "The base name of the kernel image."
7251 </info>
7252 <glossdef>
7253 <para role="glossdeffirst">
7254<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7255 The base name of the kernel image.
7256 This variable is set in the
7257 <link linkend='ref-classes-kernel'>kernel</link> class
7258 as follows:
7259 <literallayout class='monospaced'>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007260 KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007261 </literallayout>
7262 </para>
7263
7264 <para>
7265 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007266 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7267 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7268 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7269 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
7270 and
7271 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
7272 variables for additional information.
7273 </para>
7274 </glossdef>
7275 </glossentry>
7276
7277 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
7278 <info>
7279 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
7280 </info>
7281 <glossdef>
7282 <para role="glossdeffirst">
7283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7284 Specifies the maximum size of the kernel image file in
7285 kilobytes.
7286 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
7287 the size of the kernel image file is checked against
7288 the set value during the
7289 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
7290 task.
7291 The task fails if the kernel image file is larger than
7292 the setting.
7293 </para>
7294
7295 <para>
7296 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
7297 target devices that have a limited amount of space in
7298 which the kernel image must be stored.
7299 </para>
7300
7301 <para>
7302 By default, this variable is not set, which means the
7303 size of the kernel image is not checked.
7304 </para>
7305 </glossdef>
7306 </glossentry>
7307
7308 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
7309 <info>
7310 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
7311 </info>
7312 <glossdef>
7313 <para role="glossdeffirst">
7314<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7315 The type of kernel to build for a device, usually set by the
7316 machine configuration files and defaults to "zImage".
7317 This variable is used
7318 when building the kernel and is passed to <filename>make</filename> as the target to
7319 build.
7320 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007321
7322 <para>
7323 If you want to build an alternate kernel image type, use the
7324 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
7325 variable.
7326 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007327 </glossdef>
7328 </glossentry>
7329
7330 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
7331 <info>
7332 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
7333 </info>
7334 <glossdef>
7335 <para role="glossdeffirst">
7336<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7337 Lists kernel modules that need to be auto-loaded during
7338 boot.
7339 <note>
7340 This variable replaces the deprecated
7341 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
7342 variable.
7343 </note>
7344 </para>
7345
7346 <para>
7347 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
7348 variable anywhere that it can be
7349 recognized by the kernel recipe or by an out-of-tree kernel
7350 module recipe (e.g. a machine configuration file, a
7351 distribution configuration file, an append file for the
7352 recipe, or the recipe itself).
7353 </para>
7354
7355 <para>
7356 Specify it as follows:
7357 <literallayout class='monospaced'>
7358 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
7359 </literallayout>
7360 </para>
7361
7362 <para>
7363 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
7364 the OpenEmbedded build system to populate the
7365 <filename>/etc/modules-load.d/modname.conf</filename>
7366 file with the list of modules to be auto-loaded on boot.
7367 The modules appear one-per-line in the file.
7368 Here is an example of the most common use case:
7369 <literallayout class='monospaced'>
7370 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
7371 </literallayout>
7372 </para>
7373
7374 <para>
7375 For information on how to populate the
7376 <filename>modname.conf</filename> file with
7377 <filename>modprobe.d</filename> syntax lines, see the
7378 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
7379 variable.
7380 </para>
7381 </glossdef>
7382 </glossentry>
7383
7384 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
7385 <info>
7386 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."
7387 </info>
7388 <glossdef>
7389 <para role="glossdeffirst">
7390<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7391 Provides a list of modules for which the OpenEmbedded
7392 build system expects to find
7393 <filename>module_conf_</filename><replaceable>modname</replaceable>
7394 values that specify configuration for each of the modules.
7395 For information on how to provide those module
7396 configurations, see the
7397 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
7398 variable.
7399 </para>
7400 </glossdef>
7401 </glossentry>
7402
7403 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
7404 <info>
7405 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)."
7406 </info>
7407 <glossdef>
7408 <para role="glossdeffirst">
7409<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7410 The location of the kernel sources.
7411 This variable is set to the value of the
7412 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7413 within the
7414 <link linkend='ref-classes-module'><filename>module</filename></link>
7415 class.
7416 For information on how this variable is used, see the
7417 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
7418 section.
7419 </para>
7420
7421 <para>
7422 To help maximize compatibility with out-of-tree drivers
7423 used to build modules, the OpenEmbedded build system also
7424 recognizes and uses the
7425 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
7426 variable, which is identical to the
7427 <filename>KERNEL_PATH</filename> variable.
7428 Both variables are common variables used by external
7429 Makefiles to point to the kernel source directory.
7430 </para>
7431 </glossdef>
7432 </glossentry>
7433
7434 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
7435 <info>
7436 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)."
7437 </info>
7438 <glossdef>
7439 <para role="glossdeffirst">
7440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7441 The location of the kernel sources.
7442 This variable is set to the value of the
7443 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7444 within the
7445 <link linkend='ref-classes-module'><filename>module</filename></link>
7446 class.
7447 For information on how this variable is used, see the
7448 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
7449 section.
7450 </para>
7451
7452 <para>
7453 To help maximize compatibility with out-of-tree drivers
7454 used to build modules, the OpenEmbedded build system also
7455 recognizes and uses the
7456 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
7457 variable, which is identical to the
7458 <filename>KERNEL_SRC</filename> variable.
7459 Both variables are common variables used by external
7460 Makefiles to point to the kernel source directory.
7461 </para>
7462 </glossdef>
7463 </glossentry>
7464
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007465 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
7466 <info>
7467 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
7468 </info>
7469 <glossdef>
7470 <para role="glossdeffirst">
7471<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7472 Specifies the version of the kernel as extracted from
7473 <filename>version.h</filename> or
7474 <filename>utsrelease.h</filename> within the kernel sources.
7475 Effects of setting this variable do not take affect until
7476 the kernel has been configured.
7477 Consequently, attempting to refer to this variable in
7478 contexts prior to configuration will not work.
7479 </para>
7480 </glossdef>
7481 </glossentry>
7482
7483 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
7484 <info>
7485 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
7486 </info>
7487 <glossdef>
7488 <para role="glossdeffirst">
7489<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7490 Specifies whether the data referenced through
7491 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
7492 is needed or not.
7493 The <filename>KERNELDEPMODDEPEND</filename> does not
7494 control whether or not that data exists,
7495 but simply whether or not it is used.
7496 If you do not need to use the data, set the
7497 <filename>KERNELDEPMODDEPEND</filename> variable in your
7498 <filename>initramfs</filename> recipe.
7499 Setting the variable there when the data is not needed
7500 avoids a potential dependency loop.
7501 </para>
7502 </glossdef>
7503 </glossentry>
7504
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007505 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
7506 <info>
7507 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."
7508 </info>
7509 <glossdef>
7510 <para role="glossdeffirst">
7511<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7512 Provides a short description of a configuration fragment.
7513 You use this variable in the <filename>.scc</filename>
7514 file that describes a configuration fragment file.
7515 Here is the variable used in a file named
7516 <filename>smp.scc</filename> to describe SMP being
7517 enabled:
7518 <literallayout class='monospaced'>
7519 define KFEATURE_DESCRIPTION "Enable SMP"
7520 </literallayout>
7521 </para>
7522 </glossdef>
7523 </glossentry>
7524
7525 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
7526 <info>
7527 KMACHINE[doc] = "The machine as known by the kernel."
7528 </info>
7529 <glossdef>
7530 <para role="glossdeffirst">
7531<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7532 The machine as known by the kernel.
7533 Sometimes the machine name used by the kernel does not
7534 match the machine name used by the OpenEmbedded build
7535 system.
7536 For example, the machine name that the OpenEmbedded build
7537 system understands as
7538 <filename>core2-32-intel-common</filename> goes by a
7539 different name in the Linux Yocto kernel.
7540 The kernel understands that machine as
7541 <filename>intel-core2-32</filename>.
7542 For cases like these, the <filename>KMACHINE</filename>
7543 variable maps the kernel machine name to the OpenEmbedded
7544 build system machine name.
7545 </para>
7546
7547 <para>
7548 These mappings between different names occur in the
7549 Yocto Linux Kernel's <filename>meta</filename> branch.
7550 As an example take a look in the
7551 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
7552 file:
7553 <literallayout class='monospaced'>
7554 LINUX_VERSION_core2-32-intel-common = "3.19.0"
7555 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
7556 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
7557 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
7558 KMACHINE_core2-32-intel-common = "intel-core2-32"
7559 KBRANCH_core2-32-intel-common = "standard/base"
7560 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
7561 </literallayout>
7562 The <filename>KMACHINE</filename> statement says that
7563 the kernel understands the machine name as
7564 "intel-core2-32".
7565 However, the OpenEmbedded build system understands the
7566 machine as "core2-32-intel-common".
7567 </para>
7568
7569 </glossdef>
7570 </glossentry>
7571
7572 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
7573 <info>
7574 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7575 </info>
7576 <glossdef>
7577 <para role="glossdeffirst">
7578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7579 Defines the kernel type to be used in assembling the
7580 configuration.
7581 The linux-yocto recipes define "standard", "tiny",
7582 and "preempt-rt" kernel types.
7583 See the
7584 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7585 section in the Yocto Project Linux Kernel Development
7586 Manual for more information on kernel types.
7587 </para>
7588
7589 <para>
7590 You define the <filename>KTYPE</filename> variable in the
7591 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7592 The value you use must match the value used for the
7593 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
7594 value used by the kernel recipe.
7595 </para>
7596 </glossdef>
7597 </glossentry>
7598 </glossdiv>
7599
7600 <glossdiv id='var-glossary-l'><title>L</title>
7601
7602 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
7603 <info>
7604 LABELS[doc] = "Provides a list of targets for automatic configuration."
7605 </info>
7606 <glossdef>
7607 <para role="glossdeffirst">
7608<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7609 Provides a list of targets for automatic configuration.
7610 </para>
7611
7612 <para>
7613 See the
7614 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
7615 class for more information on how this variable is used.
7616 </para>
7617 </glossdef>
7618 </glossentry>
7619
7620 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
7621 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007622 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 -05007623 </info>
7624 <glossdef>
7625 <para role="glossdeffirst">
7626<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007627 Lists the layers, separated by spaces, on which this
7628 recipe depends.
7629 Optionally, you can specify a specific layer version for a
7630 dependency by adding it to the end of the layer name.
7631 Here is an example:
7632 <literallayout class='monospaced'>
7633 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
7634 </literallayout>
7635 In this previous example, version 3 of "anotherlayer"
7636 is compared against
7637 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>.
7638 </para>
7639
7640 <para>
7641 An error is produced if any dependency is missing or
7642 the version numbers (if specified) do not match exactly.
7643 This variable is used in the
7644 <filename>conf/layer.conf</filename> file and must be
7645 suffixed with the name of the specific layer (e.g.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007646 <filename>LAYERDEPENDS_mylayer</filename>).
7647 </para>
7648 </glossdef>
7649 </glossentry>
7650
7651 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
7652 <info>
7653 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
7654 </info>
7655 <glossdef>
7656 <para role="glossdeffirst">
7657<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7658 When used inside the <filename>layer.conf</filename> configuration
7659 file, this variable provides the path of the current layer.
7660 This variable is not available outside of <filename>layer.conf</filename>
7661 and references are expanded immediately when parsing of the file completes.
7662 </para>
7663 </glossdef>
7664 </glossentry>
7665
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007666 <glossentry id='var-LAYERRECOMMENDS'><glossterm>LAYERRECOMMENDS</glossterm>
7667 <info>
7668 LAYERRECOMMENDS[doc] = "Lists the layers, separated by spaces, recommended for use with this layer."
7669 </info>
7670 <glossdef>
7671 <para role="glossdeffirst">
7672<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7673 Lists the layers, separated by spaces, recommended for
7674 use with this layer.
7675 </para>
7676
7677 <para>
7678 Optionally, you can specify a specific layer version for a
7679 recommendation by adding the version to the end of the
7680 layer name.
7681 Here is an example:
7682 <literallayout class='monospaced'>
7683 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
7684 </literallayout>
7685 In this previous example, version 3 of "anotherlayer" is
7686 compared against
7687 <filename>LAYERVERSION_anotherlayer</filename>.
7688 </para>
7689
7690 <para>
7691 This variable is used in the
7692 <filename>conf/layer.conf</filename> file and must be
7693 suffixed with the name of the specific layer (e.g.
7694 <filename>LAYERRECOMMENDS_mylayer</filename>).
7695 </para>
7696 </glossdef>
7697 </glossentry>
7698
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007699 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
7700 <info>
7701 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."
7702 </info>
7703 <glossdef>
7704 <para role="glossdeffirst">
7705<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7706 Optionally specifies the version of a layer as a single number.
7707 You can use this within
7708 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
7709 for another layer in order to depend on a specific version
7710 of the layer.
7711 This variable is used in the <filename>conf/layer.conf</filename> file
7712 and must be suffixed with the name of the specific layer (e.g.
7713 <filename>LAYERVERSION_mylayer</filename>).
7714 </para>
7715 </glossdef>
7716 </glossentry>
7717
7718 <glossentry id='var-LD'><glossterm>LD</glossterm>
7719 <info>
7720 LD[doc] = "Minimal command and arguments to run the linker."
7721 </info>
7722 <glossdef>
7723 <para role="glossdeffirst">
7724<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7725 The minimal command and arguments used to run the
7726 linker.
7727 </para>
7728 </glossdef>
7729 </glossentry>
7730
7731 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
7732 <info>
7733 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
7734 </info>
7735 <glossdef>
7736 <para role="glossdeffirst">
7737<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7738 Specifies the flags to pass to the linker.
7739 This variable is exported to an environment
7740 variable and thus made visible to the software being
7741 built during the compilation step.
7742 </para>
7743
7744 <para>
7745 Default initialization for <filename>LDFLAGS</filename>
7746 varies depending on what is being built:
7747 <itemizedlist>
7748 <listitem><para>
7749 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
7750 when building for the target
7751 </para></listitem>
7752 <listitem><para>
7753 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
7754 when building for the build host (i.e.
7755 <filename>-native</filename>)
7756 </para></listitem>
7757 <listitem><para>
7758 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
7759 when building for an SDK (i.e.
7760 <filename>nativesdk-</filename>)
7761 </para></listitem>
7762 </itemizedlist>
7763 </para>
7764 </glossdef>
7765 </glossentry>
7766
7767 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
7768 <info>
7769 LEAD_SONAME[doc] = "Specifies the lead (or primary) compiled library file (.so) that the debian class applies its naming policy to given a recipe that packages multiple libraries."
7770 </info>
7771 <glossdef>
7772 <para role="glossdeffirst">
7773<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7774 Specifies the lead (or primary) compiled library file
7775 (<filename>.so</filename>) that the
7776 <link linkend='ref-classes-debian'><filename>debian</filename></link>
7777 class applies its naming policy to given a recipe that
7778 packages multiple libraries.
7779 </para>
7780
7781 <para>
7782 This variable works in conjunction with the
7783 <filename>debian</filename> class.
7784 </para>
7785 </glossdef>
7786 </glossentry>
7787
7788 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
7789 <info>
7790 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
7791 </info>
7792 <glossdef>
7793 <para role="glossdeffirst">
7794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7795 Checksums of the license text in the recipe source code.
7796 </para>
7797
7798 <para>
7799 This variable tracks changes in license text of the source
7800 code files.
7801 If the license text is changed, it will trigger a build
7802 failure, which gives the developer an opportunity to review any
7803 license change.
7804 </para>
7805
7806 <para>
7807 This variable must be defined for all recipes (unless
7808 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7809 is set to "CLOSED").</para>
7810 <para>For more information, see the
7811 "<link linkend='usingpoky-configuring-LIC_FILES_CHKSUM'>
7812 Tracking License Changes</link>" section.
7813 </para>
7814 </glossdef>
7815 </glossentry>
7816
7817 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
7818 <info>
7819 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
7820 </info>
7821 <glossdef>
7822 <para role="glossdeffirst">
7823<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7824 The list of source licenses for the recipe.
7825 Follow these rules:
7826 <itemizedlist>
7827 <listitem><para>Do not use spaces within individual
7828 license names.</para></listitem>
7829 <listitem><para>Separate license names using
7830 | (pipe) when there is a choice between licenses.
7831 </para></listitem>
7832 <listitem><para>Separate license names using
7833 &amp; (ampersand) when multiple licenses exist
7834 that cover different parts of the source.
7835 </para></listitem>
7836 <listitem><para>You can use spaces between license
7837 names.</para></listitem>
7838 <listitem><para>For standard licenses, use the names
7839 of the files in
7840 <filename>meta/files/common-licenses/</filename>
7841 or the
7842 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
7843 flag names defined in
7844 <filename>meta/conf/licenses.conf</filename>.
7845 </para></listitem>
7846 </itemizedlist>
7847 </para>
7848
7849 <para>
7850 Here are some examples:
7851 <literallayout class='monospaced'>
7852 LICENSE = "LGPLv2.1 | GPLv3"
7853 LICENSE = "MPL-1 &amp; LGPLv2.1"
7854 LICENSE = "GPLv2+"
7855 </literallayout>
7856 The first example is from the recipes for Qt, which the user
7857 may choose to distribute under either the LGPL version
7858 2.1 or GPL version 3.
7859 The second example is from Cairo where two licenses cover
7860 different parts of the source code.
7861 The final example is from <filename>sysstat</filename>,
7862 which presents a single license.
7863 </para>
7864
7865 <para>
7866 You can also specify licenses on a per-package basis to
7867 handle situations where components of the output have
7868 different licenses.
7869 For example, a piece of software whose code is
7870 licensed under GPLv2 but has accompanying documentation
7871 licensed under the GNU Free Documentation License 1.2 could
7872 be specified as follows:
7873 <literallayout class='monospaced'>
7874 LICENSE = "GFDL-1.2 &amp; GPLv2"
7875 LICENSE_${PN} = "GPLv2"
7876 LICENSE_${PN}-doc = "GFDL-1.2"
7877 </literallayout>
7878 </para>
7879 </glossdef>
7880 </glossentry>
7881
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007882 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
7883 <info>
7884 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
7885 </info>
7886 <glossdef>
7887 <para role="glossdeffirst">
7888<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7889 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
7890 to "1" causes the OpenEmbedded build system to create
7891 an extra package (i.e.
7892 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
7893 for each recipe and to add those packages to the
7894 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
7895 </para>
7896
7897 <para>
7898 The <filename>${PN}-lic</filename> package installs a
7899 directory in <filename>/usr/share/licenses</filename>
7900 named <filename>${PN}</filename>, which is the recipe's
7901 base name, and installs files in that directory that
7902 contain license and copyright information (i.e. copies of
7903 the appropriate license files from
7904 <filename>meta/common-licenses</filename> that match the
7905 licenses specified in the
7906 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7907 variable of the recipe metadata and copies of files marked
7908 in
7909 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
7910 as containing license text).
7911 </para>
7912
7913 <para>
7914 For related information on providing license text, see the
7915 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
7916 variable, the
7917 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
7918 variable, and the
7919 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007920 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007921 </para>
7922 </glossdef>
7923 </glossentry>
7924
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007925 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
7926 <info>
7927 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."
7928 </info>
7929 <glossdef>
7930 <para role="glossdeffirst">
7931<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7932 Specifies additional flags for a recipe you must
7933 whitelist through
7934 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
7935 in order to allow the recipe to be built.
7936 When providing multiple flags, separate them with
7937 spaces.
7938 </para>
7939
7940 <para>
7941 This value is independent of
7942 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7943 and is typically used to mark recipes that might
7944 require additional licenses in order to be used in a
7945 commercial product.
7946 For more information, see the
7947 "<link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7948 section.
7949 </para>
7950 </glossdef>
7951 </glossentry>
7952
7953 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
7954 <info>
7955 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
7956 </info>
7957 <glossdef>
7958 <para role="glossdeffirst">
7959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7960 Lists license flags that when specified in
7961 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
7962 within a recipe should not prevent that recipe from being
7963 built.
7964 This practice is otherwise known as "whitelisting"
7965 license flags.
7966 For more information, see the
7967 <link linkend='enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</link>"
7968 section.
7969 </para>
7970 </glossdef>
7971 </glossentry>
7972
7973 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
7974 <info>
7975 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
7976 </info>
7977 <glossdef>
7978 <para role="glossdeffirst">
7979<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7980 Path to additional licenses used during the build.
7981 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
7982 to define the directory that holds common license text used during the build.
7983 The <filename>LICENSE_PATH</filename> variable allows you to extend that
7984 location to other areas that have additional licenses:
7985 <literallayout class='monospaced'>
7986 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
7987 </literallayout>
7988 </para>
7989 </glossdef>
7990 </glossentry>
7991
7992 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
7993 <info>
7994 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7995 </info>
7996 <glossdef>
7997 <para role="glossdeffirst">
7998<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7999 Defines the kernel type to be used in assembling the
8000 configuration.
8001 The linux-yocto recipes define "standard", "tiny", and
8002 "preempt-rt" kernel types.
8003 See the
8004 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8005 section in the Yocto Project Linux Kernel Development
8006 Manual for more information on kernel types.
8007 </para>
8008
8009 <para>
8010 If you do not specify a
8011 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
8012 "standard".
8013 Together with
8014 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
8015 the <filename>LINUX_KERNEL_TYPE</filename> variable
8016 defines the search
8017 arguments used by the kernel tools to find the appropriate
8018 description within the kernel
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008019 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008020 with which to build out the sources and configuration.
8021 </para>
8022 </glossdef>
8023 </glossentry>
8024
8025 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
8026 <info>
8027 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."
8028 </info>
8029 <glossdef>
8030 <para role="glossdeffirst">
8031<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8032 The Linux version from <filename>kernel.org</filename>
8033 on which the Linux kernel image being built using the
8034 OpenEmbedded build system is based.
8035 You define this variable in the kernel recipe.
8036 For example, the <filename>linux-yocto-3.4.bb</filename>
8037 kernel recipe found in
8038 <filename>meta/recipes-kernel/linux</filename>
8039 defines the variables as follows:
8040 <literallayout class='monospaced'>
8041 LINUX_VERSION ?= "3.4.24"
8042 </literallayout>
8043 </para>
8044
8045 <para>
8046 The <filename>LINUX_VERSION</filename> variable is used to
8047 define <link linkend='var-PV'><filename>PV</filename></link>
8048 for the recipe:
8049 <literallayout class='monospaced'>
8050 PV = "${LINUX_VERSION}+git${SRCPV}"
8051 </literallayout>
8052 </para>
8053 </glossdef>
8054 </glossentry>
8055
8056 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
8057 <info>
8058 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."
8059 </info>
8060 <glossdef>
8061 <para role="glossdeffirst">
8062<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8063 A string extension compiled into the version
8064 string of the Linux kernel built with the OpenEmbedded
8065 build system.
8066 You define this variable in the kernel recipe.
8067 For example, the linux-yocto kernel recipes all define
8068 the variable as follows:
8069 <literallayout class='monospaced'>
8070 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
8071 </literallayout>
8072 </para>
8073
8074 <para>
8075 Defining this variable essentially sets the
8076 Linux kernel configuration item
8077 <filename>CONFIG_LOCALVERSION</filename>, which is visible
8078 through the <filename>uname</filename> command.
8079 Here is an example that shows the extension assuming it
8080 was set as previously shown:
8081 <literallayout class='monospaced'>
8082 $ uname -r
8083 3.7.0-rc8-custom
8084 </literallayout>
8085 </para>
8086 </glossdef>
8087 </glossentry>
8088
8089 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
8090 <info>
8091 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
8092 </info>
8093 <glossdef>
8094 <para role="glossdeffirst">
8095<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8096 Specifies the directory to which the OpenEmbedded build
8097 system writes overall log files.
8098 The default directory is <filename>${TMPDIR}/log</filename>.
8099 </para>
8100
8101 <para>
8102 For the directory containing logs specific to each task,
8103 see the <link linkend='var-T'><filename>T</filename></link>
8104 variable.
8105 </para>
8106 </glossdef>
8107 </glossentry>
8108
8109 </glossdiv>
8110
8111 <glossdiv id='var-glossary-m'><title>M</title>
8112
8113 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
8114 <info>
8115 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."
8116 </info>
8117 <glossdef>
8118 <para role="glossdeffirst">
8119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8120 Specifies the target device for which the image is built.
8121 You define <filename>MACHINE</filename> in the
8122 <filename>local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008123 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008124 By default, <filename>MACHINE</filename> is set to
8125 "qemux86", which is an x86-based architecture machine to
8126 be emulated using QEMU:
8127 <literallayout class='monospaced'>
8128 MACHINE ?= "qemux86"
8129 </literallayout>
8130 </para>
8131
8132 <para>
8133 The variable corresponds to a machine configuration file of the
8134 same name, through which machine-specific configurations are set.
8135 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
8136 exists the corresponding <filename>qemux86.conf</filename> machine
8137 configuration file, which can be found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008138 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008139 in <filename>meta/conf/machine</filename>.
8140 </para>
8141
8142 <para>
8143 The list of machines supported by the Yocto Project as
8144 shipped include the following:
8145 <literallayout class='monospaced'>
8146 MACHINE ?= "qemuarm"
8147 MACHINE ?= "qemuarm64"
8148 MACHINE ?= "qemumips"
8149 MACHINE ?= "qemumips64"
8150 MACHINE ?= "qemuppc"
8151 MACHINE ?= "qemux86"
8152 MACHINE ?= "qemux86-64"
8153 MACHINE ?= "genericx86"
8154 MACHINE ?= "genericx86-64"
8155 MACHINE ?= "beaglebone"
8156 MACHINE ?= "mpc8315e-rdb"
8157 MACHINE ?= "edgerouter"
8158 </literallayout>
8159 The last five are Yocto Project reference hardware boards, which
8160 are provided in the <filename>meta-yocto-bsp</filename> layer.
8161 <note>Adding additional Board Support Package (BSP) layers
8162 to your configuration adds new possible settings for
8163 <filename>MACHINE</filename>.
8164 </note>
8165 </para>
8166 </glossdef>
8167 </glossentry>
8168
8169 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
8170 <info>
8171 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
8172 </info>
8173 <glossdef>
8174 <para role="glossdeffirst">
8175<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8176 Specifies the name of the machine-specific architecture.
8177 This variable is set automatically from
8178 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
8179 or
8180 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
8181 You should not hand-edit the
8182 <filename>MACHINE_ARCH</filename> variable.
8183 </para>
8184 </glossdef>
8185 </glossentry>
8186
8187 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
8188 <info>
8189 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."
8190 </info>
8191 <glossdef>
8192 <para role="glossdeffirst">
8193<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8194 A list of required machine-specific packages to install as part of
8195 the image being built.
8196 The build process depends on these packages being present.
8197 Furthermore, because this is a "machine essential" variable, the list of
8198 packages are essential for the machine to boot.
8199 The impact of this variable affects images based on
8200 <filename>packagegroup-core-boot</filename>,
8201 including the <filename>core-image-minimal</filename> image.
8202 </para>
8203
8204 <para>
8205 This variable is similar to the
8206 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
8207 variable with the exception that the image being built has a build
8208 dependency on the variable's list of packages.
8209 In other words, the image will not build if a file in this list is not found.
8210 </para>
8211
8212 <para>
8213 As an example, suppose the machine for which you are building requires
8214 <filename>example-init</filename> to be run during boot to initialize the hardware.
8215 In this case, you would use the following in the machine's
8216 <filename>.conf</filename> configuration file:
8217 <literallayout class='monospaced'>
8218 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
8219 </literallayout>
8220 </para>
8221 </glossdef>
8222 </glossentry>
8223
8224 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
8225 <info>
8226 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."
8227 </info>
8228 <glossdef>
8229 <para role="glossdeffirst">
8230<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8231 A list of recommended machine-specific packages to install as part of
8232 the image being built.
8233 The build process does not depend on these packages being present.
8234 However, because this is a "machine essential" variable, the list of
8235 packages are essential for the machine to boot.
8236 The impact of this variable affects images based on
8237 <filename>packagegroup-core-boot</filename>,
8238 including the <filename>core-image-minimal</filename> image.
8239 </para>
8240
8241 <para>
8242 This variable is similar to the
8243 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
8244 variable with the exception that the image being built does not have a build
8245 dependency on the variable's list of packages.
8246 In other words, the image will still build if a package in this list is not found.
8247 Typically, this variable is used to handle essential kernel modules, whose
8248 functionality may be selected to be built into the kernel rather than as a module,
8249 in which case a package will not be produced.
8250 </para>
8251
8252 <para>
8253 Consider an example where you have a custom kernel where a specific touchscreen
8254 driver is required for the machine to be usable.
8255 However, the driver can be built as a module or
8256 into the kernel depending on the kernel configuration.
8257 If the driver is built as a module, you want it to be installed.
8258 But, when the driver is built into the kernel, you still want the
8259 build to succeed.
8260 This variable sets up a "recommends" relationship so that in the latter case,
8261 the build will not fail due to the missing package.
8262 To accomplish this, assuming the package for the module was called
8263 <filename>kernel-module-ab123</filename>, you would use the
8264 following in the machine's <filename>.conf</filename> configuration
8265 file:
8266 <literallayout class='monospaced'>
8267 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
8268 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008269 <note>
8270 In this example, the
8271 <filename>kernel-module-ab123</filename> recipe
8272 needs to explicitly set its
8273 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
8274 variable to ensure that BitBake does not use the
8275 kernel recipe's
8276 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
8277 variable to satisfy the dependency.
8278 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008279 </para>
8280
8281 <para>
8282 Some examples of these machine essentials are flash, screen, keyboard, mouse,
8283 or touchscreen drivers (depending on the machine).
8284 </para>
8285 </glossdef>
8286 </glossentry>
8287
8288 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
8289 <info>
8290 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."
8291 </info>
8292 <glossdef>
8293 <para role="glossdeffirst">
8294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8295 A list of machine-specific packages to install as part of the
8296 image being built that are not essential for the machine to boot.
8297 However, the build process for more fully-featured images
8298 depends on the packages being present.
8299 </para>
8300
8301 <para>
8302 This variable affects all images based on
8303 <filename>packagegroup-base</filename>, which does not include the
8304 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8305 images.
8306 </para>
8307
8308 <para>
8309 The variable is similar to the
8310 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
8311 variable with the exception that the image being built has a build
8312 dependency on the variable's list of packages.
8313 In other words, the image will not build if a file in this list is not found.
8314 </para>
8315
8316 <para>
8317 An example is a machine that has WiFi capability but is not
8318 essential for the machine to boot the image.
8319 However, if you are building a more fully-featured image, you want to enable
8320 the WiFi.
8321 The package containing the firmware for the WiFi hardware is always
8322 expected to exist, so it is acceptable for the build process to depend upon
8323 finding the package.
8324 In this case, assuming the package for the firmware was called
8325 <filename>wifidriver-firmware</filename>, you would use the following in the
8326 <filename>.conf</filename> file for the machine:
8327 <literallayout class='monospaced'>
8328 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
8329 </literallayout>
8330 </para>
8331 </glossdef>
8332 </glossentry>
8333
8334 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
8335 <info>
8336 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."
8337 </info>
8338 <glossdef>
8339 <para role="glossdeffirst">
8340<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8341 A list of machine-specific packages to install as part of the
8342 image being built that are not essential for booting the machine.
8343 The image being built has no build dependency on this list of packages.
8344 </para>
8345
8346 <para>
8347 This variable affects only images based on
8348 <filename>packagegroup-base</filename>, which does not include the
8349 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8350 images.
8351 </para>
8352
8353 <para>
8354 This variable is similar to the
8355 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
8356 variable with the exception that the image being built does not have a build
8357 dependency on the variable's list of packages.
8358 In other words, the image will build if a file in this list is not found.
8359 </para>
8360
8361 <para>
8362 An example is a machine that has WiFi capability but is not essential
8363 For the machine to boot the image.
8364 However, if you are building a more fully-featured image, you want to enable
8365 WiFi.
8366 In this case, the package containing the WiFi kernel module will not be produced
8367 if the WiFi driver is built into the kernel, in which case you still want the
8368 build to succeed instead of failing as a result of the package not being found.
8369 To accomplish this, assuming the package for the module was called
8370 <filename>kernel-module-examplewifi</filename>, you would use the
8371 following in the <filename>.conf</filename> file for the machine:
8372 <literallayout class='monospaced'>
8373 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
8374 </literallayout>
8375 </para>
8376 </glossdef>
8377 </glossentry>
8378
8379 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
8380 <info>
8381 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
8382 </info>
8383 <glossdef>
8384 <para role="glossdeffirst">
8385<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8386 Specifies the list of hardware features the
8387 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
8388 of supporting.
8389 For related information on enabling features, see the
8390 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
8391 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
8392 and
8393 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8394 variables.
8395 </para>
8396
8397 <para>
8398 For a list of hardware features supported by the Yocto
8399 Project as shipped, see the
8400 "<link linkend='ref-features-machine'>Machine Features</link>"
8401 section.
8402 </para>
8403 </glossdef>
8404 </glossentry>
8405
8406 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
8407 <info>
8408 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."
8409 </info>
8410 <glossdef>
8411 <para role="glossdeffirst">
8412<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8413 Features to be added to
8414 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
8415 if not also present in
8416 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
8417 </para>
8418
8419 <para>
8420 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
8421 It is not intended to be user-configurable.
8422 It is best to just reference the variable to see which machine features are
8423 being backfilled for all machine configurations.
8424 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
8425 more information.
8426 </para>
8427 </glossdef>
8428 </glossentry>
8429
8430 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
8431 <info>
8432 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
8433 </info>
8434 <glossdef>
8435 <para role="glossdeffirst">
8436<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8437 Features from
8438 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
8439 that should not be backfilled (i.e. added to
8440 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
8441 during the build.
8442 See the "<link linkend='ref-features-backfill'>Feature backfilling</link>" section for
8443 more information.
8444 </para>
8445 </glossdef>
8446 </glossentry>
8447
8448 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
8449 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008450 MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008451 </info>
8452 <glossdef>
8453 <para role="glossdeffirst">
8454<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008455 A colon-separated list of overrides that apply to the
8456 current machine.
8457 By default, this list includes the value of
8458 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008459 </para>
8460
8461 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008462 You can extend <filename>MACHINEOVERRIDES</filename>
8463 to add extra overrides that should apply to a machine.
8464 For example, all machines emulated in QEMU (e.g.
8465 <filename>qemuarm</filename>, <filename>qemux86</filename>,
8466 and so forth) include a file named
8467 <filename>meta/conf/machine/include/qemu.inc</filename>
8468 that prepends the following override to
8469 <filename>MACHINEOVERRIDES</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008470 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008471 MACHINEOVERRIDES =. "qemuall:"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008472 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008473 This override allows variables to be overriden for all
8474 machines emulated in QEMU, like in the following example
8475 from the <filename>connman-conf</filename> recipe:
8476 <literallayout class='monospaced'>
8477 SRC_URI_append_qemuall = "file://wired.config \
8478 file://wired-setup \
8479 "
8480 </literallayout>
8481 The underlying mechanism behind
8482 <filename>MACHINEOVERRIDES</filename> is simply that it is
8483 included in the default value of
8484 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008485 </para>
8486 </glossdef>
8487 </glossentry>
8488
8489 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
8490 <info>
8491 MAINTAINER[doc] = "The email address of the distribution maintainer."
8492 </info>
8493 <glossdef>
8494 <para role="glossdeffirst">
8495<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8496 The email address of the distribution maintainer.
8497 </para>
8498 </glossdef>
8499 </glossentry>
8500
8501 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
8502 <info>
8503 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
8504 </info>
8505 <glossdef>
8506 <para role="glossdeffirst">
8507<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8508 Specifies additional paths from which the OpenEmbedded
8509 build system gets source code.
8510 When the build system searches for source code, it first
8511 tries the local download directory.
8512 If that location fails, the build system tries locations
8513 defined by
8514 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
8515 the upstream source, and then locations specified by
8516 <filename>MIRRORS</filename> in that order.
8517 </para>
8518
8519 <para>
8520 Assuming your distribution
8521 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
8522 is "poky", the default value for
8523 <filename>MIRRORS</filename> is defined in the
8524 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008525 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008526 </para>
8527 </glossdef>
8528 </glossentry>
8529
8530 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
8531 <info>
8532 MLPREFIX[doc] = "Specifies a prefix has been added to PN to create a special version of a recipe or package, such as a Multilib version."
8533 </info>
8534 <glossdef>
8535 <para role="glossdeffirst">
8536<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8537 Specifies a prefix has been added to
8538 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
8539 of a recipe or package, such as a Multilib version.
8540 The variable is used in places where the prefix needs to be
8541 added to or removed from a the name (e.g. the
8542 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
8543 <filename>MLPREFIX</filename> gets set when a prefix has been
8544 added to <filename>PN</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008545 <note>
8546 The "ML" in <filename>MLPREFIX</filename> stands for
8547 "MultiLib".
8548 This representation is historical and comes from
8549 a time when <filename>nativesdk</filename> was a suffix
8550 rather than a prefix on the recipe name.
8551 When <filename>nativesdk</filename> was turned into a
8552 prefix, it made sense to set
8553 <filename>MLPREFIX</filename> for it as well.
8554 </note>
8555 </para>
8556
8557 <para>
8558 To help understand when <filename>MLPREFIX</filename>
8559 might be needed, consider when
8560 <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
8561 is used to provide a <filename>nativesdk</filename> version
8562 of a recipe in addition to the target version.
8563 If that recipe declares build-time dependencies on tasks in
8564 other recipes by using
8565 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
8566 then a dependency on "foo" will automatically get rewritten
8567 to a dependency on "nativesdk-foo".
8568 However, dependencies like the following will not get
8569 rewritten automatically:
8570 <literallayout class='monospaced'>
8571 do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
8572 </literallayout>
8573 If you want such a dependency to also get transformed,
8574 you can do the following:
8575 <literallayout class='monospaced'>
8576 do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
8577 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008578 </para>
8579 </glossdef>
8580 </glossentry>
8581
8582 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
8583 <info>
8584 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."
8585 </info>
8586 <glossdef>
8587 <para role="glossdeffirst">
8588<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8589 This variable has been replaced by the
8590 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
8591 You should replace all occurrences of
8592 <filename>module_autoload</filename> with additions to
8593 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
8594 <literallayout class='monospaced'>
8595 module_autoload_rfcomm = "rfcomm"
8596 </literallayout>
8597 </para>
8598
8599 <para>
8600 should now be replaced with:
8601 <literallayout class='monospaced'>
8602 KERNEL_MODULE_AUTOLOAD += "rfcomm"
8603 </literallayout>
8604 See the
8605 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8606 variable for more information.
8607 </para>
8608 </glossdef>
8609 </glossentry>
8610
8611 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
8612 <info>
8613 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
8614 </info>
8615 <glossdef>
8616 <para role="glossdeffirst">
8617<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8618 Specifies
8619 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
8620 syntax lines for inclusion in the
8621 <filename>/etc/modprobe.d/modname.conf</filename> file.
8622 </para>
8623
8624 <para>
8625 You can use this variable anywhere that it can be
8626 recognized by the kernel recipe or out-of-tree kernel
8627 module recipe (e.g. a machine configuration file, a
8628 distribution configuration file, an append file for the
8629 recipe, or the recipe itself).
8630 If you use this variable, you must also be sure to list
8631 the module name in the
8632 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8633 variable.
8634 </para>
8635
8636 <para>
8637 Here is the general syntax:
8638 <literallayout class='monospaced'>
8639 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
8640 </literallayout>
8641 You must use the kernel module name override.
8642 </para>
8643
8644 <para>
8645 Run <filename>man modprobe.d</filename> in the shell to
8646 find out more information on the exact syntax
8647 you want to provide with <filename>module_conf</filename>.
8648 </para>
8649
8650 <para>
8651 Including <filename>module_conf</filename> causes the
8652 OpenEmbedded build system to populate the
8653 <filename>/etc/modprobe.d/modname.conf</filename>
8654 file with <filename>modprobe.d</filename> syntax lines.
8655 Here is an example that adds the options
8656 <filename>arg1</filename> and <filename>arg2</filename>
8657 to a module named <filename>mymodule</filename>:
8658 <literallayout class='monospaced'>
8659 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
8660 </literallayout>
8661 </para>
8662
8663 <para>
8664 For information on how to specify kernel modules to
8665 auto-load on boot, see the
8666 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8667 variable.
8668 </para>
8669 </glossdef>
8670 </glossentry>
8671
8672 <glossentry id='var-MODULE_IMAGE_BASE_NAME'><glossterm>MODULE_IMAGE_BASE_NAME</glossterm>
8673 <info>
8674 MODULE_IMAGE_BASE_NAME[doc] = "The base name of the kernel modules tarball."
8675 </info>
8676 <glossdef>
8677 <para role="glossdeffirst">
8678<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8679 The base name of the kernel modules tarball.
8680 This variable is set in the
8681 <link linkend='ref-classes-kernel'>kernel</link> class
8682 as follows:
8683 <literallayout class='monospaced'>
8684 MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
8685 </literallayout>
8686 </para>
8687
8688 <para>
8689 See the
8690 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
8691 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
8692 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
8693 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
8694 and
8695 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
8696 variables for additional information.
8697 </para>
8698 </glossdef>
8699 </glossentry>
8700
8701 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
8702 <info>
8703 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."
8704 </info>
8705 <glossdef>
8706 <para role="glossdeffirst">
8707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8708 Controls creation of the <filename>modules-*.tgz</filename>
8709 file.
8710 Set this variable to "0" to disable creation of this
8711 file, which contains all of the kernel modules resulting
8712 from a kernel build.
8713 </para>
8714 </glossdef>
8715 </glossentry>
8716
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008717<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008718 <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
8719 <info>
8720 MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
8721 </info>
8722 <glossdef>
8723 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008724-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008725<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008726<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008727 Serves the same purpose as
8728 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
8729 but for the "HOST" system, in situations that involve a
8730 "HOST" and a "TARGET" system.
8731 See the
8732 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
8733 variable for more information.
8734 </para>
8735
8736 <para>
8737 The default value of this variable is:
8738 <literallayout class='monospaced'>
8739 ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
8740 </literallayout>
8741 </para>
8742 </glossdef>
8743 </glossentry>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008744-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008745
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008746 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
8747 <info>
8748 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
8749 </info>
8750 <glossdef>
8751 <para role="glossdeffirst">
8752<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008753 Uniquely identifies the type of the target system for
8754 which packages are being built.
8755 This variable allows output for different types of target
8756 systems to be put into different subdirectories of the same
8757 output directory.
8758 </para>
8759
8760 <para>
8761 The default value of this variable is:
8762 <literallayout class='monospaced'>
8763 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
8764 </literallayout>
8765 Some classes (e.g.
8766 <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
8767 modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
8768 </para>
8769
8770 <para>
8771 See the
8772 <link linkend='var-STAMP'><filename>STAMP</filename></link>
8773 variable for an example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008774 See the
8775 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
8776 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008777 </para>
8778 </glossdef>
8779 </glossentry>
8780
8781 </glossdiv>
8782
8783 <glossdiv id='var-glossary-n'><title>N</title>
8784
8785 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
8786 <info>
8787 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
8788 </info>
8789 <glossdef>
8790 <para role="glossdeffirst">
8791<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8792 A string identifying the host distribution.
8793 Strings consist of the host distributor ID
8794 followed by the release, as reported by the
8795 <filename>lsb_release</filename> tool
8796 or as read from <filename>/etc/lsb-release</filename>.
8797 For example, when running a build on Ubuntu 12.10, the value
8798 is "Ubuntu-12.10".
8799 If this information is unable to be determined, the value
8800 resolves to "Unknown".
8801 </para>
8802
8803 <para>
8804 This variable is used by default to isolate native shared
8805 state packages for different distributions (e.g. to avoid
8806 problems with <filename>glibc</filename> version
8807 incompatibilities).
8808 Additionally, the variable is checked against
8809 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
8810 if that variable is set.
8811 </para>
8812 </glossdef>
8813 </glossentry>
8814
8815 <glossentry id='var-NM'><glossterm>NM</glossterm>
8816 <info>
8817 NM[doc] = "Minimal command and arguments to run 'nm'."
8818 </info>
8819 <glossdef>
8820 <para role="glossdeffirst">
8821<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8822 The minimal command and arguments to run
8823 <filename>nm</filename>.
8824 </para>
8825 </glossdef>
8826 </glossentry>
8827
8828 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
8829 <info>
8830 NO_RECOMMENDATIONS[doc] = "When set to '1', no recommended packages will be installed. Realize that 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."
8831 </info>
8832 <glossdef>
8833 <para role="glossdeffirst">
8834<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8835 Prevents installation of all "recommended-only" packages.
8836 Recommended-only packages are packages installed only
8837 through the
8838 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
8839 variable).
8840 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
8841 to "1" turns this feature on:
8842 <literallayout class='monospaced'>
8843 NO_RECOMMENDATIONS = "1"
8844 </literallayout>
8845 </para>
8846
8847 <para>
8848 You can set this variable globally in your
8849 <filename>local.conf</filename> file or you can attach it to
8850 a specific image recipe by using the recipe name override:
8851 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008852 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008853 </literallayout>
8854 </para>
8855
8856 <para>
8857 It is important to realize that if you choose to not install
8858 packages using this variable and some other packages are
8859 dependent on them (i.e. listed in a recipe's
8860 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
8861 variable), the OpenEmbedded build system ignores your
8862 request and will install the packages to avoid dependency
8863 errors.
8864 <note>
8865 Some recommended packages might be required for certain
8866 system functionality, such as kernel modules.
8867 It is up to you to add packages with the
8868 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
8869 variable.
8870 </note>
8871 </para>
8872
8873 <para>
8874 Support for this variable exists only when using the
8875 IPK and RPM packaging backend.
8876 Support does not exist for DEB.
8877 </para>
8878
8879 <para>
8880 See the
8881 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
8882 and the
8883 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
8884 variables for related information.
8885 </para>
8886 </glossdef>
8887 </glossentry>
8888
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008889 <glossentry id='var-NOAUTOPACKAGEDEBUG'><glossterm>NOAUTOPACKAGEDEBUG</glossterm>
8890 <info>
8891 NOAUTOPACKAGEDEBUG[doc] = "Disables auto package from splitting .debug files."
8892 </info>
8893 <glossdef>
8894 <para role="glossdeffirst">
8895<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8896 Disables auto package from splitting
8897 <filename>.debug</filename> files. If a recipe requires
8898 <filename>FILES_${PN}-dbg</filename> to be set manually,
8899 the <filename>NOAUTOPACKAGEDEBUG</filename> can be defined
8900 allowing you to define the content of the debug package.
8901 For example:
8902 <literallayout class='monospaced'>
8903 NOAUTOPACKAGEDEBUG = "1"
8904 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
8905 FILES_${PN}-dbg = "/usr/src/debug/"
8906 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
8907 </literallayout>
8908 </para>
8909 </glossdef>
8910 </glossentry>
8911
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008912 <glossentry id='var-NOHDD'><glossterm>NOHDD</glossterm>
8913 <info>
8914 NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
8915 </info>
8916 <glossdef>
8917 <para role="glossdeffirst">
8918<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8919 Causes the OpenEmbedded build system to skip building the
8920 <filename>.hddimg</filename> image.
8921 The <filename>NOHDD</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008922 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008923 class.
8924 Set the variable to "1" to prevent the
8925 <filename>.hddimg</filename> image from being built.
8926 </para>
8927 </glossdef>
8928 </glossentry>
8929
8930 <glossentry id='var-NOISO'><glossterm>NOISO</glossterm>
8931 <info>
8932 NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
8933 </info>
8934 <glossdef>
8935 <para role="glossdeffirst">
8936<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8937 Causes the OpenEmbedded build system to skip building the
8938 ISO image.
8939 The <filename>NOISO</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008940 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008941 class.
8942 Set the variable to "1" to prevent the ISO image from
8943 being built.
8944 To enable building an ISO image, set the variable to "0".
8945 </para>
8946 </glossdef>
8947 </glossentry>
8948
8949 </glossdiv>
8950
8951 <glossdiv id='var-glossary-o'><title>O</title>
8952
8953 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
8954 <info>
8955 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
8956 </info>
8957 <glossdef>
8958 <para role="glossdeffirst">
8959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8960 The minimal command and arguments to run
8961 <filename>objcopy</filename>.
8962 </para>
8963 </glossdef>
8964 </glossentry>
8965
8966 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
8967 <info>
8968 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
8969 </info>
8970 <glossdef>
8971 <para role="glossdeffirst">
8972<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8973 The minimal command and arguments to run
8974 <filename>objdump</filename>.
8975 </para>
8976 </glossdef>
8977 </glossentry>
8978
8979 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
8980 <info>
8981 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
8982 </info>
8983 <glossdef>
8984 <para role="glossdeffirst">
8985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8986 When inheriting the
8987 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
8988 class, this variable
8989 specifies additional arguments passed to the "sed" command.
8990 The sed command alters any paths in configuration scripts
8991 that have been set up during compilation.
8992 Inheriting this class results in all paths in these scripts
8993 being changed to point into the
8994 <filename>sysroots/</filename> directory so that all builds
8995 that use the script will use the correct directories
8996 for the cross compiling layout.
8997 </para>
8998
8999 <para>
9000 See the <filename>meta/classes/binconfig.bbclass</filename>
9001 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009002 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009003 for details on how this class applies these additional
9004 sed command arguments.
9005 For general information on the
9006 <filename>binconfig.bbclass</filename> class, see the
9007 "<link linkend='ref-classes-binconfig'>Binary Configuration Scripts - <filename>binconfig.bbclass</filename></link>"
9008 section.
9009 </para>
9010 </glossdef>
9011 </glossentry>
9012
9013 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
9014 <info>
9015 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."
9016 </info>
9017 <glossdef>
9018 <para role="glossdeffirst">
9019<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9020 An internal variable used to tell the OpenEmbedded build
9021 system what Python modules to import for every Python
9022 function run by the system.
9023 </para>
9024
9025 <note>
9026 Do not set this variable.
9027 It is for internal use only.
9028 </note>
9029 </glossdef>
9030 </glossentry>
9031
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009032 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
9033 <info>
9034 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."
9035 </info>
9036 <glossdef>
9037 <para role="glossdeffirst">
9038<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9039 The name of the build environment setup script for the
9040 purposes of setting up the environment within the
9041 extensible SDK.
9042 The default value is "oe-init-build-env".
9043 </para>
9044
9045 <para>
9046 If you use a custom script to set up your build
9047 environment, set the
9048 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
9049 name.
9050 </para>
9051 </glossdef>
9052 </glossentry>
9053
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009054 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
9055 <info>
9056 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
9057 </info>
9058 <glossdef>
9059 <para role="glossdeffirst">
9060<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9061 Controls how the OpenEmbedded build system spawns
9062 interactive terminals on the host development system
9063 (e.g. using the BitBake command with the
9064 <filename>-c devshell</filename> command-line option).
9065 For more information, see the
9066 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009067 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009068 </para>
9069
9070 <para>
9071 You can use the following values for the
9072 <filename>OE_TERMINAL</filename> variable:
9073 <literallayout class='monospaced'>
9074 auto
9075 gnome
9076 xfce
9077 rxvt
9078 screen
9079 konsole
9080 none
9081 </literallayout>
9082 </para>
9083 </glossdef>
9084 </glossentry>
9085
9086 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
9087 <info>
9088 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
9089 </info>
9090 <glossdef>
9091 <para role="glossdeffirst">
9092<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9093 The directory from which the top-level build environment
9094 setup script is sourced.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009095 The Yocto Project provides a top-level build environment
9096 setup script:
9097 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
9098 When you run this script, the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009099 <filename>OEROOT</filename> variable resolves to the
9100 directory that contains the script.
9101 </para>
9102
9103 <para>
9104 For additional information on how this variable is used,
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009105 see the initialization script.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009106 </para>
9107 </glossdef>
9108 </glossentry>
9109
9110 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
9111 <info>
9112 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
9113 </info>
9114 <glossdef>
9115 <para role="glossdeffirst">
9116<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9117 Declares the oldest version of the Linux kernel that the
9118 produced binaries must support.
9119 This variable is passed into the build of the Embedded
9120 GNU C Library (<filename>glibc</filename>).
9121 </para>
9122
9123 <para>
9124 The default for this variable comes from the
9125 <filename>meta/conf/bitbake.conf</filename> configuration
9126 file.
9127 You can override this default by setting the variable
9128 in a custom distribution configuration file.
9129 </para>
9130 </glossdef>
9131 </glossentry>
9132
9133 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
9134 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009135 OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009136 </info>
9137 <glossdef>
9138 <para role="glossdeffirst">
9139<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009140 A colon-separated list of overrides that currently apply.
9141 Overrides are a BitBake mechanism that allows variables to
9142 be selectively overridden at the end of parsing.
9143 The set of overrides in <filename>OVERRIDES</filename>
9144 represents the "state" during building, which includes
9145 the current recipe being built, the machine for which
9146 it is being built, and so forth.
9147 </para>
9148
9149 <para>
9150 As an example, if the string "an-override" appears as an
9151 element in the colon-separated list in
9152 <filename>OVERRIDES</filename>, then the following
9153 assignment will override <filename>FOO</filename> with the
9154 value "overridden" at the end of parsing:
9155 <literallayout class='monospaced'>
9156 FOO_an-override = "overridden"
9157 </literallayout>
9158 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009159 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009160 section in the BitBake User Manual for more information on
9161 the overrides mechanism.
9162 </para>
9163
9164 <para>
9165 The default value of <filename>OVERRIDES</filename>
9166 includes the values of the
9167 <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
9168 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
9169 and
9170 <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
9171 variables.
9172 Another important override included by default is
9173 <filename>pn-${PN}</filename>.
9174 This override allows variables to be set for a single
9175 recipe within configuration (<filename>.conf</filename>)
9176 files.
9177 Here is an example:
9178 <literallayout class='monospaced'>
9179 FOO_pn-myrecipe = "myrecipe-specific value"
9180 </literallayout>
9181 <note><title>Tip</title>
9182 An easy way to see what overrides apply is to search for
9183 <filename>OVERRIDES</filename> in the output of the
9184 <filename>bitbake -e</filename> command.
9185 See the
9186 "<link linkend='usingpoky-debugging-viewing-variable-values'>Viewing Variable Values</link>"
9187 section for more information.
9188 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009189 </para>
9190 </glossdef>
9191 </glossentry>
9192 </glossdiv>
9193
9194 <glossdiv id='var-glossary-p'><title>P</title>
9195
9196 <glossentry id='var-P'><glossterm>P</glossterm>
9197 <info>
9198 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
9199 </info>
9200 <glossdef>
9201 <para role="glossdeffirst">
9202<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9203 The recipe name and version.
9204 <filename>P</filename> is comprised of the following:
9205 <literallayout class='monospaced'>
9206 ${PN}-${PV}
9207 </literallayout>
9208 </para>
9209 </glossdef>
9210 </glossentry>
9211
9212 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
9213 <info>
9214 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
9215 </info>
9216 <glossdef>
9217 <para role="glossdeffirst">
9218<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9219 The architecture of the resulting package or packages.
9220 </para>
9221
9222 <para>
9223 By default, the value of this variable is set to
9224 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
9225 when building for the target,
9226 <filename>BUILD_ARCH</filename> when building for the
9227 build host and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
9228 for the SDK.
9229 However, if your recipe's output packages are built
9230 specific to the target machine rather than general for
9231 the architecture of the machine, you should set
9232 <filename>PACKAGE_ARCH</filename> to the value of
9233 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
9234 in the recipe as follows:
9235 <literallayout class='monospaced'>
9236 PACKAGE_ARCH = "${MACHINE_ARCH}"
9237 </literallayout>
9238 </para>
9239 </glossdef>
9240 </glossentry>
9241
9242 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
9243 <info>
9244 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
9245 </info>
9246 <glossdef>
9247 <para role="glossdeffirst">
9248<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9249 Specifies a list of architectures compatible with
9250 the target machine.
9251 This variable is set automatically and should not
9252 normally be hand-edited.
9253 Entries are separated using spaces and listed in order
9254 of priority.
9255 The default value for
9256 <filename>PACKAGE_ARCHS</filename> is "all any noarch
9257 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
9258 </para>
9259 </glossdef>
9260 </glossentry>
9261
9262 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
9263 <info>
9264 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."
9265 </info>
9266 <glossdef>
9267 <para role="glossdeffirst">
9268<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9269 Enables easily adding packages to
9270 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
9271 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
9272 so that those added packages can pick up files that would normally be
9273 included in the default package.
9274 </para>
9275 </glossdef>
9276 </glossentry>
9277
9278 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
9279 <info>
9280 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."
9281 </info>
9282 <glossdef>
9283 <para role="glossdeffirst">
9284<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9285 This variable, which is set in the
9286 <filename>local.conf</filename> configuration file found in
9287 the <filename>conf</filename> folder of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009288 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009289 specifies the package manager the OpenEmbedded build system
9290 uses when packaging data.
9291 </para>
9292
9293 <para>
9294 You can provide one or more of the following arguments for
9295 the variable:
9296 <literallayout class='monospaced'>
9297 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
9298 </literallayout>
9299 <note><title>Warning</title>
9300 While it is a legal option, the
9301 <filename>package_tar</filename> class is broken
9302 and is not supported.
9303 It is recommended that you do not use it.
9304 </note>
9305 The build system uses only the first argument in the list
9306 as the package manager when creating your image or SDK.
9307 However, packages will be created using any additional
9308 packaging classes you specify.
9309 For example, if you use the following in your
9310 <filename>local.conf</filename> file:
9311 <literallayout class='monospaced'>
9312 PACKAGE_CLASSES ?= "package_ipk"
9313 </literallayout>
9314 The OpenEmbedded build system uses the IPK package manager
9315 to create your image or SDK.
9316 </para>
9317
9318 <para>
9319 For information on packaging and build performance effects
9320 as a result of the package manager in use, see the
9321 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
9322 section.
9323 </para>
9324 </glossdef>
9325 </glossentry>
9326
9327 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
9328 <info>
9329 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)."
9330 </info>
9331 <glossdef>
9332 <para role="glossdeffirst">
9333<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9334 Determines how to split up the binary and debug information
9335 when creating <filename>*-dbg</filename> packages to be
9336 used with the GNU Project Debugger (GDB).
9337 </para>
9338
9339 <para>
9340 With the
9341 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
9342 you can control where debug information, which can include
9343 or exclude source files, is stored:
9344 <itemizedlist>
9345 <listitem><para>
9346 ".debug": Debug symbol files are placed next
9347 to the binary in a <filename>.debug</filename>
9348 directory on the target.
9349 For example, if a binary is installed into
9350 <filename>/bin</filename>, the corresponding debug
9351 symbol files are installed in
9352 <filename>/bin/.debug</filename>.
9353 Source files are placed in
9354 <filename>/usr/src/debug</filename>.
9355 This is the default behavior.
9356 </para></listitem>
9357 <listitem><para>
9358 "debug-file-directory": Debug symbol files are
9359 placed under <filename>/usr/lib/debug</filename>
9360 on the target, and separated by the path from where
9361 the binary is installed.
9362 For example, if a binary is installed in
9363 <filename>/bin</filename>, the corresponding debug
9364 symbols are installed in
9365 <filename>/usr/lib/debug/bin</filename>.
9366 Source files are placed in
9367 <filename>/usr/src/debug</filename>.
9368 </para></listitem>
9369 <listitem><para>
9370 "debug-without-src": The same behavior as
9371 ".debug" previously described with the exception
9372 that no source files are installed.
9373 </para></listitem>.
9374 </itemizedlist>
9375 </para>
9376
9377 <para>
9378 You can find out more about debugging using GDB by reading
9379 the
9380 "<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 -05009381 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009382 </para>
9383 </glossdef>
9384 </glossentry>
9385
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009386 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
9387 <info>
9388 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
9389 </info>
9390 <glossdef>
9391 <para role="glossdeffirst">
9392<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9393 Prevents specific packages from being installed when
9394 you are installing complementary packages.
9395 </para>
9396
9397 <para>
9398 You might find that you want to prevent installing certain
9399 packages when you are installing complementary packages.
9400 For example, if you are using
9401 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
9402 to install <filename>dev-pkgs</filename>, you might not want
9403 to install all packages from a particular multilib.
9404 If you find yourself in this situation, you can use the
9405 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
9406 to specify regular expressions to match the packages you
9407 want to exclude.
9408 </para>
9409 </glossdef>
9410 </glossentry>
9411
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009412 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
9413 <info>
9414 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
9415 </info>
9416 <glossdef>
9417 <para role="glossdeffirst">
9418<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9419 Lists packages that should not be installed into an image.
9420 For example:
9421 <literallayout class='monospaced'>
9422 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
9423 </literallayout>
9424 </para>
9425
9426 <para>
9427 You can set this variable globally in your
9428 <filename>local.conf</filename> file or you can attach it to
9429 a specific image recipe by using the recipe name override:
9430 <literallayout class='monospaced'>
9431 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
9432 </literallayout>
9433 </para>
9434
9435 <para>
9436 If you choose to not install
9437 a package using this variable and some other package is
9438 dependent on it (i.e. listed in a recipe's
9439 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9440 variable), the OpenEmbedded build system generates a fatal
9441 installation error.
9442 Because the build system halts the process with a fatal
9443 error, you can use the variable with an iterative
9444 development process to remove specific components from a
9445 system.
9446 </para>
9447
9448 <para>
9449 Support for this variable exists only when using the
9450 IPK and RPM packaging backend.
9451 Support does not exist for DEB.
9452 </para>
9453
9454 <para>
9455 See the
9456 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
9457 and the
9458 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9459 variables for related information.
9460 </para>
9461 </glossdef>
9462 </glossentry>
9463
9464 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
9465 <info>
9466 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."
9467 </info>
9468 <glossdef>
9469 <para role="glossdeffirst">
9470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9471 Specifies the list of architectures compatible with the device CPU.
9472 This variable is useful when you build for several different devices that use
9473 miscellaneous processors such as XScale and ARM926-EJS.
9474 </para>
9475 </glossdef>
9476 </glossentry>
9477
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009478 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
9479 <info>
9480 PACKAGE_FEED_ARCHS[doc] = "Specifies user-defined package architectures when constructing package feed URIs."
9481 </info>
9482 <glossdef>
9483 <para role="glossdeffirst">
9484<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9485 Specifies the package architectures used as part of the
9486 package feed URIs during the build.
9487 The <filename>PACKAGE_FEED_ARCHS</filename> variable is
9488 appended to the final package feed URI, which is constructed
9489 using the
9490 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9491 and
9492 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
9493 variables.
9494 </para>
9495
9496 <para>
9497 Consider the following example where the
9498 <filename>PACKAGE_FEED_URIS</filename>,
9499 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9500 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9501 defined in your <filename>local.conf</filename> file:
9502 <literallayout class='monospaced'>
9503 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9504 https://example.com/packagerepos/updates"
9505 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9506 PACKAGE_FEED_ARCHS = "all core2-64"
9507 </literallayout>
9508 Given these settings, the resulting package feeds are
9509 as follows:
9510 <literallayout class='monospaced'>
9511 https://example.com/packagerepos/release/rpm/all
9512 https://example.com/packagerepos/release/rpm/core2-64
9513 https://example.com/packagerepos/release/rpm-dev/all
9514 https://example.com/packagerepos/release/rpm-dev/core2-64
9515 https://example.com/packagerepos/updates/rpm/all
9516 https://example.com/packagerepos/updates/rpm/core2-64
9517 https://example.com/packagerepos/updates/rpm-dev/all
9518 https://example.com/packagerepos/updates/rpm-dev/core2-64
9519 </literallayout>
9520 </para>
9521 </glossdef>
9522 </glossentry>
9523
9524 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
9525 <info>
9526 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
9527 </info>
9528 <glossdef>
9529 <para role="glossdeffirst">
9530<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9531 Specifies the base path used when constructing package feed
9532 URIs.
9533 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
9534 makes up the middle portion of a package feed URI used
9535 by the OpenEmbedded build system.
9536 The base path lies between the
9537 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9538 and
9539 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9540 variables.
9541 </para>
9542
9543 <para>
9544 Consider the following example where the
9545 <filename>PACKAGE_FEED_URIS</filename>,
9546 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9547 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9548 defined in your <filename>local.conf</filename> file:
9549 <literallayout class='monospaced'>
9550 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9551 https://example.com/packagerepos/updates"
9552 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9553 PACKAGE_FEED_ARCHS = "all core2-64"
9554 </literallayout>
9555 Given these settings, the resulting package feeds are
9556 as follows:
9557 <literallayout class='monospaced'>
9558 https://example.com/packagerepos/release/rpm/all
9559 https://example.com/packagerepos/release/rpm/core2-64
9560 https://example.com/packagerepos/release/rpm-dev/all
9561 https://example.com/packagerepos/release/rpm-dev/core2-64
9562 https://example.com/packagerepos/updates/rpm/all
9563 https://example.com/packagerepos/updates/rpm/core2-64
9564 https://example.com/packagerepos/updates/rpm-dev/all
9565 https://example.com/packagerepos/updates/rpm-dev/core2-64
9566 </literallayout>
9567 </para>
9568 </glossdef>
9569 </glossentry>
9570
9571 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
9572 <info>
9573 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
9574 </info>
9575 <glossdef>
9576 <para role="glossdeffirst">
9577<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9578 Specifies the front portion of the package feed URI
9579 used by the OpenEmbedded build system.
9580 Each final package feed URI is comprised of
9581 <filename>PACKAGE_FEED_URIS</filename>,
9582 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
9583 and
9584 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9585 variables.
9586 </para>
9587
9588 <para>
9589 Consider the following example where the
9590 <filename>PACKAGE_FEED_URIS</filename>,
9591 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9592 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9593 defined in your <filename>local.conf</filename> file:
9594 <literallayout class='monospaced'>
9595 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9596 https://example.com/packagerepos/updates"
9597 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9598 PACKAGE_FEED_ARCHS = "all core2-64"
9599 </literallayout>
9600 Given these settings, the resulting package feeds are
9601 as follows:
9602 <literallayout class='monospaced'>
9603 https://example.com/packagerepos/release/rpm/all
9604 https://example.com/packagerepos/release/rpm/core2-64
9605 https://example.com/packagerepos/release/rpm-dev/all
9606 https://example.com/packagerepos/release/rpm-dev/core2-64
9607 https://example.com/packagerepos/updates/rpm/all
9608 https://example.com/packagerepos/updates/rpm/core2-64
9609 https://example.com/packagerepos/updates/rpm-dev/all
9610 https://example.com/packagerepos/updates/rpm-dev/core2-64
9611 </literallayout>
9612 </para>
9613 </glossdef>
9614 </glossentry>
9615
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009616 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
9617 <info>
9618 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
9619 </info>
9620 <glossdef>
9621 <para role="glossdeffirst">
9622<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9623 The <filename>PACKAGE_GROUP</filename> variable has been
9624 renamed to
9625 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
9626 See the variable description for
9627 <filename>FEATURE_PACKAGES</filename> for information.
9628 </para>
9629
9630 <para>
9631 If if you use the <filename>PACKAGE_GROUP</filename>
9632 variable, the OpenEmbedded build system issues a warning
9633 message.
9634 </para>
9635 </glossdef>
9636 </glossentry>
9637
9638 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
9639 <info>
9640 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."
9641 </info>
9642 <glossdef>
9643 <para role="glossdeffirst">
9644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9645 The final list of packages passed to the package manager
9646 for installation into the image.
9647 </para>
9648
9649 <para>
9650 Because the package manager controls actual installation
9651 of all packages, the list of packages passed using
9652 <filename>PACKAGE_INSTALL</filename> is not the final list
9653 of packages that are actually installed.
9654 This variable is internal to the image construction
9655 code.
9656 Consequently, in general, you should use the
9657 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9658 variable to specify packages for installation.
9659 The exception to this is when working with
9660 the
9661 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
9662 image.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05009663 When working with an initial RAM filesystem (initramfs)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009664 image, use the <filename>PACKAGE_INSTALL</filename>
9665 variable.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05009666 For information on creating an initramfs, see the
9667 "<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 -05009668 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009669 </para>
9670 </glossdef>
9671 </glossentry>
9672
9673 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
9674 <info>
9675 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."
9676 </info>
9677 <glossdef>
9678 <para role="glossdeffirst">
9679<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9680 Specifies a list of packages the OpenEmbedded build
9681 system attempts to install when creating an image.
9682 If a listed package fails to install, the build system
9683 does not generate an error.
9684 This variable is generally not user-defined.
9685 </para>
9686 </glossdef>
9687 </glossentry>
9688
9689 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
9690 <info>
9691 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."
9692 </info>
9693 <glossdef>
9694 <para role="glossdeffirst">
9695<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9696 Specifies a list of functions run to pre-process the
9697 <link linkend='var-PKGD'><filename>PKGD</filename></link>
9698 directory prior to splitting the files out to individual
9699 packages.
9700 </para>
9701 </glossdef>
9702 </glossentry>
9703
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009704 <glossentry id='var-PACKAGE_WRITE_DEPS'><glossterm>PACKAGE_WRITE_DEPS</glossterm>
9705 <info>
9706 PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools."
9707 </info>
9708 <glossdef>
9709 <para role="glossdeffirst">
9710<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9711 Specifies a list of dependencies for post-installation and
9712 pre-installation scripts on native/cross tools.
9713 If your post-installation or pre-installation script can
9714 execute at rootfs creation time rather than on the
9715 target but depends on a native tool in order to execute,
9716 you need to list the tools in
9717 <filename>PACKAGE_WRITE_DEPENDS</filename>.
9718 </para>
9719
9720 <para>
9721 For information on running post-installation scripts, see
9722 the
9723 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-post-installation-scripts'>Post-Installation Scripts</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009724 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009725 </para>
9726 </glossdef>
9727 </glossentry>
9728
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009729 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
9730 <info>
9731 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
9732 </info>
9733 <glossdef>
9734 <para role="glossdeffirst">
9735<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9736 This variable provides a means of enabling or disabling
9737 features of a recipe on a per-recipe basis.
9738 <filename>PACKAGECONFIG</filename> blocks are defined
9739 in recipes when you specify features and then arguments
9740 that define feature behaviors.
9741 Here is the basic block structure:
9742 <literallayout class='monospaced'>
9743 PACKAGECONFIG ??= "f1 f2 f3 ..."
9744 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1"
9745 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2"
9746 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3"
9747 </literallayout>
9748 </para>
9749
9750 <para>
9751 The <filename>PACKAGECONFIG</filename>
9752 variable itself specifies a space-separated list of the
9753 features to enable.
9754 Following the features, you can determine the behavior of
9755 each feature by providing up to four order-dependent
9756 arguments, which are separated by commas.
9757 You can omit any argument you like but must retain the
9758 separating commas.
9759 The order is important and specifies the following:
9760 <orderedlist>
9761 <listitem><para>Extra arguments
9762 that should be added to the configure script
9763 argument list
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009764 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
9765 or
9766 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009767 if the feature is enabled.</para></listitem>
9768 <listitem><para>Extra arguments
9769 that should be added to <filename>EXTRA_OECONF</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009770 or <filename>PACKAGECONFIG_CONFARGS</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009771 if the feature is disabled.
9772 </para></listitem>
9773 <listitem><para>Additional build dependencies
9774 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
9775 that should be added if the feature is enabled.
9776 </para></listitem>
9777 <listitem><para>Additional runtime dependencies
9778 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
9779 that should be added if the feature is enabled.
9780 </para></listitem>
9781 </orderedlist>
9782 </para>
9783
9784 <para>
9785 Consider the following
9786 <filename>PACKAGECONFIG</filename> block taken from the
9787 <filename>librsvg</filename> recipe.
9788 In this example the feature is <filename>croco</filename>,
9789 which has three arguments that determine the feature's
9790 behavior.
9791 <literallayout class='monospaced'>
9792 PACKAGECONFIG ??= "croco"
9793 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
9794 </literallayout>
9795 The <filename>--with-croco</filename> and
9796 <filename>libcroco</filename> arguments apply only if
9797 the feature is enabled.
9798 In this case, <filename>--with-croco</filename> is
9799 added to the configure script argument list and
9800 <filename>libcroco</filename> is added to
9801 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
9802 On the other hand, if the feature is disabled say through
9803 a <filename>.bbappend</filename> file in another layer, then
9804 the second argument <filename>--without-croco</filename> is
9805 added to the configure script rather than
9806 <filename>--with-croco</filename>.
9807 </para>
9808
9809 <para>
9810 The basic <filename>PACKAGECONFIG</filename> structure
9811 previously described holds true regardless of whether you
9812 are creating a block or changing a block.
9813 When creating a block, use the structure inside your
9814 recipe.
9815 </para>
9816
9817 <para>
9818 If you want to change an existing
9819 <filename>PACKAGECONFIG</filename> block, you can do so
9820 one of two ways:
9821 <itemizedlist>
9822 <listitem><para><emphasis>Append file:</emphasis>
9823 Create an append file named
9824 <replaceable>recipename</replaceable><filename>.bbappend</filename>
9825 in your layer and override the value of
9826 <filename>PACKAGECONFIG</filename>.
9827 You can either completely override the variable:
9828 <literallayout class='monospaced'>
9829 PACKAGECONFIG="f4 f5"
9830 </literallayout>
9831 Or, you can just append the variable:
9832 <literallayout class='monospaced'>
9833 PACKAGECONFIG_append = " f4"
9834 </literallayout></para></listitem>
9835 <listitem><para><emphasis>Configuration file:</emphasis>
9836 This method is identical to changing the block
9837 through an append file except you edit your
9838 <filename>local.conf</filename> or
9839 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
9840 As with append files previously described,
9841 you can either completely override the variable:
9842 <literallayout class='monospaced'>
9843 PACKAGECONFIG_pn-<replaceable>recipename</replaceable>="f4 f5"
9844 </literallayout>
9845 Or, you can just amend the variable:
9846 <literallayout class='monospaced'>
9847 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
9848 </literallayout></para></listitem>
9849 </itemizedlist>
9850 </para>
9851 </glossdef>
9852 </glossentry>
9853
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009854 <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
9855 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009856 PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from the PACKAGECONFIG setting."
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009857 </info>
9858 <glossdef>
9859 <para role="glossdeffirst">
9860<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9861 A space-separated list of configuration options generated
9862 from the
9863 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
9864 setting.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009865 </para>
9866
9867 <para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009868 Classes such as
9869 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
9870 and
9871 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
9872 use <filename>PACKAGECONFIG_CONFARGS</filename> to pass
9873 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
9874 options to <filename>configure</filename> and
9875 <filename>cmake</filename>, respectively.
9876 If you are using
9877 <filename>PACKAGECONFIG</filename> but not a class that
9878 handles the <filename>do_configure</filename> task, then
9879 you need to use
9880 <filename>PACKAGECONFIG_CONFARGS</filename> appropriately.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009881 </para>
9882
9883 <para>
9884 For additional information, see the
9885 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
9886 variable.
9887 </para>
9888 </glossdef>
9889 </glossentry>
9890
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009891 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
9892 <info>
9893 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
9894 </info>
9895 <glossdef>
9896 <para role="glossdeffirst">
9897<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9898 For recipes inheriting the
9899 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
9900 class, setting
9901 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
9902 "1" specifies that the normal complementary packages
9903 (i.e. <filename>-dev</filename>,
9904 <filename>-dbg</filename>, and so forth) should not be
9905 automatically created by the
9906 <filename>packagegroup</filename> recipe, which is the
9907 default behavior.
9908 </para>
9909 </glossdef>
9910 </glossentry>
9911
9912 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
9913 <info>
9914 PACKAGES[doc] = "The list of packages to be created from the recipe."
9915 </info>
9916 <glossdef>
9917 <para role="glossdeffirst">
9918<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9919 The list of packages to be created from the recipe.
9920 The default value is the following:
9921 <literallayout class='monospaced'>
9922 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
9923 </literallayout>
9924 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009925
9926 <para>
9927 During packaging, the
9928 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
9929 task goes through <filename>PACKAGES</filename> and uses
9930 the
9931 <link linkend='var-FILES'><filename>FILES</filename></link>
9932 variable corresponding to each package to assign files to
9933 the package.
9934 If a file matches the <filename>FILES</filename> variable
9935 for more than one package in <filename>PACKAGES</filename>,
9936 it will be assigned to the earliest (leftmost) package.
9937 </para>
9938
9939 <para>
9940 Packages in the variable's list that are empty (i.e. where
9941 none of the patterns in
9942 <filename>FILES_</filename><replaceable>pkg</replaceable>
9943 match any files installed by the
9944 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
9945 task) are not generated, unless generation is forced through
9946 the
9947 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
9948 variable.
9949 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009950 </glossdef>
9951 </glossentry>
9952
9953 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
9954 <info>
9955 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
9956 </info>
9957 <glossdef>
9958 <para role="glossdeffirst">
9959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9960 A promise that your recipe satisfies runtime dependencies
9961 for optional modules that are found in other recipes.
9962 <filename>PACKAGES_DYNAMIC</filename>
9963 does not actually satisfy the dependencies, it only states that
9964 they should be satisfied.
9965 For example, if a hard, runtime dependency
9966 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
9967 of another package is satisfied
9968 at build time through the <filename>PACKAGES_DYNAMIC</filename>
9969 variable, but a package with the module name is never actually
9970 produced, then the other package will be broken.
9971 Thus, if you attempt to include that package in an image,
9972 you will get a dependency failure from the packaging system
9973 during the
9974 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
9975 task.
9976 </para>
9977
9978 <para>
9979 Typically, if there is a chance that such a situation can
9980 occur and the package that is not created is valid
9981 without the dependency being satisfied, then you should use
9982 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9983 (a soft runtime dependency) instead of
9984 <filename>RDEPENDS</filename>.
9985 </para>
9986
9987 <para>
9988 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
9989 variable when you are splitting packages, see the
9990 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009991 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009992 </para>
9993 </glossdef>
9994 </glossentry>
9995
9996 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
9997 <info>
9998 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
9999 </info>
10000 <glossdef>
10001 <para role="glossdeffirst">
10002<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10003 Specifies a list of functions run to perform additional
10004 splitting of files into individual packages.
10005 Recipes can either prepend to this variable or prepend
10006 to the <filename>populate_packages</filename> function
10007 in order to perform additional package splitting.
10008 In either case, the function should set
10009 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
10010 <link linkend='var-FILES'><filename>FILES</filename></link>,
10011 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10012 and other packaging variables appropriately in order to
10013 perform the desired splitting.
10014 </para>
10015 </glossdef>
10016 </glossentry>
10017
10018 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
10019 <info>
10020 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."
10021 </info>
10022 <glossdef>
10023 <para role="glossdeffirst">
10024<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10025 Extra options passed to the <filename>make</filename>
10026 command during the
10027 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
10028 task in order to specify parallel compilation on the local
10029 build host.
10030 This variable is usually in the form "-j <replaceable>x</replaceable>",
10031 where <replaceable>x</replaceable> represents the maximum
10032 number of parallel threads <filename>make</filename> can
10033 run.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010034 <note><title>Caution</title>
10035 In order for <filename>PARALLEL_MAKE</filename> to be
10036 effective, <filename>make</filename> must be called
10037 with
10038 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10039 An easy way to ensure this is to use the
10040 <filename>oe_runmake</filename> function.
10041 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010042 </para>
10043
10044 <para>
10045 By default, the OpenEmbedded build system automatically
10046 sets this variable to be equal to the number of cores the
10047 build system uses.
10048 <note>
10049 If the software being built experiences dependency
10050 issues during the <filename>do_compile</filename>
10051 task that result in race conditions, you can clear
10052 the <filename>PARALLEL_MAKE</filename> variable within
10053 the recipe as a workaround.
10054 For information on addressing race conditions, see the
10055 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010056 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010057 </note>
10058 For single socket systems (i.e. one CPU), you should not
10059 have to override this variable to gain optimal parallelism
10060 during builds.
10061 However, if you have very large systems that employ
10062 multiple physical CPUs, you might want to make sure the
10063 <filename>PARALLEL_MAKE</filename> variable is not
10064 set higher than "-j 20".
10065 </para>
10066
10067 <para>
10068 For more information on speeding up builds, see the
10069 "<link linkend='speeding-up-the-build'>Speeding Up the Build</link>"
10070 section.
10071 </para>
10072 </glossdef>
10073 </glossentry>
10074
10075 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
10076 <info>
10077 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
10078 </info>
10079 <glossdef>
10080 <para role="glossdeffirst">
10081<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10082 Extra options passed to the
10083 <filename>make install</filename> command during the
10084 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10085 task in order to specify parallel installation.
10086 This variable defaults to the value of
10087 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010088 <note><title>Notes and Cautions</title>
10089 <para>In order for <filename>PARALLEL_MAKEINST</filename>
10090 to be
10091 effective, <filename>make</filename> must be called
10092 with
10093 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10094 An easy way to ensure this is to use the
10095 <filename>oe_runmake</filename> function.</para>
10096
10097 <para>If the software being built experiences
10098 dependency issues during the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010099 <filename>do_install</filename> task that result in
10100 race conditions, you can clear the
10101 <filename>PARALLEL_MAKEINST</filename> variable within
10102 the recipe as a workaround.
10103 For information on addressing race conditions, see the
10104 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010105 section in the Yocto Project Development Tasks Manual.
10106 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010107 </note>
10108 </para>
10109 </glossdef>
10110 </glossentry>
10111
10112 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
10113 <info>
10114 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
10115 </info>
10116 <glossdef>
10117 <para role="glossdeffirst">
10118<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10119 Determines the action to take when a patch fails.
10120 You can set this variable to one of two values: "noop" and
10121 "user".
10122 </para>
10123
10124 <para>
10125 The default value of "noop" causes the build to simply fail
10126 when the OpenEmbedded build system cannot successfully
10127 apply a patch.
10128 Setting the value to "user" causes the build system to
10129 launch a shell and places you in the right location so that
10130 you can manually resolve the conflicts.
10131 </para>
10132
10133 <para>
10134 Set this variable in your
10135 <filename>local.conf</filename> file.
10136 </para>
10137 </glossdef>
10138 </glossentry>
10139
10140 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
10141 <info>
10142 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
10143 </info>
10144 <glossdef>
10145 <para role="glossdeffirst">
10146<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10147 Specifies the utility used to apply patches for a recipe
10148 during the
10149 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
10150 task.
10151 You can specify one of three utilities: "patch", "quilt", or
10152 "git".
10153 The default utility used is "quilt" except for the
10154 quilt-native recipe itself.
10155 Because the quilt tool is not available at the
10156 time quilt-native is being patched, it uses "patch".
10157 </para>
10158
10159 <para>
10160 If you wish to use an alternative patching tool, set the
10161 variable in the recipe using one of the following:
10162 <literallayout class='monospaced'>
10163 PATCHTOOL = "patch"
10164 PATCHTOOL = "quilt"
10165 PATCHTOOL = "git"
10166 </literallayout>
10167 </para>
10168 </glossdef>
10169 </glossentry>
10170
10171 <glossentry id='var-PE'><glossterm>PE</glossterm>
10172 <info>
10173 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."
10174 </info>
10175 <glossdef>
10176 <para role="glossdeffirst">
10177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10178 The epoch of the recipe.
10179 By default, this variable is unset.
10180 The variable is used to make upgrades possible when the
10181 versioning scheme changes in some backwards incompatible
10182 way.
10183 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010184
10185 <para>
10186 <filename>PE</filename> is the default value of the
10187 <link linkend='var-PKGE'><filename>PKGE</filename></link>
10188 variable.
10189 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010190 </glossdef>
10191 </glossentry>
10192
10193 <glossentry id='var-PF'><glossterm>PF</glossterm>
10194 <info>
10195 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
10196 </info>
10197 <glossdef>
10198 <para role="glossdeffirst">
10199<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10200 Specifies the recipe or package name and includes all version and revision
10201 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
10202 <filename>bash-4.2-r1/</filename>).
10203 This variable is comprised of the following:
10204 <literallayout class='monospaced'>
10205 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
10206 </literallayout>
10207 </para>
10208 </glossdef>
10209 </glossentry>
10210
10211 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
10212 <info>
10213 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
10214 </info>
10215 <glossdef>
10216 <para role="glossdeffirst">
10217<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10218 When inheriting the
10219 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
10220 class, this variable identifies packages that contain
10221 the pixbuf loaders used with
10222 <filename>gdk-pixbuf</filename>.
10223 By default, the <filename>pixbufcache</filename> class
10224 assumes that the loaders are in the recipe's main package
10225 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
10226 Use this variable if the loaders you need are in a package
10227 other than that main package.
10228 </para>
10229 </glossdef>
10230 </glossentry>
10231
10232 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
10233 <info>
10234 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."
10235 </info>
10236 <glossdef>
10237 <para role="glossdeffirst">
10238<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10239 The name of the resulting package created by the
10240 OpenEmbedded build system.
10241 <note>
10242 When using the <filename>PKG</filename> variable, you
10243 must use a package name override.
10244 </note>
10245 </para>
10246
10247 <para>
10248 For example, when the
10249 <link linkend='ref-classes-debian'><filename>debian</filename></link>
10250 class renames the output package, it does so by setting
10251 <filename>PKG_<replaceable>packagename</replaceable></filename>.
10252 </para>
10253 </glossdef>
10254 </glossentry>
10255
10256 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
10257 <info>
10258 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
10259 </info>
10260 <glossdef>
10261 <para role="glossdeffirst">
10262<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10263 The path to <filename>pkg-config</filename> files for the
10264 current build context.
10265 <filename>pkg-config</filename> reads this variable
10266 from the environment.
10267 </para>
10268 </glossdef>
10269 </glossentry>
10270
10271 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
10272 <info>
10273 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
10274 </info>
10275 <glossdef>
10276 <para role="glossdeffirst">
10277<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10278 Points to the destination directory for files to be
10279 packaged before they are split into individual packages.
10280 This directory defaults to the following:
10281 <literallayout class='monospaced'>
10282 ${WORKDIR}/package
10283 </literallayout>
10284 </para>
10285
10286 <para>
10287 Do not change this default.
10288 </para>
10289 </glossdef>
10290 </glossentry>
10291
10292 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
10293 <info>
10294 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
10295 </info>
10296 <glossdef>
10297 <para role="glossdeffirst">
10298<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10299 Points to a shared, global-state directory that holds data
10300 generated during the packaging process.
10301 During the packaging process, the
10302 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10303 task packages data for each recipe and installs it into
10304 this temporary, shared area.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010305 This directory defaults to the following, which you should
10306 not change:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010307 <literallayout class='monospaced'>
10308 ${STAGING_DIR_HOST}/pkgdata
10309 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010310 For examples of how this data is used, see the
10311 "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
10312 section and the
10313 "<link linkend='viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></link>"
10314 section.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010315 </para>
10316 </glossdef>
10317 </glossentry>
10318
10319 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
10320 <info>
10321 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
10322 </info>
10323 <glossdef>
10324 <para role="glossdeffirst">
10325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10326 Points to the parent directory for files to be packaged
10327 after they have been split into individual packages.
10328 This directory defaults to the following:
10329 <literallayout class='monospaced'>
10330 ${WORKDIR}/packages-split
10331 </literallayout>
10332 </para>
10333
10334 <para>
10335 Under this directory, the build system creates
10336 directories for each package specified in
10337 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
10338 Do not change this default.
10339 </para>
10340 </glossdef>
10341 </glossentry>
10342
10343 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
10344 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010345 PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010346 </info>
10347 <glossdef>
10348 <para role="glossdeffirst">
10349<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010350 Points to a temporary work area where the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010351 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010352 task saves package metadata.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010353 The <filename>PKGDESTWORK</filename> location defaults to
10354 the following:
10355 <literallayout class='monospaced'>
10356 ${WORKDIR}/pkgdata
10357 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010358 Do not change this default.
10359 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010360
10361 <para>
10362 The
10363 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10364 task copies the package metadata from
10365 <filename>PKGDESTWORK</filename> to
10366 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
10367 to make it available globally.
10368 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010369 </glossdef>
10370 </glossentry>
10371
10372 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
10373 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010374 PKGE[doc] = "The epoch of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010375 </info>
10376 <glossdef>
10377 <para role="glossdeffirst">
10378<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010379 The epoch of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010380 By default, <filename>PKGE</filename> is set to
10381 <link linkend='var-PE'><filename>PE</filename></link>.
10382 </para>
10383 </glossdef>
10384 </glossentry>
10385
10386 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
10387 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010388 PKGR[doc] = "The revision of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010389 </info>
10390 <glossdef>
10391 <para role="glossdeffirst">
10392<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010393 The revision of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010394 By default, <filename>PKGR</filename> is set to
10395 <link linkend='var-PR'><filename>PR</filename></link>.
10396 </para>
10397 </glossdef>
10398 </glossentry>
10399
10400 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
10401 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010402 PKGV[doc] = "The version of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010403 </info>
10404 <glossdef>
10405 <para role="glossdeffirst">
10406<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010407 The version of the package(s) built by the
10408 recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010409 By default, <filename>PKGV</filename> is set to
10410 <link linkend='var-PV'><filename>PV</filename></link>.
10411 </para>
10412 </glossdef>
10413 </glossentry>
10414
10415 <glossentry id='var-PN'><glossterm>PN</glossterm>
10416 <info>
10417 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. It refers to a package name in the context of a file created or produced by the OpenEmbedded build system."
10418 </info>
10419 <glossdef>
10420 <para role="glossdeffirst">
10421<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10422 This variable can have two separate functions depending on the context: a recipe
10423 name or a resulting package name.
10424 </para>
10425
10426 <para>
10427 <filename>PN</filename> refers to a recipe name in the context of a file used
10428 by the OpenEmbedded build system as input to create a package.
10429 The name is normally extracted from the recipe file name.
10430 For example, if the recipe is named
10431 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
10432 will be "expat".
10433 </para>
10434
10435 <para>
10436 The variable refers to a package name in the context of a file created or produced by the
10437 OpenEmbedded build system.
10438 </para>
10439
10440 <para>
10441 If applicable, the <filename>PN</filename> variable also contains any special
10442 suffix or prefix.
10443 For example, using <filename>bash</filename> to build packages for the native
10444 machine, <filename>PN</filename> is <filename>bash-native</filename>.
10445 Using <filename>bash</filename> to build packages for the target and for Multilib,
10446 <filename>PN</filename> would be <filename>bash</filename> and
10447 <filename>lib64-bash</filename>, respectively.
10448 </para>
10449 </glossdef>
10450 </glossentry>
10451
10452 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
10453 <info>
10454 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
10455 </info>
10456 <glossdef>
10457 <para role="glossdeffirst">
10458<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10459 Lists recipes you do not want the OpenEmbedded build system
10460 to build.
10461 This variable works in conjunction with the
10462 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
10463 class, which the recipe must inherit globally.
10464 </para>
10465
10466 <para>
10467 To prevent a recipe from being built, inherit the class
10468 globally and use the variable in your
10469 <filename>local.conf</filename> file.
10470 Here is an example that prevents
10471 <filename>myrecipe</filename> from being built:
10472 <literallayout class='monospaced'>
10473 INHERIT += "blacklist"
10474 PNBLACKLIST[myrecipe] = "Not supported by our organization."
10475 </literallayout>
10476 </para>
10477 </glossdef>
10478 </glossentry>
10479
10480 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
10481 <info>
10482 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."
10483 </info>
10484 <glossdef>
10485 <para role="glossdeffirst">
10486<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10487 Specifies a list of functions to call once the
10488 OpenEmbedded build system has created the host part of
10489 the SDK.
10490 You can specify functions separated by semicolons:
10491 <literallayout class='monospaced'>
10492 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
10493 </literallayout>
10494 </para>
10495
10496 <para>
10497 If you need to pass the SDK path to a command
10498 within a function, you can use
10499 <filename>${SDK_DIR}</filename>, which points to
10500 the parent directory used by the OpenEmbedded build
10501 system when creating SDK output.
10502 See the
10503 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10504 variable for more information.
10505 </para>
10506 </glossdef>
10507 </glossentry>
10508
10509 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
10510 <info>
10511 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."
10512 </info>
10513 <glossdef>
10514 <para role="glossdeffirst">
10515<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10516 Specifies a list of functions to call once the
10517 OpenEmbedded build system has created the target part of
10518 the SDK.
10519 You can specify functions separated by semicolons:
10520 <literallayout class='monospaced'>
10521 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
10522 </literallayout>
10523 </para>
10524
10525 <para>
10526 If you need to pass the SDK path to a command
10527 within a function, you can use
10528 <filename>${SDK_DIR}</filename>, which points to
10529 the parent directory used by the OpenEmbedded build
10530 system when creating SDK output.
10531 See the
10532 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10533 variable for more information.
10534 </para>
10535 </glossdef>
10536 </glossentry>
10537
10538 <glossentry id='var-PR'><glossterm>PR</glossterm>
10539 <info>
10540 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
10541 </info>
10542 <glossdef>
10543 <para role="glossdeffirst">
10544<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010545 The revision of the recipe. The default value for this
10546 variable is "r0".
10547 Subsequent revisions of the recipe conventionally have the
10548 values "r1", "r2", and so forth.
10549 When
10550 <link linkend='var-PV'><filename>PV</filename></link>
10551 increases, <filename>PR</filename> is conventionally reset
10552 to "r0".
10553 <note>
10554 The OpenEmbedded build system does not need the aid of
10555 <filename>PR</filename> to know when to rebuild a
10556 recipe.
10557 The build system uses the task
10558 <ulink url='&YOCTO_DOCS_BB_URL;#checksums'>input checksums</ulink>
10559 along with the
10560 <link linkend='structure-build-tmp-stamps'>stamp</link>
10561 and
10562 <link linkend='shared-state-cache'>shared state cache</link>
10563 mechanisms.
10564 </note>
10565 The <filename>PR</filename> variable primarily becomes
10566 significant when a package manager dynamically installs
10567 packages on an already built image.
10568 In this case, <filename>PR</filename>, which is the default
10569 value of
10570 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
10571 helps the package manager distinguish which package is the
10572 most recent one in cases where many packages have the same
10573 <filename>PV</filename> (i.e. <filename>PKGV</filename>).
10574 A component having many packages with the same
10575 <filename>PV</filename> usually means that the packages all
10576 install the same upstream version, but with later
10577 (<filename>PR</filename>) version packages including
10578 packaging fixes.
10579 <note>
10580 <filename>PR</filename> does not need to be increased
10581 for changes that do not change the package contents or
10582 metadata.
10583 </note>
10584 Because manually managing <filename>PR</filename> can be
10585 cumbersome and error-prone, an automated solution exists.
10586 See the
10587 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010588 section in the Yocto Project Development Tasks Manual
10589 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010590 </para>
10591 </glossdef>
10592 </glossentry>
10593
10594 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
10595 <info>
10596 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
10597 </info>
10598 <glossdef>
10599 <para role="glossdeffirst">
10600<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10601 If multiple recipes provide an item, this variable
10602 determines which recipe should be given preference.
10603 You should always suffix the variable with the name of the
10604 provided item, and you should set it to the
10605 <link linkend='var-PN'><filename>PN</filename></link>
10606 of the recipe to which you want to give precedence.
10607 Some examples:
10608 <literallayout class='monospaced'>
10609 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
10610 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
10611 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
10612 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010613 For more information see:
10614 <link linkend='metadata-virtual-providers'>Metadata (Virtual Providers)</link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010615 <note>
10616 If you set <filename>PREFERRED_PROVIDER</filename>
10617 for a <filename>virtual/*</filename> item, then any
10618 recipe that
10619 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
10620 that item that is not selected by
10621 <filename>PREFERRED_PROVIDER</filename> is prevented
10622 from building, which is usually desirable since this
10623 mechanism is designed to select between mutually
10624 exclusive alternative providers.
10625 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010626 </para>
10627 </glossdef>
10628 </glossentry>
10629
10630 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
10631 <info>
10632 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
10633 </info>
10634 <glossdef>
10635 <para role="glossdeffirst">
10636<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10637 If there are multiple versions of recipes available, this
10638 variable determines which recipe should be given preference.
10639 You must always suffix the variable with the
10640 <link linkend='var-PN'><filename>PN</filename></link>
10641 you want to select, and you should set the
10642 <link linkend='var-PV'><filename>PV</filename></link>
10643 accordingly for precedence.
10644 You can use the "<filename>%</filename>" character as a
10645 wildcard to match any number of characters, which can be
10646 useful when specifying versions that contain long revision
10647 numbers that could potentially change.
10648 Here are two examples:
10649 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010650 PREFERRED_VERSION_python = "3.4.0"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010651 PREFERRED_VERSION_linux-yocto = "4.12%"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010652 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010653 <note>
10654 The specified version is matched against
10655 <link linkend='var-PV'><filename>PV</filename></link>,
10656 which does not necessarily match the version part of
10657 the recipe's filename.
10658 For example, consider two recipes
10659 <filename>foo_1.2.bb</filename> and
10660 <filename>foo_git.bb</filename> where
10661 <filename>foo_git.bb</filename> contains the following
10662 assignment:
10663 <literallayout class='monospaced'>
10664 PV = "1.1+git${SRCPV}"
10665 </literallayout>
10666 In this case, the correct way to select
10667 <filename>foo_git.bb</filename> is by using an
10668 assignment such as the following:
10669 <literallayout class='monospaced'>
10670 PREFERRED_VERSION_foo = "1.1+git%"
10671 </literallayout>
10672 Compare that previous example against the following
10673 incorrect example, which does not work:
10674 <literallayout class='monospaced'>
10675 PREFERRED_VERSION_foo = "git"
10676 </literallayout>
10677 </note>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010678 Sometimes the <filename>PREFERRED_VERSION</filename>
10679 variable can be set by configuration files in a way that
10680 is hard to change.
10681 You can use
10682 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
10683 to set a machine-specific override.
10684 Here is an example:
10685 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010686 PREFERRED_VERSION_linux-yocto_qemux86 = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010687 </literallayout>
10688 Although not recommended, worst case, you can also use the
10689 "forcevariable" override, which is the strongest override
10690 possible.
10691 Here is an example:
10692 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010693 PREFERRED_VERSION_linux-yocto_forcevariable = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010694 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010695 <note>
10696 The <filename>_forcevariable</filename> override is
10697 not handled specially.
10698 This override only works because the default value of
10699 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
10700 includes "forcevariable".
10701 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010702 </para>
10703 </glossdef>
10704 </glossentry>
10705
10706 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
10707 <info>
10708 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
10709 </info>
10710 <glossdef>
10711 <para role="glossdeffirst">
10712<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10713 Specifies additional paths from which the OpenEmbedded
10714 build system gets source code.
10715 When the build system searches for source code, it first
10716 tries the local download directory.
10717 If that location fails, the build system tries locations
10718 defined by <filename>PREMIRRORS</filename>, the upstream
10719 source, and then locations specified by
10720 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
10721 in that order.
10722 </para>
10723
10724 <para>
10725 Assuming your distribution
10726 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
10727 is "poky", the default value for
10728 <filename>PREMIRRORS</filename> is defined in the
10729 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010730 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010731 </para>
10732
10733 <para>
10734 Typically, you could add a specific server for the
10735 build system to attempt before any others by adding
10736 something like the following to the
10737 <filename>local.conf</filename> configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010738 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010739 <literallayout class='monospaced'>
10740 PREMIRRORS_prepend = "\
10741 git://.*/.* http://www.yoctoproject.org/sources/ \n \
10742 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
10743 http://.*/.* http://www.yoctoproject.org/sources/ \n \
10744 https://.*/.* http://www.yoctoproject.org/sources/ \n"
10745 </literallayout>
10746 These changes cause the build system to intercept
10747 Git, FTP, HTTP, and HTTPS requests and direct them to
10748 the <filename>http://</filename> sources mirror.
10749 You can use <filename>file://</filename> URLs to point
10750 to local directories or network shares as well.
10751 </para>
10752 </glossdef>
10753 </glossentry>
10754
10755 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
10756 <info>
10757 PRIORITY[doc] = "Indicates the importance of a package. The default value is 'optional'. Other standard values are 'required', 'standard' and 'extra'."
10758 </info>
10759 <glossdef>
10760 <para role="glossdeffirst">
10761<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10762 Indicates the importance of a package.
10763 </para>
10764
10765 <para>
10766 <filename>PRIORITY</filename> is considered to be part of
10767 the distribution policy because the importance of any given
10768 recipe depends on the purpose for which the distribution
10769 is being produced.
10770 Thus, <filename>PRIORITY</filename> is not normally set
10771 within recipes.
10772 </para>
10773
10774 <para>
10775 You can set <filename>PRIORITY</filename> to "required",
10776 "standard", "extra", and "optional", which is the default.
10777 </para>
10778 </glossdef>
10779 </glossentry>
10780
10781 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
10782 <info>
10783 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
10784 </info>
10785 <glossdef>
10786 <para role="glossdeffirst">
10787<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10788 Specifies libraries installed within a recipe that
10789 should be ignored by the OpenEmbedded build system's
10790 shared library resolver.
10791 This variable is typically used when software being
10792 built by a recipe has its own private versions of a
10793 library normally provided by another recipe.
10794 In this case, you would not want the package containing
10795 the private libraries to be set as a dependency on other
10796 unrelated packages that should instead depend on the
10797 package providing the standard version of the library.
10798 </para>
10799
10800 <para>
10801 Libraries specified in this variable should be specified
10802 by their file name.
10803 For example, from the Firefox recipe in meta-browser:
10804 <literallayout class='monospaced'>
10805 PRIVATE_LIBS = "libmozjs.so \
10806 libxpcom.so \
10807 libnspr4.so \
10808 libxul.so \
10809 libmozalloc.so \
10810 libplc4.so \
10811 libplds4.so"
10812 </literallayout>
10813 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010814
10815 <para>
10816 For more information, see the
10817 "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
10818 section.
10819 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010820 </glossdef>
10821 </glossentry>
10822
10823 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
10824 <info>
10825 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."
10826 </info>
10827 <glossdef>
10828 <para role="glossdeffirst">
10829<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10830 A list of aliases by which a particular recipe can be
10831 known.
10832 By default, a recipe's own
10833 <filename><link linkend='var-PN'>PN</link></filename>
10834 is implicitly already in its <filename>PROVIDES</filename>
10835 list.
10836 If a recipe uses <filename>PROVIDES</filename>, the
10837 additional aliases are synonyms for the recipe and can
10838 be useful satisfying dependencies of other recipes during
10839 the build as specified by
10840 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
10841 </para>
10842
10843 <para>
10844 Consider the following example
10845 <filename>PROVIDES</filename> statement from a recipe
10846 file <filename>libav_0.8.11.bb</filename>:
10847 <literallayout class='monospaced'>
10848 PROVIDES += "libpostproc"
10849 </literallayout>
10850 The <filename>PROVIDES</filename> statement results in
10851 the "libav" recipe also being known as "libpostproc".
10852 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010853
10854 <para>
10855 In addition to providing recipes under alternate names,
10856 the <filename>PROVIDES</filename> mechanism is also used
10857 to implement virtual targets.
10858 A virtual target is a name that corresponds to some
10859 particular functionality (e.g. a Linux kernel).
10860 Recipes that provide the functionality in question list the
10861 virtual target in <filename>PROVIDES</filename>.
10862 Recipes that depend on the functionality in question can
10863 include the virtual target in
10864 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
10865 to leave the choice of provider open.
10866 </para>
10867
10868 <para>
10869 Conventionally, virtual targets have names on the form
10870 "virtual/function" (e.g. "virtual/kernel").
10871 The slash is simply part of the name and has no
10872 syntactical significance.
10873 </para>
10874
10875 <para>
10876 The
10877 <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
10878 variable is used to select which particular recipe
10879 provides a virtual target.
10880 <note>
10881 <para>A corresponding mechanism for virtual runtime
10882 dependencies (packages) exists.
10883 However, the mechanism does not depend on any special
10884 functionality beyond ordinary variable assignments.
10885 For example,
10886 <filename>VIRTUAL-RUNTIME_dev_manager</filename>
10887 refers to the package of the component that manages
10888 the <filename>/dev</filename> directory.</para>
10889
10890 <para>Setting the "preferred provider" for runtime
10891 dependencies is as simple as using the following
10892 assignment in a configuration file:</para>
10893 <literallayout class='monospaced'>
10894 VIRTUAL-RUNTIME_dev_manager = "udev"
10895 </literallayout>
10896 </note>
10897 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010898 </glossdef>
10899 </glossentry>
10900
10901 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
10902 <info>
10903 PRSERV_HOST[doc] = "The network based PR service host and port."
10904 </info>
10905 <glossdef>
10906 <para role="glossdeffirst">
10907<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10908 The network based
10909 <link linkend='var-PR'><filename>PR</filename></link>
10910 service host and port.
10911 </para>
10912
10913 <para>
10914 The <filename>conf/local.conf.sample.extended</filename>
10915 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010916 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010917 shows how the <filename>PRSERV_HOST</filename> variable is
10918 set:
10919 <literallayout class='monospaced'>
10920 PRSERV_HOST = "localhost:0"
10921 </literallayout>
10922 You must set the variable if you want to automatically
10923 start a local
10924 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
10925 You can set <filename>PRSERV_HOST</filename> to other
10926 values to use a remote PR service.
10927 </para>
10928 </glossdef>
10929 </glossentry>
10930
10931 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
10932 <info>
10933 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
10934 </info>
10935 <glossdef>
10936 <para role="glossdeffirst">
10937<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10938 Specifies whether or not
10939 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
10940 (ptest) functionality is enabled when building a recipe.
10941 You should not set this variable directly.
10942 Enabling and disabling building Package Tests
10943 at build time should be done by adding "ptest" to (or
10944 removing it from)
10945 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
10946 </para>
10947 </glossdef>
10948 </glossentry>
10949
10950 <glossentry id='var-PV'><glossterm>PV</glossterm>
10951 <info>
10952 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
10953 </info>
10954 <glossdef>
10955 <para role="glossdeffirst">
10956<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10957 The version of the recipe.
10958 The version is normally extracted from the recipe filename.
10959 For example, if the recipe is named
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010960 <filename>expat_2.0.1.bb</filename>, then the default value
10961 of <filename>PV</filename> will be "2.0.1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010962 <filename>PV</filename> is generally not overridden within
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010963 a recipe unless it is building an unstable (i.e.
10964 development) version from a source code repository
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010965 (e.g. Git or Subversion).
10966 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010967
10968 <para>
10969 <filename>PV</filename> is the default value of the
10970 <link linkend='var-PKGV'><filename>PKGV</filename></link>
10971 variable.
10972 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010973 </glossdef>
10974 </glossentry>
10975
10976 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
10977 <info>
10978 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."
10979 </info>
10980 <glossdef>
10981 <para role="glossdeffirst">
10982<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10983 When used by recipes that inherit the
10984 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
10985 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
10986 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
10987 or
10988 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
10989 classes, denotes the Application Binary Interface (ABI)
10990 currently in use for Python.
10991 By default, the ABI is "m".
10992 You do not have to set this variable as the OpenEmbedded
10993 build system sets it for you.
10994 </para>
10995
10996 <para>
10997 The OpenEmbedded build system uses the ABI to construct
10998 directory names used when installing the Python headers
10999 and libraries in sysroot
11000 (e.g. <filename>.../python3.3m/...</filename>).
11001 </para>
11002
11003 <para>
11004 Recipes that inherit the
11005 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>
11006 class during cross-builds also use this variable to
11007 locate the headers and libraries of the appropriate Python
11008 that the extension is targeting.
11009 </para>
11010 </glossdef>
11011 </glossentry>
11012
11013 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
11014 <info>
11015 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
11016 </info>
11017 <glossdef>
11018 <para role="glossdeffirst">
11019<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11020 When used by recipes that inherit the
11021 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11022 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11023 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11024 or
11025 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11026 classes, specifies the major Python version being built.
11027 For Python 2.x, <filename>PYTHON_PN</filename> would
11028 be "python2". For Python 3.x, the variable would be
11029 "python3".
11030 You do not have to set this variable as the
11031 OpenEmbedded build system automatically sets it for you.
11032 </para>
11033
11034 <para>
11035 The variable allows recipes to use common infrastructure
11036 such as the following:
11037 <literallayout class='monospaced'>
11038 DEPENDS += "${PYTHON_PN}-native"
11039 </literallayout>
11040 In the previous example, the version of the dependency
11041 is <filename>PYTHON_PN</filename>.
11042 </para>
11043 </glossdef>
11044 </glossentry>
11045
11046 </glossdiv>
11047
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011048 <glossdiv id='var-glossary-r'><title>R</title>
11049
11050 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
11051 <info>
11052 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
11053 </info>
11054 <glossdef>
11055 <para role="glossdeffirst">
11056<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11057 The minimal command and arguments to run
11058 <filename>ranlib</filename>.
11059 </para>
11060 </glossdef>
11061 </glossentry>
11062
11063 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
11064 <info>
11065 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."
11066 </info>
11067 <glossdef>
11068 <para role="glossdeffirst">
11069<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11070 The list of packages that conflict with packages.
11071 Note that packages will not be installed if conflicting
11072 packages are not first removed.
11073 </para>
11074
11075 <para>
11076 Like all package-controlling variables, you must always use
11077 them in conjunction with a package name override.
11078 Here is an example:
11079 <literallayout class='monospaced'>
11080 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
11081 </literallayout>
11082 </para>
11083
11084 <para>
11085 BitBake, which the OpenEmbedded build system uses, supports
11086 specifying versioned dependencies.
11087 Although the syntax varies depending on the packaging
11088 format, BitBake hides these differences from you.
11089 Here is the general syntax to specify versions with
11090 the <filename>RCONFLICTS</filename> variable:
11091 <literallayout class='monospaced'>
11092 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11093 </literallayout>
11094 For <filename>operator</filename>, you can specify the
11095 following:
11096 <literallayout class='monospaced'>
11097 =
11098 &lt;
11099 &gt;
11100 &lt;=
11101 &gt;=
11102 </literallayout>
11103 For example, the following sets up a dependency on version
11104 1.2 or greater of the package <filename>foo</filename>:
11105 <literallayout class='monospaced'>
11106 RCONFLICTS_${PN} = "foo (>= 1.2)"
11107 </literallayout>
11108 </para>
11109 </glossdef>
11110 </glossentry>
11111
11112 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
11113 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011114 RDEPENDS[doc] = "Lists runtime dependencies of a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011115 </info>
11116 <glossdef>
11117 <para role="glossdeffirst">
11118<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011119 Lists runtime dependencies of a package.
11120 These dependencies are other packages that must be
11121 installed in order for the package to function correctly.
11122 As an example, the following assignment declares that the
11123 package <filename>foo</filename> needs the packages
11124 <filename>bar</filename> and <filename>baz</filename> to
11125 be installed:
11126 <literallayout class='monospaced'>
11127 RDEPENDS_foo = "bar baz"
11128 </literallayout>
11129 The most common types of package runtime dependencies are
11130 automatically detected and added.
11131 Therefore, most recipes do not need to set
11132 <filename>RDEPENDS</filename>.
11133 For more information, see the
11134 "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
11135 section.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011136 </para>
11137
11138 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011139 The practical effect of the above
11140 <filename>RDEPENDS</filename> assignment is that
11141 <filename>bar</filename> and <filename>baz</filename>
11142 will be declared as dependencies inside the package
11143 <filename>foo</filename> when it is written out by one of
11144 the
11145 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
11146 tasks.
11147 Exactly how this is done depends on which package format
11148 is used, which is determined by
11149 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
11150 When the corresponding package manager installs the
11151 package, it will know to also install the packages on
11152 which it depends.
11153 </para>
11154
11155 <para>
11156 To ensure that the packages <filename>bar</filename> and
11157 <filename>baz</filename> get built, the previous
11158 <filename>RDEPENDS</filename> assignment also causes a task
11159 dependency to be added.
11160 This dependency is from the recipe's
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011161 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011162 (not to be confused with
11163 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
11164 task to the <filename>do_package_write_*</filename>
11165 task of the recipes that build <filename>bar</filename> and
11166 <filename>baz</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011167 </para>
11168
11169 <para>
11170 The names of the packages you list within
11171 <filename>RDEPENDS</filename> must be the names of other
11172 packages - they cannot be recipe names.
11173 Although package names and recipe names usually match,
11174 the important point here is that you are
11175 providing package names within the
11176 <filename>RDEPENDS</filename> variable.
11177 For an example of the default list of packages created from
11178 a recipe, see the
11179 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11180 variable.
11181 </para>
11182
11183 <para>
11184 Because the <filename>RDEPENDS</filename> variable applies
11185 to packages being built, you should always use the variable
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011186 in a form with an attached package name (remember that a
11187 single recipe can build multiple packages).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011188 For example, suppose you are building a development package
11189 that depends on the <filename>perl</filename> package.
11190 In this case, you would use the following
11191 <filename>RDEPENDS</filename> statement:
11192 <literallayout class='monospaced'>
11193 RDEPENDS_${PN}-dev += "perl"
11194 </literallayout>
11195 In the example, the development package depends on
11196 the <filename>perl</filename> package.
11197 Thus, the <filename>RDEPENDS</filename> variable has the
11198 <filename>${PN}-dev</filename> package name as part of the
11199 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011200 <note>
11201 <title>Caution</title>
11202 <filename>RDEPENDS_${PN}-dev</filename> includes
11203 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
11204 by default.
11205 This default is set in the BitBake configuration file
11206 (<filename>meta/conf/bitbake.conf</filename>).
11207 Be careful not to accidentally remove
11208 <filename>${PN}</filename> when modifying
11209 <filename>RDEPENDS_${PN}-dev</filename>.
11210 Use the "+=" operator rather than the "=" operator.
11211 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011212 </para>
11213
11214 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011215 The package names you use with
11216 <filename>RDEPENDS</filename> must appear as they would in
11217 the <filename>PACKAGES</filename> variable.
11218 The
11219 <link linkend='var-PKG'><filename>PKG</filename></link>
11220 variable allows a different name to be used for
11221 the final package (e.g. the
11222 <link linkend='ref-classes-debian'><filename>debian</filename></link>
11223 class uses this to rename packages), but this final package
11224 name cannot be used with <filename>RDEPENDS</filename>,
11225 which makes sense as <filename>RDEPENDS</filename> is meant
11226 to be independent of the package format used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011227 </para>
11228
11229 <para>
11230 BitBake, which the OpenEmbedded build system uses, supports
11231 specifying versioned dependencies.
11232 Although the syntax varies depending on the packaging
11233 format, BitBake hides these differences from you.
11234 Here is the general syntax to specify versions with
11235 the <filename>RDEPENDS</filename> variable:
11236 <literallayout class='monospaced'>
11237 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11238 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011239 For <replaceable>operator</replaceable>, you can specify the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011240 following:
11241 <literallayout class='monospaced'>
11242 =
11243 &lt;
11244 &gt;
11245 &lt;=
11246 &gt;=
11247 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011248 For <replaceable>version</replaceable>, provide the version
11249 number.
11250 <note><title>Tip</title>
11251 You can use
11252 <link linkend='var-EXTENDPKGV'><filename>EXTENDPKGV</filename></link>
11253 to provide a full package version specification.
11254 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011255 For example, the following sets up a dependency on version
11256 1.2 or greater of the package <filename>foo</filename>:
11257 <literallayout class='monospaced'>
11258 RDEPENDS_${PN} = "foo (>= 1.2)"
11259 </literallayout>
11260 </para>
11261
11262 <para>
11263 For information on build-time dependencies, see the
11264 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
11265 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011266 You can also see the
11267 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
11268 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
11269 sections in the BitBake User Manual for additional
11270 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011271 </para>
11272 </glossdef>
11273 </glossentry>
11274
11275 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
11276 <info>
11277 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."
11278 </info>
11279 <glossdef>
11280 <para role="glossdeffirst">
11281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11282 When inheriting the
11283 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
11284 class, this
11285 variable identifies distribution features that must
11286 exist in the current configuration in order for the
11287 OpenEmbedded build system to build the recipe.
11288 In other words, if the
11289 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
11290 lists a feature that does not appear in
11291 <filename>DISTRO_FEATURES</filename> within the
11292 current configuration, an error occurs and the
11293 build stops.
11294 </para>
11295 </glossdef>
11296 </glossentry>
11297
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011298 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
11299 <info>
11300 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
11301 </info>
11302 <glossdef>
11303 <para role="glossdeffirst">
11304<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11305 With <filename>rm_work</filename> enabled, this
11306 variable specifies a list of recipes whose work directories
11307 should not be removed.
11308 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
11309 section for more details.
11310 </para>
11311 </glossdef>
11312 </glossentry>
11313
11314 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
11315 <info>
11316 ROOT_HOME[doc] = "Defines the root home directory."
11317 </info>
11318 <glossdef>
11319 <para role="glossdeffirst">
11320<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11321 Defines the root home directory.
11322 By default, this directory is set as follows in the
11323 BitBake configuration file:
11324 <literallayout class='monospaced'>
11325 ROOT_HOME ??= "/home/root"
11326 </literallayout>
11327 <note>
11328 This default value is likely used because some
11329 embedded solutions prefer to have a read-only root
11330 filesystem and prefer to keep writeable data in one
11331 place.
11332 </note>
11333 </para>
11334
11335 <para>
11336 You can override the default by setting the variable
11337 in any layer or in the <filename>local.conf</filename> file.
11338 Because the default is set using a "weak" assignment
11339 (i.e. "??="), you can use either of the following forms
11340 to define your override:
11341 <literallayout class='monospaced'>
11342 ROOT_HOME = "/root"
11343 ROOT_HOME ?= "/root"
11344 </literallayout>
11345 These override examples use <filename>/root</filename>,
11346 which is probably the most commonly used override.
11347 </para>
11348 </glossdef>
11349 </glossentry>
11350
11351 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
11352 <info>
11353 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
11354 </info>
11355 <glossdef>
11356 <para role="glossdeffirst">
11357<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11358 Indicates a filesystem image to include as the root
11359 filesystem.
11360 </para>
11361
11362 <para>
11363 The <filename>ROOTFS</filename> variable is an optional
11364 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011365 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011366 class.
11367 </para>
11368 </glossdef>
11369 </glossentry>
11370
11371 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
11372 <info>
11373 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
11374 </info>
11375 <glossdef>
11376 <para role="glossdeffirst">
11377<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11378 Specifies a list of functions to call after the
11379 OpenEmbedded build system has installed packages.
11380 You can specify functions separated by semicolons:
11381 <literallayout class='monospaced'>
11382 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11383 </literallayout>
11384 </para>
11385
11386 <para>
11387 If you need to pass the root filesystem path to a command
11388 within a function, you can use
11389 <filename>${IMAGE_ROOTFS}</filename>, which points to
11390 the directory that becomes the root filesystem image.
11391 See the
11392 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11393 variable for more information.
11394 </para>
11395 </glossdef>
11396 </glossentry>
11397
11398 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
11399 <info>
11400 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
11401 </info>
11402 <glossdef>
11403 <para role="glossdeffirst">
11404<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11405 Specifies a list of functions to call once the
11406 OpenEmbedded build system has created the root filesystem.
11407 You can specify functions separated by semicolons:
11408 <literallayout class='monospaced'>
11409 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11410 </literallayout>
11411 </para>
11412
11413 <para>
11414 If you need to pass the root filesystem path to a command
11415 within a function, you can use
11416 <filename>${IMAGE_ROOTFS}</filename>, which points to
11417 the directory that becomes the root filesystem image.
11418 See the
11419 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11420 variable for more information.
11421 </para>
11422 </glossdef>
11423 </glossentry>
11424
11425 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
11426 <info>
11427 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
11428 </info>
11429 <glossdef>
11430 <para role="glossdeffirst">
11431<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11432 Specifies a list of functions to call after the
11433 OpenEmbedded build system has removed unnecessary
11434 packages.
11435 When runtime package management is disabled in the
11436 image, several packages are removed including
11437 <filename>base-passwd</filename>,
11438 <filename>shadow</filename>, and
11439 <filename>update-alternatives</filename>.
11440 You can specify functions separated by semicolons:
11441 <literallayout class='monospaced'>
11442 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11443 </literallayout>
11444 </para>
11445
11446 <para>
11447 If you need to pass the root filesystem path to a command
11448 within a function, you can use
11449 <filename>${IMAGE_ROOTFS}</filename>, which points to
11450 the directory that becomes the root filesystem image.
11451 See the
11452 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11453 variable for more information.
11454 </para>
11455 </glossdef>
11456 </glossentry>
11457
11458 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
11459 <info>
11460 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
11461 </info>
11462 <glossdef>
11463 <para role="glossdeffirst">
11464<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11465 Specifies a list of functions to call before the
11466 OpenEmbedded build system has created the root filesystem.
11467 You can specify functions separated by semicolons:
11468 <literallayout class='monospaced'>
11469 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11470 </literallayout>
11471 </para>
11472
11473 <para>
11474 If you need to pass the root filesystem path to a command
11475 within a function, you can use
11476 <filename>${IMAGE_ROOTFS}</filename>, which points to
11477 the directory that becomes the root filesystem image.
11478 See the
11479 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11480 variable for more information.
11481 </para>
11482 </glossdef>
11483 </glossentry>
11484
11485 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
11486 <info>
11487 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."
11488 </info>
11489 <glossdef>
11490 <para role="glossdeffirst">
11491<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11492 A list of package name aliases that a package also provides.
11493 These aliases are useful for satisfying runtime dependencies
11494 of other packages both during the build and on the target
11495 (as specified by
11496 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
11497 <note>
11498 A package's own name is implicitly already in its
11499 <filename>RPROVIDES</filename> list.
11500 </note>
11501 </para>
11502
11503 <para>
11504 As with all package-controlling variables, you must always
11505 use the variable in conjunction with a package name override.
11506 Here is an example:
11507 <literallayout class='monospaced'>
11508 RPROVIDES_${PN} = "widget-abi-2"
11509 </literallayout>
11510 </para>
11511 </glossdef>
11512 </glossentry>
11513
11514 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
11515 <info>
11516 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."
11517 </info>
11518 <glossdef>
11519 <para role="glossdeffirst">
11520<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11521 A list of packages that extends the usability of a package
11522 being built.
11523 The package being built does not depend on this list of
11524 packages in order to successfully build, but rather
11525 uses them for extended usability.
11526 To specify runtime dependencies for packages, see the
11527 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
11528 variable.
11529 </para>
11530
11531 <para>
11532 The package manager will automatically install the
11533 <filename>RRECOMMENDS</filename> list of packages when
11534 installing the built package.
11535 However, you can prevent listed packages from being
11536 installed by using the
11537 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
11538 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
11539 and
11540 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
11541 variables.
11542 </para>
11543
11544 <para>
11545 Packages specified in
11546 <filename>RRECOMMENDS</filename> need not actually be
11547 produced.
11548 However, a recipe must exist that provides each package,
11549 either through the
11550 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11551 or
11552 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
11553 variables or the
11554 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
11555 variable, or an error will occur during the build.
11556 If such a recipe does exist and the package is not produced,
11557 the build continues without error.
11558 </para>
11559
11560 <para>
11561 Because the <filename>RRECOMMENDS</filename> variable
11562 applies to packages being built, you should always attach
11563 an override to the variable to specify the particular
11564 package whose usability is being extended.
11565 For example, suppose you are building a development package
11566 that is extended to support wireless functionality.
11567 In this case, you would use the following:
11568 <literallayout class='monospaced'>
11569 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
11570 </literallayout>
11571 In the example, the package name
11572 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
11573 must appear as it would in the
11574 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
11575 namespace before any renaming of the output package by
11576 classes such as <filename>debian.bbclass</filename>.
11577 </para>
11578
11579 <para>
11580 BitBake, which the OpenEmbedded build system uses, supports
11581 specifying versioned recommends.
11582 Although the syntax varies depending on the packaging
11583 format, BitBake hides these differences from you.
11584 Here is the general syntax to specify versions with
11585 the <filename>RRECOMMENDS</filename> variable:
11586 <literallayout class='monospaced'>
11587 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11588 </literallayout>
11589 For <filename>operator</filename>, you can specify the
11590 following:
11591 <literallayout class='monospaced'>
11592 =
11593 &lt;
11594 &gt;
11595 &lt;=
11596 &gt;=
11597 </literallayout>
11598 For example, the following sets up a recommend on version
11599 1.2 or greater of the package <filename>foo</filename>:
11600 <literallayout class='monospaced'>
11601 RRECOMMENDS_${PN} = "foo (>= 1.2)"
11602 </literallayout>
11603 </para>
11604 </glossdef>
11605 </glossentry>
11606
11607 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
11608 <info>
11609 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."
11610 </info>
11611 <glossdef>
11612 <para role="glossdeffirst">
11613<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11614 A list of packages replaced by a package.
11615 The package manager uses this variable to determine which
11616 package should be installed to replace other package(s)
11617 during an upgrade.
11618 In order to also have the other package(s) removed at the
11619 same time, you must add the name of the other
11620 package to the
11621 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
11622 </para>
11623
11624 <para>
11625 As with all package-controlling variables, you must use
11626 this variable in conjunction with a package name
11627 override.
11628 Here is an example:
11629 <literallayout class='monospaced'>
11630 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
11631 </literallayout>
11632 </para>
11633
11634 <para>
11635 BitBake, which the OpenEmbedded build system uses, supports
11636 specifying versioned replacements.
11637 Although the syntax varies depending on the packaging
11638 format, BitBake hides these differences from you.
11639 Here is the general syntax to specify versions with
11640 the <filename>RREPLACES</filename> variable:
11641 <literallayout class='monospaced'>
11642 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11643 </literallayout>
11644 For <filename>operator</filename>, you can specify the
11645 following:
11646 <literallayout class='monospaced'>
11647 =
11648 &lt;
11649 &gt;
11650 &lt;=
11651 &gt;=
11652 </literallayout>
11653 For example, the following sets up a replacement using
11654 version 1.2 or greater of the package
11655 <filename>foo</filename>:
11656 <literallayout class='monospaced'>
11657 RREPLACES_${PN} = "foo (>= 1.2)"
11658 </literallayout>
11659 </para>
11660 </glossdef>
11661 </glossentry>
11662
11663 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
11664 <info>
11665 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."
11666 </info>
11667 <glossdef>
11668 <para role="glossdeffirst">
11669<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11670 A list of additional packages that you can suggest for
11671 installation by the package manager at the time a package
11672 is installed.
11673 Not all package managers support this functionality.
11674 </para>
11675
11676 <para>
11677 As with all package-controlling variables, you must always
11678 use this variable in conjunction with a package name
11679 override.
11680 Here is an example:
11681 <literallayout class='monospaced'>
11682 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
11683 </literallayout>
11684 </para>
11685 </glossdef>
11686 </glossentry>
11687
11688 </glossdiv>
11689
11690 <glossdiv id='var-glossary-s'><title>S</title>
11691
11692 <glossentry id='var-S'><glossterm>S</glossterm>
11693 <info>
11694 S[doc] = "The location in the Build Directory where unpacked package source code resides."
11695 </info>
11696 <glossdef>
11697 <para role="glossdeffirst">
11698<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11699 The location in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011700 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011701 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011702 By default, this directory is
11703 <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>,
11704 where <filename>${BPN}</filename> is the base recipe name
11705 and <filename>${PV}</filename> is the recipe version.
11706 If the source tarball extracts the code to a directory
11707 named anything other than <filename>${BPN}-${PV}</filename>,
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011708 or if the source code is fetched from an SCM such as
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011709 Git or Subversion, then you must set <filename>S</filename>
11710 in the recipe so that the OpenEmbedded build system
11711 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011712 </para>
11713
11714 <para>
11715 As an example, assume a
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011716 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011717 top-level folder named <filename>poky</filename> and a
11718 default Build Directory at <filename>poky/build</filename>.
11719 In this case, the work directory the build system uses
11720 to keep the unpacked recipe for <filename>db</filename>
11721 is the following:
11722 <literallayout class='monospaced'>
11723 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
11724 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011725 The unpacked source code resides in the
11726 <filename>db-5.1.19</filename> folder.
11727 </para>
11728
11729 <para>
11730 This next example assumes a Git repository.
11731 By default, Git repositories are cloned to
11732 <filename>${WORKDIR}/git</filename> during
11733 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
11734 Since this path is different from the default value of
11735 <filename>S</filename>, you must set it specifically
11736 so the source can be located:
11737 <literallayout class='monospaced'>
11738 SRC_URI = "git://path/to/repo.git"
11739 S = "${WORKDIR}/git"
11740 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011741 </para>
11742 </glossdef>
11743 </glossentry>
11744
11745 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
11746 <info>
11747 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."
11748 </info>
11749 <glossdef>
11750 <para role="glossdeffirst">
11751<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11752 Specifies a list of command-line utilities that should be
11753 checked for during the initial sanity checking process when
11754 running BitBake.
11755 If any of the utilities are not installed on the build host,
11756 then BitBake immediately exits with an error.
11757 </para>
11758 </glossdef>
11759 </glossentry>
11760
11761 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
11762 <info>
11763 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
11764 </info>
11765 <glossdef>
11766 <para role="glossdeffirst">
11767<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11768 A list of the host distribution identifiers that the
11769 build system has been tested against.
11770 Identifiers consist of the host distributor ID
11771 followed by the release,
11772 as reported by the <filename>lsb_release</filename> tool
11773 or as read from <filename>/etc/lsb-release</filename>.
11774 Separate the list items with explicit newline
11775 characters (<filename>\n</filename>).
11776 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
11777 and the current value of
11778 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
11779 does not appear in the list, then the build system reports
11780 a warning that indicates the current host distribution has
11781 not been tested as a build host.
11782 </para>
11783 </glossdef>
11784 </glossentry>
11785
11786 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
11787 <info>
11788 SDK_ARCH[doc] = "The target architecture for the SDK."
11789 </info>
11790 <glossdef>
11791 <para role="glossdeffirst">
11792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11793 The target architecture for the SDK.
11794 Typically, you do not directly set this variable.
11795 Instead, use
11796 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
11797 </para>
11798 </glossdef>
11799 </glossentry>
11800
11801 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
11802 <info>
11803 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
11804 </info>
11805 <glossdef>
11806 <para role="glossdeffirst">
11807<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11808 The directory set up and used by the
11809 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
11810 to which the SDK is deployed.
11811 The <filename>populate_sdk_base</filename> class defines
11812 <filename>SDK_DEPLOY</filename> as follows:
11813 <literallayout class='monospaced'>
11814 SDK_DEPLOY = "${<link linkend='var-TMPDIR'>TMPDIR</link>}/deploy/sdk"
11815 </literallayout>
11816 </para>
11817 </glossdef>
11818 </glossentry>
11819
11820 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
11821 <info>
11822 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
11823 </info>
11824 <glossdef>
11825 <para role="glossdeffirst">
11826<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11827 The parent directory used by the OpenEmbedded build system
11828 when creating SDK output.
11829 The
11830 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
11831 class defines the variable as follows:
11832 <literallayout class='monospaced'>
11833 SDK_DIR = "${<link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>}/sdk"
11834 </literallayout>
11835 <note>
11836 The <filename>SDK_DIR</filename> directory is a
11837 temporary directory as it is part of
11838 <filename>WORKDIR</filename>.
11839 The final output directory is
11840 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
11841 </note>
11842 </para>
11843 </glossdef>
11844 </glossentry>
11845
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011846 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
11847 <info>
11848 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
11849 </info>
11850 <glossdef>
11851 <para role="glossdeffirst">
11852<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11853 Controls whether or not shared state artifacts are copied
11854 into the extensible SDK.
11855 The default value of "full" copies all of the required
11856 shared state artifacts into the extensible SDK.
11857 The value "minimal" leaves these artifacts out of the
11858 SDK.
11859 <note>
11860 If you set the variable to "minimal", you need to
11861 ensure
11862 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
11863 is set in the SDK's configuration to enable the
11864 artifacts to be fetched as needed.
11865 </note>
11866 </para>
11867 </glossdef>
11868 </glossentry>
11869
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011870 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
11871 <info>
11872 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."
11873 </info>
11874 <glossdef>
11875 <para role="glossdeffirst">
11876<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11877 The manifest file for the host part of the SDK.
11878 This file lists all the installed packages that make up
11879 the host part of SDK.
11880 The file contains package information on a line-per-package
11881 basis as follows:
11882 <literallayout class='monospaced'>
11883 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
11884 </literallayout>
11885 </para>
11886
11887 <para>
11888 The
11889 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
11890 class defines the manifest file as follows:
11891 <literallayout class='monospaced'>
11892 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
11893 </literallayout>
11894 The location is derived using the
11895 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
11896 and
11897 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
11898 variables.
11899 </para>
11900 </glossdef>
11901 </glossentry>
11902
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011903 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
11904 <info>
11905 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
11906 </info>
11907 <glossdef>
11908 <para role="glossdeffirst">
11909<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11910 When set to "1", specifies to include the packagedata for
11911 all recipes in the "world" target in the extensible SDK.
11912 Including this data allows the
11913 <filename>devtool search</filename> command to find these
11914 recipes in search results, as well as allows the
11915 <filename>devtool add</filename> command to map
11916 dependencies more effectively.
11917 <note>
11918 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
11919 variable significantly increases build time because
11920 all of world needs to be built.
11921 Enabling the variable also slightly increases the size
11922 of the extensible SDK.
11923 </note>
11924 </para>
11925 </glossdef>
11926 </glossentry>
11927
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011928 <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
11929 <info>
11930 SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
11931 </info>
11932 <glossdef>
11933 <para role="glossdeffirst">
11934<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11935 When set to "1", specifies to include the toolchain in the
11936 extensible SDK.
11937 Including the toolchain is useful particularly when
11938 <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
11939 is set to "minimal" to keep the SDK reasonably small
11940 but you still want to provide a usable toolchain.
11941 For example, suppose you want to use the toolchain from an
11942 IDE (e.g. Eclipse) or from other tools and you do not
11943 want to perform additional steps to install the toolchain.
11944 </para>
11945
11946 <para>
11947 The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
11948 defaults to "0" if <filename>SDK_EXT_TYPE</filename>
11949 is set to "minimal", and defaults to "1" if
11950 <filename>SDK_EXT_TYPE</filename> is set to "full".
11951 </para>
11952 </glossdef>
11953 </glossentry>
11954
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011955 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
11956 <info>
11957 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
11958 </info>
11959 <glossdef>
11960 <para role="glossdeffirst">
11961<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11962 A list of classes to remove from the
11963 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
11964 value globally within the extensible SDK configuration.
11965 The default value is "buildhistory icecc".
11966 </para>
11967
11968 <para>
11969 Some classes are not generally applicable within
11970 the extensible SDK context and you can use this variable
11971 to disable them.
11972 </para>
11973 </glossdef>
11974 </glossentry>
11975
11976 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
11977 <info>
11978 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
11979 </info>
11980 <glossdef>
11981 <para role="glossdeffirst">
11982<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11983 A list of variables not allowed through from the build
11984 system configuration into the extensible SDK configuration.
11985 Usually, these are variables that are specific to the
11986 machine on which the build system is running and thus
11987 would be potentially problematic within the extensible SDK.
11988 </para>
11989 </glossdef>
11990 </glossentry>
11991
11992 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
11993 <info>
11994 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
11995 </info>
11996 <glossdef>
11997 <para role="glossdeffirst">
11998<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11999 A list of variables allowed through from the build system
12000 configuration into the extensible SDK configuration.
12001 This list overrides the variables specified using the
12002 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
12003 variable as well as any variables identified by automatic
12004 blacklisting due to the "/" character being found at the
12005 start of the value, which is usually indicative of being a
12006 path and thus might not be valid on the system where the
12007 SDK is installed.
12008 </para>
12009 </glossdef>
12010 </glossentry>
12011
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012012 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
12013 <info>
12014 SDK_NAME[doc] = "The base name for SDK output files."
12015 </info>
12016 <glossdef>
12017 <para role="glossdeffirst">
12018<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12019 The base name for SDK output files.
12020 The name is derived from the
12021 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
12022 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12023 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12024 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
12025 and
12026 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
12027 variables:
12028 <literallayout class='monospaced'>
12029 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
12030 </literallayout>
12031 </para>
12032 </glossdef>
12033 </glossentry>
12034
12035 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
12036 <info>
12037 SDK_OS[doc] = "The operating system for which the SDK will be built."
12038 </info>
12039 <glossdef>
12040 <para role="glossdeffirst">
12041<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12042 Specifies the operating system for which the SDK
12043 will be built.
12044 The default value is the value of
12045 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
12046 </para>
12047 </glossdef>
12048 </glossentry>
12049
12050 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
12051 <info>
12052 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
12053 </info>
12054 <glossdef>
12055 <para role="glossdeffirst">
12056<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12057 The location used by the OpenEmbedded build system when
12058 creating SDK output.
12059 The
12060 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12061 class defines the variable as follows:
12062 <literallayout class='monospaced'>
12063 SDK_OUTPUT = "${<link linkend='var-SDK_DIR'>SDK_DIR</link>}/image"
12064 </literallayout>
12065 <note>
12066 The <filename>SDK_OUTPUT</filename> directory is a
12067 temporary directory as it is part of
12068 <filename>WORKDIR</filename> by way of
12069 <filename>SDK_DIR</filename>.
12070 The final output directory is
12071 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12072 </note>
12073 </para>
12074 </glossdef>
12075 </glossentry>
12076
12077 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
12078 <info>
12079 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."
12080 </info>
12081 <glossdef>
12082 <para role="glossdeffirst">
12083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12084 Specifies a list of architectures compatible with
12085 the SDK machine.
12086 This variable is set automatically and should not
12087 normally be hand-edited.
12088 Entries are separated using spaces and listed in order
12089 of priority.
12090 The default value for
12091 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
12092 ${SDK_ARCH}-${SDKPKGSUFFIX}".
12093 </para>
12094 </glossdef>
12095 </glossentry>
12096
12097 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
12098 <info>
12099 SDK_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the SDK."
12100 </info>
12101 <glossdef>
12102 <para role="glossdeffirst">
12103<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12104 Specifies a list of functions to call once the
12105 OpenEmbedded build system has created the SDK.
12106 You can specify functions separated by semicolons:
12107 <literallayout class='monospaced'>
12108 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12109 </literallayout>
12110 </para>
12111
12112 <para>
12113 If you need to pass an SDK path to a command within a
12114 function, you can use
12115 <filename>${SDK_DIR}</filename>, which points to
12116 the parent directory used by the OpenEmbedded build system
12117 when creating SDK output.
12118 See the
12119 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
12120 variable for more information.
12121 </para>
12122 </glossdef>
12123 </glossentry>
12124
12125 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
12126 <info>
12127 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
12128 </info>
12129 <glossdef>
12130 <para role="glossdeffirst">
12131<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012132 The toolchain binary prefix used for
12133 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012134 The OpenEmbedded build system uses the
12135 <filename>SDK_PREFIX</filename> value to set the
12136 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
12137 when building <filename>nativesdk</filename> recipes.
12138 The default value is "${SDK_SYS}-".
12139 </para>
12140 </glossdef>
12141 </glossentry>
12142
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012143 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
12144 <info>
12145 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
12146 </info>
12147 <glossdef>
12148 <para role="glossdeffirst">
12149<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12150 A list of shared state tasks added to the extensible SDK.
12151 By default, the following tasks are added:
12152 <literallayout class='monospaced'>
12153 do_populate_lic
12154 do_package_qa
12155 do_populate_sysroot
12156 do_deploy
12157 </literallayout>
12158 Despite the default value of "" for the
12159 <filename>SDK_RECRDEP_TASKS</filename> variable, the
12160 above four tasks are always added to the SDK.
12161 To specify tasks beyond these four, you need to use
12162 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
12163 you are defining additional tasks that are needed in
12164 order to build
12165 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
12166 </para>
12167 </glossdef>
12168 </glossentry>
12169
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012170 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
12171 <info>
12172 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
12173 </info>
12174 <glossdef>
12175 <para role="glossdeffirst">
12176<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12177 Specifies the system, including the architecture and the
12178 operating system, for which the SDK will be built.
12179 </para>
12180
12181 <para>
12182 The OpenEmbedded build system automatically sets this
12183 variable based on
12184 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12185 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
12186 and
12187 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
12188 You do not need to set the <filename>SDK_SYS</filename>
12189 variable yourself.
12190 </para>
12191 </glossdef>
12192 </glossentry>
12193
12194 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
12195 <info>
12196 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."
12197 </info>
12198 <glossdef>
12199 <para role="glossdeffirst">
12200<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12201 The manifest file for the target part of the SDK.
12202 This file lists all the installed packages that make up
12203 the target part of the SDK.
12204 The file contains package information on a line-per-package
12205 basis as follows:
12206 <literallayout class='monospaced'>
12207 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12208 </literallayout>
12209 </para>
12210
12211 <para>
12212 The
12213 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12214 class defines the manifest file as follows:
12215 <literallayout class='monospaced'>
12216 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
12217 </literallayout>
12218 The location is derived using the
12219 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12220 and
12221 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12222 variables.
12223 </para>
12224 </glossdef>
12225 </glossentry>
12226
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012227 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
12228 <info>
12229 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
12230 </info>
12231 <glossdef>
12232 <para role="glossdeffirst">
12233<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12234 A list of targets to install from shared state as part of
12235 the standard or extensible SDK installation.
12236 The default value is "${PN}" (i.e. the image from which
12237 the SDK is built).
12238 </para>
12239
12240 <para>
12241 The <filename>SDK_TARGETS</filename> variable is an
12242 internal variable and typically would not be changed.
12243 </para>
12244 </glossdef>
12245 </glossentry>
12246
12247 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
12248 <info>
12249 SDK_TITLE[doc] = "Specifies a title to be printed when running the SDK installer."
12250 </info>
12251 <glossdef>
12252 <para role="glossdeffirst">
12253<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12254 Specifies a title to be printed when running the SDK
12255 installer.
12256 The <filename>SDK_TITLE</filename> variable defaults to
12257 "<replaceable>distro</replaceable> SDK" for the standard
12258 SDK and "<replaceable>distro</replaceable> Extensible SDK"
12259 for the extensible SDK, where
12260 <replaceable>distro</replaceable> is the first one of
12261 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
12262 or
12263 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
12264 that is set in your configuration.
12265 </para>
12266 </glossdef>
12267 </glossentry>
12268
12269 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
12270 <info>
12271 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
12272 </info>
12273 <glossdef>
12274 <para role="glossdeffirst">
12275<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12276 An optional URL for an update server for the extensible
12277 SDK.
12278 If set, the value is used as the default update server when
12279 running <filename>devtool sdk-update</filename> within the
12280 extensible SDK.
12281 </para>
12282 </glossdef>
12283 </glossentry>
12284
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012285 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
12286 <info>
12287 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
12288 </info>
12289 <glossdef>
12290 <para role="glossdeffirst">
12291<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12292 Specifies the name of the SDK vendor.
12293 </para>
12294 </glossdef>
12295 </glossentry>
12296
12297 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
12298 <info>
12299 SDK_VERSION[doc] = "Specifies the version for the SDK."
12300 </info>
12301 <glossdef>
12302 <para role="glossdeffirst">
12303<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12304 Specifies the version of the SDK.
12305 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012306 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012307 defines the <filename>SDK_VERSION</filename> as follows:
12308 <literallayout class='monospaced'>
12309 SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
12310 </literallayout>
12311 </para>
12312
12313 <para>
12314 For additional information, see the
12315 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
12316 and
12317 <link linkend='var-DATE'><filename>DATE</filename></link>
12318 variables.
12319 </para>
12320 </glossdef>
12321 </glossentry>
12322
12323 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
12324 <info>
12325 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'."
12326 </info>
12327 <glossdef>
12328 <para role="glossdeffirst">
12329<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12330 Equivalent to
12331 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
12332 However, this variable applies to the SDK generated from an
12333 image using the following command:
12334 <literallayout class='monospaced'>
12335 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
12336 </literallayout>
12337 </para>
12338 </glossdef>
12339 </glossentry>
12340
12341 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
12342 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012343 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012344 </info>
12345 <glossdef>
12346 <para role="glossdeffirst">
12347<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012348 The machine for which the SDK is built.
12349 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012350 runs on the target you specify with the
12351 <filename>SDKMACHINE</filename> value.
12352 The value points to a corresponding
12353 <filename>.conf</filename> file under
12354 <filename>conf/machine-sdk/</filename>.
12355 </para>
12356
12357 <para>
12358 You can use "i686" and "x86_64" as possible values
12359 for this variable. The variable defaults to "i686"
12360 and is set in the local.conf file in the Build Directory.
12361 <literallayout class='monospaced'>
12362 SDKMACHINE ?= "i686"
12363 </literallayout>
12364 <note>
12365 You cannot set the <filename>SDKMACHINE</filename>
12366 variable in your distribution configuration file.
12367 If you do, the configuration will not take affect.
12368 </note>
12369 </para>
12370 </glossdef>
12371 </glossentry>
12372
12373 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
12374 <info>
12375 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
12376 </info>
12377 <glossdef>
12378 <para role="glossdeffirst">
12379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12380 Defines the path offered to the user for installation
12381 of the SDK that is generated by the OpenEmbedded build
12382 system.
12383 The path appears as the default location for installing
12384 the SDK when you run the SDK's installation script.
12385 You can override the offered path when you run the
12386 script.
12387 </para>
12388 </glossdef>
12389 </glossentry>
12390
12391 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
12392 <info>
12393 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
12394 </info>
12395 <glossdef>
12396 <para role="glossdeffirst">
12397<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12398 The full path to the sysroot used for cross-compilation
12399 within an SDK as it will be when installed into the
12400 default
12401 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
12402 </para>
12403 </glossdef>
12404 </glossentry>
12405
12406 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
12407 <info>
12408 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
12409 </info>
12410 <glossdef>
12411 <para role="glossdeffirst">
12412<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12413 The section in which packages should be categorized.
12414 Package management utilities can make use of this variable.
12415 </para>
12416 </glossdef>
12417 </glossentry>
12418
12419 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
12420 <info>
12421 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."
12422 </info>
12423 <glossdef>
12424 <para role="glossdeffirst">
12425<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12426 Specifies the optimization flags passed to the C compiler
12427 when building for the target.
12428 The flags are passed through the default value of the
12429 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
12430 variable.
12431 </para>
12432
12433 <para>
12434 The <filename>SELECTED_OPTIMIZATION</filename> variable
12435 takes the value of
12436 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
12437 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
12438 If that is the case, the value of
12439 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
12440 </para>
12441 </glossdef>
12442 </glossentry>
12443
12444 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
12445 <info>
12446 SERIAL_CONSOLE[doc] = "The speed and device for the serial port used to attach the serial console. This variable is given to the kernel as the 'console' parameter. After booting occurs, getty is started on that port so remote login is possible."
12447 </info>
12448 <glossdef>
12449 <para role="glossdeffirst">
12450<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12451 Defines a serial console (TTY) to enable using getty.
12452 Provide a value that specifies the baud rate followed by
12453 the TTY device name separated by a space.
12454 You cannot specify more than one TTY device:
12455 <literallayout class='monospaced'>
12456 SERIAL_CONSOLE = "115200 ttyS0"
12457 </literallayout>
12458 <note>
12459 The <filename>SERIAL_CONSOLE</filename> variable
12460 is deprecated.
12461 Please use the
12462 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
12463 variable.
12464 </note>
12465 </para>
12466 </glossdef>
12467 </glossentry>
12468
12469 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
12470 <info>
12471 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
12472 </info>
12473 <glossdef>
12474 <para role="glossdeffirst">
12475<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12476 Defines the serial consoles (TTYs) to enable using getty.
12477 Provide a value that specifies the baud rate followed by
12478 the TTY device name separated by a semicolon.
12479 Use spaces to separate multiple devices:
12480 <literallayout class='monospaced'>
12481 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
12482 </literallayout>
12483 </para>
12484 </glossdef>
12485 </glossentry>
12486
12487 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
12488 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012489 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 -050012490 </info>
12491 <glossdef>
12492 <para role="glossdeffirst">
12493<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012494 Specifies serial consoles, which must be listed in
12495 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
12496 to check against <filename>/proc/console</filename>
12497 before enabling them using getty.
12498 This variable allows aliasing in the format:
12499 &lt;device&gt;:&lt;alias&gt;.
12500 If a device was listed as "sclp_line0"
12501 in <filename>/dev/</filename> and "ttyS0" was listed
12502 in <filename>/proc/console</filename>, you would do the
12503 following:
12504 <literallayout class='monospaced'>
12505 SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
12506 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012507 This variable is currently only supported with SysVinit
12508 (i.e. not with systemd).
12509 </para>
12510 </glossdef>
12511 </glossentry>
12512
12513 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
12514 <info>
12515 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."
12516 </info>
12517 <glossdef>
12518 <para role="glossdeffirst">
12519<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12520 A list of recipe dependencies that should not be used to
12521 determine signatures of tasks from one recipe when they
12522 depend on tasks from another recipe.
12523 For example:
12524 <literallayout class='monospaced'>
12525 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
12526 </literallayout>
12527 </para>
12528
12529 <para>
12530 In this example, <filename>intone</filename> depends on
12531 <filename>mplayer2</filename>.
12532 </para>
12533
12534 <para>
12535 Use of this variable is one mechanism to remove dependencies
12536 that affect task signatures and thus force rebuilds when a
12537 recipe changes.
12538 <note><title>Caution</title>
12539 If you add an inappropriate dependency for a recipe
12540 relationship, the software might break during
12541 runtime if the interface of the second recipe was
12542 changed after the first recipe had been built.
12543 </note>
12544 </para>
12545 </glossdef>
12546 </glossentry>
12547
12548 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
12549 <info>
12550 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
12551 </info>
12552 <glossdef>
12553 <para role="glossdeffirst">
12554<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12555 A list of recipes that are completely stable and will
12556 never change.
12557 The ABI for the recipes in the list are presented by
12558 output from the tasks run to build the recipe.
12559 Use of this variable is one way to remove dependencies from
12560 one recipe on another that affect task signatures and
12561 thus force rebuilds when the recipe changes.
12562 <note><title>Caution</title>
12563 If you add an inappropriate variable to this list,
12564 the software might break at runtime if the
12565 interface of the recipe was changed after the other
12566 had been built.
12567 </note>
12568 </para>
12569 </glossdef>
12570 </glossentry>
12571
12572 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
12573 <info>
12574 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
12575 </info>
12576 <glossdef>
12577 <para role="glossdeffirst">
12578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12579 Specifies the number of bits for the target system CPU.
12580 The value should be either "32" or "64".
12581 </para>
12582 </glossdef>
12583 </glossentry>
12584
12585 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
12586 <info>
12587 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'."
12588 </info>
12589 <glossdef>
12590 <para role="glossdeffirst">
12591<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12592 Specifies the endian byte order of the target system.
12593 The value should be either "le" for little-endian or "be" for big-endian.
12594 </para>
12595 </glossdef>
12596 </glossentry>
12597
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012598 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
12599 <info>
12600 SKIP_FILEDEPS[doc] = "Enables you to remove all files from
12601 the "Provides" section of an RPM package."
12602 </info>
12603 <glossdef>
12604 <para role="glossdeffirst">
12605<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12606 Enables removal of all files from the "Provides" section of
12607 an RPM package.
12608 Removal of these files is required for packages containing
12609 prebuilt binaries and libraries such as
12610 <filename>libstdc++</filename> and
12611 <filename>glibc</filename>.
12612 </para>
12613
12614 <para>
12615 To enable file removal, set the variable to "1" in your
12616 <filename>conf/local.conf</filename> configuration file
12617 in your:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012618 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012619 <literallayout class='monospaced'>
12620 SKIP_FILEDEPS = "1"
12621 </literallayout>
12622 </para>
12623 </glossdef>
12624 </glossentry>
12625
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012626 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
12627 <info>
12628 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."
12629 </info>
12630 <glossdef>
12631 <para role="glossdeffirst">
12632<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12633 Groups together machines based upon the same family
12634 of SOC (System On Chip).
12635 You typically set this variable in a common
12636 <filename>.inc</filename> file that you include in the
12637 configuration files of all the machines.
12638 <note>
12639 You must include
12640 <filename>conf/machine/include/soc-family.inc</filename>
12641 for this variable to appear in
12642 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
12643 </note>
12644 </para>
12645 </glossdef>
12646 </glossentry>
12647
12648 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
12649 <info>
12650 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
12651 </info>
12652 <glossdef>
12653 <para role="glossdeffirst">
12654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12655 Defines the suffix for shared libraries used on the
12656 target platform.
12657 By default, this suffix is ".so.*" for all Linux-based
12658 systems and is defined in the
12659 <filename>meta/conf/bitbake.conf</filename> configuration
12660 file.
12661 </para>
12662
12663 <para>
12664 You will see this variable referenced in the default values
12665 of <filename>FILES_${PN}</filename>.
12666 </para>
12667 </glossdef>
12668 </glossentry>
12669
12670 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
12671 <info>
12672 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
12673 </info>
12674 <glossdef>
12675 <para role="glossdeffirst">
12676<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12677 Defines the suffix for the development symbolic link
12678 (symlink) for shared libraries on the target platform.
12679 By default, this suffix is ".so" for Linux-based
12680 systems and is defined in the
12681 <filename>meta/conf/bitbake.conf</filename> configuration
12682 file.
12683 </para>
12684
12685 <para>
12686 You will see this variable referenced in the default values
12687 of <filename>FILES_${PN}-dev</filename>.
12688 </para>
12689 </glossdef>
12690 </glossentry>
12691
12692 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
12693 <info>
12694 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
12695 </info>
12696 <glossdef>
12697 <para role="glossdeffirst">
12698<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12699 When you are fetching files to create a mirror of sources
12700 (i.e. creating a source mirror), setting
12701 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
12702 <filename>local.conf</filename> configuration file ensures
12703 the source for all recipes are fetched regardless of
12704 whether or not a recipe is compatible with the
12705 configuration.
12706 A recipe is considered incompatible with the currently
12707 configured machine when either or both the
12708 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
12709 variable and
12710 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
12711 variables specify compatibility with a machine other
12712 than that of the current machine or host.
12713 <note><title>Warning</title>
12714 Do not set the
12715 <filename>SOURCE_MIRROR_FETCH</filename> variable
12716 unless you are creating a source mirror.
12717 In other words, do not set the variable during a
12718 normal build.
12719 </note>
12720 </para>
12721 </glossdef>
12722 </glossentry>
12723
12724 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
12725 <info>
12726 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
12727 </info>
12728 <glossdef>
12729 <para role="glossdeffirst">
12730<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12731 Defines your own
12732 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
12733 from which to first fetch source before attempting to fetch
12734 from the upstream specified in
12735 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
12736 </para>
12737
12738 <para>
12739 To use this variable, you must globally inherit the
12740 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
12741 class and then provide the URL to your mirrors.
12742 Here is the general syntax:
12743 <literallayout class='monospaced'>
12744 INHERIT += "own-mirrors"
12745 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
12746 </literallayout>
12747 <note>
12748 You can specify only a single URL in
12749 <filename>SOURCE_MIRROR_URL</filename>.
12750 </note>
12751 </para>
12752 </glossdef>
12753 </glossentry>
12754
12755 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
12756 <info>
12757 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
12758 </info>
12759 <glossdef>
12760 <para role="glossdeffirst">
12761<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12762 Maps commonly used license names to their SPDX counterparts
12763 found in <filename>meta/files/common-licenses/</filename>.
12764 For the default <filename>SPDXLICENSEMAP</filename>
12765 mappings, see the
12766 <filename>meta/conf/licenses.conf</filename> file.
12767 </para>
12768
12769 <para>
12770 For additional information, see the
12771 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
12772 variable.
12773 </para>
12774 </glossdef>
12775 </glossentry>
12776
12777 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
12778 <info>
12779 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."
12780 </info>
12781 <glossdef>
12782 <para role="glossdeffirst">
12783<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12784 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
12785 OpenEmbedded build system to create variants of recipes or packages.
12786 The list specifies the prefixes to strip off during certain circumstances
12787 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
12788 </para>
12789 </glossdef>
12790 </glossentry>
12791
12792 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
12793 <info>
12794 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."
12795 </info>
12796 <glossdef>
12797 <para role="glossdeffirst">
12798<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12799 The list of source files - local or remote.
12800 This variable tells the OpenEmbedded build system which bits
12801 to pull in for the build and how to pull them in.
12802 For example, if the recipe or append file only needs to
12803 fetch a tarball from the Internet, the recipe or
12804 append file uses a single <filename>SRC_URI</filename>
12805 entry.
12806 On the other hand, if the recipe or append file needs to
12807 fetch a tarball, apply two patches, and include a custom
12808 file, the recipe or append file would include four
12809 instances of the variable.
12810 </para>
12811
12812 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012813 The following list explains the available URI protocols.
12814 URI protocols are highly dependent on particular BitBake
12815 Fetcher submodules.
12816 Depending on the fetcher BitBake uses, various URL
12817 parameters are employed.
12818 For specifics on the supported Fetchers, see the
12819 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
12820 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012821 <itemizedlist>
12822 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
12823 Fetches files, which are usually files shipped with
12824 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012825 <link linkend='metadata'>Metadata</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012826 from the local machine.
12827 The path is relative to the
12828 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
12829 variable.
12830 Thus, the build system searches, in order, from the
12831 following directories, which are assumed to be a
12832 subdirectories of the directory in which the
12833 recipe file (<filename>.bb</filename>) or
12834 append file (<filename>.bbappend</filename>)
12835 resides:
12836 <itemizedlist>
12837 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
12838 The base recipe name without any special
12839 suffix or version numbers.
12840 </para></listitem>
12841 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
12842 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
12843 The base recipe name and version but without
12844 any special package name suffix.
12845 </para></listitem>
12846 <listitem><para><emphasis>files -</emphasis>
12847 Files within a directory, which is named
12848 <filename>files</filename> and is also
12849 alongside the recipe or append file.
12850 </para></listitem>
12851 </itemizedlist>
12852 <note>
12853 If you want the build system to pick up files
12854 specified through a
12855 <filename>SRC_URI</filename>
12856 statement from your append file, you need to be
12857 sure to extend the
12858 <filename>FILESPATH</filename>
12859 variable by also using the
12860 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
12861 variable from within your append file.
12862 </note>
12863 </para></listitem>
12864 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
12865 Bazaar revision control repository.</para></listitem>
12866 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
12867 Git revision control repository.</para></listitem>
12868 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
12869 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
12870 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
12871 a repo (Git) repository.</para></listitem>
12872 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
12873 Fetches files from a ClearCase repository.
12874 </para></listitem>
12875 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
12876 the Internet using <filename>http</filename>.</para></listitem>
12877 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
12878 from the Internet using <filename>https</filename>.</para></listitem>
12879 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
12880 from the Internet using <filename>ftp</filename>.</para></listitem>
12881 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
12882 a CVS revision control repository.</para></listitem>
12883 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
12884 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
12885 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
12886 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
12887 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
12888 a secure shell.</para></listitem>
12889 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
12890 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
12891 </itemizedlist>
12892 </para>
12893
12894 <para>
12895 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
12896 Here are standard options:
12897 <itemizedlist>
12898 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
12899 the patch or not.
12900 The default action is to apply the patch.</para></listitem>
12901 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
12902 striplevel to use when applying the patch.
12903 The default level is 1.</para></listitem>
12904 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
12905 the directory in which the patch should be applied.
12906 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
12907 </para></listitem>
12908 </itemizedlist>
12909 </para>
12910
12911 <para>
12912 Here are options specific to recipes building code from a revision control system:
12913 <itemizedlist>
12914 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
12915 Apply the patch only if
12916 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
12917 is equal to or greater than <filename>mindate</filename>.
12918 </para></listitem>
12919 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
12920 Apply the patch only if <filename>SRCDATE</filename>
12921 is not later than <filename>mindate</filename>.
12922 </para></listitem>
12923 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
12924 Apply the patch only if <filename>SRCREV</filename>
12925 is equal to or greater than <filename>minrev</filename>.
12926 </para></listitem>
12927 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
12928 Apply the patch only if <filename>SRCREV</filename>
12929 is not later than <filename>maxrev</filename>.
12930 </para></listitem>
12931 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
12932 Apply the patch only if <filename>SRCREV</filename>
12933 is equal to <filename>rev</filename>.
12934 </para></listitem>
12935 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
12936 Apply the patch only if <filename>SRCREV</filename>
12937 is not equal to <filename>rev</filename>.
12938 </para></listitem>
12939 </itemizedlist>
12940 </para>
12941
12942 <para>
12943 Here are some additional options worth mentioning:
12944 <itemizedlist>
12945 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
12946 whether or not to unpack the file if it is an archive.
12947 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012948 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
12949 (or extracts its contents) into the specified
12950 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12951 when the Git fetcher is used.
12952 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012953 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
12954 (or extracts its contents) into the specified
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012955 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12956 when the local (<filename>file://</filename>)
12957 fetcher is used.
12958 </para></listitem>
12959 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
12960 (or extracts its contents) into the specified
12961 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12962 when the CVS fetcher is used.
12963 </para></listitem>
12964 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
12965 Limits the checkout to a specific subpath of the
12966 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012967 </para></listitem>
12968 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
12969 name to be used for association with <filename>SRC_URI</filename> checksums
12970 when you have more than one file specified in <filename>SRC_URI</filename>.
12971 </para></listitem>
12972 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
12973 the filename used when storing the downloaded file.</para></listitem>
12974 </itemizedlist>
12975 </para>
12976 </glossdef>
12977 </glossentry>
12978
12979 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
12980 <info>
12981 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."
12982 </info>
12983 <glossdef>
12984 <para role="glossdeffirst">
12985<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12986 By default, the OpenEmbedded build system automatically detects whether
12987 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
12988 contains files that are machine-specific.
12989 If so, the build system automatically changes
12990 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
12991 Setting this variable to "0" disables this behavior.
12992 </para>
12993 </glossdef>
12994 </glossentry>
12995
12996 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
12997 <info>
12998 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)."
12999 </info>
13000 <glossdef>
13001 <para role="glossdeffirst">
13002<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13003 The date of the source code used to build the package.
13004 This variable applies only if the source was fetched from a Source Code Manager (SCM).
13005 </para>
13006 </glossdef>
13007 </glossentry>
13008
13009 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
13010 <info>
13011 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
13012 </info>
13013 <glossdef>
13014 <para role="glossdeffirst">
13015<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13016 Returns the version string of the current package.
13017 This string is used to help define the value of
13018 <link linkend='var-PV'><filename>PV</filename></link>.
13019 </para>
13020
13021 <para>
13022 The <filename>SRCPV</filename> variable is defined in the
13023 <filename>meta/conf/bitbake.conf</filename> configuration
13024 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013025 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013026 as follows:
13027 <literallayout class='monospaced'>
13028 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
13029 </literallayout>
13030 </para>
13031
13032 <para>
13033 Recipes that need to define <filename>PV</filename> do so
13034 with the help of the <filename>SRCPV</filename>.
13035 For example, the <filename>ofono</filename> recipe
13036 (<filename>ofono_git.bb</filename>) located in
13037 <filename>meta/recipes-connectivity</filename> in the
13038 Source Directory defines <filename>PV</filename> as
13039 follows:
13040 <literallayout class='monospaced'>
13041 PV = "0.12-git${SRCPV}"
13042 </literallayout>
13043 </para>
13044 </glossdef>
13045 </glossentry>
13046
13047 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
13048 <info>
13049 SRCREV[doc] = "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial and Bazaar only."
13050 </info>
13051 <glossdef>
13052 <para role="glossdeffirst">
13053<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13054 The revision of the source code used to build the package.
13055 This variable applies to Subversion, Git, Mercurial and
13056 Bazaar only.
13057 Note that if you want to build a fixed revision and you
13058 want to avoid performing a query on the remote repository
13059 every time BitBake parses your recipe, you should specify
13060 a <filename>SRCREV</filename> that is a
13061 full revision identifier and not just a tag.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013062 <note>
13063 For information on limitations when inheriting the
13064 latest revision of software using
13065 <filename>SRCREV</filename>, see the
13066 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
13067 variable description and the
13068 "<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 -050013069 section, which is in the Yocto Project Development
13070 Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013071 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013072 </para>
13073
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013074 </glossdef>
13075 </glossentry>
13076
13077 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
13078 <info>
13079 SSTATE_DIR[doc] = "The directory for the shared state cache."
13080 </info>
13081 <glossdef>
13082 <para role="glossdeffirst">
13083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13084 The directory for the shared state cache.
13085 </para>
13086 </glossdef>
13087 </glossentry>
13088
13089 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
13090 <info>
13091 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 has been disabled by setting BB_NO_NETWORK to "1"."
13092 </info>
13093 <glossdef>
13094 <para role="glossdeffirst">
13095<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13096 If set to "1", allows fetches from
13097 mirrors that are specified in
13098 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
13099 to work even when fetching from the network has been
13100 disabled by setting <filename>BB_NO_NETWORK</filename>
13101 to "1".
13102 Using the
13103 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
13104 variable is useful if you have set
13105 <filename>SSTATE_MIRRORS</filename> to point to an
13106 internal server for your shared state cache, but
13107 you want to disable any other fetching from the network.
13108 </para>
13109 </glossdef>
13110 </glossentry>
13111
13112 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
13113 <info>
13114 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."
13115 </info>
13116 <glossdef>
13117 <para role="glossdeffirst">
13118<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13119 Configures the OpenEmbedded build system to search other
13120 mirror locations for prebuilt cache data objects before
13121 building out the data.
13122 This variable works like fetcher
13123 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
13124 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13125 and points to the cache locations to check for the shared
13126 objects.
13127 </para>
13128
13129 <para>
13130 You can specify a filesystem directory or a remote URL such
13131 as HTTP or FTP.
13132 The locations you specify need to contain the shared state
13133 cache (sstate-cache) results from previous builds.
13134 The sstate-cache you point to can also be from builds on
13135 other machines.
13136 </para>
13137
13138 <para>
13139 If a mirror uses the same structure as
13140 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
13141 you need to add
13142 "PATH" at the end as shown in the examples below.
13143 The build system substitutes the correct path within the
13144 directory structure.
13145 <literallayout class='monospaced'>
13146 SSTATE_MIRRORS ?= "\
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013147 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013148 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
13149 </literallayout>
13150 </para>
13151 </glossdef>
13152 </glossentry>
13153
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013154 <glossentry id='var-SSTATE_SCAN_FILES'><glossterm>SSTATE_SCAN_FILES</glossterm>
13155 <info>
13156 SSTATE_SCAN_FILES[doc] = "Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths."
13157 </info>
13158 <glossdef>
13159 <para role="glossdeffirst">
13160<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13161 Controls the list of files the OpenEmbedded build system
13162 scans for hardcoded installation paths. The variable uses a
13163 space-separated list of filenames (not paths) with standard
13164 wildcard characters allowed.
13165 </para>
13166
13167 <para>
13168 During a build, the OpenEmbedded build system creates a
13169 shared state (sstate) object during the first stage of
13170 preparing the sysroots. That object is scanned for
13171 hardcoded paths for original installation locations.
13172 The list of files that are scanned for paths is controlled
13173 by the <filename>SSTATE_SCAN_FILES</filename> variable.
13174 Typically, recipes add files they want to be scanned to the
13175 value of <filename>SSTATE_SCAN_FILES</filename> rather than
13176 the variable being comprehensively set. The
13177 <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
13178 class specifies the default list of files.
13179 </para>
13180
13181 <para>
13182 For details on the process, see the
13183 <link linkend='ref-classes-staging'><filename>staging</filename></link>
13184 class.
13185 </para>
13186 </glossdef>
13187 </glossentry>
13188
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013189 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
13190 <info>
13191 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build host."
13192 </info>
13193 <glossdef>
13194 <para role="glossdeffirst">
13195<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13196 Specifies the path to the <filename>/lib</filename>
13197 subdirectory of the sysroot directory for the
13198 build host.
13199 </para>
13200 </glossdef>
13201 </glossentry>
13202
13203 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
13204 <info>
13205 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)."
13206 </info>
13207 <glossdef>
13208 <para role="glossdeffirst">
13209<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13210 Specifies the path to the <filename>/lib</filename>
13211 subdirectory of the sysroot directory for the target
13212 for which the current recipe is being built
13213 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13214 </para>
13215 </glossdef>
13216 </glossentry>
13217
13218 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
13219 <info>
13220 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)."
13221 </info>
13222 <glossdef>
13223 <para role="glossdeffirst">
13224<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13225 Specifies the path to the
13226 <filename>/usr/bin</filename> subdirectory of the
13227 sysroot directory for the target for which the current
13228 recipe is being built
13229 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13230 </para>
13231 </glossdef>
13232 </glossentry>
13233
13234 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
13235 <info>
13236 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."
13237 </info>
13238 <glossdef>
13239 <para role="glossdeffirst">
13240<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13241 Specifies the path to the directory containing binary
13242 configuration scripts.
13243 These scripts provide configuration information for
13244 other software that wants to make use of libraries or
13245 include files provided by the software associated with
13246 the script.
13247 <note>
13248 This style of build configuration has been largely
13249 replaced by <filename>pkg-config</filename>.
13250 Consequently, if <filename>pkg-config</filename>
13251 is supported by the library to which you are linking,
13252 it is recommended you use
13253 <filename>pkg-config</filename> instead of a
13254 provided configuration script.
13255 </note>
13256 </para>
13257 </glossdef>
13258 </glossentry>
13259
13260 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
13261 <info>
13262 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
13263 </info>
13264 <glossdef>
13265 <para role="glossdeffirst">
13266<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13267 Specifies the path to the
13268 <filename>/usr/bin</filename> subdirectory of the
13269 sysroot directory for the build host.
13270 </para>
13271 </glossdef>
13272 </glossentry>
13273
13274 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
13275 <info>
13276 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)."
13277 </info>
13278 <glossdef>
13279 <para role="glossdeffirst">
13280<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13281 Specifies the path to the <filename>/usr/share</filename>
13282 subdirectory of the sysroot directory for the target
13283 for which the current recipe is being built
13284 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13285 </para>
13286 </glossdef>
13287 </glossentry>
13288
13289 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
13290 <info>
13291 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
13292 </info>
13293 <glossdef>
13294 <para role="glossdeffirst">
13295<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13296 Specifies the path to the <filename>/usr/share</filename>
13297 subdirectory of the sysroot directory for the build host.
13298 </para>
13299 </glossdef>
13300 </glossentry>
13301
13302 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
13303 <info>
13304 STAGING_DIR[doc] = "Specifies the path to the top-level sysroots directory (i.e. ${TMPDIR}/sysroots)."
13305 </info>
13306 <glossdef>
13307 <para role="glossdeffirst">
13308<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13309 Specifies the path to the top-level sysroots directory
13310 (i.e.
13311 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots</filename>).
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013312 </para>
13313
13314 <para>
13315 <filename>STAGING_DIR</filename> contains the directories
13316 that are staged into the sysroot by the
13317 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
13318 task.
13319 See the
13320 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
13321 variable and the
13322 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-sharing-files-between-recipes'>Sharing Files Between Recipes</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013323 section in the Yocto Project Development Tasks Manual
13324 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013325 <note>
13326 Recipes should never write files directly under
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013327 the <filename>STAGING_DIR</filename> directory because
13328 the OpenEmbedded build system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013329 manages the directory automatically.
13330 Instead, files should be installed to
13331 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
13332 within your recipe's
13333 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
13334 task and then the OpenEmbedded build system will
13335 stage a subset of those files into the sysroot.
13336 </note>
13337 </para>
13338 </glossdef>
13339 </glossentry>
13340
13341 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
13342 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013343 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 -050013344 </info>
13345 <glossdef>
13346 <para role="glossdeffirst">
13347<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013348 Specifies the path to the sysroot directory for the system
13349 that the component is built to run on (the system that hosts
13350 the component).
13351 For most recipes, this sysroot is the one that the recipe's
13352 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
13353 task copies files into.
13354 Exceptions include <filename>-native</filename> recipes,
13355 where the <filename>do_populate_sysroot</filename> task
13356 instead uses
13357 <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
13358 Depending on the type of recipe and the build target,
13359 <filename>STAGING_DIR_HOST</filename> can have the
13360 following values:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013361 <itemizedlist>
13362 <listitem><para>For recipes building for the target
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013363 machine, the value is
13364 "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
13365 </para></listitem>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013366 <listitem><para>For native recipes building
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013367 for the build host, the value is empty given the
13368 assumption that when building for the build host,
13369 the build host's own directories should be used.
13370 <note><para>
13371 <filename>-native</filename> recipes are not
13372 installed into host paths like such as
13373 <filename>/usr</filename>.
13374 Rather, these recipes are installed into
13375 <filename>STAGING_DIR_NATIVE</filename>.
13376 When compiling <filename>-native</filename>
13377 recipes, standard build environment variables
13378 such as
13379 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
13380 and
13381 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
13382 are set up so that both host paths and
13383 <filename>STAGING_DIR_NATIVE</filename> are
13384 searched for libraries and headers using, for
13385 example, GCC's <filename>-isystem</filename>
13386 option.</para>
13387
13388 <para>This emphasizes that the
13389 <filename>STAGING_DIR*</filename> variables
13390 should be viewed as input variables by tasks
13391 such as
13392 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
13393 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
13394 and
13395 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
13396 Having the real system root correspond to
13397 <filename>STAGING_DIR_HOST</filename> makes
13398 conceptual sense for
13399 <filename>-native</filename> recipes, as
13400 they make use of host headers and libraries.
13401 </para>
13402 </note>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013403 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013404 </itemizedlist>
13405 </para>
13406 </glossdef>
13407 </glossentry>
13408
13409 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
13410 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013411 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 -050013412 </info>
13413 <glossdef>
13414 <para role="glossdeffirst">
13415<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013416 Specifies the path to the sysroot directory used when
13417 building components that run on the build host itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013418 </para>
13419 </glossdef>
13420 </glossentry>
13421
13422 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
13423 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013424 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 -050013425 </info>
13426 <glossdef>
13427 <para role="glossdeffirst">
13428<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013429 Specifies the path to the sysroot used for the system for
13430 which the component generates code.
13431 For components that do not generate code, which is the
13432 majority, <filename>STAGING_DIR_TARGET</filename> is set
13433 to match
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013434 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
13435 </para>
13436
13437 <para>
13438 Some recipes build binaries that can run on the target
13439 system but those binaries in turn generate code for
13440 another different system (e.g. cross-canadian recipes).
13441 Using terminology from GNU, the primary system is referred
13442 to as the "HOST" and the secondary, or different, system is
13443 referred to as the "TARGET".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013444 Thus, the binaries run on the "HOST" system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013445 and generate binaries for the "TARGET" system.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013446 The <filename>STAGING_DIR_HOST</filename> variable points
13447 to the sysroot used for the "HOST" system, while
13448 <filename>STAGING_DIR_TARGET</filename>
13449 points to the sysroot used for the "TARGET" system.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013450 </para>
13451 </glossdef>
13452 </glossentry>
13453
13454 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
13455 <info>
13456 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
13457 </info>
13458 <glossdef>
13459 <para role="glossdeffirst">
13460<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13461 Specifies the path to the <filename>/etc</filename>
13462 subdirectory of the sysroot directory for the
13463 build host.
13464 </para>
13465 </glossdef>
13466 </glossentry>
13467
13468 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
13469 <info>
13470 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)."
13471 </info>
13472 <glossdef>
13473 <para role="glossdeffirst">
13474<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13475 Specifies the path to the <filename>/usr</filename>
13476 subdirectory of the sysroot directory for the target
13477 for which the current recipe is being built
13478 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13479 </para>
13480 </glossdef>
13481 </glossentry>
13482
13483 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
13484 <info>
13485 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)."
13486 </info>
13487 <glossdef>
13488 <para role="glossdeffirst">
13489<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13490 Specifies the path to the
13491 <filename>/usr/include</filename> subdirectory of the
13492 sysroot directory for the target for which the current
13493 recipe being built
13494 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13495 </para>
13496 </glossdef>
13497 </glossentry>
13498
13499 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
13500 <info>
13501 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
13502 </info>
13503 <glossdef>
13504 <para role="glossdeffirst">
13505<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13506 Specifies the path to the <filename>/usr/include</filename>
13507 subdirectory of the sysroot directory for the build host.
13508 </para>
13509 </glossdef>
13510 </glossentry>
13511
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013512 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
13513 <info>
13514 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
13515 </info>
13516 <glossdef>
13517 <para role="glossdeffirst">
13518<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13519 Points to the directory containing the kernel build
13520 artifacts.
13521 Recipes building software that needs to access kernel
13522 build artifacts
13523 (e.g. <filename>systemtap-uprobes</filename>) can look in
13524 the directory specified with the
13525 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
13526 find these artifacts after the kernel has been built.
13527 </para>
13528 </glossdef>
13529 </glossentry>
13530
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013531 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
13532 <info>
13533 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
13534 </info>
13535 <glossdef>
13536 <para role="glossdeffirst">
13537<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13538 The directory with kernel headers that are required to build out-of-tree
13539 modules.
13540 </para>
13541 </glossdef>
13542 </glossentry>
13543
13544 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
13545 <info>
13546 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)."
13547 </info>
13548 <glossdef>
13549 <para role="glossdeffirst">
13550<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13551 Specifies the path to the <filename>/usr/lib</filename>
13552 subdirectory of the sysroot directory for the target for
13553 which the current recipe is being built
13554 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13555 </para>
13556 </glossdef>
13557 </glossentry>
13558
13559 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
13560 <info>
13561 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
13562 </info>
13563 <glossdef>
13564 <para role="glossdeffirst">
13565<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13566 Specifies the path to the <filename>/usr/lib</filename>
13567 subdirectory of the sysroot directory for the build host.
13568 </para>
13569 </glossdef>
13570 </glossentry>
13571
13572 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
13573 <info>
13574 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."
13575 </info>
13576 <glossdef>
13577 <para role="glossdeffirst">
13578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13579 Specifies the base path used to create recipe stamp files.
13580 The path to an actual stamp file is constructed by evaluating this
13581 string and then appending additional information.
13582 Currently, the default assignment for <filename>STAMP</filename>
13583 as set in the <filename>meta/conf/bitbake.conf</filename> file
13584 is:
13585 <literallayout class='monospaced'>
13586 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
13587 </literallayout>
13588 </para>
13589
13590 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013591 For information on how BitBake uses stamp files to determine
13592 if a task should be rerun, see the
13593 "<link linkend='stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</link>"
13594 section.
13595 </para>
13596
13597 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013598 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
13599 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
13600 <link linkend='var-PN'><filename>PN</filename></link>,
13601 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
13602 <link linkend='var-PV'><filename>PV</filename></link>, and
13603 <link linkend='var-PR'><filename>PR</filename></link> for related variable
13604 information.
13605 </para>
13606 </glossdef>
13607 </glossentry>
13608
13609 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
13610 <info>
13611 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
13612 </info>
13613 <glossdef>
13614 <para role="glossdeffirst">
13615<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13616 Specifies the base directory in which the OpenEmbedded
13617 build system places stamps.
13618 The default directory is
13619 <filename>${TMPDIR}/stamps</filename>.
13620 </para>
13621 </glossdef>
13622 </glossentry>
13623
13624 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
13625 <info>
13626 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
13627 </info>
13628 <glossdef>
13629 <para role="glossdeffirst">
13630<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13631 The minimal command and arguments to run
13632 <filename>strip</filename>, which is used to strip
13633 symbols.
13634 </para>
13635 </glossdef>
13636 </glossentry>
13637
13638 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
13639 <info>
13640 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."
13641 </info>
13642 <glossdef>
13643 <para role="glossdeffirst">
13644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13645 The short (72 characters or less) summary of the binary package for packaging
13646 systems such as <filename>opkg</filename>, <filename>rpm</filename> or
13647 <filename>dpkg</filename>.
13648 By default, <filename>SUMMARY</filename> is used to define
13649 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
13650 variable if <filename>DESCRIPTION</filename> is not set
13651 in the recipe.
13652 </para>
13653 </glossdef>
13654 </glossentry>
13655
13656 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
13657 <info>
13658 SVNDIR[doc] = "The directory where Subversion checkouts will be stored."
13659 </info>
13660 <glossdef>
13661 <para role="glossdeffirst">
13662<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13663 The directory in which files checked out of a Subversion
13664 system are stored.
13665 </para>
13666 </glossdef>
13667 </glossentry>
13668
13669 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
13670 <info>
13671 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
13672 </info>
13673 <glossdef>
13674 <para role="glossdeffirst">
13675<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13676 Specifies the kernel boot default console.
13677 If you want to use a console other than the default,
13678 set this variable in your recipe as follows where "X" is
13679 the console number you want to use:
13680 <literallayout class='monospaced'>
13681 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
13682 </literallayout>
13683 </para>
13684
13685 <para>
13686 The
13687 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
13688 class initially sets this variable to null but then checks
13689 for a value later.
13690 </para>
13691 </glossdef>
13692 </glossentry>
13693
13694 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
13695 <info>
13696 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
13697 </info>
13698 <glossdef>
13699 <para role="glossdeffirst">
13700<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13701 Lists additional options to add to the syslinux file.
13702 You need to set this variable in your recipe.
13703 If you want to list multiple options, separate the options
13704 with a semicolon character (<filename>;</filename>).
13705 </para>
13706
13707 <para>
13708 The
13709 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
13710 class uses this variable to create a set of options.
13711 </para>
13712 </glossdef>
13713 </glossentry>
13714
13715 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
13716 <info>
13717 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
13718 </info>
13719 <glossdef>
13720 <para role="glossdeffirst">
13721<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13722 Specifies the alternate serial port or turns it off.
13723 To turn off serial, set this variable to an empty string
13724 in your recipe.
13725 The variable's default value is set in the
13726 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
13727 as follows:
13728 <literallayout class='monospaced'>
13729 SYSLINUX_SERIAL ?= "0 115200"
13730 </literallayout>
13731 </para>
13732
13733 <para>
13734 The class checks for and uses the variable as needed.
13735 </para>
13736 </glossdef>
13737 </glossentry>
13738
13739 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
13740 <info>
13741 SYSLINUX_SPLASH[doc] = "An .LSS file used as the background for the VGA boot menu when you are using the boot menu."
13742 </info>
13743 <glossdef>
13744 <para role="glossdeffirst">
13745<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13746 An <filename>.LSS</filename> file used as the background
13747 for the VGA boot menu when you are using the boot menu.
13748 You need to set this variable in your recipe.
13749 </para>
13750
13751 <para>
13752 The
13753 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
13754 class checks for this variable and if found, the
13755 OpenEmbedded build system installs the splash screen.
13756 </para>
13757 </glossdef>
13758 </glossentry>
13759
13760 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
13761 <info>
13762 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
13763 </info>
13764 <glossdef>
13765 <para role="glossdeffirst">
13766<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13767 Specifies the alternate console=tty... kernel boot argument.
13768 The variable's default value is set in the
13769 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
13770 as follows:
13771 <literallayout class='monospaced'>
13772 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
13773 </literallayout>
13774 </para>
13775
13776 <para>
13777 The class checks for and uses the variable as needed.
13778 </para>
13779 </glossdef>
13780 </glossentry>
13781
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013782 <glossentry id='var-SYSROOT_DESTDIR'><glossterm>SYSROOT_DESTDIR</glossterm>
13783 <info>
13784 SYSROOT_DESTDIR[doc] = "Points to the temporary work directory (default ${WORKDIR}/sysroot-destdir) where the files that will be populated into the sysroot are assembled during the do_populate_sysroot task."
13785 </info>
13786 <glossdef>
13787 <para role="glossdeffirst">
13788<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13789 Points to the temporary directory under the work directory
13790 (default
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013791 "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013792 where the files
13793 that will be populated into the sysroot are assembled
13794 during the
13795 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
13796 task.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013797 </para>
13798 </glossdef>
13799 </glossentry>
13800
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013801 <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
13802 <info>
13803 SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
13804 </info>
13805 <glossdef>
13806 <para role="glossdeffirst">
13807<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13808 Directories that are staged into the sysroot by the
13809 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
13810 task.
13811 By default, the following directories are staged:
13812 <literallayout class='monospaced'>
13813 SYSROOT_DIRS = " \
13814 ${includedir} \
13815 ${libdir} \
13816 ${base_libdir} \
13817 ${nonarch_base_libdir} \
13818 ${datadir} \
13819 "
13820 </literallayout>
13821 </para>
13822 </glossdef>
13823 </glossentry>
13824
13825 <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
13826 <info>
13827 SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
13828 </info>
13829 <glossdef>
13830 <para role="glossdeffirst">
13831<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13832 Directories that are not staged into the sysroot by the
13833 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
13834 task.
13835 You can use this variable to exclude certain subdirectories
13836 of directories listed in
13837 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
13838 from staging.
13839 By default, the following directories are not staged:
13840 <literallayout class='monospaced'>
13841 SYSROOT_DIRS_BLACKLIST = " \
13842 ${mandir} \
13843 ${docdir} \
13844 ${infodir} \
13845 ${datadir}/locale \
13846 ${datadir}/applications \
13847 ${datadir}/fonts \
13848 ${datadir}/pixmaps \
13849 "
13850 </literallayout>
13851 </para>
13852 </glossdef>
13853 </glossentry>
13854
13855 <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
13856 <info>
13857 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."
13858 </info>
13859 <glossdef>
13860 <para role="glossdeffirst">
13861<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13862 Extra directories staged into the sysroot by the
13863 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
13864 task for <filename>-native</filename> recipes, in addition
13865 to those specified in
13866 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
13867 By default, the following extra directories are staged:
13868 <literallayout class='monospaced'>
13869 SYSROOT_DIRS_NATIVE = " \
13870 ${bindir} \
13871 ${sbindir} \
13872 ${base_bindir} \
13873 ${base_sbindir} \
13874 ${libexecdir} \
13875 ${sysconfdir} \
13876 ${localstatedir} \
13877 "
13878 </literallayout>
13879 <note>
13880 Programs built by <filename>-native</filename> recipes
13881 run directly from the sysroot
13882 (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
13883 which is why additional directories containing program
13884 executables and supporting files need to be staged.
13885 </note>
13886 </para>
13887 </glossdef>
13888 </glossentry>
13889
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013890 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
13891 <info>
13892 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."
13893 </info>
13894 <glossdef>
13895 <para role="glossdeffirst">
13896<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13897 A list of functions to execute after files are staged into
13898 the sysroot.
13899 These functions are usually used to apply additional
13900 processing on the staged files, or to stage additional
13901 files.
13902 </para>
13903 </glossdef>
13904 </glossentry>
13905
13906 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
13907 <info>
13908 SYSTEMD_AUTO_ENABLE[doc] = "For recipes that inherit the systemd class, this variable specifies whether the service you have specified in SYSTEMD_SERVICE should be started automatically or not."
13909 </info>
13910 <glossdef>
13911 <para role="glossdeffirst">
13912<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13913 When inheriting the
13914 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
13915 class, this variable specifies whether the service you have
13916 specified in
13917 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
13918 should be started automatically or not.
13919 By default, the service is enabled to automatically start
13920 at boot time.
13921 The default setting is in the
13922 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
13923 class as follows:
13924 <literallayout class='monospaced'>
13925 SYSTEMD_AUTO_ENABLE ??= "enable"
13926 </literallayout>
13927 </para>
13928
13929 <para>
13930 You can disable the service by setting the variable to
13931 "disable".
13932 </para>
13933 </glossdef>
13934 </glossentry>
13935
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013936 <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
13937 <info>
13938 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."
13939 </info>
13940 <glossdef>
13941 <para role="glossdeffirst">
13942<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13943 When
13944 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
13945 is set to "systemd-boot", the
13946 <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
13947 configuration file that should be used.
13948 By default, the
13949 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
13950 class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
13951 follows:
13952 <literallayout class='monospaced'>
13953 SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
13954 </literallayout>
13955 </para>
13956
13957 <para>
13958 For information on Systemd-boot, see the
13959 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
13960 </para>
13961 </glossdef>
13962 </glossentry>
13963
13964 <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
13965 <info>
13966 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 be installed containing one boot entry per file."
13967 </info>
13968 <glossdef>
13969 <para role="glossdeffirst">
13970<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13971 When
13972 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
13973 is set to "systemd-boot", the
13974 <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
13975 a list of entry files
13976 (<filename>*.conf</filename>) to be installed
13977 containing one boot entry per file.
13978 By default, the
13979 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
13980 class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
13981 follows:
13982 <literallayout class='monospaced'>
13983 SYSTEMD_BOOT_ENTRIES ?= ""
13984 </literallayout>
13985 </para>
13986
13987 <para>
13988 For information on Systemd-boot, see the
13989 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
13990 </para>
13991 </glossdef>
13992 </glossentry>
13993
13994 <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
13995 <info>
13996 SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
13997 </info>
13998 <glossdef>
13999 <para role="glossdeffirst">
14000<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14001 When
14002 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14003 is set to "systemd-boot", the
14004 <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
14005 the boot menu timeout in seconds.
14006 By default, the
14007 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14008 class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
14009 follows:
14010 <literallayout class='monospaced'>
14011 SYSTEMD_BOOT_TIMEOUT ?= "10"
14012 </literallayout>
14013 </para>
14014
14015 <para>
14016 For information on Systemd-boot, see the
14017 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14018 </para>
14019 </glossdef>
14020 </glossentry>
14021
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014022 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
14023 <info>
14024 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."
14025 </info>
14026 <glossdef>
14027 <para role="glossdeffirst">
14028<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14029 When inheriting the
14030 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14031 class, this variable locates the systemd unit files when
14032 they are not found in the main recipe's package.
14033 By default, the
14034 <filename>SYSTEMD_PACKAGES</filename> variable is set
14035 such that the systemd unit files are assumed to reside in
14036 the recipes main package:
14037 <literallayout class='monospaced'>
14038 SYSTEMD_PACKAGES ?= "${PN}"
14039 </literallayout>
14040 </para>
14041
14042 <para>
14043 If these unit files are not in this recipe's main
14044 package, you need to use
14045 <filename>SYSTEMD_PACKAGES</filename> to list the package
14046 or packages in which the build system can find the systemd
14047 unit files.
14048 </para>
14049 </glossdef>
14050 </glossentry>
14051
14052 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
14053 <info>
14054 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
14055 </info>
14056 <glossdef>
14057 <para role="glossdeffirst">
14058<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14059 When inheriting the
14060 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14061 class, this variable specifies the systemd service name for
14062 a package.
14063 </para>
14064
14065 <para>
14066 When you specify this file in your recipe, use a package
14067 name override to indicate the package to which the value
14068 applies.
14069 Here is an example from the connman recipe:
14070 <literallayout class='monospaced'>
14071 SYSTEMD_SERVICE_${PN} = "connman.service"
14072 </literallayout>
14073 </para>
14074 </glossdef>
14075 </glossentry>
14076
14077 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
14078 <info>
14079 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should be running a getty, the default is '1'."
14080 </info>
14081 <glossdef>
14082 <para role="glossdeffirst">
14083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14084 When using
14085 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14086 specifies a space-separated list of the virtual terminals
14087 that should be running a
14088 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14089 (allowing login), assuming
14090 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
14091 is not set to "0".
14092 </para>
14093
14094 <para>
14095 The default value for
14096 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
14097 (i.e. only run a getty on the first virtual terminal).
14098 </para>
14099 </glossdef>
14100 </glossentry>
14101
14102 </glossdiv>
14103
14104 <glossdiv id='var-glossary-t'><title>T</title>
14105
14106 <glossentry id='var-T'><glossterm>T</glossterm>
14107 <info>
14108 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."
14109 </info>
14110 <glossdef>
14111 <para role="glossdeffirst">
14112<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14113 This variable points to a directory were BitBake places
14114 temporary files, which consist mostly of task logs and
14115 scripts, when building a particular recipe.
14116 The variable is typically set as follows:
14117 <literallayout class='monospaced'>
14118 T = "${WORKDIR}/temp"
14119 </literallayout>
14120 </para>
14121
14122 <para>
14123 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
14124 is the directory into which BitBake unpacks and builds the
14125 recipe.
14126 The default <filename>bitbake.conf</filename> file sets this variable.</para>
14127 <para>The <filename>T</filename> variable is not to be confused with
14128 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
14129 which points to the root of the directory tree where BitBake
14130 places the output of an entire build.
14131 </para>
14132 </glossdef>
14133 </glossentry>
14134
14135 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
14136 <info>
14137 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
14138 </info>
14139 <glossdef>
14140 <para role="glossdeffirst">
14141<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14142 The target machine's architecture.
14143 The OpenEmbedded build system supports many
14144 architectures.
14145 Here is an example list of architectures supported.
14146 This list is by no means complete as the architecture
14147 is configurable:
14148 <literallayout class='monospaced'>
14149 arm
14150 i586
14151 x86_64
14152 powerpc
14153 powerpc64
14154 mips
14155 mipsel
14156 </literallayout>
14157 </para>
14158
14159 <para>
14160 For additional information on machine architectures, see
14161 the
14162 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
14163 variable.
14164 </para>
14165 </glossdef>
14166 </glossentry>
14167
14168 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
14169 <info>
14170 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
14171 </info>
14172 <glossdef>
14173 <para role="glossdeffirst">
14174<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14175 Specifies architecture-specific assembler flags for the
14176 target system.
14177 <filename>TARGET_AS_ARCH</filename> is initialized from
14178 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
14179 by default in the BitBake configuration file
14180 (<filename>meta/conf/bitbake.conf</filename>):
14181 <literallayout class='monospaced'>
14182 TARGET_AS_ARCH = "${TUNE_ASARGS}"
14183 </literallayout>
14184 </para>
14185 </glossdef>
14186 </glossentry>
14187
14188 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
14189 <info>
14190 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
14191 </info>
14192 <glossdef>
14193 <para role="glossdeffirst">
14194<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14195 Specifies architecture-specific C compiler flags for the
14196 target system.
14197 <filename>TARGET_CC_ARCH</filename> is initialized from
14198 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14199 by default.
14200 <note>
14201 It is a common workaround to append
14202 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14203 to <filename>TARGET_CC_ARCH</filename>
14204 in recipes that build software for the target that
14205 would not otherwise respect the exported
14206 <filename>LDFLAGS</filename> variable.
14207 </note>
14208 </para>
14209 </glossdef>
14210 </glossentry>
14211
14212 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
14213 <info>
14214 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
14215 </info>
14216 <glossdef>
14217 <para role="glossdeffirst">
14218<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14219 This is a specific kernel compiler flag for a CPU or
14220 Application Binary Interface (ABI) tune.
14221 The flag is used rarely and only for cases where a
14222 userspace
14223 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14224 is not compatible with the kernel compilation.
14225 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
14226 allows the kernel (and associated modules) to use a
14227 different configuration.
14228 See the
14229 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
14230 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014231 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014232 for an example.
14233 </para>
14234 </glossdef>
14235 </glossentry>
14236
14237 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
14238 <info>
14239 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
14240 </info>
14241 <glossdef>
14242 <para role="glossdeffirst">
14243<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14244 Specifies the flags to pass to the C compiler when building
14245 for the target.
14246 When building in the target context,
14247 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14248 is set to the value of this variable by default.
14249 </para>
14250
14251 <para>
14252 Additionally, the SDK's environment setup script sets
14253 the
14254 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14255 variable in the environment to the
14256 <filename>TARGET_CFLAGS</filename> value so that
14257 executables built using the SDK also have the flags
14258 applied.
14259 </para>
14260 </glossdef>
14261 </glossentry>
14262
14263 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
14264 <info>
14265 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."
14266 </info>
14267 <glossdef>
14268 <para role="glossdeffirst">
14269<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14270 Specifies the flags to pass to the C pre-processor
14271 (i.e. to both the C and the C++ compilers) when building
14272 for the target.
14273 When building in the target context,
14274 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14275 is set to the value of this variable by default.
14276 </para>
14277
14278 <para>
14279 Additionally, the SDK's environment setup script sets
14280 the
14281 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14282 variable in the environment to the
14283 <filename>TARGET_CPPFLAGS</filename> value so that
14284 executables built using the SDK also have the flags
14285 applied.
14286 </para>
14287 </glossdef>
14288 </glossentry>
14289
14290 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
14291 <info>
14292 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
14293 </info>
14294 <glossdef>
14295 <para role="glossdeffirst">
14296<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14297 Specifies the flags to pass to the C++ compiler when
14298 building for the target.
14299 When building in the target context,
14300 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
14301 is set to the value of this variable by default.
14302 </para>
14303
14304 <para>
14305 Additionally, the SDK's environment setup script sets
14306 the
14307 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
14308 variable in the environment to the
14309 <filename>TARGET_CXXFLAGS</filename> value so that
14310 executables built using the SDK also have the flags
14311 applied.
14312 </para>
14313 </glossdef>
14314 </glossentry>
14315
14316 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
14317 <info>
14318 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."
14319 </info>
14320 <glossdef>
14321 <para role="glossdeffirst">
14322<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14323 Specifies the method for handling FPU code.
14324 For FPU-less targets, which include most ARM CPUs, the variable must be
14325 set to "soft".
14326 If not, the kernel emulation gets used, which results in a performance penalty.
14327 </para>
14328 </glossdef>
14329 </glossentry>
14330
14331 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
14332 <info>
14333 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
14334 </info>
14335 <glossdef>
14336 <para role="glossdeffirst">
14337<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14338 Specifies architecture-specific linker flags for the
14339 target system.
14340 <filename>TARGET_LD_ARCH</filename> is initialized from
14341 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
14342 by default in the BitBake configuration file
14343 (<filename>meta/conf/bitbake.conf</filename>):
14344 <literallayout class='monospaced'>
14345 TARGET_LD_ARCH = "${TUNE_LDARGS}"
14346 </literallayout>
14347 </para>
14348 </glossdef>
14349 </glossentry>
14350
14351 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
14352 <info>
14353 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
14354 </info>
14355 <glossdef>
14356 <para role="glossdeffirst">
14357<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14358 Specifies the flags to pass to the linker when building
14359 for the target.
14360 When building in the target context,
14361 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14362 is set to the value of this variable by default.
14363 </para>
14364
14365 <para>
14366 Additionally, the SDK's environment setup script sets
14367 the
14368 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14369 variable in the environment to the
14370 <filename>TARGET_LDFLAGS</filename> value so that
14371 executables built using the SDK also have the flags
14372 applied.
14373 </para>
14374 </glossdef>
14375 </glossentry>
14376
14377 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
14378 <info>
14379 TARGET_OS[doc] = "Specifies the target's operating system."
14380 </info>
14381 <glossdef>
14382 <para role="glossdeffirst">
14383<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14384 Specifies the target's operating system.
14385 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014386 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014387 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014388 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014389 </para>
14390 </glossdef>
14391 </glossentry>
14392
14393 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
14394 <info>
14395 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
14396 </info>
14397 <glossdef>
14398 <para role="glossdeffirst">
14399<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14400 Specifies the prefix used for the toolchain binary target
14401 tools.
14402 </para>
14403
14404 <para>
14405 Depending on the type of recipe and the build target,
14406 <filename>TARGET_PREFIX</filename> is set as follows:
14407 <itemizedlist>
14408 <listitem><para>
14409 For recipes building for the target machine,
14410 the value is
14411 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
14412 </para></listitem>
14413 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014414 For native recipes, the build system sets the
14415 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014416 <filename>BUILD_PREFIX</filename>.
14417 </para></listitem>
14418 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014419 For native SDK recipes
14420 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014421 build system sets the variable to the value of
14422 <filename>SDK_PREFIX</filename>.
14423 </para></listitem>
14424 </itemizedlist>
14425 </para>
14426 </glossdef>
14427 </glossentry>
14428
14429 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
14430 <info>
14431 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
14432 </info>
14433 <glossdef>
14434 <para role="glossdeffirst">
14435<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14436 Specifies the system, including the architecture and the
14437 operating system, for which the build is occurring in
14438 the context of the current recipe.
14439 </para>
14440
14441 <para>
14442 The OpenEmbedded build system automatically sets this
14443 variable based on
14444 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
14445 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
14446 and
14447 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
14448 variables.
14449 <note>
14450 You do not need to set the
14451 <filename>TARGET_SYS</filename> variable yourself.
14452 </note>
14453 </para>
14454
14455 <para>
14456 Consider these two examples:
14457 <itemizedlist>
14458 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014459 Given a native recipe on a 32-bit, x86 machine
14460 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014461 </para></listitem>
14462 <listitem><para>
14463 Given a recipe being built for a little-endian,
14464 MIPS target running Linux, the value might be
14465 "mipsel-linux".
14466 </para></listitem>
14467 </itemizedlist>
14468 </para>
14469 </glossdef>
14470 </glossentry>
14471
14472 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
14473 <info>
14474 TARGET_VENDOR[doc] = "The name of the target vendor."
14475 </info>
14476 <glossdef>
14477 <para role="glossdeffirst">
14478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14479 Specifies the name of the target vendor.
14480 </para>
14481 </glossdef>
14482 </glossentry>
14483
14484 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
14485 <info>
14486 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
14487 </info>
14488 <glossdef>
14489 <para role="glossdeffirst">
14490<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14491 Specifies a suffix to be appended onto the
14492 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14493 value.
14494 The suffix identifies the <filename>libc</filename> variant
14495 for building.
14496 When you are building for multiple variants with the same
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014497 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014498 this mechanism ensures that output for different
14499 <filename>libc</filename> variants is kept separate to
14500 avoid potential conflicts.
14501 </para>
14502
14503 <para>
14504 In the <filename>defaultsetup.conf</filename> file, the
14505 default value of <filename>TCLIBCAPPEND</filename> is
14506 "-${TCLIBC}".
14507 However, distros such as poky, which normally only support
14508 one <filename>libc</filename> variant, set
14509 <filename>TCLIBCAPPEND</filename> to "" in their distro
14510 configuration file resulting in no suffix being applied.
14511 </para>
14512 </glossdef>
14513 </glossentry>
14514
14515 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
14516 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014517 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 -050014518 </info>
14519 <glossdef>
14520 <para role="glossdeffirst">
14521<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14522 Specifies the GNU standard C library (<filename>libc</filename>)
14523 variant to use during the build process.
14524 This variable replaces <filename>POKYLIBC</filename>, which is no longer
14525 supported.
14526 </para>
14527
14528 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014529 You can select "glibc" or "musl".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014530 </para>
14531 </glossdef>
14532 </glossentry>
14533
14534 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
14535 <info>
14536 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
14537 </info>
14538 <glossdef>
14539 <para role="glossdeffirst">
14540<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14541 Specifies the toolchain selector.
14542 <filename>TCMODE</filename> controls the characteristics
14543 of the generated packages and images by telling the
14544 OpenEmbedded build system which toolchain profile to use.
14545 By default, the OpenEmbedded build system builds its own
14546 internal toolchain.
14547 The variable's default value is "default", which uses
14548 that internal toolchain.
14549 <note>
14550 If <filename>TCMODE</filename> is set to a value
14551 other than "default", then it is your responsibility
14552 to ensure that the toolchain is compatible with the
14553 default toolchain.
14554 Using older or newer versions of these components
14555 might cause build problems.
14556 See the
14557 <ulink url='&YOCTO_RELEASE_NOTES;'>Release Notes</ulink>
14558 for the specific components with which the toolchain
14559 must be compatible.
14560 </note>
14561 </para>
14562
14563 <para>
14564 The <filename>TCMODE</filename> variable is similar to
14565 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
14566 which controls the variant of the GNU standard C library
14567 (<filename>libc</filename>) used during the build process:
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014568 <filename>glibc</filename> or <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014569 </para>
14570
14571 <para>
14572 With additional layers, it is possible to use a pre-compiled
14573 external toolchain.
14574 One example is the Sourcery G++ Toolchain.
14575 The support for this toolchain resides in the separate
14576 <trademark class='registered'>Mentor Graphics</trademark>
14577 <filename>meta-sourcery</filename> layer at
14578 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
14579 </para>
14580
14581 <para>
14582 The layer's <filename>README</filename> file contains
14583 information on how to use the Sourcery G++ Toolchain as
14584 an external toolchain.
14585 In summary, you must be sure to add the layer to your
14586 <filename>bblayers.conf</filename> file in front of the
14587 <filename>meta</filename> layer and then set the
14588 <filename>EXTERNAL_TOOLCHAIN</filename>
14589 variable in your <filename>local.conf</filename> file
14590 to the location in which you installed the toolchain.
14591 </para>
14592
14593 <para>
14594 The fundamentals used for this example apply to any
14595 external toolchain.
14596 You can use <filename>meta-sourcery</filename> as a
14597 template for adding support for other external toolchains.
14598 </para>
14599 </glossdef>
14600 </glossentry>
14601
14602 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
14603 <info>
14604 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
14605 </info>
14606 <glossdef>
14607 <para role="glossdeffirst">
14608<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14609 The location the OpenEmbedded build system uses to export
14610 tests when the
14611 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
14612 variable is set to "1".
14613 </para>
14614
14615 <para>
14616 The <filename>TEST_EXPORT_DIR</filename> variable defaults
14617 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
14618 </para>
14619 </glossdef>
14620 </glossentry>
14621
14622 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
14623 <info>
14624 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."
14625 </info>
14626 <glossdef>
14627 <para role="glossdeffirst">
14628<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14629 Specifies to export the tests only.
14630 Set this variable to "1" if you do not want to run the
14631 tests but you want them to be exported in a manner that
14632 you to run them outside of the build system.
14633 </para>
14634 </glossdef>
14635 </glossentry>
14636
14637 <glossentry id='var-TEST_IMAGE'><glossterm>TEST_IMAGE</glossterm>
14638 <info>
14639 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."
14640 </info>
14641 <glossdef>
14642 <para role="glossdeffirst">
14643<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14644 Automatically runs the series of automated tests for
14645 images when an image is successfully built.
14646 </para>
14647
14648 <para>
14649 These tests are written in Python making use of the
14650 <filename>unittest</filename> module, and the majority of
14651 them run commands on the target system over
14652 <filename>ssh</filename>.
14653 You can set this variable to "1" in your
14654 <filename>local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014655 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014656 to have the OpenEmbedded build system automatically run
14657 these tests after an image successfully builds:
14658 <literallayout class='monospaced'>
14659 TEST_IMAGE = "1"
14660 </literallayout>
14661 For more information on enabling, running, and writing
14662 these tests, see the
14663 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014664 section in the Yocto Project Development Tasks Manual and
14665 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050014666 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014667 section.
14668 </para>
14669 </glossdef>
14670 </glossentry>
14671
14672 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
14673 <info>
14674 TEST_LOG_DIR[doc] = "Holds the SSH log and the boot log for QEMU machines. The <filename>TEST_LOG_DIR</filename> variable defaults to "${WORKDIR}/testimage"."
14675 </info>
14676 <glossdef>
14677 <para role="glossdeffirst">
14678<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14679 Holds the SSH log and the boot log for QEMU machines.
14680 The <filename>TEST_LOG_DIR</filename> variable defaults
14681 to <filename>"${WORKDIR}/testimage"</filename>.
14682 <note>
14683 Actual test results reside in the task log
14684 (<filename>log.do_testimage</filename>), which is in
14685 the <filename>${WORKDIR}/temp/</filename> directory.
14686 </note>
14687 </para>
14688 </glossdef>
14689 </glossentry>
14690
14691 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
14692 <info>
14693 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
14694 </info>
14695 <glossdef>
14696 <para role="glossdeffirst">
14697<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14698 For automated hardware testing, specifies the command to
14699 use to control the power of the target machine under test.
14700 Typically, this command would point to a script that
14701 performs the appropriate action (e.g. interacting
14702 with a web-enabled power strip).
14703 The specified command should expect to receive as the last
14704 argument "off", "on" or "cycle" specifying to power off,
14705 on, or cycle (power off and then power on) the device,
14706 respectively.
14707 </para>
14708 </glossdef>
14709 </glossentry>
14710
14711 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
14712 <info>
14713 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
14714 </info>
14715 <glossdef>
14716 <para role="glossdeffirst">
14717<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14718 For automated hardware testing, specifies additional
14719 arguments to pass through to the command specified in
14720 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
14721 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
14722 is optional.
14723 You can use it if you wish, for example, to separate the
14724 machine-specific and non-machine-specific parts of the
14725 arguments.
14726 </para>
14727 </glossdef>
14728 </glossentry>
14729
14730 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
14731 <info>
14732 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
14733 </info>
14734 <glossdef>
14735 <para role="glossdeffirst">
14736<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14737 The time in seconds allowed for an image to boot before
14738 automated runtime tests begin to run against an
14739 image.
14740 The default timeout period to allow the boot process to
14741 reach the login prompt is 500 seconds.
14742 You can specify a different value in the
14743 <filename>local.conf</filename> file.
14744 </para>
14745
14746 <para>
14747 For more information on testing images, see the
14748 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014749 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014750 </para>
14751 </glossdef>
14752 </glossentry>
14753
14754 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
14755 <info>
14756 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."
14757 </info>
14758 <glossdef>
14759 <para role="glossdeffirst">
14760<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14761 For automated hardware testing, specifies the command
14762 to use to connect to the serial console of the target
14763 machine under test.
14764 This command simply needs to connect to the serial console
14765 and forward that connection to standard input and output
14766 as any normal terminal program does.
14767 </para>
14768
14769 <para>
14770 For example, to use the Picocom terminal program on
14771 serial device <filename>/dev/ttyUSB0</filename> at
14772 115200bps, you would set the variable as follows:
14773 <literallayout class='monospaced'>
14774 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
14775 </literallayout>
14776 </para>
14777 </glossdef>
14778 </glossentry>
14779
14780 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
14781 <info>
14782 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
14783 </info>
14784 <glossdef>
14785 <para role="glossdeffirst">
14786<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14787 For automated hardware testing, specifies additional
14788 arguments to pass through to the command specified in
14789 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
14790 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
14791 is optional.
14792 You can use it if you wish, for example, to separate the
14793 machine-specific and non-machine-specific parts of the
14794 command.
14795 </para>
14796 </glossdef>
14797 </glossentry>
14798
14799 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
14800 <info>
14801 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
14802 </info>
14803 <glossdef>
14804 <para role="glossdeffirst">
14805<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14806 The IP address of the build machine (host machine).
14807 This IP address is usually automatically detected.
14808 However, if detection fails, this variable needs to be set
14809 to the IP address of the build machine (i.e. where
14810 the build is taking place).
14811 <note>
14812 The <filename>TEST_SERVER_IP</filename> variable
14813 is only used for a small number of tests such as
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014814 the "dnf" test suite, which needs to download
14815 packages from
14816 <filename>WORKDIR/oe-rootfs-repo</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014817 </note>
14818 </para>
14819 </glossdef>
14820 </glossentry>
14821
14822 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
14823 <info>
14824 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
14825 </info>
14826 <glossdef>
14827 <para role="glossdeffirst">
14828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14829 Specifies the target controller to use when running tests
14830 against a test image.
14831 The default controller to use is "qemu":
14832 <literallayout class='monospaced'>
14833 TEST_TARGET = "qemu"
14834 </literallayout>
14835 </para>
14836
14837 <para>
14838 A target controller is a class that defines how an
14839 image gets deployed on a target and how a target is started.
14840 A layer can extend the controllers by adding a module
14841 in the layer's <filename>/lib/oeqa/controllers</filename>
14842 directory and by inheriting the
14843 <filename>BaseTarget</filename> class, which is an abstract
14844 class that cannot be used as a value of
14845 <filename>TEST_TARGET</filename>.
14846 </para>
14847
14848 <para>
14849 You can provide the following arguments with
14850 <filename>TEST_TARGET</filename>:
14851 <itemizedlist>
14852 <listitem><para><emphasis>"qemu" and "QemuTarget":</emphasis>
14853 Boots a QEMU image and runs the tests.
14854 See the
14855 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014856 section in the Yocto Project Development Tasks
14857 Manual for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014858 </para></listitem>
14859 <listitem><para><emphasis>"simpleremote" and "SimpleRemoteTarget":</emphasis>
14860 Runs the tests on target hardware that is already
14861 up and running.
14862 The hardware can be on the network or it can be
14863 a device running an image on QEMU.
14864 You must also set
14865 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
14866 when you use "simpleremote" or "SimpleRemoteTarget".
14867 <note>
14868 This argument is defined in
14869 <filename>meta/lib/oeqa/targetcontrol.py</filename>.
14870 The small caps names are kept for compatibility
14871 reasons.
14872 </note>
14873 </para></listitem>
14874 <listitem><para><emphasis>"GummibootTarget":</emphasis>
14875 Automatically deploys and runs tests on an
14876 EFI-enabled machine that has a master image
14877 installed.
14878 <note>
14879 This argument is defined in
14880 <filename>meta/lib/oeqa/controllers/masterimage.py</filename>.
14881 </note>
14882 </para></listitem>
14883 </itemizedlist>
14884 </para>
14885
14886 <para>
14887 For information on running tests on hardware, see the
14888 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014889 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014890 </para>
14891 </glossdef>
14892 </glossentry>
14893
14894 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
14895 <info>
14896 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
14897 </info>
14898 <glossdef>
14899 <para role="glossdeffirst">
14900<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14901 The IP address of your hardware under test.
14902 The <filename>TEST_TARGET_IP</filename> variable has no
14903 effect when
14904 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
14905 is set to "qemu".
14906 </para>
14907
14908 <para>
14909 When you specify the IP address, you can also include a
14910 port.
14911 Here is an example:
14912 <literallayout class='monospaced'>
14913 TEST_TARGET_IP = "192.168.1.4:2201"
14914 </literallayout>
14915 Specifying a port is useful when SSH is started on a
14916 non-standard port or in cases when your hardware under test
14917 is behind a firewall or network that is not directly
14918 accessible from your host and you need to do port address
14919 translation.
14920 </para>
14921 </glossdef>
14922 </glossentry>
14923
14924 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
14925 <info>
14926 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
14927 </info>
14928 <glossdef>
14929 <para role="glossdeffirst">
14930<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14931 An ordered list of tests (modules) to run against
14932 an image when performing automated runtime testing.
14933 </para>
14934
14935 <para>
14936 The OpenEmbedded build system provides a core set of tests
14937 that can be used against images.
14938 <note>
14939 Currently, there is only support for running these tests
14940 under QEMU.
14941 </note>
14942 Tests include <filename>ping</filename>,
14943 <filename>ssh</filename>, <filename>df</filename> among
14944 others.
14945 You can add your own tests to the list of tests by
14946 appending <filename>TEST_SUITES</filename> as follows:
14947 <literallayout class='monospaced'>
14948 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
14949 </literallayout>
14950 Alternatively, you can provide the "auto" option to
14951 have all applicable tests run against the image.
14952 <literallayout class='monospaced'>
14953 TEST_SUITES_append = " auto"
14954 </literallayout>
14955 Using this option causes the build system to automatically
14956 run tests that are applicable to the image.
14957 Tests that are not applicable are skipped.
14958 </para>
14959
14960 <para>
14961 The order in which tests are run is important.
14962 Tests that depend on another test must appear later in the
14963 list than the test on which they depend.
14964 For example, if you append the list of tests with two
14965 tests (<filename>test_A</filename> and
14966 <filename>test_B</filename>) where
14967 <filename>test_B</filename> is dependent on
14968 <filename>test_A</filename>, then you must order the tests
14969 as follows:
14970 <literallayout class='monospaced'>
14971 TEST_SUITES = " test_A test_B"
14972 </literallayout>
14973 </para>
14974
14975 <para>
14976 For more information on testing images, see the
14977 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014978 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014979 </para>
14980 </glossdef>
14981 </glossentry>
14982
14983 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
14984 <info>
14985 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
14986 </info>
14987 <glossdef>
14988 <para role="glossdeffirst">
14989<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14990 The directory in which the file BitBake is currently
14991 parsing is located.
14992 Do not manually set this variable.
14993 </para>
14994 </glossdef>
14995 </glossentry>
14996
14997 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
14998 <info>
14999 TIME[doc] = "The time the build was started using HMS format."
15000 </info>
15001 <glossdef>
15002 <para role="glossdeffirst">
15003<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15004 The time the build was started.
15005 Times appear using the hour, minute, and second (HMS)
15006 format (e.g. "140159" for one minute and fifty-nine
15007 seconds past 1400 hours).
15008 </para>
15009 </glossdef>
15010 </glossentry>
15011
15012 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
15013 <info>
15014 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."
15015 </info>
15016 <glossdef>
15017 <para role="glossdeffirst">
15018<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15019 This variable is the base directory the OpenEmbedded
15020 build system uses for all build output and intermediate
15021 files (other than the shared state cache).
15022 By default, the <filename>TMPDIR</filename> variable points
15023 to <filename>tmp</filename> within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015024 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015025 </para>
15026
15027 <para>
15028 If you want to establish this directory in a location other
15029 than the default, you can uncomment and edit the following
15030 statement in the
15031 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015032 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015033 <literallayout class='monospaced'>
15034 #TMPDIR = "${TOPDIR}/tmp"
15035 </literallayout>
15036 An example use for this scenario is to set
15037 <filename>TMPDIR</filename> to a local disk, which does
15038 not use NFS, while having the Build Directory use NFS.
15039 </para>
15040
15041 <para>
15042 The filesystem used by <filename>TMPDIR</filename> must
15043 have standard filesystem semantics (i.e. mixed-case files
15044 are unique, POSIX file locking, and persistent inodes).
15045 Due to various issues with NFS and bugs in some
15046 implementations, NFS does not meet this minimum
15047 requirement.
15048 Consequently, <filename>TMPDIR</filename> cannot be on
15049 NFS.
15050 </para>
15051 </glossdef>
15052 </glossentry>
15053
15054 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
15055 <info>
15056 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
15057 </info>
15058 <glossdef>
15059 <para role="glossdeffirst">
15060<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15061 This variable lists packages the OpenEmbedded build system
15062 uses when building an SDK, which contains a
15063 cross-development environment.
15064 The packages specified by this variable are part of the
15065 toolchain set that runs on the
15066 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
15067 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015068 <filename>nativesdk-</filename>.
15069 For example, consider the following command when
15070 building an SDK:
15071 <literallayout class='monospaced'>
15072 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
15073 </literallayout>
15074 In this case, a default list of packages is set in this
15075 variable, but you can add additional packages to the list.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015076 See the
15077 "<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 -050015078 section in the Yocto Project Application Development and
15079 the Extensible Software Development Kit (eSDK) manual
15080 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015081 </para>
15082
15083 <para>
15084 For background information on cross-development toolchains
15085 in the Yocto Project development environment, see the
15086 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
15087 section.
15088 For information on setting up a cross-development
15089 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015090 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15091 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015092 </para>
15093 </glossdef>
15094 </glossentry>
15095
15096 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
15097 <info>
15098 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
15099 </info>
15100 <glossdef>
15101 <para role="glossdeffirst">
15102<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15103 This variable defines the name used for the toolchain
15104 output.
15105 The
15106 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
15107 class sets the
15108 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
15109 follows:
15110 <literallayout class='monospaced'>
15111 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
15112 </literallayout>
15113 See the
15114 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
15115 and
15116 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
15117 variables for additional information.
15118 </para>
15119 </glossdef>
15120 </glossentry>
15121
15122 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
15123 <info>
15124 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."
15125 </info>
15126 <glossdef>
15127 <para role="glossdeffirst">
15128<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15129 This variable lists packages the OpenEmbedded build system
15130 uses when it creates the target part of an SDK
15131 (i.e. the part built for the target hardware), which
15132 includes libraries and headers.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015133 Use this variable to add individual packages to the
15134 part of the SDK that runs on the target.
15135 See the
15136 "<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 -050015137 section in the Yocto Project Application Development and
15138 the Extensible Software Development Kit (eSDK) manual for
15139 more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015140 </para>
15141
15142 <para>
15143 For background information on cross-development toolchains
15144 in the Yocto Project development environment, see the
15145 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
15146 section.
15147 For information on setting up a cross-development
15148 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015149 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15150 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015151 </para>
15152 </glossdef>
15153 </glossentry>
15154
15155 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
15156 <info>
15157 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
15158 </info>
15159 <glossdef>
15160 <para role="glossdeffirst">
15161<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15162 The top-level
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015163 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015164 BitBake automatically sets this variable when you
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015165 initialize your build environment using
15166 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015167 </para>
15168 </glossdef>
15169 </glossentry>
15170
15171 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
15172 <info>
15173 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."
15174 </info>
15175 <glossdef>
15176 <para role="glossdeffirst">
15177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15178 A sanitized version of
15179 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
15180 This variable is used where the architecture is needed in
15181 a value where underscores are not allowed, for example
15182 within package filenames.
15183 In this case, dash characters replace any underscore
15184 characters used in TARGET_ARCH.
15185 </para>
15186
15187 <para>
15188 Do not edit this variable.
15189 </para>
15190 </glossdef>
15191 </glossentry>
15192
15193 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
15194 <info>
15195 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
15196 </info>
15197 <glossdef>
15198 <para role="glossdeffirst">
15199<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15200 The GNU canonical architecture for a specific architecture
15201 (i.e. <filename>arm</filename>,
15202 <filename>armeb</filename>,
15203 <filename>mips</filename>,
15204 <filename>mips64</filename>, and so forth).
15205 BitBake uses this value to setup configuration.
15206 </para>
15207
15208 <para>
15209 <filename>TUNE_ARCH</filename> definitions are specific to
15210 a given architecture.
15211 The definitions can be a single static definition, or
15212 can be dynamically adjusted.
15213 You can see details for a given CPU family by looking at
15214 the architecture's <filename>README</filename> file.
15215 For example, the
15216 <filename>meta/conf/machine/include/mips/README</filename>
15217 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015218 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015219 provides information for <filename>TUNE_ARCH</filename>
15220 specific to the <filename>mips</filename> architecture.
15221 </para>
15222
15223 <para>
15224 <filename>TUNE_ARCH</filename> is tied closely to
15225 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
15226 which defines the target machine's architecture.
15227 The BitBake configuration file
15228 (<filename>meta/conf/bitbake.conf</filename>) sets
15229 <filename>TARGET_ARCH</filename> as follows:
15230 <literallayout class='monospaced'>
15231 TARGET_ARCH = "${TUNE_ARCH}"
15232 </literallayout>
15233 </para>
15234
15235 <para>
15236 The following list, which is by no means complete since
15237 architectures are configurable, shows supported machine
15238 architectures:
15239 <literallayout class='monospaced'>
15240 arm
15241 i586
15242 x86_64
15243 powerpc
15244 powerpc64
15245 mips
15246 mipsel
15247 </literallayout>
15248 </para>
15249 </glossdef>
15250 </glossentry>
15251
15252 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
15253 <info>
15254 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
15255 </info>
15256 <glossdef>
15257 <para role="glossdeffirst">
15258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15259 Specifies architecture-specific assembler flags for
15260 the target system.
15261 The set of flags is based on the selected tune features.
15262 <filename>TUNE_ASARGS</filename> is set using
15263 the tune include files, which are typically under
15264 <filename>meta/conf/machine/include/</filename> and are
15265 influenced through
15266 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15267 For example, the
15268 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15269 file defines the flags for the x86 architecture as follows:
15270 <literallayout class='monospaced'>
15271 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
15272 </literallayout>
15273 <note>
15274 Board Support Packages (BSPs) select the tune.
15275 The selected tune, in turn, affects the tune variables
15276 themselves (i.e. the tune can supply its own
15277 set of flags).
15278 </note>
15279 </para>
15280 </glossdef>
15281 </glossentry>
15282
15283 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
15284 <info>
15285 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
15286 </info>
15287 <glossdef>
15288 <para role="glossdeffirst">
15289<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15290 Specifies architecture-specific C compiler flags for
15291 the target system.
15292 The set of flags is based on the selected tune features.
15293 <filename>TUNE_CCARGS</filename> is set using
15294 the tune include files, which are typically under
15295 <filename>meta/conf/machine/include/</filename> and are
15296 influenced through
15297 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15298 <note>
15299 Board Support Packages (BSPs) select the tune.
15300 The selected tune, in turn, affects the tune variables
15301 themselves (i.e. the tune can supply its own
15302 set of flags).
15303 </note>
15304 </para>
15305 </glossdef>
15306 </glossentry>
15307
15308 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
15309 <info>
15310 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
15311 </info>
15312 <glossdef>
15313 <para role="glossdeffirst">
15314<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15315 Specifies architecture-specific linker flags for
15316 the target system.
15317 The set of flags is based on the selected tune features.
15318 <filename>TUNE_LDARGS</filename> is set using
15319 the tune include files, which are typically under
15320 <filename>meta/conf/machine/include/</filename> and are
15321 influenced through
15322 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15323 For example, the
15324 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15325 file defines the flags for the x86 architecture as follows:
15326 <literallayout class='monospaced'>
15327 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
15328 </literallayout>
15329 <note>
15330 Board Support Packages (BSPs) select the tune.
15331 The selected tune, in turn, affects the tune variables
15332 themselves (i.e. the tune can supply its own
15333 set of flags).
15334 </note>
15335 </para>
15336 </glossdef>
15337 </glossentry>
15338
15339 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
15340 <info>
15341 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
15342 </info>
15343 <glossdef>
15344 <para role="glossdeffirst">
15345<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15346 Features used to "tune" a compiler for optimal use
15347 given a specific processor.
15348 The features are defined within the tune files and allow
15349 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
15350 dynamically generated based on the features.
15351 </para>
15352
15353 <para>
15354 The OpenEmbedded build system verifies the features
15355 to be sure they are not conflicting and that they are
15356 supported.
15357 </para>
15358
15359 <para>
15360 The BitBake configuration file
15361 (<filename>meta/conf/bitbake.conf</filename>) defines
15362 <filename>TUNE_FEATURES</filename> as follows:
15363 <literallayout class='monospaced'>
15364 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
15365 </literallayout>
15366 See the
15367 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
15368 variable for more information.
15369 </para>
15370 </glossdef>
15371 </glossentry>
15372
15373 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
15374 <info>
15375 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
15376 </info>
15377 <glossdef>
15378 <para role="glossdeffirst">
15379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15380 The package architecture understood by the packaging
15381 system to define the architecture, ABI, and tuning of
15382 output packages.
15383 The specific tune is defined using the "_tune" override
15384 as follows:
15385 <literallayout class='monospaced'>
15386 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
15387 </literallayout>
15388 </para>
15389
15390 <para>
15391 These tune-specific package architectures are defined in
15392 the machine include files.
15393 Here is an example of the "core2-32" tuning as used
15394 in the
15395 <filename>meta/conf/machine/include/tune-core2.inc</filename>
15396 file:
15397 <literallayout class='monospaced'>
15398 TUNE_PKGARCH_tune-core2-32 = "core2-32"
15399 </literallayout>
15400 </para>
15401 </glossdef>
15402 </glossentry>
15403
15404 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
15405 <info>
15406 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."
15407 </info>
15408 <glossdef>
15409 <para role="glossdeffirst">
15410<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15411 An underlying Application Binary Interface (ABI) used by
15412 a particular tuning in a given toolchain layer.
15413 Providers that use prebuilt libraries can use the
15414 <filename>TUNEABI</filename>,
15415 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15416 and
15417 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15418 variables to check compatibility of tunings against their
15419 selection of libraries.
15420 </para>
15421
15422 <para>
15423 If <filename>TUNEABI</filename> is undefined, then every
15424 tuning is allowed.
15425 See the
15426 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15427 class to see how the variable is used.
15428 </para>
15429 </glossdef>
15430 </glossentry>
15431
15432 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
15433 <info>
15434 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
15435 </info>
15436 <glossdef>
15437 <para role="glossdeffirst">
15438<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15439 If set, the OpenEmbedded system ignores the
15440 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15441 variable.
15442 Providers that use prebuilt libraries can use the
15443 <filename>TUNEABI_OVERRIDE</filename>,
15444 <filename>TUNEABI_WHITELIST</filename>,
15445 and
15446 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15447 variables to check compatibility of a tuning against their
15448 selection of libraries.
15449 </para>
15450
15451 <para>
15452 See the
15453 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15454 class to see how the variable is used.
15455 </para>
15456 </glossdef>
15457 </glossentry>
15458
15459 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
15460 <info>
15461 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
15462 </info>
15463 <glossdef>
15464 <para role="glossdeffirst">
15465<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15466 A whitelist of permissible
15467 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15468 values.
15469 If <filename>TUNEABI_WHITELIST</filename> is not set,
15470 all tunes are allowed.
15471 Providers that use prebuilt libraries can use the
15472 <filename>TUNEABI_WHITELIST</filename>,
15473 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15474 and <filename>TUNEABI</filename> variables to check
15475 compatibility of a tuning against their selection of
15476 libraries.
15477 </para>
15478
15479 <para>
15480 See the
15481 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15482 class to see how the variable is used.
15483 </para>
15484 </glossdef>
15485 </glossentry>
15486
15487 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
15488 <info>
15489 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
15490 </info>
15491 <glossdef>
15492 <para role="glossdeffirst">
15493<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15494 Specifies CPU or Application Binary Interface (ABI)
15495 tuning features that conflict with <replaceable>feature</replaceable>.
15496 </para>
15497
15498 <para>
15499 Known tuning conflicts are specified in the machine include
15500 files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015501 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015502 Here is an example from the
15503 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
15504 include file that lists the "o32" and "n64" features as
15505 conflicting with the "n32" feature:
15506 <literallayout class='monospaced'>
15507 TUNECONFLICTS[n32] = "o32 n64"
15508 </literallayout>
15509 </para>
15510 </glossdef>
15511 </glossentry>
15512
15513 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
15514 <info>
15515 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
15516 </info>
15517 <glossdef>
15518 <para role="glossdeffirst">
15519<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15520 Specifies a valid CPU or Application Binary Interface (ABI)
15521 tuning feature.
15522 The specified feature is stored as a flag.
15523 Valid features are specified in the machine include files
15524 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
15525 Here is an example from that file:
15526 <literallayout class='monospaced'>
15527 TUNEVALID[bigendian] = "Enable big-endian mode."
15528 </literallayout>
15529 </para>
15530
15531 <para>
15532 See the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015533 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015534 for these features.
15535 </para>
15536 </glossdef>
15537 </glossentry>
15538
15539 </glossdiv>
15540
15541 <glossdiv id='var-glossary-u'><title>U</title>
15542
15543 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
15544 <info>
15545 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
15546 </info>
15547 <glossdef>
15548 <para role="glossdeffirst">
15549<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15550 Configures the
15551 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
15552 and can also define
15553 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
15554 for individual cases.
15555 </para>
15556
15557 <para>
15558 Following is an example from the
15559 <filename>meta-fsl-arm</filename> layer.
15560 <literallayout class='monospaced'>
15561 UBOOT_CONFIG ??= "sd"
15562 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
15563 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
15564 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
15565 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
15566 </literallayout>
15567 In this example, "sd" is selected as the configuration
15568 of the possible four for the
15569 <filename>UBOOT_MACHINE</filename>.
15570 The "sd" configuration defines "mx6qsabreauto_config"
15571 as the value for <filename>UBOOT_MACHINE</filename>, while
15572 the "sdcard" specifies the
15573 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
15574 image.
15575 </para>
15576
15577 <para>
15578 For more information on how the
15579 <filename>UBOOT_CONFIG</filename> is handled, see the
15580 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
15581 class.
15582 </para>
15583 </glossdef>
15584 </glossentry>
15585
15586 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
15587 <info>
15588 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
15589 </info>
15590 <glossdef>
15591 <para role="glossdeffirst">
15592<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15593 Specifies the entry point for the U-Boot image.
15594 During U-Boot image creation, the
15595 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
15596 as a command-line parameter to the
15597 <filename>uboot-mkimage</filename> utility.
15598 </para>
15599 </glossdef>
15600 </glossentry>
15601
15602 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
15603 <info>
15604 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
15605 </info>
15606 <glossdef>
15607 <para role="glossdeffirst">
15608<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15609 Specifies the load address for the U-Boot image.
15610 During U-Boot image creation, the
15611 <filename>UBOOT_LOADADDRESS</filename> variable is passed
15612 as a command-line parameter to the
15613 <filename>uboot-mkimage</filename> utility.
15614 </para>
15615 </glossdef>
15616 </glossentry>
15617
15618 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
15619 <info>
15620 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
15621 </info>
15622 <glossdef>
15623 <para role="glossdeffirst">
15624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15625 Appends a string to the name of the local version of the
15626 U-Boot image.
15627 For example, assuming the version of the U-Boot image
15628 built was "2013.10, the full version string reported by
15629 U-Boot would be "2013.10-yocto" given the following
15630 statement:
15631 <literallayout class='monospaced'>
15632 UBOOT_LOCALVERSION = "-yocto"
15633 </literallayout>
15634 </para>
15635 </glossdef>
15636 </glossentry>
15637
15638 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
15639 <info>
15640 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
15641 </info>
15642 <glossdef>
15643 <para role="glossdeffirst">
15644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15645 Specifies the value passed on the
15646 <filename>make</filename> command line when building
15647 a U-Boot image.
15648 The value indicates the target platform configuration.
15649 You typically set this variable from the machine
15650 configuration file (i.e.
15651 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
15652 </para>
15653
15654 <para>
15655 Please see the "Selection of Processor Architecture and
15656 Board Type" section in the U-Boot README for valid values
15657 for this variable.
15658 </para>
15659 </glossdef>
15660 </glossentry>
15661
15662 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
15663 <info>
15664 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
15665 </info>
15666 <glossdef>
15667 <para role="glossdeffirst">
15668<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15669 Specifies the target called in the
15670 <filename>Makefile</filename>.
15671 The default target is "all".
15672 </para>
15673 </glossdef>
15674 </glossentry>
15675
15676 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
15677 <info>
15678 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
15679 </info>
15680 <glossdef>
15681 <para role="glossdeffirst">
15682<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15683 Points to the generated U-Boot extension.
15684 For example, <filename>u-boot.sb</filename> has a
15685 <filename>.sb</filename> extension.
15686 </para>
15687
15688 <para>
15689 The default U-Boot extension is
15690 <filename>.bin</filename>
15691 </para>
15692 </glossdef>
15693 </glossentry>
15694
15695 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
15696 <info>
15697 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
15698 </info>
15699 <glossdef>
15700 <para role="glossdeffirst">
15701<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15702 Specifies the target used for building U-Boot.
15703 The target is passed directly as part of the "make" command
15704 (e.g. SPL and AIS).
15705 If you do not specifically set this variable, the
15706 OpenEmbedded build process passes and uses "all" for the
15707 target during the U-Boot building process.
15708 </para>
15709 </glossdef>
15710 </glossentry>
15711
15712 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
15713 <info>
15714 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."
15715 </info>
15716 <glossdef>
15717 <para role="glossdeffirst">
15718<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15719 Specifies a list of options that, if reported by the
15720 configure script as being invalid, should not generate a
15721 warning during the
15722 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
15723 task.
15724 Normally, invalid configure options are simply not passed
15725 to the configure script (e.g. should be removed from
Patrick Williamsc0f7c042017-02-23 20:41:17 -060015726 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
15727 or
15728 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015729 However, common options, for example, exist that are passed
15730 to all configure scripts at a class level that might not
15731 be valid for some configure scripts.
15732 It follows that no benefit exists in seeing a warning about
15733 these options.
15734 For these cases, the options are added to
15735 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
15736 </para>
15737
15738 <para>
15739 The configure arguments check that uses
15740 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
15741 of the
15742 <link linkend='ref-classes-insane'><filename>insane</filename></link>
15743 class and is only enabled if the recipe inherits the
15744 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
15745 class.
15746 </para>
15747 </glossdef>
15748 </glossentry>
15749
15750 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
15751 <info>
15752 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is to be enabled."
15753 </info>
15754 <glossdef>
15755 <para role="glossdeffirst">
15756<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15757 For recipes inheriting the
15758 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
15759 class, <filename>UPDATERCPN</filename> specifies
15760 the package that contains the initscript that is to be
15761 enabled.
15762 </para>
15763
15764 <para>
15765 The default value is "${PN}".
15766 Given that almost all recipes that install initscripts
15767 package them in the main package for the recipe, you
15768 rarely need to set this variable in individual recipes.
15769 </para>
15770 </glossdef>
15771 </glossentry>
15772
Patrick Williamsc0f7c042017-02-23 20:41:17 -060015773 <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
15774 <info>
15775 UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
15776 </info>
15777 <glossdef>
15778 <para role="glossdeffirst">
15779<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15780 When the
15781 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
15782 class is enabled globally, you can perform a per-recipe
15783 check for what the latest upstream source code version is
15784 by calling
15785 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
15786 If the recipe source code is provided from Git
15787 repositories, the OpenEmbedded build system determines the
15788 latest upstream version by picking the latest tag from the
15789 list of all repository tags.
15790 You can use the
15791 <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
15792 variable to provide a regular expression to filter only the
15793 relevant tags should the default filter not work
15794 correctly.
15795 <literallayout class='monospaced'>
15796 UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
15797 </literallayout>
15798 </para>
15799 </glossdef>
15800 </glossentry>
15801
15802 <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
15803 <info>
15804 UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
15805 </info>
15806 <glossdef>
15807 <para role="glossdeffirst">
15808<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15809 When the
15810 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
15811 class is enabled globally, use the
15812 <filename>UPSTREAM_CHECK_REGEX</filename> variable to
15813 specify a different regular expression instead of the
15814 default one when the package checking system is parsing
15815 the page found using
15816 <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
15817 <literallayout class='monospaced'>
15818 UPSTREAM_CHECK_REGEX = "package_regex"
15819 </literallayout>
15820 </para>
15821 </glossdef>
15822 </glossentry>
15823
15824 <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
15825 <info>
15826 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."
15827 </info>
15828 <glossdef>
15829 <para role="glossdeffirst">
15830<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15831 When the
15832 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
15833 class is enabled globally, you can perform a per-recipe
15834 check for what the latest upstream source code version is
15835 by calling <filename>bitbake -c checkpkg</filename>
15836 <replaceable>recipe</replaceable>.
15837 If the source code is provided from tarballs, the latest
15838 version is determined by fetching the directory listing
15839 where the tarball is and attempting to find a later tarball.
15840 When this approach does not work, you can use
15841 <filename>UPSTREAM_CHECK_URI</filename> to
15842 provide a different URI that contains the link to the
15843 latest tarball.
15844 <literallayout class='monospaced'>
15845 UPSTREAM_CHECK_URI = "recipe_url"
15846 </literallayout>
15847 </para>
15848 </glossdef>
15849 </glossentry>
15850
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015851 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
15852 <info>
15853 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
15854 </info>
15855 <glossdef>
15856 <para role="glossdeffirst">
15857<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15858 Determines if <filename>devtmpfs</filename> is used for
15859 <filename>/dev</filename> population.
15860 The default value used for <filename>USE_DEVFS</filename>
15861 is "1" when no value is specifically set.
15862 Typically, you would set <filename>USE_DEVFS</filename>
15863 to "0" for a statically populated <filename>/dev</filename>
15864 directory.
15865 </para>
15866
15867 <para>
15868 See the
15869 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015870 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015871 information on how to use this variable.
15872 </para>
15873 </glossdef>
15874 </glossentry>
15875
15876 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
15877 <info>
15878 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."
15879 </info>
15880 <glossdef>
15881 <para role="glossdeffirst">
15882<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15883 When using
15884 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
15885 determines whether or not to run a
15886 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
15887 on any virtual terminals in order to enable logging in
15888 through those terminals.
15889 </para>
15890
15891 <para>
15892 The default value used for <filename>USE_VT</filename>
15893 is "1" when no default value is specifically set.
15894 Typically, you would set <filename>USE_VT</filename>
15895 to "0" in the machine configuration file for machines
15896 that do not have a graphical display attached and
15897 therefore do not need virtual terminal functionality.
15898 </para>
15899 </glossdef>
15900 </glossentry>
15901
15902 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
15903 <info>
15904 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
15905 </info>
15906 <glossdef>
15907 <para role="glossdeffirst">
15908<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15909 A list of classes to globally inherit.
15910 These classes are used by the OpenEmbedded build system
15911 to enable extra features (e.g.
15912 <filename>buildstats</filename>,
15913 <filename>image-mklibs</filename>, and so forth).
15914 </para>
15915
15916 <para>
15917 The default list is set in your
15918 <filename>local.conf</filename> file:
15919 <literallayout class='monospaced'>
15920 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
15921 </literallayout>
15922 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015923 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015924 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015925 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015926 </para>
15927 </glossdef>
15928 </glossentry>
15929
15930 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
15931 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060015932 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 -050015933 </info>
15934 <glossdef>
15935 <para role="glossdeffirst">
15936<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060015937 If set to "error", forces the OpenEmbedded build system to
15938 produce an error if the user identification
15939 (<filename>uid</filename>) and group identification
15940 (<filename>gid</filename>) values are not defined
15941 in <filename>files/passwd</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015942 and <filename>files/group</filename> files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060015943 If set to "warn", a warning will be issued instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015944 </para>
15945
15946 <para>
15947 The default behavior for the build system is to dynamically
15948 apply <filename>uid</filename> and
15949 <filename>gid</filename> values.
15950 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
15951 variable is by default not set.
15952 If you plan on using statically assigned
15953 <filename>gid</filename> and <filename>uid</filename>
15954 values, you should set
15955 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
15956 your <filename>local.conf</filename> file as
15957 follows:
15958 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060015959 USERADD_ERROR_DYNAMIC = "error"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015960 </literallayout>
15961 Overriding the default behavior implies you are going to
15962 also take steps to set static <filename>uid</filename> and
15963 <filename>gid</filename> values through use of the
15964 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
15965 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
15966 and
15967 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
15968 variables.
15969 </para>
15970 </glossdef>
15971 </glossentry>
15972
15973 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
15974 <info>
15975 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."
15976 </info>
15977 <glossdef>
15978 <para role="glossdeffirst">
15979<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15980 Specifies a password file to use for obtaining static
15981 group identification (<filename>gid</filename>) values
15982 when the OpenEmbedded build system adds a group to the
15983 system during package installation.
15984 </para>
15985
15986 <para>
15987 When applying static group identification
15988 (<filename>gid</filename>) values, the OpenEmbedded build
15989 system looks in
15990 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
15991 for a <filename>files/group</filename> file and then applies
15992 those <filename>uid</filename> values.
15993 Set the variable as follows in your
15994 <filename>local.conf</filename> file:
15995 <literallayout class='monospaced'>
15996 USERADD_GID_TABLES = "files/group"
15997 </literallayout>
15998 </para>
15999
16000 <note>
16001 Setting the
16002 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16003 variable to "useradd-staticids" causes the build system
16004 to use static <filename>gid</filename> values.
16005 </note>
16006 </glossdef>
16007 </glossentry>
16008
16009 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
16010 <info>
16011 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."
16012 </info>
16013 <glossdef>
16014 <para role="glossdeffirst">
16015<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16016 When inheriting the
16017 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16018 class, this variable
16019 specifies the individual packages within the recipe that
16020 require users and/or groups to be added.
16021 </para>
16022
16023 <para>
16024 You must set this variable if the recipe inherits the
16025 class.
16026 For example, the following enables adding a user for the
16027 main package in a recipe:
16028 <literallayout class='monospaced'>
16029 USERADD_PACKAGES = "${PN}"
16030 </literallayout>
16031 <note>
16032 If follows that if you are going to use the
16033 <filename>USERADD_PACKAGES</filename> variable,
16034 you need to set one or more of the
16035 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
16036 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
16037 or
16038 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
16039 variables.
16040 </note>
16041 </para>
16042
16043 </glossdef>
16044 </glossentry>
16045
16046 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
16047 <info>
16048 USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed."
16049 </info>
16050 <glossdef>
16051 <para role="glossdeffirst">
16052<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16053 When inheriting the
16054 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16055 class, this variable
16056 specifies for a package what parameters should be passed
16057 to the <filename>useradd</filename> command
16058 if you wish to add a user to the system when the package
16059 is installed.
16060 </para>
16061
16062 <para>
16063 Here is an example from the <filename>dbus</filename>
16064 recipe:
16065 <literallayout class='monospaced'>
16066 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
16067 --no-create-home --shell /bin/false \
16068 --user-group messagebus"
16069 </literallayout>
16070 For information on the standard Linux shell command
16071 <filename>useradd</filename>, see
16072 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
16073 </para>
16074 </glossdef>
16075 </glossentry>
16076
16077 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
16078 <info>
16079 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."
16080 </info>
16081 <glossdef>
16082 <para role="glossdeffirst">
16083<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16084 Specifies a password file to use for obtaining static
16085 user identification (<filename>uid</filename>) values
16086 when the OpenEmbedded build system adds a user to the
16087 system during package installation.
16088 </para>
16089
16090 <para>
16091 When applying static user identification
16092 (<filename>uid</filename>) values, the OpenEmbedded build
16093 system looks in
16094 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16095 for a <filename>files/passwd</filename> file and then applies
16096 those <filename>uid</filename> values.
16097 Set the variable as follows in your
16098 <filename>local.conf</filename> file:
16099 <literallayout class='monospaced'>
16100 USERADD_UID_TABLES = "files/passwd"
16101 </literallayout>
16102 </para>
16103
16104 <note>
16105 Setting the
16106 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16107 variable to "useradd-staticids" causes the build system
16108 to use static <filename>uid</filename> values.
16109 </note>
16110 </glossdef>
16111 </glossentry>
16112
16113 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
16114 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016115 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 -050016116 </info>
16117 <glossdef>
16118 <para role="glossdeffirst">
16119<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16120 When set to "useradd-staticids", causes the
16121 OpenEmbedded build system to base all user and group
16122 additions on a static
16123 <filename>passwd</filename> and
16124 <filename>group</filename> files found in
16125 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
16126 </para>
16127
16128 <para>
16129 To use static user identification (<filename>uid</filename>)
16130 and group identification (<filename>gid</filename>)
16131 values, set the variable
16132 as follows in your <filename>local.conf</filename> file:
16133 <literallayout class='monospaced'>
16134 USERADDEXTENSION = "useradd-staticids"
16135 </literallayout>
16136 <note>
16137 Setting this variable to use static
16138 <filename>uid</filename> and <filename>gid</filename>
16139 values causes the OpenEmbedded build system to employ
16140 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016141 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016142 class.
16143 </note>
16144 </para>
16145
16146 <para>
16147 If you use static <filename>uid</filename> and
16148 <filename>gid</filename> information, you must also
16149 specify the <filename>files/passwd</filename> and
16150 <filename>files/group</filename> files by setting the
16151 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16152 and
16153 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16154 variables.
16155 Additionally, you should also set the
16156 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
16157 variable.
16158 </para>
16159 </glossdef>
16160 </glossentry>
16161
16162 </glossdiv>
16163
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016164 <glossdiv id='var-glossary-v'><title>V</title>
16165
16166 <glossentry id='var-VOLATILE_LOG_DIR'><glossterm>VOLATILE_LOG_DIR</glossterm>
16167 <info>
16168 VOLATILE_LOG_DIR[doc] = "Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files."
16169 </info>
16170 <glossdef>
16171 <para role="glossdeffirst">
16172<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16173 Specifies the persistence of the target's
16174 <filename>/var/log</filename> directory, which is used to
16175 house postinstall target log files.
16176 </para>
16177
16178 <para>
16179 By default, <filename>VOLATILE_LOG_DIR</filename> is set
16180 to "yes", which means the file is not persistent.
16181 You can override this setting by setting the
16182 variable to "no" to make the log directory persistent.
16183 </para>
16184 </glossdef>
16185 </glossentry>
16186
16187 </glossdiv>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016188
16189 <glossdiv id='var-glossary-w'><title>W</title>
16190
16191 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
16192 <info>
16193 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
16194 </info>
16195 <glossdef>
16196 <para role="glossdeffirst">
16197<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16198 Specifies the quality assurance checks whose failures are
16199 reported as warnings by the OpenEmbedded build system.
16200 You set this variable in your distribution configuration
16201 file.
16202 For a list of the checks you can control with this variable,
16203 see the
16204 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
16205 section.
16206 </para>
16207 </glossdef>
16208 </glossentry>
16209
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016210 <glossentry id='var-WKS_FILE_DEPENDS'><glossterm>WKS_FILE_DEPENDS</glossterm>
16211 <info>
16212 WKS_FILE_DEPENDS[doc] = "Lists a recipe's build-time dependencies specific to Wic."
16213 </info>
16214 <glossdef>
16215 <para role="glossdeffirst">
16216 When placed in the recipe that builds your image, this
16217 variable lists build-time dependencies.
16218 The <filename>WKS_FILE_DEPENDS</filename> variable is only
16219 applicable when Wic images are active (i.e. when
16220 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
16221 contains entries related to Wic).
16222 If your recipe does not create Wic images, the variable
16223 has no effect.
16224 </para>
16225
16226 <para>
16227 The <filename>WKS_FILE_DEPENDS</filename> variable is
16228 similar to the
16229 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
16230 variable.
16231 When you use the variable in your recipe that builds the
16232 Wic image, dependencies you list in the
16233 <filename>WIC_FILE_DEPENDS</filename> variable are added to
16234 the <filename>DEPENDS</filename> variable.
16235 </para>
16236
16237 <para>
16238 With the <filename>WKS_FILE_DEPENDS</filename> variable,
16239 you have the possibility to specify a list of additional
16240 dependencies (e.g. native tools, bootloaders, and so forth),
16241 that are required to build Wic images.
16242 Following is an example:
16243 <literallayout class='monospaced'>
16244 WKS_FILE_DEPENDS = "<replaceable>some-native-tool</replaceable>"
16245 </literallayout>
16246 In the previous example,
16247 <replaceable>some-native-tool</replaceable> would be
16248 replaced with an actual native tool on which the build
16249 would depend.
16250 </para>
16251 </glossdef>
16252 </glossentry>
16253
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016254 <glossentry id='var-WKS_FILE'><glossterm>WKS_FILE</glossterm>
16255 <info>
16256 WKS_FILE[doc] = "Specifies the name of the wic kickstart file."
16257 </info>
16258 <glossdef>
16259 <para role="glossdeffirst">
16260 Specifies the location of the Wic
16261 kickstart file that is used by the OpenEmbedded build
16262 system to create a partitioned image
16263 (<replaceable>image</replaceable><filename>.wic</filename>).
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016264 For information on how to create a partitioned image, see
16265 the
16266 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
16267 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016268 For details on the kickstart file format, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016269 "<link linkend='openembedded-kickstart-wks-reference'>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</link>
16270 Chapter.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016271 </para>
16272 </glossdef>
16273 </glossentry>
16274
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016275 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
16276 <info>
16277 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."
16278 </info>
16279 <glossdef>
16280 <para role="glossdeffirst">
16281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16282 The pathname of the work directory in which the OpenEmbedded
16283 build system builds a recipe.
16284 This directory is located within the
16285 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
16286 directory structure and is specific to the recipe being
16287 built and the system for which it is being built.
16288 </para>
16289
16290 <para>
16291 The <filename>WORKDIR</filename> directory is defined as
16292 follows:
16293 <literallayout class='monospaced'>
16294 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
16295 </literallayout>
16296 The actual directory depends on several things:
16297 <itemizedlist>
16298 <listitem><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>:
16299 The top-level build output directory</listitem>
16300 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
16301 The target system identifier</listitem>
16302 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
16303 The recipe name</listitem>
16304 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
16305 The epoch - (if
16306 <link linkend='var-PE'><filename>PE</filename></link>
16307 is not specified, which is usually the case for most
16308 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
16309 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
16310 The recipe version</listitem>
16311 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
16312 The recipe revision</listitem>
16313 </itemizedlist>
16314 </para>
16315
16316 <para>
16317 As an example, assume a Source Directory top-level folder
16318 name <filename>poky</filename>, a default Build Directory at
16319 <filename>poky/build</filename>, and a
16320 <filename>qemux86-poky-linux</filename> machine target
16321 system.
16322 Furthermore, suppose your recipe is named
16323 <filename>foo_1.3.0-r0.bb</filename>.
16324 In this case, the work directory the build system uses to
16325 build the package would be as follows:
16326 <literallayout class='monospaced'>
16327 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
16328 </literallayout>
16329 </para>
16330 </glossdef>
16331 </glossentry>
16332
16333 </glossdiv>
16334
16335 <glossdiv id='var-glossary-x'><title>X</title>
16336
16337 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
16338 <info>
16339 XSERVER[doc] = "Specifies the packages that should be installed
16340 to provide an X server and drivers for the current machine."
16341 </info>
16342 <glossdef>
16343 <para role="glossdeffirst">
16344<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16345 Specifies the packages that should be installed to
16346 provide an X server and drivers for the current machine,
16347 assuming your image directly includes
16348 <filename>packagegroup-core-x11-xserver</filename> or,
16349 perhaps indirectly, includes "x11-base" in
16350 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
16351 </para>
16352
16353 <para>
16354 The default value of <filename>XSERVER</filename>, if not
16355 specified in the machine configuration, is
16356 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
16357 </para>
16358 </glossdef>
16359 </glossentry>
16360
16361 </glossdiv>
16362
16363<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
16364<!-- </glossdiv>-->
16365
16366<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
16367<!-- </glossdiv>-->
16368
16369</glossary>
16370</chapter>
16371<!--
16372vim: expandtab tw=80 ts=4
16373-->