blob: 1c55a92d15838eead339088f48e37fb1ce5f7dca [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<!-- Dummy chapter -->
6<chapter id='ref-variables-glos'>
7
8<title>Variables Glossary</title>
9
10<para>
11 This chapter lists common variables used in the OpenEmbedded build system and gives an overview
12 of their function and contents.
13</para>
14
15<glossary id='ref-variables-glossary'>
16
17
18 <para>
19 <link linkend='var-ABIEXTENSION'>A</link>
20 <link linkend='var-B'>B</link>
21 <link linkend='var-CACHE'>C</link>
22 <link linkend='var-D'>D</link>
23 <link linkend='var-EFI_PROVIDER'>E</link>
24 <link linkend='var-FEATURE_PACKAGES'>F</link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040025 <link linkend='var-GCCPIE'>G</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050026 <link linkend='var-HOMEPAGE'>H</link>
27 <link linkend='var-ICECC_DISABLED'>I</link>
28<!-- <link linkend='var-glossary-j'>J</link> -->
29 <link linkend='var-KARCH'>K</link>
30 <link linkend='var-LABELS'>L</link>
31 <link linkend='var-MACHINE'>M</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050032 <link linkend='var-NATIVELSBSTRING'>N</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033 <link linkend='var-OBJCOPY'>O</link>
34 <link linkend='var-P'>P</link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050035<!-- <link linkend='var-glossary-q'>Q</link> -->
Patrick Williamsc124f4f2015-09-15 14:41:29 -050036 <link linkend='var-RANLIB'>R</link>
37 <link linkend='var-S'>S</link>
38 <link linkend='var-T'>T</link>
39 <link linkend='var-UBOOT_CONFIG'>U</link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050040 <link linkend='var-VOLATILE_LOG_DIR'>V</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050041 <link linkend='var-WARN_QA'>W</link>
42 <link linkend='var-XSERVER'>X</link>
43<!-- <link linkend='var-glossary-y'>Y</link> -->
44<!-- <link linkend='var-glossary-z'>Z</link>-->
45 </para>
46
47 <glossdiv id='var-glossary-a'><title>A</title>
48
49 <glossentry id='var-ABIEXTENSION'><glossterm>ABIEXTENSION</glossterm>
50 <info>
51 ABIEXTENSION[doc] = "Extension to the Application Binary Interface (ABI) field of the GNU canonical architecture name (e.g. "eabi")."
52 </info>
53 <glossdef>
54 <para role="glossdeffirst">
55<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
56 Extension to the Application Binary Interface (ABI)
57 field of the GNU canonical architecture name
58 (e.g. "eabi").
59 </para>
60
61 <para>
62 ABI extensions are set in the machine include files.
63 For example, the
64 <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>
65 file sets the following extension:
66 <literallayout class='monospaced'>
67 ABIEXTENSION = "eabi"
68 </literallayout>
69 </para>
70 </glossdef>
71 </glossentry>
72
73 <glossentry id='var-ALLOW_EMPTY'><glossterm>ALLOW_EMPTY</glossterm>
74 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040075 ALLOW_EMPTY[doc] = "Specifies whether to produce an output package even if it is empty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050076 </info>
77 <glossdef>
78 <para role="glossdeffirst">
79<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040080 Specifies whether to produce an output package even if it is
81 empty.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050082 By default, BitBake does not produce empty packages.
83 This default behavior can cause issues when there is an
84 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> or
85 some other hard runtime requirement on the existence of the package.
86 </para>
87
88 <para>
89 Like all package-controlling variables, you must always use them in
90 conjunction with a package name override, as in:
91 <literallayout class='monospaced'>
92 ALLOW_EMPTY_${PN} = "1"
93 ALLOW_EMPTY_${PN}-dev = "1"
94 ALLOW_EMPTY_${PN}-staticdev = "1"
95 </literallayout>
96 </para>
97 </glossdef>
98 </glossentry>
99
100 <glossentry id='var-ALTERNATIVE'><glossterm>ALTERNATIVE</glossterm>
101 <info>
102 ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
103 </info>
104 <glossdef>
105 <para role="glossdeffirst">
106<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
107 Lists commands in a package that need an alternative
108 binary naming scheme.
109 Sometimes the same command is provided in multiple packages.
110 When this occurs, the OpenEmbedded build system needs to
111 use the alternatives system to create a different binary
112 naming scheme so the commands can co-exist.
113 </para>
114
115 <para>
116 To use the variable, list out the package's commands
117 that also exist as part of another package.
118 For example, if the <filename>busybox</filename> package
119 has four commands that also exist as part of another
120 package, you identify them as follows:
121 <literallayout class='monospaced'>
122 ALTERNATIVE_busybox = "sh sed test bracket"
123 </literallayout>
124 For more information on the alternatives system, see the
125 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
126 section.
127 </para>
128 </glossdef>
129 </glossentry>
130
131 <glossentry id='var-ALTERNATIVE_LINK_NAME'><glossterm>ALTERNATIVE_LINK_NAME</glossterm>
132 <info>
133 ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
134 </info>
135 <glossdef>
136 <para role="glossdeffirst">
137<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
138 Used by the alternatives system to map duplicated commands
139 to actual locations.
140 For example, if the <filename>bracket</filename> command
141 provided by the <filename>busybox</filename> package is
142 duplicated through another package, you must use the
143 <filename>ALTERNATIVE_LINK_NAME</filename> variable to
144 specify the actual location:
145 <literallayout class='monospaced'>
146 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
147 </literallayout>
148 </para>
149
150 <para>
151 In this example, the binary for the
152 <filename>bracket</filename> command (i.e.
153 <filename>[</filename>) from the
154 <filename>busybox</filename> package resides in
155 <filename>/usr/bin/</filename>.
156 <note>
157 If <filename>ALTERNATIVE_LINK_NAME</filename> is not
158 defined, it defaults to
159 <filename>${bindir}/<replaceable>name</replaceable></filename>.
160 </note>
161 </para>
162
163 <para>
164 For more information on the alternatives system, see the
165 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
166 section.
167 </para>
168 </glossdef>
169 </glossentry>
170
171 <glossentry id='var-ALTERNATIVE_PRIORITY'><glossterm>ALTERNATIVE_PRIORITY</glossterm>
172 <info>
173 ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
174 </info>
175 <glossdef>
176 <para role="glossdeffirst">
177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
178 Used by the alternatives system to create default
179 priorities for duplicated commands.
180 You can use the variable to create a single default
181 regardless of the command name or package, a default for
182 specific duplicated commands regardless of the package, or
183 a default for specific commands tied to particular packages.
184 Here are the available syntax forms:
185 <literallayout class='monospaced'>
186 ALTERNATIVE_PRIORITY = "<replaceable>priority</replaceable>"
187 ALTERNATIVE_PRIORITY[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
188 ALTERNATIVE_PRIORITY_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>priority</replaceable>"
189 </literallayout>
190 </para>
191
192 <para>
193 For more information on the alternatives system, see the
194 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
195 section.
196 </para>
197 </glossdef>
198 </glossentry>
199
200 <glossentry id='var-ALTERNATIVE_TARGET'><glossterm>ALTERNATIVE_TARGET</glossterm>
201 <info>
202 ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
203 </info>
204 <glossdef>
205 <para role="glossdeffirst">
206<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
207 Used by the alternatives system to create default link
208 locations for duplicated commands.
209 You can use the variable to create a single default
210 location for all duplicated commands regardless of the
211 command name or package, a default for
212 specific duplicated commands regardless of the package, or
213 a default for specific commands tied to particular packages.
214 Here are the available syntax forms:
215 <literallayout class='monospaced'>
216 ALTERNATIVE_TARGET = "<replaceable>target</replaceable>"
217 ALTERNATIVE_TARGET[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
218 ALTERNATIVE_TARGET_<replaceable>pkg</replaceable>[<replaceable>name</replaceable>] = "<replaceable>target</replaceable>"
219 </literallayout>
220 <note>
221 <para>
222 If <filename>ALTERNATIVE_TARGET</filename> is not
223 defined, it inherits the value from the
224 <link linkend='var-ALTERNATIVE_LINK_NAME'><filename>ALTERNATIVE_LINK_NAME</filename></link>
225 variable.
226 </para>
227
228 <para>
229 If <filename>ALTERNATIVE_LINK_NAME</filename> and
230 <filename>ALTERNATIVE_TARGET</filename> are the
231 same, the target for
232 <filename>ALTERNATIVE_TARGET</filename>
233 has "<filename>.{BPN}</filename>" appended to it.
234 </para>
235
236 <para>
237 Finally, if the file referenced has not been
238 renamed, the alternatives system will rename it to
239 avoid the need to rename alternative files in the
240 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
241 task while
242 retaining support for the command if necessary.
243 </para>
244 </note>
245 </para>
246
247 <para>
248 For more information on the alternatives system, see the
249 "<link linkend='ref-classes-update-alternatives'><filename>update-alternatives.bbclass</filename></link>"
250 section.
251 </para>
252 </glossdef>
253 </glossentry>
254
255 <glossentry id='var-APPEND'><glossterm>APPEND</glossterm>
256 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400257 APPEND[doc] = "An override list of append strings for target specified using LABELS."
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500258 </info>
259 <glossdef>
260 <para role="glossdeffirst">
261<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -0400262 An override list of append strings for each target
263 specified with
264 <link linkend='var-LABELS'><filename>LABELS</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500265 </para>
266
267 <para>
268 See the
269 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
270 class for more information on how this variable is used.
271 </para>
272 </glossdef>
273 </glossentry>
274
275 <glossentry id='var-AR'><glossterm>AR</glossterm>
276 <info>
277 AR[doc] = "Minimal command and arguments to run 'ar'."
278 </info>
279 <glossdef>
280 <para role="glossdeffirst">
281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
282 The minimal command and arguments used to run
283 <filename>ar</filename>.
284 </para>
285 </glossdef>
286 </glossentry>
287
288 <glossentry id='var-ARCHIVER_MODE'><glossterm>ARCHIVER_MODE</glossterm>
289 <info>
290 ARCHIVER_MODE[doc] = "Controls archive creation used when releasing source files."
291 </info>
292 <glossdef>
293 <para role="glossdeffirst">
294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
295 When used with the
296 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
297 class, determines the type of information used to create
298 a released archive.
299 You can use this variable to create archives of patched
300 source, original source, configured source, and so forth
301 by employing the following variable flags (varflags):
302 <literallayout class='monospaced'>
303 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source
304 # files.
305
306 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is
307 # the default.
308
309 ARCHIVER_MODE[src] = "configured" # Uses configured source files.
310
311 ARCHIVER_MODE[diff] = "1" # Uses patches between do_unpack and
312 # do_patch.
313
314 ARCHIVER_MODE[diff-exclude] ?= "<replaceable>file</replaceable> <replaceable>file</replaceable> ..." # Lists files and directories to
315 # exclude from diff.
316
317 ARCHIVER_MODE[dumpdata] = "1" # Uses environment data.
318
319 ARCHIVER_MODE[recipe] = "1" # Uses recipe and include files.
320
321 ARCHIVER_MODE[srpm] = "1" # Uses RPM package files.
322 </literallayout>
323 For information on how the variable works, see the
324 <filename>meta/classes/archiver.bbclass</filename> file
325 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500326 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500327 </para>
328 </glossdef>
329 </glossentry>
330
331 <glossentry id='var-AS'><glossterm>AS</glossterm>
332 <info>
333 AS[doc] = "Minimal command and arguments to run the assembler."
334 </info>
335 <glossdef>
336 <para role="glossdeffirst">
337<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
338 The minimal command and arguments used to run the
339 assembler.
340 </para>
341 </glossdef>
342 </glossentry>
343
344 <glossentry id='var-ASSUME_PROVIDED'><glossterm>ASSUME_PROVIDED</glossterm>
345 <info>
346 ASSUME_PROVIDED[doc] = "Lists recipe names (PN values) BitBake does not attempt to build."
347 </info>
348 <glossdef>
349 <para role="glossdeffirst">
350<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
351 Lists recipe names
352 (<link linkend='var-PN'><filename>PN</filename></link>
353 values) BitBake does not attempt to build.
354 Instead, BitBake assumes these recipes have already been
355 built.
356 </para>
357
358 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400359 In OpenEmbedded-Core, <filename>ASSUME_PROVIDED</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500360 mostly specifies native tools that should not be built.
361 An example is <filename>git-native</filename>, which when
362 specified, allows for the Git binary from the host to be
363 used rather than building <filename>git-native</filename>.
364 </para>
365 </glossdef>
366 </glossentry>
367
368 <glossentry id='var-ASSUME_SHLIBS'><glossterm>ASSUME_SHLIBS</glossterm>
369 <info>
370 ASSUME_SHLIBS[doc] = Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system."
371 </info>
372 <glossdef>
373 <para role="glossdeffirst">
374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
375 Provides additional <filename>shlibs</filename> provider
376 mapping information, which adds to or overwrites the
377 information provided automatically by the system.
378 Separate multiple entries using spaces.
379 </para>
380
381 <para>
382 As an example, use the following form to add an
383 <filename>shlib</filename> provider of
384 <replaceable>shlibname</replaceable> in
385 <replaceable>packagename</replaceable> with the optional
386 <replaceable>version</replaceable>:
387 <literallayout class='monospaced'>
388 <replaceable>shlibname:packagename</replaceable>[_<replaceable>version</replaceable>]
389 </literallayout>
390 </para>
391
392 <para>
393 Here is an example that adds a shared library named
394 <filename>libEGL.so.1</filename> as being provided by
395 the <filename>libegl-implementation</filename> package:
396 <literallayout class='monospaced'>
397 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
398 </literallayout>
399 </para>
400 </glossdef>
401 </glossentry>
402
403 <glossentry id='var-AUTHOR'><glossterm>AUTHOR</glossterm>
404 <info>
405 AUTHOR[doc] = "Email address used to contact the original author or authors in order to send patches and forward bugs."
406 </info>
407 <glossdef>
408 <para role="glossdeffirst">
409<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
410 The email address used to contact the original author
411 or authors in order to send patches and forward bugs.
412 </para>
413 </glossdef>
414 </glossentry>
415
416 <glossentry id='var-AUTO_LIBNAME_PKGS'><glossterm>AUTO_LIBNAME_PKGS</glossterm>
417 <info>
418 AUTO_LIBNAME_PKGS[doc] = "Specifies which packages should be checked for libraries and renamed according to Debian library package naming."
419 </info>
420 <glossdef>
421 <para role="glossdeffirst">
422<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
423 When the
424 <link linkend='ref-classes-debian'><filename>debian</filename></link>
425 class is inherited, which is the default behavior,
426 <filename>AUTO_LIBNAME_PKGS</filename> specifies which
427 packages should be checked for libraries and renamed
428 according to Debian library package naming.
429 </para>
430
431 <para>
432 The default value is "${PACKAGES}", which causes the
433 debian class to act on all packages that are
434 explicitly generated by the recipe.
435 </para>
436 </glossdef>
437 </glossentry>
438
439 <glossentry id='var-AUTO_SYSLINUXMENU'><glossterm>AUTO_SYSLINUXMENU</glossterm>
440 <info>
441 AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
442 </info>
443 <glossdef>
444 <para role="glossdeffirst">
445<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
446 Enables creating an automatic menu for the syslinux
447 bootloader.
448 You must set this variable in your recipe.
449 The
450 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
451 class checks this variable.
452 </para>
453 </glossdef>
454 </glossentry>
455
456 <glossentry id='var-AUTOREV'><glossterm>AUTOREV</glossterm>
457 <info>
458 AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
459 </info>
460 <glossdef>
461 <para role="glossdeffirst">
462<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
463 When
464 <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
465 is set to the value of this variable, it specifies to use
466 the latest source revision in the repository.
467 Here is an example:
468 <literallayout class='monospaced'>
469 SRCREV = "${AUTOREV}"
470 </literallayout>
471 </para>
472
473 <para>
474 If you use the previous statement to retrieve the latest
475 version of software, you need to be sure
476 <link linkend='var-PV'><filename>PV</filename></link>
477 contains
478 <filename>${</filename><link linkend='var-SRCPV'><filename>SRCPV</filename></link><filename>}</filename>.
479 For example, suppose you have a kernel recipe that
480 inherits the
481 <link linkend='ref-classes-kernel'>kernel</link> class
482 and you use the previous statement.
483 In this example, <filename>${SRCPV}</filename> does not
484 automatically get into <filename>PV</filename>.
485 Consequently, you need to change <filename>PV</filename>
486 in your recipe so that it does contain
487 <filename>${SRCPV}</filename>.
488 </para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500489
490 <para>
491 For more information see the
492 "<ulink url='&YOCTO_DOCS_DEV_URL;#automatically-incrementing-a-binary-package-revision-number'>Automatically Incrementing a Binary Package Revision Number</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500493 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500494 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500495 </glossdef>
496 </glossentry>
497
498 <glossentry id='var-AVAILTUNES'><glossterm>AVAILTUNES</glossterm>
499 <info>
500 AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system."
501 </info>
502 <glossdef>
503 <para role="glossdeffirst">
504<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
505 The list of defined CPU and Application Binary Interface
506 (ABI) tunings (i.e. "tunes") available for use by the
507 OpenEmbedded build system.
508 </para>
509
510 <para>
511 The list simply presents the tunes that are available.
512 Not all tunes may be compatible with a particular
513 machine configuration, or with each other in a
514 <ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Multilib</ulink>
515 configuration.
516 </para>
517
518 <para>
519 To add a tune to the list, be sure to append it with
520 spaces using the "+=" BitBake operator.
521 Do not simply replace the list by using the "=" operator.
522 See the
523 "<ulink url='&YOCTO_DOCS_BB_URL;#basic-syntax'>Basic Syntax</ulink>"
524 section in the BitBake User Manual for more information.
525 </para>
526 </glossdef>
527 </glossentry>
528
529 </glossdiv>
530
531 <glossdiv id='var-glossary-b'><title>B</title>
532
533 <glossentry id='var-B'><glossterm>B</glossterm>
534 <info>
535 B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
536 </info>
537 <glossdef>
538 <para role="glossdeffirst">
539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
540 The directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500541 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500542 in which the OpenEmbedded build system places generated
543 objects during a recipe's build process.
544 By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
545 directory, which is defined as:
546 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600547 S = "${WORKDIR}/${BP}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500548 </literallayout>
549 </para>
550
551 <para>
552 You can separate the (<filename>S</filename>) directory
553 and the directory pointed to by the <filename>B</filename>
554 variable.
555 Most Autotools-based recipes support separating these
556 directories.
557 The build system defaults to using separate directories for
558 <filename>gcc</filename> and some kernel recipes.
559 </para>
560 </glossdef>
561 </glossentry>
562
563 <glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
564 <info>
565 BAD_RECOMMENDATIONS[doc] = "A list of packages not to install despite being recommended by a recipe. Support for this variable exists only when using the IPK packaging backend."
566 </info>
567 <glossdef>
568 <para role="glossdeffirst">
569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
570 Lists "recommended-only" packages to not install.
571 Recommended-only packages are packages installed only
572 through the
573 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
574 variable.
575 You can prevent any of these "recommended" packages from
576 being installed by listing them with the
577 <filename>BAD_RECOMMENDATIONS</filename> variable:
578 <literallayout class='monospaced'>
579 BAD_RECOMMENDATIONS = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
580 </literallayout>
581 </para>
582
583 <para>
584 You can set this variable globally in your
585 <filename>local.conf</filename> file or you can attach it to
586 a specific image recipe by using the recipe name override:
587 <literallayout class='monospaced'>
588 BAD_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
589 </literallayout>
590 </para>
591
592 <para>
593 It is important to realize that if you choose to not install
594 packages using this variable and some other packages are
595 dependent on them (i.e. listed in a recipe's
596 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
597 variable), the OpenEmbedded build system ignores your
598 request and will install the packages to avoid dependency
599 errors.
600 </para>
601
602 <para>
603 Support for this variable exists only when using the
604 IPK and RPM packaging backend.
605 Support does not exist for DEB.
606 </para>
607
608 <para>
609 See the
610 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
611 and the
612 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
613 variables for related information.
614 </para>
615 </glossdef>
616 </glossentry>
617
618 <glossentry id='var-BASE_LIB'><glossterm>BASE_LIB</glossterm>
619 <info>
620 BASE_LIB[doc] = "The library directory name for the CPU or Application Binary Interface (ABI) tune."
621 </info>
622 <glossdef>
623 <para role="glossdeffirst">
624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
625 The library directory name for the CPU or Application
626 Binary Interface (ABI) tune.
627 The <filename>BASE_LIB</filename> applies only in the
628 Multilib context.
629 See the
630 "<ulink url='&YOCTO_DOCS_DEV_URL;#combining-multiple-versions-library-files-into-one-image'>Combining Multiple Versions of Library Files into One Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500631 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500632 information on Multilib.
633 </para>
634
635 <para>
636 The <filename>BASE_LIB</filename> variable is defined in
637 the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500638 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500639 If Multilib is not being used, the value defaults to "lib".
640 </para>
641 </glossdef>
642 </glossentry>
643
644 <glossentry id='var-BASE_WORKDIR'><glossterm>BASE_WORKDIR</glossterm>
645 <info>
646 BASE_WORKDIR[doc] = "Points to the base of the work directory for all recipes."
647 </info>
648 <glossdef>
649 <para role="glossdeffirst">
650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
651 Points to the base of the work directory for all recipes.
652 The default value is "${TMPDIR}/work".
653 </para>
654 </glossdef>
655 </glossentry>
656
657 <glossentry id='var-BB_ALLOWED_NETWORKS'><glossterm>BB_ALLOWED_NETWORKS</glossterm>
658 <info>
659 BB_ALLOWED_NETWORKS[doc] = "A list of hosts that the fetcher is allowed to use to obtain the required source code."
660 </info>
661 <glossdef>
662 <para>
663 Specifies a space-delimited list of hosts that the fetcher
664 is allowed to use to obtain the required source code.
665 Following are considerations surrounding this variable:
666 <itemizedlist>
667 <listitem><para>
668 This host list is only used if
669 <filename>BB_NO_NETWORK</filename> is either not
670 set or set to "0".
671 </para></listitem>
672 <listitem><para>
673 Limited support for wildcard matching against the
674 beginning of host names exists.
675 For example, the following setting matches
676 <filename>git.gnu.org</filename>,
677 <filename>ftp.gnu.org</filename>, and
678 <filename>foo.git.gnu.org</filename>.
679 <literallayout class='monospaced'>
680 BB_ALLOWED_NETWORKS = "*.gnu.org"
681 </literallayout>
682 </para></listitem>
683 <listitem><para>
684 Mirrors not in the host list are skipped and
685 logged in debug.
686 </para></listitem>
687 <listitem><para>
688 Attempts to access networks not in the host list
689 cause a failure.
690 </para></listitem>
691 </itemizedlist>
692 Using <filename>BB_ALLOWED_NETWORKS</filename> in
693 conjunction with
694 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
695 is very useful.
696 Adding the host you want to use to
697 <filename>PREMIRRORS</filename> results in the source code
698 being fetched from an allowed location and avoids raising
699 an error when a host that is not allowed is in a
700 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
701 statement.
702 This is because the fetcher does not attempt to use the
703 host listed in <filename>SRC_URI</filename> after a
704 successful fetch from the
705 <filename>PREMIRRORS</filename> occurs.
706 </para>
707 </glossdef>
708 </glossentry>
709
710 <glossentry id='var-BB_DANGLINGAPPENDS_WARNONLY'><glossterm>BB_DANGLINGAPPENDS_WARNONLY</glossterm>
711 <info>
712 BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
713 </info>
714 <glossdef>
715 <para role="glossdeffirst">
716<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
717 Defines how BitBake handles situations where an append
718 file (<filename>.bbappend</filename>) has no
719 corresponding recipe file (<filename>.bb</filename>).
720 This condition often occurs when layers get out of sync
721 (e.g. <filename>oe-core</filename> bumps a
722 recipe version and the old recipe no longer exists and the
723 other layer has not been updated to the new version
724 of the recipe yet).
725 </para>
726
727 <para>
728 The default fatal behavior is safest because it is
729 the sane reaction given something is out of sync.
730 It is important to realize when your changes are no longer
731 being applied.
732 </para>
733
734 <para>
735 You can change the default behavior by setting this
736 variable to "1", "yes", or "true"
737 in your <filename>local.conf</filename> file, which is
738 located in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500739 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500740 Here is an example:
741 <literallayout class='monospaced'>
742 BB_DANGLINGAPPENDS_WARNONLY = "1"
743 </literallayout>
744 </para>
745 </glossdef>
746 </glossentry>
747
748 <glossentry id='var-BB_DISKMON_DIRS'><glossterm>BB_DISKMON_DIRS</glossterm>
749 <info>
750 BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
751 </info>
752 <glossdef>
753 <para role="glossdeffirst">
754<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
755 Monitors disk space and available inodes during the build
756 and allows you to control the build based on these
757 parameters.
758 </para>
759
760 <para>
761 Disk space monitoring is disabled by default.
762 To enable monitoring, add the <filename>BB_DISKMON_DIRS</filename>
763 variable to your <filename>conf/local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500764 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500765 Use the following form:
766 <literallayout class='monospaced'>
767 BB_DISKMON_DIRS = "<replaceable>action</replaceable>,<replaceable>dir</replaceable>,<replaceable>threshold</replaceable> [...]"
768
769 where:
770
771 <replaceable>action</replaceable> is:
772 ABORT: Immediately abort the build when
773 a threshold is broken.
774 STOPTASKS: Stop the build after the currently
775 executing tasks have finished when
776 a threshold is broken.
777 WARN: Issue a warning but continue the
778 build when a threshold is broken.
779 Subsequent warnings are issued as
Brad Bishop316dfdd2018-06-25 12:45:53 -0400780 defined by the BB_DISKMON_WARNINTERVAL
781 variable, which must be defined in
782 the conf/local.conf file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500783
784 <replaceable>dir</replaceable> is:
785 Any directory you choose. You can specify one or
786 more directories to monitor by separating the
787 groupings with a space. If two directories are
788 on the same device, only the first directory
789 is monitored.
790
791 <replaceable>threshold</replaceable> is:
792 Either the minimum available disk space,
793 the minimum number of free inodes, or
794 both. You must specify at least one. To
795 omit one or the other, simply omit the value.
796 Specify the threshold using G, M, K for Gbytes,
797 Mbytes, and Kbytes, respectively. If you do
798 not specify G, M, or K, Kbytes is assumed by
799 default. Do not use GB, MB, or KB.
800 </literallayout>
801 </para>
802
803 <para>
804 Here are some examples:
805 <literallayout class='monospaced'>
806 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
807 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
808 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
809 </literallayout>
810 The first example works only if you also provide
811 the <link linkend='var-BB_DISKMON_WARNINTERVAL'><filename>BB_DISKMON_WARNINTERVAL</filename></link> variable
812 in the <filename>conf/local.conf</filename>.
813 This example causes the build system to immediately
814 abort when either the disk space in <filename>${TMPDIR}</filename> drops
815 below 1 Gbyte or the available free inodes drops below
816 100 Kbytes.
817 Because two directories are provided with the variable, the
818 build system also issue a
819 warning when the disk space in the
820 <filename>${SSTATE_DIR}</filename> directory drops
821 below 1 Gbyte or the number of free inodes drops
822 below 100 Kbytes.
823 Subsequent warnings are issued during intervals as
824 defined by the <filename>BB_DISKMON_WARNINTERVAL</filename>
825 variable.
826 </para>
827
828 <para>
829 The second example stops the build after all currently
830 executing tasks complete when the minimum disk space
831 in the <filename>${<link linkend='var-TMPDIR'>TMPDIR</link>}</filename>
832 directory drops below 1 Gbyte.
833 No disk monitoring occurs for the free inodes in this case.
834 </para>
835
836 <para>
837 The final example immediately aborts the build when the
838 number of free inodes in the <filename>${TMPDIR}</filename> directory
839 drops below 100 Kbytes.
840 No disk space monitoring for the directory itself occurs
841 in this case.
842 </para>
843 </glossdef>
844 </glossentry>
845
846 <glossentry id='var-BB_DISKMON_WARNINTERVAL'><glossterm>BB_DISKMON_WARNINTERVAL</glossterm>
847 <info>
848 BB_DISKMON_WARNINTERVAL[doc] = "Defines the disk space and free inode warning intervals. To set these intervals, define the variable in the conf/local.conf file in the Build Directory."
849 </info>
850 <glossdef>
851 <para role="glossdeffirst">
852<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
853 Defines the disk space and free inode warning intervals.
854 To set these intervals, define the variable in your
855 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500856 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500857 </para>
858
859 <para>
860 If you are going to use the
861 <filename>BB_DISKMON_WARNINTERVAL</filename> variable, you must
862 also use the
863 <link linkend='var-BB_DISKMON_DIRS'><filename>BB_DISKMON_DIRS</filename></link> variable
864 and define its action as "WARN".
865 During the build, subsequent warnings are issued each time
866 disk space or number of free inodes further reduces by
867 the respective interval.
868 </para>
869
870 <para>
871 If you do not provide a <filename>BB_DISKMON_WARNINTERVAL</filename>
872 variable and you do use <filename>BB_DISKMON_DIRS</filename> with
873 the "WARN" action, the disk monitoring interval defaults to
874 the following:
875 <literallayout class='monospaced'>
876 BB_DISKMON_WARNINTERVAL = "50M,5K"
877 </literallayout>
878 </para>
879
880 <para>
881 When specifying the variable in your configuration file,
882 use the following form:
883 <literallayout class='monospaced'>
884 BB_DISKMON_WARNINTERVAL = "<replaceable>disk_space_interval</replaceable>,<replaceable>disk_inode_interval</replaceable>"
885
886 where:
887
888 <replaceable>disk_space_interval</replaceable> is:
889 An interval of memory expressed in either
890 G, M, or K for Gbytes, Mbytes, or Kbytes,
891 respectively. You cannot use GB, MB, or KB.
892
893 <replaceable>disk_inode_interval</replaceable> is:
894 An interval of free inodes expressed in either
895 G, M, or K for Gbytes, Mbytes, or Kbytes,
896 respectively. You cannot use GB, MB, or KB.
897 </literallayout>
898 </para>
899
900 <para>
901 Here is an example:
902 <literallayout class='monospaced'>
903 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
904 BB_DISKMON_WARNINTERVAL = "50M,5K"
905 </literallayout>
906 These variables cause the OpenEmbedded build system to
907 issue subsequent warnings each time the available
908 disk space further reduces by 50 Mbytes or the number
909 of free inodes further reduces by 5 Kbytes in the
910 <filename>${SSTATE_DIR}</filename> directory.
911 Subsequent warnings based on the interval occur each time
912 a respective interval is reached beyond the initial warning
913 (i.e. 1 Gbytes and 100 Kbytes).
914 </para>
915 </glossdef>
916 </glossentry>
917
918 <glossentry id='var-BB_GENERATE_MIRROR_TARBALLS'><glossterm>BB_GENERATE_MIRROR_TARBALLS</glossterm>
919 <info>
920 BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the Git repositories to be placed in the DL_DIR directory."
921 </info>
922 <glossdef>
923 <para role="glossdeffirst">
924<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
925 Causes tarballs of the Git repositories, including the
926 Git metadata, to be placed in the
927 <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
928 directory.
929 </para>
930
931 <para>
932 For performance reasons, creating and placing tarballs of
933 the Git repositories is not the default action by the
934 OpenEmbedded build system.
935 <literallayout class='monospaced'>
936 BB_GENERATE_MIRROR_TARBALLS = "1"
937 </literallayout>
938 Set this variable in your <filename>local.conf</filename>
939 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500940 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500941 </para>
942 </glossdef>
943 </glossentry>
944
945 <glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
946 <info>
947 BB_NUMBER_THREADS[doc] = "The maximum number of tasks BitBake should run in parallel at any one time. This variable is automatically configured to be equal to the number of build system cores."
948 </info>
949 <glossdef>
950 <para role="glossdeffirst">
951<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
952 The maximum number of tasks BitBake should run in parallel
953 at any one time.
954 The OpenEmbedded build system automatically configures
955 this variable to be equal to the number of cores on the
956 build system.
957 For example, a system with a dual core processor that
958 also uses hyper-threading causes the
959 <filename>BB_NUMBER_THREADS</filename> variable to default
960 to "4".
961 </para>
962
963 <para>
964 For single socket systems (i.e. one CPU), you should not
965 have to override this variable to gain optimal parallelism
966 during builds.
967 However, if you have very large systems that employ
968 multiple physical CPUs, you might want to make sure the
969 <filename>BB_NUMBER_THREADS</filename> variable is not
970 set higher than "20".
971 </para>
972
973 <para>
974 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -0400975 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
976 section in the Yocto Project Development Tasks Manual.
977 </para>
978 </glossdef>
979 </glossentry>
980
981 <glossentry id='var-BB_SERVER_TIMEOUT'><glossterm>BB_SERVER_TIMEOUT</glossterm>
982 <info>
983 BB_SERVER_TIMEOUT [doc] = "Specifies the time (in seconds) after which to unload the BitBake server due to inactivity."
984 </info>
985 <glossdef>
986 <para role="glossdeffirst">
987<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
988 Specifies the time (in seconds) after which to unload the
989 BitBake server due to inactivity.
990 Set <filename>BB_SERVER_TIMEOUT</filename> to determine how
991 long the BitBake server stays resident between invocations.
992 </para>
993
994 <para>
995 For example, the following statement in your
996 <filename>local.conf</filename> file instructs the server
997 to be unloaded after 20 seconds of inactivity:
998 <literallayout class='monospaced'>
999 BB_SERVER_TIMEOUT = "20"
1000 </literallayout>
1001 If you want the server to never be unloaded, set
1002 <filename>BB_SERVER_TIMEOUT</filename> to "-1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001003 </para>
1004 </glossdef>
1005 </glossentry>
1006
1007 <glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
1008 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001009 BBCLASSEXTEND[doc] = "Allows you to extend a recipe so that it builds variants of the software. Common variants for recipes are 'native', 'cross', 'nativesdk', and multilibs."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001010 </info>
1011 <glossdef>
1012 <para role="glossdeffirst">
1013<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1014 Allows you to extend a recipe so that it builds variants of the software.
1015 Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
1016 which is a copy of Quilt built to run on the build system;
1017 "crosses" such as <filename>gcc-cross</filename>,
1018 which is a compiler built to run on the build machine but produces binaries
1019 that run on the target <link linkend='var-MACHINE'><filename>MACHINE</filename></link>;
1020 "nativesdk", which targets the SDK machine instead of <filename>MACHINE</filename>;
1021 and "mulitlibs" in the form "<filename>multilib:</filename><replaceable>multilib_name</replaceable>".
1022 </para>
1023
1024 <para>
1025 To build a different variant of the recipe with a minimal amount of code, it usually
1026 is as simple as adding the following to your recipe:
1027 <literallayout class='monospaced'>
1028 BBCLASSEXTEND =+ "native nativesdk"
1029 BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
1030 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001031 <note>
1032 <para>
1033 Internally, the <filename>BBCLASSEXTEND</filename>
1034 mechanism generates recipe variants by rewriting
1035 variable values and applying overrides such as
1036 <filename>_class-native</filename>.
1037 For example, to generate a native version of a recipe,
1038 a
1039 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
1040 on "foo" is rewritten to a <filename>DEPENDS</filename>
1041 on "foo-native".
1042 </para>
1043
1044 <para>
1045 Even when using <filename>BBCLASSEXTEND</filename>, the
1046 recipe is only parsed once.
1047 Parsing once adds some limitations.
1048 For example, it is not possible to
1049 include a different file depending on the variant,
1050 since <filename>include</filename> statements are
1051 processed when the recipe is parsed.
1052 </para>
1053 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001054 </para>
1055 </glossdef>
1056 </glossentry>
1057
1058 <glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
1059 <info>
1060 BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
1061 </info>
1062 <glossdef>
1063 <para role="glossdeffirst">
1064<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1065 Lists the names of configured layers.
1066 These names are used to find the other <filename>BBFILE_*</filename>
1067 variables.
1068 Typically, each layer will append its name to this variable in its
1069 <filename>conf/layer.conf</filename> file.
1070 </para>
1071 </glossdef>
1072 </glossentry>
1073
1074 <glossentry id='var-BBFILE_PATTERN'><glossterm>BBFILE_PATTERN</glossterm>
1075 <info>
1076 BBFILE_PATTERN[doc] = "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer."
1077 </info>
1078 <glossdef>
1079 <para role="glossdeffirst">
1080<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1081 Variable that expands to match files from
1082 <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
1083 in a particular layer.
1084 This variable is used in the <filename>conf/layer.conf</filename> file and must
1085 be suffixed with the name of the specific layer (e.g.
1086 <filename>BBFILE_PATTERN_emenlow</filename>).
1087 </para>
1088 </glossdef>
1089 </glossentry>
1090
1091 <glossentry id='var-BBFILE_PRIORITY'><glossterm>BBFILE_PRIORITY</glossterm>
1092 <info>
1093 BBFILE_PRIORITY[doc] = "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe."
1094 </info>
1095 <glossdef>
1096 <para role="glossdeffirst">
1097<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1098 Assigns the priority for recipe files in each layer.
1099 </para>
1100
1101 <para>
1102 This variable is useful in situations where the same recipe appears in
1103 more than one layer.
1104 Setting this variable allows you to prioritize a
1105 layer against other layers that contain the same recipe - effectively
1106 letting you control the precedence for the multiple layers.
1107 The precedence established through this variable stands regardless of a
1108 recipe's version
1109 (<link linkend='var-PV'><filename>PV</filename></link> variable).
1110 For example, a layer that has a recipe with a higher <filename>PV</filename> value but for
1111 which the <filename>BBFILE_PRIORITY</filename> is set to have a lower precedence still has a
1112 lower precedence.
1113 </para>
1114
1115 <para>
1116 A larger value for the <filename>BBFILE_PRIORITY</filename> variable results in a higher
1117 precedence.
1118 For example, the value 6 has a higher precedence than the value 5.
1119 If not specified, the <filename>BBFILE_PRIORITY</filename> variable is set based on layer
1120 dependencies (see the
1121 <filename><link linkend='var-LAYERDEPENDS'>LAYERDEPENDS</link></filename> variable for
1122 more information.
1123 The default priority, if unspecified
1124 for a layer with no dependencies, is the lowest defined priority + 1
1125 (or 1 if no priorities are defined).
1126 </para>
1127 <tip>
1128 You can use the command <filename>bitbake-layers show-layers</filename> to list
1129 all configured layers along with their priorities.
1130 </tip>
1131 </glossdef>
1132 </glossentry>
1133
1134 <glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
1135 <info>
1136 BBFILES[doc] = "List of recipe files used by BitBake to build software."
1137 </info>
1138 <glossdef>
1139 <para role="glossdeffirst">
1140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1141 List of recipe files used by BitBake to build software.
1142 </para>
1143 </glossdef>
1144 </glossentry>
1145
Brad Bishop316dfdd2018-06-25 12:45:53 -04001146 <glossentry id='var-BBFILES_DYNAMIC'><glossterm>BBFILES_DYNAMIC</glossterm>
1147 <info>
1148 BBFILES_DYNAMIC[doc] = "Activates content when identified layers are present."
1149 </info>
1150 <glossdef>
1151 <para role="glossdeffirst">
1152<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1153 Activates content when identified layers are present.
1154 You identify the layers by the collections that the layers
1155 define.
1156 </para>
1157
1158 <para>
1159 Use the <filename>BBFILES_DYNAMIC</filename> variable to
1160 avoid <filename>.bbappend</filename> files whose
1161 corresponding <filename>.bb</filename> file is in a layer
1162 that attempts to modify other layers through
1163 <filename>.bbappend</filename> but does not want to
1164 introduce a hard dependency on those other layers.
1165 </para>
1166
1167 <para>
1168 Use the following form for
1169 <filename>BBFILES_DYNAMIC</filename>:
1170 <literallayout class='monospaced'>
1171 <replaceable>collection_name</replaceable>:<replaceable>filename_pattern</replaceable>
1172 </literallayout>
1173 The following example identifies two collection names and
1174 two filename patterns:
1175 <literallayout class='monospaced'>
1176 BBFILES_DYNAMIC += " \
1177 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
1178 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
1179 "
1180 </literallayout>
1181 This next example shows an error message that occurs
1182 because invalid entries are found, which cause parsing to
1183 abort:
1184 <literallayout class='monospaced'>
1185 ERROR: BBFILES_DYNAMIC entries must be of the form &lt;collection name&gt;:&lt;filename pattern&gt;, not:
1186 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
1187 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
1188 </literallayout>
1189 </para>
1190 </glossdef>
1191 </glossentry>
1192
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001193 <glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
1194 <info>
1195 BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
1196 </info>
1197 <glossdef>
1198 <para role="glossdeffirst">
1199<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1200 Variable that controls how BitBake displays logs on build failure.
1201 </para>
1202 </glossdef>
1203 </glossentry>
1204
1205 <glossentry id='var-BBINCLUDELOGS_LINES'><glossterm>BBINCLUDELOGS_LINES</glossterm>
1206 <info>
1207 BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
1208 </info>
1209 <glossdef>
1210 <para role="glossdeffirst">
1211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1212 If
1213 <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
1214 is set, specifies the maximum number of lines from the
1215 task log file to print when reporting a failed task.
1216 If you do not set <filename>BBINCLUDELOGS_LINES</filename>,
1217 the entire log is printed.
1218 </para>
1219 </glossdef>
1220 </glossentry>
1221
1222 <glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
1223 <info>
1224 BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
1225 </info>
1226 <glossdef>
1227 <para role="glossdeffirst">
1228<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1229 Lists the layers to enable during the build.
1230 This variable is defined in the <filename>bblayers.conf</filename> configuration
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001231 file in the
1232 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001233 Here is an example:
1234 <literallayout class='monospaced'>
1235 BBLAYERS = " \
1236 /home/scottrif/poky/meta \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001237 /home/scottrif/poky/meta-poky \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001238 /home/scottrif/poky/meta-yocto-bsp \
1239 /home/scottrif/poky/meta-mykernel \
1240 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001241 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001242 </para>
1243
1244 <para>
1245 This example enables four layers, one of which is a custom, user-defined layer
1246 named <filename>meta-mykernel</filename>.
1247 </para>
1248 </glossdef>
1249 </glossentry>
1250
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001251 <glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
1252 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001253 BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001254 </info>
1255 <glossdef>
1256 <para role="glossdeffirst">
1257<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1258 Prevents BitBake from processing recipes and recipe
1259 append files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001260 </para>
1261
1262 <para>
1263 You can use the <filename>BBMASK</filename> variable
1264 to "hide" these <filename>.bb</filename> and
1265 <filename>.bbappend</filename> files.
1266 BitBake ignores any recipe or recipe append files that
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001267 match any of the expressions.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001268 It is as if BitBake does not see them at all.
1269 Consequently, matching files are not parsed or otherwise
1270 used by BitBake.</para>
1271 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001272 The values you provide are passed to Python's regular
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001273 expression compiler.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001274 The expressions are compared against the full paths to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001275 the files.
1276 For complete syntax information, see Python's
Brad Bishop316dfdd2018-06-25 12:45:53 -04001277 documentation for the appropriate release at
1278 <ulink url='http://docs.python.org/release/'></ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001279 </para>
1280
1281 <para>
1282 The following example uses a complete regular expression
1283 to tell BitBake to ignore all recipe and recipe append
1284 files in the <filename>meta-ti/recipes-misc/</filename>
1285 directory:
1286 <literallayout class='monospaced'>
1287 BBMASK = "meta-ti/recipes-misc/"
1288 </literallayout>
1289 If you want to mask out multiple directories or recipes,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001290 you can specify multiple regular expression fragments.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001291 This next example masks out multiple directories and
1292 individual recipes:
1293 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001294 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
1295 BBMASK += "/meta-oe/recipes-support/"
1296 BBMASK += "/meta-foo/.*/openldap"
1297 BBMASK += "opencv.*\.bbappend"
1298 BBMASK += "lzma"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001299 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001300 <note>
1301 When specifying a directory name, use the trailing
1302 slash character to ensure you match just that directory
1303 name.
1304 </note>
1305 </para>
1306 </glossdef>
1307 </glossentry>
1308
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001309 <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
1310 <info>
1311 BBMULTICONFIG[doc] = "Specifies each separate configuration when you are building targets with multiple configurations."
1312 </info>
1313 <glossdef>
1314 <para role="glossdeffirst">
1315<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1316 Specifies each separate configuration when you are
1317 building targets with multiple configurations.
1318 Use this variable in your
1319 <filename>conf/local.conf</filename> configuration file.
1320 Specify a <replaceable>multiconfigname</replaceable> for
1321 each configuration file you are using.
1322 For example, the following line specifies three
1323 configuration files:
1324 <literallayout class='monospaced'>
1325 BBMULTIFONFIG = "configA configB configC"
1326 </literallayout>
1327 Each configuration file you use must reside in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001328 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001329 <filename>conf/multiconfig</filename> directory
1330 (e.g.
1331 <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
1332 </para>
1333
1334 <para>
1335 For information on how to use
1336 <filename>BBMULTICONFIG</filename> in an environment that
1337 supports building targets with multiple configurations,
1338 see the
1339 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-building-targets-with-multiple-configurations'>Building Targets with Multiple Configurations</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001340 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001341 </para>
1342 </glossdef>
1343 </glossentry>
1344
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001345 <glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
1346 <info>
1347 BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
1348 </info>
1349 <glossdef>
1350 <para role="glossdeffirst">
1351<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1352 Used by BitBake to locate
1353 <filename>.bbclass</filename> and configuration files.
1354 This variable is analogous to the
1355 <filename>PATH</filename> variable.
1356 <note>
1357 If you run BitBake from a directory outside of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001358 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001359 you must be sure to set
1360 <filename>BBPATH</filename> to point to the
1361 Build Directory.
1362 Set the variable as you would any environment variable
1363 and then run BitBake:
1364 <literallayout class='monospaced'>
1365 $ BBPATH = "<replaceable>build_directory</replaceable>"
1366 $ export BBPATH
1367 $ bitbake <replaceable>target</replaceable>
1368 </literallayout>
1369 </note>
1370 </para>
1371 </glossdef>
1372 </glossentry>
1373
1374 <glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
1375 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001376 BBSERVER[doc] = "Points to the BitBake remote server."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001377 </info>
1378 <glossdef>
1379 <para role="glossdeffirst">
1380<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001381 If defined in the BitBake environment,
1382 <filename>BBSERVER</filename> points to the BitBake
1383 remote server.
1384 </para>
1385
1386 <para>
1387 Use the following format to export the variable to the
1388 BitBake environment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001389 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001390 export BBSERVER=localhost:$port"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001391 </literallayout>
1392 </para>
1393
1394 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001395 By default, <filename>BBSERVER</filename> also appears in
1396 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>.
1397 Consequently, <filename>BBSERVER</filename> is excluded
1398 from checksum and dependency data.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001399 </para>
1400 </glossdef>
1401 </glossentry>
1402
1403 <glossentry id='var-BINCONFIG'><glossterm>BINCONFIG</glossterm>
1404 <info>
1405 BINCONFIG[doc] = "When inheriting the binconfig-disabled class, this variable specifies binary configuration scripts to disable in favor of using pkg-config to query the information."
1406 </info>
1407 <glossdef>
1408 <para role="glossdeffirst">
1409<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1410 When inheriting the
1411 <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
1412 class, this variable specifies binary configuration
1413 scripts to disable in favor of using
1414 <filename>pkg-config</filename> to query the information.
1415 The <filename>binconfig-disabled</filename> class will
1416 modify the specified scripts to return an error so that
1417 calls to them can be easily found and replaced.
1418 </para>
1419
1420 <para>
1421 To add multiple scripts, separate them by spaces.
1422 Here is an example from the <filename>libpng</filename>
1423 recipe:
1424 <literallayout class='monospaced'>
1425 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
1426 </literallayout>
1427 </para>
1428 </glossdef>
1429 </glossentry>
1430
1431 <glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
1432 <info>
1433 BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
1434 </info>
1435 <glossdef>
1436 <para role="glossdeffirst">
1437<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1438 When inheriting the
1439 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
1440 class, this variable specifies a wildcard for
1441 configuration scripts that need editing.
1442 The scripts are edited to correct any paths that have been
1443 set up during compilation so that they are correct for
1444 use when installed into the sysroot and called by the
1445 build processes of other recipes.
1446 </para>
1447
1448 <para>
1449 For more information on how this variable works, see
1450 <filename>meta/classes/binconfig.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001451 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001452 You can also find general information on the class in the
1453 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
1454 section.
1455 </para>
1456 </glossdef>
1457 </glossentry>
1458
1459 <glossentry id='var-BP'><glossterm>BP</glossterm>
1460 <info>
1461 BP[doc] = "The base recipe name and version but without any special recipe name suffix (i.e. -native, lib64-, and so forth). BP is comprised of ${BPN}-${PV}"
1462 </info>
1463 <glossdef>
1464 <para role="glossdeffirst">
1465<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1466 The base recipe name and version but without any special
1467 recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
1468 and so forth).
1469 <filename>BP</filename> is comprised of the following:
1470 <literallayout class="monospaced">
1471 ${BPN}-${PV}
1472 </literallayout>
1473 </para>
1474 </glossdef>
1475 </glossentry>
1476
1477 <glossentry id='var-BPN'><glossterm>BPN</glossterm>
1478 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001479 BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001480 </info>
1481 <glossdef>
1482 <para role="glossdeffirst">
1483<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001484 This variable is a version of the
1485 <link linkend='var-PN'><filename>PN</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001486 variable with common prefixes and suffixes
1487 removed, such as <filename>nativesdk-</filename>,
1488 <filename>-cross</filename>,
1489 <filename>-native</filename>, and multilib's
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001490 <filename>lib64-</filename> and
1491 <filename>lib32-</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001492 The exact lists of prefixes and suffixes removed are
1493 specified by the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001494 <link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001495 and
1496 <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
1497 variables, respectively.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001498 </para>
1499 </glossdef>
1500 </glossentry>
1501
1502 <glossentry id='var-BUGTRACKER'><glossterm>BUGTRACKER</glossterm>
1503 <info>
1504 BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
1505 </info>
1506 <glossdef>
1507 <para role="glossdeffirst">
1508<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1509 Specifies a URL for an upstream bug tracking website for
1510 a recipe.
1511 The OpenEmbedded build system does not use this variable.
1512 Rather, the variable is a useful pointer in case a bug
1513 in the software being built needs to be manually reported.
1514 </para>
1515 </glossdef>
1516 </glossentry>
1517
1518 <glossentry id='var-BUILD_ARCH'><glossterm>BUILD_ARCH</glossterm>
1519 <info>
1520 BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
1521 </info>
1522 <glossdef>
1523 <para role="glossdeffirst">
1524<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1525 Specifies the architecture of the build host
1526 (e.g. <filename>i686</filename>).
1527 The OpenEmbedded build system sets the value of
1528 <filename>BUILD_ARCH</filename> from the machine name
1529 reported by the <filename>uname</filename> command.
1530 </para>
1531 </glossdef>
1532 </glossentry>
1533
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001534 <glossentry id='var-BUILD_AS_ARCH'><glossterm>BUILD_AS_ARCH</glossterm>
1535 <info>
1536 BUILD_AS_ARCH[doc] = "Specifies the architecture-specific assembler flags for the build host."
1537 </info>
1538 <glossdef>
1539 <para role="glossdeffirst">
1540<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1541 Specifies the architecture-specific assembler flags for
1542 the build host. By default, the value of
1543 <filename>BUILD_AS_ARCH</filename> is empty.
1544 </para>
1545 </glossdef>
1546 </glossentry>
1547
1548 <glossentry id='var-BUILD_CC_ARCH'><glossterm>BUILD_CC_ARCH</glossterm>
1549 <info>
1550 BUILD_CC_ARCH[doc] = "Specifies the architecture-specific C compiler flags for the build host."
1551 </info>
1552 <glossdef>
1553 <para role="glossdeffirst">
1554<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1555 Specifies the architecture-specific C compiler flags for
1556 the build host. By default, the value of
1557 <filename>BUILD_CC_ARCH</filename> is empty.
1558 </para>
1559 </glossdef>
1560 </glossentry>
1561
1562 <glossentry id='var-BUILD_CCLD'><glossterm>BUILD_CCLD</glossterm>
1563 <info>
1564 BUILD_CCLD[doc] = "Specifies the linker command to be used for the build host when the C compiler is being used as the linker."
1565 </info>
1566 <glossdef>
1567 <para role="glossdeffirst">
1568<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1569 Specifies the linker command to be used for the build host
1570 when the C compiler is being used as the linker. By default,
1571 <filename>BUILD_CCLD</filename> points to GCC and passes as
1572 arguments the value of
1573 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1574 assuming <filename>BUILD_CC_ARCH</filename> is set.
1575 </para>
1576 </glossdef>
1577 </glossentry>
1578
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001579 <glossentry id='var-BUILD_CFLAGS'><glossterm>BUILD_CFLAGS</glossterm>
1580 <info>
1581 BUILD_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the build host."
1582 </info>
1583 <glossdef>
1584 <para role="glossdeffirst">
1585<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1586 Specifies the flags to pass to the C compiler when building
1587 for the build host.
1588 When building in the <filename>-native</filename> context,
1589 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1590 is set to the value of this variable by default.
1591 </para>
1592 </glossdef>
1593 </glossentry>
1594
1595 <glossentry id='var-BUILD_CPPFLAGS'><glossterm>BUILD_CPPFLAGS</glossterm>
1596 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001597 BUILD_CPPFLAGS[doc] = "Specifies the flags to pass to the C preprocessor (i.e. to both the C and the C++ compilers) when building for the build host."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001598 </info>
1599 <glossdef>
1600 <para role="glossdeffirst">
1601<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04001602 Specifies the flags to pass to the C preprocessor
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001603 (i.e. to both the C and the C++ compilers) when building
1604 for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001605 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001606 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
1607 is set to the value of this variable by default.
1608 </para>
1609 </glossdef>
1610 </glossentry>
1611
1612 <glossentry id='var-BUILD_CXXFLAGS'><glossterm>BUILD_CXXFLAGS</glossterm>
1613 <info>
1614 BUILD_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the build host."
1615 </info>
1616 <glossdef>
1617 <para role="glossdeffirst">
1618<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1619 Specifies the flags to pass to the C++ compiler when
1620 building for the build host.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001621 When building in the <filename>-native</filename> context,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001622 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
1623 is set to the value of this variable by default.
1624 </para>
1625 </glossdef>
1626 </glossentry>
1627
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001628 <glossentry id='var-BUILD_FC'><glossterm>BUILD_FC</glossterm>
1629 <info>
1630 BUILD_FC[doc] = "Specifies the Fortran compiler command for the build host."
1631 </info>
1632 <glossdef>
1633 <para role="glossdeffirst">
1634<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1635 Specifies the Fortran compiler command for the build host.
1636 By default, <filename>BUILD_FC</filename> points to
1637 Gfortran and passes as arguments the value of
1638 <link linkend='var-BUILD_CC_ARCH'><filename>BUILD_CC_ARCH</filename></link>,
1639 assuming <filename>BUILD_CC_ARCH</filename> is set.
1640 </para>
1641 </glossdef>
1642 </glossentry>
1643
1644 <glossentry id='var-BUILD_LD'><glossterm>BUILD_LD</glossterm>
1645 <info>
1646 BUILD_LD[doc] = "Specifies the linker command for the build host."
1647 </info>
1648 <glossdef>
1649 <para role="glossdeffirst">
1650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1651 Specifies the linker command for the build host. By default,
1652 <filename>BUILD_LD</filename> points to the GNU linker (ld)
1653 and passes as arguments the value of
1654 <link linkend='var-BUILD_LD_ARCH'><filename>BUILD_LD_ARCH</filename></link>,
1655 assuming <filename>BUILD_LD_ARCH</filename> is set.
1656 </para>
1657 </glossdef>
1658 </glossentry>
1659
1660 <glossentry id='var-BUILD_LD_ARCH'><glossterm>BUILD_LD_ARCH</glossterm>
1661 <info>
1662 BUILD_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the build."
1663 </info>
1664 <glossdef>
1665 <para role="glossdeffirst">
1666<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1667 Specifies architecture-specific linker flags for the build
1668 host. By default, the value of
1669 <filename>BUILD_LD_ARCH</filename> is empty.
1670 </para>
1671 </glossdef>
1672 </glossentry>
1673
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001674 <glossentry id='var-BUILD_LDFLAGS'><glossterm>BUILD_LDFLAGS</glossterm>
1675 <info>
1676 BUILD_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the build host."
1677 </info>
1678 <glossdef>
1679 <para role="glossdeffirst">
1680<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1681 Specifies the flags to pass to the linker when building
1682 for the build host.
1683 When building in the <filename>-native</filename> context,
1684 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
1685 is set to the value of this variable by default.
1686 </para>
1687 </glossdef>
1688 </glossentry>
1689
1690 <glossentry id='var-BUILD_OPTIMIZATION'><glossterm>BUILD_OPTIMIZATION</glossterm>
1691 <info>
1692 BUILD_OPTIMIZATION[doc] = "Specifies the optimization flags passed to the C compiler when building for the build host or the SDK."
1693 </info>
1694 <glossdef>
1695 <para role="glossdeffirst">
1696<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1697 Specifies the optimization flags passed to the C compiler
1698 when building for the build host or the SDK.
1699 The flags are passed through the
1700 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
1701 and
1702 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
1703 default values.
1704 </para>
1705
1706 <para>
1707 The default value of the
1708 <filename>BUILD_OPTIMIZATION</filename> variable is
1709 "-O2 -pipe".
1710 </para>
1711 </glossdef>
1712 </glossentry>
1713
1714 <glossentry id='var-BUILD_OS'><glossterm>BUILD_OS</glossterm>
1715 <info>
1716 BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. Linux)."
1717 </info>
1718 <glossdef>
1719 <para role="glossdeffirst">
1720<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1721 Specifies the operating system in use on the build
1722 host (e.g. "linux").
1723 The OpenEmbedded build system sets the value of
1724 <filename>BUILD_OS</filename> from the OS reported by
1725 the <filename>uname</filename> command - the first word,
1726 converted to lower-case characters.
1727 </para>
1728 </glossdef>
1729 </glossentry>
1730
1731 <glossentry id='var-BUILD_PREFIX'><glossterm>BUILD_PREFIX</glossterm>
1732 <info>
1733 BUILD_PREFIX[doc] = "The toolchain binary prefix used for native recipes."
1734 </info>
1735 <glossdef>
1736 <para role="glossdeffirst">
1737<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1738 The toolchain binary prefix used for native recipes.
1739 The OpenEmbedded build system uses the
1740 <filename>BUILD_PREFIX</filename> value to set the
1741 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001742 when building for <filename>native</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001743 </para>
1744 </glossdef>
1745 </glossentry>
1746
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001747 <glossentry id='var-BUILD_STRIP'><glossterm>BUILD_STRIP</glossterm>
1748 <info>
1749 BUILD_STRIP[doc] = "Specifies the command to be used to strip debugging symbols from binaries produced for the build host."
1750 </info>
1751 <glossdef>
1752 <para role="glossdeffirst">
1753<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1754 Specifies the command to be used to strip debugging symbols
1755 from binaries produced for the build host. By default,
1756 <filename>BUILD_STRIP</filename> points to
1757 <filename>${</filename><link linkend='var-BUILD_PREFIX'><filename>BUILD_PREFIX</filename></link><filename>}strip</filename>.
1758 </para>
1759 </glossdef>
1760 </glossentry>
1761
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001762 <glossentry id='var-BUILD_SYS'><glossterm>BUILD_SYS</glossterm>
1763 <info>
1764 BUILD_SYS[doc] = "The toolchain binary prefix used for native recipes."
1765 </info>
1766 <glossdef>
1767 <para role="glossdeffirst">
1768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1769 Specifies the system, including the architecture and
1770 the operating system, to use when building for the build
1771 host (i.e. when building <filename>native</filename>
1772 recipes).
1773 </para>
1774
1775 <para>
1776 The OpenEmbedded build system automatically sets this
1777 variable based on
1778 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>,
1779 <link linkend='var-BUILD_VENDOR'><filename>BUILD_VENDOR</filename></link>,
1780 and
1781 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
1782 You do not need to set the <filename>BUILD_SYS</filename>
1783 variable yourself.
1784 </para>
1785 </glossdef>
1786 </glossentry>
1787
1788 <glossentry id='var-BUILD_VENDOR'><glossterm>BUILD_VENDOR</glossterm>
1789 <info>
1790 BUILD_VENDOR[doc] = "The vendor name to use when building for the build host."
1791 </info>
1792 <glossdef>
1793 <para role="glossdeffirst">
1794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1795 Specifies the vendor name to use when building for the
1796 build host.
1797 The default value is an empty string ("").
1798 </para>
1799 </glossdef>
1800 </glossentry>
1801
1802 <glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
1803 <info>
1804 BUILDDIR[doc] = "Points to the location of the Build Directory."
1805 </info>
1806 <glossdef>
1807 <para role="glossdeffirst">
1808<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1809 Points to the location of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001810 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001811 You can define this directory indirectly through the
1812 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001813 script by passing in a Build Directory path when you run
1814 the script.
1815 If you run the script and do not provide a Build Directory
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001816 path, the <filename>BUILDDIR</filename> defaults to
1817 <filename>build</filename> in the current directory.
1818 </para>
1819 </glossdef>
1820 </glossentry>
1821
1822 <glossentry id='var-BUILDHISTORY_COMMIT'><glossterm>BUILDHISTORY_COMMIT</glossterm>
1823 <info>
1824 BUILDHISTORY_COMMIT[doc] = "When inheriting the buildhistory class, this variable specifies whether or not to commit the build history output in a local Git repository."
1825 </info>
1826 <glossdef>
1827 <para role="glossdeffirst">
1828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1829 When inheriting the
1830 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1831 class, this variable specifies whether or not to commit the
1832 build history output in a local Git repository.
1833 If set to "1", this local repository will be maintained
1834 automatically by the
1835 <filename>buildhistory</filename>
1836 class and a commit will be created on every
1837 build for changes to each top-level subdirectory of the
1838 build history output (images, packages, and sdk).
1839 If you want to track changes to build history over
1840 time, you should set this value to "1".
1841 </para>
1842
1843 <para>
1844 By default, the <filename>buildhistory</filename> class
1845 does not commit the build history output in a local
1846 Git repository:
1847 <literallayout class='monospaced'>
1848 BUILDHISTORY_COMMIT ?= "0"
1849 </literallayout>
1850 </para>
1851 </glossdef>
1852 </glossentry>
1853
1854 <glossentry id='var-BUILDHISTORY_COMMIT_AUTHOR'><glossterm>BUILDHISTORY_COMMIT_AUTHOR</glossterm>
1855 <info>
1856 BUILDHISTORY_COMMIT_AUTHOR[doc] = "When inheriting the buildhistory class, this variable specifies the author to use for each Git commit."
1857 </info>
1858 <glossdef>
1859 <para role="glossdeffirst">
1860<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1861 When inheriting the
1862 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1863 class, this variable specifies the author to use for each
1864 Git commit.
1865 In order for the <filename>BUILDHISTORY_COMMIT_AUTHOR</filename>
1866 variable to work, the
1867 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
1868 variable must be set to "1".
1869 </para>
1870
1871 <para>
1872 Git requires that the value you provide for the
1873 <filename>BUILDHISTORY_COMMIT_AUTHOR</filename> variable
Brad Bishop316dfdd2018-06-25 12:45:53 -04001874 takes the form of "name <replaceable>email@host</replaceable>".
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001875 Providing an email address or host that is not valid does
1876 not produce an error.
1877 </para>
1878
1879 <para>
1880 By default, the <filename>buildhistory</filename> class
1881 sets the variable as follows:
1882 <literallayout class='monospaced'>
1883 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory &lt;buildhistory@${DISTRO}&gt;"
1884 </literallayout>
1885 </para>
1886 </glossdef>
1887 </glossentry>
1888
1889 <glossentry id='var-BUILDHISTORY_DIR'><glossterm>BUILDHISTORY_DIR</glossterm>
1890 <info>
1891 BUILDHISTORY_DIR[doc] = "When inheriting the buildhistory class, this variable specifies the directory in which build history information is kept."
1892 </info>
1893 <glossdef>
1894 <para role="glossdeffirst">
1895<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1896 When inheriting the
1897 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1898 class, this variable specifies the directory in which
1899 build history information is kept.
1900 For more information on how the variable works, see the
1901 <filename>buildhistory.class</filename>.
1902 </para>
1903
1904 <para>
1905 By default, the <filename>buildhistory</filename> class
1906 sets the directory as follows:
1907 <literallayout class='monospaced'>
1908 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1909 </literallayout>
1910 </para>
1911 </glossdef>
1912 </glossentry>
1913
1914 <glossentry id='var-BUILDHISTORY_FEATURES'><glossterm>BUILDHISTORY_FEATURES</glossterm>
1915 <info>
1916 BUILDHISTORY_FEATURES[doc] = "When inheriting the buildhistory class, this variable specifies the build history features to be enabled."
1917 </info>
1918 <glossdef>
1919 <para role="glossdeffirst">
1920<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1921 When inheriting the
1922 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1923 class, this variable specifies the build history features
1924 to be enabled.
1925 For more information on how build history works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04001926 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
1927 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001928 </para>
1929
1930 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001931 You can specify these features in the form of a
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001932 space-separated list:
1933 <itemizedlist>
1934 <listitem><para><emphasis>image:</emphasis>
1935 Analysis of the contents of images, which
1936 includes the list of installed packages among other
1937 things.
1938 </para></listitem>
1939 <listitem><para><emphasis>package:</emphasis>
1940 Analysis of the contents of individual packages.
1941 </para></listitem>
1942 <listitem><para><emphasis>sdk:</emphasis>
1943 Analysis of the contents of the software
1944 development kit (SDK).
1945 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -04001946 <listitem><para><emphasis>task:</emphasis>
1947 Save output file signatures for
1948 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state</ulink>
1949 (sstate) tasks.
1950 This saves one file per task and lists the SHA-256
1951 checksums for each file staged (i.e. the output of
1952 the task).
1953 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001954 </itemizedlist>
1955 </para>
1956
1957 <para>
1958 By default, the <filename>buildhistory</filename> class
Brad Bishop316dfdd2018-06-25 12:45:53 -04001959 enables the following features:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001960 <literallayout class='monospaced'>
1961 BUILDHISTORY_FEATURES ?= "image package sdk"
1962 </literallayout>
1963 </para>
1964 </glossdef>
1965 </glossentry>
1966
1967 <glossentry id='var-BUILDHISTORY_IMAGE_FILES'><glossterm>BUILDHISTORY_IMAGE_FILES</glossterm>
1968 <info>
1969 BUILDHISTORY_IMAGE_FILES[doc] = "When inheriting the buildhistory class, this variable specifies a list of paths to files copied from the image contents into the build history directory under an "image-files" directory in the directory for the image, so that you can track the contents of each file."
1970 </info>
1971 <glossdef>
1972 <para role="glossdeffirst">
1973<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
1974 When inheriting the
1975 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
1976 class, this variable specifies a list of paths to files
1977 copied from the
1978 image contents into the build history directory under
1979 an "image-files" directory in the directory for
1980 the image, so that you can track the contents of each file.
1981 The default is to copy <filename>/etc/passwd</filename>
1982 and <filename>/etc/group</filename>, which allows you to
1983 monitor for changes in user and group entries.
1984 You can modify the list to include any file.
1985 Specifying an invalid path does not produce an error.
1986 Consequently, you can include files that might
1987 not always be present.
1988 </para>
1989
1990 <para>
1991 By default, the <filename>buildhistory</filename> class
1992 provides paths to the following files:
1993 <literallayout class='monospaced'>
1994 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1995 </literallayout>
1996 </para>
1997 </glossdef>
1998 </glossentry>
1999
2000 <glossentry id='var-BUILDHISTORY_PUSH_REPO'><glossterm>BUILDHISTORY_PUSH_REPO</glossterm>
2001 <info>
2002 BUILDHISTORY_PUSH_REPO[doc] = "When inheriting the buildhistory class, this variable optionally specifies a remote repository to which build history pushes Git changes."
2003 </info>
2004 <glossdef>
2005 <para role="glossdeffirst">
2006<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2007 When inheriting the
2008 <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
2009 class, this variable optionally specifies a remote
2010 repository to which build history pushes Git changes.
2011 In order for <filename>BUILDHISTORY_PUSH_REPO</filename>
2012 to work,
2013 <link linkend='var-BUILDHISTORY_COMMIT'><filename>BUILDHISTORY_COMMIT</filename></link>
2014 must be set to "1".
2015 </para>
2016
2017 <para>
2018 The repository should correspond to a remote
2019 address that specifies a repository as understood by
2020 Git, or alternatively to a remote name that you have
2021 set up manually using <filename>git remote</filename>
2022 within the local repository.
2023 </para>
2024
2025 <para>
2026 By default, the <filename>buildhistory</filename> class
2027 sets the variable as follows:
2028 <literallayout class='monospaced'>
2029 BUILDHISTORY_PUSH_REPO ?= ""
2030 </literallayout>
2031 </para>
2032 </glossdef>
2033 </glossentry>
2034
2035 <glossentry id='var-BUILDSDK_CFLAGS'><glossterm>BUILDSDK_CFLAGS</glossterm>
2036 <info>
2037 BUILDSDK_CFLAGS[doc] = "Specifies the flags to pass to the C compiler when building for the SDK."
2038 </info>
2039 <glossdef>
2040 <para role="glossdeffirst">
2041<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2042 Specifies the flags to pass to the C compiler when building
2043 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002044 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002045 context,
2046 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
2047 is set to the value of this variable by default.
2048 </para>
2049 </glossdef>
2050 </glossentry>
2051
2052 <glossentry id='var-BUILDSDK_CPPFLAGS'><glossterm>BUILDSDK_CPPFLAGS</glossterm>
2053 <info>
2054 BUILDSDK_CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers) when building for the SDK."
2055 </info>
2056 <glossdef>
2057 <para role="glossdeffirst">
2058<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2059 Specifies the flags to pass to the C pre-processor
2060 (i.e. to both the C and the C++ compilers) when building
2061 for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002062 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002063 context,
2064 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
2065 is set to the value of this variable by default.
2066 </para>
2067 </glossdef>
2068 </glossentry>
2069
2070 <glossentry id='var-BUILDSDK_CXXFLAGS'><glossterm>BUILDSDK_CXXFLAGS</glossterm>
2071 <info>
2072 BUILDSDK_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the SDK."
2073 </info>
2074 <glossdef>
2075 <para role="glossdeffirst">
2076<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2077 Specifies the flags to pass to the C++ compiler when
2078 building for the SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002079 When building in the <filename>nativesdk-</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002080 context,
2081 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
2082 is set to the value of this variable by default.
2083 </para>
2084 </glossdef>
2085 </glossentry>
2086
2087 <glossentry id='var-BUILDSDK_LDFLAGS'><glossterm>BUILDSDK_LDFLAGS</glossterm>
2088 <info>
2089 BUILDSDK_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the SDK."
2090 </info>
2091 <glossdef>
2092 <para role="glossdeffirst">
2093<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2094 Specifies the flags to pass to the linker when building
2095 for the SDK.
2096 When building in the <filename>nativesdk-</filename>
2097 context,
2098 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
2099 is set to the value of this variable by default.
2100 </para>
2101 </glossdef>
2102 </glossentry>
2103
2104 <glossentry id='var-BUILDSTATS_BASE'><glossterm>BUILDSTATS_BASE</glossterm>
2105 <info>
2106 BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
2107 </info>
2108 <glossdef>
2109 <para role="glossdeffirst">
2110<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2111 Points to the location of the directory that holds build
2112 statistics when you use and enable the
2113 <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
2114 class.
2115 The <filename>BUILDSTATS_BASE</filename> directory defaults
2116 to
2117 <filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/buildstats/</filename>.
2118 </para>
2119 </glossdef>
2120 </glossentry>
2121
2122 <glossentry id='var-BUSYBOX_SPLIT_SUID'><glossterm>BUSYBOX_SPLIT_SUID</glossterm>
2123 <info>
2124 BUSYBOX_SPLIT_SUID[doc] = "For the BusyBox recipe, specifies whether to split the output executable file into two parts: one for features that require setuid root, and one for the remaining features."
2125 </info>
2126 <glossdef>
2127 <para role="glossdeffirst">
2128<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2129 For the BusyBox recipe, specifies whether to split the
2130 output executable file into two parts: one for features
2131 that require <filename>setuid root</filename>, and one for
2132 the remaining features (i.e. those that do not require
2133 <filename>setuid root</filename>).
2134 </para>
2135
2136 <para>
2137 The <filename>BUSYBOX_SPLIT_SUID</filename> variable
2138 defaults to "1", which results in a single output
2139 executable file.
2140 Set the variable to "0" to split the output file.
2141 </para>
2142 </glossdef>
2143 </glossentry>
2144
2145 </glossdiv>
2146
2147 <glossdiv id='var-glossary-c'><title>C</title>
2148
2149 <glossentry id='var-CACHE'><glossterm>CACHE</glossterm>
2150 <info>
2151 CACHE[doc] = "The directory BitBake uses to store a cache of the metadata."
2152 </info>
2153 <glossdef>
2154 <para role="glossdeffirst">
2155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2156 Specifies the directory BitBake uses to store a cache
2157 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002158 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002159 so it does not need to be parsed every time BitBake is
2160 started.
2161 </para>
2162 </glossdef>
2163 </glossentry>
2164
2165 <glossentry id='var-CC'><glossterm>CC</glossterm>
2166 <info>
2167 CC[doc] = "Minimum command and arguments to run the C compiler."
2168 </info>
2169 <glossdef>
2170 <para role="glossdeffirst">
2171<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2172 The minimal command and arguments used to run the C
2173 compiler.
2174 </para>
2175 </glossdef>
2176 </glossentry>
2177
2178 <glossentry id='var-CFLAGS'><glossterm>CFLAGS</glossterm>
2179 <info>
2180 CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
2181 </info>
2182 <glossdef>
2183 <para role="glossdeffirst">
2184<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2185 Specifies the flags to pass to the C compiler.
2186 This variable is exported to an environment
2187 variable and thus made visible to the software being
2188 built during the compilation step.
2189 </para>
2190
2191 <para>
2192 Default initialization for <filename>CFLAGS</filename>
2193 varies depending on what is being built:
2194 <itemizedlist>
2195 <listitem><para>
2196 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
2197 when building for the target
2198 </para></listitem>
2199 <listitem><para>
2200 <link linkend='var-BUILD_CFLAGS'><filename>BUILD_CFLAGS</filename></link>
2201 when building for the build host (i.e.
2202 <filename>-native</filename>)
2203 </para></listitem>
2204 <listitem><para>
2205 <link linkend='var-BUILDSDK_CFLAGS'><filename>BUILDSDK_CFLAGS</filename></link>
2206 when building for an SDK (i.e.
2207 <filename>nativesdk-</filename>)
2208 </para></listitem>
2209 </itemizedlist>
2210 </para>
2211 </glossdef>
2212 </glossentry>
2213
2214 <glossentry id='var-CLASSOVERRIDE'><glossterm>CLASSOVERRIDE</glossterm>
2215 <info>
2216 CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
2217 </info>
2218 <glossdef>
2219 <para role="glossdeffirst">
2220<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2221 An internal variable specifying the special class override
2222 that should currently apply (e.g. "class-target",
2223 "class-native", and so forth).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002224 The classes that use this variable (e.g.
2225 <link linkend='ref-classes-native'><filename>native</filename></link>,
2226 <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
2227 and so forth) set the variable to appropriate values.
2228 <note>
2229 <filename>CLASSOVERRIDE</filename> gets its default
2230 "class-target" value from the
2231 <filename>bitbake.conf</filename> file.
2232 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002233 </para>
2234
2235 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002236 As an example, the following override allows you to install
2237 extra files, but only when building for the target:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002238 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002239 do_install_append_class-target() {
2240 install my-extra-file ${D}${sysconfdir}
2241 }
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002242 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06002243 Here is an example where <filename>FOO</filename>
2244 is set to "native" when building for the build host, and
2245 to "other" when not building for the build host:
2246 <literallayout class='monospaced'>
2247 FOO_class-native = "native"
2248 FOO = "other"
2249 </literallayout>
2250 The underlying mechanism behind
2251 <filename>CLASSOVERRIDE</filename> is simply that it is
2252 included in the default value of
2253 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002254 </para>
2255 </glossdef>
2256 </glossentry>
2257
2258 <glossentry id='var-CLEANBROKEN'><glossterm>CLEANBROKEN</glossterm>
2259 <info>
2260 CLEANBROKEN[doc] = "Prevents the build system from running 'make clean' during the do_configure task."
2261 </info>
2262 <glossdef>
2263 <para role="glossdeffirst">
2264<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2265 If set to "1" within a recipe,
2266 <filename>CLEANBROKEN</filename> specifies that
2267 the <filename>make clean</filename> command does
2268 not work for the software being built.
2269 Consequently, the OpenEmbedded build system will not try
2270 to run <filename>make clean</filename> during the
2271 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2272 task, which is the default behavior.
2273 </para>
2274 </glossdef>
2275 </glossentry>
2276
2277 <glossentry id='var-COMBINED_FEATURES'><glossterm>COMBINED_FEATURES</glossterm>
2278 <info>
2279 COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
2280 </info>
2281 <glossdef>
2282 <para role="glossdeffirst">
2283<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2284 Provides a list of hardware features that are enabled in
2285 both
2286 <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
2287 and
2288 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
2289 This select list of features contains features that make
2290 sense to be controlled both at the machine and distribution
2291 configuration level.
2292 For example, the "bluetooth" feature requires hardware
2293 support but should also be optional at the distribution
2294 level, in case the hardware supports Bluetooth but you
2295 do not ever intend to use it.
2296 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002297 </glossdef>
2298 </glossentry>
2299
2300 <glossentry id='var-COMMON_LICENSE_DIR'><glossterm>COMMON_LICENSE_DIR</glossterm>
2301 <info>
2302 COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
2303 </info>
2304 <glossdef>
2305 <para role="glossdeffirst">
2306<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2307 Points to <filename>meta/files/common-licenses</filename>
2308 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002309 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002310 which is where generic license files reside.
2311 </para>
2312 </glossdef>
2313 </glossentry>
2314
2315 <glossentry id='var-COMPATIBLE_HOST'><glossterm>COMPATIBLE_HOST</glossterm>
2316 <info>
2317 COMPATIBLE_HOST[doc] = "A regular expression that resolves to one or more hosts (when the recipe is native) or one or more targets (when the recipe is non-native) with which a recipe is compatible."
2318 </info>
2319 <glossdef>
2320 <para role="glossdeffirst">
2321<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2322 A regular expression that resolves to one or more hosts
2323 (when the recipe is native) or one or more targets (when
2324 the recipe is non-native) with which a recipe is compatible.
2325 The regular expression is matched against
2326 <link linkend="var-HOST_SYS"><filename>HOST_SYS</filename></link>.
2327 You can use the variable to stop recipes from being built
2328 for classes of systems with which the recipes are not
2329 compatible.
2330 Stopping these builds is particularly useful with kernels.
2331 The variable also helps to increase parsing speed
2332 since the build system skips parsing recipes not
2333 compatible with the current system.
2334 </para>
2335 </glossdef>
2336 </glossentry>
2337
2338 <glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
2339 <info>
2340 COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
2341 </info>
2342 <glossdef>
2343 <para role="glossdeffirst">
2344<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2345 A regular expression that resolves to one or more
2346 target machines with which a recipe is compatible.
2347 The regular expression is matched against
2348 <link linkend="var-MACHINEOVERRIDES"><filename>MACHINEOVERRIDES</filename></link>.
2349 You can use the variable to stop recipes from being built
2350 for machines with which the recipes are not compatible.
2351 Stopping these builds is particularly useful with kernels.
2352 The variable also helps to increase parsing speed
2353 since the build system skips parsing recipes not
2354 compatible with the current machine.
2355 </para>
2356 </glossdef>
2357 </glossentry>
2358
2359 <glossentry id='var-COMPLEMENTARY_GLOB'><glossterm>COMPLEMENTARY_GLOB</glossterm>
2360 <info>
2361 COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
2362 </info>
2363 <glossdef>
2364 <para role="glossdeffirst">
2365<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2366 Defines wildcards to match when installing a list of
2367 complementary packages for all the packages explicitly
2368 (or implicitly) installed in an image.
2369 The resulting list of complementary packages is associated
2370 with an item that can be added to
2371 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
2372 An example usage of this is the "dev-pkgs" item that when
2373 added to <filename>IMAGE_FEATURES</filename> will
2374 install -dev packages (containing headers and other
2375 development files) for every package in the image.
2376 </para>
2377
2378 <para>
2379 To add a new feature item pointing to a wildcard, use a
2380 variable flag to specify the feature item name and
2381 use the value to specify the wildcard.
2382 Here is an example:
2383 <literallayout class='monospaced'>
2384 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
2385 </literallayout>
2386 </para>
2387 </glossdef>
2388 </glossentry>
2389
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002390 <glossentry id='var-COMPONENTS_DIR'><glossterm>COMPONENTS_DIR</glossterm>
2391 <info>
2392 COMPONENTS_DIR[doc] = "Stores sysroot components for each recipe."
2393 </info>
2394 <glossdef>
2395 <para role="glossdeffirst">
2396<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2397 Stores sysroot components for each recipe.
2398 The OpenEmbedded build system uses
2399 <filename>COMPONENTS_DIR</filename> when constructing
2400 recipe-specific sysroots for other recipes.
2401 </para>
2402
2403 <para>
2404 The default is
2405 "<filename>${</filename><link linkend='var-STAGING_DIR'><filename>STAGING_DIR</filename></link><filename>}-components</filename>."
2406 (i.e. "<filename>${</filename><link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>}/sysroots-components</filename>").
2407 </para>
2408 </glossdef>
2409 </glossentry>
2410
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002411 <glossentry id='var-CONF_VERSION'><glossterm>CONF_VERSION</glossterm>
2412 <info>
2413 CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
2414 </info>
2415 <glossdef>
2416 <para role="glossdeffirst">
2417<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2418 Tracks the version of the local configuration file
2419 (i.e. <filename>local.conf</filename>).
2420 The value for <filename>CONF_VERSION</filename>
2421 increments each time <filename>build/conf/</filename>
2422 compatibility changes.
2423 </para>
2424 </glossdef>
2425 </glossentry>
2426
2427 <glossentry id='var-CONFFILES'><glossterm>CONFFILES</glossterm>
2428 <info>
2429 CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
2430 </info>
2431 <glossdef>
2432 <para role="glossdeffirst">
2433<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2434 Identifies editable or configurable files that are part of a package.
2435 If the Package Management System (PMS) is being used to update
2436 packages on the target system, it is possible that
2437 configuration files you have changed after the original installation
2438 and that you now want to remain unchanged are overwritten.
2439 In other words, editable files might exist in the package that you do not
2440 want reset as part of the package update process.
2441 You can use the <filename>CONFFILES</filename> variable to list the files in the
2442 package that you wish to prevent the PMS from overwriting during this update process.
2443 </para>
2444
2445 <para>
2446 To use the <filename>CONFFILES</filename> variable, provide a package name
2447 override that identifies the resulting package.
2448 Then, provide a space-separated list of files.
2449 Here is an example:
2450 <literallayout class='monospaced'>
2451 CONFFILES_${PN} += "${sysconfdir}/file1 \
2452 ${sysconfdir}/file2 ${sysconfdir}/file3"
2453 </literallayout>
2454 </para>
2455
2456 <para>
2457 A relationship exists between the <filename>CONFFILES</filename> and
2458 <filename><link linkend='var-FILES'>FILES</link></filename> variables.
2459 The files listed within <filename>CONFFILES</filename> must be a subset of
2460 the files listed within <filename>FILES</filename>.
2461 Because the configuration files you provide with <filename>CONFFILES</filename>
2462 are simply being identified so that the PMS will not overwrite them,
2463 it makes sense that
2464 the files must already be included as part of the package through the
2465 <filename>FILES</filename> variable.
2466 </para>
2467
2468 <note>
2469 When specifying paths as part of the <filename>CONFFILES</filename> variable,
2470 it is good practice to use appropriate path variables.
2471 For example, <filename>${sysconfdir}</filename> rather than
2472 <filename>/etc</filename> or <filename>${bindir}</filename> rather
2473 than <filename>/usr/bin</filename>.
2474 You can find a list of these variables at the top of the
2475 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002476 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002477 </note>
2478 </glossdef>
2479 </glossentry>
2480
2481 <glossentry id='var-CONFIG_INITRAMFS_SOURCE'><glossterm>CONFIG_INITRAMFS_SOURCE</glossterm>
2482 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002483 CONFIG_INITRAMFS_SOURCE[doc] = "Identifies the initial RAM filesystem (initramfs) source files. The OpenEmbedded build system receives and uses this kernel Kconfig variable as an environment variable."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002484 </info>
2485 <glossdef>
2486 <para role="glossdeffirst">
2487<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002488 Identifies the initial RAM filesystem (initramfs) source
2489 files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002490 The OpenEmbedded build system receives and uses
2491 this kernel Kconfig variable as an environment variable.
2492 By default, the variable is set to null ("").
2493 </para>
2494
2495 <para>
2496 The <filename>CONFIG_INITRAMFS_SOURCE</filename> can be
2497 either a single cpio archive with a
2498 <filename>.cpio</filename> suffix or a
2499 space-separated list of directories and files for building
2500 the initramfs image.
2501 A cpio archive should contain a filesystem archive
2502 to be used as an initramfs image.
2503 Directories should contain a filesystem layout to be
2504 included in the initramfs image.
2505 Files should contain entries according to the format
2506 described by the
2507 <filename>usr/gen_init_cpio</filename> program in the
2508 kernel tree.
2509 </para>
2510
2511 <para>
2512 If you specify multiple directories and files, the
2513 initramfs image will be the aggregate of all of them.
2514 </para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002515
2516 <para>
2517 For information on creating an initramfs, see the
2518 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002519 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05002520 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002521 </glossdef>
2522 </glossentry>
2523
2524 <glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
2525 <info>
2526 CONFIG_SITE[doc] = "A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running configure."
2527 </info>
2528 <glossdef>
2529 <para role="glossdeffirst">
2530<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2531 A list of files that contains <filename>autoconf</filename> test results relevant
2532 to the current build.
2533 This variable is used by the Autotools utilities when running
2534 <filename>configure</filename>.
2535 </para>
2536 </glossdef>
2537 </glossentry>
2538
2539 <glossentry id='var-CONFIGURE_FLAGS'><glossterm>CONFIGURE_FLAGS</glossterm>
2540 <info>
2541 CONFIGURE_FLAGS[doc] = "The minimal arguments for GNU configure."
2542 </info>
2543 <glossdef>
2544 <para role="glossdeffirst">
2545<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2546 The minimal arguments for GNU configure.
2547 </para>
2548 </glossdef>
2549 </glossentry>
2550
2551 <glossentry id='var-CONFLICT_DISTRO_FEATURES'><glossterm>CONFLICT_DISTRO_FEATURES</glossterm>
2552 <info>
2553 CONFLICT_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that would be in conflict should the recipe be built."
2554 </info>
2555 <glossdef>
2556 <para role="glossdeffirst">
2557<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2558 When inheriting the
2559 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
2560 class, this
2561 variable identifies distribution features that would
2562 be in conflict should the recipe
2563 be built.
2564 In other words, if the
2565 <filename>CONFLICT_DISTRO_FEATURES</filename> variable
2566 lists a feature that also appears in
2567 <filename>DISTRO_FEATURES</filename> within the
2568 current configuration, an error occurs and the
2569 build stops.
2570 </para>
2571 </glossdef>
2572 </glossentry>
2573
Brad Bishop6e60e8b2018-02-01 10:27:11 -05002574 <glossentry id='var-COPYLEFT_LICENSE_EXCLUDE'><glossterm>COPYLEFT_LICENSE_EXCLUDE</glossterm>
2575 <info>
2576 COPYLEFT_LICENSE_EXCLUDE[doc] = "Licenses to exclude in the source archived by the archiver class."
2577 </info>
2578 <glossdef>
2579 <para role="glossdeffirst">
2580<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2581 A space-separated list of licenses to exclude from the
2582 source archived by the
2583 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2584 class.
2585 In other words, if a license in a recipe's
2586 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2587 value is in the value of
2588 <filename>COPYLEFT_LICENSE_EXCLUDE</filename>, then its
2589 source is not archived by the class.
2590 <note>
2591 The <filename>COPYLEFT_LICENSE_EXCLUDE</filename>
2592 variable takes precedence over the
2593 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2594 variable.
2595 </note>
2596 The default value, which is "CLOSED Proprietary", for
2597 <filename>COPYLEFT_LICENSE_EXCLUDE</filename> is set
2598 by the
2599 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2600 class, which is inherited by the
2601 <filename>archiver</filename> class.
2602 </para>
2603 </glossdef>
2604 </glossentry>
2605
2606 <glossentry id='var-COPYLEFT_LICENSE_INCLUDE'><glossterm>COPYLEFT_LICENSE_INCLUDE</glossterm>
2607 <info>
2608 COPYLEFT_LICENSE_INCLUDE[doc] = "Licenses to include in the source archived by the archiver class."
2609 </info>
2610 <glossdef>
2611 <para role="glossdeffirst">
2612<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2613 A space-separated list of licenses to include in the
2614 source archived by the
2615 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2616 class.
2617 In other words, if a license in a recipe's
2618 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2619 value is in the value of
2620 <filename>COPYLEFT_LICENSE_INCLUDE</filename>, then its
2621 source is archived by the class.
2622 </para>
2623
2624 <para>
2625 The default value is set by the
2626 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2627 class, which is inherited by the
2628 <filename>archiver</filename> class.
2629 The default value includes "GPL*", "LGPL*", and "AGPL*".
2630 </para>
2631 </glossdef>
2632 </glossentry>
2633
2634 <glossentry id='var-COPYLEFT_PN_EXCLUDE'><glossterm>COPYLEFT_PN_EXCLUDE</glossterm>
2635 <info>
2636 COPYLEFT_PN_EXCLUDE[doc] = "Recipes to exclude in the source archived by the archiver class."
2637 </info>
2638 <glossdef>
2639 <para role="glossdeffirst">
2640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2641 A list of recipes to exclude in the source archived
2642 by the
2643 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2644 class.
2645 The <filename>COPYLEFT_PN_EXCLUDE</filename> variable
2646 overrides the license inclusion and exclusion caused
2647 through the
2648 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2649 and
2650 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2651 variables, respectively.
2652 </para>
2653
2654 <para>
2655 The default value, which is "" indicating to not explicitly
2656 exclude any recipes by name, for
2657 <filename>COPYLEFT_PN_EXCLUDE</filename> is set
2658 by the
2659 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2660 class, which is inherited by the
2661 <filename>archiver</filename> class.
2662 </para>
2663 </glossdef>
2664 </glossentry>
2665
2666 <glossentry id='var-COPYLEFT_PN_INCLUDE'><glossterm>COPYLEFT_PN_INCLUDE</glossterm>
2667 <info>
2668 COPYLEFT_PN_INCLUDE[doc] = "Recipes to include in the source archived by the archiver class."
2669 </info>
2670 <glossdef>
2671 <para role="glossdeffirst">
2672<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2673 A list of recipes to include in the source archived
2674 by the
2675 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2676 class.
2677 The <filename>COPYLEFT_PN_INCLUDE</filename> variable
2678 overrides the license inclusion and exclusion caused
2679 through the
2680 <link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
2681 and
2682 <link linkend='var-COPYLEFT_LICENSE_EXCLUDE'><filename>COPYLEFT_LICENSE_EXCLUDE</filename></link>
2683 variables, respectively.
2684 </para>
2685
2686 <para>
2687 The default value, which is "" indicating to not explicitly
2688 include any recipes by name, for
2689 <filename>COPYLEFT_PN_INCLUDE</filename> is set
2690 by the
2691 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2692 class, which is inherited by the
2693 <filename>archiver</filename> class.
2694 </para>
2695 </glossdef>
2696 </glossentry>
2697
2698 <glossentry id='var-COPYLEFT_RECIPE_TYPES'><glossterm>COPYLEFT_RECIPE_TYPES</glossterm>
2699 <info>
2700 COPYLEFT_RECIPE_TYPES[doc] = "Recipe types to include in the source archived by the archiver class."
2701 </info>
2702 <glossdef>
2703 <para role="glossdeffirst">
2704<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2705 A space-separated list of recipe types to include
2706 in the source archived by the
2707 <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
2708 class.
2709 Recipe types are <filename>target</filename>,
2710 <filename>native</filename>,
2711 <filename>nativesdk</filename>,
2712 <filename>cross</filename>,
2713 <filename>crosssdk</filename>, and
2714 <filename>cross-canadian</filename>.
2715 </para>
2716
2717 <para>
2718 The default value, which is "target*", for
2719 <filename>COPYLEFT_RECIPE_TYPES</filename> is set
2720 by the
2721 <link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
2722 class, which is inherited by the
2723 <filename>archiver</filename> class.
2724 </para>
2725 </glossdef>
2726 </glossentry>
2727
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002728 <glossentry id='var-COPY_LIC_DIRS'><glossterm>COPY_LIC_DIRS</glossterm>
2729 <info>
2730 COPY_LIC_DIRS[doc] = "If set to "1" along with the COPY_LIC_MANIFEST variable, the OpenEmbedded build system copies into the image the license files, which are located in /usr/share/common-licenses, for each package."
2731 </info>
2732 <glossdef>
2733 <para role="glossdeffirst">
2734<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2735 If set to "1" along with the
2736 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
2737 variable, the OpenEmbedded build system copies
2738 into the image the license files, which are located in
2739 <filename>/usr/share/common-licenses</filename>,
2740 for each package.
2741 The license files are placed
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002742 in directories within the image itself during build time.
2743 <note>
2744 The <filename>COPY_LIC_DIRS</filename> does not
2745 offer a path for adding licenses for newly installed
2746 packages to an image, which might be most suitable
2747 for read-only filesystems that cannot be upgraded.
2748 See the
2749 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2750 variable for additional information.
2751 You can also reference the
2752 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002753 section in the Yocto Project Development Tasks Manual
2754 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002755 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002756 </para>
2757 </glossdef>
2758 </glossentry>
2759
2760 <glossentry id='var-COPY_LIC_MANIFEST'><glossterm>COPY_LIC_MANIFEST</glossterm>
2761 <info>
2762 COPY_LIC_MANIFEST[doc] = "If set to "1", the OpenEmbedded build system copies the license manifest for the image to /usr/share/common-licenses/license.manifest within the image itself."
2763 </info>
2764 <glossdef>
2765 <para role="glossdeffirst">
2766<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2767 If set to "1", the OpenEmbedded build system copies
2768 the license manifest for the image to
2769 <filename>/usr/share/common-licenses/license.manifest</filename>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002770 within the image itself during build time.
2771 <note>
2772 The <filename>COPY_LIC_MANIFEST</filename> does not
2773 offer a path for adding licenses for newly installed
2774 packages to an image, which might be most suitable
2775 for read-only filesystems that cannot be upgraded.
2776 See the
2777 <link linkend='var-LICENSE_CREATE_PACKAGE'><filename>LICENSE_CREATE_PACKAGE</filename></link>
2778 variable for additional information.
2779 You can also reference the
2780 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002781 section in the Yocto Project Development Tasks Manual
2782 for information on providing license text.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002783 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002784 </para>
2785 </glossdef>
2786 </glossentry>
2787
2788 <glossentry id='var-CORE_IMAGE_EXTRA_INSTALL'><glossterm>CORE_IMAGE_EXTRA_INSTALL</glossterm>
2789 <info>
2790 CORE_IMAGE_EXTRA_INSTALL[doc] = "Specifies the list of packages to be added to the image. You should only set this variable in the conf/local.conf file in the Build Directory."
2791 </info>
2792 <glossdef>
2793 <para role="glossdeffirst">
2794<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2795 Specifies the list of packages to be added to the image.
2796 You should only set this variable in the
2797 <filename>local.conf</filename> configuration file found
2798 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002799 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002800 </para>
2801
2802 <para>
2803 This variable replaces <filename>POKY_EXTRA_INSTALL</filename>, which is no longer supported.
2804 </para>
2805 </glossdef>
2806 </glossentry>
2807
2808 <glossentry id='var-COREBASE'><glossterm>COREBASE</glossterm>
2809 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04002810 COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. meta)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002811 </info>
2812 <glossdef>
2813 <para role="glossdeffirst">
2814<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04002815 Specifies the parent directory of the OpenEmbedded-Core
2816 Metadata layer (i.e. <filename>meta</filename>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002817 </para>
2818
2819 <para>
2820 It is an important distinction that
2821 <filename>COREBASE</filename> points to the parent of this
2822 layer and not the layer itself.
2823 Consider an example where you have cloned the Poky Git
2824 repository and retained the <filename>poky</filename>
2825 name for your local copy of the repository.
2826 In this case, <filename>COREBASE</filename> points to
2827 the <filename>poky</filename> folder because it is the
2828 parent directory of the <filename>poky/meta</filename>
2829 layer.
2830 </para>
2831 </glossdef>
2832 </glossentry>
2833
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002834 <glossentry id='var-COREBASE_FILES'><glossterm>COREBASE_FILES</glossterm>
2835 <info>
2836 COREBASE_FILES[doc] = "Lists files from the COREBASE directory that should be copied other than the layers listed in the bblayers.conf file."
2837 </info>
2838 <glossdef>
2839 <para role="glossdeffirst">
2840<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2841 Lists files from the
2842 <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
2843 directory that should be copied other than the layers
2844 listed in the <filename>bblayers.conf</filename> file.
2845 The <filename>COREBASE_FILES</filename> variable exists
2846 for the purpose of copying metadata from the
2847 OpenEmbedded build system into the extensible
2848 SDK.
2849 </para>
2850
2851 <para>
2852 Explicitly listing files in <filename>COREBASE</filename>
2853 is needed because it typically contains build
2854 directories and other files that should not normally
2855 be copied into the extensible SDK.
2856 Consequently, the value of
2857 <filename>COREBASE_FILES</filename> is used in order to
2858 only copy the files that are actually needed.
2859 </para>
2860 </glossdef>
2861 </glossentry>
2862
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002863 <glossentry id='var-CPP'><glossterm>CPP</glossterm>
2864 <info>
2865 CPP[doc] = "Minimum command and arguments to run the C preprocessor."
2866 </info>
2867 <glossdef>
2868 <para role="glossdeffirst">
2869<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2870 The minimal command and arguments used to run the C
2871 preprocessor.
2872 </para>
2873 </glossdef>
2874 </glossentry>
2875
2876 <glossentry id='var-CPPFLAGS'><glossterm>CPPFLAGS</glossterm>
2877 <info>
2878 CPPFLAGS[doc] = "Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers)."
2879 </info>
2880 <glossdef>
2881 <para role="glossdeffirst">
2882<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2883 Specifies the flags to pass to the C pre-processor
2884 (i.e. to both the C and the C++ compilers).
2885 This variable is exported to an environment
2886 variable and thus made visible to the software being
2887 built during the compilation step.
2888 </para>
2889
2890 <para>
2891 Default initialization for <filename>CPPFLAGS</filename>
2892 varies depending on what is being built:
2893 <itemizedlist>
2894 <listitem><para>
2895 <link linkend='var-TARGET_CPPFLAGS'><filename>TARGET_CPPFLAGS</filename></link>
2896 when building for the target
2897 </para></listitem>
2898 <listitem><para>
2899 <link linkend='var-BUILD_CPPFLAGS'><filename>BUILD_CPPFLAGS</filename></link>
2900 when building for the build host (i.e.
2901 <filename>-native</filename>)
2902 </para></listitem>
2903 <listitem><para>
2904 <link linkend='var-BUILDSDK_CPPFLAGS'><filename>BUILDSDK_CPPFLAGS</filename></link>
2905 when building for an SDK (i.e.
2906 <filename>nativesdk-</filename>)
2907 </para></listitem>
2908 </itemizedlist>
2909 </para>
2910 </glossdef>
2911 </glossentry>
2912
2913 <glossentry id='var-CROSS_COMPILE'><glossterm>CROSS_COMPILE</glossterm>
2914 <info>
2915 CROSS_COMPILE[doc] = "The toolchain binary prefix for the target tools."
2916 </info>
2917 <glossdef>
2918 <para role="glossdeffirst">
2919<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2920 The toolchain binary prefix for the target tools.
2921 The <filename>CROSS_COMPILE</filename> variable is the
2922 same as the
2923 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
2924 variable.
2925 <note>
2926 The OpenEmbedded build system sets the
2927 <filename>CROSS_COMPILE</filename> variable only in
2928 certain contexts (e.g. when building for kernel
2929 and kernel module recipes).
2930 </note>
2931 </para>
2932 </glossdef>
2933 </glossentry>
2934
2935 <glossentry id='var-CVSDIR'><glossterm>CVSDIR</glossterm>
2936 <info>
2937 CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
2938 </info>
2939 <glossdef>
2940 <para role="glossdeffirst">
2941<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2942 The directory in which files checked out under the
2943 CVS system are stored.
2944 </para>
2945 </glossdef>
2946 </glossentry>
2947
2948 <glossentry id='var-CXX'><glossterm>CXX</glossterm>
2949 <info>
2950 CXX[doc] = "Minimum command and arguments to run the C++ compiler."
2951 </info>
2952 <glossdef>
2953 <para role="glossdeffirst">
2954<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2955 The minimal command and arguments used to run the C++
2956 compiler.
2957 </para>
2958 </glossdef>
2959 </glossentry>
2960
2961 <glossentry id='var-CXXFLAGS'><glossterm>CXXFLAGS</glossterm>
2962 <info>
2963 CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler."
2964 </info>
2965 <glossdef>
2966 <para role="glossdeffirst">
2967<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
2968 Specifies the flags to pass to the C++ compiler.
2969 This variable is exported to an environment
2970 variable and thus made visible to the software being
2971 built during the compilation step.
2972 </para>
2973
2974 <para>
2975 Default initialization for <filename>CXXFLAGS</filename>
2976 varies depending on what is being built:
2977 <itemizedlist>
2978 <listitem><para>
2979 <link linkend='var-TARGET_CXXFLAGS'><filename>TARGET_CXXFLAGS</filename></link>
2980 when building for the target
2981 </para></listitem>
2982 <listitem><para>
2983 <link linkend='var-BUILD_CXXFLAGS'><filename>BUILD_CXXFLAGS</filename></link>
2984 when building for the build host (i.e.
2985 <filename>-native</filename>)
2986 </para></listitem>
2987 <listitem><para>
2988 <link linkend='var-BUILDSDK_CXXFLAGS'><filename>BUILDSDK_CXXFLAGS</filename></link>
2989 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002990 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002991 </para></listitem>
2992 </itemizedlist>
2993 </para>
2994 </glossdef>
2995 </glossentry>
2996
2997 </glossdiv>
2998
2999 <glossdiv id='var-glossary-d'><title>D</title>
3000
3001 <glossentry id='var-D'><glossterm>D</glossterm>
3002 <info>
3003 D[doc] = "The destination directory."
3004 </info>
3005 <glossdef>
3006 <para role="glossdeffirst">
3007<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3008 The destination directory.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003009 The location in the
3010 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003011 where components are installed by the
3012 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
3013 task.
3014 This location defaults to:
3015 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003016 ${WORKDIR}/image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003017 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003018 <note><title>Caution</title>
3019 Tasks that read from or write to this directory should
3020 run under
Brad Bishop316dfdd2018-06-25 12:45:53 -04003021 <ulink url='&YOCTO_DOCS_OM_URL;#fakeroot-and-pseudo'>fakeroot</ulink>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003022 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003023 </para>
3024 </glossdef>
3025 </glossentry>
3026
3027 <glossentry id='var-DATE'><glossterm>DATE</glossterm>
3028 <info>
3029 DATE[doc] = "The date the build was started using YMD format."
3030 </info>
3031 <glossdef>
3032 <para role="glossdeffirst">
3033<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3034 The date the build was started.
3035 Dates appear using the year, month, and day (YMD) format
3036 (e.g. "20150209" for February 9th, 2015).
3037 </para>
3038 </glossdef>
3039 </glossentry>
3040
3041 <glossentry id='var-DATETIME'><glossterm>DATETIME</glossterm>
3042 <info>
3043 DATETIME[doc] = "The date and time the build was started."
3044 </info>
3045 <glossdef>
3046 <para role="glossdeffirst">
3047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3048 The date and time on which the current build started.
3049 The format is suitable for timestamps.
3050 </para>
3051 </glossdef>
3052 </glossentry>
3053
3054 <glossentry id='var-DEBIAN_NOAUTONAME'><glossterm>DEBIAN_NOAUTONAME</glossterm>
3055 <info>
3056 DEBIAN_NOAUTONAME[doc] = "Prevents a particular package from being renamed according to Debian package naming."
3057 </info>
3058 <glossdef>
3059 <para role="glossdeffirst">
3060<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3061 When the
3062 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3063 class is inherited, which is the default behavior,
3064 <filename>DEBIAN_NOAUTONAME</filename> specifies a
3065 particular package should not be renamed according to
3066 Debian library package naming.
3067 You must use the package name as an override when you
3068 set this variable.
3069 Here is an example from the <filename>fontconfig</filename>
3070 recipe:
3071 <literallayout class='monospaced'>
3072 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
3073 </literallayout>
3074 </para>
3075 </glossdef>
3076 </glossentry>
3077
3078 <glossentry id='var-DEBIANNAME'><glossterm>DEBIANNAME</glossterm>
3079 <info>
3080 DEBIANNAME[doc] = "Allows you to override the library name for an individual package for Debian library package renaming."
3081 </info>
3082 <glossdef>
3083 <para role="glossdeffirst">
3084<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3085 When the
3086 <link linkend='ref-classes-debian'><filename>debian</filename></link>
3087 class is inherited, which is the default behavior,
3088 <filename>DEBIANNAME</filename> allows you to override the
3089 library name for an individual package.
3090 Overriding the library name in these cases is rare.
3091 You must use the package name as an override when you
3092 set this variable.
3093 Here is an example from the <filename>dbus</filename>
3094 recipe:
3095 <literallayout class='monospaced'>
3096 DEBIANNAME_${PN} = "dbus-1"
3097 </literallayout>
3098 </para>
3099 </glossdef>
3100 </glossentry>
3101
3102 <glossentry id='var-DEBUG_BUILD'><glossterm>DEBUG_BUILD</glossterm>
3103 <info>
3104 DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
3105 </info>
3106 <glossdef>
3107 <para role="glossdeffirst">
3108<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3109 Specifies to build packages with debugging information.
3110 This influences the value of the
3111 <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
3112 variable.
3113 </para>
3114 </glossdef>
3115 </glossentry>
3116
3117 <glossentry id='var-DEBUG_OPTIMIZATION'><glossterm>DEBUG_OPTIMIZATION</glossterm>
3118 <info>
3119 DEBUG_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-O -fno-omit-frame-pointer -g'."
3120 </info>
3121 <glossdef>
3122 <para role="glossdeffirst">
3123<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3124 The options to pass in
3125 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
3126 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
3127 a system for debugging.
3128 This variable defaults to "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
3129 </para>
3130 </glossdef>
3131 </glossentry>
3132
3133 <glossentry id='var-DEFAULT_PREFERENCE'><glossterm>DEFAULT_PREFERENCE</glossterm>
3134 <info>
3135 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
3136 </info>
3137 <glossdef>
3138 <para role="glossdeffirst">
3139<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3140 Specifies a weak bias for recipe selection priority.
3141 </para>
3142
3143 <para>
3144 The most common usage of this is variable is to set
3145 it to "-1" within a recipe for a development version of a
3146 piece of software.
3147 Using the variable in this way causes the stable version
3148 of the recipe to build by default in the absence of
3149 <filename><link linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></filename>
3150 being used to build the development version.
3151 </para>
3152
3153 <note>
3154 The bias provided by <filename>DEFAULT_PREFERENCE</filename>
3155 is weak and is overridden by
3156 <filename><link linkend='var-BBFILE_PRIORITY'>BBFILE_PRIORITY</link></filename>
3157 if that variable is different between two layers
3158 that contain different versions of the same recipe.
3159 </note>
3160 </glossdef>
3161 </glossentry>
3162
3163 <glossentry id='var-DEFAULTTUNE'><glossterm>DEFAULTTUNE</glossterm>
3164 <info>
3165 DEFAULTTUNE[doc] = "The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system."
3166 </info>
3167 <glossdef>
3168 <para role="glossdeffirst">
3169<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3170 The default CPU and Application Binary Interface (ABI)
3171 tunings (i.e. the "tune") used by the OpenEmbedded build
3172 system.
3173 The <filename>DEFAULTTUNE</filename> helps define
3174 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
3175 </para>
3176
3177 <para>
3178 The default tune is either implicitly or explicitly set
3179 by the machine
3180 (<link linkend='var-MACHINE'><filename>MACHINE</filename></link>).
3181 However, you can override the setting using available tunes
3182 as defined with
3183 <link linkend='var-AVAILTUNES'><filename>AVAILTUNES</filename></link>.
3184 </para>
3185 </glossdef>
3186 </glossentry>
3187
3188 <glossentry id='var-DEPENDS'><glossterm>DEPENDS</glossterm>
3189 <info>
3190 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
3191 </info>
3192 <glossdef>
3193 <para role="glossdeffirst">
3194<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003195 Lists a recipe's build-time dependencies.
3196 These are dependencies on other recipes whose
3197 contents (e.g. headers and shared libraries) are needed
3198 by the recipe at build time.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003199 </para>
3200
3201 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003202 As an example, consider a recipe <filename>foo</filename>
3203 that contains the following assignment:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003204 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003205 DEPENDS = "bar"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003206 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003207 The practical effect of the previous assignment is that
3208 all files installed by bar will be available in the
3209 appropriate staging sysroot, given by the
3210 <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
3211 variables, by the time the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003212 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003213 task for <filename>foo</filename> runs.
3214 This mechanism is implemented by having
3215 <filename>do_configure</filename> depend on the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003216 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003217 task of each recipe listed in <filename>DEPENDS</filename>,
3218 through a
3219 <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
3220 declaration in the
3221 <link linkend='ref-classes-base'><filename>base</filename></link>
3222 class.
3223 <note>
3224 It seldom is necessary to reference, for example,
3225 <filename>STAGING_DIR_HOST</filename> explicitly.
3226 The standard classes and build-related variables are
3227 configured to automatically use the appropriate staging
3228 sysroots.
3229 </note>
3230 As another example, <filename>DEPENDS</filename> can also
3231 be used to add utilities that run on the build machine
3232 during the build.
3233 For example, a recipe that makes use of a code generator
3234 built by the recipe <filename>codegen</filename> might have
3235 the following:
3236 <literallayout class='monospaced'>
3237 DEPENDS = "codegen-native"
3238 </literallayout>
3239 For more information, see the
3240 <link linkend='ref-classes-native'><filename>native</filename></link>
3241 class and the
3242 <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
3243 variable.
3244 <note>
3245 <title>Notes</title>
3246 <itemizedlist>
3247 <listitem><para>
3248 <filename>DEPENDS</filename> is a list of
3249 recipe names.
3250 Or, to be more precise, it is a list of
3251 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
3252 names, which usually match recipe names.
3253 Putting a package name such as "foo-dev" in
3254 <filename>DEPENDS</filename> does not make
3255 sense.
3256 Use "foo" instead, as this will put files
3257 from all the packages that make up
3258 <filename>foo</filename>, which includes
3259 those from <filename>foo-dev</filename>, into
3260 the sysroot.
3261 </para></listitem>
3262 <listitem><para>
3263 One recipe having another recipe in
3264 <filename>DEPENDS</filename> does not by itself
3265 add any runtime dependencies between the
3266 packages produced by the two recipes.
3267 However, as explained in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003268 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
3269 section in the Yocto Project Overview and
3270 Concepts Manual, runtime dependencies will
3271 often be added automatically, meaning
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003272 <filename>DEPENDS</filename> alone is
3273 sufficient for most recipes.
3274 </para></listitem>
3275 <listitem><para>
3276 Counterintuitively,
3277 <filename>DEPENDS</filename> is often necessary
3278 even for recipes that install precompiled
3279 components.
3280 For example, if <filename>libfoo</filename>
3281 is a precompiled library that links against
3282 <filename>libbar</filename>, then
3283 linking against <filename>libfoo</filename>
3284 requires both <filename>libfoo</filename>
3285 and <filename>libbar</filename> to be available
3286 in the sysroot.
3287 Without a <filename>DEPENDS</filename> from the
3288 recipe that installs <filename>libfoo</filename>
3289 to the recipe that installs
3290 <filename>libbar</filename>, other recipes might
3291 fail to link against
3292 <filename>libfoo</filename>.
3293 </para></listitem>
3294 </itemizedlist>
3295 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003296 </para>
3297
3298 <para>
3299 For information on runtime dependencies, see the
3300 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
3301 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003302 You can also see the
3303 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
3304 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
3305 sections in the BitBake User Manual for additional
3306 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003307 </para>
3308 </glossdef>
3309 </glossentry>
3310
3311 <glossentry id='var-DEPLOY_DIR'><glossterm>DEPLOY_DIR</glossterm>
3312 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003313 DEPLOY_DIR[doc] = "Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs, and other output files that are ready to be used outside of the build system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003314 </info>
3315 <glossdef>
3316 <para role="glossdeffirst">
3317<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3318 Points to the general area that the OpenEmbedded build
Brad Bishop316dfdd2018-06-25 12:45:53 -04003319 system uses to place images, packages, SDKs, and other output
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003320 files that are ready to be used outside of the build system.
3321 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003322 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003323 as <filename>${TMPDIR}/deploy</filename>.
3324 </para>
3325
3326 <para>
3327 For more information on the structure of the Build
3328 Directory, see
3329 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3330 section.
3331 For more detail on the contents of the
3332 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003333 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>",
3334 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>",
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003335 and
Brad Bishop316dfdd2018-06-25 12:45:53 -04003336 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3337 sections all in the Yocto Project Overview and Concepts
3338 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003339 </para>
3340 </glossdef>
3341 </glossentry>
3342
3343 <glossentry id='var-DEPLOY_DIR_DEB'><glossterm>DEPLOY_DIR_DEB</glossterm>
3344 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003345 DEPLOY_DIR_DEB[doc] = "Points to a Debian-specific area that the OpenEmbedded build system uses to place images, packages, SDKs, and other output files that are ready to be used outside of the build system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003346 </info>
3347 <glossdef>
3348 <para role="glossdeffirst">
3349<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3350 Points to the area that the OpenEmbedded build system uses
3351 to place Debian packages that are ready to be used outside
3352 of the build system.
3353 This variable applies only when
3354 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3355 contains "package_deb".
3356 </para>
3357
3358 <para>
3359 The BitBake configuration file initially defines the
3360 <filename>DEPLOY_DIR_DEB</filename> variable as a
3361 sub-folder of
3362 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3363 <literallayout class='monospaced'>
3364 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
3365 </literallayout>
3366 </para>
3367
3368 <para>
3369 The
3370 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>
3371 class uses the
3372 <filename>DEPLOY_DIR_DEB</filename> variable to make sure
3373 the
3374 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_deb</filename></link>
3375 task writes Debian packages into the appropriate folder.
3376 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003377 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3378 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003379 </para>
3380 </glossdef>
3381 </glossentry>
3382
3383 <glossentry id='var-DEPLOY_DIR_IMAGE'><glossterm>DEPLOY_DIR_IMAGE</glossterm>
3384 <info>
3385 DEPLOY_DIR_IMAGE[doc] = "Points to the area that the OpenEmbedded build system uses to place images and other associated output files that are ready to be deployed onto the target machine."
3386 </info>
3387 <glossdef>
3388 <para role="glossdeffirst">
3389<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3390 Points to the area that the OpenEmbedded build system uses
3391 to place images and other associated output files that are
3392 ready to be deployed onto the target machine.
3393 The directory is machine-specific as it contains the
3394 <filename>${MACHINE}</filename> name.
3395 By default, this directory resides within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003396 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003397 as <filename>${DEPLOY_DIR}/images/${MACHINE}/</filename>.
3398 </para>
3399
3400 <para>
3401 For more information on the structure of the Build
3402 Directory, see
3403 "<link linkend='structure-build'>The Build Directory - <filename>build/</filename></link>"
3404 section.
3405 For more detail on the contents of the
3406 <filename>deploy</filename> directory, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003407 "<ulink url='&YOCTO_DOCS_OM_URL;#images-dev-environment'>Images</ulink>"
3408 and
3409 "<ulink url='&YOCTO_DOCS_OM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
3410 sections both in the Yocto Project Overview and Concepts
3411 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003412 </para>
3413 </glossdef>
3414 </glossentry>
3415
3416 <glossentry id='var-DEPLOY_DIR_IPK'><glossterm>DEPLOY_DIR_IPK</glossterm>
3417 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003418 DEPLOY_DIR_IPK[doc] = "Points to a IPK-specific area that the OpenEmbedded build system uses to place images, packages, SDKs, and other output files that are ready to be used outside of the build system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003419 </info>
3420 <glossdef>
3421 <para role="glossdeffirst">
3422<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3423 Points to the area that the OpenEmbedded build system uses
3424 to place IPK packages that are ready to be used outside of
3425 the build system.
3426 This variable applies only when
3427 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3428 contains "package_ipk".
3429 </para>
3430
3431 <para>
3432 The BitBake configuration file initially defines this
3433 variable as a sub-folder of
3434 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3435 <literallayout class='monospaced'>
3436 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
3437 </literallayout>
3438 </para>
3439
3440 <para>
3441 The
3442 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>
3443 class uses the
3444 <filename>DEPLOY_DIR_IPK</filename> variable to make sure
3445 the
3446 <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
3447 task writes IPK packages into the appropriate folder.
3448 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003449 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3450 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003451 </para>
3452 </glossdef>
3453 </glossentry>
3454
3455 <glossentry id='var-DEPLOY_DIR_RPM'><glossterm>DEPLOY_DIR_RPM</glossterm>
3456 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003457 DEPLOY_DIR_RPM[doc] = "Points to a RPM-specific area that the OpenEmbedded build system uses to place images, packages, SDKs, and other output files that are ready to be used outside of the build system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003458 </info>
3459 <glossdef>
3460 <para role="glossdeffirst">
3461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3462 Points to the area that the OpenEmbedded build system uses
3463 to place RPM packages that are ready to be used outside
3464 of the build system.
3465 This variable applies only when
3466 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3467 contains "package_rpm".
3468 </para>
3469
3470 <para>
3471 The BitBake configuration file initially defines this
3472 variable as a sub-folder of
3473 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3474 <literallayout class='monospaced'>
3475 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
3476 </literallayout>
3477 </para>
3478
3479 <para>
3480 The
3481 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>
3482 class uses the
3483 <filename>DEPLOY_DIR_RPM</filename> variable to make sure
3484 the
3485 <link linkend='ref-tasks-package_write_rpm'><filename>do_package_write_rpm</filename></link>
3486 task writes RPM packages into the appropriate folder.
3487 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003488 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3489 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003490 </para>
3491 </glossdef>
3492 </glossentry>
3493
3494 <glossentry id='var-DEPLOY_DIR_TAR'><glossterm>DEPLOY_DIR_TAR</glossterm>
3495 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04003496 DEPLOY_DIR_TAR[doc] = "Points to a tarball area that the OpenEmbedded build system uses to place images, packages, SDKs, and other output files that are ready to be used outside of the build system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003497 </info>
3498 <glossdef>
3499 <para role="glossdeffirst">
3500<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3501 Points to the area that the OpenEmbedded build system uses
3502 to place tarballs that are ready to be used outside of
3503 the build system.
3504 This variable applies only when
3505 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
3506 contains "package_tar".
3507 </para>
3508
3509 <para>
3510 The BitBake configuration file initially defines this
3511 variable as a sub-folder of
3512 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
3513 <literallayout class='monospaced'>
3514 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
3515 </literallayout>
3516 </para>
3517
3518 <para>
3519 The
3520 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
3521 class uses the
3522 <filename>DEPLOY_DIR_TAR</filename> variable to make sure
3523 the
3524 <link linkend='ref-tasks-package_write_tar'><filename>do_package_write_tar</filename></link>
3525 task writes TAR packages into the appropriate folder.
3526 For more information on how packaging works, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04003527 "<ulink url='&YOCTO_DOCS_OM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
3528 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003529 </para>
3530 </glossdef>
3531 </glossentry>
3532
3533 <glossentry id='var-DEPLOYDIR'><glossterm>DEPLOYDIR</glossterm>
3534 <info>
3535 DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
3536 </info>
3537 <glossdef>
3538 <para role="glossdeffirst">
3539<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3540 When inheriting the
3541 <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
3542 class, the <filename>DEPLOYDIR</filename> points to a
3543 temporary work area for deployed files that is set in the
3544 <filename>deploy</filename> class as follows:
3545 <literallayout class='monospaced'>
3546 DEPLOYDIR = "${WORKDIR}/deploy-${<link linkend='var-PN'><filename>PN</filename></link>}"
3547 </literallayout>
3548 </para>
3549
3550 <para>
3551 Recipes inheriting the <filename>deploy</filename> class
3552 should copy files to be deployed into
3553 <filename>DEPLOYDIR</filename>, and the class will take
3554 care of copying them into
3555 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
3556 afterwards.
3557 </para>
3558 </glossdef>
3559 </glossentry>
3560
3561 <glossentry id='var-DESCRIPTION'><glossterm>DESCRIPTION</glossterm>
3562 <info>
3563 DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
3564 </info>
3565 <glossdef>
3566 <para role="glossdeffirst">
3567<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3568 The package description used by package managers.
3569 If not set, <filename>DESCRIPTION</filename> takes
3570 the value of the
3571 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>
3572 variable.
3573 </para>
3574 </glossdef>
3575 </glossentry>
3576
3577 <glossentry id='var-DISK_SIGNATURE'><glossterm>DISK_SIGNATURE</glossterm>
3578 <info>
3579 DISK_SIGNATURE[doc] = "A 32-bit MBR disk signature used by directdisk images."
3580 </info>
3581 <glossdef>
3582 <para role="glossdeffirst">
3583<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3584 A 32-bit MBR disk signature used by
3585 <filename>directdisk</filename> images.
3586 </para>
3587
3588 <para>
3589 By default, the signature is set to an automatically
3590 generated random value that allows the OpenEmbedded
3591 build system to create a boot loader.
3592 You can override the signature in the image recipe
3593 by setting <filename>DISK_SIGNATURE</filename> to an
3594 8-digit hex string.
3595 You might want to override
3596 <filename>DISK_SIGNATURE</filename> if you want the disk
3597 signature to remain constant between image builds.
3598 </para>
3599
3600 <para>
3601 When using Linux 3.8 or later, you can use
3602 <filename>DISK_SIGNATURE</filename> to specify the root
3603 by UUID to allow the kernel to locate the root device
3604 even if the device name changes due to differences in
3605 hardware configuration.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003606 By default, <filename>ROOT_VM</filename> is set
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003607 as follows:
3608 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003609 ROOT_VM ?= "root=/dev/sda2"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003610 </literallayout>
3611 However, you can change this to locate the root device
3612 using the disk signature instead:
3613 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003614 ROOT_VM = "root=PARTUUID=${DISK_SIGNATURE}-02"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003615 </literallayout>
3616 </para>
3617
3618 <para>
3619 As previously mentioned, it is possible to set the
3620 <filename>DISK_SIGNATURE</filename> variable in your
3621 <filename>local.conf</filename> file to a fixed
3622 value if you do not want <filename>syslinux.cfg</filename>
3623 changing for each build.
3624 You might find this useful when you want to upgrade the
3625 root filesystem on a device without having to recreate or
3626 modify the master boot record.
3627 </para>
3628 </glossdef>
3629 </glossentry>
3630
3631 <glossentry id='var-DISTRO'><glossterm>DISTRO</glossterm>
3632 <info>
3633 DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
3634 </info>
3635 <glossdef>
3636 <para role="glossdeffirst">
3637<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3638 The short name of the distribution.
3639 This variable corresponds to a distribution
3640 configuration file whose root name is the same as the
3641 variable's argument and whose filename extension is
3642 <filename>.conf</filename>.
3643 For example, the distribution configuration file for the
3644 Poky distribution is named <filename>poky.conf</filename>
3645 and resides in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05003646 <filename>meta-poky/conf/distro</filename> directory of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003647 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003648 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003649 </para>
3650
3651 <para>
3652 Within that <filename>poky.conf</filename> file, the
3653 <filename>DISTRO</filename> variable is set as follows:
3654 <literallayout class='monospaced'>
3655 DISTRO = "poky"
3656 </literallayout>
3657 </para>
3658
3659 <para>
3660 Distribution configuration files are located in a
3661 <filename>conf/distro</filename> directory within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05003662 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003663 that contains the distribution configuration.
3664 The value for <filename>DISTRO</filename> must not contain
3665 spaces, and is typically all lower-case.
3666 <note>
3667 If the <filename>DISTRO</filename> variable is blank, a set
3668 of default configurations are used, which are specified
3669 within
3670 <filename>meta/conf/distro/defaultsetup.conf</filename>
3671 also in the Source Directory.
3672 </note>
3673 </para>
3674 </glossdef>
3675 </glossentry>
3676
3677 <glossentry id='var-DISTRO_CODENAME'><glossterm>DISTRO_CODENAME</glossterm>
3678 <info>
3679 DISTRO_CODENAME[doc] = "Specifies a codename for the distribution being built."
3680 </info>
3681 <glossdef>
3682 <para role="glossdeffirst">
3683<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3684 Specifies a codename for the distribution being built.
3685 </para>
3686 </glossdef>
3687 </glossentry>
3688
3689 <glossentry id='var-DISTRO_EXTRA_RDEPENDS'><glossterm>DISTRO_EXTRA_RDEPENDS</glossterm>
3690 <info>
3691 DISTRO_EXTRA_RDEPENDS[doc] = "Specifies a list of distro-specific packages to add to all images. The variable only applies to the images that include packagegroup-base."
3692 </info>
3693 <glossdef>
3694 <para role="glossdeffirst">
3695<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3696 Specifies a list of distro-specific packages to add to all images.
3697 This variable takes affect through
3698 <filename>packagegroup-base</filename> so the
3699 variable only really applies to the more full-featured
3700 images that include <filename>packagegroup-base</filename>.
3701 You can use this variable to keep distro policy out of
3702 generic images.
3703 As with all other distro variables, you set this variable
3704 in the distro <filename>.conf</filename> file.
3705 </para>
3706 </glossdef>
3707 </glossentry>
3708
3709 <glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
3710 <info>
3711 DISTRO_EXTRA_RRECOMMENDS[doc] = "Specifies a list of distro-specific packages to add to all images if the packages exist. The list of packages are automatically installed but you can remove them."
3712 </info>
3713 <glossdef>
3714 <para role="glossdeffirst">
3715<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3716 Specifies a list of distro-specific packages to add to all images
3717 if the packages exist.
3718 The packages might not exist or be empty (e.g. kernel modules).
3719 The list of packages are automatically installed but you can
3720 remove them.
3721 </para>
3722 </glossdef>
3723 </glossentry>
3724
3725 <glossentry id='var-DISTRO_FEATURES'><glossterm>DISTRO_FEATURES</glossterm>
3726 <info>
3727 DISTRO_FEATURES[doc] = "The features enabled for the distribution."
3728 </info>
3729 <glossdef>
3730 <para role="glossdeffirst">
3731<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3732 The software support you want in your distribution for
3733 various features.
3734 You define your distribution features in the distribution
3735 configuration file.
3736 </para>
3737
3738 <para>
3739 In most cases, the presence or absence of a feature in
3740 <filename>DISTRO_FEATURES</filename> is translated to the
3741 appropriate option supplied to the configure script
3742 during the
3743 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
3744 task for recipes that optionally support the feature.
3745 For example, specifying "x11" in
3746 <filename>DISTRO_FEATURES</filename>, causes
3747 every piece of software built for the target that can
3748 optionally support X11 to have its X11 support enabled.
3749 </para>
3750
3751 <para>
3752 Two more examples are Bluetooth and NFS support.
3753 For a more complete list of features that ships with the
3754 Yocto Project and that you can provide with this variable,
3755 see the
3756 "<link linkend='ref-features-distro'>Distro Features</link>"
3757 section.
3758 </para>
3759 </glossdef>
3760 </glossentry>
3761
3762 <glossentry id='var-DISTRO_FEATURES_BACKFILL'><glossterm>DISTRO_FEATURES_BACKFILL</glossterm>
3763 <info>
3764 DISTRO_FEATURES_BACKFILL[doc] = "Features to be added to DISTRO_FEATURES if not also present in DISTRO_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and it is not intended to be user-configurable."
3765 </info>
3766 <glossdef>
3767 <para role="glossdeffirst">
3768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3769 Features to be added to
3770 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
3771 if not also present in
3772 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'>DISTRO_FEATURES_BACKFILL_CONSIDERED</link></filename>.
3773 </para>
3774
3775 <para>
3776 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
3777 It is not intended to be user-configurable.
3778 It is best to just reference the variable to see which distro features are
3779 being backfilled for all distro configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04003780 See the <link linkend='ref-features-backfill'>Feature Backfilling</link> section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003781 more information.
3782 </para>
3783 </glossdef>
3784 </glossentry>
3785
3786 <glossentry id='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><glossterm>DISTRO_FEATURES_BACKFILL_CONSIDERED</glossterm>
3787 <info>
3788 DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
3789 </info>
3790 <glossdef>
3791 <para role="glossdeffirst">
3792<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3793 Features from
3794 <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
3795 that should not be backfilled (i.e. added to
3796 <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>)
3797 during the build.
3798 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
3799 more information.
3800 </para>
3801 </glossdef>
3802 </glossentry>
3803
3804 <glossentry id='var-DISTRO_FEATURES_DEFAULT'><glossterm>DISTRO_FEATURES_DEFAULT</glossterm>
3805 <info>
3806 DISTRO_FEATURES_DEFAULT[doc] = "Provides the default list of distro features with the exception of any libc-specific features."
3807 </info>
3808 <glossdef>
3809 <para role="glossdeffirst">
3810<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3811 A convenience variable that gives you the default
3812 list of distro features with the exception of any
3813 features specific to the C library
3814 (<filename>libc</filename>).
3815 </para>
3816
3817 <para>
3818 When creating a custom distribution, you might find it
3819 useful to be able to reuse the default
3820 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3821 options without the need to write out the full set.
3822 Here is an example that uses
3823 <filename>DISTRO_FEATURES_DEFAULT</filename> from a
3824 custom distro configuration file:
3825 <literallayout class='monospaced'>
3826 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} myfeature"
3827 </literallayout>
3828 </para>
3829 </glossdef>
3830 </glossentry>
3831
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003832 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVE'><glossterm>DISTRO_FEATURES_FILTER_NATIVE</glossterm>
3833 <info>
3834 DISTRO_FEATURES_FILTER_NATIVE[doc] = "Specifies a list of features that if present in the target DISTRO_FEATURES value should be included in DISTRO_FEATURES when building native recipes."
3835 </info>
3836 <glossdef>
3837 <para role="glossdeffirst">
3838<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3839 Specifies a list of features that if present in
3840 the target
3841 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3842 value should be included in
3843 <filename>DISTRO_FEATURES</filename> when building native
3844 recipes.
3845 This variable is used in addition to the features
3846 filtered using the
3847 <link linkend='var-DISTRO_FEATURES_NATIVE'><filename>DISTRO_FEATURES_NATIVE</filename></link>
3848 variable.
3849 </para>
3850 </glossdef>
3851 </glossentry>
3852
3853 <glossentry id='var-DISTRO_FEATURES_FILTER_NATIVESDK'><glossterm>DISTRO_FEATURES_FILTER_NATIVESDK</glossterm>
3854 <info>
3855 DISTRO_FEATURES_FILTER_NATIVESDK[doc] = "Specifies a list of features that if present in the target DISTRO_FEATURES value should be included in DISTRO_FEATURES when building nativesdk recipes."
3856 </info>
3857 <glossdef>
3858 <para role="glossdeffirst">
3859<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3860 Specifies a list of features that if present in the target
3861 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3862 value should be included in
3863 <filename>DISTRO_FEATURES</filename> when building
3864 nativesdk recipes.
3865 This variable is used in addition to the features
3866 filtered using the
3867 <link linkend='var-DISTRO_FEATURES_NATIVESDK'><filename>DISTRO_FEATURES_NATIVESDK</filename></link>
3868 variable.
3869 </para>
3870 </glossdef>
3871 </glossentry>
3872
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003873 <glossentry id='var-DISTRO_FEATURES_LIBC'><glossterm>DISTRO_FEATURES_LIBC</glossterm>
3874 <info>
3875 DISTRO_FEATURES_LIBC[doc] = "Specifies the list of distro features that are specific to the C library (libc)."
3876 </info>
3877 <glossdef>
3878 <para role="glossdeffirst">
3879<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3880 A convenience variable that specifies the list of distro
3881 features that are specific to the C library
3882 (<filename>libc</filename>).
3883 Typically, these features are prefixed with "libc-" and
3884 control which features are enabled at during the build
3885 within the C library itself.
3886 </para>
3887 </glossdef>
3888 </glossentry>
3889
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003890 <glossentry id='var-DISTRO_FEATURES_NATIVE'><glossterm>DISTRO_FEATURES_NATIVE</glossterm>
3891 <info>
3892 DISTRO_FEATURES_NATIVE[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes."
3893 </info>
3894 <glossdef>
3895 <para role="glossdeffirst">
3896<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3897 Specifies a list of features that should be included in
3898 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3899 when building native recipes.
3900 This variable is used in addition to the features
3901 filtered using the
3902 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVE'><filename>DISTRO_FEATURES_FILTER_NATIVE</filename></link>
3903 variable.
3904 </para>
3905 </glossdef>
3906 </glossentry>
3907
3908 <glossentry id='var-DISTRO_FEATURES_NATIVESDK'><glossterm>DISTRO_FEATURES_NATIVESDK</glossterm>
3909 <info>
3910 DISTRO_FEATURES_NATIVESDK[doc] = "Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes."
3911 </info>
3912 <glossdef>
3913 <para role="glossdeffirst">
3914<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3915 Specifies a list of features that should be included in
3916 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
3917 when building nativesdk recipes.
3918 This variable is used in addition to the features
3919 filtered using the
3920 <link linkend='var-DISTRO_FEATURES_FILTER_NATIVESDK'><filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename></link>
3921 variable.
3922 </para>
3923 </glossdef>
3924 </glossentry>
3925
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003926 <glossentry id='var-DISTRO_NAME'><glossterm>DISTRO_NAME</glossterm>
3927 <info>
3928 DISTRO_NAME[doc] = "The long name of the distribution."
3929 </info>
3930 <glossdef>
3931 <para role="glossdeffirst">
3932<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3933 The long name of the distribution.
3934 </para>
3935 </glossdef>
3936 </glossentry>
3937
3938 <glossentry id='var-DISTRO_VERSION'><glossterm>DISTRO_VERSION</glossterm>
3939 <info>
3940 DISTRO_VERSION[doc] = "The version of the distribution."
3941 </info>
3942 <glossdef>
3943 <para role="glossdeffirst">
3944<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3945 The version of the distribution.
3946 </para>
3947 </glossdef>
3948 </glossentry>
3949
3950 <glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
3951 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003952 DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003953 </info>
3954 <glossdef>
3955 <para role="glossdeffirst">
3956<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003957 A colon-separated list of overrides specific to the
3958 current distribution.
3959 By default, this list includes the value of
3960 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
3961 </para>
3962
3963 <para>
3964 You can extend <filename>DISTROOVERRIDES</filename>
3965 to add extra overrides that should apply to
3966 the distribution.
3967 </para>
3968
3969 <para>
3970 The underlying mechanism behind
3971 <filename>DISTROOVERRIDES</filename> is simply that it
3972 is included in the default value of
3973 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003974 </para>
3975 </glossdef>
3976 </glossentry>
3977
3978 <glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
3979 <info>
3980 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."
3981 </info>
3982 <glossdef>
3983 <para role="glossdeffirst">
3984<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
3985 The central download directory used by the build process to
3986 store downloads.
3987 By default, <filename>DL_DIR</filename> gets files
3988 suitable for mirroring for everything except Git
3989 repositories.
3990 If you want tarballs of Git repositories, use the
3991 <link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
3992 variable.
3993 </para>
3994
3995 <para>
3996 You can set this directory by defining the
3997 <filename>DL_DIR</filename> variable in the
3998 <filename>conf/local.conf</filename> file.
3999 This directory is self-maintaining and you should not have
4000 to touch it.
4001 By default, the directory is <filename>downloads</filename>
4002 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004003 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004004 <literallayout class='monospaced'>
4005 #DL_DIR ?= "${TOPDIR}/downloads"
4006 </literallayout>
4007 To specify a different download directory, simply remove
4008 the comment from the line and provide your directory.
4009 </para>
4010
4011 <para>
4012 During a first build, the system downloads many different
4013 source code tarballs from various upstream projects.
4014 Downloading can take a while, particularly if your network
4015 connection is slow.
4016 Tarballs are all stored in the directory defined by
4017 <filename>DL_DIR</filename> and the build system looks there
4018 first to find source tarballs.
4019 <note>
4020 When wiping and rebuilding, you can preserve this
4021 directory to speed up this part of subsequent
4022 builds.
4023 </note>
4024 </para>
4025
4026 <para>
4027 You can safely share this directory between multiple builds
4028 on the same development machine.
4029 For additional information on how the build process gets
4030 source files when working behind a firewall or proxy server,
4031 see this specific question in the
4032 "<link linkend='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</link>"
4033 chapter.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004034 You can also refer to the
4035 "<ulink url='&YOCTO_WIKI_URL;/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
4036 Wiki page.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004037 </para>
4038 </glossdef>
4039 </glossentry>
4040
4041 <glossentry id='var-DOC_COMPRESS'><glossterm>DOC_COMPRESS</glossterm>
4042 <info>
4043 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."
4044 </info>
4045 <glossdef>
4046 <para role="glossdeffirst">
4047<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4048 When inheriting the
4049 <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
4050 class, this variable sets the compression policy used when
4051 the OpenEmbedded build system compresses man pages and info
4052 pages.
4053 By default, the compression method used is gz (gzip).
4054 Other policies available are xz and bz2.
4055 </para>
4056
4057 <para>
4058 For information on policies and on how to use this
4059 variable, see the comments in the
4060 <filename>meta/classes/compress_doc.bbclass</filename> file.
4061 </para>
4062 </glossdef>
4063 </glossentry>
4064
4065 </glossdiv>
4066
4067 <glossdiv id='var-glossary-e'><title>E</title>
4068
4069 <glossentry id='var-EFI_PROVIDER'><glossterm>EFI_PROVIDER</glossterm>
4070 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004071 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 -05004072 </info>
4073 <glossdef>
4074 <para role="glossdeffirst">
4075<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4076 When building bootable images (i.e. where
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004077 <filename>hddimg</filename>, <filename>iso</filename>,
4078 or <filename>wic.vmdk</filename> is in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004079 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
4080 the <filename>EFI_PROVIDER</filename> variable specifies
4081 the EFI bootloader to use.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004082 The default is "grub-efi", but "systemd-boot" can be used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004083 instead.
4084 </para>
4085
4086 <para>
4087 See the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004088 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05004089 and
4090 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
4091 classes for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004092 </para>
4093 </glossdef>
4094 </glossentry>
4095
4096 <glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
4097 <info>
4098 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."
4099 </info>
4100 <glossdef>
4101 <para role="glossdeffirst">
4102<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4103 Variable that controls which locales for
4104 <filename>glibc</filename> are generated during the
4105 build (useful if the target device has 64Mbytes
4106 of RAM or less).
4107 </para>
4108 </glossdef>
4109 </glossentry>
4110
4111 <glossentry id='var-ERR_REPORT_DIR'><glossterm>ERR_REPORT_DIR</glossterm>
4112 <info>
4113 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."
4114 </info>
4115 <glossdef>
4116 <para role="glossdeffirst">
4117<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4118 When used with the
4119 <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
4120 class, specifies the path used for storing the debug files
4121 created by the
4122 <ulink url='&YOCTO_DOCS_DEV_URL;#using-the-error-reporting-tool'>error reporting tool</ulink>,
4123 which allows you to submit build errors you encounter to a
4124 central database.
4125 By default, the value of this variable is
4126 <filename>${</filename><link linkend='var-LOG_DIR'><filename>LOG_DIR</filename></link><filename>}/error-report</filename>.
4127 </para>
4128
4129 <para>
4130 You can set <filename>ERR_REPORT_DIR</filename> to the path
4131 you want the error reporting tool to store the debug files
4132 as follows in your <filename>local.conf</filename> file:
4133 <literallayout class='monospaced'>
4134 ERR_REPORT_DIR = "<replaceable>path</replaceable>"
4135 </literallayout>
4136 </para>
4137 </glossdef>
4138 </glossentry>
4139
4140 <glossentry id='var-ERROR_QA'><glossterm>ERROR_QA</glossterm>
4141 <info>
4142 ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
4143 </info>
4144 <glossdef>
4145 <para role="glossdeffirst">
4146<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4147 Specifies the quality assurance checks whose failures are
4148 reported as errors by the OpenEmbedded build system.
4149 You set this variable in your distribution configuration
4150 file.
4151 For a list of the checks you can control with this variable,
4152 see the
4153 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
4154 section.
4155 </para>
4156 </glossdef>
4157 </glossentry>
4158
Patrick Williamsf1e5d692016-03-30 15:21:19 -05004159 <glossentry id='var-EXCLUDE_FROM_SHLIBS'><glossterm>EXCLUDE_FROM_SHLIBS</glossterm>
4160 <info>
4161 EXCLUDE_FROM_SHLIBS[doc] = "Causes the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries."
4162 </info>
4163 <glossdef>
4164 <para role="glossdeffirst">
4165<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4166 Triggers the OpenEmbedded build system's shared libraries
4167 resolver to exclude an entire package when scanning for
4168 shared libraries.
4169 <note>
4170 The shared libraries resolver's functionality results
4171 in part from the internal function
4172 <filename>package_do_shlibs</filename>, which is part of
4173 the
4174 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
4175 task.
4176 You should be aware that the shared libraries resolver
4177 might implicitly define some dependencies between
4178 packages.
4179 </note>
4180 The <filename>EXCLUDE_FROM_SHLIBS</filename> variable is
4181 similar to the
4182 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
4183 variable, which excludes a package's particular libraries
4184 only and not the whole package.
4185 </para>
4186
4187 <para>
4188 Use the
4189 <filename>EXCLUDE_FROM_SHLIBS</filename> variable by
4190 setting it to "1" for a particular package:
4191 <literallayout class='monospaced'>
4192 EXCLUDE_FROM_SHLIBS = "1"
4193 </literallayout>
4194 </para>
4195 </glossdef>
4196 </glossentry>
4197
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004198 <glossentry id='var-EXCLUDE_FROM_WORLD'><glossterm>EXCLUDE_FROM_WORLD</glossterm>
4199 <info>
4200 EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
4201 </info>
4202 <glossdef>
4203 <para role="glossdeffirst">
4204<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4205 Directs BitBake to exclude a recipe from world builds (i.e.
4206 <filename>bitbake world</filename>).
4207 During world builds, BitBake locates, parses and builds all
4208 recipes found in every layer exposed in the
4209 <filename>bblayers.conf</filename> configuration file.
4210 </para>
4211
4212 <para>
4213 To exclude a recipe from a world build using this variable,
4214 set the variable to "1" in the recipe.
4215 </para>
4216
4217 <note>
4218 Recipes added to <filename>EXCLUDE_FROM_WORLD</filename>
4219 may still be built during a world build in order to satisfy
4220 dependencies of other recipes.
4221 Adding a recipe to <filename>EXCLUDE_FROM_WORLD</filename>
4222 only ensures that the recipe is not explicitly added
4223 to the list of build targets in a world build.
4224 </note>
4225 </glossdef>
4226 </glossentry>
4227
4228 <glossentry id='var-EXTENDPE'><glossterm>EXTENDPE</glossterm>
4229 <info>
4230 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."
4231 </info>
4232 <glossdef>
4233 <para role="glossdeffirst">
4234<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4235 Used with file and pathnames to create a prefix for a recipe's
4236 version based on the recipe's
4237 <link linkend='var-PE'><filename>PE</filename></link> value.
4238 If <filename>PE</filename> is set and greater than zero for a recipe,
4239 <filename>EXTENDPE</filename> becomes that value (e.g if
4240 <filename>PE</filename> is equal to "1" then <filename>EXTENDPE</filename>
4241 becomes "1_").
4242 If a recipe's <filename>PE</filename> is not set (the default) or is equal to
4243 zero, <filename>EXTENDPE</filename> becomes "".</para>
4244 <para>See the <link linkend='var-STAMP'><filename>STAMP</filename></link>
4245 variable for an example.
4246 </para>
4247 </glossdef>
4248 </glossentry>
4249
4250 <glossentry id='var-EXTENDPKGV'><glossterm>EXTENDPKGV</glossterm>
4251 <info>
4252 EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
4253 </info>
4254 <glossdef>
4255 <para role="glossdeffirst">
4256<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4257 The full package version specification as it appears on the
4258 final packages produced by a recipe.
4259 The variable's value is normally used to fix a runtime
4260 dependency to the exact same version of another package
4261 in the same recipe:
4262 <literallayout class='monospaced'>
4263 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
4264 </literallayout>
4265 </para>
4266
4267 <para>
4268 The dependency relationships are intended to force the
4269 package manager to upgrade these types of packages in
4270 lock-step.
4271 </para>
4272 </glossdef>
4273 </glossentry>
4274
4275 <glossentry id='var-EXTERNAL_KERNEL_TOOLS'><glossterm>EXTERNAL_KERNEL_TOOLS</glossterm>
4276 <info>
4277 EXTERNAL_KERNEL_TOOLS[doc] = "Indicates kernel tools are external to the source tree."
4278 </info>
4279 <glossdef>
4280 <para role="glossdeffirst">
4281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4282 When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4283 variable indicates that these tools are not in the
4284 source tree.
4285 </para>
4286
4287 <para>
4288 When kernel tools are available in the tree, they are
4289 preferred over any externally installed tools.
4290 Setting the <filename>EXTERNAL_KERNEL_TOOLS</filename>
4291 variable tells the OpenEmbedded build system to prefer
4292 the installed external tools.
4293 See the
4294 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
4295 class in <filename>meta/classes</filename> to see how
4296 the variable is used.
4297 </para>
4298 </glossdef>
4299 </glossentry>
4300
4301 <glossentry id='var-EXTERNALSRC'><glossterm>EXTERNALSRC</glossterm>
4302 <info>
4303 EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
4304 </info>
4305 <glossdef>
4306 <para role="glossdeffirst">
4307<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4308 When inheriting the
4309 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4310 class, this variable points to the source tree, which is
4311 outside of the OpenEmbedded build system.
4312 When set, this variable sets the
4313 <link linkend='var-S'><filename>S</filename></link>
4314 variable, which is what the OpenEmbedded build system uses
4315 to locate unpacked recipe source code.
4316 </para>
4317
4318 <para>
4319 For more information on
4320 <filename>externalsrc.bbclass</filename>, see the
4321 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4322 section.
4323 You can also find information on how to use this variable
4324 in the
4325 "<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 -05004326 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004327 </para>
4328 </glossdef>
4329 </glossentry>
4330
4331 <glossentry id='var-EXTERNALSRC_BUILD'><glossterm>EXTERNALSRC_BUILD</glossterm>
4332 <info>
4333 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."
4334 </info>
4335 <glossdef>
4336 <para role="glossdeffirst">
4337<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4338 When inheriting the
4339 <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
4340 class, this variable points to the directory in which the
4341 recipe's source code is built, which is outside of the
4342 OpenEmbedded build system.
4343 When set, this variable sets the
4344 <link linkend='var-B'><filename>B</filename></link>
4345 variable, which is what the OpenEmbedded build system uses
4346 to locate the Build Directory.
4347 </para>
4348
4349 <para>
4350 For more information on
4351 <filename>externalsrc.bbclass</filename>, see the
4352 "<link linkend='ref-classes-externalsrc'><filename>externalsrc.bbclass</filename></link>"
4353 section.
4354 You can also find information on how to use this variable
4355 in the
4356 "<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 -05004357 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004358 </para>
4359 </glossdef>
4360 </glossentry>
4361
4362 <glossentry id='var-EXTRA_AUTORECONF'><glossterm>EXTRA_AUTORECONF</glossterm>
4363 <info>
4364 EXTRA_AUTORECONF[doc] = "Extra options passed to the autoreconf command, which is executed during do_configure."
4365 </info>
4366 <glossdef>
4367 <para role="glossdeffirst">
4368<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4369 For recipes inheriting the
4370 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
4371 class, you can use <filename>EXTRA_AUTORECONF</filename> to
4372 specify extra options to pass to the
4373 <filename>autoreconf</filename> command that is
4374 executed during the
4375 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
4376 task.
4377 </para>
4378
4379 <para>
4380 The default value is "--exclude=autopoint".
4381 </para>
4382 </glossdef>
4383 </glossentry>
4384
4385 <glossentry id='var-EXTRA_IMAGE_FEATURES'><glossterm>EXTRA_IMAGE_FEATURES</glossterm>
4386 <info>
4387 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."
4388 </info>
4389 <glossdef>
4390 <para role="glossdeffirst">
4391<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4392 A list of additional features to include in an image.
4393 When listing more than one feature, separate them with
4394 a space.
4395 </para>
4396
4397 <para>
4398 Typically, you configure this variable in your
4399 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004400 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004401 Although you can use this variable from within a recipe,
4402 best practices dictate that you do not.
4403 <note>
4404 To enable primary features from within the image
4405 recipe, use the
4406 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
4407 variable.
4408 </note>
4409 </para>
4410
4411 <para>
4412 Here are some examples of features you can add:
4413 <literallayout class='monospaced'>
4414"dbg-pkgs" - Adds -dbg packages for all installed packages
4415 including symbol information for debugging and
4416 profiling.
4417
4418"debug-tweaks" - Makes an image suitable for debugging.
4419 For example, allows root logins without
4420 passwords and enables post-installation
4421 logging. See the 'allow-empty-password'
4422 and 'post-install-logging' features in
4423 the "<link linkend='ref-features-image'>Image Features</link>" section for
4424 more information.
4425
4426"dev-pkgs" - Adds -dev packages for all installed packages.
4427 This is useful if you want to develop against
4428 the libraries in the image.
4429
4430"read-only-rootfs" - Creates an image whose root
4431 filesystem is read-only. See the
4432 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
4433 section in the Yocto Project
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004434 Development Tasks Manual for
4435 more information
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004436
4437"tools-debug" - Adds debugging tools such as gdb and
4438 strace.
4439
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004440"tools-sdk" - Adds development tools such as gcc, make,
4441 pkgconfig and so forth.
4442
4443"tools-testapps" - Adds useful testing tools such as
4444 ts_print, aplay, arecord and so
4445 forth.
4446
4447 </literallayout>
4448 </para>
4449
4450 <para>
4451 For a complete list of image features that ships with the
4452 Yocto Project, see the
4453 "<link linkend="ref-features-image">Image Features</link>"
4454 section.
4455 </para>
4456
4457 <para>
4458 For an example that shows how to customize your image by
4459 using this variable, see the
4460 "<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 -05004461 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004462 </para>
4463 </glossdef>
4464 </glossentry>
4465
4466 <glossentry id='var-EXTRA_IMAGECMD'><glossterm>EXTRA_IMAGECMD</glossterm>
4467 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04004468 EXTRA_IMAGECMD[doc] = "Specifies additional options for the image creation command that has been specified in IMAGE_CMD. When setting this variable, you should use an override for the associated image type."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004469 </info>
4470 <glossdef>
4471 <para role="glossdeffirst">
4472<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4473 Specifies additional options for the image
4474 creation command that has been specified in
4475 <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04004476 When setting this variable, use an override for the
4477 associated image type.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004478 Here is an example:
4479 <literallayout class='monospaced'>
4480 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
4481 </literallayout>
4482 </para>
4483 </glossdef>
4484 </glossentry>
4485
4486 <glossentry id='var-EXTRA_IMAGEDEPENDS'><glossterm>EXTRA_IMAGEDEPENDS</glossterm>
4487 <info>
4488 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."
4489 </info>
4490 <glossdef>
4491 <para role="glossdeffirst">
4492<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4493 A list of recipes to build that do not provide packages
4494 for installing into the root filesystem.
4495 </para>
4496
4497 <para>
4498 Sometimes a recipe is required to build the final image but is not
4499 needed in the root filesystem.
4500 You can use the <filename>EXTRA_IMAGEDEPENDS</filename> variable to
4501 list these recipes and thus specify the dependencies.
4502 A typical example is a required bootloader in a machine configuration.
4503 </para>
4504
4505 <note>
4506 To add packages to the root filesystem, see the various
4507 <filename>*<link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
4508 and <filename>*<link linkend='var-RRECOMMENDS'>RRECOMMENDS</link></filename>
4509 variables.
4510 </note>
4511 </glossdef>
4512 </glossentry>
4513
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004514 <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
4515 <info>
4516 EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
4517 </info>
4518 <glossdef>
4519 <para role="glossdeffirst">
4520<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4521 A list of subdirectories of
4522 <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
4523 added to the beginning of the environment variable
4524 <filename>PATH</filename>.
4525 As an example, the following prepends
4526 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
4527 to <filename>PATH</filename>:
4528 <literallayout class='monospaced'>
4529 EXTRANATIVEPATH = "foo bar"
4530 </literallayout>
4531 </para>
4532 </glossdef>
4533 </glossentry>
4534
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004535 <glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
4536 <info>
4537 EXTRA_OECMAKE[doc] = "Additional cmake options."
4538 </info>
4539 <glossdef>
4540 <para role="glossdeffirst">
4541<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4542 Additional <filename>cmake</filename> options.
4543 </para>
4544 </glossdef>
4545 </glossentry>
4546
4547 <glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
4548 <info>
4549 EXTRA_OECONF[doc] = "Additional configure script options."
4550 </info>
4551 <glossdef>
4552 <para role="glossdeffirst">
4553<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4554 Additional <filename>configure</filename> script options.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004555 See
4556 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
4557 for additional information on passing configure script
4558 options.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004559 </para>
4560 </glossdef>
4561 </glossentry>
4562
4563 <glossentry id='var-EXTRA_OEMAKE'><glossterm>EXTRA_OEMAKE</glossterm>
4564 <info>
4565 EXTRA_OEMAKE[doc] = "Additional GNU make options."
4566 </info>
4567 <glossdef>
4568 <para role="glossdeffirst">
4569<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4570 Additional GNU <filename>make</filename> options.
4571 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004572
4573 <para>
4574 Because the <filename>EXTRA_OEMAKE</filename> defaults to
4575 "", you need to set the variable to specify any required
4576 GNU options.
4577 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004578
4579 <para>
4580 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
4581 and
4582 <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
4583 also make use of
4584 <filename>EXTRA_OEMAKE</filename> to pass the required
4585 flags.
4586 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004587 </glossdef>
4588 </glossentry>
4589
4590 <glossentry id='var-EXTRA_OESCONS'><glossterm>EXTRA_OESCONS</glossterm>
4591 <info>
4592 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."
4593 </info>
4594 <glossdef>
4595 <para role="glossdeffirst">
4596<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4597 When inheriting the
4598 <link linkend='ref-classes-scons'><filename>scons</filename></link>
4599 class, this variable specifies additional configuration
4600 options you want to pass to the
4601 <filename>scons</filename> command line.
4602 </para>
4603 </glossdef>
4604 </glossentry>
4605
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004606 <glossentry id='var-EXTRA_USERS_PARAMS'><glossterm>EXTRA_USERS_PARAMS</glossterm>
4607 <info>
4608 EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
4609 </info>
4610 <glossdef>
4611 <para role="glossdeffirst">
4612<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4613 When inheriting the
4614 <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
4615 class, this variable provides image level user and group
4616 operations.
4617 This is a more global method of providing user and group
4618 configuration as compared to using the
4619 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
4620 class, which ties user and group configurations to a
4621 specific recipe.
4622 </para>
4623
4624 <para>
4625 The set list of commands you can configure using the
4626 <filename>EXTRA_USERS_PARAMS</filename> is shown in the
4627 <filename>extrausers</filename> class.
4628 These commands map to the normal Unix commands of the same
4629 names:
4630 <literallayout class='monospaced'>
4631 # EXTRA_USERS_PARAMS = "\
4632 # useradd -p '' tester; \
4633 # groupadd developers; \
4634 # userdel nobody; \
4635 # groupdel -g video; \
4636 # groupmod -g 1020 developers; \
4637 # usermod -s /bin/sh tester; \
4638 # "
4639 </literallayout>
4640 </para>
4641 </glossdef>
4642 </glossentry>
4643
4644 </glossdiv>
4645
4646 <glossdiv id='var-glossary-f'><title>F</title>
4647
4648 <glossentry id='var-FEATURE_PACKAGES'><glossterm>FEATURE_PACKAGES</glossterm>
4649 <info>
4650 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."
4651 </info>
4652 <glossdef>
4653 <para role="glossdeffirst">
4654<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4655 Defines one or more packages to include in an image when
4656 a specific item is included in
4657 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
4658 When setting the value, <filename>FEATURE_PACKAGES</filename>
4659 should have the name of the feature item as an override.
4660 Here is an example:
4661 <literallayout class='monospaced'>
4662 FEATURE_PACKAGES_widget = "<replaceable>package1</replaceable> <replaceable>package2</replaceable>"
4663 </literallayout>
4664 </para>
4665
4666 <para>
4667 In this example, if "widget" were added to
4668 <filename>IMAGE_FEATURES</filename>, <replaceable>package1</replaceable> and
4669 <replaceable>package2</replaceable> would be included in the image.
4670 <note>
4671 Packages installed by features defined through
4672 <filename>FEATURE_PACKAGES</filename> are often package
4673 groups.
4674 While similarly named, you should not confuse the
4675 <filename>FEATURE_PACKAGES</filename> variable with
4676 package groups, which are discussed elsewhere in the
4677 documentation.
4678 </note>
4679 </para>
4680 </glossdef>
4681 </glossentry>
4682
4683 <glossentry id='var-FEED_DEPLOYDIR_BASE_URI'><glossterm>FEED_DEPLOYDIR_BASE_URI</glossterm>
4684 <info>
4685 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."
4686 </info>
4687 <glossdef>
4688 <para role="glossdeffirst">
4689<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4690 Points to the base URL of the server and location within
4691 the document-root that provides the metadata and
4692 packages required by OPKG to support runtime package
4693 management of IPK packages.
4694 You set this variable in your
4695 <filename>local.conf</filename> file.
4696 </para>
4697
4698 <para>
4699 Consider the following example:
4700 <literallayout class='monospaced'>
4701 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
4702 </literallayout>
4703 This example assumes you are serving your packages over
4704 HTTP and your databases are located in a directory
4705 named <filename>BOARD-dir</filename>, which is underneath
4706 your HTTP server's document-root.
4707 In this case, the OpenEmbedded build system generates a set
4708 of configuration files for you in your target that work
4709 with the feed.
4710 </para>
4711 </glossdef>
4712 </glossentry>
4713
4714 <glossentry id='var-FILES'><glossterm>FILES</glossterm>
4715 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004716 FILES[doc] = "The list of directories or files that are placed in a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004717 </info>
4718 <glossdef>
4719 <para role="glossdeffirst">
4720<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004721 The list of files and directories that are placed in a
4722 package.
4723 The
4724 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
4725 variable lists the packages generated by a recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004726 </para>
4727
4728 <para>
4729 To use the <filename>FILES</filename> variable, provide a
4730 package name override that identifies the resulting package.
4731 Then, provide a space-separated list of files or paths
4732 that identify the files you want included as part of the
4733 resulting package.
4734 Here is an example:
4735 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004736 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004737 </literallayout>
4738 </para>
4739
4740 <note>
4741 When specifying paths as part of the
4742 <filename>FILES</filename> variable, it is good practice
4743 to use appropriate path variables.
4744 For example, use <filename>${sysconfdir}</filename> rather
4745 than <filename>/etc</filename>, or
4746 <filename>${bindir}</filename> rather than
4747 <filename>/usr/bin</filename>.
4748 You can find a list of these variables at the top of the
4749 <filename>meta/conf/bitbake.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004750 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06004751 You will also find the default values of the various
4752 <filename>FILES_*</filename> variables in this file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004753 </note>
4754
4755 <para>
4756 If some of the files you provide with the
4757 <filename>FILES</filename> variable are editable and you
4758 know they should not be overwritten during the package
4759 update process by the Package Management System (PMS), you
4760 can identify these files so that the PMS will not
4761 overwrite them.
4762 See the
4763 <link linkend='var-CONFFILES'><filename>CONFFILES</filename></link>
4764 variable for information on how to identify these files to
4765 the PMS.
4766 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004767 </glossdef>
4768 </glossentry>
4769
4770 <glossentry id='var-FILES_SOLIBSDEV'><glossterm>FILES_SOLIBSDEV</glossterm>
4771 <info>
4772 FILES_SOLIBSDEV[doc] = "Defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform."
4773 </info>
4774 <glossdef>
4775 <para role="glossdeffirst">
4776<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4777 Defines the file specification to match
4778 <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
4779 In other words, <filename>FILES_SOLIBSDEV</filename>
4780 defines the full path name of the development symbolic link
4781 (symlink) for shared libraries on the target platform.
4782 </para>
4783
4784 <para>
4785 The following statement from the
4786 <filename>bitbake.conf</filename> shows how it is set:
4787 <literallayout class='monospaced'>
4788 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
4789 </literallayout>
4790 </para>
4791 </glossdef>
4792 </glossentry>
4793
4794 <glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
4795 <info>
4796 FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
4797 </info>
4798 <glossdef>
4799 <para role="glossdeffirst">
4800<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4801 Extends the search path the OpenEmbedded build system uses
4802 when looking for files and patches as it processes recipes
4803 and append files.
4804 The default directories BitBake uses when it processes
4805 recipes are initially defined by the
4806 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
4807 variable.
4808 You can extend <filename>FILESPATH</filename> variable
4809 by using <filename>FILESEXTRAPATHS</filename>.
4810 </para>
4811
4812 <para>
4813 Best practices dictate that you accomplish this by using
4814 <filename>FILESEXTRAPATHS</filename> from within a
4815 <filename>.bbappend</filename> file and that you prepend
4816 paths as follows:
4817 <literallayout class='monospaced'>
4818 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
4819 </literallayout>
4820 In the above example, the build system first looks for files
4821 in a directory that has the same name as the corresponding
4822 append file.
4823 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004824 <para>When extending
4825 <filename>FILESEXTRAPATHS</filename>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004826 be sure to use the immediate expansion
4827 (<filename>:=</filename>) operator.
4828 Immediate expansion makes sure that BitBake evaluates
4829 <link linkend='var-THISDIR'><filename>THISDIR</filename></link>
4830 at the time the directive is encountered rather than at
4831 some later time when expansion might result in a
4832 directory that does not contain the files you need.
4833 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004834
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004835 <para>Also, include the trailing separating colon
4836 character if you are prepending.
4837 The trailing colon character is necessary because you
4838 are directing BitBake to extend the path by prepending
4839 directories to the search path.</para>
4840 </note>
4841 Here is another common use:
4842 <literallayout class='monospaced'>
4843 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4844 </literallayout>
4845 In this example, the build system extends the
4846 <filename>FILESPATH</filename> variable to include a
4847 directory named <filename>files</filename> that is in the
4848 same directory as the corresponding append file.
4849 </para>
4850
4851 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004852 This next example specifically adds three paths:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004853 <literallayout class='monospaced'>
4854 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
4855 </literallayout>
4856 </para>
4857
4858 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004859 A final example shows how you can extend the search path
4860 and include a
4861 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>-specific
4862 override, which is useful in a BSP layer:
4863 <literallayout class='monospaced'>
4864 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
4865 </literallayout>
4866 The previous statement appears in the
4867 <filename>linux-yocto-dev.bbappend</filename> file, which
4868 is found in the Yocto Project
Brad Bishop316dfdd2018-06-25 12:45:53 -04004869 <ulink url='&YOCTO_DOCS_OM_URL;#source-repositories'>Source Repositories</ulink>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004870 in
4871 <filename>meta-intel/common/recipes-kernel/linux</filename>.
4872 Here, the machine override is a special
4873 <link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
4874 definition for multiple <filename>meta-intel</filename>
4875 machines.
4876 <note>
4877 For a layer that supports a single BSP, the override
4878 could just be the value of <filename>MACHINE</filename>.
4879 </note>
4880 </para>
4881
4882 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004883 By prepending paths in <filename>.bbappend</filename>
4884 files, you allow multiple append files that reside in
4885 different layers but are used for the same recipe to
4886 correctly extend the path.
4887 </para>
4888 </glossdef>
4889 </glossentry>
4890
4891 <glossentry id='var-FILESOVERRIDES'><glossterm>FILESOVERRIDES</glossterm>
4892 <info>
4893 FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
4894 </info>
4895 <glossdef>
4896 <para role="glossdeffirst">
4897<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4898 A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
4899 used by the OpenEmbedded build system for creating
4900 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
4901 You can find more information on how overrides are handled
4902 in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04004903 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004904 </para>
4905
4906 <para>
4907 By default, the <filename>FILESOVERRIDES</filename>
4908 variable is defined as:
4909 <literallayout class='monospaced'>
4910 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
4911 </literallayout>
4912
4913 <note>
4914 Do not hand-edit the <filename>FILESOVERRIDES</filename>
4915 variable.
4916 The values match up with expected overrides and are
4917 used in an expected manner by the build system.
4918 </note>
4919 </para>
4920 </glossdef>
4921 </glossentry>
4922
4923 <glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
4924 <info>
4925 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."
4926 </info>
4927 <glossdef>
4928 <para role="glossdeffirst">
4929<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4930 The default set of directories the OpenEmbedded build system
4931 uses when searching for patches and files.
4932 During the build process, BitBake searches each directory in
4933 <filename>FILESPATH</filename> in the specified order when
4934 looking for files and patches specified by each
Brad Bishop316dfdd2018-06-25 12:45:53 -04004935 <filename>file://</filename> URI in a recipe's
4936 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
4937 statements.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004938 </para>
4939
4940 <para>
4941 The default value for the <filename>FILESPATH</filename>
4942 variable is defined in the <filename>base.bbclass</filename>
4943 class found in <filename>meta/classes</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004944 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004945 <literallayout class='monospaced'>
4946 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
4947 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
4948 </literallayout>
4949 <note>
4950 Do not hand-edit the <filename>FILESPATH</filename>
4951 variable.
4952 If you want the build system to look in directories
4953 other than the defaults, extend the
4954 <filename>FILESPATH</filename> variable by using the
4955 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
4956 variable.
4957 </note>
4958 Be aware that the default <filename>FILESPATH</filename>
4959 directories do not map to directories in custom layers
4960 where append files (<filename>.bbappend</filename>)
4961 are used.
4962 If you want the build system to find patches or files
4963 that reside with your append files, you need to extend
4964 the <filename>FILESPATH</filename> variable by using
Brad Bishop316dfdd2018-06-25 12:45:53 -04004965 the <filename>FILESEXTRAPATHS</filename> variable.
4966 </para>
4967
4968 <para>
4969 You can find out more about the patching process in the
4970 "<ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>Patching</ulink>"
4971 section in the Yocto Project Overview and Concepts Manual
4972 and the
4973 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code'>Patching Code</ulink>"
4974 section in the Yocto Project Development Tasks Manual.
4975 See the
4976 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
4977 task as well.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004978 </para>
4979 </glossdef>
4980 </glossentry>
4981
4982 <glossentry id='var-FILESYSTEM_PERMS_TABLES'><glossterm>FILESYSTEM_PERMS_TABLES</glossterm>
4983 <info>
4984 FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
4985 </info>
4986 <glossdef>
4987 <para role="glossdeffirst">
4988<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
4989 Allows you to define your own file permissions settings table as part of
4990 your configuration for the packaging process.
4991 For example, suppose you need a consistent set of custom permissions for
4992 a set of groups and users across an entire work project.
4993 It is best to do this in the packages themselves but this is not always
4994 possible.
4995 </para>
4996
4997 <para>
4998 By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
4999 is located in the <filename>meta/files</filename> folder in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005000 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005001 If you create your own file permissions setting table, you should place it in your
5002 layer or the distro's layer.
5003 </para>
5004
5005 <para>
5006 You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
5007 <filename>conf/local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005008 <link linkend='build-directory'>Build Directory</link>, to
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005009 point to your custom <filename>fs-perms.txt</filename>.
5010 You can specify more than a single file permissions setting table.
5011 The paths you specify to these files must be defined within the
5012 <link linkend='var-BBPATH'><filename>BBPATH</filename></link> variable.
5013 </para>
5014
5015 <para>
5016 For guidance on how to create your own file permissions settings table file,
5017 examine the existing <filename>fs-perms.txt</filename>.
5018 </para>
5019 </glossdef>
5020 </glossentry>
5021
5022 <glossentry id='var-FONT_EXTRA_RDEPENDS'><glossterm>FONT_EXTRA_RDEPENDS</glossterm>
5023 <info>
5024 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'."
5025 </info>
5026 <glossdef>
5027 <para role="glossdeffirst">
5028<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5029 When inheriting the
5030 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5031 class, this variable specifies the runtime dependencies
5032 for font packages.
5033 By default, the <filename>FONT_EXTRA_RDEPENDS</filename>
5034 is set to "fontconfig-utils".
5035 </para>
5036 </glossdef>
5037 </glossentry>
5038
5039 <glossentry id='var-FONT_PACKAGES'><glossterm>FONT_PACKAGES</glossterm>
5040 <info>
5041 FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
5042 </info>
5043 <glossdef>
5044 <para role="glossdeffirst">
5045<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5046 When inheriting the
5047 <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
5048 class, this variable identifies packages containing font
5049 files that need to be cached by Fontconfig.
5050 By default, the <filename>fontcache</filename> class assumes
5051 that fonts are in the recipe's main package
5052 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5053 Use this variable if fonts you need are in a package
5054 other than that main package.
5055 </para>
5056 </glossdef>
5057 </glossentry>
5058
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005059 <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
5060 <info>
5061 FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
5062 </info>
5063 <glossdef>
5064 <para role="glossdeffirst">
5065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5066 Forces the removal of the packages listed in
5067 <filename>ROOTFS_RO_UNNEEDED</filename> during the
5068 generation of the root filesystem.
5069 </para>
5070
5071 <para>
5072 Set the variable to "1" to force the removal of these
5073 packages.
5074 </para>
5075 </glossdef>
5076 </glossentry>
5077
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005078 <glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
5079 <info>
5080 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'."
5081 </info>
5082 <glossdef>
5083 <para role="glossdeffirst">
5084<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5085 The options to pass in
5086 <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
5087 and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
5088 when compiling an optimized system.
5089 This variable defaults to
5090 "-O2 -pipe ${DEBUG_FLAGS}".
5091 </para>
5092 </glossdef>
5093 </glossentry>
5094 </glossdiv>
5095
5096 <glossdiv id='var-glossary-g'><title>G</title>
5097
Brad Bishop316dfdd2018-06-25 12:45:53 -04005098 <glossentry id='var-GCCPIE'><glossterm>GCCPIE</glossterm>
5099 <info>
5100 GCCPIE[doc] = "Enables Position Independent Executables (PIE) within the GNU C Compiler (GCC)."
5101 </info>
5102 <glossdef>
5103 <para role="glossdeffirst">
5104<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5105 Enables Position Independent Executables (PIE) within the
5106 GNU C Compiler (GCC).
5107 Enabling PIE in the GCC makes Return Oriented Programming
5108 (ROP) attacks much more difficult to
5109 execute.
5110 </para>
5111
5112 <para>
5113 By default the <filename>security_flags.inc</filename>
5114 file enables PIE by setting the variable as follows:
5115 <literallayout class='monospaced'>
5116 GCCPIE ?= "--enable-default-pie"
5117 </literallayout>
5118 </para>
5119 </glossdef>
5120 </glossentry>
5121
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005122 <glossentry id='var-GDB'><glossterm>GDB</glossterm>
5123 <info>
5124 GDB[doc] = "The minimal command and arguments to run the GNU Debugger."
5125 </info>
5126 <glossdef>
5127 <para role="glossdeffirst">
5128<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5129 The minimal command and arguments to run the GNU Debugger.
5130 </para>
5131 </glossdef>
5132 </glossentry>
5133
5134 <glossentry id='var-GITDIR'><glossterm>GITDIR</glossterm>
5135 <info>
5136 GITDIR[doc] = "The directory where Git clones will be stored."
5137 </info>
5138 <glossdef>
5139 <para role="glossdeffirst">
5140<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5141 The directory in which a local copy of a Git repository
5142 is stored when it is cloned.
5143 </para>
5144 </glossdef>
5145 </glossentry>
5146
5147 <glossentry id='var-GLIBC_GENERATE_LOCALES'><glossterm>GLIBC_GENERATE_LOCALES</glossterm>
5148 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005149 GLIBC_GENERATE_LOCALES[doc]= "Specifies the list of GLIBC locales to generate should you not wish to generate all LIBC locals, which can be time consuming."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005150 </info>
5151 <glossdef>
5152 <para role="glossdeffirst">
5153<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5154 Specifies the list of GLIBC locales to generate should you
Brad Bishop316dfdd2018-06-25 12:45:53 -04005155 not wish to generate all LIBC locals, which can be time
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005156 consuming.
5157 <note>
5158 If you specifically remove the locale
5159 <filename>en_US.UTF-8</filename>, you must set
5160 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
5161 appropriately.
5162 </note>
5163 </para>
5164
5165 <para>
5166 You can set <filename>GLIBC_GENERATE_LOCALES</filename>
5167 in your <filename>local.conf</filename> file.
5168 By default, all locales are generated.
5169 <literallayout class='monospaced'>
5170 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
5171 </literallayout>
5172 </para>
5173 </glossdef>
5174 </glossentry>
5175
5176 <glossentry id='var-GROUPADD_PARAM'><glossterm>GROUPADD_PARAM</glossterm>
5177 <info>
5178 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."
5179 </info>
5180 <glossdef>
5181 <para role="glossdeffirst">
5182<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5183 When inheriting the
5184 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5185 class, this variable
5186 specifies for a package what parameters should be passed
5187 to the <filename>groupadd</filename> command
5188 if you wish to add a group to the system when the package
5189 is installed.
5190 </para>
5191
5192 <para>
5193 Here is an example from the <filename>dbus</filename>
5194 recipe:
5195 <literallayout class='monospaced'>
5196 GROUPADD_PARAM_${PN} = "-r netdev"
5197 </literallayout>
5198 For information on the standard Linux shell command
5199 <filename>groupadd</filename>, see
5200 <ulink url='http://linux.die.net/man/8/groupadd'></ulink>.
5201 </para>
5202 </glossdef>
5203 </glossentry>
5204
5205 <glossentry id='var-GROUPMEMS_PARAM'><glossterm>GROUPMEMS_PARAM</glossterm>
5206 <info>
5207 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."
5208 </info>
5209 <glossdef>
5210 <para role="glossdeffirst">
5211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5212 When inheriting the
5213 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
5214 class, this variable
5215 specifies for a package what parameters should be passed
5216 to the <filename>groupmems</filename> command
5217 if you wish to modify the members of a group when the
5218 package is installed.
5219 </para>
5220
5221 <para>
5222 For information on the standard Linux shell command
5223 <filename>groupmems</filename>, see
5224 <ulink url='http://linux.die.net/man/8/groupmems'></ulink>.
5225 </para>
5226 </glossdef>
5227 </glossentry>
5228
5229 <glossentry id='var-GRUB_GFXSERIAL'><glossterm>GRUB_GFXSERIAL</glossterm>
5230 <info>
5231 GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
5232 </info>
5233 <glossdef>
5234 <para role="glossdeffirst">
5235<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5236 Configures the GNU GRand Unified Bootloader (GRUB) to have
5237 graphics and serial in the boot menu.
5238 Set this variable to "1" in your
5239 <filename>local.conf</filename> or distribution
5240 configuration file to enable graphics and serial
5241 in the menu.
5242 </para>
5243
5244 <para>
5245 See the
5246 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5247 class for more information on how this variable is used.
5248 </para>
5249 </glossdef>
5250 </glossentry>
5251
5252 <glossentry id='var-GRUB_OPTS'><glossterm>GRUB_OPTS</glossterm>
5253 <info>
5254 GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
5255 </info>
5256 <glossdef>
5257 <para role="glossdeffirst">
5258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5259 Additional options to add to the GNU GRand Unified
5260 Bootloader (GRUB) configuration.
5261 Use a semi-colon character (<filename>;</filename>) to
5262 separate multiple options.
5263 </para>
5264
5265 <para>
5266 The <filename>GRUB_OPTS</filename> variable is optional.
5267 See the
5268 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5269 class for more information on how this variable is used.
5270 </para>
5271 </glossdef>
5272 </glossentry>
5273
5274 <glossentry id='var-GRUB_TIMEOUT'><glossterm>GRUB_TIMEOUT</glossterm>
5275 <info>
5276 GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
5277 </info>
5278 <glossdef>
5279 <para role="glossdeffirst">
5280<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5281 Specifies the timeout before executing the default
5282 <filename>LABEL</filename> in the GNU GRand Unified
5283 Bootloader (GRUB).
5284 </para>
5285
5286 <para>
5287 The <filename>GRUB_TIMEOUT</filename> variable is optional.
5288 See the
5289 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
5290 class for more information on how this variable is used.
5291 </para>
5292 </glossdef>
5293 </glossentry>
5294
5295 <glossentry id='var-GTKIMMODULES_PACKAGES'><glossterm>GTKIMMODULES_PACKAGES</glossterm>
5296 <info>
5297 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."
5298 </info>
5299 <glossdef>
5300 <para role="glossdeffirst">
5301<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5302 When inheriting the
5303 <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
5304 class, this variable specifies the packages that contain the
5305 GTK+ input method modules being installed when the modules
5306 are in packages other than the main package.
5307 </para>
5308 </glossdef>
5309 </glossentry>
5310
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005311 </glossdiv>
5312
5313 <glossdiv id='var-glossary-h'><title>H</title>
5314
5315 <glossentry id='var-HOMEPAGE'><glossterm>HOMEPAGE</glossterm>
5316 <info>
5317 HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
5318 </info>
5319 <glossdef>
5320 <para role="glossdeffirst">
5321<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5322 Website where more information about the software the recipe is building
5323 can be found.
5324 </para>
5325 </glossdef>
5326 </glossentry>
5327
5328 <glossentry id='var-HOST_ARCH'><glossterm>HOST_ARCH</glossterm>
5329 <info>
5330 HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
5331
5332 </info>
5333 <glossdef>
5334 <para role="glossdeffirst">
5335<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5336 The name of the target architecture, which is normally
5337 the same as
5338 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
5339 The OpenEmbedded build system supports many
5340 architectures.
5341 Here is an example list of architectures supported.
5342 This list is by no means complete as the architecture
5343 is configurable:
5344 <literallayout class='monospaced'>
5345 arm
5346 i586
5347 x86_64
5348 powerpc
5349 powerpc64
5350 mips
5351 mipsel
5352 </literallayout>
5353 </para>
5354 </glossdef>
5355 </glossentry>
5356
5357 <glossentry id='var-HOST_CC_ARCH'><glossterm>HOST_CC_ARCH</glossterm>
5358 <info>
5359 HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
5360 </info>
5361 <glossdef>
5362 <para role="glossdeffirst">
5363<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5364 Specifies architecture-specific compiler flags that are
5365 passed to the C compiler.
5366 </para>
5367
5368 <para>
5369 Default initialization for <filename>HOST_CC_ARCH</filename>
5370 varies depending on what is being built:
5371 <itemizedlist>
5372 <listitem><para>
5373 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
5374 when building for the target
5375 </para></listitem>
5376 <listitem><para>
5377 <filename>BUILD_CC_ARCH</filename>
5378 when building for the build host (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005379 <filename>-native</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005380 </para></listitem>
5381 <listitem><para>
5382 <filename>BUILDSDK_CC_ARCH</filename>
5383 when building for an SDK (i.e.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005384 <filename>nativesdk-</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005385 </para></listitem>
5386 </itemizedlist>
5387 </para>
5388 </glossdef>
5389 </glossentry>
5390
5391 <glossentry id='var-HOST_OS'><glossterm>HOST_OS</glossterm>
5392 <info>
5393 HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
5394 </info>
5395 <glossdef>
5396 <para role="glossdeffirst">
5397<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5398 Specifies the name of the target operating system, which
5399 is normally the same as the
5400 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
5401 The variable can be set to "linux" for <filename>glibc</filename>-based systems and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005402 to "linux-musl" for <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005403 For ARM/EABI targets, there are also "linux-gnueabi" and
Brad Bishop37a0e4d2017-12-04 01:01:44 -05005404 "linux-musleabi" values possible.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005405 </para>
5406 </glossdef>
5407 </glossentry>
5408
5409 <glossentry id='var-HOST_PREFIX'><glossterm>HOST_PREFIX</glossterm>
5410 <info>
5411 HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
5412 </info>
5413 <glossdef>
5414 <para role="glossdeffirst">
5415<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5416 Specifies the prefix for the cross-compile toolchain.
5417 <filename>HOST_PREFIX</filename> is normally the same as
5418 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
5419 </para>
5420 </glossdef>
5421 </glossentry>
5422
5423 <glossentry id='var-HOST_SYS'><glossterm>HOST_SYS</glossterm>
5424 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005425 HOST_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the build is occurring in the context of the current recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005426 </info>
5427 <glossdef>
5428 <para role="glossdeffirst">
5429<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5430 Specifies the system, including the architecture and the
5431 operating system, for which the build is occurring
5432 in the context of the current recipe.
5433 </para>
5434
5435 <para>
5436 The OpenEmbedded build system automatically sets this
5437 variable based on
5438 <link linkend='var-HOST_ARCH'><filename>HOST_ARCH</filename></link>,
5439 <link linkend='var-HOST_VENDOR'><filename>HOST_VENDOR</filename></link>,
5440 and
5441 <link linkend='var-HOST_OS'><filename>HOST_OS</filename></link>
5442 variables.
5443 <note>
5444 You do not need to set the variable yourself.
5445 </note>
5446 </para>
5447
5448 <para>
5449 Consider these two examples:
5450 <itemizedlist>
5451 <listitem><para>Given a native recipe on a 32-bit
5452 x86 machine running Linux, the value is
5453 "i686-linux".
5454 </para></listitem>
5455 <listitem><para>Given a recipe being built for a
5456 little-endian MIPS target running Linux,
5457 the value might be "mipsel-linux".
5458 </para></listitem>
5459 </itemizedlist>
5460 </para>
5461 </glossdef>
5462 </glossentry>
5463
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005464 <glossentry id='var-HOSTTOOLS'><glossterm>HOSTTOOLS</glossterm>
5465 <info>
5466 HOSTTOOLS[doc] = "A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks."
5467 </info>
5468 <glossdef>
5469 <para role="glossdeffirst">
5470<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5471 A space-separated list (filter) of tools on the build host
5472 that should be allowed to be called from within build tasks.
5473 Using this filter helps reduce the possibility of host
5474 contamination.
5475 If a tool specified in the value of
5476 <filename>HOSTTOOLS</filename> is not found on the
5477 build host, the OpenEmbedded build system produces
5478 an error and the build is not started.
5479 </para>
5480
5481 <para>
5482 For additional information, see
5483 <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>.
5484 </para>
5485 </glossdef>
5486 </glossentry>
5487
5488 <glossentry id='var-HOSTTOOLS_NONFATAL'><glossterm>HOSTTOOLS_NONFATAL</glossterm>
5489 <info>
5490 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."
5491 </info>
5492 <glossdef>
5493 <para role="glossdeffirst">
5494<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5495 A space-separated list (filter) of tools on the build host
5496 that should be allowed to be called from within build tasks.
5497 Using this filter helps reduce the possibility of host
5498 contamination.
5499 Unlike
5500 <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -04005501 the OpenEmbedded build system does not produce an error
Brad Bishop6e60e8b2018-02-01 10:27:11 -05005502 if a tool specified in the value of
5503 <filename>HOSTTOOLS_NONFATAL</filename> is not found on the
5504 build host.
5505 Thus, you can use <filename>HOSTTOOLS_NONFATAL</filename>
5506 to filter optional host tools.
5507 </para>
5508 </glossdef>
5509 </glossentry>
5510
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005511 <glossentry id='var-HOST_VENDOR'><glossterm>HOST_VENDOR</glossterm>
5512 <info>
5513 HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
5514 </info>
5515 <glossdef>
5516 <para role="glossdeffirst">
5517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5518 Specifies the name of the vendor.
5519 <filename>HOST_VENDOR</filename> is normally the same as
Brad Bishop316dfdd2018-06-25 12:45:53 -04005520 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005521 </para>
5522 </glossdef>
5523 </glossentry>
5524
5525 </glossdiv>
5526
5527 <glossdiv id='var-glossary-i'><title>I</title>
5528
5529 <glossentry id='var-ICECC_DISABLED'><glossterm>ICECC_DISABLED</glossterm>
5530 <info>
5531 ICECC_DISABLED[doc] = "Disables or enables the icecc (Icecream) function."
5532 </info>
5533 <glossdef>
5534 <para role="glossdeffirst">
5535<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5536 Disables or enables the <filename>icecc</filename>
5537 (Icecream) function.
5538 For more information on this function and best practices
5539 for using this variable, see the
5540 "<link linkend='ref-classes-icecc'><filename>icecc.bbclass</filename></link>"
5541 section.
5542 </para>
5543
5544 <para>
5545 Setting this variable to "1" in your
5546 <filename>local.conf</filename> disables the function:
5547 <literallayout class='monospaced'>
5548 ICECC_DISABLED ??= "1"
5549 </literallayout>
5550 To enable the function, set the variable as follows:
5551 <literallayout class='monospaced'>
5552 ICECC_DISABLED = ""
5553 </literallayout>
5554 </para>
5555 </glossdef>
5556 </glossentry>
5557
5558 <glossentry id='var-ICECC_ENV_EXEC'><glossterm>ICECC_ENV_EXEC</glossterm>
5559 <info>
5560 ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
5561 </info>
5562 <glossdef>
5563 <para role="glossdeffirst">
5564<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5565 Points to the <filename>icecc-create-env</filename> script
5566 that you provide.
5567 This variable is used by the
5568 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5569 class.
5570 You set this variable in your
5571 <filename>local.conf</filename> file.
5572 </para>
5573
5574 <para>
5575 If you do not point to a script that you provide, the
5576 OpenEmbedded build system uses the default script provided
5577 by the <filename>icecc-create-env.bb</filename> recipe,
5578 which is a modified version and not the one that comes with
5579 <filename>icecc</filename>.
5580 </para>
5581 </glossdef>
5582 </glossentry>
5583
5584 <glossentry id='var-ICECC_PARALLEL_MAKE'><glossterm>ICECC_PARALLEL_MAKE</glossterm>
5585 <info>
5586 ICECC_PARALLEL_MAKE[doc] = "Extra options passed to the make command during the do_compile task that specify parallel compilation."
5587 </info>
5588 <glossdef>
5589 <para role="glossdeffirst">
5590<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5591 Extra options passed to the <filename>make</filename>
5592 command during the
5593 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
5594 task that specify parallel compilation.
5595 This variable usually takes the form of
5596 "-j <replaceable>x</replaceable>", where
5597 <replaceable>x</replaceable> represents the maximum
5598 number of parallel threads <filename>make</filename> can
5599 run.
5600 <note>
5601 The options passed affect builds on all enabled
5602 machines on the network, which are machines running the
5603 <filename>iceccd</filename> daemon.
5604 </note>
5605 </para>
5606
5607 <para>
5608 If your enabled machines support multiple cores,
5609 coming up with the maximum number of parallel threads
5610 that gives you the best performance could take some
5611 experimentation since machine speed, network lag,
5612 available memory, and existing machine loads can all
5613 affect build time.
5614 Consequently, unlike the
5615 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5616 variable, there is no rule-of-thumb for setting
5617 <filename>ICECC_PARALLEL_MAKE</filename> to achieve
5618 optimal performance.
5619 </para>
5620
5621 <para>
5622 If you do not set <filename>ICECC_PARALLEL_MAKE</filename>,
5623 the build system does not use it (i.e. the system does
5624 not detect and assign the number of cores as is done with
5625 <filename>PARALLEL_MAKE</filename>).
5626 </para>
5627 </glossdef>
5628 </glossentry>
5629
5630 <glossentry id='var-ICECC_PATH'><glossterm>ICECC_PATH</glossterm>
5631 <info>
5632 ICECC_PATH[doc] = "The location of the icecc binary."
5633 </info>
5634 <glossdef>
5635 <para role="glossdeffirst">
5636<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5637 The location of the <filename>icecc</filename> binary.
5638 You can set this variable in your
5639 <filename>local.conf</filename> file.
5640 If your <filename>local.conf</filename> file does not define
5641 this variable, the
5642 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5643 class attempts to define it by locating
5644 <filename>icecc</filename> using <filename>which</filename>.
5645 </para>
5646 </glossdef>
5647 </glossentry>
5648
5649 <glossentry id='var-ICECC_USER_CLASS_BL'><glossterm>ICECC_USER_CLASS_BL</glossterm>
5650 <info>
5651 ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
5652 </info>
5653 <glossdef>
5654 <para role="glossdeffirst">
5655<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5656 Identifies user classes that you do not want the
5657 Icecream distributed compile support to consider.
5658 This variable is used by the
5659 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5660 class.
5661 You set this variable in your
5662 <filename>local.conf</filename> file.
5663 </para>
5664
5665 <para>
5666 When you list classes using this variable, you are
5667 "blacklisting" them from distributed compilation across
5668 remote hosts.
5669 Any classes you list will be distributed and compiled
5670 locally.
5671 </para>
5672 </glossdef>
5673 </glossentry>
5674
5675 <glossentry id='var-ICECC_USER_PACKAGE_BL'><glossterm>ICECC_USER_PACKAGE_BL</glossterm>
5676 <info>
5677 ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
5678 </info>
5679 <glossdef>
5680 <para role="glossdeffirst">
5681<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5682 Identifies user recipes that you do not want the
5683 Icecream distributed compile support to consider.
5684 This variable is used by the
5685 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5686 class.
5687 You set this variable in your
5688 <filename>local.conf</filename> file.
5689 </para>
5690
5691 <para>
5692 When you list packages using this variable, you are
5693 "blacklisting" them from distributed compilation across
5694 remote hosts.
5695 Any packages you list will be distributed and compiled
5696 locally.
5697 </para>
5698 </glossdef>
5699 </glossentry>
5700
5701 <glossentry id='var-ICECC_USER_PACKAGE_WL'><glossterm>ICECC_USER_PACKAGE_WL</glossterm>
5702 <info>
5703 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."
5704 </info>
5705 <glossdef>
5706 <para role="glossdeffirst">
5707<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5708 Identifies user recipes that use an empty
5709 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
5710 variable that you want to force remote distributed
5711 compilation on using the Icecream distributed compile
5712 support.
5713 This variable is used by the
5714 <link linkend='ref-classes-icecc'><filename>icecc</filename></link>
5715 class.
5716 You set this variable in your
5717 <filename>local.conf</filename> file.
5718 </para>
5719 </glossdef>
5720 </glossentry>
5721
5722 <glossentry id='var-IMAGE_BASENAME'><glossterm>IMAGE_BASENAME</glossterm>
5723 <info>
5724 IMAGE_BASENAME[doc] = "The base name of image output files."
5725 </info>
5726 <glossdef>
5727 <para role="glossdeffirst">
5728<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5729 The base name of image output files.
5730 This variable defaults to the recipe name
5731 (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
5732 </para>
5733 </glossdef>
5734 </glossentry>
5735
5736 <glossentry id='var-IMAGE_BOOT_FILES'><glossterm>IMAGE_BOOT_FILES</glossterm>
5737 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005738 IMAGE_BOOT_FILES[doc] = "A space-separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005739 </info>
5740 <glossdef>
5741 <para role="glossdeffirst">
5742<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5743 A space-separated list of files installed into the
Brad Bishop316dfdd2018-06-25 12:45:53 -04005744 boot partition when preparing an image using the Wic tool
5745 with the <filename>bootimg-partition</filename> source
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005746 plugin.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005747 By default, the files are installed under the same name as
5748 the source files.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005749 To change the installed name, separate it from the
5750 original name with a semi-colon (;).
5751 Source files need to be located in
5752 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>.
5753 Here are two examples:
5754
5755 <literallayout class="monospaced">
5756 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
5757 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
5758 </literallayout>
5759 </para>
5760
5761 <para>
5762 Alternatively, source files can be picked up using
5763 a glob pattern.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005764 In this case, the destination file must have the same name
5765 as the base name of the source file path.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005766 To install files into a directory within the
5767 target location, pass its name after a semi-colon
5768 (;).
5769 Here are two examples:
5770 <literallayout class="monospaced">
5771 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
5772 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
5773 </literallayout>
5774 The first example installs all files from
5775 <filename>${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles</filename>
5776 into the root of the target partition.
5777 The second example installs the same files into a
5778 <filename>boot</filename> directory within the
5779 target partition.
5780 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005781
5782 <para>
5783 You can find information on how to use the Wic tool in the
5784 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
5785 section of the Yocto Project Development Tasks Manual.
5786 Reference material for Wic is located in the
5787 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-kickstart'>OpenEmbedded Kickstart (.wks) Reference</ulink>"
5788 chapter.
5789 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005790 </glossdef>
5791 </glossentry>
5792
5793 <glossentry id='var-IMAGE_CLASSES'><glossterm>IMAGE_CLASSES</glossterm>
5794 <info>
5795 IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
5796 </info>
5797 <glossdef>
5798 <para role="glossdeffirst">
5799<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5800 A list of classes that all images should inherit.
5801 You typically use this variable to specify the list of
5802 classes that register the different types of images
5803 the OpenEmbedded build system creates.
5804 </para>
5805
5806 <para>
5807 The default value for <filename>IMAGE_CLASSES</filename> is
5808 <filename>image_types</filename>.
5809 You can set this variable in your
5810 <filename>local.conf</filename> or in a distribution
5811 configuration file.
5812 </para>
5813
5814 <para>
5815 For more information, see
5816 <filename>meta/classes/image_types.bbclass</filename> in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005817 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005818 </para>
5819 </glossdef>
5820 </glossentry>
5821
5822 <glossentry id='var-IMAGE_CMD'><glossterm>IMAGE_CMD</glossterm>
5823 <info>
5824 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)."
5825 </info>
5826 <glossdef>
5827 <para role="glossdeffirst">
5828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5829 Specifies the command to create the image file for a
5830 specific image type, which corresponds to the value set
5831 set in
5832 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
5833 (e.g. <filename>ext3</filename>,
5834 <filename>btrfs</filename>, and so forth).
5835 When setting this variable, you should use
5836 an override for the associated type.
5837 Here is an example:
5838 <literallayout class='monospaced'>
5839 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
5840 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
5841 ${EXTRA_IMAGECMD}"
5842 </literallayout>
5843 </para>
5844
5845 <para>
5846 You typically do not need to set this variable unless
5847 you are adding support for a new image type.
5848 For more examples on how to set this variable, see the
5849 <link linkend='ref-classes-image_types'><filename>image_types</filename></link>
5850 class file, which is
5851 <filename>meta/classes/image_types.bbclass</filename>.
5852 </para>
5853 </glossdef>
5854 </glossentry>
5855
5856 <glossentry id='var-IMAGE_DEVICE_TABLES'><glossterm>IMAGE_DEVICE_TABLES</glossterm>
5857 <info>
5858 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."
5859 </info>
5860 <glossdef>
5861 <para role="glossdeffirst">
5862<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5863 Specifies one or more files that contain custom device
5864 tables that are passed to the
5865 <filename>makedevs</filename> command as part of creating
5866 an image.
5867 These files list basic device nodes that should be
5868 created under <filename>/dev</filename> within the image.
5869 If <filename>IMAGE_DEVICE_TABLES</filename> is not set,
5870 <filename>files/device_table-minimal.txt</filename> is
5871 used, which is located by
5872 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
5873 For details on how you should write device table files,
5874 see <filename>meta/files/device_table-minimal.txt</filename>
5875 as an example.
5876 </para>
5877 </glossdef>
5878 </glossentry>
5879
5880 <glossentry id='var-IMAGE_FEATURES'><glossterm>IMAGE_FEATURES</glossterm>
5881 <info>
5882 IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
5883 </info>
5884 <glossdef>
5885 <para role="glossdeffirst">
5886<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5887 The primary list of features to include in an image.
5888 Typically, you configure this variable in an image recipe.
5889 Although you can use this variable from your
5890 <filename>local.conf</filename> file, which is found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005891 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005892 best practices dictate that you do not.
5893 <note>
5894 To enable extra features from outside the image recipe,
5895 use the
5896 <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
5897 </note>
5898 </para>
5899
5900 <para>
5901 For a list of image features that ships with the Yocto
5902 Project, see the
5903 "<link linkend="ref-features-image">Image Features</link>"
5904 section.
5905 </para>
5906
5907 <para>
5908 For an example that shows how to customize your image by
5909 using this variable, see the
5910 "<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 -05005911 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005912 </para>
5913 </glossdef>
5914 </glossentry>
5915
5916 <glossentry id='var-IMAGE_FSTYPES'><glossterm>IMAGE_FSTYPES</glossterm>
5917 <info>
5918 IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
5919 </info>
5920 <glossdef>
5921 <para role="glossdeffirst">
5922<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
5923 Specifies the formats the OpenEmbedded build system uses
5924 during the build when creating the root filesystem.
5925 For example, setting <filename>IMAGE_FSTYPES</filename>
5926 as follows causes the build system to create root
5927 filesystems using two formats: <filename>.ext3</filename>
5928 and <filename>.tar.bz2</filename>:
5929 <literallayout class='monospaced'>
5930 IMAGE_FSTYPES = "ext3 tar.bz2"
5931 </literallayout>
5932 </para>
5933
5934 <para>
5935 For the complete list of supported image formats from which
5936 you can choose, see
5937 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>.
5938 </para>
5939
Brad Bishopd7bf8c12018-02-25 22:55:05 -05005940 <note><title>Notes</title>
5941 <itemizedlist>
5942 <listitem><para>
5943 If you add "live" to
5944 <filename>IMAGE_FSTYPES</filename> inside an image
5945 recipe, be sure that you do so prior to the
5946 "inherit image" line of the recipe or the live
5947 image will not build.
5948 </para></listitem>
5949 <listitem><para>
5950 Due to the way the OpenEmbedded build system
5951 processes this variable, you cannot update its
5952 contents by using <filename>_append</filename> or
5953 <filename>_prepend</filename>.
5954 You must use the <filename>+=</filename>
5955 operator to add one or more options to the
5956 <filename>IMAGE_FSTYPES</filename> variable.
5957 </para></listitem>
5958 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005959 </note>
5960 </glossdef>
5961 </glossentry>
5962
5963 <glossentry id='var-IMAGE_INSTALL'><glossterm>IMAGE_INSTALL</glossterm>
5964 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005965 IMAGE_INSTALL[doc] = "Used by recipes to specify the packages to install into an image through image.bbclass."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005966 </info>
5967 <glossdef>
5968 <para role="glossdeffirst">
5969<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04005970 Used by recipes to specify the packages to install into an
5971 image through the
5972 <link linkend='ref-classes-image'><filename>image</filename></link>
5973 class.
5974 Use the <filename>IMAGE_INSTALL</filename> variable with
5975 care to avoid ordering issues.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005976 </para>
5977
5978 <para>
5979 Image recipes set <filename>IMAGE_INSTALL</filename>
5980 to specify the packages to install into an image through
5981 <filename>image.bbclass</filename>.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005982 Additionally, "helper" classes such as the
5983 <link linkend='ref-classes-core-image'><filename>core-image</filename></link>
5984 class exist that can take lists used with
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005985 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04005986 and turn them into auto-generated entries in
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005987 <filename>IMAGE_INSTALL</filename> in addition to its
5988 default contents.
5989 </para>
5990
5991 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005992 When you use this variable, it is best to use it as follows:
5993 <literallayout class='monospaced'>
5994 IMAGE_INSTALL_append = " <replaceable>package-name</replaceable>"
5995 </literallayout>
5996 Be sure to include the space between the quotation character
5997 and the start of the package name or names.
Brad Bishop316dfdd2018-06-25 12:45:53 -04005998 <note><title>Caution</title>
5999 <itemizedlist>
6000 <listitem><para>
6001 When working with a
6002 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
6003 image, do not use the
6004 <filename>IMAGE_INSTALL</filename> variable to
6005 specify packages for installation.
6006 Instead, use the
6007 <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
6008 variable, which allows the initial RAM
6009 filesystem (initramfs) recipe to use a fixed
6010 set of packages and not be affected by
6011 <filename>IMAGE_INSTALL</filename>.
6012 For information on creating an initramfs, see
6013 the
6014 "<ulink url='&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image'>Building an Initial RAM Filesystem (initramfs) Image</ulink>"
6015 section in the Yocto Project Development Tasks
6016 Manual.
6017 </para></listitem>
6018 <listitem><para>
6019 Using <filename>IMAGE_INSTALL</filename> with
6020 the
6021 <ulink url='&YOCTO_DOCS_BB_URL;#appending-and-prepending'><filename>+=</filename></ulink>
6022 BitBake operator within the
6023 <filename>/conf/local.conf</filename> file or
6024 from within an image recipe is not recommended.
6025 Use of this operator in these ways can cause
6026 ordering issues.
6027 Since <filename>core-image.bbclass</filename>
6028 sets <filename>IMAGE_INSTALL</filename> to a
6029 default value using the
6030 <ulink url='&YOCTO_DOCS_BB_URL;#setting-a-default-value'><filename>?=</filename></ulink>
6031 operator, using a <filename>+=</filename>
6032 operation against
6033 <filename>IMAGE_INSTALL</filename> results in
6034 unexpected behavior when used within
6035 <filename>conf/local.conf</filename>.
6036 Furthermore, the same operation from within
6037 an image recipe may or may not succeed
6038 depending on the specific situation.
6039 In both these cases, the behavior is contrary
6040 to how most users expect the
6041 <filename>+=</filename> operator to work.
6042 </para></listitem>
6043 </itemizedlist>
6044 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006045 </para>
6046 </glossdef>
6047 </glossentry>
6048
6049 <glossentry id='var-IMAGE_LINGUAS'><glossterm>IMAGE_LINGUAS</glossterm>
6050 <info>
6051 IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
6052 </info>
6053 <glossdef>
6054 <para role="glossdeffirst">
6055<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6056 Specifies the list of locales to install into the image
6057 during the root filesystem construction process.
6058 The OpenEmbedded build system automatically splits locale
6059 files, which are used for localization, into separate
6060 packages.
6061 Setting the <filename>IMAGE_LINGUAS</filename> variable
6062 ensures that any locale packages that correspond to packages
6063 already selected for installation into the image are also
6064 installed.
6065 Here is an example:
6066 <literallayout class='monospaced'>
6067 IMAGE_LINGUAS = "pt-br de-de"
6068 </literallayout>
6069 </para>
6070
6071 <para>
6072 In this example, the build system ensures any Brazilian
6073 Portuguese and German locale files that correspond to
6074 packages in the image are installed (i.e.
6075 <filename>*-locale-pt-br</filename>
6076 and <filename>*-locale-de-de</filename> as well as
6077 <filename>*-locale-pt</filename>
6078 and <filename>*-locale-de</filename>, since some software
6079 packages only provide locale files by language and not by
6080 country-specific language).
6081 </para>
6082
6083 <para>
6084 See the
6085 <link linkend='var-GLIBC_GENERATE_LOCALES'><filename>GLIBC_GENERATE_LOCALES</filename></link>
6086 variable for information on generating GLIBC locales.
6087 </para>
6088 </glossdef>
6089 </glossentry>
6090
6091 <glossentry id='var-IMAGE_MANIFEST'><glossterm>IMAGE_MANIFEST</glossterm>
6092 <info>
6093 IMAGE_MANIFEST[doc] = "The manifest file for the image. This file lists all the installed packages that make up the image."
6094 </info>
6095 <glossdef>
6096 <para role="glossdeffirst">
6097<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6098 The manifest file for the image.
6099 This file lists all the installed packages that make up
6100 the image.
6101 The file contains package information on a line-per-package
6102 basis as follows:
6103 <literallayout class='monospaced'>
6104 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
6105 </literallayout>
6106 </para>
6107
6108 <para>
6109 The
6110 <link linkend='ref-classes-image'><filename>image</filename></link>
6111 class defines the manifest file as follows:
6112 <literallayout class='monospaced'>
6113 IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
6114 </literallayout>
6115 The location is derived using the
6116 <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
6117 and
6118 <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>
6119 variables.
6120 You can find information on how the image
6121 is created in the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006122 "<ulink url='&YOCTO_DOCS_OM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
6123 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006124 </para>
6125 </glossdef>
6126 </glossentry>
6127
6128 <glossentry id='var-IMAGE_NAME'><glossterm>IMAGE_NAME</glossterm>
6129 <info>
6130 IMAGE_NAME[doc] = "The name of the output image files minus the extension."
6131 </info>
6132 <glossdef>
6133 <para role="glossdeffirst">
6134<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6135 The name of the output image files minus the extension.
6136 This variable is derived using the
6137 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
6138 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
6139 and
6140 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
6141 variables:
6142 <literallayout class='monospaced'>
6143 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
6144 </literallayout>
6145 </para>
6146 </glossdef>
6147 </glossentry>
6148
6149 <glossentry id='var-IMAGE_OVERHEAD_FACTOR'><glossterm>IMAGE_OVERHEAD_FACTOR</glossterm>
6150 <info>
6151 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."
6152 </info>
6153 <glossdef>
6154 <para role="glossdeffirst">
6155<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6156 Defines a multiplier that the build system applies to the initial image
6157 size for cases when the multiplier times the returned disk usage value
6158 for the image is greater than the sum of
6159 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6160 and
6161 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>.
6162 The result of the multiplier applied to the initial image size creates
6163 free disk space in the image as overhead.
6164 By default, the build process uses a multiplier of 1.3 for this variable.
6165 This default value results in 30% free disk space added to the image when this
6166 method is used to determine the final generated image size.
6167 You should be aware that post install scripts and the package management
6168 system uses disk space inside this overhead area.
6169 Consequently, the multiplier does not produce an image with
6170 all the theoretical free disk space.
6171 See <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>
6172 for information on how the build system determines the overall image size.
6173 </para>
6174
6175 <para>
6176 The default 30% free disk space typically gives the image enough room to boot
6177 and allows for basic post installs while still leaving a small amount of
6178 free disk space.
6179 If 30% free space is inadequate, you can increase the default value.
6180 For example, the following setting gives you 50% free space added to the image:
6181 <literallayout class='monospaced'>
6182 IMAGE_OVERHEAD_FACTOR = "1.5"
6183 </literallayout>
6184 </para>
6185
6186 <para>
6187 Alternatively, you can ensure a specific amount of free disk space is added
6188 to the image by using the
6189 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6190 variable.
6191 </para>
6192 </glossdef>
6193 </glossentry>
6194
6195 <glossentry id='var-IMAGE_PKGTYPE'><glossterm>IMAGE_PKGTYPE</glossterm>
6196 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006197 IMAGE_PKGTYPE[doc] = "Defines the package type (i.e. DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006198 </info>
6199 <glossdef>
6200 <para role="glossdeffirst">
6201<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04006202 Defines the package type (i.e. DEB, RPM, IPK, or TAR) used
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006203 by the OpenEmbedded build system.
6204 The variable is defined appropriately by the
6205 <link linkend='ref-classes-package_deb'><filename>package_deb</filename></link>,
6206 <link linkend='ref-classes-package_rpm'><filename>package_rpm</filename></link>,
6207 <link linkend='ref-classes-package_ipk'><filename>package_ipk</filename></link>,
6208 or
6209 <link linkend='ref-classes-package_tar'><filename>package_tar</filename></link>
6210 class.
6211 <note><title>Warning</title>
6212 The <filename>package_tar</filename> class is broken
6213 and is not supported.
6214 It is recommended that you do not use it.
6215 </note>
6216 </para>
6217
6218 <para>
6219 The
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006220 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_*</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006221 and
6222 <link linkend='ref-classes-image'><filename>image</filename></link>
6223 classes use the <filename>IMAGE_PKGTYPE</filename> for
6224 packaging up images and SDKs.
6225 </para>
6226
6227 <para>
6228 You should not set the <filename>IMAGE_PKGTYPE</filename>
6229 manually.
6230 Rather, the variable is set indirectly through the
6231 appropriate
6232 <link linkend='ref-classes-package'><filename>package_*</filename></link>
6233 class using the
6234 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
6235 variable.
6236 The OpenEmbedded build system uses the first package type
6237 (e.g. DEB, RPM, or IPK) that appears with the variable
6238 <note>
6239 Files using the <filename>.tar</filename> format are
6240 never used as a substitute packaging format for DEB,
6241 RPM, and IPK formatted files for your image or SDK.
6242 </note>
6243 </para>
6244 </glossdef>
6245 </glossentry>
6246
6247 <glossentry id='var-IMAGE_POSTPROCESS_COMMAND'><glossterm>IMAGE_POSTPROCESS_COMMAND</glossterm>
6248 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006249 IMAGE_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system creates the final image output files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006250 </info>
6251 <glossdef>
6252 <para role="glossdeffirst">
6253<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6254 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006255 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006256 output files.
6257 You can specify functions separated by semicolons:
6258 <literallayout class='monospaced'>
6259 IMAGE_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6260 </literallayout>
6261 </para>
6262
6263 <para>
6264 If you need to pass the root filesystem path to a command
6265 within the function, you can use
6266 <filename>${IMAGE_ROOTFS}</filename>, which points to
6267 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006268 See the
6269 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6270 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006271 </para>
6272 </glossdef>
6273 </glossentry>
6274
6275 <glossentry id='var-IMAGE_PREPROCESS_COMMAND'><glossterm>IMAGE_PREPROCESS_COMMAND</glossterm>
6276 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006277 IMAGE_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system creates the final image output files."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006278 </info>
6279 <glossdef>
6280 <para role="glossdeffirst">
6281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6282 Specifies a list of functions to call before the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006283 OpenEmbedded build system creates the final image
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006284 output files.
6285 You can specify functions separated by semicolons:
6286 <literallayout class='monospaced'>
6287 IMAGE_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
6288 </literallayout>
6289 </para>
6290
6291 <para>
6292 If you need to pass the root filesystem path to a command
6293 within the function, you can use
6294 <filename>${IMAGE_ROOTFS}</filename>, which points to
6295 the directory that becomes the root filesystem image.
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006296 See the
6297 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
6298 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006299 </para>
6300 </glossdef>
6301 </glossentry>
6302
6303 <glossentry id='var-IMAGE_ROOTFS'><glossterm>IMAGE_ROOTFS</glossterm>
6304 <info>
6305 IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
6306 </info>
6307 <glossdef>
6308 <para role="glossdeffirst">
6309<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6310 The location of the root filesystem while it is under
6311 construction (i.e. during the
6312 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
6313 task).
6314 This variable is not configurable.
6315 Do not change it.
6316 </para>
6317 </glossdef>
6318 </glossentry>
6319
6320 <glossentry id='var-IMAGE_ROOTFS_ALIGNMENT'><glossterm>IMAGE_ROOTFS_ALIGNMENT</glossterm>
6321 <info>
6322 IMAGE_ROOTFS_ALIGNMENT[doc] = "Specifies the alignment for the output image file in Kbytes."
6323 </info>
6324 <glossdef>
6325 <para role="glossdeffirst">
6326<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6327 Specifies the alignment for the output image file in
6328 Kbytes.
6329 If the size of the image is not a multiple of
6330 this value, then the size is rounded up to the nearest
6331 multiple of the value.
6332 The default value is "1".
6333 See
6334 <link linkend='var-IMAGE_ROOTFS_SIZE'><filename>IMAGE_ROOTFS_SIZE</filename></link>
6335 for additional information.
6336 </para>
6337 </glossdef>
6338 </glossentry>
6339
6340 <glossentry id='var-IMAGE_ROOTFS_EXTRA_SPACE'><glossterm>IMAGE_ROOTFS_EXTRA_SPACE</glossterm>
6341 <info>
6342 IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
6343 </info>
6344 <glossdef>
6345 <para role="glossdeffirst">
6346<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6347 Defines additional free disk space created in the image in Kbytes.
6348 By default, this variable is set to "0".
6349 This free disk space is added to the image after the build system determines
6350 the image size as described in
6351 <filename><link linkend='var-IMAGE_ROOTFS_SIZE'>IMAGE_ROOTFS_SIZE</link></filename>.
6352 </para>
6353
6354 <para>
6355 This variable is particularly useful when you want to ensure that a
6356 specific amount of free disk space is available on a device after an image
6357 is installed and running.
6358 For example, to be sure 5 Gbytes of free disk space is available, set the
6359 variable as follows:
6360 <literallayout class='monospaced'>
6361 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
6362 </literallayout>
6363 </para>
6364
6365 <para>
6366 For example, the Yocto Project Build Appliance specifically requests 40 Gbytes
6367 of extra space with the line:
6368 <literallayout class='monospaced'>
6369 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
6370 </literallayout>
6371 </para>
6372 </glossdef>
6373 </glossentry>
6374
6375 <glossentry id='var-IMAGE_ROOTFS_SIZE'><glossterm>IMAGE_ROOTFS_SIZE</glossterm>
6376 <info>
6377 IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
6378 </info>
6379 <glossdef>
6380 <para role="glossdeffirst">
6381<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6382 Defines the size in Kbytes for the generated image.
6383 The OpenEmbedded build system determines the final size for the generated
6384 image using an algorithm that takes into account the initial disk space used
6385 for the generated image, a requested size for the image, and requested
6386 additional free disk space to be added to the image.
6387 Programatically, the build system determines the final size of the
6388 generated image as follows:
6389 <literallayout class='monospaced'>
6390 if (image-du * overhead) &lt; rootfs-size:
6391 internal-rootfs-size = rootfs-size + xspace
6392 else:
6393 internal-rootfs-size = (image-du * overhead) + xspace
6394
6395 where:
6396
6397 image-du = Returned value of the du command on
6398 the image.
6399
6400 overhead = IMAGE_OVERHEAD_FACTOR
6401
6402 rootfs-size = IMAGE_ROOTFS_SIZE
6403
6404 internal-rootfs-size = Initial root filesystem
6405 size before any modifications.
6406
6407 xspace = IMAGE_ROOTFS_EXTRA_SPACE
6408 </literallayout>
6409 </para>
6410
6411 <para>
6412 See the <link linkend='var-IMAGE_OVERHEAD_FACTOR'><filename>IMAGE_OVERHEAD_FACTOR</filename></link>
6413 and <link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'><filename>IMAGE_ROOTFS_EXTRA_SPACE</filename></link>
6414 variables for related information.
6415<!-- In the above example, <filename>overhead</filename> is defined by the
6416 <filename><link linkend='var-IMAGE_OVERHEAD_FACTOR'>IMAGE_OVERHEAD_FACTOR</link></filename>
6417 variable, <filename>xspace</filename> is defined by the
6418 <filename><link linkend='var-IMAGE_ROOTFS_EXTRA_SPACE'>IMAGE_ROOTFS_EXTRA_SPACE</link></filename>
6419 variable, and <filename>du</filename> is the results of the disk usage command
6420 on the initially generated image. -->
6421 </para>
6422 </glossdef>
6423 </glossentry>
6424
6425 <glossentry id='var-IMAGE_TYPEDEP'><glossterm>IMAGE_TYPEDEP</glossterm>
6426 <info>
6427 IMAGE_TYPEDEP[doc] = "Specifies a dependency from one image type on another."
6428 </info>
6429 <glossdef>
6430 <para role="glossdeffirst">
6431<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6432 Specifies a dependency from one image type on another.
6433 Here is an example from the
6434 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6435 class:
6436 <literallayout class='monospaced'>
6437 IMAGE_TYPEDEP_live = "ext3"
6438 </literallayout>
6439 </para>
6440
6441 <para>
6442 In the previous example, the variable ensures that when
6443 "live" is listed with the
6444 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6445 variable, the OpenEmbedded build system produces an
6446 <filename>ext3</filename> image first since one of the
6447 components of the live
6448 image is an <filename>ext3</filename>
6449 formatted partition containing the root
6450 filesystem.
6451 </para>
6452 </glossdef>
6453 </glossentry>
6454
6455 <glossentry id='var-IMAGE_TYPES'><glossterm>IMAGE_TYPES</glossterm>
6456 <info>
6457 IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
6458 </info>
6459 <glossdef>
6460 <para role="glossdeffirst">
6461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6462 Specifies the complete list of supported image types
6463 by default:
6464 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006465 btrfs
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006466 cpio
6467 cpio.gz
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006468 cpio.lz4
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006469 cpio.lzma
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006470 cpio.xz
6471 cramfs
6472 elf
6473 ext2
6474 ext2.bz2
6475 ext2.gz
6476 ext2.lzma
6477 ext3
6478 ext3.gz
6479 ext4
6480 ext4.gz
6481 hdddirect
6482 hddimg
6483 iso
6484 jffs2
6485 jffs2.sum
6486 multiubi
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006487 squashfs
6488 squashfs-lzo
6489 squashfs-xz
6490 tar
6491 tar.bz2
6492 tar.gz
6493 tar.lz4
6494 tar.xz
6495 ubi
6496 ubifs
Patrick Williamsf1e5d692016-03-30 15:21:19 -05006497 wic
6498 wic.bz2
6499 wic.gz
6500 wic.lzma
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006501 </literallayout>
6502 </para>
6503
6504 <para>
6505 For more information about these types of images, see
6506 <filename>meta/classes/image_types*.bbclass</filename>
6507 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006508 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006509 </para>
6510 </glossdef>
6511 </glossentry>
6512
6513 <glossentry id='var-INC_PR'><glossterm>INC_PR</glossterm>
6514 <info>
6515 INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
6516 </info>
6517 <glossdef>
6518 <para role="glossdeffirst">
6519<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6520 Helps define the recipe revision for recipes that share
6521 a common <filename>include</filename> file.
6522 You can think of this variable as part of the recipe revision
6523 as set from within an include file.
6524 </para>
6525
6526 <para>
6527 Suppose, for example, you have a set of recipes that
6528 are used across several projects.
6529 And, within each of those recipes the revision
6530 (its <link linkend='var-PR'><filename>PR</filename></link>
6531 value) is set accordingly.
6532 In this case, when the revision of those recipes changes,
6533 the burden is on you to find all those recipes and
6534 be sure that they get changed to reflect the updated
6535 version of the recipe.
6536 In this scenario, it can get complicated when recipes
6537 that are used in many places and provide common functionality
6538 are upgraded to a new revision.
6539 </para>
6540
6541 <para>
6542 A more efficient way of dealing with this situation is
6543 to set the <filename>INC_PR</filename> variable inside
6544 the <filename>include</filename> files that the recipes
6545 share and then expand the <filename>INC_PR</filename>
6546 variable within the recipes to help
6547 define the recipe revision.
6548 </para>
6549
6550 <para>
6551 The following provides an example that shows how to use
6552 the <filename>INC_PR</filename> variable
6553 given a common <filename>include</filename> file that
6554 defines the variable.
6555 Once the variable is defined in the
6556 <filename>include</filename> file, you can use the
6557 variable to set the <filename>PR</filename> values in
6558 each recipe.
6559 You will notice that when you set a recipe's
6560 <filename>PR</filename> you can provide more granular
6561 revisioning by appending values to the
6562 <filename>INC_PR</filename> variable:
6563 <literallayout class='monospaced'>
6564recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
6565recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
6566recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
6567recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
6568 </literallayout>
6569 The first line of the example establishes the baseline
6570 revision to be used for all recipes that use the
6571 <filename>include</filename> file.
6572 The remaining lines in the example are from individual
6573 recipes and show how the <filename>PR</filename> value
6574 is set.
6575 </para>
6576 </glossdef>
6577 </glossentry>
6578
6579 <glossentry id='var-INCOMPATIBLE_LICENSE'><glossterm>INCOMPATIBLE_LICENSE</glossterm>
6580 <info>
6581 INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
6582 </info>
6583 <glossdef>
6584 <para role="glossdeffirst">
6585<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6586 Specifies a space-separated list of license names
6587 (as they would appear in
6588 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
6589 that should be excluded from the build.
6590 Recipes that provide no alternatives to listed incompatible
6591 licenses are not built.
6592 Packages that are individually licensed with the specified
6593 incompatible licenses will be deleted.
6594 </para>
6595
6596 <note>
6597 This functionality is only regularly tested using
6598 the following setting:
6599 <literallayout class='monospaced'>
6600 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
6601 </literallayout>
6602 Although you can use other settings, you might be required
6603 to remove dependencies on or provide alternatives to
6604 components that are required to produce a functional system
6605 image.
6606 </note>
6607 </glossdef>
6608 </glossentry>
6609
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006610 <glossentry id='var-INHERIT'><glossterm>INHERIT</glossterm>
6611 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006612 INHERIT[doc] = "Causes the named class or classes to be inherited globally."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006613 </info>
6614 <glossdef>
6615 <para role="glossdeffirst">
6616<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05006617 Causes the named class or classes to be inherited globally.
6618 Anonymous functions in the class or classes
6619 are not executed for the
6620 base configuration and in each individual recipe.
6621 The OpenEmbedded build system ignores changes to
6622 <filename>INHERIT</filename> in individual recipes.
6623 </para>
6624
6625 <para>
6626 For more information on <filename>INHERIT</filename>, see
6627 the
6628 "<ulink url="&YOCTO_DOCS_BB_URL;#inherit-configuration-directive"><filename>INHERIT</filename> Configuration Directive</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04006629 section in the Bitbake User Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006630 </para>
6631 </glossdef>
6632 </glossentry>
6633
6634 <glossentry id='var-INHERIT_DISTRO'><glossterm>INHERIT_DISTRO</glossterm>
6635 <info>
6636 INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
6637 </info>
6638 <glossdef>
6639 <para role="glossdeffirst">
6640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6641 Lists classes that will be inherited at the
6642 distribution level.
6643 It is unlikely that you want to edit this variable.
6644 </para>
6645
6646 <para>
6647 The default value of the variable is set as follows in the
6648 <filename>meta/conf/distro/defaultsetup.conf</filename>
6649 file:
6650 <literallayout class='monospaced'>
6651 INHERIT_DISTRO ?= "debian devshell sstate license"
6652 </literallayout>
6653 </para>
6654 </glossdef>
6655 </glossentry>
6656
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006657 <glossentry id='var-INHIBIT_DEFAULT_DEPS'><glossterm>INHIBIT_DEFAULT_DEPS</glossterm>
6658 <info>
6659 INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
6660 </info>
6661 <glossdef>
6662 <para role="glossdeffirst">
6663<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6664 Prevents the default dependencies, namely the C compiler
6665 and standard C library (libc), from being added to
6666 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
6667 This variable is usually used within recipes that do not
6668 require any compilation using the C compiler.
6669 </para>
6670
6671 <para>
6672 Set the variable to "1" to prevent the default dependencies
6673 from being added.
6674 </para>
6675 </glossdef>
6676 </glossentry>
6677
6678 <glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
6679 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006680 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 -05006681 </info>
6682 <glossdef>
6683 <para role="glossdeffirst">
6684<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6685 Prevents the OpenEmbedded build system from splitting
6686 out debug information during packaging.
6687 By default, the build system splits out debugging
6688 information during the
6689 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
6690 task.
6691 For more information on how debug information is split out,
6692 see the
6693 <link linkend='var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></link>
6694 variable.
6695 </para>
6696
6697 <para>
6698 To prevent the build system from splitting out
6699 debug information during packaging, set the
6700 <filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename> variable
6701 as follows:
6702 <literallayout class='monospaced'>
6703 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
6704 </literallayout>
6705 </para>
6706 </glossdef>
6707 </glossentry>
6708
6709 <glossentry id='var-INHIBIT_PACKAGE_STRIP'><glossterm>INHIBIT_PACKAGE_STRIP</glossterm>
6710 <info>
6711 INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
6712 </info>
6713 <glossdef>
6714 <para role="glossdeffirst">
6715<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006716 If set to "1", causes the build to not strip binaries in
6717 resulting packages and prevents the
6718 <filename>-dbg</filename> package from containing the
6719 source files.
6720 </para>
6721
6722 <para>
6723 By default, the OpenEmbedded build system strips
6724 binaries and puts the debugging symbols into
6725 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
6726 Consequently, you should not set
6727 <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
6728 to debug in general.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006729 </para>
6730 </glossdef>
6731 </glossentry>
6732
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006733 <glossentry id='var-INITRAMFS_FSTYPES'><glossterm>INITRAMFS_FSTYPES</glossterm>
6734 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006735 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 -05006736 </info>
6737 <glossdef>
6738 <para role="glossdeffirst">
6739<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6740 Defines the format for the output image of an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006741 RAM filesystem (initramfs), which is used during boot.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006742 Supported formats are the same as those supported by the
6743 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6744 variable.
6745 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006746
6747 <para>
6748 The default value of this variable, which is set in the
6749 <filename>meta/conf/bitbake.conf</filename> configuration
6750 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006751 <link linkend='source-directory'>Source Directory</link>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006752 is "cpio.gz".
6753 The Linux kernel's initramfs mechanism, as opposed to the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006754 initial RAM filesystem
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006755 <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
6756 mechanism, expects an optionally compressed cpio
6757 archive.
6758 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006759 </glossdef>
6760 </glossentry>
6761
6762 <glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
6763 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006764 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 -05006765 </info>
6766 <glossdef>
6767 <para role="glossdeffirst">
6768<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006769 Specifies the
6770 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
6771 name of an image recipe that is used to build an initial
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006772 RAM filesystem (initramfs) image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006773 In other words, the <filename>INITRAMFS_IMAGE</filename>
6774 variable causes an additional recipe to be built as
6775 a dependency to whatever root filesystem recipe you
6776 might be using (e.g. <filename>core-image-sato</filename>).
6777 The initramfs image recipe you provide should set
6778 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6779 to
6780 <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
6781 </para>
6782
6783 <para>
6784 An initramfs image provides a temporary root filesystem
6785 used for early system initialization (e.g. loading of
6786 modules needed to locate and mount the "real" root
6787 filesystem).
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006788 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006789 See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
6790 recipe in the
6791 <link linkend='source-directory'>Source Directory</link>
6792 for an example initramfs recipe.
6793 To select this sample recipe as the one built
6794 to provide the initramfs image,
6795 set <filename>INITRAMFS_IMAGE</filename> to
6796 "core-image-minimal-initramfs".
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006797 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006798 </para>
6799
6800 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006801 You can also find more information by referencing the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006802 <filename>meta-poky/conf/local.conf.sample.extended</filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -04006803 configuration file in the Source Directory,
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006804 the
6805 <link linkend='ref-classes-image'><filename>image</filename></link>
6806 class, and the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006807 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006808 class to see how to use the
6809 <filename>INITRAMFS_IMAGE</filename> variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006810 </para>
6811
6812 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006813 If <filename>INITRAMFS_IMAGE</filename> is empty, which is
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006814 the default, then no initramfs image is built.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006815 </para>
6816
6817 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006818 For more information, you can also see the
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006819 <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
6820 variable, which allows the generated image to be bundled
6821 inside the kernel image.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006822 Additionally, for information on creating an initramfs
6823 image, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006824 "<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 -05006825 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006826 </para>
6827 </glossdef>
6828 </glossentry>
6829
6830 <glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
6831 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006832 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 -05006833 </info>
6834 <glossdef>
6835 <para role="glossdeffirst">
6836<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6837 Controls whether or not the image recipe specified by
6838 <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006839 is run through an extra pass
6840 (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
6841 during kernel compilation in order to build a single binary
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006842 that contains both the kernel image and the initial RAM
6843 filesystem (initramfs) image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006844 This makes use of the
6845 <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
6846 kernel feature.
6847 <note>
6848 Using an extra compilation pass to bundle the initramfs
6849 avoids a circular dependency between the kernel recipe and
6850 the initramfs recipe should the initramfs include kernel
6851 modules.
6852 Should that be the case, the initramfs recipe depends on
6853 the kernel for the kernel modules, and the kernel depends
6854 on the initramfs recipe since the initramfs is bundled
6855 inside the kernel image.
6856 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006857 </para>
6858
6859 <para>
6860 The combined binary is deposited into the
6861 <filename>tmp/deploy</filename> directory, which is part
6862 of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05006863 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006864 </para>
6865
6866 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006867 Setting the variable to "1" in a configuration file causes the
6868 OpenEmbedded build system to generate a kernel image with the
Brad Bishop316dfdd2018-06-25 12:45:53 -04006869 initramfs specified in <filename>INITRAMFS_IMAGE</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006870 bundled within:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006871 <literallayout class='monospaced'>
6872 INITRAMFS_IMAGE_BUNDLE = "1"
6873 </literallayout>
6874 By default, the
6875 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
6876 class sets this variable to a null string as follows:
6877 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006878 INITRAMFS_IMAGE_BUNDLE ?= ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006879 </literallayout>
6880 <note>
6881 You must set the
6882 <filename>INITRAMFS_IMAGE_BUNDLE</filename> variable in
6883 a configuration file.
6884 You cannot set the variable in a recipe file.
6885 </note>
6886 See the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006887 <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 -05006888 file for additional information.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05006889 Also, for information on creating an initramfs, see the
6890 "<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 -05006891 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006892 </para>
6893 </glossdef>
6894 </glossentry>
6895
6896 <glossentry id='var-INITRD'><glossterm>INITRD</glossterm>
6897 <info>
6898 INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
6899 </info>
6900 <glossdef>
6901 <para role="glossdeffirst">
6902<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6903 Indicates list of filesystem images to concatenate and use
6904 as an initial RAM disk (<filename>initrd</filename>).
6905 </para>
6906
6907 <para>
6908 The <filename>INITRD</filename> variable is an optional
6909 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006910 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006911 class.
6912 </para>
6913 </glossdef>
6914 </glossentry>
6915
6916 <glossentry id='var-INITRD_IMAGE'><glossterm>INITRD_IMAGE</glossterm>
6917 <info>
6918 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."
6919 </info>
6920 <glossdef>
6921 <para role="glossdeffirst">
6922<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6923 When building a "live" bootable image (i.e. when
6924 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
6925 contains "live"), <filename>INITRD_IMAGE</filename>
6926 specifies the image recipe that should be built
6927 to provide the initial RAM disk image.
6928 The default value is "core-image-minimal-initramfs".
6929 </para>
6930
6931 <para>
6932 See the
6933 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
6934 class for more information.
6935 </para>
6936 </glossdef>
6937 </glossentry>
6938
6939 <glossentry id='var-INITSCRIPT_NAME'><glossterm>INITSCRIPT_NAME</glossterm>
6940 <info>
6941 INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
6942 </info>
6943 <glossdef>
6944 <para role="glossdeffirst">
6945<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6946 The filename of the initialization script as installed to
6947 <filename>${sysconfdir}/init.d</filename>.
6948 </para>
6949
6950 <para>
6951 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6952 The variable is mandatory.
6953 </para>
6954 </glossdef>
6955 </glossentry>
6956
6957 <glossentry id='var-INITSCRIPT_PACKAGES'><glossterm>INITSCRIPT_PACKAGES</glossterm>
6958 <info>
6959 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."
6960 </info>
6961 <glossdef>
6962 <para role="glossdeffirst">
6963<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6964 A list of the packages that contain initscripts.
6965 If multiple packages are specified, you need to append the package name
6966 to the other <filename>INITSCRIPT_*</filename> as an override.
6967 </para>
6968
6969 <para>
6970 This variable is used in recipes when using <filename>update-rc.d.bbclass</filename>.
6971 The variable is optional and defaults to the
6972 <link linkend='var-PN'><filename>PN</filename></link> variable.
6973 </para>
6974 </glossdef>
6975 </glossentry>
6976
6977 <glossentry id='var-INITSCRIPT_PARAMS'><glossterm>INITSCRIPT_PARAMS</glossterm>
6978 <info>
6979 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."
6980 </info>
6981 <glossdef>
6982 <para role="glossdeffirst">
6983<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
6984 Specifies the options to pass to <filename>update-rc.d</filename>.
6985 Here is an example:
6986 <literallayout class='monospaced'>
6987 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
6988 </literallayout>
6989 </para>
6990
6991 <para>
6992 In this example, the script has a runlevel of 99,
6993 starts the script in initlevels 2 and 5, and
6994 stops the script in levels 0, 1 and 6.
6995 </para>
6996
6997 <para>
6998 The variable's default value is "defaults", which is
6999 set in the
7000 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
7001 class.
7002 </para>
7003
7004 <para>
7005 The value in
7006 <filename>INITSCRIPT_PARAMS</filename> is passed through
7007 to the <filename>update-rc.d</filename> command.
7008 For more information on valid parameters, please see the
7009 <filename>update-rc.d</filename> manual page at
7010 <ulink url='http://www.tin.org/bin/man.cgi?section=8&amp;topic=update-rc.d'></ulink>.
7011 </para>
7012 </glossdef>
7013 </glossentry>
7014
7015 <glossentry id='var-INSANE_SKIP'><glossterm>INSANE_SKIP</glossterm>
7016 <info>
7017 INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
7018 </info>
7019 <glossdef>
7020 <para role="glossdeffirst">
7021<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7022 Specifies the QA checks to skip for a specific package
7023 within a recipe.
7024 For example, to skip the check for symbolic link
7025 <filename>.so</filename> files in the main package of a
7026 recipe, add the following to the recipe.
7027 The package name override must be used, which in this
7028 example is <filename>${PN}</filename>:
7029 <literallayout class='monospaced'>
7030 INSANE_SKIP_${PN} += "dev-so"
7031 </literallayout>
7032 </para>
7033
7034 <para>
7035 See the "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
7036 section for a list of the valid QA checks you can
7037 specify using this variable.
7038 </para>
7039 </glossdef>
7040 </glossentry>
7041
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007042 <glossentry id='var-INSTALL_TIMEZONE_FILE'><glossterm>INSTALL_TIMEZONE_FILE</glossterm>
7043 <info>
7044 INSTALL_TIMEZONE_FILE[doc] = "Enables installation of the /etc/timezone file."
7045 </info>
7046 <glossdef>
7047 <para role="glossdeffirst">
7048<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7049 By default, the <filename>tzdata</filename> recipe packages
7050 an <filename>/etc/timezone</filename> file.
7051 Set the <filename>INSTALL_TIMEZONE_FILE</filename>
7052 variable to "0" at the configuration level to disable this
7053 behavior.
7054 </para>
7055 </glossdef>
7056 </glossentry>
7057
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007058 <glossentry id='var-IPK_FEED_URIS'><glossterm>IPK_FEED_URIS</glossterm>
7059 <info>
7060 IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
7061 </info>
7062 <glossdef>
7063 <para role="glossdeffirst">
7064<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7065 When the IPK backend is in use and package management
7066 is enabled on the target, you can use this variable to
7067 set up <filename>opkg</filename> in the target image
7068 to point to package feeds on a nominated server.
7069 Once the feed is established, you can perform
7070 installations or upgrades using the package manager
7071 at runtime.
7072 </para>
7073 </glossdef>
7074 </glossentry>
7075
7076<!--
7077 <glossentry id='var-INTERCEPT_DIR'><glossterm>INTERCEPT_DIR</glossterm>
7078 <glossdef>
7079 <para>
7080 An environment variable that defines the directory where
7081 post installation hooks are installed for the
7082 post install environment.
7083 This variable is fixed as follows:
7084 <literallayout class='monospaced'>
7085 ${WORKDIR}/intercept_scripts
7086 </literallayout>
7087 </para>
7088
7089 <para>
7090 After installation of a target's root filesystem,
7091 post installation scripts, which are essentially bash scripts,
7092 are all executed just a single time.
7093 Limiting execution of these scripts minimizes installation
7094 time that would be lengthened due to certain packages
7095 triggering redundant operations.
7096 For example, consider the installation of font packages
7097 as a common example.
7098 Without limiting the execution of post installation scripts,
7099 all font directories would be rescanned to create the
7100 cache after each individual font package was installed.
7101 </para>
7102
7103 <para>
7104 Do not edit the <filename>INTERCEPT_DIR</filename>
7105 variable.
7106 </para>
7107 </glossdef>
7108 </glossentry>
7109-->
7110
7111 </glossdiv>
7112
7113<!-- <glossdiv id='var-glossary-j'><title>J</title>-->
7114<!-- </glossdiv>-->
7115
7116 <glossdiv id='var-glossary-k'><title>K</title>
7117
7118 <glossentry id='var-KARCH'><glossterm>KARCH</glossterm>
7119 <info>
7120 KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
7121 </info>
7122 <glossdef>
7123 <para role="glossdeffirst">
7124<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7125 Defines the kernel architecture used when assembling
7126 the configuration.
7127 Architectures supported for this release are:
7128 <literallayout class='monospaced'>
7129 powerpc
7130 i386
7131 x86_64
7132 arm
7133 qemu
7134 mips
7135 </literallayout>
7136 </para>
7137
7138 <para>
7139 You define the <filename>KARCH</filename> variable in the
7140 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7141 </para>
7142 </glossdef>
7143 </glossentry>
7144
7145 <glossentry id='var-KBRANCH'><glossterm>KBRANCH</glossterm>
7146 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007147 KBRANCH[doc] = "A regular expression used by the build process to explicitly identify the kernel branch that is validated, patched, and configured during a build."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007148 </info>
7149 <glossdef>
7150 <para role="glossdeffirst">
7151<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7152 A regular expression used by the build process to explicitly
7153 identify the kernel branch that is validated, patched,
7154 and configured during a build.
7155 You must set this variable to ensure the exact kernel
7156 branch you want is being used by the build process.
7157 </para>
7158
7159 <para>
7160 Values for this variable are set in the kernel's recipe
7161 file and the kernel's append file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007162 For example, if you are using the
7163 <filename>linux-yocto_4.12</filename> kernel, the kernel
7164 recipe file is the
7165 <filename>meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007166 file.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007167 <filename>KBRANCH</filename> is set as follows in that
7168 kernel recipe file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007169 <literallayout class='monospaced'>
7170 KBRANCH ?= "standard/base"
7171 </literallayout>
7172 </para>
7173
7174 <para>
7175 This variable is also used from the kernel's append file
7176 to identify the kernel branch specific to a particular
7177 machine or target hardware.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007178 Continuing with the previous kernel example, the kernel's
7179 append file (i.e.
7180 <filename>linux-yocto_4.12.bbappend</filename>) is located
7181 in the BSP layer for a given machine.
7182 For example, the append file for the Beaglebone,
7183 EdgeRouter, and generic versions of both 32 and 64-bit IA
7184 machines (<filename>meta-yocto-bsp</filename>) is named
7185 <filename>meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend</filename>.
7186 Here are the related statements from that append file:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007187 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007188 KBRANCH_genericx86 = "standard/base"
7189 KBRANCH_genericx86-64 = "standard/base"
7190 KBRANCH_edgerouter = "standard/edgerouter"
7191 KBRANCH_beaglebone = "standard/beaglebone"
7192 KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007193 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007194 The <filename>KBRANCH</filename> statements identify
7195 the kernel branch to use when building for each
7196 supported BSP.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007197 </para>
7198 </glossdef>
7199 </glossentry>
7200
7201 <glossentry id='var-KBUILD_DEFCONFIG'><glossterm>KBUILD_DEFCONFIG</glossterm>
7202 <info>
7203 KBUILD_DEFCONFIG[doc] = "Specifies an "in-tree" kernel configuration file for use during a kernel build."
7204 </info>
7205 <glossdef>
7206 <para role="glossdeffirst">
7207<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7208 When used with the
7209 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
7210 class, specifies an "in-tree" kernel configuration file
7211 for use during a kernel build.
7212 </para>
7213
7214 <para>
7215 Typically, when using a <filename>defconfig</filename> to
7216 configure a kernel during a build, you place the
7217 file in your layer in the same manner as you would
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007218 place patch files and configuration fragment files (i.e.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007219 "out-of-tree").
7220 However, if you want to use a <filename>defconfig</filename>
7221 file that is part of the kernel tree (i.e. "in-tree"),
7222 you can use the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007223 <filename>KBUILD_DEFCONFIG</filename> variable and append
7224 the
7225 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
7226 variable to point to the <filename>defconfig</filename>
7227 file.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007228 </para>
7229
7230 <para>
7231 To use the variable, set it in the append file for your
7232 kernel recipe using the following form:
7233 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007234 KBUILD_DEFCONFIG_<replaceable>KMACHINE</replaceable> ?= <replaceable>defconfig_file</replaceable>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007235 </literallayout>
7236 Here is an example from a "raspberrypi2"
7237 <filename>KMACHINE</filename> build that uses a
7238 <filename>defconfig</filename> file named
7239 "bcm2709_defconfig":
7240 <literallayout class='monospaced'>
7241 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
7242 </literallayout>
7243 As an alternative, you can use the following within your
7244 append file:
7245 <literallayout class='monospaced'>
7246 KBUILD_DEFCONFIG_pn-linux-yocto ?= <replaceable>defconfig_file</replaceable>
7247 </literallayout>
7248 For more information on how to use the
7249 <filename>KBUILD_DEFCONFIG</filename> variable, see the
7250 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-an-in-tree-defconfig-file'>Using an "In-Tree" <filename>defconfig</filename> File</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04007251 section in the Yocto Project Linux Kernel Development
7252 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007253 </para>
7254 </glossdef>
7255 </glossentry>
7256
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007257 <glossentry id='var-KERNEL_ALT_IMAGETYPE'><glossterm>KERNEL_ALT_IMAGETYPE</glossterm>
7258 <info>
7259 KERNEL_ALT_IMAGETYPE[doc] = "Specifies an alternate kernel image type for creation."
7260 </info>
7261 <glossdef>
7262 <para role="glossdeffirst">
7263<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7264 Specifies an alternate kernel image type for creation in
7265 addition to the kernel image type specified using the
7266 <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
7267 variable.
7268 </para>
7269 </glossdef>
7270 </glossentry>
7271
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007272 <glossentry id='var-KERNEL_CLASSES'><glossterm>KERNEL_CLASSES</glossterm>
7273 <info>
7274 KERNEL_CLASSES[doc] = "A list of classes defining kernel image types that kernel class should inherit."
7275 </info>
7276 <glossdef>
7277 <para role="glossdeffirst">
7278<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7279 A list of classes defining kernel image types that the
7280 <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
7281 class should inherit.
7282 You typically append this variable to enable extended image
7283 types.
7284 An example is the "kernel-fitimage", which enables
7285 fitImage support and resides in
7286 <filename>meta/classes/kernel-fitimage.bbclass</filename>.
7287 You can register custom kernel image types with the
7288 <filename>kernel</filename> class using this variable.
7289 </para>
7290 </glossdef>
7291 </glossentry>
7292
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007293 <glossentry id='var-KERNEL_DEVICETREE'><glossterm>KERNEL_DEVICETREE</glossterm>
7294 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007295 KERNEL_DEVICETREE[doc] = "Specifies the name of the generated Linux kernel device tree (i.e. the .dtb) file."
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007296 </info>
7297 <glossdef>
7298 <para role="glossdeffirst">
7299<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7300 Specifies the name of the generated Linux kernel device tree
7301 (i.e. the <filename>.dtb</filename>) file.
7302 <note>
7303 Legacy support exists for specifying the full path
7304 to the device tree.
7305 However, providing just the <filename>.dtb</filename>
7306 file is preferred.
7307 </note>
7308 In order to use this variable, you must have the include
7309 files in your kernel recipe:
7310 <literallayout class='monospaced'>
7311 require recipes-kernel/linux/linux-dtb.inc
7312 </literallayout>
7313 or
7314 <literallayout class='monospaced'>
7315 require recipes-kernel/linux/linux-yocto.inc
7316 </literallayout>
7317 </para>
7318 </glossdef>
7319 </glossentry>
7320
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007321 <glossentry id='var-KERNEL_EXTRA_ARGS'><glossterm>KERNEL_EXTRA_ARGS</glossterm>
7322 <info>
7323 KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
7324 </info>
7325 <glossdef>
7326 <para role="glossdeffirst">
7327<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7328 Specifies additional <filename>make</filename>
7329 command-line arguments the OpenEmbedded build system
7330 passes on when compiling the kernel.
7331 </para>
7332 </glossdef>
7333 </glossentry>
7334
7335 <glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
7336 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007337 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 -05007338 </info>
7339 <glossdef>
7340 <para role="glossdeffirst">
7341<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007342 Includes additional kernel metadata.
7343 In the OpenEmbedded build system, the default Board Support
7344 Packages (BSPs)
7345 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007346 is provided through
7347 the <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007348 and
7349 <link linkend='var-KBRANCH'><filename>KBRANCH</filename></link>
7350 variables.
7351 You can use the <filename>KERNEL_FEATURES</filename>
7352 variable from within the kernel recipe or kernel append
7353 file to further add metadata for all BSPs or specific
7354 BSPs.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007355 </para>
7356
7357 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007358 The metadata you add through this variable includes config
7359 fragments and features descriptions,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007360 which usually includes patches as well as config fragments.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007361 You typically override the
7362 <filename>KERNEL_FEATURES</filename> variable for a
7363 specific machine.
7364 In this way, you can provide validated, but optional,
7365 sets of kernel configurations and features.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007366 </para>
7367
7368 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007369 For example, the following example from the
7370 <filename>linux-yocto-rt_4.12</filename> kernel recipe
7371 adds "netfilter" and "taskstats" features to all BSPs
7372 as well as "virtio" configurations to all QEMU machines.
7373 The last two statements add specific configurations to
7374 targeted machine types:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007375 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007376 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
7377 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
7378 KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
7379 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
7380 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007381 </literallayout></para>
7382 </glossdef>
7383 </glossentry>
7384
7385 <glossentry id='var-KERNEL_IMAGE_BASE_NAME'><glossterm>KERNEL_IMAGE_BASE_NAME</glossterm>
7386 <info>
7387 KERNEL_IMAGE_BASE_NAME[doc] = "The base name of the kernel image."
7388 </info>
7389 <glossdef>
7390 <para role="glossdeffirst">
7391<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7392 The base name of the kernel image.
7393 This variable is set in the
7394 <link linkend='ref-classes-kernel'>kernel</link> class
7395 as follows:
7396 <literallayout class='monospaced'>
Brad Bishop37a0e4d2017-12-04 01:01:44 -05007397 KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007398 </literallayout>
7399 </para>
7400
7401 <para>
7402 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007403 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
7404 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
7405 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
7406 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
7407 and
7408 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
7409 variables for additional information.
7410 </para>
7411 </glossdef>
7412 </glossentry>
7413
7414 <glossentry id='var-KERNEL_IMAGE_MAXSIZE'><glossterm>KERNEL_IMAGE_MAXSIZE</glossterm>
7415 <info>
7416 KERNEL_IMAGE_MAXSIZE[doc] = "The maximum allowable size in kilobytes of the kernel image file."
7417 </info>
7418 <glossdef>
7419 <para role="glossdeffirst">
7420<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7421 Specifies the maximum size of the kernel image file in
7422 kilobytes.
7423 If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
7424 the size of the kernel image file is checked against
7425 the set value during the
7426 <link linkend='ref-tasks-sizecheck'><filename>do_sizecheck</filename></link>
7427 task.
7428 The task fails if the kernel image file is larger than
7429 the setting.
7430 </para>
7431
7432 <para>
7433 <filename>KERNEL_IMAGE_MAXSIZE</filename> is useful for
7434 target devices that have a limited amount of space in
7435 which the kernel image must be stored.
7436 </para>
7437
7438 <para>
7439 By default, this variable is not set, which means the
7440 size of the kernel image is not checked.
7441 </para>
7442 </glossdef>
7443 </glossentry>
7444
7445 <glossentry id='var-KERNEL_IMAGETYPE'><glossterm>KERNEL_IMAGETYPE</glossterm>
7446 <info>
7447 KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
7448 </info>
7449 <glossdef>
7450 <para role="glossdeffirst">
7451<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7452 The type of kernel to build for a device, usually set by the
7453 machine configuration files and defaults to "zImage".
7454 This variable is used
7455 when building the kernel and is passed to <filename>make</filename> as the target to
7456 build.
7457 </para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007458
7459 <para>
7460 If you want to build an alternate kernel image type, use the
7461 <link linkend='var-KERNEL_ALT_IMAGETYPE'><filename>KERNEL_ALT_IMAGETYPE</filename></link>
7462 variable.
7463 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007464 </glossdef>
7465 </glossentry>
7466
7467 <glossentry id='var-KERNEL_MODULE_AUTOLOAD'><glossterm>KERNEL_MODULE_AUTOLOAD</glossterm>
7468 <info>
7469 KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot"
7470 </info>
7471 <glossdef>
7472 <para role="glossdeffirst">
7473<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7474 Lists kernel modules that need to be auto-loaded during
7475 boot.
7476 <note>
7477 This variable replaces the deprecated
7478 <link linkend='var-module_autoload'><filename>module_autoload</filename></link>
7479 variable.
7480 </note>
7481 </para>
7482
7483 <para>
7484 You can use the <filename>KERNEL_MODULE_AUTOLOAD</filename>
7485 variable anywhere that it can be
7486 recognized by the kernel recipe or by an out-of-tree kernel
7487 module recipe (e.g. a machine configuration file, a
7488 distribution configuration file, an append file for the
7489 recipe, or the recipe itself).
7490 </para>
7491
7492 <para>
7493 Specify it as follows:
7494 <literallayout class='monospaced'>
7495 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name1</replaceable> <replaceable>module_name2</replaceable> <replaceable>module_name3</replaceable>"
7496 </literallayout>
7497 </para>
7498
7499 <para>
7500 Including <filename>KERNEL_MODULE_AUTOLOAD</filename> causes
7501 the OpenEmbedded build system to populate the
7502 <filename>/etc/modules-load.d/modname.conf</filename>
7503 file with the list of modules to be auto-loaded on boot.
7504 The modules appear one-per-line in the file.
7505 Here is an example of the most common use case:
7506 <literallayout class='monospaced'>
7507 KERNEL_MODULE_AUTOLOAD += "<replaceable>module_name</replaceable>"
7508 </literallayout>
7509 </para>
7510
7511 <para>
7512 For information on how to populate the
7513 <filename>modname.conf</filename> file with
7514 <filename>modprobe.d</filename> syntax lines, see the
7515 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
7516 variable.
7517 </para>
7518 </glossdef>
7519 </glossentry>
7520
7521 <glossentry id='var-KERNEL_MODULE_PROBECONF'><glossterm>KERNEL_MODULE_PROBECONF</glossterm>
7522 <info>
7523 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."
7524 </info>
7525 <glossdef>
7526 <para role="glossdeffirst">
7527<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7528 Provides a list of modules for which the OpenEmbedded
7529 build system expects to find
7530 <filename>module_conf_</filename><replaceable>modname</replaceable>
7531 values that specify configuration for each of the modules.
7532 For information on how to provide those module
7533 configurations, see the
7534 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
7535 variable.
7536 </para>
7537 </glossdef>
7538 </glossentry>
7539
7540 <glossentry id='var-KERNEL_PATH'><glossterm>KERNEL_PATH</glossterm>
7541 <info>
7542 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)."
7543 </info>
7544 <glossdef>
7545 <para role="glossdeffirst">
7546<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7547 The location of the kernel sources.
7548 This variable is set to the value of the
7549 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7550 within the
7551 <link linkend='ref-classes-module'><filename>module</filename></link>
7552 class.
7553 For information on how this variable is used, see the
7554 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04007555 section in the Yocto Project Linux Kernel Development
7556 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007557 </para>
7558
7559 <para>
7560 To help maximize compatibility with out-of-tree drivers
7561 used to build modules, the OpenEmbedded build system also
7562 recognizes and uses the
7563 <link linkend='var-KERNEL_SRC'><filename>KERNEL_SRC</filename></link>
7564 variable, which is identical to the
7565 <filename>KERNEL_PATH</filename> variable.
7566 Both variables are common variables used by external
7567 Makefiles to point to the kernel source directory.
7568 </para>
7569 </glossdef>
7570 </glossentry>
7571
7572 <glossentry id='var-KERNEL_SRC'><glossterm>KERNEL_SRC</glossterm>
7573 <info>
7574 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)."
7575 </info>
7576 <glossdef>
7577 <para role="glossdeffirst">
7578<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7579 The location of the kernel sources.
7580 This variable is set to the value of the
7581 <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
7582 within the
7583 <link linkend='ref-classes-module'><filename>module</filename></link>
7584 class.
7585 For information on how this variable is used, see the
7586 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -04007587 section in the Yocto Project Linux Kernel Development
7588 Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007589 </para>
7590
7591 <para>
7592 To help maximize compatibility with out-of-tree drivers
7593 used to build modules, the OpenEmbedded build system also
7594 recognizes and uses the
7595 <link linkend='var-KERNEL_PATH'><filename>KERNEL_PATH</filename></link>
7596 variable, which is identical to the
7597 <filename>KERNEL_SRC</filename> variable.
7598 Both variables are common variables used by external
7599 Makefiles to point to the kernel source directory.
7600 </para>
7601 </glossdef>
7602 </glossentry>
7603
Patrick Williamsf1e5d692016-03-30 15:21:19 -05007604 <glossentry id='var-KERNEL_VERSION'><glossterm>KERNEL_VERSION</glossterm>
7605 <info>
7606 KERNEL_VERSION[doc] = "Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources."
7607 </info>
7608 <glossdef>
7609 <para role="glossdeffirst">
7610<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7611 Specifies the version of the kernel as extracted from
7612 <filename>version.h</filename> or
7613 <filename>utsrelease.h</filename> within the kernel sources.
7614 Effects of setting this variable do not take affect until
7615 the kernel has been configured.
7616 Consequently, attempting to refer to this variable in
7617 contexts prior to configuration will not work.
7618 </para>
7619 </glossdef>
7620 </glossentry>
7621
7622 <glossentry id='var-KERNELDEPMODDEPEND'><glossterm>KERNELDEPMODDEPEND</glossterm>
7623 <info>
7624 KERNELDEPMODDEPEND[doc] = "Specifies whether or not to use the data referenced through the PKGDATA_DIR directory."
7625 </info>
7626 <glossdef>
7627 <para role="glossdeffirst">
7628<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7629 Specifies whether the data referenced through
7630 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
7631 is needed or not.
7632 The <filename>KERNELDEPMODDEPEND</filename> does not
7633 control whether or not that data exists,
7634 but simply whether or not it is used.
7635 If you do not need to use the data, set the
7636 <filename>KERNELDEPMODDEPEND</filename> variable in your
7637 <filename>initramfs</filename> recipe.
7638 Setting the variable there when the data is not needed
7639 avoids a potential dependency loop.
7640 </para>
7641 </glossdef>
7642 </glossentry>
7643
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007644 <glossentry id='var-KFEATURE_DESCRIPTION'><glossterm>KFEATURE_DESCRIPTION</glossterm>
7645 <info>
7646 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."
7647 </info>
7648 <glossdef>
7649 <para role="glossdeffirst">
7650<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7651 Provides a short description of a configuration fragment.
7652 You use this variable in the <filename>.scc</filename>
7653 file that describes a configuration fragment file.
7654 Here is the variable used in a file named
7655 <filename>smp.scc</filename> to describe SMP being
7656 enabled:
7657 <literallayout class='monospaced'>
7658 define KFEATURE_DESCRIPTION "Enable SMP"
7659 </literallayout>
7660 </para>
7661 </glossdef>
7662 </glossentry>
7663
7664 <glossentry id='var-KMACHINE'><glossterm>KMACHINE</glossterm>
7665 <info>
7666 KMACHINE[doc] = "The machine as known by the kernel."
7667 </info>
7668 <glossdef>
7669 <para role="glossdeffirst">
7670<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7671 The machine as known by the kernel.
7672 Sometimes the machine name used by the kernel does not
7673 match the machine name used by the OpenEmbedded build
7674 system.
7675 For example, the machine name that the OpenEmbedded build
7676 system understands as
7677 <filename>core2-32-intel-common</filename> goes by a
7678 different name in the Linux Yocto kernel.
7679 The kernel understands that machine as
7680 <filename>intel-core2-32</filename>.
7681 For cases like these, the <filename>KMACHINE</filename>
7682 variable maps the kernel machine name to the OpenEmbedded
7683 build system machine name.
7684 </para>
7685
7686 <para>
7687 These mappings between different names occur in the
7688 Yocto Linux Kernel's <filename>meta</filename> branch.
7689 As an example take a look in the
7690 <filename>common/recipes-kernel/linux/linux-yocto_3.19.bbappend</filename>
7691 file:
7692 <literallayout class='monospaced'>
7693 LINUX_VERSION_core2-32-intel-common = "3.19.0"
7694 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
7695 SRCREV_meta_core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
7696 SRCREV_machine_core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
7697 KMACHINE_core2-32-intel-common = "intel-core2-32"
7698 KBRANCH_core2-32-intel-common = "standard/base"
7699 KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
7700 </literallayout>
7701 The <filename>KMACHINE</filename> statement says that
7702 the kernel understands the machine name as
7703 "intel-core2-32".
7704 However, the OpenEmbedded build system understands the
7705 machine as "core2-32-intel-common".
7706 </para>
7707
7708 </glossdef>
7709 </glossentry>
7710
7711 <glossentry id='var-KTYPE'><glossterm>KTYPE</glossterm>
7712 <info>
7713 KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
7714 </info>
7715 <glossdef>
7716 <para role="glossdeffirst">
7717<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7718 Defines the kernel type to be used in assembling the
7719 configuration.
7720 The linux-yocto recipes define "standard", "tiny",
7721 and "preempt-rt" kernel types.
7722 See the
7723 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
7724 section in the Yocto Project Linux Kernel Development
7725 Manual for more information on kernel types.
7726 </para>
7727
7728 <para>
7729 You define the <filename>KTYPE</filename> variable in the
7730 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#bsp-descriptions'>BSP Descriptions</ulink>.
7731 The value you use must match the value used for the
7732 <link linkend='var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></link>
7733 value used by the kernel recipe.
7734 </para>
7735 </glossdef>
7736 </glossentry>
7737 </glossdiv>
7738
7739 <glossdiv id='var-glossary-l'><title>L</title>
7740
7741 <glossentry id='var-LABELS'><glossterm>LABELS</glossterm>
7742 <info>
7743 LABELS[doc] = "Provides a list of targets for automatic configuration."
7744 </info>
7745 <glossdef>
7746 <para role="glossdeffirst">
7747<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7748 Provides a list of targets for automatic configuration.
7749 </para>
7750
7751 <para>
7752 See the
7753 <link linkend='ref-classes-grub-efi'><filename>grub-efi</filename></link>
7754 class for more information on how this variable is used.
7755 </para>
7756 </glossdef>
7757 </glossentry>
7758
7759 <glossentry id='var-LAYERDEPENDS'><glossterm>LAYERDEPENDS</glossterm>
7760 <info>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007761 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 -05007762 </info>
7763 <glossdef>
7764 <para role="glossdeffirst">
7765<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007766 Lists the layers, separated by spaces, on which this
7767 recipe depends.
7768 Optionally, you can specify a specific layer version for a
7769 dependency by adding it to the end of the layer name.
7770 Here is an example:
7771 <literallayout class='monospaced'>
7772 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
7773 </literallayout>
7774 In this previous example, version 3 of "anotherlayer"
7775 is compared against
7776 <link linkend='var-LAYERVERSION'><filename>LAYERVERSION</filename></link><filename>_anotherlayer</filename>.
7777 </para>
7778
7779 <para>
7780 An error is produced if any dependency is missing or
7781 the version numbers (if specified) do not match exactly.
7782 This variable is used in the
7783 <filename>conf/layer.conf</filename> file and must be
7784 suffixed with the name of the specific layer (e.g.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007785 <filename>LAYERDEPENDS_mylayer</filename>).
7786 </para>
7787 </glossdef>
7788 </glossentry>
7789
7790 <glossentry id='var-LAYERDIR'><glossterm>LAYERDIR</glossterm>
7791 <info>
7792 LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
7793 </info>
7794 <glossdef>
7795 <para role="glossdeffirst">
7796<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7797 When used inside the <filename>layer.conf</filename> configuration
7798 file, this variable provides the path of the current layer.
7799 This variable is not available outside of <filename>layer.conf</filename>
7800 and references are expanded immediately when parsing of the file completes.
7801 </para>
7802 </glossdef>
7803 </glossentry>
7804
Brad Bishop6e60e8b2018-02-01 10:27:11 -05007805 <glossentry id='var-LAYERRECOMMENDS'><glossterm>LAYERRECOMMENDS</glossterm>
7806 <info>
7807 LAYERRECOMMENDS[doc] = "Lists the layers, separated by spaces, recommended for use with this layer."
7808 </info>
7809 <glossdef>
7810 <para role="glossdeffirst">
7811<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7812 Lists the layers, separated by spaces, recommended for
7813 use with this layer.
7814 </para>
7815
7816 <para>
7817 Optionally, you can specify a specific layer version for a
7818 recommendation by adding the version to the end of the
7819 layer name.
7820 Here is an example:
7821 <literallayout class='monospaced'>
7822 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
7823 </literallayout>
7824 In this previous example, version 3 of "anotherlayer" is
7825 compared against
7826 <filename>LAYERVERSION_anotherlayer</filename>.
7827 </para>
7828
7829 <para>
7830 This variable is used in the
7831 <filename>conf/layer.conf</filename> file and must be
7832 suffixed with the name of the specific layer (e.g.
7833 <filename>LAYERRECOMMENDS_mylayer</filename>).
7834 </para>
7835 </glossdef>
7836 </glossentry>
7837
Brad Bishop316dfdd2018-06-25 12:45:53 -04007838 <glossentry id='var-LAYERSERIES_COMPAT'><glossterm>LAYERSERIES_COMPAT</glossterm>
7839 <info>
7840 LAYERSERIES_COMPAT[doc] = "Lists the OpenEmbedded-Core versions for which a layer is compatible."
7841 </info>
7842 <glossdef>
7843 <para role="glossdeffirst">
7844<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7845 Lists the versions of the
7846 <link linkend='oe-core'>OpenEmbedded-Core</link> for which
7847 a layer is compatible.
7848 Using the <filename>LAYERSERIES_COMPAT</filename> variable
7849 allows the layer maintainer to indicate which combinations
7850 of the layer and OE-Core can be expected to work.
7851 The variable gives the system a way to detect when a layer
7852 has not been tested with new releases of OE-Core (e.g.
7853 the layer is not maintained).
7854 </para>
7855
7856 <para>
7857 To specify the OE-Core versions for which a layer is
7858 compatible, use this variable in your layer's
7859 <filename>conf/layer.conf</filename> configuration file.
7860 For the list, use the Yocto Project
7861 <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Release Name</ulink>
7862 (e.g. &DISTRO_NAME_NO_CAP;).
7863 To specify multiple OE-Core versions for the layer,
7864 use a space-separated list:
7865 <literallayout class='monospaced'>
7866 LAYERSERIES_COMPAT_<replaceable>layer_root_name</replaceable> = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
7867 </literallayout>
7868 <note>
7869 Setting <filename>LAYERSERIES_COMPAT</filename> is
7870 required by the Yocto Project Compatible version 2
7871 standard.
7872 The OpenEmbedded build system produces a warning if
7873 the variable is not set for any given layer.
7874 </note>
7875 </para>
7876
7877 <para>
7878 See the
7879 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-layer'>Creating Your Own Layer</ulink>"
7880 section in the Yocto Project Development Tasks Manual.
7881 </para>
7882 </glossdef>
7883 </glossentry>
7884
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007885 <glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
7886 <info>
7887 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."
7888 </info>
7889 <glossdef>
7890 <para role="glossdeffirst">
7891<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7892 Optionally specifies the version of a layer as a single number.
7893 You can use this within
7894 <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
7895 for another layer in order to depend on a specific version
7896 of the layer.
7897 This variable is used in the <filename>conf/layer.conf</filename> file
7898 and must be suffixed with the name of the specific layer (e.g.
7899 <filename>LAYERVERSION_mylayer</filename>).
7900 </para>
7901 </glossdef>
7902 </glossentry>
7903
7904 <glossentry id='var-LD'><glossterm>LD</glossterm>
7905 <info>
7906 LD[doc] = "Minimal command and arguments to run the linker."
7907 </info>
7908 <glossdef>
7909 <para role="glossdeffirst">
7910<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7911 The minimal command and arguments used to run the
7912 linker.
7913 </para>
7914 </glossdef>
7915 </glossentry>
7916
7917 <glossentry id='var-LDFLAGS'><glossterm>LDFLAGS</glossterm>
7918 <info>
7919 LDFLAGS[doc] = "Specifies the flags to pass to the linker."
7920 </info>
7921 <glossdef>
7922 <para role="glossdeffirst">
7923<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7924 Specifies the flags to pass to the linker.
7925 This variable is exported to an environment
7926 variable and thus made visible to the software being
7927 built during the compilation step.
7928 </para>
7929
7930 <para>
7931 Default initialization for <filename>LDFLAGS</filename>
7932 varies depending on what is being built:
7933 <itemizedlist>
7934 <listitem><para>
7935 <link linkend='var-TARGET_LDFLAGS'><filename>TARGET_LDFLAGS</filename></link>
7936 when building for the target
7937 </para></listitem>
7938 <listitem><para>
7939 <link linkend='var-BUILD_LDFLAGS'><filename>BUILD_LDFLAGS</filename></link>
7940 when building for the build host (i.e.
7941 <filename>-native</filename>)
7942 </para></listitem>
7943 <listitem><para>
7944 <link linkend='var-BUILDSDK_LDFLAGS'><filename>BUILDSDK_LDFLAGS</filename></link>
7945 when building for an SDK (i.e.
7946 <filename>nativesdk-</filename>)
7947 </para></listitem>
7948 </itemizedlist>
7949 </para>
7950 </glossdef>
7951 </glossentry>
7952
7953 <glossentry id='var-LEAD_SONAME'><glossterm>LEAD_SONAME</glossterm>
7954 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007955 LEAD_SONAME[doc] = "Specifies the lead (or primary) compiled library file (i.e. .so) that the debian class applies its naming policy to given a recipe that packages multiple libraries."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007956 </info>
7957 <glossdef>
7958 <para role="glossdeffirst">
7959<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7960 Specifies the lead (or primary) compiled library file
Brad Bishop316dfdd2018-06-25 12:45:53 -04007961 (i.e. <filename>.so</filename>) that the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007962 <link linkend='ref-classes-debian'><filename>debian</filename></link>
7963 class applies its naming policy to given a recipe that
7964 packages multiple libraries.
7965 </para>
7966
7967 <para>
7968 This variable works in conjunction with the
7969 <filename>debian</filename> class.
7970 </para>
7971 </glossdef>
7972 </glossentry>
7973
7974 <glossentry id='var-LIC_FILES_CHKSUM'><glossterm>LIC_FILES_CHKSUM</glossterm>
7975 <info>
7976 LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
7977 </info>
7978 <glossdef>
7979 <para role="glossdeffirst">
7980<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
7981 Checksums of the license text in the recipe source code.
7982 </para>
7983
7984 <para>
7985 This variable tracks changes in license text of the source
7986 code files.
7987 If the license text is changed, it will trigger a build
7988 failure, which gives the developer an opportunity to review any
7989 license change.
7990 </para>
7991
7992 <para>
7993 This variable must be defined for all recipes (unless
7994 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
7995 is set to "CLOSED").</para>
7996 <para>For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04007997 "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Tracking License Changes</ulink>"
7998 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007999 </para>
8000 </glossdef>
8001 </glossentry>
8002
8003 <glossentry id='var-LICENSE'><glossterm>LICENSE</glossterm>
8004 <info>
8005 LICENSE[doc] = "The list of source licenses for the recipe. The logical operators &amp;, '|', and parentheses can be used."
8006 </info>
8007 <glossdef>
8008 <para role="glossdeffirst">
8009<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8010 The list of source licenses for the recipe.
8011 Follow these rules:
8012 <itemizedlist>
8013 <listitem><para>Do not use spaces within individual
8014 license names.</para></listitem>
8015 <listitem><para>Separate license names using
8016 | (pipe) when there is a choice between licenses.
8017 </para></listitem>
8018 <listitem><para>Separate license names using
8019 &amp; (ampersand) when multiple licenses exist
8020 that cover different parts of the source.
8021 </para></listitem>
8022 <listitem><para>You can use spaces between license
8023 names.</para></listitem>
8024 <listitem><para>For standard licenses, use the names
8025 of the files in
8026 <filename>meta/files/common-licenses/</filename>
8027 or the
8028 <link linkend='var-SPDXLICENSEMAP'><filename>SPDXLICENSEMAP</filename></link>
8029 flag names defined in
8030 <filename>meta/conf/licenses.conf</filename>.
8031 </para></listitem>
8032 </itemizedlist>
8033 </para>
8034
8035 <para>
8036 Here are some examples:
8037 <literallayout class='monospaced'>
8038 LICENSE = "LGPLv2.1 | GPLv3"
8039 LICENSE = "MPL-1 &amp; LGPLv2.1"
8040 LICENSE = "GPLv2+"
8041 </literallayout>
8042 The first example is from the recipes for Qt, which the user
8043 may choose to distribute under either the LGPL version
8044 2.1 or GPL version 3.
8045 The second example is from Cairo where two licenses cover
8046 different parts of the source code.
8047 The final example is from <filename>sysstat</filename>,
8048 which presents a single license.
8049 </para>
8050
8051 <para>
8052 You can also specify licenses on a per-package basis to
8053 handle situations where components of the output have
8054 different licenses.
8055 For example, a piece of software whose code is
8056 licensed under GPLv2 but has accompanying documentation
8057 licensed under the GNU Free Documentation License 1.2 could
8058 be specified as follows:
8059 <literallayout class='monospaced'>
8060 LICENSE = "GFDL-1.2 &amp; GPLv2"
8061 LICENSE_${PN} = "GPLv2"
8062 LICENSE_${PN}-doc = "GFDL-1.2"
8063 </literallayout>
8064 </para>
8065 </glossdef>
8066 </glossentry>
8067
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008068 <glossentry id='var-LICENSE_CREATE_PACKAGE'><glossterm>LICENSE_CREATE_PACKAGE</glossterm>
8069 <info>
8070 LICENSE_CREATE_PACKAGE[doc] = "Creates an extra package (i.e. ${PN}-lic) for each recipe and adds that package to the RRECOMMENDS+${PN}."
8071 </info>
8072 <glossdef>
8073 <para role="glossdeffirst">
8074<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8075 Setting <filename>LICENSE_CREATE_PACKAGE</filename>
8076 to "1" causes the OpenEmbedded build system to create
8077 an extra package (i.e.
8078 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-lic</filename>)
8079 for each recipe and to add those packages to the
8080 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link><filename>_${PN}</filename>.
8081 </para>
8082
8083 <para>
8084 The <filename>${PN}-lic</filename> package installs a
8085 directory in <filename>/usr/share/licenses</filename>
8086 named <filename>${PN}</filename>, which is the recipe's
8087 base name, and installs files in that directory that
8088 contain license and copyright information (i.e. copies of
8089 the appropriate license files from
8090 <filename>meta/common-licenses</filename> that match the
8091 licenses specified in the
8092 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8093 variable of the recipe metadata and copies of files marked
8094 in
8095 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
8096 as containing license text).
8097 </para>
8098
8099 <para>
8100 For related information on providing license text, see the
8101 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
8102 variable, the
8103 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
8104 variable, and the
8105 "<ulink url='&YOCTO_DOCS_DEV_URL;#providing-license-text'>Providing License Text</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008106 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008107 </para>
8108 </glossdef>
8109 </glossentry>
8110
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008111 <glossentry id='var-LICENSE_FLAGS'><glossterm>LICENSE_FLAGS</glossterm>
8112 <info>
8113 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."
8114 </info>
8115 <glossdef>
8116 <para role="glossdeffirst">
8117<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8118 Specifies additional flags for a recipe you must
8119 whitelist through
8120 <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
8121 in order to allow the recipe to be built.
8122 When providing multiple flags, separate them with
8123 spaces.
8124 </para>
8125
8126 <para>
8127 This value is independent of
8128 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
8129 and is typically used to mark recipes that might
8130 require additional licenses in order to be used in a
8131 commercial product.
8132 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008133 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8134 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008135 </para>
8136 </glossdef>
8137 </glossentry>
8138
8139 <glossentry id='var-LICENSE_FLAGS_WHITELIST'><glossterm>LICENSE_FLAGS_WHITELIST</glossterm>
8140 <info>
8141 LICENSE_FLAGS_WHITELIST[doc] = "Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being built."
8142 </info>
8143 <glossdef>
8144 <para role="glossdeffirst">
8145<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8146 Lists license flags that when specified in
8147 <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
8148 within a recipe should not prevent that recipe from being
8149 built.
8150 This practice is otherwise known as "whitelisting"
8151 license flags.
8152 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -04008153 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
8154 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008155 </para>
8156 </glossdef>
8157 </glossentry>
8158
8159 <glossentry id='var-LICENSE_PATH'><glossterm>LICENSE_PATH</glossterm>
8160 <info>
8161 LICENSE_PATH[doc] = "Path to additional licenses used during the build."
8162 </info>
8163 <glossdef>
8164 <para role="glossdeffirst">
8165<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8166 Path to additional licenses used during the build.
8167 By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
8168 to define the directory that holds common license text used during the build.
8169 The <filename>LICENSE_PATH</filename> variable allows you to extend that
8170 location to other areas that have additional licenses:
8171 <literallayout class='monospaced'>
8172 LICENSE_PATH += "<replaceable>path-to-additional-common-licenses</replaceable>"
8173 </literallayout>
8174 </para>
8175 </glossdef>
8176 </glossentry>
8177
8178 <glossentry id='var-LINUX_KERNEL_TYPE'><glossterm>LINUX_KERNEL_TYPE</glossterm>
8179 <info>
8180 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
8181 </info>
8182 <glossdef>
8183 <para role="glossdeffirst">
8184<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8185 Defines the kernel type to be used in assembling the
8186 configuration.
8187 The linux-yocto recipes define "standard", "tiny", and
8188 "preempt-rt" kernel types.
8189 See the
8190 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-types'>Kernel Types</ulink>"
8191 section in the Yocto Project Linux Kernel Development
8192 Manual for more information on kernel types.
8193 </para>
8194
8195 <para>
8196 If you do not specify a
8197 <filename>LINUX_KERNEL_TYPE</filename>, it defaults to
8198 "standard".
8199 Together with
8200 <link linkend='var-KMACHINE'><filename>KMACHINE</filename></link>,
8201 the <filename>LINUX_KERNEL_TYPE</filename> variable
8202 defines the search
8203 arguments used by the kernel tools to find the appropriate
8204 description within the kernel
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008205 <link linkend='metadata'>Metadata</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008206 with which to build out the sources and configuration.
8207 </para>
8208 </glossdef>
8209 </glossentry>
8210
8211 <glossentry id='var-LINUX_VERSION'><glossterm>LINUX_VERSION</glossterm>
8212 <info>
8213 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."
8214 </info>
8215 <glossdef>
8216 <para role="glossdeffirst">
8217<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8218 The Linux version from <filename>kernel.org</filename>
8219 on which the Linux kernel image being built using the
8220 OpenEmbedded build system is based.
8221 You define this variable in the kernel recipe.
8222 For example, the <filename>linux-yocto-3.4.bb</filename>
8223 kernel recipe found in
8224 <filename>meta/recipes-kernel/linux</filename>
8225 defines the variables as follows:
8226 <literallayout class='monospaced'>
8227 LINUX_VERSION ?= "3.4.24"
8228 </literallayout>
8229 </para>
8230
8231 <para>
8232 The <filename>LINUX_VERSION</filename> variable is used to
8233 define <link linkend='var-PV'><filename>PV</filename></link>
8234 for the recipe:
8235 <literallayout class='monospaced'>
8236 PV = "${LINUX_VERSION}+git${SRCPV}"
8237 </literallayout>
8238 </para>
8239 </glossdef>
8240 </glossentry>
8241
8242 <glossentry id='var-LINUX_VERSION_EXTENSION'><glossterm>LINUX_VERSION_EXTENSION</glossterm>
8243 <info>
8244 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."
8245 </info>
8246 <glossdef>
8247 <para role="glossdeffirst">
8248<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8249 A string extension compiled into the version
8250 string of the Linux kernel built with the OpenEmbedded
8251 build system.
8252 You define this variable in the kernel recipe.
8253 For example, the linux-yocto kernel recipes all define
8254 the variable as follows:
8255 <literallayout class='monospaced'>
8256 LINUX_VERSION_EXTENSION ?= "-yocto-${<link linkend='var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</link>}"
8257 </literallayout>
8258 </para>
8259
8260 <para>
8261 Defining this variable essentially sets the
8262 Linux kernel configuration item
8263 <filename>CONFIG_LOCALVERSION</filename>, which is visible
8264 through the <filename>uname</filename> command.
8265 Here is an example that shows the extension assuming it
8266 was set as previously shown:
8267 <literallayout class='monospaced'>
8268 $ uname -r
8269 3.7.0-rc8-custom
8270 </literallayout>
8271 </para>
8272 </glossdef>
8273 </glossentry>
8274
8275 <glossentry id='var-LOG_DIR'><glossterm>LOG_DIR</glossterm>
8276 <info>
8277 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
8278 </info>
8279 <glossdef>
8280 <para role="glossdeffirst">
8281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8282 Specifies the directory to which the OpenEmbedded build
8283 system writes overall log files.
8284 The default directory is <filename>${TMPDIR}/log</filename>.
8285 </para>
8286
8287 <para>
8288 For the directory containing logs specific to each task,
8289 see the <link linkend='var-T'><filename>T</filename></link>
8290 variable.
8291 </para>
8292 </glossdef>
8293 </glossentry>
8294
8295 </glossdiv>
8296
8297 <glossdiv id='var-glossary-m'><title>M</title>
8298
8299 <glossentry id='var-MACHINE'><glossterm>MACHINE</glossterm>
8300 <info>
8301 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."
8302 </info>
8303 <glossdef>
8304 <para role="glossdeffirst">
8305<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8306 Specifies the target device for which the image is built.
8307 You define <filename>MACHINE</filename> in the
8308 <filename>local.conf</filename> file found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008309 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008310 By default, <filename>MACHINE</filename> is set to
8311 "qemux86", which is an x86-based architecture machine to
8312 be emulated using QEMU:
8313 <literallayout class='monospaced'>
8314 MACHINE ?= "qemux86"
8315 </literallayout>
8316 </para>
8317
8318 <para>
8319 The variable corresponds to a machine configuration file of the
8320 same name, through which machine-specific configurations are set.
8321 Thus, when <filename>MACHINE</filename> is set to "qemux86" there
8322 exists the corresponding <filename>qemux86.conf</filename> machine
8323 configuration file, which can be found in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008324 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008325 in <filename>meta/conf/machine</filename>.
8326 </para>
8327
8328 <para>
8329 The list of machines supported by the Yocto Project as
8330 shipped include the following:
8331 <literallayout class='monospaced'>
8332 MACHINE ?= "qemuarm"
8333 MACHINE ?= "qemuarm64"
8334 MACHINE ?= "qemumips"
8335 MACHINE ?= "qemumips64"
8336 MACHINE ?= "qemuppc"
8337 MACHINE ?= "qemux86"
8338 MACHINE ?= "qemux86-64"
8339 MACHINE ?= "genericx86"
8340 MACHINE ?= "genericx86-64"
8341 MACHINE ?= "beaglebone"
8342 MACHINE ?= "mpc8315e-rdb"
8343 MACHINE ?= "edgerouter"
8344 </literallayout>
8345 The last five are Yocto Project reference hardware boards, which
8346 are provided in the <filename>meta-yocto-bsp</filename> layer.
8347 <note>Adding additional Board Support Package (BSP) layers
8348 to your configuration adds new possible settings for
8349 <filename>MACHINE</filename>.
8350 </note>
8351 </para>
8352 </glossdef>
8353 </glossentry>
8354
8355 <glossentry id='var-MACHINE_ARCH'><glossterm>MACHINE_ARCH</glossterm>
8356 <info>
8357 MACHINE_ARCH[doc] = "Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE or TUNE_PKGARCH."
8358 </info>
8359 <glossdef>
8360 <para role="glossdeffirst">
8361<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8362 Specifies the name of the machine-specific architecture.
8363 This variable is set automatically from
8364 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
8365 or
8366 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>.
8367 You should not hand-edit the
8368 <filename>MACHINE_ARCH</filename> variable.
8369 </para>
8370 </glossdef>
8371 </glossentry>
8372
8373 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
8374 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008375 MACHINE_ESSENTIAL_EXTRA_RDEPENDS[doc] = "A list of required machine-specific packages to install as part of the image being built. Because this is a 'machine-essential' variable, the list of packages are essential for the machine to boot."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008376 </info>
8377 <glossdef>
8378 <para role="glossdeffirst">
8379<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8380 A list of required machine-specific packages to install as part of
8381 the image being built.
8382 The build process depends on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008383 Furthermore, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008384 packages are essential for the machine to boot.
8385 The impact of this variable affects images based on
8386 <filename>packagegroup-core-boot</filename>,
8387 including the <filename>core-image-minimal</filename> image.
8388 </para>
8389
8390 <para>
8391 This variable is similar to the
8392 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</link></filename>
8393 variable with the exception that the image being built has a build
8394 dependency on the variable's list of packages.
8395 In other words, the image will not build if a file in this list is not found.
8396 </para>
8397
8398 <para>
8399 As an example, suppose the machine for which you are building requires
8400 <filename>example-init</filename> to be run during boot to initialize the hardware.
8401 In this case, you would use the following in the machine's
8402 <filename>.conf</filename> configuration file:
8403 <literallayout class='monospaced'>
8404 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
8405 </literallayout>
8406 </para>
8407 </glossdef>
8408 </glossentry>
8409
8410 <glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
8411 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008412 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS[doc] = "A list of recommended machine-specific packages to install as part of the image being built. Because this is a 'machine-essential' variable, the list of packages are essential for the machine to boot."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008413 </info>
8414 <glossdef>
8415 <para role="glossdeffirst">
8416<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8417 A list of recommended machine-specific packages to install as part of
8418 the image being built.
8419 The build process does not depend on these packages being present.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008420 However, because this is a "machine-essential" variable, the list of
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008421 packages are essential for the machine to boot.
8422 The impact of this variable affects images based on
8423 <filename>packagegroup-core-boot</filename>,
8424 including the <filename>core-image-minimal</filename> image.
8425 </para>
8426
8427 <para>
8428 This variable is similar to the
8429 <filename><link linkend='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</link></filename>
8430 variable with the exception that the image being built does not have a build
8431 dependency on the variable's list of packages.
8432 In other words, the image will still build if a package in this list is not found.
8433 Typically, this variable is used to handle essential kernel modules, whose
8434 functionality may be selected to be built into the kernel rather than as a module,
8435 in which case a package will not be produced.
8436 </para>
8437
8438 <para>
8439 Consider an example where you have a custom kernel where a specific touchscreen
8440 driver is required for the machine to be usable.
8441 However, the driver can be built as a module or
8442 into the kernel depending on the kernel configuration.
8443 If the driver is built as a module, you want it to be installed.
8444 But, when the driver is built into the kernel, you still want the
8445 build to succeed.
8446 This variable sets up a "recommends" relationship so that in the latter case,
8447 the build will not fail due to the missing package.
8448 To accomplish this, assuming the package for the module was called
8449 <filename>kernel-module-ab123</filename>, you would use the
8450 following in the machine's <filename>.conf</filename> configuration
8451 file:
8452 <literallayout class='monospaced'>
8453 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
8454 </literallayout>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008455 <note>
8456 In this example, the
8457 <filename>kernel-module-ab123</filename> recipe
8458 needs to explicitly set its
8459 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
8460 variable to ensure that BitBake does not use the
8461 kernel recipe's
8462 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
8463 variable to satisfy the dependency.
8464 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008465 </para>
8466
8467 <para>
8468 Some examples of these machine essentials are flash, screen, keyboard, mouse,
8469 or touchscreen drivers (depending on the machine).
8470 </para>
8471 </glossdef>
8472 </glossentry>
8473
8474 <glossentry id='var-MACHINE_EXTRA_RDEPENDS'><glossterm>MACHINE_EXTRA_RDEPENDS</glossterm>
8475 <info>
8476 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."
8477 </info>
8478 <glossdef>
8479 <para role="glossdeffirst">
8480<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8481 A list of machine-specific packages to install as part of the
8482 image being built that are not essential for the machine to boot.
8483 However, the build process for more fully-featured images
8484 depends on the packages being present.
8485 </para>
8486
8487 <para>
8488 This variable affects all images based on
8489 <filename>packagegroup-base</filename>, which does not include the
8490 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8491 images.
8492 </para>
8493
8494 <para>
8495 The variable is similar to the
8496 <filename><link linkend='var-MACHINE_EXTRA_RRECOMMENDS'>MACHINE_EXTRA_RRECOMMENDS</link></filename>
8497 variable with the exception that the image being built has a build
8498 dependency on the variable's list of packages.
8499 In other words, the image will not build if a file in this list is not found.
8500 </para>
8501
8502 <para>
8503 An example is a machine that has WiFi capability but is not
8504 essential for the machine to boot the image.
8505 However, if you are building a more fully-featured image, you want to enable
8506 the WiFi.
8507 The package containing the firmware for the WiFi hardware is always
8508 expected to exist, so it is acceptable for the build process to depend upon
8509 finding the package.
8510 In this case, assuming the package for the firmware was called
8511 <filename>wifidriver-firmware</filename>, you would use the following in the
8512 <filename>.conf</filename> file for the machine:
8513 <literallayout class='monospaced'>
8514 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
8515 </literallayout>
8516 </para>
8517 </glossdef>
8518 </glossentry>
8519
8520 <glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
8521 <info>
8522 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."
8523 </info>
8524 <glossdef>
8525 <para role="glossdeffirst">
8526<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8527 A list of machine-specific packages to install as part of the
8528 image being built that are not essential for booting the machine.
8529 The image being built has no build dependency on this list of packages.
8530 </para>
8531
8532 <para>
8533 This variable affects only images based on
8534 <filename>packagegroup-base</filename>, which does not include the
8535 <filename>core-image-minimal</filename> or <filename>core-image-full-cmdline</filename>
8536 images.
8537 </para>
8538
8539 <para>
8540 This variable is similar to the
8541 <filename><link linkend='var-MACHINE_EXTRA_RDEPENDS'>MACHINE_EXTRA_RDEPENDS</link></filename>
8542 variable with the exception that the image being built does not have a build
8543 dependency on the variable's list of packages.
8544 In other words, the image will build if a file in this list is not found.
8545 </para>
8546
8547 <para>
8548 An example is a machine that has WiFi capability but is not essential
8549 For the machine to boot the image.
8550 However, if you are building a more fully-featured image, you want to enable
8551 WiFi.
8552 In this case, the package containing the WiFi kernel module will not be produced
8553 if the WiFi driver is built into the kernel, in which case you still want the
8554 build to succeed instead of failing as a result of the package not being found.
8555 To accomplish this, assuming the package for the module was called
8556 <filename>kernel-module-examplewifi</filename>, you would use the
8557 following in the <filename>.conf</filename> file for the machine:
8558 <literallayout class='monospaced'>
8559 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
8560 </literallayout>
8561 </para>
8562 </glossdef>
8563 </glossentry>
8564
8565 <glossentry id='var-MACHINE_FEATURES'><glossterm>MACHINE_FEATURES</glossterm>
8566 <info>
8567 MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
8568 </info>
8569 <glossdef>
8570 <para role="glossdeffirst">
8571<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8572 Specifies the list of hardware features the
8573 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
8574 of supporting.
8575 For related information on enabling features, see the
8576 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>,
8577 <link linkend='var-COMBINED_FEATURES'><filename>COMBINED_FEATURES</filename></link>,
8578 and
8579 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
8580 variables.
8581 </para>
8582
8583 <para>
8584 For a list of hardware features supported by the Yocto
8585 Project as shipped, see the
8586 "<link linkend='ref-features-machine'>Machine Features</link>"
8587 section.
8588 </para>
8589 </glossdef>
8590 </glossentry>
8591
8592 <glossentry id='var-MACHINE_FEATURES_BACKFILL'><glossterm>MACHINE_FEATURES_BACKFILL</glossterm>
8593 <info>
8594 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."
8595 </info>
8596 <glossdef>
8597 <para role="glossdeffirst">
8598<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8599 Features to be added to
8600 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
8601 if not also present in
8602 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'>MACHINE_FEATURES_BACKFILL_CONSIDERED</link></filename>.
8603 </para>
8604
8605 <para>
8606 This variable is set in the <filename>meta/conf/bitbake.conf</filename> file.
8607 It is not intended to be user-configurable.
8608 It is best to just reference the variable to see which machine features are
8609 being backfilled for all machine configurations.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008610 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008611 more information.
8612 </para>
8613 </glossdef>
8614 </glossentry>
8615
8616 <glossentry id='var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><glossterm>MACHINE_FEATURES_BACKFILL_CONSIDERED</glossterm>
8617 <info>
8618 MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
8619 </info>
8620 <glossdef>
8621 <para role="glossdeffirst">
8622<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8623 Features from
8624 <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
8625 that should not be backfilled (i.e. added to
8626 <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>)
8627 during the build.
Brad Bishop316dfdd2018-06-25 12:45:53 -04008628 See the "<link linkend='ref-features-backfill'>Feature Backfilling</link>" section for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008629 more information.
8630 </para>
8631 </glossdef>
8632 </glossentry>
8633
8634 <glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
8635 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008636 MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008637 </info>
8638 <glossdef>
8639 <para role="glossdeffirst">
8640<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008641 A colon-separated list of overrides that apply to the
8642 current machine.
8643 By default, this list includes the value of
8644 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008645 </para>
8646
8647 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008648 You can extend <filename>MACHINEOVERRIDES</filename>
8649 to add extra overrides that should apply to a machine.
8650 For example, all machines emulated in QEMU (e.g.
8651 <filename>qemuarm</filename>, <filename>qemux86</filename>,
8652 and so forth) include a file named
8653 <filename>meta/conf/machine/include/qemu.inc</filename>
8654 that prepends the following override to
8655 <filename>MACHINEOVERRIDES</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008656 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008657 MACHINEOVERRIDES =. "qemuall:"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008658 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008659 This override allows variables to be overriden for all
8660 machines emulated in QEMU, like in the following example
8661 from the <filename>connman-conf</filename> recipe:
8662 <literallayout class='monospaced'>
8663 SRC_URI_append_qemuall = "file://wired.config \
8664 file://wired-setup \
8665 "
8666 </literallayout>
8667 The underlying mechanism behind
8668 <filename>MACHINEOVERRIDES</filename> is simply that it is
8669 included in the default value of
8670 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008671 </para>
8672 </glossdef>
8673 </glossentry>
8674
8675 <glossentry id='var-MAINTAINER'><glossterm>MAINTAINER</glossterm>
8676 <info>
8677 MAINTAINER[doc] = "The email address of the distribution maintainer."
8678 </info>
8679 <glossdef>
8680 <para role="glossdeffirst">
8681<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8682 The email address of the distribution maintainer.
8683 </para>
8684 </glossdef>
8685 </glossentry>
8686
8687 <glossentry id='var-MIRRORS'><glossterm>MIRRORS</glossterm>
8688 <info>
8689 MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
8690 </info>
8691 <glossdef>
8692 <para role="glossdeffirst">
8693<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8694 Specifies additional paths from which the OpenEmbedded
8695 build system gets source code.
8696 When the build system searches for source code, it first
8697 tries the local download directory.
8698 If that location fails, the build system tries locations
8699 defined by
8700 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
8701 the upstream source, and then locations specified by
8702 <filename>MIRRORS</filename> in that order.
8703 </para>
8704
8705 <para>
8706 Assuming your distribution
8707 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
8708 is "poky", the default value for
8709 <filename>MIRRORS</filename> is defined in the
8710 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05008711 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008712 </para>
8713 </glossdef>
8714 </glossentry>
8715
8716 <glossentry id='var-MLPREFIX'><glossterm>MLPREFIX</glossterm>
8717 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04008718 MLPREFIX[doc] = "Specifies a prefix has been added to PN to create a special version of a recipe or package (i.e. a Multilib version)."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008719 </info>
8720 <glossdef>
8721 <para role="glossdeffirst">
8722<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8723 Specifies a prefix has been added to
8724 <link linkend='var-PN'><filename>PN</filename></link> to create a special version
Brad Bishop316dfdd2018-06-25 12:45:53 -04008725 of a recipe or package (i.e. a Multilib version).
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008726 The variable is used in places where the prefix needs to be
8727 added to or removed from a the name (e.g. the
8728 <link linkend='var-BPN'><filename>BPN</filename></link> variable).
8729 <filename>MLPREFIX</filename> gets set when a prefix has been
8730 added to <filename>PN</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008731 <note>
8732 The "ML" in <filename>MLPREFIX</filename> stands for
8733 "MultiLib".
8734 This representation is historical and comes from
8735 a time when <filename>nativesdk</filename> was a suffix
8736 rather than a prefix on the recipe name.
8737 When <filename>nativesdk</filename> was turned into a
8738 prefix, it made sense to set
8739 <filename>MLPREFIX</filename> for it as well.
8740 </note>
8741 </para>
8742
8743 <para>
8744 To help understand when <filename>MLPREFIX</filename>
8745 might be needed, consider when
8746 <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
8747 is used to provide a <filename>nativesdk</filename> version
8748 of a recipe in addition to the target version.
8749 If that recipe declares build-time dependencies on tasks in
8750 other recipes by using
8751 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
8752 then a dependency on "foo" will automatically get rewritten
8753 to a dependency on "nativesdk-foo".
8754 However, dependencies like the following will not get
8755 rewritten automatically:
8756 <literallayout class='monospaced'>
8757 do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
8758 </literallayout>
8759 If you want such a dependency to also get transformed,
8760 you can do the following:
8761 <literallayout class='monospaced'>
8762 do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
8763 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008764 </para>
8765 </glossdef>
8766 </glossentry>
8767
8768 <glossentry id='var-module_autoload'><glossterm>module_autoload</glossterm>
8769 <info>
8770 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."
8771 </info>
8772 <glossdef>
8773 <para role="glossdeffirst">
8774<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8775 This variable has been replaced by the
8776 <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
8777 You should replace all occurrences of
8778 <filename>module_autoload</filename> with additions to
8779 <filename>KERNEL_MODULE_AUTOLOAD</filename>, for example:
8780 <literallayout class='monospaced'>
8781 module_autoload_rfcomm = "rfcomm"
8782 </literallayout>
8783 </para>
8784
8785 <para>
8786 should now be replaced with:
8787 <literallayout class='monospaced'>
8788 KERNEL_MODULE_AUTOLOAD += "rfcomm"
8789 </literallayout>
8790 See the
8791 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8792 variable for more information.
8793 </para>
8794 </glossdef>
8795 </glossentry>
8796
8797 <glossentry id='var-module_conf'><glossterm>module_conf</glossterm>
8798 <info>
8799 module_conf[doc] = "Specifies modprobe.d syntax lines for inclusion in the /etc/modprobe.d/modname.conf file."
8800 </info>
8801 <glossdef>
8802 <para role="glossdeffirst">
8803<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8804 Specifies
8805 <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
8806 syntax lines for inclusion in the
8807 <filename>/etc/modprobe.d/modname.conf</filename> file.
8808 </para>
8809
8810 <para>
8811 You can use this variable anywhere that it can be
8812 recognized by the kernel recipe or out-of-tree kernel
8813 module recipe (e.g. a machine configuration file, a
8814 distribution configuration file, an append file for the
8815 recipe, or the recipe itself).
8816 If you use this variable, you must also be sure to list
8817 the module name in the
8818 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8819 variable.
8820 </para>
8821
8822 <para>
8823 Here is the general syntax:
8824 <literallayout class='monospaced'>
8825 module_conf_<replaceable>module_name</replaceable> = "<replaceable>modprobe.d-syntax</replaceable>"
8826 </literallayout>
8827 You must use the kernel module name override.
8828 </para>
8829
8830 <para>
8831 Run <filename>man modprobe.d</filename> in the shell to
8832 find out more information on the exact syntax
8833 you want to provide with <filename>module_conf</filename>.
8834 </para>
8835
8836 <para>
8837 Including <filename>module_conf</filename> causes the
8838 OpenEmbedded build system to populate the
8839 <filename>/etc/modprobe.d/modname.conf</filename>
8840 file with <filename>modprobe.d</filename> syntax lines.
8841 Here is an example that adds the options
8842 <filename>arg1</filename> and <filename>arg2</filename>
8843 to a module named <filename>mymodule</filename>:
8844 <literallayout class='monospaced'>
8845 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
8846 </literallayout>
8847 </para>
8848
8849 <para>
8850 For information on how to specify kernel modules to
8851 auto-load on boot, see the
8852 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
8853 variable.
8854 </para>
8855 </glossdef>
8856 </glossentry>
8857
8858 <glossentry id='var-MODULE_IMAGE_BASE_NAME'><glossterm>MODULE_IMAGE_BASE_NAME</glossterm>
8859 <info>
8860 MODULE_IMAGE_BASE_NAME[doc] = "The base name of the kernel modules tarball."
8861 </info>
8862 <glossdef>
8863 <para role="glossdeffirst">
8864<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8865 The base name of the kernel modules tarball.
8866 This variable is set in the
8867 <link linkend='ref-classes-kernel'>kernel</link> class
8868 as follows:
8869 <literallayout class='monospaced'>
8870 MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
8871 </literallayout>
8872 </para>
8873
8874 <para>
8875 See the
8876 <link linkend='var-PKGE'><filename>PKGE</filename></link>,
8877 <link linkend='var-PKGV'><filename>PKGV</filename></link>,
8878 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
8879 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>,
8880 and
8881 <link linkend='var-DATETIME'><filename>DATETIME</filename></link>
8882 variables for additional information.
8883 </para>
8884 </glossdef>
8885 </glossentry>
8886
8887 <glossentry id='var-MODULE_TARBALL_DEPLOY'><glossterm>MODULE_TARBALL_DEPLOY</glossterm>
8888 <info>
8889 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."
8890 </info>
8891 <glossdef>
8892 <para role="glossdeffirst">
8893<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8894 Controls creation of the <filename>modules-*.tgz</filename>
8895 file.
8896 Set this variable to "0" to disable creation of this
8897 file, which contains all of the kernel modules resulting
8898 from a kernel build.
8899 </para>
8900 </glossdef>
8901 </glossentry>
8902
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008903<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008904 <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
8905 <info>
8906 MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
8907 </info>
8908 <glossdef>
8909 <para role="glossdeffirst">
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008910-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008911<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008912<!--
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008913 Serves the same purpose as
8914 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
8915 but for the "HOST" system, in situations that involve a
8916 "HOST" and a "TARGET" system.
8917 See the
8918 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
8919 variable for more information.
8920 </para>
8921
8922 <para>
8923 The default value of this variable is:
8924 <literallayout class='monospaced'>
8925 ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
8926 </literallayout>
8927 </para>
8928 </glossdef>
8929 </glossentry>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05008930-->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008931
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008932 <glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
8933 <info>
8934 MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
8935 </info>
8936 <glossdef>
8937 <para role="glossdeffirst">
8938<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008939 Uniquely identifies the type of the target system for
8940 which packages are being built.
8941 This variable allows output for different types of target
8942 systems to be put into different subdirectories of the same
8943 output directory.
8944 </para>
8945
8946 <para>
8947 The default value of this variable is:
8948 <literallayout class='monospaced'>
8949 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
8950 </literallayout>
8951 Some classes (e.g.
8952 <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
8953 modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
8954 </para>
8955
8956 <para>
8957 See the
8958 <link linkend='var-STAMP'><filename>STAMP</filename></link>
8959 variable for an example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06008960 See the
8961 <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
8962 variable for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008963 </para>
8964 </glossdef>
8965 </glossentry>
8966
8967 </glossdiv>
8968
8969 <glossdiv id='var-glossary-n'><title>N</title>
8970
8971 <glossentry id='var-NATIVELSBSTRING'><glossterm>NATIVELSBSTRING</glossterm>
8972 <info>
8973 NATIVELSBSTRING[doc] = "A string identifying the host distribution."
8974 </info>
8975 <glossdef>
8976 <para role="glossdeffirst">
8977<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
8978 A string identifying the host distribution.
8979 Strings consist of the host distributor ID
8980 followed by the release, as reported by the
8981 <filename>lsb_release</filename> tool
8982 or as read from <filename>/etc/lsb-release</filename>.
8983 For example, when running a build on Ubuntu 12.10, the value
8984 is "Ubuntu-12.10".
8985 If this information is unable to be determined, the value
8986 resolves to "Unknown".
8987 </para>
8988
8989 <para>
8990 This variable is used by default to isolate native shared
8991 state packages for different distributions (e.g. to avoid
8992 problems with <filename>glibc</filename> version
8993 incompatibilities).
8994 Additionally, the variable is checked against
8995 <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link>
8996 if that variable is set.
8997 </para>
8998 </glossdef>
8999 </glossentry>
9000
9001 <glossentry id='var-NM'><glossterm>NM</glossterm>
9002 <info>
9003 NM[doc] = "Minimal command and arguments to run 'nm'."
9004 </info>
9005 <glossdef>
9006 <para role="glossdeffirst">
9007<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9008 The minimal command and arguments to run
9009 <filename>nm</filename>.
9010 </para>
9011 </glossdef>
9012 </glossentry>
9013
9014 <glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
9015 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009016 NO_RECOMMENDATIONS[doc] = "When set to '1', no recommended packages will be installed. Some recommended packages might be required for certain system functionality, such as kernel-modules. It is up to the user to add packages to IMAGE_INSTALL as needed."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009017 </info>
9018 <glossdef>
9019 <para role="glossdeffirst">
9020<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9021 Prevents installation of all "recommended-only" packages.
9022 Recommended-only packages are packages installed only
9023 through the
9024 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
9025 variable).
9026 Setting the <filename>NO_RECOMMENDATIONS</filename> variable
9027 to "1" turns this feature on:
9028 <literallayout class='monospaced'>
9029 NO_RECOMMENDATIONS = "1"
9030 </literallayout>
9031 </para>
9032
9033 <para>
9034 You can set this variable globally in your
9035 <filename>local.conf</filename> file or you can attach it to
9036 a specific image recipe by using the recipe name override:
9037 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009038 NO_RECOMMENDATIONS_pn-<replaceable>target_image</replaceable> = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009039 </literallayout>
9040 </para>
9041
9042 <para>
9043 It is important to realize that if you choose to not install
9044 packages using this variable and some other packages are
9045 dependent on them (i.e. listed in a recipe's
9046 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9047 variable), the OpenEmbedded build system ignores your
9048 request and will install the packages to avoid dependency
9049 errors.
9050 <note>
9051 Some recommended packages might be required for certain
9052 system functionality, such as kernel modules.
9053 It is up to you to add packages with the
9054 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9055 variable.
9056 </note>
9057 </para>
9058
9059 <para>
9060 Support for this variable exists only when using the
9061 IPK and RPM packaging backend.
9062 Support does not exist for DEB.
9063 </para>
9064
9065 <para>
9066 See the
9067 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9068 and the
9069 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
9070 variables for related information.
9071 </para>
9072 </glossdef>
9073 </glossentry>
9074
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009075 <glossentry id='var-NOAUTOPACKAGEDEBUG'><glossterm>NOAUTOPACKAGEDEBUG</glossterm>
9076 <info>
9077 NOAUTOPACKAGEDEBUG[doc] = "Disables auto package from splitting .debug files."
9078 </info>
9079 <glossdef>
9080 <para role="glossdeffirst">
9081<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9082 Disables auto package from splitting
9083 <filename>.debug</filename> files. If a recipe requires
9084 <filename>FILES_${PN}-dbg</filename> to be set manually,
9085 the <filename>NOAUTOPACKAGEDEBUG</filename> can be defined
9086 allowing you to define the content of the debug package.
9087 For example:
9088 <literallayout class='monospaced'>
9089 NOAUTOPACKAGEDEBUG = "1"
9090 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
9091 FILES_${PN}-dbg = "/usr/src/debug/"
9092 FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
9093 </literallayout>
9094 </para>
9095 </glossdef>
9096 </glossentry>
9097
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009098 <glossentry id='var-NOHDD'><glossterm>NOHDD</glossterm>
9099 <info>
9100 NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
9101 </info>
9102 <glossdef>
9103 <para role="glossdeffirst">
9104<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9105 Causes the OpenEmbedded build system to skip building the
9106 <filename>.hddimg</filename> image.
9107 The <filename>NOHDD</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009108 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009109 class.
9110 Set the variable to "1" to prevent the
9111 <filename>.hddimg</filename> image from being built.
9112 </para>
9113 </glossdef>
9114 </glossentry>
9115
9116 <glossentry id='var-NOISO'><glossterm>NOISO</glossterm>
9117 <info>
9118 NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
9119 </info>
9120 <glossdef>
9121 <para role="glossdeffirst">
9122<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9123 Causes the OpenEmbedded build system to skip building the
9124 ISO image.
9125 The <filename>NOISO</filename> variable is used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009126 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009127 class.
9128 Set the variable to "1" to prevent the ISO image from
9129 being built.
9130 To enable building an ISO image, set the variable to "0".
9131 </para>
9132 </glossdef>
9133 </glossentry>
9134
9135 </glossdiv>
9136
9137 <glossdiv id='var-glossary-o'><title>O</title>
9138
9139 <glossentry id='var-OBJCOPY'><glossterm>OBJCOPY</glossterm>
9140 <info>
9141 OBJCOPY[doc] = "Minimal command and arguments to run 'objcopy'."
9142 </info>
9143 <glossdef>
9144 <para role="glossdeffirst">
9145<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9146 The minimal command and arguments to run
9147 <filename>objcopy</filename>.
9148 </para>
9149 </glossdef>
9150 </glossentry>
9151
9152 <glossentry id='var-OBJDUMP'><glossterm>OBJDUMP</glossterm>
9153 <info>
9154 OBJDUMP[doc] = "Minimal command and arguments to run 'objdump'."
9155 </info>
9156 <glossdef>
9157 <para role="glossdeffirst">
9158<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9159 The minimal command and arguments to run
9160 <filename>objdump</filename>.
9161 </para>
9162 </glossdef>
9163 </glossentry>
9164
9165 <glossentry id='var-OE_BINCONFIG_EXTRA_MANGLE'><glossterm>OE_BINCONFIG_EXTRA_MANGLE</glossterm>
9166 <info>
9167 OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
9168 </info>
9169 <glossdef>
9170 <para role="glossdeffirst">
9171<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9172 When inheriting the
9173 <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
9174 class, this variable
9175 specifies additional arguments passed to the "sed" command.
9176 The sed command alters any paths in configuration scripts
9177 that have been set up during compilation.
9178 Inheriting this class results in all paths in these scripts
9179 being changed to point into the
9180 <filename>sysroots/</filename> directory so that all builds
9181 that use the script will use the correct directories
9182 for the cross compiling layout.
9183 </para>
9184
9185 <para>
9186 See the <filename>meta/classes/binconfig.bbclass</filename>
9187 in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009188 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009189 for details on how this class applies these additional
9190 sed command arguments.
9191 For general information on the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009192 <filename>binconfig</filename> class, see the
9193 "<link linkend='ref-classes-binconfig'><filename>binconfig.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009194 section.
9195 </para>
9196 </glossdef>
9197 </glossentry>
9198
9199 <glossentry id='var-OE_IMPORTS'><glossterm>OE_IMPORTS</glossterm>
9200 <info>
9201 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."
9202 </info>
9203 <glossdef>
9204 <para role="glossdeffirst">
9205<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9206 An internal variable used to tell the OpenEmbedded build
9207 system what Python modules to import for every Python
9208 function run by the system.
9209 </para>
9210
9211 <note>
9212 Do not set this variable.
9213 It is for internal use only.
9214 </note>
9215 </glossdef>
9216 </glossentry>
9217
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009218 <glossentry id='var-OE_INIT_ENV_SCRIPT'><glossterm>OE_INIT_ENV_SCRIPT</glossterm>
9219 <info>
9220 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."
9221 </info>
9222 <glossdef>
9223 <para role="glossdeffirst">
9224<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9225 The name of the build environment setup script for the
9226 purposes of setting up the environment within the
9227 extensible SDK.
9228 The default value is "oe-init-build-env".
9229 </para>
9230
9231 <para>
9232 If you use a custom script to set up your build
9233 environment, set the
9234 <filename>OE_INIT_ENV_SCRIPT</filename> variable to its
9235 name.
9236 </para>
9237 </glossdef>
9238 </glossentry>
9239
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009240 <glossentry id='var-OE_TERMINAL'><glossterm>OE_TERMINAL</glossterm>
9241 <info>
9242 OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
9243 </info>
9244 <glossdef>
9245 <para role="glossdeffirst">
9246<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9247 Controls how the OpenEmbedded build system spawns
9248 interactive terminals on the host development system
9249 (e.g. using the BitBake command with the
9250 <filename>-c devshell</filename> command-line option).
9251 For more information, see the
9252 "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devshell'>Using a Development Shell</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009253 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009254 </para>
9255
9256 <para>
9257 You can use the following values for the
9258 <filename>OE_TERMINAL</filename> variable:
9259 <literallayout class='monospaced'>
9260 auto
9261 gnome
9262 xfce
9263 rxvt
9264 screen
9265 konsole
9266 none
9267 </literallayout>
9268 </para>
9269 </glossdef>
9270 </glossentry>
9271
9272 <glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
9273 <info>
9274 OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
9275 </info>
9276 <glossdef>
9277 <para role="glossdeffirst">
9278<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9279 The directory from which the top-level build environment
9280 setup script is sourced.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009281 The Yocto Project provides a top-level build environment
9282 setup script:
9283 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
9284 When you run this script, the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009285 <filename>OEROOT</filename> variable resolves to the
9286 directory that contains the script.
9287 </para>
9288
9289 <para>
9290 For additional information on how this variable is used,
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009291 see the initialization script.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009292 </para>
9293 </glossdef>
9294 </glossentry>
9295
9296 <glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
9297 <info>
9298 OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
9299 </info>
9300 <glossdef>
9301 <para role="glossdeffirst">
9302<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9303 Declares the oldest version of the Linux kernel that the
9304 produced binaries must support.
9305 This variable is passed into the build of the Embedded
9306 GNU C Library (<filename>glibc</filename>).
9307 </para>
9308
9309 <para>
9310 The default for this variable comes from the
9311 <filename>meta/conf/bitbake.conf</filename> configuration
9312 file.
9313 You can override this default by setting the variable
9314 in a custom distribution configuration file.
9315 </para>
9316 </glossdef>
9317 </glossentry>
9318
9319 <glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
9320 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009321 OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009322 </info>
9323 <glossdef>
9324 <para role="glossdeffirst">
9325<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009326 A colon-separated list of overrides that currently apply.
9327 Overrides are a BitBake mechanism that allows variables to
9328 be selectively overridden at the end of parsing.
9329 The set of overrides in <filename>OVERRIDES</filename>
9330 represents the "state" during building, which includes
9331 the current recipe being built, the machine for which
9332 it is being built, and so forth.
9333 </para>
9334
9335 <para>
9336 As an example, if the string "an-override" appears as an
9337 element in the colon-separated list in
9338 <filename>OVERRIDES</filename>, then the following
9339 assignment will override <filename>FOO</filename> with the
9340 value "overridden" at the end of parsing:
9341 <literallayout class='monospaced'>
9342 FOO_an-override = "overridden"
9343 </literallayout>
9344 See the
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009345 "<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009346 section in the BitBake User Manual for more information on
9347 the overrides mechanism.
9348 </para>
9349
9350 <para>
9351 The default value of <filename>OVERRIDES</filename>
9352 includes the values of the
9353 <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
9354 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
9355 and
9356 <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
9357 variables.
9358 Another important override included by default is
9359 <filename>pn-${PN}</filename>.
9360 This override allows variables to be set for a single
9361 recipe within configuration (<filename>.conf</filename>)
9362 files.
9363 Here is an example:
9364 <literallayout class='monospaced'>
9365 FOO_pn-myrecipe = "myrecipe-specific value"
9366 </literallayout>
9367 <note><title>Tip</title>
9368 An easy way to see what overrides apply is to search for
9369 <filename>OVERRIDES</filename> in the output of the
9370 <filename>bitbake -e</filename> command.
9371 See the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009372 "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-debugging-viewing-variable-values'>Viewing Variable Values</ulink>"
9373 section in the Yocto Project Development Tasks
9374 Manual for more information.
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009375 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009376 </para>
9377 </glossdef>
9378 </glossentry>
9379 </glossdiv>
9380
9381 <glossdiv id='var-glossary-p'><title>P</title>
9382
9383 <glossentry id='var-P'><glossterm>P</glossterm>
9384 <info>
9385 P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
9386 </info>
9387 <glossdef>
9388 <para role="glossdeffirst">
9389<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9390 The recipe name and version.
9391 <filename>P</filename> is comprised of the following:
9392 <literallayout class='monospaced'>
9393 ${PN}-${PV}
9394 </literallayout>
9395 </para>
9396 </glossdef>
9397 </glossentry>
9398
9399 <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
9400 <info>
9401 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
9402 </info>
9403 <glossdef>
9404 <para role="glossdeffirst">
9405<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9406 The architecture of the resulting package or packages.
9407 </para>
9408
9409 <para>
9410 By default, the value of this variable is set to
9411 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
9412 when building for the target,
Brad Bishop316dfdd2018-06-25 12:45:53 -04009413 <link linkend='var-BUILD_ARCH'><filename>BUILD_ARCH</filename></link>
9414 when building for the
9415 build host, and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009416 for the SDK.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009417 <note>
9418 See
9419 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>
9420 for more information.
9421 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009422 However, if your recipe's output packages are built
Brad Bishop316dfdd2018-06-25 12:45:53 -04009423 specific to the target machine rather than generally for
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009424 the architecture of the machine, you should set
9425 <filename>PACKAGE_ARCH</filename> to the value of
9426 <link linkend='var-MACHINE_ARCH'><filename>MACHINE_ARCH</filename></link>
9427 in the recipe as follows:
9428 <literallayout class='monospaced'>
9429 PACKAGE_ARCH = "${MACHINE_ARCH}"
9430 </literallayout>
9431 </para>
9432 </glossdef>
9433 </glossentry>
9434
9435 <glossentry id='var-PACKAGE_ARCHS'><glossterm>PACKAGE_ARCHS</glossterm>
9436 <info>
9437 PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
9438 </info>
9439 <glossdef>
9440 <para role="glossdeffirst">
9441<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9442 Specifies a list of architectures compatible with
9443 the target machine.
9444 This variable is set automatically and should not
9445 normally be hand-edited.
9446 Entries are separated using spaces and listed in order
9447 of priority.
9448 The default value for
9449 <filename>PACKAGE_ARCHS</filename> is "all any noarch
9450 ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
9451 </para>
9452 </glossdef>
9453 </glossentry>
9454
9455 <glossentry id='var-PACKAGE_BEFORE_PN'><glossterm>PACKAGE_BEFORE_PN</glossterm>
9456 <info>
9457 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."
9458 </info>
9459 <glossdef>
9460 <para role="glossdeffirst">
9461<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9462 Enables easily adding packages to
9463 <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
9464 before <filename>${<link linkend='var-PN'>PN</link>}</filename>
9465 so that those added packages can pick up files that would normally be
9466 included in the default package.
9467 </para>
9468 </glossdef>
9469 </glossentry>
9470
9471 <glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
9472 <info>
9473 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."
9474 </info>
9475 <glossdef>
9476 <para role="glossdeffirst">
9477<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9478 This variable, which is set in the
9479 <filename>local.conf</filename> configuration file found in
9480 the <filename>conf</filename> folder of the
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009481 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009482 specifies the package manager the OpenEmbedded build system
9483 uses when packaging data.
9484 </para>
9485
9486 <para>
9487 You can provide one or more of the following arguments for
9488 the variable:
9489 <literallayout class='monospaced'>
9490 PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
9491 </literallayout>
9492 <note><title>Warning</title>
9493 While it is a legal option, the
Brad Bishop316dfdd2018-06-25 12:45:53 -04009494 <filename>package_tar</filename> class has limited
9495 functionality due to no support for package
9496 dependencies by that backend.
9497 Therefore, it is recommended that you do not use it.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009498 </note>
9499 The build system uses only the first argument in the list
9500 as the package manager when creating your image or SDK.
9501 However, packages will be created using any additional
9502 packaging classes you specify.
9503 For example, if you use the following in your
9504 <filename>local.conf</filename> file:
9505 <literallayout class='monospaced'>
9506 PACKAGE_CLASSES ?= "package_ipk"
9507 </literallayout>
9508 The OpenEmbedded build system uses the IPK package manager
9509 to create your image or SDK.
9510 </para>
9511
9512 <para>
9513 For information on packaging and build performance effects
9514 as a result of the package manager in use, see the
9515 "<link linkend='ref-classes-package'><filename>package.bbclass</filename></link>"
9516 section.
9517 </para>
9518 </glossdef>
9519 </glossentry>
9520
9521 <glossentry id='var-PACKAGE_DEBUG_SPLIT_STYLE'><glossterm>PACKAGE_DEBUG_SPLIT_STYLE</glossterm>
9522 <info>
9523 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)."
9524 </info>
9525 <glossdef>
9526 <para role="glossdeffirst">
9527<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9528 Determines how to split up the binary and debug information
9529 when creating <filename>*-dbg</filename> packages to be
9530 used with the GNU Project Debugger (GDB).
9531 </para>
9532
9533 <para>
9534 With the
9535 <filename>PACKAGE_DEBUG_SPLIT_STYLE</filename> variable,
9536 you can control where debug information, which can include
9537 or exclude source files, is stored:
9538 <itemizedlist>
9539 <listitem><para>
9540 ".debug": Debug symbol files are placed next
9541 to the binary in a <filename>.debug</filename>
9542 directory on the target.
9543 For example, if a binary is installed into
9544 <filename>/bin</filename>, the corresponding debug
9545 symbol files are installed in
9546 <filename>/bin/.debug</filename>.
9547 Source files are placed in
9548 <filename>/usr/src/debug</filename>.
9549 This is the default behavior.
9550 </para></listitem>
9551 <listitem><para>
9552 "debug-file-directory": Debug symbol files are
9553 placed under <filename>/usr/lib/debug</filename>
9554 on the target, and separated by the path from where
9555 the binary is installed.
9556 For example, if a binary is installed in
9557 <filename>/bin</filename>, the corresponding debug
9558 symbols are installed in
9559 <filename>/usr/lib/debug/bin</filename>.
9560 Source files are placed in
9561 <filename>/usr/src/debug</filename>.
9562 </para></listitem>
9563 <listitem><para>
9564 "debug-without-src": The same behavior as
9565 ".debug" previously described with the exception
9566 that no source files are installed.
9567 </para></listitem>.
9568 </itemizedlist>
9569 </para>
9570
9571 <para>
9572 You can find out more about debugging using GDB by reading
9573 the
9574 "<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 -05009575 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009576 </para>
9577 </glossdef>
9578 </glossentry>
9579
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009580 <glossentry id='var-PACKAGE_EXCLUDE_COMPLEMENTARY'><glossterm>PACKAGE_EXCLUDE_COMPLEMENTARY</glossterm>
9581 <info>
9582 PACKAGE_EXCLUDE_COMPLEMENTARY[doc] = "Prevents specific packages from being installed when you are installing complementary packages."
9583 </info>
9584 <glossdef>
9585 <para role="glossdeffirst">
9586<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9587 Prevents specific packages from being installed when
9588 you are installing complementary packages.
9589 </para>
9590
9591 <para>
9592 You might find that you want to prevent installing certain
9593 packages when you are installing complementary packages.
9594 For example, if you are using
9595 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
9596 to install <filename>dev-pkgs</filename>, you might not want
9597 to install all packages from a particular multilib.
9598 If you find yourself in this situation, you can use the
9599 <filename>PACKAGE_EXCLUDE_COMPLEMENTARY</filename> variable
9600 to specify regular expressions to match the packages you
9601 want to exclude.
9602 </para>
9603 </glossdef>
9604 </glossentry>
9605
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009606 <glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
9607 <info>
9608 PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
9609 </info>
9610 <glossdef>
9611 <para role="glossdeffirst">
9612<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9613 Lists packages that should not be installed into an image.
9614 For example:
9615 <literallayout class='monospaced'>
9616 PACKAGE_EXCLUDE = "<replaceable>package_name</replaceable> <replaceable>package_name</replaceable> <replaceable>package_name</replaceable> ..."
9617 </literallayout>
9618 </para>
9619
9620 <para>
9621 You can set this variable globally in your
9622 <filename>local.conf</filename> file or you can attach it to
9623 a specific image recipe by using the recipe name override:
9624 <literallayout class='monospaced'>
9625 PACKAGE_EXCLUDE_pn-<replaceable>target_image</replaceable> = "<replaceable>package_name</replaceable>"
9626 </literallayout>
9627 </para>
9628
9629 <para>
9630 If you choose to not install
9631 a package using this variable and some other package is
9632 dependent on it (i.e. listed in a recipe's
9633 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
9634 variable), the OpenEmbedded build system generates a fatal
9635 installation error.
9636 Because the build system halts the process with a fatal
9637 error, you can use the variable with an iterative
9638 development process to remove specific components from a
9639 system.
9640 </para>
9641
9642 <para>
9643 Support for this variable exists only when using the
9644 IPK and RPM packaging backend.
9645 Support does not exist for DEB.
9646 </para>
9647
9648 <para>
9649 See the
9650 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
9651 and the
9652 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
9653 variables for related information.
9654 </para>
9655 </glossdef>
9656 </glossentry>
9657
9658 <glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
9659 <info>
9660 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."
9661 </info>
9662 <glossdef>
9663 <para role="glossdeffirst">
9664<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9665 Specifies the list of architectures compatible with the device CPU.
9666 This variable is useful when you build for several different devices that use
9667 miscellaneous processors such as XScale and ARM926-EJS.
9668 </para>
9669 </glossdef>
9670 </glossentry>
9671
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009672 <glossentry id='var-PACKAGE_FEED_ARCHS'><glossterm>PACKAGE_FEED_ARCHS</glossterm>
9673 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -04009674 PACKAGE_FEED_ARCHS[doc] = "Optionally specifies user-defined package architectures when constructing package feed URIs."
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009675 </info>
9676 <glossdef>
9677 <para role="glossdeffirst">
9678<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -04009679 Optionally specifies the package architectures used as
9680 part of the package feed URIs during the build.
9681 When used, the <filename>PACKAGE_FEED_ARCHS</filename>
9682 variable is appended to the final package feed URI, which
9683 is constructed using the
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009684 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9685 and
9686 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>
9687 variables.
Brad Bishop316dfdd2018-06-25 12:45:53 -04009688 <note><title>Tip</title>
9689 You can use the <filename>PACKAGE_FEEDS_ARCHS</filename>
9690 variable to whitelist specific package architectures.
9691 If you do not need to whitelist specific architectures,
9692 which is a common case, you can omit this variable.
9693 Omitting the variable results in all available
9694 architectures for the current machine being included
9695 into remote package feeds.
9696 </note>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05009697 </para>
9698
9699 <para>
9700 Consider the following example where the
9701 <filename>PACKAGE_FEED_URIS</filename>,
9702 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9703 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9704 defined in your <filename>local.conf</filename> file:
9705 <literallayout class='monospaced'>
9706 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9707 https://example.com/packagerepos/updates"
9708 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9709 PACKAGE_FEED_ARCHS = "all core2-64"
9710 </literallayout>
9711 Given these settings, the resulting package feeds are
9712 as follows:
9713 <literallayout class='monospaced'>
9714 https://example.com/packagerepos/release/rpm/all
9715 https://example.com/packagerepos/release/rpm/core2-64
9716 https://example.com/packagerepos/release/rpm-dev/all
9717 https://example.com/packagerepos/release/rpm-dev/core2-64
9718 https://example.com/packagerepos/updates/rpm/all
9719 https://example.com/packagerepos/updates/rpm/core2-64
9720 https://example.com/packagerepos/updates/rpm-dev/all
9721 https://example.com/packagerepos/updates/rpm-dev/core2-64
9722 </literallayout>
9723 </para>
9724 </glossdef>
9725 </glossentry>
9726
9727 <glossentry id='var-PACKAGE_FEED_BASE_PATHS'><glossterm>PACKAGE_FEED_BASE_PATHS</glossterm>
9728 <info>
9729 PACKAGE_FEED_BASE_PATHS[doc] = "Specifies base path used when constructing package feed URIs."
9730 </info>
9731 <glossdef>
9732 <para role="glossdeffirst">
9733<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9734 Specifies the base path used when constructing package feed
9735 URIs.
9736 The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
9737 makes up the middle portion of a package feed URI used
9738 by the OpenEmbedded build system.
9739 The base path lies between the
9740 <link linkend='var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></link>
9741 and
9742 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9743 variables.
9744 </para>
9745
9746 <para>
9747 Consider the following example where the
9748 <filename>PACKAGE_FEED_URIS</filename>,
9749 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9750 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9751 defined in your <filename>local.conf</filename> file:
9752 <literallayout class='monospaced'>
9753 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9754 https://example.com/packagerepos/updates"
9755 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9756 PACKAGE_FEED_ARCHS = "all core2-64"
9757 </literallayout>
9758 Given these settings, the resulting package feeds are
9759 as follows:
9760 <literallayout class='monospaced'>
9761 https://example.com/packagerepos/release/rpm/all
9762 https://example.com/packagerepos/release/rpm/core2-64
9763 https://example.com/packagerepos/release/rpm-dev/all
9764 https://example.com/packagerepos/release/rpm-dev/core2-64
9765 https://example.com/packagerepos/updates/rpm/all
9766 https://example.com/packagerepos/updates/rpm/core2-64
9767 https://example.com/packagerepos/updates/rpm-dev/all
9768 https://example.com/packagerepos/updates/rpm-dev/core2-64
9769 </literallayout>
9770 </para>
9771 </glossdef>
9772 </glossentry>
9773
9774 <glossentry id='var-PACKAGE_FEED_URIS'><glossterm>PACKAGE_FEED_URIS</glossterm>
9775 <info>
9776 PACKAGE_FEED_URIS[doc] = "Specifies the front portion of the package feed URI used by the OpenEmbedded build system."
9777 </info>
9778 <glossdef>
9779 <para role="glossdeffirst">
9780<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9781 Specifies the front portion of the package feed URI
9782 used by the OpenEmbedded build system.
9783 Each final package feed URI is comprised of
9784 <filename>PACKAGE_FEED_URIS</filename>,
9785 <link linkend='var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></link>,
9786 and
9787 <link linkend='var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></link>
9788 variables.
9789 </para>
9790
9791 <para>
9792 Consider the following example where the
9793 <filename>PACKAGE_FEED_URIS</filename>,
9794 <filename>PACKAGE_FEED_BASE_PATHS</filename>, and
9795 <filename>PACKAGE_FEED_ARCHS</filename> variables are
9796 defined in your <filename>local.conf</filename> file:
9797 <literallayout class='monospaced'>
9798 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
9799 https://example.com/packagerepos/updates"
9800 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
9801 PACKAGE_FEED_ARCHS = "all core2-64"
9802 </literallayout>
9803 Given these settings, the resulting package feeds are
9804 as follows:
9805 <literallayout class='monospaced'>
9806 https://example.com/packagerepos/release/rpm/all
9807 https://example.com/packagerepos/release/rpm/core2-64
9808 https://example.com/packagerepos/release/rpm-dev/all
9809 https://example.com/packagerepos/release/rpm-dev/core2-64
9810 https://example.com/packagerepos/updates/rpm/all
9811 https://example.com/packagerepos/updates/rpm/core2-64
9812 https://example.com/packagerepos/updates/rpm-dev/all
9813 https://example.com/packagerepos/updates/rpm-dev/core2-64
9814 </literallayout>
9815 </para>
9816 </glossdef>
9817 </glossentry>
9818
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009819 <glossentry id='var-PACKAGE_GROUP'><glossterm>PACKAGE_GROUP</glossterm>
9820 <info>
9821 PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
9822 </info>
9823 <glossdef>
9824 <para role="glossdeffirst">
9825<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9826 The <filename>PACKAGE_GROUP</filename> variable has been
9827 renamed to
9828 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>.
9829 See the variable description for
9830 <filename>FEATURE_PACKAGES</filename> for information.
9831 </para>
9832
9833 <para>
9834 If if you use the <filename>PACKAGE_GROUP</filename>
9835 variable, the OpenEmbedded build system issues a warning
9836 message.
9837 </para>
9838 </glossdef>
9839 </glossentry>
9840
9841 <glossentry id='var-PACKAGE_INSTALL'><glossterm>PACKAGE_INSTALL</glossterm>
9842 <info>
9843 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."
9844 </info>
9845 <glossdef>
9846 <para role="glossdeffirst">
9847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9848 The final list of packages passed to the package manager
9849 for installation into the image.
9850 </para>
9851
9852 <para>
9853 Because the package manager controls actual installation
9854 of all packages, the list of packages passed using
9855 <filename>PACKAGE_INSTALL</filename> is not the final list
9856 of packages that are actually installed.
9857 This variable is internal to the image construction
9858 code.
9859 Consequently, in general, you should use the
9860 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
9861 variable to specify packages for installation.
9862 The exception to this is when working with
9863 the
9864 <link linkend='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename></link>
9865 image.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05009866 When working with an initial RAM filesystem (initramfs)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009867 image, use the <filename>PACKAGE_INSTALL</filename>
9868 variable.
Brad Bishop37a0e4d2017-12-04 01:01:44 -05009869 For information on creating an initramfs, see the
9870 "<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 -05009871 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009872 </para>
9873 </glossdef>
9874 </glossentry>
9875
9876 <glossentry id='var-PACKAGE_INSTALL_ATTEMPTONLY'><glossterm>PACKAGE_INSTALL_ATTEMPTONLY</glossterm>
9877 <info>
9878 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."
9879 </info>
9880 <glossdef>
9881 <para role="glossdeffirst">
9882<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9883 Specifies a list of packages the OpenEmbedded build
9884 system attempts to install when creating an image.
9885 If a listed package fails to install, the build system
9886 does not generate an error.
9887 This variable is generally not user-defined.
9888 </para>
9889 </glossdef>
9890 </glossentry>
9891
9892 <glossentry id='var-PACKAGE_PREPROCESS_FUNCS'><glossterm>PACKAGE_PREPROCESS_FUNCS</glossterm>
9893 <info>
9894 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."
9895 </info>
9896 <glossdef>
9897 <para role="glossdeffirst">
9898<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9899 Specifies a list of functions run to pre-process the
9900 <link linkend='var-PKGD'><filename>PKGD</filename></link>
9901 directory prior to splitting the files out to individual
9902 packages.
9903 </para>
9904 </glossdef>
9905 </glossentry>
9906
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009907 <glossentry id='var-PACKAGE_WRITE_DEPS'><glossterm>PACKAGE_WRITE_DEPS</glossterm>
9908 <info>
9909 PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools."
9910 </info>
9911 <glossdef>
9912 <para role="glossdeffirst">
9913<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9914 Specifies a list of dependencies for post-installation and
9915 pre-installation scripts on native/cross tools.
9916 If your post-installation or pre-installation script can
9917 execute at rootfs creation time rather than on the
9918 target but depends on a native tool in order to execute,
9919 you need to list the tools in
9920 <filename>PACKAGE_WRITE_DEPENDS</filename>.
9921 </para>
9922
9923 <para>
9924 For information on running post-installation scripts, see
9925 the
9926 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-post-installation-scripts'>Post-Installation Scripts</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009927 section in the Yocto Project Development Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -05009928 </para>
9929 </glossdef>
9930 </glossentry>
9931
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009932 <glossentry id='var-PACKAGECONFIG'><glossterm>PACKAGECONFIG</glossterm>
9933 <info>
9934 PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
9935 </info>
9936 <glossdef>
9937 <para role="glossdeffirst">
9938<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
9939 This variable provides a means of enabling or disabling
9940 features of a recipe on a per-recipe basis.
9941 <filename>PACKAGECONFIG</filename> blocks are defined
9942 in recipes when you specify features and then arguments
9943 that define feature behaviors.
9944 Here is the basic block structure:
9945 <literallayout class='monospaced'>
9946 PACKAGECONFIG ??= "f1 f2 f3 ..."
9947 PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1"
9948 PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2"
9949 PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3"
9950 </literallayout>
9951 </para>
9952
9953 <para>
9954 The <filename>PACKAGECONFIG</filename>
9955 variable itself specifies a space-separated list of the
9956 features to enable.
9957 Following the features, you can determine the behavior of
9958 each feature by providing up to four order-dependent
9959 arguments, which are separated by commas.
9960 You can omit any argument you like but must retain the
9961 separating commas.
9962 The order is important and specifies the following:
9963 <orderedlist>
9964 <listitem><para>Extra arguments
9965 that should be added to the configure script
9966 argument list
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009967 (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
9968 or
9969 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009970 if the feature is enabled.</para></listitem>
9971 <listitem><para>Extra arguments
9972 that should be added to <filename>EXTRA_OECONF</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009973 or <filename>PACKAGECONFIG_CONFARGS</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009974 if the feature is disabled.
9975 </para></listitem>
9976 <listitem><para>Additional build dependencies
9977 (<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>)
9978 that should be added if the feature is enabled.
9979 </para></listitem>
9980 <listitem><para>Additional runtime dependencies
9981 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
9982 that should be added if the feature is enabled.
9983 </para></listitem>
9984 </orderedlist>
9985 </para>
9986
9987 <para>
9988 Consider the following
9989 <filename>PACKAGECONFIG</filename> block taken from the
9990 <filename>librsvg</filename> recipe.
9991 In this example the feature is <filename>croco</filename>,
9992 which has three arguments that determine the feature's
9993 behavior.
9994 <literallayout class='monospaced'>
9995 PACKAGECONFIG ??= "croco"
9996 PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
9997 </literallayout>
9998 The <filename>--with-croco</filename> and
9999 <filename>libcroco</filename> arguments apply only if
10000 the feature is enabled.
10001 In this case, <filename>--with-croco</filename> is
10002 added to the configure script argument list and
10003 <filename>libcroco</filename> is added to
Brad Bishop316dfdd2018-06-25 12:45:53 -040010004 <filename>DEPENDS</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010005 On the other hand, if the feature is disabled say through
10006 a <filename>.bbappend</filename> file in another layer, then
10007 the second argument <filename>--without-croco</filename> is
10008 added to the configure script rather than
10009 <filename>--with-croco</filename>.
10010 </para>
10011
10012 <para>
10013 The basic <filename>PACKAGECONFIG</filename> structure
10014 previously described holds true regardless of whether you
10015 are creating a block or changing a block.
10016 When creating a block, use the structure inside your
10017 recipe.
10018 </para>
10019
10020 <para>
10021 If you want to change an existing
10022 <filename>PACKAGECONFIG</filename> block, you can do so
10023 one of two ways:
10024 <itemizedlist>
10025 <listitem><para><emphasis>Append file:</emphasis>
10026 Create an append file named
10027 <replaceable>recipename</replaceable><filename>.bbappend</filename>
10028 in your layer and override the value of
10029 <filename>PACKAGECONFIG</filename>.
10030 You can either completely override the variable:
10031 <literallayout class='monospaced'>
10032 PACKAGECONFIG="f4 f5"
10033 </literallayout>
10034 Or, you can just append the variable:
10035 <literallayout class='monospaced'>
10036 PACKAGECONFIG_append = " f4"
10037 </literallayout></para></listitem>
10038 <listitem><para><emphasis>Configuration file:</emphasis>
10039 This method is identical to changing the block
10040 through an append file except you edit your
10041 <filename>local.conf</filename> or
10042 <filename><replaceable>mydistro</replaceable>.conf</filename> file.
10043 As with append files previously described,
10044 you can either completely override the variable:
10045 <literallayout class='monospaced'>
10046 PACKAGECONFIG_pn-<replaceable>recipename</replaceable>="f4 f5"
10047 </literallayout>
10048 Or, you can just amend the variable:
10049 <literallayout class='monospaced'>
10050 PACKAGECONFIG_append_pn-<replaceable>recipename</replaceable> = " f4"
10051 </literallayout></para></listitem>
10052 </itemizedlist>
10053 </para>
10054 </glossdef>
10055 </glossentry>
10056
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010057 <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
10058 <info>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010059 PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from the PACKAGECONFIG setting."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010060 </info>
10061 <glossdef>
10062 <para role="glossdeffirst">
10063<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10064 A space-separated list of configuration options generated
10065 from the
10066 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
10067 setting.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010068 </para>
10069
10070 <para>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010071 Classes such as
10072 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
10073 and
10074 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
10075 use <filename>PACKAGECONFIG_CONFARGS</filename> to pass
Brad Bishop316dfdd2018-06-25 12:45:53 -040010076 <filename>PACKAGECONFIG</filename> options to
10077 <filename>configure</filename> and
Brad Bishop6e60e8b2018-02-01 10:27:11 -050010078 <filename>cmake</filename>, respectively.
10079 If you are using
10080 <filename>PACKAGECONFIG</filename> but not a class that
10081 handles the <filename>do_configure</filename> task, then
10082 you need to use
10083 <filename>PACKAGECONFIG_CONFARGS</filename> appropriately.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010084 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010085 </glossdef>
10086 </glossentry>
10087
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010088 <glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
10089 <info>
10090 PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
10091 </info>
10092 <glossdef>
10093 <para role="glossdeffirst">
10094<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10095 For recipes inheriting the
10096 <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
10097 class, setting
10098 <filename>PACKAGEGROUP_DISABLE_COMPLEMENTARY</filename> to
10099 "1" specifies that the normal complementary packages
10100 (i.e. <filename>-dev</filename>,
10101 <filename>-dbg</filename>, and so forth) should not be
10102 automatically created by the
10103 <filename>packagegroup</filename> recipe, which is the
10104 default behavior.
10105 </para>
10106 </glossdef>
10107 </glossentry>
10108
10109 <glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
10110 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010111 PACKAGES[doc] = "The list of packages the recipe creates."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010112 </info>
10113 <glossdef>
10114 <para role="glossdeffirst">
10115<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010116 The list of packages the recipe creates.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010117 The default value is the following:
10118 <literallayout class='monospaced'>
10119 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
10120 </literallayout>
10121 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010122
10123 <para>
10124 During packaging, the
10125 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
10126 task goes through <filename>PACKAGES</filename> and uses
10127 the
10128 <link linkend='var-FILES'><filename>FILES</filename></link>
10129 variable corresponding to each package to assign files to
10130 the package.
10131 If a file matches the <filename>FILES</filename> variable
10132 for more than one package in <filename>PACKAGES</filename>,
10133 it will be assigned to the earliest (leftmost) package.
10134 </para>
10135
10136 <para>
10137 Packages in the variable's list that are empty (i.e. where
10138 none of the patterns in
10139 <filename>FILES_</filename><replaceable>pkg</replaceable>
10140 match any files installed by the
10141 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10142 task) are not generated, unless generation is forced through
10143 the
10144 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
10145 variable.
10146 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010147 </glossdef>
10148 </glossentry>
10149
10150 <glossentry id='var-PACKAGES_DYNAMIC'><glossterm>PACKAGES_DYNAMIC</glossterm>
10151 <info>
10152 PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
10153 </info>
10154 <glossdef>
10155 <para role="glossdeffirst">
10156<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10157 A promise that your recipe satisfies runtime dependencies
10158 for optional modules that are found in other recipes.
10159 <filename>PACKAGES_DYNAMIC</filename>
10160 does not actually satisfy the dependencies, it only states that
10161 they should be satisfied.
10162 For example, if a hard, runtime dependency
10163 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>)
10164 of another package is satisfied
10165 at build time through the <filename>PACKAGES_DYNAMIC</filename>
10166 variable, but a package with the module name is never actually
10167 produced, then the other package will be broken.
10168 Thus, if you attempt to include that package in an image,
10169 you will get a dependency failure from the packaging system
10170 during the
10171 <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
10172 task.
10173 </para>
10174
10175 <para>
10176 Typically, if there is a chance that such a situation can
10177 occur and the package that is not created is valid
10178 without the dependency being satisfied, then you should use
10179 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
10180 (a soft runtime dependency) instead of
10181 <filename>RDEPENDS</filename>.
10182 </para>
10183
10184 <para>
10185 For an example of how to use the <filename>PACKAGES_DYNAMIC</filename>
10186 variable when you are splitting packages, see the
10187 "<ulink url='&YOCTO_DOCS_DEV_URL;#handling-optional-module-packaging'>Handling Optional Module Packaging</ulink>" section
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010188 in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010189 </para>
10190 </glossdef>
10191 </glossentry>
10192
10193 <glossentry id='var-PACKAGESPLITFUNCS'><glossterm>PACKAGESPLITFUNCS</glossterm>
10194 <info>
10195 PACKAGESPLITFUNCS[doc] = "Specifies a list of functions run to perform additional splitting of files into individual packages."
10196 </info>
10197 <glossdef>
10198 <para role="glossdeffirst">
10199<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10200 Specifies a list of functions run to perform additional
10201 splitting of files into individual packages.
10202 Recipes can either prepend to this variable or prepend
10203 to the <filename>populate_packages</filename> function
10204 in order to perform additional package splitting.
10205 In either case, the function should set
10206 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>,
10207 <link linkend='var-FILES'><filename>FILES</filename></link>,
10208 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
10209 and other packaging variables appropriately in order to
10210 perform the desired splitting.
10211 </para>
10212 </glossdef>
10213 </glossentry>
10214
10215 <glossentry id='var-PARALLEL_MAKE'><glossterm>PARALLEL_MAKE</glossterm>
10216 <info>
10217 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."
10218 </info>
10219 <glossdef>
10220 <para role="glossdeffirst">
10221<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10222 Extra options passed to the <filename>make</filename>
10223 command during the
10224 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
10225 task in order to specify parallel compilation on the local
10226 build host.
10227 This variable is usually in the form "-j <replaceable>x</replaceable>",
10228 where <replaceable>x</replaceable> represents the maximum
10229 number of parallel threads <filename>make</filename> can
10230 run.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010231 <note><title>Caution</title>
10232 In order for <filename>PARALLEL_MAKE</filename> to be
10233 effective, <filename>make</filename> must be called
10234 with
10235 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10236 An easy way to ensure this is to use the
10237 <filename>oe_runmake</filename> function.
10238 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010239 </para>
10240
10241 <para>
10242 By default, the OpenEmbedded build system automatically
10243 sets this variable to be equal to the number of cores the
10244 build system uses.
10245 <note>
10246 If the software being built experiences dependency
10247 issues during the <filename>do_compile</filename>
10248 task that result in race conditions, you can clear
10249 the <filename>PARALLEL_MAKE</filename> variable within
10250 the recipe as a workaround.
10251 For information on addressing race conditions, see the
10252 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010253 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010254 </note>
10255 For single socket systems (i.e. one CPU), you should not
10256 have to override this variable to gain optimal parallelism
10257 during builds.
10258 However, if you have very large systems that employ
10259 multiple physical CPUs, you might want to make sure the
10260 <filename>PARALLEL_MAKE</filename> variable is not
10261 set higher than "-j 20".
10262 </para>
10263
10264 <para>
10265 For more information on speeding up builds, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010266 "<ulink url='&YOCTO_DOCS_DEV_URL;#speeding-up-a-build'>Speeding Up a Build</ulink>"
10267 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010268 </para>
10269 </glossdef>
10270 </glossentry>
10271
10272 <glossentry id='var-PARALLEL_MAKEINST'><glossterm>PARALLEL_MAKEINST</glossterm>
10273 <info>
10274 PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
10275 </info>
10276 <glossdef>
10277 <para role="glossdeffirst">
10278<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10279 Extra options passed to the
10280 <filename>make install</filename> command during the
10281 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
10282 task in order to specify parallel installation.
10283 This variable defaults to the value of
10284 <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010285 <note><title>Notes and Cautions</title>
10286 <para>In order for <filename>PARALLEL_MAKEINST</filename>
10287 to be
10288 effective, <filename>make</filename> must be called
10289 with
10290 <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
10291 An easy way to ensure this is to use the
10292 <filename>oe_runmake</filename> function.</para>
10293
10294 <para>If the software being built experiences
10295 dependency issues during the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010296 <filename>do_install</filename> task that result in
10297 race conditions, you can clear the
10298 <filename>PARALLEL_MAKEINST</filename> variable within
10299 the recipe as a workaround.
10300 For information on addressing race conditions, see the
10301 "<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010302 section in the Yocto Project Development Tasks Manual.
10303 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010304 </note>
10305 </para>
10306 </glossdef>
10307 </glossentry>
10308
10309 <glossentry id='var-PATCHRESOLVE'><glossterm>PATCHRESOLVE</glossterm>
10310 <info>
10311 PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
10312 </info>
10313 <glossdef>
10314 <para role="glossdeffirst">
10315<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10316 Determines the action to take when a patch fails.
10317 You can set this variable to one of two values: "noop" and
10318 "user".
10319 </para>
10320
10321 <para>
10322 The default value of "noop" causes the build to simply fail
10323 when the OpenEmbedded build system cannot successfully
10324 apply a patch.
10325 Setting the value to "user" causes the build system to
10326 launch a shell and places you in the right location so that
10327 you can manually resolve the conflicts.
10328 </para>
10329
10330 <para>
10331 Set this variable in your
10332 <filename>local.conf</filename> file.
10333 </para>
10334 </glossdef>
10335 </glossentry>
10336
10337 <glossentry id='var-PATCHTOOL'><glossterm>PATCHTOOL</glossterm>
10338 <info>
10339 PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
10340 </info>
10341 <glossdef>
10342 <para role="glossdeffirst">
10343<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10344 Specifies the utility used to apply patches for a recipe
10345 during the
10346 <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
10347 task.
10348 You can specify one of three utilities: "patch", "quilt", or
10349 "git".
10350 The default utility used is "quilt" except for the
10351 quilt-native recipe itself.
10352 Because the quilt tool is not available at the
10353 time quilt-native is being patched, it uses "patch".
10354 </para>
10355
10356 <para>
10357 If you wish to use an alternative patching tool, set the
10358 variable in the recipe using one of the following:
10359 <literallayout class='monospaced'>
10360 PATCHTOOL = "patch"
10361 PATCHTOOL = "quilt"
10362 PATCHTOOL = "git"
10363 </literallayout>
10364 </para>
10365 </glossdef>
10366 </glossentry>
10367
10368 <glossentry id='var-PE'><glossterm>PE</glossterm>
10369 <info>
10370 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."
10371 </info>
10372 <glossdef>
10373 <para role="glossdeffirst">
10374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10375 The epoch of the recipe.
10376 By default, this variable is unset.
10377 The variable is used to make upgrades possible when the
10378 versioning scheme changes in some backwards incompatible
10379 way.
10380 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010381
10382 <para>
10383 <filename>PE</filename> is the default value of the
10384 <link linkend='var-PKGE'><filename>PKGE</filename></link>
10385 variable.
10386 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010387 </glossdef>
10388 </glossentry>
10389
10390 <glossentry id='var-PF'><glossterm>PF</glossterm>
10391 <info>
10392 PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
10393 </info>
10394 <glossdef>
10395 <para role="glossdeffirst">
10396<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10397 Specifies the recipe or package name and includes all version and revision
10398 numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
10399 <filename>bash-4.2-r1/</filename>).
10400 This variable is comprised of the following:
10401 <literallayout class='monospaced'>
10402 ${<link linkend='var-PN'>PN</link>}-${<link linkend='var-EXTENDPE'>EXTENDPE</link>}${<link linkend='var-PV'>PV</link>}-${<link linkend='var-PR'>PR</link>}
10403 </literallayout>
10404 </para>
10405 </glossdef>
10406 </glossentry>
10407
10408 <glossentry id='var-PIXBUF_PACKAGES'><glossterm>PIXBUF_PACKAGES</glossterm>
10409 <info>
10410 PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
10411 </info>
10412 <glossdef>
10413 <para role="glossdeffirst">
10414<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10415 When inheriting the
10416 <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
10417 class, this variable identifies packages that contain
10418 the pixbuf loaders used with
10419 <filename>gdk-pixbuf</filename>.
10420 By default, the <filename>pixbufcache</filename> class
10421 assumes that the loaders are in the recipe's main package
10422 (i.e. <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
10423 Use this variable if the loaders you need are in a package
10424 other than that main package.
10425 </para>
10426 </glossdef>
10427 </glossentry>
10428
10429 <glossentry id='var-PKG'><glossterm>PKG</glossterm>
10430 <info>
10431 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."
10432 </info>
10433 <glossdef>
10434 <para role="glossdeffirst">
10435<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10436 The name of the resulting package created by the
10437 OpenEmbedded build system.
10438 <note>
10439 When using the <filename>PKG</filename> variable, you
10440 must use a package name override.
10441 </note>
10442 </para>
10443
10444 <para>
10445 For example, when the
10446 <link linkend='ref-classes-debian'><filename>debian</filename></link>
10447 class renames the output package, it does so by setting
10448 <filename>PKG_<replaceable>packagename</replaceable></filename>.
10449 </para>
10450 </glossdef>
10451 </glossentry>
10452
10453 <glossentry id='var-PKG_CONFIG_PATH'><glossterm>PKG_CONFIG_PATH</glossterm>
10454 <info>
10455 PKG_CONFIG_PATH[doc] = "Path to pkg-config files for the current build context."
10456 </info>
10457 <glossdef>
10458 <para role="glossdeffirst">
10459<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10460 The path to <filename>pkg-config</filename> files for the
10461 current build context.
10462 <filename>pkg-config</filename> reads this variable
10463 from the environment.
10464 </para>
10465 </glossdef>
10466 </glossentry>
10467
10468 <glossentry id='var-PKGD'><glossterm>PKGD</glossterm>
10469 <info>
10470 PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
10471 </info>
10472 <glossdef>
10473 <para role="glossdeffirst">
10474<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10475 Points to the destination directory for files to be
10476 packaged before they are split into individual packages.
10477 This directory defaults to the following:
10478 <literallayout class='monospaced'>
10479 ${WORKDIR}/package
10480 </literallayout>
10481 </para>
10482
10483 <para>
10484 Do not change this default.
10485 </para>
10486 </glossdef>
10487 </glossentry>
10488
10489 <glossentry id='var-PKGDATA_DIR'><glossterm>PKGDATA_DIR</glossterm>
10490 <info>
10491 PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
10492 </info>
10493 <glossdef>
10494 <para role="glossdeffirst">
10495<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10496 Points to a shared, global-state directory that holds data
10497 generated during the packaging process.
10498 During the packaging process, the
10499 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10500 task packages data for each recipe and installs it into
10501 this temporary, shared area.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010502 This directory defaults to the following, which you should
10503 not change:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010504 <literallayout class='monospaced'>
10505 ${STAGING_DIR_HOST}/pkgdata
10506 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010507 For examples of how this data is used, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040010508 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
10509 section in the Yocto Project Overview and Concepts Manual
10510 and the
10511 "<ulink url='&YOCTO_DOCS_DEV_URL;#viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></ulink>"
10512 section in the Yocto Project Development Tasks Manual.
10513 For more information on the shared, global-state directory,
10514 see
10515 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010516 </para>
10517 </glossdef>
10518 </glossentry>
10519
10520 <glossentry id='var-PKGDEST'><glossterm>PKGDEST</glossterm>
10521 <info>
10522 PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
10523 </info>
10524 <glossdef>
10525 <para role="glossdeffirst">
10526<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10527 Points to the parent directory for files to be packaged
10528 after they have been split into individual packages.
10529 This directory defaults to the following:
10530 <literallayout class='monospaced'>
10531 ${WORKDIR}/packages-split
10532 </literallayout>
10533 </para>
10534
10535 <para>
10536 Under this directory, the build system creates
10537 directories for each package specified in
10538 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>.
10539 Do not change this default.
10540 </para>
10541 </glossdef>
10542 </glossentry>
10543
10544 <glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
10545 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010546 PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010547 </info>
10548 <glossdef>
10549 <para role="glossdeffirst">
10550<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010551 Points to a temporary work area where the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010552 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010553 task saves package metadata.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010554 The <filename>PKGDESTWORK</filename> location defaults to
10555 the following:
10556 <literallayout class='monospaced'>
10557 ${WORKDIR}/pkgdata
10558 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010559 Do not change this default.
10560 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010561
10562 <para>
10563 The
10564 <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
10565 task copies the package metadata from
10566 <filename>PKGDESTWORK</filename> to
10567 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
10568 to make it available globally.
10569 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010570 </glossdef>
10571 </glossentry>
10572
10573 <glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
10574 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010575 PKGE[doc] = "The epoch of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010576 </info>
10577 <glossdef>
10578 <para role="glossdeffirst">
10579<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010580 The epoch of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010581 By default, <filename>PKGE</filename> is set to
10582 <link linkend='var-PE'><filename>PE</filename></link>.
10583 </para>
10584 </glossdef>
10585 </glossentry>
10586
10587 <glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
10588 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010589 PKGR[doc] = "The revision of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010590 </info>
10591 <glossdef>
10592 <para role="glossdeffirst">
10593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010594 The revision of the package(s) built by the recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010595 By default, <filename>PKGR</filename> is set to
10596 <link linkend='var-PR'><filename>PR</filename></link>.
10597 </para>
10598 </glossdef>
10599 </glossentry>
10600
10601 <glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
10602 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010603 PKGV[doc] = "The version of the package(s) built by the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010604 </info>
10605 <glossdef>
10606 <para role="glossdeffirst">
10607<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010608 The version of the package(s) built by the
10609 recipe.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010610 By default, <filename>PKGV</filename> is set to
10611 <link linkend='var-PV'><filename>PV</filename></link>.
10612 </para>
10613 </glossdef>
10614 </glossentry>
10615
10616 <glossentry id='var-PN'><glossterm>PN</glossterm>
10617 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010618 PN[doc] = "PN refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010619 </info>
10620 <glossdef>
10621 <para role="glossdeffirst">
10622<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10623 This variable can have two separate functions depending on the context: a recipe
10624 name or a resulting package name.
10625 </para>
10626
10627 <para>
10628 <filename>PN</filename> refers to a recipe name in the context of a file used
10629 by the OpenEmbedded build system as input to create a package.
10630 The name is normally extracted from the recipe file name.
10631 For example, if the recipe is named
10632 <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PN</filename>
10633 will be "expat".
10634 </para>
10635
10636 <para>
10637 The variable refers to a package name in the context of a file created or produced by the
10638 OpenEmbedded build system.
10639 </para>
10640
10641 <para>
10642 If applicable, the <filename>PN</filename> variable also contains any special
10643 suffix or prefix.
10644 For example, using <filename>bash</filename> to build packages for the native
10645 machine, <filename>PN</filename> is <filename>bash-native</filename>.
10646 Using <filename>bash</filename> to build packages for the target and for Multilib,
10647 <filename>PN</filename> would be <filename>bash</filename> and
10648 <filename>lib64-bash</filename>, respectively.
10649 </para>
10650 </glossdef>
10651 </glossentry>
10652
10653 <glossentry id='var-PNBLACKLIST'><glossterm>PNBLACKLIST</glossterm>
10654 <info>
10655 PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
10656 </info>
10657 <glossdef>
10658 <para role="glossdeffirst">
10659<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10660 Lists recipes you do not want the OpenEmbedded build system
10661 to build.
10662 This variable works in conjunction with the
10663 <link linkend='ref-classes-blacklist'><filename>blacklist</filename></link>
10664 class, which the recipe must inherit globally.
10665 </para>
10666
10667 <para>
10668 To prevent a recipe from being built, inherit the class
10669 globally and use the variable in your
10670 <filename>local.conf</filename> file.
10671 Here is an example that prevents
10672 <filename>myrecipe</filename> from being built:
10673 <literallayout class='monospaced'>
10674 INHERIT += "blacklist"
10675 PNBLACKLIST[myrecipe] = "Not supported by our organization."
10676 </literallayout>
10677 </para>
10678 </glossdef>
10679 </glossentry>
10680
10681 <glossentry id='var-POPULATE_SDK_POST_HOST_COMMAND'><glossterm>POPULATE_SDK_POST_HOST_COMMAND</glossterm>
10682 <info>
10683 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."
10684 </info>
10685 <glossdef>
10686 <para role="glossdeffirst">
10687<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10688 Specifies a list of functions to call once the
10689 OpenEmbedded build system has created the host part of
10690 the SDK.
10691 You can specify functions separated by semicolons:
10692 <literallayout class='monospaced'>
10693 POPULATE_SDK_POST_HOST_COMMAND += "<replaceable>function</replaceable>; ... "
10694 </literallayout>
10695 </para>
10696
10697 <para>
10698 If you need to pass the SDK path to a command
10699 within a function, you can use
10700 <filename>${SDK_DIR}</filename>, which points to
10701 the parent directory used by the OpenEmbedded build
10702 system when creating SDK output.
10703 See the
10704 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10705 variable for more information.
10706 </para>
10707 </glossdef>
10708 </glossentry>
10709
10710 <glossentry id='var-POPULATE_SDK_POST_TARGET_COMMAND'><glossterm>POPULATE_SDK_POST_TARGET_COMMAND</glossterm>
10711 <info>
10712 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."
10713 </info>
10714 <glossdef>
10715 <para role="glossdeffirst">
10716<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10717 Specifies a list of functions to call once the
10718 OpenEmbedded build system has created the target part of
10719 the SDK.
10720 You can specify functions separated by semicolons:
10721 <literallayout class='monospaced'>
10722 POPULATE_SDK_POST_TARGET_COMMAND += "<replaceable>function</replaceable>; ... "
10723 </literallayout>
10724 </para>
10725
10726 <para>
10727 If you need to pass the SDK path to a command
10728 within a function, you can use
10729 <filename>${SDK_DIR}</filename>, which points to
10730 the parent directory used by the OpenEmbedded build
10731 system when creating SDK output.
10732 See the
10733 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
10734 variable for more information.
10735 </para>
10736 </glossdef>
10737 </glossentry>
10738
10739 <glossentry id='var-PR'><glossterm>PR</glossterm>
10740 <info>
10741 PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
10742 </info>
10743 <glossdef>
10744 <para role="glossdeffirst">
10745<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010746 The revision of the recipe. The default value for this
10747 variable is "r0".
10748 Subsequent revisions of the recipe conventionally have the
10749 values "r1", "r2", and so forth.
10750 When
10751 <link linkend='var-PV'><filename>PV</filename></link>
10752 increases, <filename>PR</filename> is conventionally reset
10753 to "r0".
10754 <note>
10755 The OpenEmbedded build system does not need the aid of
10756 <filename>PR</filename> to know when to rebuild a
10757 recipe.
10758 The build system uses the task
Brad Bishop316dfdd2018-06-25 12:45:53 -040010759 <ulink url='&YOCTO_DOCS_OM_URL;#overview-checksums'>input checksums</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010760 along with the
10761 <link linkend='structure-build-tmp-stamps'>stamp</link>
10762 and
Brad Bishop316dfdd2018-06-25 12:45:53 -040010763 <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>shared state cache</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010764 mechanisms.
10765 </note>
10766 The <filename>PR</filename> variable primarily becomes
10767 significant when a package manager dynamically installs
10768 packages on an already built image.
10769 In this case, <filename>PR</filename>, which is the default
10770 value of
10771 <link linkend='var-PKGR'><filename>PKGR</filename></link>,
10772 helps the package manager distinguish which package is the
10773 most recent one in cases where many packages have the same
10774 <filename>PV</filename> (i.e. <filename>PKGV</filename>).
10775 A component having many packages with the same
10776 <filename>PV</filename> usually means that the packages all
10777 install the same upstream version, but with later
10778 (<filename>PR</filename>) version packages including
10779 packaging fixes.
10780 <note>
10781 <filename>PR</filename> does not need to be increased
10782 for changes that do not change the package contents or
10783 metadata.
10784 </note>
10785 Because manually managing <filename>PR</filename> can be
10786 cumbersome and error-prone, an automated solution exists.
10787 See the
10788 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010789 section in the Yocto Project Development Tasks Manual
10790 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010791 </para>
10792 </glossdef>
10793 </glossentry>
10794
10795 <glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
10796 <info>
10797 PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
10798 </info>
10799 <glossdef>
10800 <para role="glossdeffirst">
10801<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040010802 If multiple recipes provide the same item, this variable
10803 determines which recipe is preferred and thus provides
10804 the item (i.e. the preferred provider).
10805 You should always suffix this variable with the name of the
10806 provided item.
10807 And, you should define the variable using the preferred
10808 recipe's name
10809 (<link linkend='var-PN'><filename>PN</filename></link>).
10810 Here is a common example:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010811 <literallayout class='monospaced'>
10812 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
Brad Bishop316dfdd2018-06-25 12:45:53 -040010813 </literallayout>
10814 In the previous example, multiple recipes are providing
10815 "virtual/kernel".
10816 The <filename>PREFERRED_PROVIDER</filename> variable is
10817 set with the name (<filename>PN</filename>) of the recipe
10818 you prefer to provide "virtual/kernel".
10819 </para>
10820
10821 <para>
10822 Following are more examples:
10823 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010824 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
10825 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
10826 </literallayout>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010827 For more information, see the
10828 "<ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>Using Virtual Providers</ulink>"
10829 section in the Yocto Project Development Tasks Manual.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010830 <note>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010831 If you use a <filename>virtual/*</filename> item
10832 with <filename>PREFERRED_PROVIDER</filename>, then any
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010833 recipe that
10834 <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010835 that item but is not selected (defined) by
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010836 <filename>PREFERRED_PROVIDER</filename> is prevented
10837 from building, which is usually desirable since this
10838 mechanism is designed to select between mutually
10839 exclusive alternative providers.
10840 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010841 </para>
10842 </glossdef>
10843 </glossentry>
10844
10845 <glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
10846 <info>
10847 PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
10848 </info>
10849 <glossdef>
10850 <para role="glossdeffirst">
10851<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10852 If there are multiple versions of recipes available, this
10853 variable determines which recipe should be given preference.
10854 You must always suffix the variable with the
10855 <link linkend='var-PN'><filename>PN</filename></link>
10856 you want to select, and you should set the
10857 <link linkend='var-PV'><filename>PV</filename></link>
10858 accordingly for precedence.
10859 You can use the "<filename>%</filename>" character as a
10860 wildcard to match any number of characters, which can be
10861 useful when specifying versions that contain long revision
10862 numbers that could potentially change.
10863 Here are two examples:
10864 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010865 PREFERRED_VERSION_python = "3.4.0"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010866 PREFERRED_VERSION_linux-yocto = "4.12%"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010867 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010868 <note>
10869 The specified version is matched against
10870 <link linkend='var-PV'><filename>PV</filename></link>,
10871 which does not necessarily match the version part of
10872 the recipe's filename.
10873 For example, consider two recipes
10874 <filename>foo_1.2.bb</filename> and
10875 <filename>foo_git.bb</filename> where
10876 <filename>foo_git.bb</filename> contains the following
10877 assignment:
10878 <literallayout class='monospaced'>
10879 PV = "1.1+git${SRCPV}"
10880 </literallayout>
10881 In this case, the correct way to select
10882 <filename>foo_git.bb</filename> is by using an
10883 assignment such as the following:
10884 <literallayout class='monospaced'>
10885 PREFERRED_VERSION_foo = "1.1+git%"
10886 </literallayout>
10887 Compare that previous example against the following
10888 incorrect example, which does not work:
10889 <literallayout class='monospaced'>
10890 PREFERRED_VERSION_foo = "git"
10891 </literallayout>
10892 </note>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010893 Sometimes the <filename>PREFERRED_VERSION</filename>
10894 variable can be set by configuration files in a way that
10895 is hard to change.
10896 You can use
10897 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
10898 to set a machine-specific override.
10899 Here is an example:
10900 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010901 PREFERRED_VERSION_linux-yocto_qemux86 = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010902 </literallayout>
10903 Although not recommended, worst case, you can also use the
10904 "forcevariable" override, which is the strongest override
10905 possible.
10906 Here is an example:
10907 <literallayout class='monospaced'>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010908 PREFERRED_VERSION_linux-yocto_forcevariable = "4.12%"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010909 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010910 <note>
10911 The <filename>_forcevariable</filename> override is
10912 not handled specially.
10913 This override only works because the default value of
Brad Bishop316dfdd2018-06-25 12:45:53 -040010914 <filename>OVERRIDES</filename> includes
10915 "forcevariable".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010916 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010917 </para>
10918 </glossdef>
10919 </glossentry>
10920
10921 <glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
10922 <info>
10923 PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
10924 </info>
10925 <glossdef>
10926 <para role="glossdeffirst">
10927<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10928 Specifies additional paths from which the OpenEmbedded
10929 build system gets source code.
10930 When the build system searches for source code, it first
10931 tries the local download directory.
10932 If that location fails, the build system tries locations
10933 defined by <filename>PREMIRRORS</filename>, the upstream
10934 source, and then locations specified by
10935 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
10936 in that order.
10937 </para>
10938
10939 <para>
10940 Assuming your distribution
10941 (<link linkend='var-DISTRO'><filename>DISTRO</filename></link>)
10942 is "poky", the default value for
10943 <filename>PREMIRRORS</filename> is defined in the
10944 <filename>conf/distro/poky.conf</filename> file in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050010945 <filename>meta-poky</filename> Git repository.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010946 </para>
10947
10948 <para>
10949 Typically, you could add a specific server for the
10950 build system to attempt before any others by adding
10951 something like the following to the
10952 <filename>local.conf</filename> configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050010953 <link linkend='build-directory'>Build Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010954 <literallayout class='monospaced'>
10955 PREMIRRORS_prepend = "\
10956 git://.*/.* http://www.yoctoproject.org/sources/ \n \
10957 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
10958 http://.*/.* http://www.yoctoproject.org/sources/ \n \
10959 https://.*/.* http://www.yoctoproject.org/sources/ \n"
10960 </literallayout>
10961 These changes cause the build system to intercept
10962 Git, FTP, HTTP, and HTTPS requests and direct them to
10963 the <filename>http://</filename> sources mirror.
10964 You can use <filename>file://</filename> URLs to point
10965 to local directories or network shares as well.
10966 </para>
10967 </glossdef>
10968 </glossentry>
10969
10970 <glossentry id='var-PRIORITY'><glossterm>PRIORITY</glossterm>
10971 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040010972 PRIORITY[doc] = "Indicates the importance of a package. The default value is 'optional'. Other standard values are 'required', 'standard', and 'extra'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010973 </info>
10974 <glossdef>
10975 <para role="glossdeffirst">
10976<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
10977 Indicates the importance of a package.
10978 </para>
10979
10980 <para>
10981 <filename>PRIORITY</filename> is considered to be part of
10982 the distribution policy because the importance of any given
10983 recipe depends on the purpose for which the distribution
10984 is being produced.
10985 Thus, <filename>PRIORITY</filename> is not normally set
10986 within recipes.
10987 </para>
10988
10989 <para>
10990 You can set <filename>PRIORITY</filename> to "required",
10991 "standard", "extra", and "optional", which is the default.
10992 </para>
10993 </glossdef>
10994 </glossentry>
10995
10996 <glossentry id='var-PRIVATE_LIBS'><glossterm>PRIVATE_LIBS</glossterm>
10997 <info>
10998 PRIVATE_LIBS[doc] = "Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver."
10999 </info>
11000 <glossdef>
11001 <para role="glossdeffirst">
11002<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11003 Specifies libraries installed within a recipe that
11004 should be ignored by the OpenEmbedded build system's
11005 shared library resolver.
11006 This variable is typically used when software being
11007 built by a recipe has its own private versions of a
11008 library normally provided by another recipe.
11009 In this case, you would not want the package containing
11010 the private libraries to be set as a dependency on other
11011 unrelated packages that should instead depend on the
11012 package providing the standard version of the library.
11013 </para>
11014
11015 <para>
11016 Libraries specified in this variable should be specified
11017 by their file name.
11018 For example, from the Firefox recipe in meta-browser:
11019 <literallayout class='monospaced'>
11020 PRIVATE_LIBS = "libmozjs.so \
11021 libxpcom.so \
11022 libnspr4.so \
11023 libxul.so \
11024 libmozalloc.so \
11025 libplc4.so \
11026 libplds4.so"
11027 </literallayout>
11028 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011029
11030 <para>
11031 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011032 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11033 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011034 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011035 </glossdef>
11036 </glossentry>
11037
11038 <glossentry id='var-PROVIDES'><glossterm>PROVIDES</glossterm>
11039 <info>
11040 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."
11041 </info>
11042 <glossdef>
11043 <para role="glossdeffirst">
11044<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11045 A list of aliases by which a particular recipe can be
11046 known.
11047 By default, a recipe's own
11048 <filename><link linkend='var-PN'>PN</link></filename>
11049 is implicitly already in its <filename>PROVIDES</filename>
11050 list.
11051 If a recipe uses <filename>PROVIDES</filename>, the
11052 additional aliases are synonyms for the recipe and can
11053 be useful satisfying dependencies of other recipes during
11054 the build as specified by
11055 <filename><link linkend='var-DEPENDS'>DEPENDS</link></filename>.
11056 </para>
11057
11058 <para>
11059 Consider the following example
11060 <filename>PROVIDES</filename> statement from a recipe
11061 file <filename>libav_0.8.11.bb</filename>:
11062 <literallayout class='monospaced'>
11063 PROVIDES += "libpostproc"
11064 </literallayout>
11065 The <filename>PROVIDES</filename> statement results in
11066 the "libav" recipe also being known as "libpostproc".
11067 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011068
11069 <para>
11070 In addition to providing recipes under alternate names,
11071 the <filename>PROVIDES</filename> mechanism is also used
11072 to implement virtual targets.
11073 A virtual target is a name that corresponds to some
11074 particular functionality (e.g. a Linux kernel).
11075 Recipes that provide the functionality in question list the
11076 virtual target in <filename>PROVIDES</filename>.
11077 Recipes that depend on the functionality in question can
Brad Bishop316dfdd2018-06-25 12:45:53 -040011078 include the virtual target in <filename>DEPENDS</filename>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011079 to leave the choice of provider open.
11080 </para>
11081
11082 <para>
11083 Conventionally, virtual targets have names on the form
11084 "virtual/function" (e.g. "virtual/kernel").
11085 The slash is simply part of the name and has no
11086 syntactical significance.
11087 </para>
11088
11089 <para>
11090 The
11091 <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
11092 variable is used to select which particular recipe
11093 provides a virtual target.
11094 <note>
11095 <para>A corresponding mechanism for virtual runtime
11096 dependencies (packages) exists.
11097 However, the mechanism does not depend on any special
11098 functionality beyond ordinary variable assignments.
11099 For example,
11100 <filename>VIRTUAL-RUNTIME_dev_manager</filename>
11101 refers to the package of the component that manages
11102 the <filename>/dev</filename> directory.</para>
11103
11104 <para>Setting the "preferred provider" for runtime
11105 dependencies is as simple as using the following
11106 assignment in a configuration file:</para>
11107 <literallayout class='monospaced'>
11108 VIRTUAL-RUNTIME_dev_manager = "udev"
11109 </literallayout>
11110 </note>
11111 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011112 </glossdef>
11113 </glossentry>
11114
11115 <glossentry id='var-PRSERV_HOST'><glossterm>PRSERV_HOST</glossterm>
11116 <info>
11117 PRSERV_HOST[doc] = "The network based PR service host and port."
11118 </info>
11119 <glossdef>
11120 <para role="glossdeffirst">
11121<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11122 The network based
11123 <link linkend='var-PR'><filename>PR</filename></link>
11124 service host and port.
11125 </para>
11126
11127 <para>
11128 The <filename>conf/local.conf.sample.extended</filename>
11129 configuration file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011130 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011131 shows how the <filename>PRSERV_HOST</filename> variable is
11132 set:
11133 <literallayout class='monospaced'>
11134 PRSERV_HOST = "localhost:0"
11135 </literallayout>
11136 You must set the variable if you want to automatically
11137 start a local
11138 <ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>PR service</ulink>.
11139 You can set <filename>PRSERV_HOST</filename> to other
11140 values to use a remote PR service.
11141 </para>
11142 </glossdef>
11143 </glossentry>
11144
11145 <glossentry id='var-PTEST_ENABLED'><glossterm>PTEST_ENABLED</glossterm>
11146 <info>
11147 PRSERV_HOST[doc] = "Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe."
11148 </info>
11149 <glossdef>
11150 <para role="glossdeffirst">
11151<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11152 Specifies whether or not
11153 <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
11154 (ptest) functionality is enabled when building a recipe.
11155 You should not set this variable directly.
11156 Enabling and disabling building Package Tests
11157 at build time should be done by adding "ptest" to (or
11158 removing it from)
11159 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
11160 </para>
11161 </glossdef>
11162 </glossentry>
11163
11164 <glossentry id='var-PV'><glossterm>PV</glossterm>
11165 <info>
11166 PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
11167 </info>
11168 <glossdef>
11169 <para role="glossdeffirst">
11170<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11171 The version of the recipe.
11172 The version is normally extracted from the recipe filename.
11173 For example, if the recipe is named
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011174 <filename>expat_2.0.1.bb</filename>, then the default value
11175 of <filename>PV</filename> will be "2.0.1".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011176 <filename>PV</filename> is generally not overridden within
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011177 a recipe unless it is building an unstable (i.e.
11178 development) version from a source code repository
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011179 (e.g. Git or Subversion).
11180 </para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011181
11182 <para>
11183 <filename>PV</filename> is the default value of the
11184 <link linkend='var-PKGV'><filename>PKGV</filename></link>
11185 variable.
11186 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011187 </glossdef>
11188 </glossentry>
11189
11190 <glossentry id='var-PYTHON_ABI'><glossterm>PYTHON_ABI</glossterm>
11191 <info>
11192 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."
11193 </info>
11194 <glossdef>
11195 <para role="glossdeffirst">
11196<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11197 When used by recipes that inherit the
11198 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11199 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11200 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11201 or
11202 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11203 classes, denotes the Application Binary Interface (ABI)
11204 currently in use for Python.
11205 By default, the ABI is "m".
11206 You do not have to set this variable as the OpenEmbedded
11207 build system sets it for you.
11208 </para>
11209
11210 <para>
11211 The OpenEmbedded build system uses the ABI to construct
11212 directory names used when installing the Python headers
11213 and libraries in sysroot
11214 (e.g. <filename>.../python3.3m/...</filename>).
11215 </para>
11216
11217 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040011218 Recipes that inherit the <filename>distutils</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011219 class during cross-builds also use this variable to
11220 locate the headers and libraries of the appropriate Python
11221 that the extension is targeting.
11222 </para>
11223 </glossdef>
11224 </glossentry>
11225
11226 <glossentry id='var-PYTHON_PN'><glossterm>PYTHON_PN</glossterm>
11227 <info>
11228 PYTHON_PN[doc] = "When used by recipes that inherit the distutils3, setuptools3, distutils, or setuptools classes, specifies the major Python version being built."
11229 </info>
11230 <glossdef>
11231 <para role="glossdeffirst">
11232<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11233 When used by recipes that inherit the
11234 <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
11235 <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
11236 <link linkend='ref-classes-distutils'><filename>distutils</filename></link>,
11237 or
11238 <link linkend='ref-classes-setuptools'><filename>setuptools</filename></link>
11239 classes, specifies the major Python version being built.
11240 For Python 2.x, <filename>PYTHON_PN</filename> would
11241 be "python2". For Python 3.x, the variable would be
11242 "python3".
11243 You do not have to set this variable as the
11244 OpenEmbedded build system automatically sets it for you.
11245 </para>
11246
11247 <para>
11248 The variable allows recipes to use common infrastructure
11249 such as the following:
11250 <literallayout class='monospaced'>
11251 DEPENDS += "${PYTHON_PN}-native"
11252 </literallayout>
11253 In the previous example, the version of the dependency
11254 is <filename>PYTHON_PN</filename>.
11255 </para>
11256 </glossdef>
11257 </glossentry>
11258
11259 </glossdiv>
11260
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011261 <glossdiv id='var-glossary-r'><title>R</title>
11262
11263 <glossentry id='var-RANLIB'><glossterm>RANLIB</glossterm>
11264 <info>
11265 RANLIB[doc] = "Minimal command and arguments to run 'ranlib'."
11266 </info>
11267 <glossdef>
11268 <para role="glossdeffirst">
11269<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11270 The minimal command and arguments to run
11271 <filename>ranlib</filename>.
11272 </para>
11273 </glossdef>
11274 </glossentry>
11275
11276 <glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
11277 <info>
11278 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."
11279 </info>
11280 <glossdef>
11281 <para role="glossdeffirst">
11282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11283 The list of packages that conflict with packages.
11284 Note that packages will not be installed if conflicting
11285 packages are not first removed.
11286 </para>
11287
11288 <para>
11289 Like all package-controlling variables, you must always use
11290 them in conjunction with a package name override.
11291 Here is an example:
11292 <literallayout class='monospaced'>
11293 RCONFLICTS_${PN} = "<replaceable>another_conflicting_package_name</replaceable>"
11294 </literallayout>
11295 </para>
11296
11297 <para>
11298 BitBake, which the OpenEmbedded build system uses, supports
11299 specifying versioned dependencies.
11300 Although the syntax varies depending on the packaging
11301 format, BitBake hides these differences from you.
11302 Here is the general syntax to specify versions with
11303 the <filename>RCONFLICTS</filename> variable:
11304 <literallayout class='monospaced'>
11305 RCONFLICTS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11306 </literallayout>
11307 For <filename>operator</filename>, you can specify the
11308 following:
11309 <literallayout class='monospaced'>
11310 =
11311 &lt;
11312 &gt;
11313 &lt;=
11314 &gt;=
11315 </literallayout>
11316 For example, the following sets up a dependency on version
11317 1.2 or greater of the package <filename>foo</filename>:
11318 <literallayout class='monospaced'>
11319 RCONFLICTS_${PN} = "foo (>= 1.2)"
11320 </literallayout>
11321 </para>
11322 </glossdef>
11323 </glossentry>
11324
11325 <glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
11326 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011327 RDEPENDS[doc] = "Lists runtime dependencies of a package."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011328 </info>
11329 <glossdef>
11330 <para role="glossdeffirst">
11331<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011332 Lists runtime dependencies of a package.
11333 These dependencies are other packages that must be
11334 installed in order for the package to function correctly.
11335 As an example, the following assignment declares that the
11336 package <filename>foo</filename> needs the packages
11337 <filename>bar</filename> and <filename>baz</filename> to
11338 be installed:
11339 <literallayout class='monospaced'>
11340 RDEPENDS_foo = "bar baz"
11341 </literallayout>
11342 The most common types of package runtime dependencies are
11343 automatically detected and added.
11344 Therefore, most recipes do not need to set
11345 <filename>RDEPENDS</filename>.
11346 For more information, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011347 "<ulink url='&YOCTO_DOCS_OM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
11348 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011349 </para>
11350
11351 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011352 The practical effect of the above
11353 <filename>RDEPENDS</filename> assignment is that
11354 <filename>bar</filename> and <filename>baz</filename>
11355 will be declared as dependencies inside the package
11356 <filename>foo</filename> when it is written out by one of
11357 the
11358 <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
11359 tasks.
11360 Exactly how this is done depends on which package format
11361 is used, which is determined by
11362 <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
11363 When the corresponding package manager installs the
11364 package, it will know to also install the packages on
11365 which it depends.
11366 </para>
11367
11368 <para>
11369 To ensure that the packages <filename>bar</filename> and
11370 <filename>baz</filename> get built, the previous
11371 <filename>RDEPENDS</filename> assignment also causes a task
11372 dependency to be added.
11373 This dependency is from the recipe's
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011374 <link linkend='ref-tasks-build'><filename>do_build</filename></link>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011375 (not to be confused with
11376 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
11377 task to the <filename>do_package_write_*</filename>
11378 task of the recipes that build <filename>bar</filename> and
11379 <filename>baz</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011380 </para>
11381
11382 <para>
11383 The names of the packages you list within
11384 <filename>RDEPENDS</filename> must be the names of other
11385 packages - they cannot be recipe names.
11386 Although package names and recipe names usually match,
11387 the important point here is that you are
11388 providing package names within the
11389 <filename>RDEPENDS</filename> variable.
11390 For an example of the default list of packages created from
11391 a recipe, see the
11392 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11393 variable.
11394 </para>
11395
11396 <para>
11397 Because the <filename>RDEPENDS</filename> variable applies
11398 to packages being built, you should always use the variable
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011399 in a form with an attached package name (remember that a
11400 single recipe can build multiple packages).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011401 For example, suppose you are building a development package
11402 that depends on the <filename>perl</filename> package.
11403 In this case, you would use the following
11404 <filename>RDEPENDS</filename> statement:
11405 <literallayout class='monospaced'>
11406 RDEPENDS_${PN}-dev += "perl"
11407 </literallayout>
11408 In the example, the development package depends on
11409 the <filename>perl</filename> package.
11410 Thus, the <filename>RDEPENDS</filename> variable has the
11411 <filename>${PN}-dev</filename> package name as part of the
11412 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011413 <note>
11414 <title>Caution</title>
11415 <filename>RDEPENDS_${PN}-dev</filename> includes
11416 <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
11417 by default.
11418 This default is set in the BitBake configuration file
11419 (<filename>meta/conf/bitbake.conf</filename>).
11420 Be careful not to accidentally remove
11421 <filename>${PN}</filename> when modifying
11422 <filename>RDEPENDS_${PN}-dev</filename>.
11423 Use the "+=" operator rather than the "=" operator.
11424 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011425 </para>
11426
11427 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011428 The package names you use with
11429 <filename>RDEPENDS</filename> must appear as they would in
11430 the <filename>PACKAGES</filename> variable.
11431 The
11432 <link linkend='var-PKG'><filename>PKG</filename></link>
11433 variable allows a different name to be used for
11434 the final package (e.g. the
11435 <link linkend='ref-classes-debian'><filename>debian</filename></link>
11436 class uses this to rename packages), but this final package
11437 name cannot be used with <filename>RDEPENDS</filename>,
11438 which makes sense as <filename>RDEPENDS</filename> is meant
11439 to be independent of the package format used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011440 </para>
11441
11442 <para>
11443 BitBake, which the OpenEmbedded build system uses, supports
11444 specifying versioned dependencies.
11445 Although the syntax varies depending on the packaging
11446 format, BitBake hides these differences from you.
11447 Here is the general syntax to specify versions with
11448 the <filename>RDEPENDS</filename> variable:
11449 <literallayout class='monospaced'>
11450 RDEPENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11451 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011452 For <replaceable>operator</replaceable>, you can specify the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011453 following:
11454 <literallayout class='monospaced'>
11455 =
11456 &lt;
11457 &gt;
11458 &lt;=
11459 &gt;=
11460 </literallayout>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050011461 For <replaceable>version</replaceable>, provide the version
11462 number.
11463 <note><title>Tip</title>
11464 You can use
11465 <link linkend='var-EXTENDPKGV'><filename>EXTENDPKGV</filename></link>
11466 to provide a full package version specification.
11467 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011468 For example, the following sets up a dependency on version
11469 1.2 or greater of the package <filename>foo</filename>:
11470 <literallayout class='monospaced'>
11471 RDEPENDS_${PN} = "foo (>= 1.2)"
11472 </literallayout>
11473 </para>
11474
11475 <para>
11476 For information on build-time dependencies, see the
11477 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
11478 variable.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011479 You can also see the
11480 "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
11481 "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
11482 sections in the BitBake User Manual for additional
11483 information on tasks and dependencies.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011484 </para>
11485 </glossdef>
11486 </glossentry>
11487
11488 <glossentry id='var-REQUIRED_DISTRO_FEATURES'><glossterm>REQUIRED_DISTRO_FEATURES</glossterm>
11489 <info>
11490 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."
11491 </info>
11492 <glossdef>
11493 <para role="glossdeffirst">
11494<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11495 When inheriting the
11496 <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
11497 class, this
11498 variable identifies distribution features that must
11499 exist in the current configuration in order for the
11500 OpenEmbedded build system to build the recipe.
11501 In other words, if the
11502 <filename>REQUIRED_DISTRO_FEATURES</filename> variable
11503 lists a feature that does not appear in
11504 <filename>DISTRO_FEATURES</filename> within the
11505 current configuration, an error occurs and the
11506 build stops.
11507 </para>
11508 </glossdef>
11509 </glossentry>
11510
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011511 <glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
11512 <info>
11513 RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
11514 </info>
11515 <glossdef>
11516 <para role="glossdeffirst">
11517<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11518 With <filename>rm_work</filename> enabled, this
11519 variable specifies a list of recipes whose work directories
11520 should not be removed.
11521 See the "<link linkend='ref-classes-rm-work'><filename>rm_work.bbclass</filename></link>"
11522 section for more details.
11523 </para>
11524 </glossdef>
11525 </glossentry>
11526
11527 <glossentry id='var-ROOT_HOME'><glossterm>ROOT_HOME</glossterm>
11528 <info>
11529 ROOT_HOME[doc] = "Defines the root home directory."
11530 </info>
11531 <glossdef>
11532 <para role="glossdeffirst">
11533<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11534 Defines the root home directory.
11535 By default, this directory is set as follows in the
11536 BitBake configuration file:
11537 <literallayout class='monospaced'>
11538 ROOT_HOME ??= "/home/root"
11539 </literallayout>
11540 <note>
11541 This default value is likely used because some
11542 embedded solutions prefer to have a read-only root
11543 filesystem and prefer to keep writeable data in one
11544 place.
11545 </note>
11546 </para>
11547
11548 <para>
11549 You can override the default by setting the variable
11550 in any layer or in the <filename>local.conf</filename> file.
11551 Because the default is set using a "weak" assignment
11552 (i.e. "??="), you can use either of the following forms
11553 to define your override:
11554 <literallayout class='monospaced'>
11555 ROOT_HOME = "/root"
11556 ROOT_HOME ?= "/root"
11557 </literallayout>
11558 These override examples use <filename>/root</filename>,
11559 which is probably the most commonly used override.
11560 </para>
11561 </glossdef>
11562 </glossentry>
11563
11564 <glossentry id='var-ROOTFS'><glossterm>ROOTFS</glossterm>
11565 <info>
11566 ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
11567 </info>
11568 <glossdef>
11569 <para role="glossdeffirst">
11570<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11571 Indicates a filesystem image to include as the root
11572 filesystem.
11573 </para>
11574
11575 <para>
11576 The <filename>ROOTFS</filename> variable is an optional
11577 variable used with the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011578 <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011579 class.
11580 </para>
11581 </glossdef>
11582 </glossentry>
11583
11584 <glossentry id='var-ROOTFS_POSTINSTALL_COMMAND'><glossterm>ROOTFS_POSTINSTALL_COMMAND</glossterm>
11585 <info>
11586 ROOTFS_POSTINSTALL_COMMAND[doc] = "Specifies a list of functions to call after installing packages."
11587 </info>
11588 <glossdef>
11589 <para role="glossdeffirst">
11590<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11591 Specifies a list of functions to call after the
11592 OpenEmbedded build system has installed packages.
11593 You can specify functions separated by semicolons:
11594 <literallayout class='monospaced'>
11595 ROOTFS_POSTINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11596 </literallayout>
11597 </para>
11598
11599 <para>
11600 If you need to pass the root filesystem path to a command
11601 within a function, you can use
11602 <filename>${IMAGE_ROOTFS}</filename>, which points to
11603 the directory that becomes the root filesystem image.
11604 See the
11605 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11606 variable for more information.
11607 </para>
11608 </glossdef>
11609 </glossentry>
11610
11611 <glossentry id='var-ROOTFS_POSTPROCESS_COMMAND'><glossterm>ROOTFS_POSTPROCESS_COMMAND</glossterm>
11612 <info>
11613 ROOTFS_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem."
11614 </info>
11615 <glossdef>
11616 <para role="glossdeffirst">
11617<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11618 Specifies a list of functions to call once the
11619 OpenEmbedded build system has created the root filesystem.
11620 You can specify functions separated by semicolons:
11621 <literallayout class='monospaced'>
11622 ROOTFS_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11623 </literallayout>
11624 </para>
11625
11626 <para>
11627 If you need to pass the root filesystem path to a command
11628 within a function, you can use
11629 <filename>${IMAGE_ROOTFS}</filename>, which points to
11630 the directory that becomes the root filesystem image.
11631 See the
11632 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11633 variable for more information.
11634 </para>
11635 </glossdef>
11636 </glossentry>
11637
11638 <glossentry id='var-ROOTFS_POSTUNINSTALL_COMMAND'><glossterm>ROOTFS_POSTUNINSTALL_COMMAND</glossterm>
11639 <info>
11640 ROOTFS_POSTUNINSTALL_COMMAND[doc] = "Specifies a list of functions to call after removal of unneeded packages."
11641 </info>
11642 <glossdef>
11643 <para role="glossdeffirst">
11644<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11645 Specifies a list of functions to call after the
11646 OpenEmbedded build system has removed unnecessary
11647 packages.
11648 When runtime package management is disabled in the
11649 image, several packages are removed including
11650 <filename>base-passwd</filename>,
11651 <filename>shadow</filename>, and
11652 <filename>update-alternatives</filename>.
11653 You can specify functions separated by semicolons:
11654 <literallayout class='monospaced'>
11655 ROOTFS_POSTUNINSTALL_COMMAND += "<replaceable>function</replaceable>; ... "
11656 </literallayout>
11657 </para>
11658
11659 <para>
11660 If you need to pass the root filesystem path to a command
11661 within a function, you can use
11662 <filename>${IMAGE_ROOTFS}</filename>, which points to
11663 the directory that becomes the root filesystem image.
11664 See the
11665 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11666 variable for more information.
11667 </para>
11668 </glossdef>
11669 </glossentry>
11670
11671 <glossentry id='var-ROOTFS_PREPROCESS_COMMAND'><glossterm>ROOTFS_PREPROCESS_COMMAND</glossterm>
11672 <info>
11673 ROOTFS_PREPROCESS_COMMAND[doc] = "Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem."
11674 </info>
11675 <glossdef>
11676 <para role="glossdeffirst">
11677<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11678 Specifies a list of functions to call before the
11679 OpenEmbedded build system has created the root filesystem.
11680 You can specify functions separated by semicolons:
11681 <literallayout class='monospaced'>
11682 ROOTFS_PREPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
11683 </literallayout>
11684 </para>
11685
11686 <para>
11687 If you need to pass the root filesystem path to a command
11688 within a function, you can use
11689 <filename>${IMAGE_ROOTFS}</filename>, which points to
11690 the directory that becomes the root filesystem image.
11691 See the
11692 <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
11693 variable for more information.
11694 </para>
11695 </glossdef>
11696 </glossentry>
11697
11698 <glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
11699 <info>
11700 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."
11701 </info>
11702 <glossdef>
11703 <para role="glossdeffirst">
11704<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11705 A list of package name aliases that a package also provides.
11706 These aliases are useful for satisfying runtime dependencies
11707 of other packages both during the build and on the target
11708 (as specified by
11709 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>).
11710 <note>
11711 A package's own name is implicitly already in its
11712 <filename>RPROVIDES</filename> list.
11713 </note>
11714 </para>
11715
11716 <para>
11717 As with all package-controlling variables, you must always
11718 use the variable in conjunction with a package name override.
11719 Here is an example:
11720 <literallayout class='monospaced'>
11721 RPROVIDES_${PN} = "widget-abi-2"
11722 </literallayout>
11723 </para>
11724 </glossdef>
11725 </glossentry>
11726
11727 <glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
11728 <info>
11729 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."
11730 </info>
11731 <glossdef>
11732 <para role="glossdeffirst">
11733<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11734 A list of packages that extends the usability of a package
11735 being built.
11736 The package being built does not depend on this list of
11737 packages in order to successfully build, but rather
11738 uses them for extended usability.
11739 To specify runtime dependencies for packages, see the
11740 <filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
11741 variable.
11742 </para>
11743
11744 <para>
11745 The package manager will automatically install the
11746 <filename>RRECOMMENDS</filename> list of packages when
11747 installing the built package.
11748 However, you can prevent listed packages from being
11749 installed by using the
11750 <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
11751 <link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
11752 and
11753 <link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
11754 variables.
11755 </para>
11756
11757 <para>
11758 Packages specified in
11759 <filename>RRECOMMENDS</filename> need not actually be
11760 produced.
11761 However, a recipe must exist that provides each package,
11762 either through the
11763 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
11764 or
11765 <link linkend='var-PACKAGES_DYNAMIC'><filename>PACKAGES_DYNAMIC</filename></link>
11766 variables or the
11767 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>
11768 variable, or an error will occur during the build.
11769 If such a recipe does exist and the package is not produced,
11770 the build continues without error.
11771 </para>
11772
11773 <para>
11774 Because the <filename>RRECOMMENDS</filename> variable
11775 applies to packages being built, you should always attach
11776 an override to the variable to specify the particular
11777 package whose usability is being extended.
11778 For example, suppose you are building a development package
11779 that is extended to support wireless functionality.
11780 In this case, you would use the following:
11781 <literallayout class='monospaced'>
11782 RRECOMMENDS_${PN}-dev += "<replaceable>wireless_package_name</replaceable>"
11783 </literallayout>
11784 In the example, the package name
11785 (<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
11786 must appear as it would in the
Brad Bishop316dfdd2018-06-25 12:45:53 -040011787 <filename>PACKAGES</filename> namespace before any renaming
11788 of the output package by classes such as
11789 <filename>debian.bbclass</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011790 </para>
11791
11792 <para>
11793 BitBake, which the OpenEmbedded build system uses, supports
11794 specifying versioned recommends.
11795 Although the syntax varies depending on the packaging
11796 format, BitBake hides these differences from you.
11797 Here is the general syntax to specify versions with
11798 the <filename>RRECOMMENDS</filename> variable:
11799 <literallayout class='monospaced'>
11800 RRECOMMENDS_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11801 </literallayout>
11802 For <filename>operator</filename>, you can specify the
11803 following:
11804 <literallayout class='monospaced'>
11805 =
11806 &lt;
11807 &gt;
11808 &lt;=
11809 &gt;=
11810 </literallayout>
11811 For example, the following sets up a recommend on version
11812 1.2 or greater of the package <filename>foo</filename>:
11813 <literallayout class='monospaced'>
11814 RRECOMMENDS_${PN} = "foo (>= 1.2)"
11815 </literallayout>
11816 </para>
11817 </glossdef>
11818 </glossentry>
11819
11820 <glossentry id='var-RREPLACES'><glossterm>RREPLACES</glossterm>
11821 <info>
11822 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."
11823 </info>
11824 <glossdef>
11825 <para role="glossdeffirst">
11826<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11827 A list of packages replaced by a package.
11828 The package manager uses this variable to determine which
11829 package should be installed to replace other package(s)
11830 during an upgrade.
11831 In order to also have the other package(s) removed at the
11832 same time, you must add the name of the other
11833 package to the
11834 <filename><link linkend='var-RCONFLICTS'>RCONFLICTS</link></filename> variable.
11835 </para>
11836
11837 <para>
11838 As with all package-controlling variables, you must use
11839 this variable in conjunction with a package name
11840 override.
11841 Here is an example:
11842 <literallayout class='monospaced'>
11843 RREPLACES_${PN} = "<replaceable>other_package_being_replaced</replaceable>"
11844 </literallayout>
11845 </para>
11846
11847 <para>
11848 BitBake, which the OpenEmbedded build system uses, supports
11849 specifying versioned replacements.
11850 Although the syntax varies depending on the packaging
11851 format, BitBake hides these differences from you.
11852 Here is the general syntax to specify versions with
11853 the <filename>RREPLACES</filename> variable:
11854 <literallayout class='monospaced'>
11855 RREPLACES_${PN} = "<replaceable>package</replaceable> (<replaceable>operator</replaceable> <replaceable>version</replaceable>)"
11856 </literallayout>
11857 For <filename>operator</filename>, you can specify the
11858 following:
11859 <literallayout class='monospaced'>
11860 =
11861 &lt;
11862 &gt;
11863 &lt;=
11864 &gt;=
11865 </literallayout>
11866 For example, the following sets up a replacement using
11867 version 1.2 or greater of the package
11868 <filename>foo</filename>:
11869 <literallayout class='monospaced'>
11870 RREPLACES_${PN} = "foo (>= 1.2)"
11871 </literallayout>
11872 </para>
11873 </glossdef>
11874 </glossentry>
11875
11876 <glossentry id='var-RSUGGESTS'><glossterm>RSUGGESTS</glossterm>
11877 <info>
11878 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."
11879 </info>
11880 <glossdef>
11881 <para role="glossdeffirst">
11882<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11883 A list of additional packages that you can suggest for
11884 installation by the package manager at the time a package
11885 is installed.
11886 Not all package managers support this functionality.
11887 </para>
11888
11889 <para>
11890 As with all package-controlling variables, you must always
11891 use this variable in conjunction with a package name
11892 override.
11893 Here is an example:
11894 <literallayout class='monospaced'>
11895 RSUGGESTS_${PN} = "<replaceable>useful_package</replaceable> <replaceable>another_package</replaceable>"
11896 </literallayout>
11897 </para>
11898 </glossdef>
11899 </glossentry>
11900
11901 </glossdiv>
11902
11903 <glossdiv id='var-glossary-s'><title>S</title>
11904
11905 <glossentry id='var-S'><glossterm>S</glossterm>
11906 <info>
11907 S[doc] = "The location in the Build Directory where unpacked package source code resides."
11908 </info>
11909 <glossdef>
11910 <para role="glossdeffirst">
11911<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11912 The location in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011913 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011914 where unpacked recipe source code resides.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011915 By default, this directory is
11916 <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>,
11917 where <filename>${BPN}</filename> is the base recipe name
11918 and <filename>${PV}</filename> is the recipe version.
11919 If the source tarball extracts the code to a directory
11920 named anything other than <filename>${BPN}-${PV}</filename>,
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011921 or if the source code is fetched from an SCM such as
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011922 Git or Subversion, then you must set <filename>S</filename>
11923 in the recipe so that the OpenEmbedded build system
11924 knows where to find the unpacked source.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011925 </para>
11926
11927 <para>
11928 As an example, assume a
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011929 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011930 top-level folder named <filename>poky</filename> and a
11931 default Build Directory at <filename>poky/build</filename>.
11932 In this case, the work directory the build system uses
11933 to keep the unpacked recipe for <filename>db</filename>
11934 is the following:
11935 <literallayout class='monospaced'>
11936 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
11937 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011938 The unpacked source code resides in the
11939 <filename>db-5.1.19</filename> folder.
11940 </para>
11941
11942 <para>
11943 This next example assumes a Git repository.
11944 By default, Git repositories are cloned to
11945 <filename>${WORKDIR}/git</filename> during
11946 <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>.
11947 Since this path is different from the default value of
11948 <filename>S</filename>, you must set it specifically
11949 so the source can be located:
11950 <literallayout class='monospaced'>
11951 SRC_URI = "git://path/to/repo.git"
11952 S = "${WORKDIR}/git"
11953 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050011954 </para>
11955 </glossdef>
11956 </glossentry>
11957
11958 <glossentry id='var-SANITY_REQUIRED_UTILITIES'><glossterm>SANITY_REQUIRED_UTILITIES</glossterm>
11959 <info>
11960 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."
11961 </info>
11962 <glossdef>
11963 <para role="glossdeffirst">
11964<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11965 Specifies a list of command-line utilities that should be
11966 checked for during the initial sanity checking process when
11967 running BitBake.
11968 If any of the utilities are not installed on the build host,
11969 then BitBake immediately exits with an error.
11970 </para>
11971 </glossdef>
11972 </glossentry>
11973
11974 <glossentry id='var-SANITY_TESTED_DISTROS'><glossterm>SANITY_TESTED_DISTROS</glossterm>
11975 <info>
11976 SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
11977 </info>
11978 <glossdef>
11979 <para role="glossdeffirst">
11980<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
11981 A list of the host distribution identifiers that the
11982 build system has been tested against.
11983 Identifiers consist of the host distributor ID
11984 followed by the release,
11985 as reported by the <filename>lsb_release</filename> tool
11986 or as read from <filename>/etc/lsb-release</filename>.
11987 Separate the list items with explicit newline
11988 characters (<filename>\n</filename>).
11989 If <filename>SANITY_TESTED_DISTROS</filename> is not empty
11990 and the current value of
11991 <link linkend='var-NATIVELSBSTRING'><filename>NATIVELSBSTRING</filename></link>
11992 does not appear in the list, then the build system reports
11993 a warning that indicates the current host distribution has
11994 not been tested as a build host.
11995 </para>
11996 </glossdef>
11997 </glossentry>
11998
11999 <glossentry id='var-SDK_ARCH'><glossterm>SDK_ARCH</glossterm>
12000 <info>
12001 SDK_ARCH[doc] = "The target architecture for the SDK."
12002 </info>
12003 <glossdef>
12004 <para role="glossdeffirst">
12005<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12006 The target architecture for the SDK.
12007 Typically, you do not directly set this variable.
12008 Instead, use
12009 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
12010 </para>
12011 </glossdef>
12012 </glossentry>
12013
12014 <glossentry id='var-SDK_DEPLOY'><glossterm>SDK_DEPLOY</glossterm>
12015 <info>
12016 SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
12017 </info>
12018 <glossdef>
12019 <para role="glossdeffirst">
12020<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12021 The directory set up and used by the
12022 <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012023 class to which the SDK is deployed.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012024 The <filename>populate_sdk_base</filename> class defines
12025 <filename>SDK_DEPLOY</filename> as follows:
12026 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012027 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012028 </literallayout>
12029 </para>
12030 </glossdef>
12031 </glossentry>
12032
12033 <glossentry id='var-SDK_DIR'><glossterm>SDK_DIR</glossterm>
12034 <info>
12035 SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
12036 </info>
12037 <glossdef>
12038 <para role="glossdeffirst">
12039<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12040 The parent directory used by the OpenEmbedded build system
12041 when creating SDK output.
12042 The
12043 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12044 class defines the variable as follows:
12045 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012046 SDK_DIR = "${WORKDIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012047 </literallayout>
12048 <note>
12049 The <filename>SDK_DIR</filename> directory is a
12050 temporary directory as it is part of
12051 <filename>WORKDIR</filename>.
12052 The final output directory is
12053 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12054 </note>
12055 </para>
12056 </glossdef>
12057 </glossentry>
12058
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012059 <glossentry id='var-SDK_EXT_TYPE'><glossterm>SDK_EXT_TYPE</glossterm>
12060 <info>
12061 SDK_EXT_TYPE[doc] = "Controls whether or not shared state artifacts are copied into the extensible SDK."
12062 </info>
12063 <glossdef>
12064 <para role="glossdeffirst">
12065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12066 Controls whether or not shared state artifacts are copied
12067 into the extensible SDK.
12068 The default value of "full" copies all of the required
12069 shared state artifacts into the extensible SDK.
12070 The value "minimal" leaves these artifacts out of the
12071 SDK.
12072 <note>
12073 If you set the variable to "minimal", you need to
12074 ensure
12075 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
12076 is set in the SDK's configuration to enable the
12077 artifacts to be fetched as needed.
12078 </note>
12079 </para>
12080 </glossdef>
12081 </glossentry>
12082
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012083 <glossentry id='var-SDK_HOST_MANIFEST'><glossterm>SDK_HOST_MANIFEST</glossterm>
12084 <info>
12085 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."
12086 </info>
12087 <glossdef>
12088 <para role="glossdeffirst">
12089<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12090 The manifest file for the host part of the SDK.
12091 This file lists all the installed packages that make up
Brad Bishop316dfdd2018-06-25 12:45:53 -040012092 the host part of the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012093 The file contains package information on a line-per-package
12094 basis as follows:
12095 <literallayout class='monospaced'>
12096 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12097 </literallayout>
12098 </para>
12099
12100 <para>
12101 The
12102 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12103 class defines the manifest file as follows:
12104 <literallayout class='monospaced'>
12105 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
12106 </literallayout>
12107 The location is derived using the
12108 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12109 and
12110 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12111 variables.
12112 </para>
12113 </glossdef>
12114 </glossentry>
12115
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012116 <glossentry id='var-SDK_INCLUDE_PKGDATA'><glossterm>SDK_INCLUDE_PKGDATA</glossterm>
12117 <info>
12118 SDK_INCLUDE_PKGDATA[doc] = "When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK."
12119 </info>
12120 <glossdef>
12121 <para role="glossdeffirst">
12122<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12123 When set to "1", specifies to include the packagedata for
12124 all recipes in the "world" target in the extensible SDK.
12125 Including this data allows the
12126 <filename>devtool search</filename> command to find these
12127 recipes in search results, as well as allows the
12128 <filename>devtool add</filename> command to map
12129 dependencies more effectively.
12130 <note>
12131 Enabling the <filename>SDK_INCLUDE_PKGDATA</filename>
12132 variable significantly increases build time because
12133 all of world needs to be built.
12134 Enabling the variable also slightly increases the size
12135 of the extensible SDK.
12136 </note>
12137 </para>
12138 </glossdef>
12139 </glossentry>
12140
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012141 <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
12142 <info>
12143 SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
12144 </info>
12145 <glossdef>
12146 <para role="glossdeffirst">
12147<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12148 When set to "1", specifies to include the toolchain in the
12149 extensible SDK.
12150 Including the toolchain is useful particularly when
12151 <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
12152 is set to "minimal" to keep the SDK reasonably small
12153 but you still want to provide a usable toolchain.
12154 For example, suppose you want to use the toolchain from an
12155 IDE (e.g. Eclipse) or from other tools and you do not
12156 want to perform additional steps to install the toolchain.
12157 </para>
12158
12159 <para>
12160 The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
12161 defaults to "0" if <filename>SDK_EXT_TYPE</filename>
12162 is set to "minimal", and defaults to "1" if
12163 <filename>SDK_EXT_TYPE</filename> is set to "full".
12164 </para>
12165 </glossdef>
12166 </glossentry>
12167
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012168 <glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
12169 <info>
12170 SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
12171 </info>
12172 <glossdef>
12173 <para role="glossdeffirst">
12174<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12175 A list of classes to remove from the
12176 <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
12177 value globally within the extensible SDK configuration.
12178 The default value is "buildhistory icecc".
12179 </para>
12180
12181 <para>
12182 Some classes are not generally applicable within
12183 the extensible SDK context and you can use this variable
12184 to disable them.
12185 </para>
12186 </glossdef>
12187 </glossentry>
12188
12189 <glossentry id='var-SDK_LOCAL_CONF_BLACKLIST'><glossterm>SDK_LOCAL_CONF_BLACKLIST</glossterm>
12190 <info>
12191 SDK_LOCAL_CONF_BLACKLIST[doc] = "A list of variables not allowed through from the build system configuration into the extensible SDK configuration."
12192 </info>
12193 <glossdef>
12194 <para role="glossdeffirst">
12195<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12196 A list of variables not allowed through from the build
12197 system configuration into the extensible SDK configuration.
12198 Usually, these are variables that are specific to the
12199 machine on which the build system is running and thus
12200 would be potentially problematic within the extensible SDK.
12201 </para>
12202 </glossdef>
12203 </glossentry>
12204
12205 <glossentry id='var-SDK_LOCAL_CONF_WHITELIST'><glossterm>SDK_LOCAL_CONF_WHITELIST</glossterm>
12206 <info>
12207 SDK_LOCAL_CONF_WHITELIST[doc] = "A list of variables allowed through from the build system configuration into the extensible SDK configuration."
12208 </info>
12209 <glossdef>
12210 <para role="glossdeffirst">
12211<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12212 A list of variables allowed through from the build system
12213 configuration into the extensible SDK configuration.
12214 This list overrides the variables specified using the
12215 <link linkend='var-SDK_LOCAL_CONF_BLACKLIST'><filename>SDK_LOCAL_CONF_BLACKLIST</filename></link>
12216 variable as well as any variables identified by automatic
12217 blacklisting due to the "/" character being found at the
12218 start of the value, which is usually indicative of being a
12219 path and thus might not be valid on the system where the
12220 SDK is installed.
12221 </para>
12222 </glossdef>
12223 </glossentry>
12224
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012225 <glossentry id='var-SDK_NAME'><glossterm>SDK_NAME</glossterm>
12226 <info>
12227 SDK_NAME[doc] = "The base name for SDK output files."
12228 </info>
12229 <glossdef>
12230 <para role="glossdeffirst">
12231<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12232 The base name for SDK output files.
12233 The name is derived from the
12234 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
12235 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
12236 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12237 <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
12238 and
12239 <link linkend='var-TUNE_PKGARCH'><filename>TUNE_PKGARCH</filename></link>
12240 variables:
12241 <literallayout class='monospaced'>
12242 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
12243 </literallayout>
12244 </para>
12245 </glossdef>
12246 </glossentry>
12247
12248 <glossentry id='var-SDK_OS'><glossterm>SDK_OS</glossterm>
12249 <info>
12250 SDK_OS[doc] = "The operating system for which the SDK will be built."
12251 </info>
12252 <glossdef>
12253 <para role="glossdeffirst">
12254<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12255 Specifies the operating system for which the SDK
12256 will be built.
12257 The default value is the value of
12258 <link linkend='var-BUILD_OS'><filename>BUILD_OS</filename></link>.
12259 </para>
12260 </glossdef>
12261 </glossentry>
12262
12263 <glossentry id='var-SDK_OUTPUT'><glossterm>SDK_OUTPUT</glossterm>
12264 <info>
12265 SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
12266 </info>
12267 <glossdef>
12268 <para role="glossdeffirst">
12269<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12270 The location used by the OpenEmbedded build system when
12271 creating SDK output.
12272 The
12273 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12274 class defines the variable as follows:
12275 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012276 SDK_DIR = "${WORKDIR}/sdk"
12277 SDK_OUTPUT = "${SDK_DIR}/image"
12278 SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012279 </literallayout>
12280 <note>
12281 The <filename>SDK_OUTPUT</filename> directory is a
12282 temporary directory as it is part of
Brad Bishop316dfdd2018-06-25 12:45:53 -040012283 <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
12284 by way of
12285 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012286 The final output directory is
12287 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>.
12288 </note>
12289 </para>
12290 </glossdef>
12291 </glossentry>
12292
12293 <glossentry id='var-SDK_PACKAGE_ARCHS'><glossterm>SDK_PACKAGE_ARCHS</glossterm>
12294 <info>
12295 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."
12296 </info>
12297 <glossdef>
12298 <para role="glossdeffirst">
12299<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12300 Specifies a list of architectures compatible with
12301 the SDK machine.
12302 This variable is set automatically and should not
12303 normally be hand-edited.
12304 Entries are separated using spaces and listed in order
12305 of priority.
12306 The default value for
12307 <filename>SDK_PACKAGE_ARCHS</filename> is "all any noarch
12308 ${SDK_ARCH}-${SDKPKGSUFFIX}".
12309 </para>
12310 </glossdef>
12311 </glossentry>
12312
12313 <glossentry id='var-SDK_POSTPROCESS_COMMAND'><glossterm>SDK_POSTPROCESS_COMMAND</glossterm>
12314 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012315 SDK_POSTPROCESS_COMMAND[doc] = "Specifies a list of functions to call once the OpenEmbedded build system creates the SDK."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012316 </info>
12317 <glossdef>
12318 <para role="glossdeffirst">
12319<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12320 Specifies a list of functions to call once the
Brad Bishop316dfdd2018-06-25 12:45:53 -040012321 OpenEmbedded build system creates the SDK.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012322 You can specify functions separated by semicolons:
12323 <literallayout class='monospaced'>
12324 SDK_POSTPROCESS_COMMAND += "<replaceable>function</replaceable>; ... "
12325 </literallayout>
12326 </para>
12327
12328 <para>
12329 If you need to pass an SDK path to a command within a
12330 function, you can use
12331 <filename>${SDK_DIR}</filename>, which points to
12332 the parent directory used by the OpenEmbedded build system
12333 when creating SDK output.
12334 See the
12335 <link linkend='var-SDK_DIR'><filename>SDK_DIR</filename></link>
12336 variable for more information.
12337 </para>
12338 </glossdef>
12339 </glossentry>
12340
12341 <glossentry id='var-SDK_PREFIX'><glossterm>SDK_PREFIX</glossterm>
12342 <info>
12343 SDK_PREFIX[doc] = "The toolchain binary prefix used for nativesdk recipes."
12344 </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 toolchain binary prefix used for
12349 <filename>nativesdk</filename> recipes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012350 The OpenEmbedded build system uses the
12351 <filename>SDK_PREFIX</filename> value to set the
12352 <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>
12353 when building <filename>nativesdk</filename> recipes.
12354 The default value is "${SDK_SYS}-".
12355 </para>
12356 </glossdef>
12357 </glossentry>
12358
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012359 <glossentry id='var-SDK_RECRDEP_TASKS'><glossterm>SDK_RECRDEP_TASKS</glossterm>
12360 <info>
12361 SDK_RECRDEP_TASKS[doc] = "A list of shared state tasks added to the extensible SDK."
12362 </info>
12363 <glossdef>
12364 <para role="glossdeffirst">
12365<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12366 A list of shared state tasks added to the extensible SDK.
12367 By default, the following tasks are added:
12368 <literallayout class='monospaced'>
12369 do_populate_lic
12370 do_package_qa
12371 do_populate_sysroot
12372 do_deploy
12373 </literallayout>
12374 Despite the default value of "" for the
12375 <filename>SDK_RECRDEP_TASKS</filename> variable, the
12376 above four tasks are always added to the SDK.
12377 To specify tasks beyond these four, you need to use
12378 the <filename>SDK_RECRDEP_TASKS</filename> variable (e.g.
12379 you are defining additional tasks that are needed in
12380 order to build
12381 <link linkend='var-SDK_TARGETS'><filename>SDK_TARGETS</filename></link>).
12382 </para>
12383 </glossdef>
12384 </glossentry>
12385
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012386 <glossentry id='var-SDK_SYS'><glossterm>SDK_SYS</glossterm>
12387 <info>
12388 SDK_SYS[doc] = "Specifies the system, including the architecture and the operating system, for which the SDK will be built."
12389 </info>
12390 <glossdef>
12391 <para role="glossdeffirst">
12392<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12393 Specifies the system, including the architecture and the
12394 operating system, for which the SDK will be built.
12395 </para>
12396
12397 <para>
12398 The OpenEmbedded build system automatically sets this
12399 variable based on
12400 <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
12401 <link linkend='var-SDK_VENDOR'><filename>SDK_VENDOR</filename></link>,
12402 and
12403 <link linkend='var-SDK_OS'><filename>SDK_OS</filename></link>.
12404 You do not need to set the <filename>SDK_SYS</filename>
12405 variable yourself.
12406 </para>
12407 </glossdef>
12408 </glossentry>
12409
12410 <glossentry id='var-SDK_TARGET_MANIFEST'><glossterm>SDK_TARGET_MANIFEST</glossterm>
12411 <info>
12412 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."
12413 </info>
12414 <glossdef>
12415 <para role="glossdeffirst">
12416<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12417 The manifest file for the target part of the SDK.
12418 This file lists all the installed packages that make up
12419 the target part of the SDK.
12420 The file contains package information on a line-per-package
12421 basis as follows:
12422 <literallayout class='monospaced'>
12423 <replaceable>packagename</replaceable> <replaceable>packagearch</replaceable> <replaceable>version</replaceable>
12424 </literallayout>
12425 </para>
12426
12427 <para>
12428 The
12429 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
12430 class defines the manifest file as follows:
12431 <literallayout class='monospaced'>
12432 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
12433 </literallayout>
12434 The location is derived using the
12435 <link linkend='var-SDK_DEPLOY'><filename>SDK_DEPLOY</filename></link>
12436 and
12437 <link linkend='var-TOOLCHAIN_OUTPUTNAME'><filename>TOOLCHAIN_OUTPUTNAME</filename></link>
12438 variables.
12439 </para>
12440 </glossdef>
12441 </glossentry>
12442
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012443 <glossentry id='var-SDK_TARGETS'><glossterm>SDK_TARGETS</glossterm>
12444 <info>
12445 SDK_TARGETS[doc] = "A list of targets to install from shared state as part of the standard or extensible SDK installation."
12446 </info>
12447 <glossdef>
12448 <para role="glossdeffirst">
12449<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12450 A list of targets to install from shared state as part of
12451 the standard or extensible SDK installation.
12452 The default value is "${PN}" (i.e. the image from which
12453 the SDK is built).
12454 </para>
12455
12456 <para>
12457 The <filename>SDK_TARGETS</filename> variable is an
12458 internal variable and typically would not be changed.
12459 </para>
12460 </glossdef>
12461 </glossentry>
12462
12463 <glossentry id='var-SDK_TITLE'><glossterm>SDK_TITLE</glossterm>
12464 <info>
12465 SDK_TITLE[doc] = "Specifies a title to be printed when running the SDK installer."
12466 </info>
12467 <glossdef>
12468 <para role="glossdeffirst">
12469<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12470 Specifies a title to be printed when running the SDK
12471 installer.
12472 The <filename>SDK_TITLE</filename> variable defaults to
12473 "<replaceable>distro</replaceable> SDK" for the standard
12474 SDK and "<replaceable>distro</replaceable> Extensible SDK"
12475 for the extensible SDK, where
12476 <replaceable>distro</replaceable> is the first one of
12477 <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
12478 or
12479 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
12480 that is set in your configuration.
12481 </para>
12482 </glossdef>
12483 </glossentry>
12484
12485 <glossentry id='var-SDK_UPDATE_URL'><glossterm>SDK_UPDATE_URL</glossterm>
12486 <info>
12487 SDK_UPDATE_URL[doc] = "An optional URL for an update server for the extensible SDK."
12488 </info>
12489 <glossdef>
12490 <para role="glossdeffirst">
12491<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12492 An optional URL for an update server for the extensible
12493 SDK.
12494 If set, the value is used as the default update server when
12495 running <filename>devtool sdk-update</filename> within the
12496 extensible SDK.
12497 </para>
12498 </glossdef>
12499 </glossentry>
12500
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012501 <glossentry id='var-SDK_VENDOR'><glossterm>SDK_VENDOR</glossterm>
12502 <info>
12503 SDK_VENDOR[doc] = "Specifies the name of the SDK vendor."
12504 </info>
12505 <glossdef>
12506 <para role="glossdeffirst">
12507<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12508 Specifies the name of the SDK vendor.
12509 </para>
12510 </glossdef>
12511 </glossentry>
12512
12513 <glossentry id='var-SDK_VERSION'><glossterm>SDK_VERSION</glossterm>
12514 <info>
12515 SDK_VERSION[doc] = "Specifies the version for the SDK."
12516 </info>
12517 <glossdef>
12518 <para role="glossdeffirst">
12519<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12520 Specifies the version of the SDK.
12521 The distribution configuration file (e.g.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012522 <filename>/meta-poky/conf/distro/poky.conf</filename>)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012523 defines the <filename>SDK_VERSION</filename> as follows:
12524 <literallayout class='monospaced'>
12525 SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
12526 </literallayout>
12527 </para>
12528
12529 <para>
12530 For additional information, see the
12531 <link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
12532 and
12533 <link linkend='var-DATE'><filename>DATE</filename></link>
12534 variables.
12535 </para>
12536 </glossdef>
12537 </glossentry>
12538
12539 <glossentry id='var-SDKIMAGE_FEATURES'><glossterm>SDKIMAGE_FEATURES</glossterm>
12540 <info>
12541 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'."
12542 </info>
12543 <glossdef>
12544 <para role="glossdeffirst">
12545<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12546 Equivalent to
12547 <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
12548 However, this variable applies to the SDK generated from an
12549 image using the following command:
12550 <literallayout class='monospaced'>
12551 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
12552 </literallayout>
12553 </para>
12554 </glossdef>
12555 </glossentry>
12556
12557 <glossentry id='var-SDKMACHINE'><glossterm>SDKMACHINE</glossterm>
12558 <info>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012559 SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012560 </info>
12561 <glossdef>
12562 <para role="glossdeffirst">
12563<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012564 The machine for which the SDK is built.
12565 In other words, the SDK is built such that it
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012566 runs on the target you specify with the
12567 <filename>SDKMACHINE</filename> value.
12568 The value points to a corresponding
12569 <filename>.conf</filename> file under
12570 <filename>conf/machine-sdk/</filename>.
12571 </para>
12572
12573 <para>
12574 You can use "i686" and "x86_64" as possible values
12575 for this variable. The variable defaults to "i686"
12576 and is set in the local.conf file in the Build Directory.
12577 <literallayout class='monospaced'>
12578 SDKMACHINE ?= "i686"
12579 </literallayout>
12580 <note>
12581 You cannot set the <filename>SDKMACHINE</filename>
12582 variable in your distribution configuration file.
12583 If you do, the configuration will not take affect.
12584 </note>
12585 </para>
12586 </glossdef>
12587 </glossentry>
12588
12589 <glossentry id='var-SDKPATH'><glossterm>SDKPATH</glossterm>
12590 <info>
12591 SDKPATH[doc] = "Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system."
12592 </info>
12593 <glossdef>
12594 <para role="glossdeffirst">
12595<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12596 Defines the path offered to the user for installation
12597 of the SDK that is generated by the OpenEmbedded build
12598 system.
12599 The path appears as the default location for installing
12600 the SDK when you run the SDK's installation script.
12601 You can override the offered path when you run the
12602 script.
12603 </para>
12604 </glossdef>
12605 </glossentry>
12606
12607 <glossentry id='var-SDKTARGETSYSROOT'><glossterm>SDKTARGETSYSROOT</glossterm>
12608 <info>
12609 SDKTARGETSYSROOT[doc] = "Full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default SDKPATH."
12610 </info>
12611 <glossdef>
12612 <para role="glossdeffirst">
12613<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12614 The full path to the sysroot used for cross-compilation
12615 within an SDK as it will be when installed into the
12616 default
12617 <link linkend='var-SDKPATH'><filename>SDKPATH</filename></link>.
12618 </para>
12619 </glossdef>
12620 </glossentry>
12621
12622 <glossentry id='var-SECTION'><glossterm>SECTION</glossterm>
12623 <info>
12624 SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
12625 </info>
12626 <glossdef>
12627 <para role="glossdeffirst">
12628<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12629 The section in which packages should be categorized.
12630 Package management utilities can make use of this variable.
12631 </para>
12632 </glossdef>
12633 </glossentry>
12634
12635 <glossentry id='var-SELECTED_OPTIMIZATION'><glossterm>SELECTED_OPTIMIZATION</glossterm>
12636 <info>
12637 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."
12638 </info>
12639 <glossdef>
12640 <para role="glossdeffirst">
12641<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12642 Specifies the optimization flags passed to the C compiler
12643 when building for the target.
12644 The flags are passed through the default value of the
12645 <link linkend='var-TARGET_CFLAGS'><filename>TARGET_CFLAGS</filename></link>
12646 variable.
12647 </para>
12648
12649 <para>
12650 The <filename>SELECTED_OPTIMIZATION</filename> variable
12651 takes the value of
12652 <filename><link linkend='var-FULL_OPTIMIZATION'>FULL_OPTIMIZATION</link></filename>
12653 unless <filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> = "1".
12654 If that is the case, the value of
12655 <filename><link linkend='var-DEBUG_OPTIMIZATION'>DEBUG_OPTIMIZATION</link></filename> is used.
12656 </para>
12657 </glossdef>
12658 </glossentry>
12659
12660 <glossentry id='var-SERIAL_CONSOLE'><glossterm>SERIAL_CONSOLE</glossterm>
12661 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012662 SERIAL_CONSOLE[doc] = "Defines the serial consoles (TTYs) to enable using getty."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012663 </info>
12664 <glossdef>
12665 <para role="glossdeffirst">
12666<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040012667 Defines a serial console (TTY) to enable using
12668 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012669 Provide a value that specifies the baud rate followed by
12670 the TTY device name separated by a space.
12671 You cannot specify more than one TTY device:
12672 <literallayout class='monospaced'>
12673 SERIAL_CONSOLE = "115200 ttyS0"
12674 </literallayout>
12675 <note>
12676 The <filename>SERIAL_CONSOLE</filename> variable
12677 is deprecated.
12678 Please use the
12679 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
12680 variable.
12681 </note>
12682 </para>
12683 </glossdef>
12684 </glossentry>
12685
12686 <glossentry id='var-SERIAL_CONSOLES'><glossterm>SERIAL_CONSOLES</glossterm>
12687 <info>
12688 SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
12689 </info>
12690 <glossdef>
12691 <para role="glossdeffirst">
12692<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040012693 Defines a serial console (TTY) to enable using
12694 <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012695 Provide a value that specifies the baud rate followed by
12696 the TTY device name separated by a semicolon.
12697 Use spaces to separate multiple devices:
12698 <literallayout class='monospaced'>
12699 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
12700 </literallayout>
12701 </para>
12702 </glossdef>
12703 </glossentry>
12704
12705 <glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
12706 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012707 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 -050012708 </info>
12709 <glossdef>
12710 <para role="glossdeffirst">
12711<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060012712 Specifies serial consoles, which must be listed in
12713 <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
12714 to check against <filename>/proc/console</filename>
12715 before enabling them using getty.
12716 This variable allows aliasing in the format:
12717 &lt;device&gt;:&lt;alias&gt;.
12718 If a device was listed as "sclp_line0"
12719 in <filename>/dev/</filename> and "ttyS0" was listed
12720 in <filename>/proc/console</filename>, you would do the
12721 following:
12722 <literallayout class='monospaced'>
12723 SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
12724 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012725 This variable is currently only supported with SysVinit
12726 (i.e. not with systemd).
12727 </para>
12728 </glossdef>
12729 </glossentry>
12730
12731 <glossentry id='var-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS'><glossterm>SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS</glossterm>
12732 <info>
12733 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."
12734 </info>
12735 <glossdef>
12736 <para role="glossdeffirst">
12737<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12738 A list of recipe dependencies that should not be used to
12739 determine signatures of tasks from one recipe when they
12740 depend on tasks from another recipe.
12741 For example:
12742 <literallayout class='monospaced'>
12743 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
12744 </literallayout>
12745 </para>
12746
12747 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040012748 In the previous example, <filename>intone</filename>
12749 depends on <filename>mplayer2</filename>.
12750 </para>
12751
12752 <para>
12753 You can use the special token <filename>"*"</filename> on
12754 the left-hand side of the dependency to match all
12755 recipes except the one on the right-hand side.
12756 Here is an example:
12757 <literallayout class='monospaced'>
12758 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
12759 </literallayout>
12760 </para>
12761
12762 <para>
12763 In the previous example, all recipes except
12764 <filename>quilt-native</filename> ignore task
12765 signatures from the <filename>quilt-native</filename>
12766 recipe when determining their task signatures.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012767 </para>
12768
12769 <para>
12770 Use of this variable is one mechanism to remove dependencies
12771 that affect task signatures and thus force rebuilds when a
12772 recipe changes.
12773 <note><title>Caution</title>
12774 If you add an inappropriate dependency for a recipe
12775 relationship, the software might break during
12776 runtime if the interface of the second recipe was
12777 changed after the first recipe had been built.
12778 </note>
12779 </para>
12780 </glossdef>
12781 </glossentry>
12782
12783 <glossentry id='var-SIGGEN_EXCLUDERECIPES_ABISAFE'><glossterm>SIGGEN_EXCLUDERECIPES_ABISAFE</glossterm>
12784 <info>
12785 SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
12786 </info>
12787 <glossdef>
12788 <para role="glossdeffirst">
12789<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12790 A list of recipes that are completely stable and will
12791 never change.
12792 The ABI for the recipes in the list are presented by
12793 output from the tasks run to build the recipe.
12794 Use of this variable is one way to remove dependencies from
12795 one recipe on another that affect task signatures and
12796 thus force rebuilds when the recipe changes.
12797 <note><title>Caution</title>
12798 If you add an inappropriate variable to this list,
12799 the software might break at runtime if the
12800 interface of the recipe was changed after the other
12801 had been built.
12802 </note>
12803 </para>
12804 </glossdef>
12805 </glossentry>
12806
12807 <glossentry id='var-SITEINFO_BITS'><glossterm>SITEINFO_BITS</glossterm>
12808 <info>
12809 SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
12810 </info>
12811 <glossdef>
12812 <para role="glossdeffirst">
12813<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12814 Specifies the number of bits for the target system CPU.
12815 The value should be either "32" or "64".
12816 </para>
12817 </glossdef>
12818 </glossentry>
12819
12820 <glossentry id='var-SITEINFO_ENDIANNESS'><glossterm>SITEINFO_ENDIANNESS</glossterm>
12821 <info>
12822 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'."
12823 </info>
12824 <glossdef>
12825 <para role="glossdeffirst">
12826<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12827 Specifies the endian byte order of the target system.
12828 The value should be either "le" for little-endian or "be" for big-endian.
12829 </para>
12830 </glossdef>
12831 </glossentry>
12832
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012833 <glossentry id='var-SKIP_FILEDEPS'><glossterm>SKIP_FILEDEPS</glossterm>
12834 <info>
12835 SKIP_FILEDEPS[doc] = "Enables you to remove all files from
12836 the "Provides" section of an RPM package."
12837 </info>
12838 <glossdef>
12839 <para role="glossdeffirst">
12840<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12841 Enables removal of all files from the "Provides" section of
12842 an RPM package.
12843 Removal of these files is required for packages containing
12844 prebuilt binaries and libraries such as
12845 <filename>libstdc++</filename> and
12846 <filename>glibc</filename>.
12847 </para>
12848
12849 <para>
12850 To enable file removal, set the variable to "1" in your
12851 <filename>conf/local.conf</filename> configuration file
12852 in your:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012853 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012854 <literallayout class='monospaced'>
12855 SKIP_FILEDEPS = "1"
12856 </literallayout>
12857 </para>
12858 </glossdef>
12859 </glossentry>
12860
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012861 <glossentry id='var-SOC_FAMILY'><glossterm>SOC_FAMILY</glossterm>
12862 <info>
12863 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."
12864 </info>
12865 <glossdef>
12866 <para role="glossdeffirst">
12867<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12868 Groups together machines based upon the same family
12869 of SOC (System On Chip).
12870 You typically set this variable in a common
12871 <filename>.inc</filename> file that you include in the
12872 configuration files of all the machines.
12873 <note>
12874 You must include
12875 <filename>conf/machine/include/soc-family.inc</filename>
12876 for this variable to appear in
12877 <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>.
12878 </note>
12879 </para>
12880 </glossdef>
12881 </glossentry>
12882
12883 <glossentry id='var-SOLIBS'><glossterm>SOLIBS</glossterm>
12884 <info>
12885 SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
12886 </info>
12887 <glossdef>
12888 <para role="glossdeffirst">
12889<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12890 Defines the suffix for shared libraries used on the
12891 target platform.
12892 By default, this suffix is ".so.*" for all Linux-based
12893 systems and is defined in the
12894 <filename>meta/conf/bitbake.conf</filename> configuration
12895 file.
12896 </para>
12897
12898 <para>
12899 You will see this variable referenced in the default values
12900 of <filename>FILES_${PN}</filename>.
12901 </para>
12902 </glossdef>
12903 </glossentry>
12904
12905 <glossentry id='var-SOLIBSDEV'><glossterm>SOLIBSDEV</glossterm>
12906 <info>
12907 SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
12908 </info>
12909 <glossdef>
12910 <para role="glossdeffirst">
12911<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12912 Defines the suffix for the development symbolic link
12913 (symlink) for shared libraries on the target platform.
12914 By default, this suffix is ".so" for Linux-based
12915 systems and is defined in the
12916 <filename>meta/conf/bitbake.conf</filename> configuration
12917 file.
12918 </para>
12919
12920 <para>
12921 You will see this variable referenced in the default values
12922 of <filename>FILES_${PN}-dev</filename>.
12923 </para>
12924 </glossdef>
12925 </glossentry>
12926
12927 <glossentry id='var-SOURCE_MIRROR_FETCH'><glossterm>SOURCE_MIRROR_FETCH</glossterm>
12928 <info>
12929 SOURCE_MIRROR_FETCH[doc] = "Set as part of a source mirror generation script to skip COMPATIBLE_MACHINE and COMPATIBLE_HOST checks."
12930 </info>
12931 <glossdef>
12932 <para role="glossdeffirst">
12933<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12934 When you are fetching files to create a mirror of sources
12935 (i.e. creating a source mirror), setting
12936 <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
12937 <filename>local.conf</filename> configuration file ensures
12938 the source for all recipes are fetched regardless of
12939 whether or not a recipe is compatible with the
12940 configuration.
12941 A recipe is considered incompatible with the currently
12942 configured machine when either or both the
12943 <link linkend='var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></link>
12944 variable and
12945 <link linkend='var-COMPATIBLE_HOST'><filename>COMPATIBLE_HOST</filename></link>
12946 variables specify compatibility with a machine other
12947 than that of the current machine or host.
12948 <note><title>Warning</title>
12949 Do not set the
12950 <filename>SOURCE_MIRROR_FETCH</filename> variable
12951 unless you are creating a source mirror.
12952 In other words, do not set the variable during a
12953 normal build.
12954 </note>
12955 </para>
12956 </glossdef>
12957 </glossentry>
12958
12959 <glossentry id='var-SOURCE_MIRROR_URL'><glossterm>SOURCE_MIRROR_URL</glossterm>
12960 <info>
12961 SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
12962 </info>
12963 <glossdef>
12964 <para role="glossdeffirst">
12965<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12966 Defines your own
12967 <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
12968 from which to first fetch source before attempting to fetch
12969 from the upstream specified in
12970 <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>.
12971 </para>
12972
12973 <para>
12974 To use this variable, you must globally inherit the
12975 <link linkend='ref-classes-own-mirrors'><filename>own-mirrors</filename></link>
12976 class and then provide the URL to your mirrors.
12977 Here is the general syntax:
12978 <literallayout class='monospaced'>
12979 INHERIT += "own-mirrors"
12980 SOURCE_MIRROR_URL = "http://<replaceable>example</replaceable>.com/<replaceable>my_source_mirror</replaceable>"
12981 </literallayout>
12982 <note>
12983 You can specify only a single URL in
12984 <filename>SOURCE_MIRROR_URL</filename>.
12985 </note>
12986 </para>
12987 </glossdef>
12988 </glossentry>
12989
12990 <glossentry id='var-SPDXLICENSEMAP'><glossterm>SPDXLICENSEMAP</glossterm>
12991 <info>
12992 SPDXLICENSEMAP[doc] = "Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/."
12993 </info>
12994 <glossdef>
12995 <para role="glossdeffirst">
12996<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
12997 Maps commonly used license names to their SPDX counterparts
12998 found in <filename>meta/files/common-licenses/</filename>.
12999 For the default <filename>SPDXLICENSEMAP</filename>
13000 mappings, see the
13001 <filename>meta/conf/licenses.conf</filename> file.
13002 </para>
13003
13004 <para>
13005 For additional information, see the
13006 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
13007 variable.
13008 </para>
13009 </glossdef>
13010 </glossentry>
13011
13012 <glossentry id='var-SPECIAL_PKGSUFFIX'><glossterm>SPECIAL_PKGSUFFIX</glossterm>
13013 <info>
13014 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."
13015 </info>
13016 <glossdef>
13017 <para role="glossdeffirst">
13018<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13019 A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
13020 OpenEmbedded build system to create variants of recipes or packages.
13021 The list specifies the prefixes to strip off during certain circumstances
13022 such as the generation of the <link linkend='var-BPN'><filename>BPN</filename></link> variable.
13023 </para>
13024 </glossdef>
13025 </glossentry>
13026
Brad Bishop316dfdd2018-06-25 12:45:53 -040013027 <glossentry id='var-SPL_BINARY'><glossterm>SPL_BINARY</glossterm>
13028 <info>
13029 SPL_BINARY[doc] = "The file type of the Secondary Program Loader (SPL)."
13030 </info>
13031 <glossdef>
13032 <para role="glossdeffirst">
13033<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13034 The file type for the Secondary Program Loader (SPL).
13035 Some devices use an SPL from which to boot (e.g. the
13036 BeagleBone development board).
13037 For such cases, you can declare the file type of the
13038 SPL binary in the <filename>u-boot.inc</filename> include
13039 file, which is used in the U-Boot recipe.
13040 </para>
13041
13042 <para>
13043 The SPL file type is set to "null" by default in the
13044 <filename>u-boot.inc</filename> file as follows:
13045 <literallayout class='monospaced'>
13046 # Some versions of u-boot build an SPL (Second Program Loader) image that
13047 # should be packaged along with the u-boot binary as well as placed in the
13048 # deploy directory. For those versions they can set the following variables
13049 # to allow packaging the SPL.
13050 SPL_BINARY ?= ""
13051 SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
13052 SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
13053 SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
13054 </literallayout>
13055 The <filename>SPL_BINARY</filename> variable helps form
13056 various <filename>SPL_*</filename> variables used by
13057 the OpenEmbedded build system.
13058 </para>
13059
13060 <para>
13061 See the BeagleBone machine configuration example in the
13062 "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-bitbake-layers-script'>Creating a new BSP Layer Using the <filename>bitbake-layers</filename> Script</ulink>"
13063 section in the Yocto Project Board Support Package
13064 Developer's Guide for additional information.
13065 </para>
13066 </glossdef>
13067 </glossentry>
13068
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013069 <glossentry id='var-SRC_URI'><glossterm>SRC_URI</glossterm>
13070 <info>
13071 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."
13072 </info>
13073 <glossdef>
13074 <para role="glossdeffirst">
13075<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13076 The list of source files - local or remote.
13077 This variable tells the OpenEmbedded build system which bits
13078 to pull in for the build and how to pull them in.
13079 For example, if the recipe or append file only needs to
13080 fetch a tarball from the Internet, the recipe or
13081 append file uses a single <filename>SRC_URI</filename>
13082 entry.
13083 On the other hand, if the recipe or append file needs to
13084 fetch a tarball, apply two patches, and include a custom
13085 file, the recipe or append file would include four
13086 instances of the variable.
13087 </para>
13088
13089 <para>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013090 The following list explains the available URI protocols.
13091 URI protocols are highly dependent on particular BitBake
13092 Fetcher submodules.
13093 Depending on the fetcher BitBake uses, various URL
13094 parameters are employed.
13095 For specifics on the supported Fetchers, see the
13096 "<ulink url='&YOCTO_DOCS_BB_URL;#bb-fetchers'>Fetchers</ulink>"
13097 section in the BitBake User Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013098 <itemizedlist>
13099 <listitem><para><emphasis><filename>file://</filename> -</emphasis>
13100 Fetches files, which are usually files shipped with
13101 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013102 <link linkend='metadata'>Metadata</link>,
Brad Bishop316dfdd2018-06-25 12:45:53 -040013103 from the local machine (e.g.
13104 <ulink url='&YOCTO_DOCS_OM_URL;#patching-dev-environment'>patch</ulink>
13105 files).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013106 The path is relative to the
13107 <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
13108 variable.
13109 Thus, the build system searches, in order, from the
13110 following directories, which are assumed to be a
13111 subdirectories of the directory in which the
13112 recipe file (<filename>.bb</filename>) or
13113 append file (<filename>.bbappend</filename>)
13114 resides:
13115 <itemizedlist>
13116 <listitem><para><emphasis><filename>${BPN}</filename> -</emphasis>
13117 The base recipe name without any special
13118 suffix or version numbers.
13119 </para></listitem>
13120 <listitem><para><emphasis><filename>${BP}</filename> -</emphasis>
13121 <filename>${<link linkend='var-BPN'>BPN</link>}-${PV}</filename>.
13122 The base recipe name and version but without
13123 any special package name suffix.
13124 </para></listitem>
13125 <listitem><para><emphasis>files -</emphasis>
13126 Files within a directory, which is named
13127 <filename>files</filename> and is also
13128 alongside the recipe or append file.
13129 </para></listitem>
13130 </itemizedlist>
13131 <note>
13132 If you want the build system to pick up files
13133 specified through a
13134 <filename>SRC_URI</filename>
13135 statement from your append file, you need to be
13136 sure to extend the
13137 <filename>FILESPATH</filename>
13138 variable by also using the
13139 <link linkend='var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></link>
13140 variable from within your append file.
13141 </note>
13142 </para></listitem>
13143 <listitem><para><emphasis><filename>bzr://</filename> -</emphasis> Fetches files from a
13144 Bazaar revision control repository.</para></listitem>
13145 <listitem><para><emphasis><filename>git://</filename> -</emphasis> Fetches files from a
13146 Git revision control repository.</para></listitem>
13147 <listitem><para><emphasis><filename>osc://</filename> -</emphasis> Fetches files from
13148 an OSC (OpenSUSE Build service) revision control repository.</para></listitem>
13149 <listitem><para><emphasis><filename>repo://</filename> -</emphasis> Fetches files from
13150 a repo (Git) repository.</para></listitem>
13151 <listitem><para><emphasis><filename>ccrc://</filename> -</emphasis>
13152 Fetches files from a ClearCase repository.
13153 </para></listitem>
13154 <listitem><para><emphasis><filename>http://</filename> -</emphasis> Fetches files from
13155 the Internet using <filename>http</filename>.</para></listitem>
13156 <listitem><para><emphasis><filename>https://</filename> -</emphasis> Fetches files
13157 from the Internet using <filename>https</filename>.</para></listitem>
13158 <listitem><para><emphasis><filename>ftp://</filename> -</emphasis> Fetches files
13159 from the Internet using <filename>ftp</filename>.</para></listitem>
13160 <listitem><para><emphasis><filename>cvs://</filename> -</emphasis> Fetches files from
13161 a CVS revision control repository.</para></listitem>
13162 <listitem><para><emphasis><filename>hg://</filename> -</emphasis> Fetches files from
13163 a Mercurial (<filename>hg</filename>) revision control repository.</para></listitem>
13164 <listitem><para><emphasis><filename>p4://</filename> -</emphasis> Fetches files from
13165 a Perforce (<filename>p4</filename>) revision control repository.</para></listitem>
13166 <listitem><para><emphasis><filename>ssh://</filename> -</emphasis> Fetches files from
13167 a secure shell.</para></listitem>
13168 <listitem><para><emphasis><filename>svn://</filename> -</emphasis> Fetches files from
13169 a Subversion (<filename>svn</filename>) revision control repository.</para></listitem>
13170 </itemizedlist>
13171 </para>
13172
13173 <para>
13174 Standard and recipe-specific options for <filename>SRC_URI</filename> exist.
13175 Here are standard options:
13176 <itemizedlist>
13177 <listitem><para><emphasis><filename>apply</filename> -</emphasis> Whether to apply
13178 the patch or not.
13179 The default action is to apply the patch.</para></listitem>
13180 <listitem><para><emphasis><filename>striplevel</filename> -</emphasis> Which
13181 striplevel to use when applying the patch.
13182 The default level is 1.</para></listitem>
13183 <listitem><para><emphasis><filename>patchdir</filename> -</emphasis> Specifies
13184 the directory in which the patch should be applied.
13185 The default is <filename>${</filename><link linkend='var-S'><filename>S</filename></link><filename>}</filename>.
13186 </para></listitem>
13187 </itemizedlist>
13188 </para>
13189
13190 <para>
13191 Here are options specific to recipes building code from a revision control system:
13192 <itemizedlist>
13193 <listitem><para><emphasis><filename>mindate</filename> -</emphasis>
13194 Apply the patch only if
13195 <link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
13196 is equal to or greater than <filename>mindate</filename>.
13197 </para></listitem>
13198 <listitem><para><emphasis><filename>maxdate</filename> -</emphasis>
13199 Apply the patch only if <filename>SRCDATE</filename>
13200 is not later than <filename>mindate</filename>.
13201 </para></listitem>
13202 <listitem><para><emphasis><filename>minrev</filename> -</emphasis>
13203 Apply the patch only if <filename>SRCREV</filename>
13204 is equal to or greater than <filename>minrev</filename>.
13205 </para></listitem>
13206 <listitem><para><emphasis><filename>maxrev</filename> -</emphasis>
13207 Apply the patch only if <filename>SRCREV</filename>
13208 is not later than <filename>maxrev</filename>.
13209 </para></listitem>
13210 <listitem><para><emphasis><filename>rev</filename> -</emphasis>
13211 Apply the patch only if <filename>SRCREV</filename>
13212 is equal to <filename>rev</filename>.
13213 </para></listitem>
13214 <listitem><para><emphasis><filename>notrev</filename> -</emphasis>
13215 Apply the patch only if <filename>SRCREV</filename>
13216 is not equal to <filename>rev</filename>.
13217 </para></listitem>
13218 </itemizedlist>
13219 </para>
13220
13221 <para>
13222 Here are some additional options worth mentioning:
13223 <itemizedlist>
13224 <listitem><para><emphasis><filename>unpack</filename> -</emphasis> Controls
13225 whether or not to unpack the file if it is an archive.
13226 The default action is to unpack the file.</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013227 <listitem><para><emphasis><filename>destsuffix</filename> -</emphasis> Places the file
13228 (or extracts its contents) into the specified
13229 subdirectory of <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
13230 when the Git fetcher is used.
13231 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013232 <listitem><para><emphasis><filename>subdir</filename> -</emphasis> Places the file
13233 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013234 subdirectory of <filename>WORKDIR</filename>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013235 when the local (<filename>file://</filename>)
13236 fetcher is used.
13237 </para></listitem>
13238 <listitem><para><emphasis><filename>localdir</filename> -</emphasis> Places the file
13239 (or extracts its contents) into the specified
Brad Bishop316dfdd2018-06-25 12:45:53 -040013240 subdirectory of <filename>WORKDIR</filename> when
13241 the CVS fetcher is used.
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013242 </para></listitem>
13243 <listitem><para><emphasis><filename>subpath</filename> -</emphasis>
13244 Limits the checkout to a specific subpath of the
13245 tree when using the Git fetcher is used.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013246 </para></listitem>
13247 <listitem><para><emphasis><filename>name</filename> -</emphasis> Specifies a
13248 name to be used for association with <filename>SRC_URI</filename> checksums
13249 when you have more than one file specified in <filename>SRC_URI</filename>.
13250 </para></listitem>
13251 <listitem><para><emphasis><filename>downloadfilename</filename> -</emphasis> Specifies
13252 the filename used when storing the downloaded file.</para></listitem>
13253 </itemizedlist>
13254 </para>
13255 </glossdef>
13256 </glossentry>
13257
13258 <glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
13259 <info>
13260 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."
13261 </info>
13262 <glossdef>
13263 <para role="glossdeffirst">
13264<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13265 By default, the OpenEmbedded build system automatically detects whether
13266 <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
13267 contains files that are machine-specific.
13268 If so, the build system automatically changes
13269 <filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
13270 Setting this variable to "0" disables this behavior.
13271 </para>
13272 </glossdef>
13273 </glossentry>
13274
13275 <glossentry id='var-SRCDATE'><glossterm>SRCDATE</glossterm>
13276 <info>
13277 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)."
13278 </info>
13279 <glossdef>
13280 <para role="glossdeffirst">
13281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13282 The date of the source code used to build the package.
13283 This variable applies only if the source was fetched from a Source Code Manager (SCM).
13284 </para>
13285 </glossdef>
13286 </glossentry>
13287
13288 <glossentry id='var-SRCPV'><glossterm>SRCPV</glossterm>
13289 <info>
13290 SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
13291 </info>
13292 <glossdef>
13293 <para role="glossdeffirst">
13294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13295 Returns the version string of the current package.
13296 This string is used to help define the value of
13297 <link linkend='var-PV'><filename>PV</filename></link>.
13298 </para>
13299
13300 <para>
13301 The <filename>SRCPV</filename> variable is defined in the
13302 <filename>meta/conf/bitbake.conf</filename> configuration
13303 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050013304 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013305 as follows:
13306 <literallayout class='monospaced'>
13307 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
13308 </literallayout>
13309 </para>
13310
13311 <para>
13312 Recipes that need to define <filename>PV</filename> do so
13313 with the help of the <filename>SRCPV</filename>.
13314 For example, the <filename>ofono</filename> recipe
13315 (<filename>ofono_git.bb</filename>) located in
13316 <filename>meta/recipes-connectivity</filename> in the
13317 Source Directory defines <filename>PV</filename> as
13318 follows:
13319 <literallayout class='monospaced'>
13320 PV = "0.12-git${SRCPV}"
13321 </literallayout>
13322 </para>
13323 </glossdef>
13324 </glossentry>
13325
13326 <glossentry id='var-SRCREV'><glossterm>SRCREV</glossterm>
13327 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013328 SRCREV[doc] = "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial, and Bazaar only."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013329 </info>
13330 <glossdef>
13331 <para role="glossdeffirst">
13332<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13333 The revision of the source code used to build the package.
Brad Bishop316dfdd2018-06-25 12:45:53 -040013334 This variable applies to Subversion, Git, Mercurial, and
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013335 Bazaar only.
13336 Note that if you want to build a fixed revision and you
13337 want to avoid performing a query on the remote repository
13338 every time BitBake parses your recipe, you should specify
13339 a <filename>SRCREV</filename> that is a
13340 full revision identifier and not just a tag.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013341 <note>
13342 For information on limitations when inheriting the
13343 latest revision of software using
13344 <filename>SRCREV</filename>, see the
13345 <link linkend='var-AUTOREV'><filename>AUTOREV</filename></link>
13346 variable description and the
13347 "<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 -050013348 section, which is in the Yocto Project Development
13349 Tasks Manual.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013350 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013351 </para>
13352
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013353 </glossdef>
13354 </glossentry>
13355
13356 <glossentry id='var-SSTATE_DIR'><glossterm>SSTATE_DIR</glossterm>
13357 <info>
13358 SSTATE_DIR[doc] = "The directory for the shared state cache."
13359 </info>
13360 <glossdef>
13361 <para role="glossdeffirst">
13362<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13363 The directory for the shared state cache.
13364 </para>
13365 </glossdef>
13366 </glossentry>
13367
13368 <glossentry id='var-SSTATE_MIRROR_ALLOW_NETWORK'><glossterm>SSTATE_MIRROR_ALLOW_NETWORK</glossterm>
13369 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013370 SSTATE_MIRROR_ALLOW_NETWORK[doc] = "If set to "1", allows fetches from mirrors that are specified in SSTATE_MIRRORS to work even when fetching from the network is disabled by setting BB_NO_NETWORK to "1"."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013371 </info>
13372 <glossdef>
13373 <para role="glossdeffirst">
13374<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13375 If set to "1", allows fetches from
13376 mirrors that are specified in
13377 <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013378 to work even when fetching from the network is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013379 disabled by setting <filename>BB_NO_NETWORK</filename>
13380 to "1".
13381 Using the
13382 <filename>SSTATE_MIRROR_ALLOW_NETWORK</filename>
13383 variable is useful if you have set
13384 <filename>SSTATE_MIRRORS</filename> to point to an
13385 internal server for your shared state cache, but
13386 you want to disable any other fetching from the network.
13387 </para>
13388 </glossdef>
13389 </glossentry>
13390
13391 <glossentry id='var-SSTATE_MIRRORS'><glossterm>SSTATE_MIRRORS</glossterm>
13392 <info>
13393 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."
13394 </info>
13395 <glossdef>
13396 <para role="glossdeffirst">
13397<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13398 Configures the OpenEmbedded build system to search other
13399 mirror locations for prebuilt cache data objects before
13400 building out the data.
13401 This variable works like fetcher
13402 <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
13403 and <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
13404 and points to the cache locations to check for the shared
13405 objects.
13406 </para>
13407
13408 <para>
13409 You can specify a filesystem directory or a remote URL such
13410 as HTTP or FTP.
13411 The locations you specify need to contain the shared state
13412 cache (sstate-cache) results from previous builds.
13413 The sstate-cache you point to can also be from builds on
13414 other machines.
13415 </para>
13416
13417 <para>
13418 If a mirror uses the same structure as
13419 <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
13420 you need to add
13421 "PATH" at the end as shown in the examples below.
13422 The build system substitutes the correct path within the
13423 directory structure.
13424 <literallayout class='monospaced'>
13425 SSTATE_MIRRORS ?= "\
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013426 file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013427 file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
13428 </literallayout>
13429 </para>
13430 </glossdef>
13431 </glossentry>
13432
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013433 <glossentry id='var-SSTATE_SCAN_FILES'><glossterm>SSTATE_SCAN_FILES</glossterm>
13434 <info>
13435 SSTATE_SCAN_FILES[doc] = "Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths."
13436 </info>
13437 <glossdef>
13438 <para role="glossdeffirst">
13439<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13440 Controls the list of files the OpenEmbedded build system
13441 scans for hardcoded installation paths. The variable uses a
13442 space-separated list of filenames (not paths) with standard
13443 wildcard characters allowed.
13444 </para>
13445
13446 <para>
13447 During a build, the OpenEmbedded build system creates a
13448 shared state (sstate) object during the first stage of
13449 preparing the sysroots. That object is scanned for
13450 hardcoded paths for original installation locations.
13451 The list of files that are scanned for paths is controlled
13452 by the <filename>SSTATE_SCAN_FILES</filename> variable.
13453 Typically, recipes add files they want to be scanned to the
13454 value of <filename>SSTATE_SCAN_FILES</filename> rather than
13455 the variable being comprehensively set. The
13456 <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
13457 class specifies the default list of files.
13458 </para>
13459
13460 <para>
13461 For details on the process, see the
13462 <link linkend='ref-classes-staging'><filename>staging</filename></link>
13463 class.
13464 </para>
13465 </glossdef>
13466 </glossentry>
13467
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013468 <glossentry id='var-STAGING_BASE_LIBDIR_NATIVE'><glossterm>STAGING_BASE_LIBDIR_NATIVE</glossterm>
13469 <info>
13470 STAGING_BASE_LIBDIR_NATIVE[doc] = "Specifies the path to the /lib subdirectory of the sysroot directory for the build 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>/lib</filename>
13476 subdirectory of the sysroot directory for the
13477 build host.
13478 </para>
13479 </glossdef>
13480 </glossentry>
13481
13482 <glossentry id='var-STAGING_BASELIBDIR'><glossterm>STAGING_BASELIBDIR</glossterm>
13483 <info>
13484 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)."
13485 </info>
13486 <glossdef>
13487 <para role="glossdeffirst">
13488<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13489 Specifies the path to the <filename>/lib</filename>
13490 subdirectory of the sysroot directory for the target
13491 for which the current recipe is being built
13492 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13493 </para>
13494 </glossdef>
13495 </glossentry>
13496
13497 <glossentry id='var-STAGING_BINDIR'><glossterm>STAGING_BINDIR</glossterm>
13498 <info>
13499 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)."
13500 </info>
13501 <glossdef>
13502 <para role="glossdeffirst">
13503<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13504 Specifies the path to the
13505 <filename>/usr/bin</filename> subdirectory of the
13506 sysroot directory for the target for which the current
13507 recipe is being built
13508 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13509 </para>
13510 </glossdef>
13511 </glossentry>
13512
13513 <glossentry id='var-STAGING_BINDIR_CROSS'><glossterm>STAGING_BINDIR_CROSS</glossterm>
13514 <info>
13515 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."
13516 </info>
13517 <glossdef>
13518 <para role="glossdeffirst">
13519<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13520 Specifies the path to the directory containing binary
13521 configuration scripts.
13522 These scripts provide configuration information for
13523 other software that wants to make use of libraries or
13524 include files provided by the software associated with
13525 the script.
13526 <note>
13527 This style of build configuration has been largely
13528 replaced by <filename>pkg-config</filename>.
13529 Consequently, if <filename>pkg-config</filename>
13530 is supported by the library to which you are linking,
13531 it is recommended you use
13532 <filename>pkg-config</filename> instead of a
13533 provided configuration script.
13534 </note>
13535 </para>
13536 </glossdef>
13537 </glossentry>
13538
13539 <glossentry id='var-STAGING_BINDIR_NATIVE'><glossterm>STAGING_BINDIR_NATIVE</glossterm>
13540 <info>
13541 STAGING_BINDIR_NATIVE[doc] = "Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host."
13542 </info>
13543 <glossdef>
13544 <para role="glossdeffirst">
13545<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13546 Specifies the path to the
13547 <filename>/usr/bin</filename> subdirectory of the
13548 sysroot directory for the build host.
13549 </para>
13550 </glossdef>
13551 </glossentry>
13552
13553 <glossentry id='var-STAGING_DATADIR'><glossterm>STAGING_DATADIR</glossterm>
13554 <info>
13555 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)."
13556 </info>
13557 <glossdef>
13558 <para role="glossdeffirst">
13559<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13560 Specifies the path to the <filename>/usr/share</filename>
13561 subdirectory of the sysroot directory for the target
13562 for which the current recipe is being built
13563 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13564 </para>
13565 </glossdef>
13566 </glossentry>
13567
13568 <glossentry id='var-STAGING_DATADIR_NATIVE'><glossterm>STAGING_DATADIR_NATIVE</glossterm>
13569 <info>
13570 STAGING_DATADIR_NATIVE[doc] = "Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host."
13571 </info>
13572 <glossdef>
13573 <para role="glossdeffirst">
13574<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13575 Specifies the path to the <filename>/usr/share</filename>
13576 subdirectory of the sysroot directory for the build host.
13577 </para>
13578 </glossdef>
13579 </glossentry>
13580
13581 <glossentry id='var-STAGING_DIR'><glossterm>STAGING_DIR</glossterm>
13582 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013583 STAGING_DIR[doc] = "Helps construct the recipe-sysroots directory, which is used during packaging."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013584 </info>
13585 <glossdef>
13586 <para role="glossdeffirst">
13587<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Brad Bishop316dfdd2018-06-25 12:45:53 -040013588 Helps construct the <filename>recipe-sysroots</filename>
13589 directory, which is used during packaging.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013590 </para>
13591
13592 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013593 For information on how staging for recipe-specific
13594 sysroots occurs, see the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013595 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013596 task, the
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013597 "<ulink url='&YOCTO_DOCS_DEV_URL;#new-sharing-files-between-recipes'>Sharing Files Between Recipes</ulink>"
Brad Bishop316dfdd2018-06-25 12:45:53 -040013598 section in the Yocto Project Development Tasks Manual, the
13599 "<ulink url='&YOCTO_DOCS_OM_URL;#configuration-compilation-and-staging-dev-environment'>Configuration, Compilation, and Staging</ulink>"
13600 section in the Yocto Project Overview and Concepts Manual,
13601 and the
13602 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
13603 variable.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013604 <note>
13605 Recipes should never write files directly under
Brad Bishop37a0e4d2017-12-04 01:01:44 -050013606 the <filename>STAGING_DIR</filename> directory because
13607 the OpenEmbedded build system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013608 manages the directory automatically.
13609 Instead, files should be installed to
13610 <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
13611 within your recipe's
13612 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
13613 task and then the OpenEmbedded build system will
13614 stage a subset of those files into the sysroot.
13615 </note>
13616 </para>
13617 </glossdef>
13618 </glossentry>
13619
13620 <glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
13621 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013622 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 -050013623 </info>
13624 <glossdef>
13625 <para role="glossdeffirst">
13626<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013627 Specifies the path to the sysroot directory for the system
Brad Bishop316dfdd2018-06-25 12:45:53 -040013628 on which the component is built to run (the system that
13629 hosts the component).
13630 For most recipes, this sysroot is the one in which that
13631 recipe's
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013632 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013633 task copies files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013634 Exceptions include <filename>-native</filename> recipes,
13635 where the <filename>do_populate_sysroot</filename> task
13636 instead uses
13637 <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
13638 Depending on the type of recipe and the build target,
13639 <filename>STAGING_DIR_HOST</filename> can have the
13640 following values:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013641 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013642 <listitem><para>
13643 For recipes building for the target machine, the
13644 value is
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013645 "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
13646 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013647 <listitem><para>
13648 For native recipes building for the build host, the
13649 value is empty given the assumption that when
13650 building for the build host, the build host's own
13651 directories should be used.
13652 <note>
13653 <para><filename>-native</filename> recipes are
13654 not installed into host paths like such as
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013655 <filename>/usr</filename>.
13656 Rather, these recipes are installed into
13657 <filename>STAGING_DIR_NATIVE</filename>.
13658 When compiling <filename>-native</filename>
13659 recipes, standard build environment variables
13660 such as
13661 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
13662 and
13663 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
13664 are set up so that both host paths and
13665 <filename>STAGING_DIR_NATIVE</filename> are
13666 searched for libraries and headers using, for
13667 example, GCC's <filename>-isystem</filename>
13668 option.</para>
13669
Brad Bishop316dfdd2018-06-25 12:45:53 -040013670 <para>Thus, the emphasis is that the
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013671 <filename>STAGING_DIR*</filename> variables
13672 should be viewed as input variables by tasks
13673 such as
13674 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
13675 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
13676 and
13677 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
13678 Having the real system root correspond to
13679 <filename>STAGING_DIR_HOST</filename> makes
13680 conceptual sense for
13681 <filename>-native</filename> recipes, as
13682 they make use of host headers and libraries.
13683 </para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013684 </note>
Brad Bishop6e60e8b2018-02-01 10:27:11 -050013685 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013686 </itemizedlist>
13687 </para>
13688 </glossdef>
13689 </glossentry>
13690
13691 <glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
13692 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013693 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 -050013694 </info>
13695 <glossdef>
13696 <para role="glossdeffirst">
13697<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013698 Specifies the path to the sysroot directory used when
13699 building components that run on the build host itself.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013700 </para>
13701 </glossdef>
13702 </glossentry>
13703
13704 <glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
13705 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013706 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 -050013707 </info>
13708 <glossdef>
13709 <para role="glossdeffirst">
13710<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013711 Specifies the path to the sysroot used for the system for
13712 which the component generates code.
13713 For components that do not generate code, which is the
13714 majority, <filename>STAGING_DIR_TARGET</filename> is set
13715 to match
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013716 <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
13717 </para>
13718
13719 <para>
13720 Some recipes build binaries that can run on the target
13721 system but those binaries in turn generate code for
13722 another different system (e.g. cross-canadian recipes).
13723 Using terminology from GNU, the primary system is referred
13724 to as the "HOST" and the secondary, or different, system is
13725 referred to as the "TARGET".
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013726 Thus, the binaries run on the "HOST" system
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013727 and generate binaries for the "TARGET" system.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013728 The <filename>STAGING_DIR_HOST</filename> variable points
13729 to the sysroot used for the "HOST" system, while
13730 <filename>STAGING_DIR_TARGET</filename>
13731 points to the sysroot used for the "TARGET" system.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013732 </para>
13733 </glossdef>
13734 </glossentry>
13735
13736 <glossentry id='var-STAGING_ETCDIR_NATIVE'><glossterm>STAGING_ETCDIR_NATIVE</glossterm>
13737 <info>
13738 STAGING_ETCDIR_NATIVE[doc] = "Specifies the path to the /etc subdirectory of the sysroot directory for the build host."
13739 </info>
13740 <glossdef>
13741 <para role="glossdeffirst">
13742<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13743 Specifies the path to the <filename>/etc</filename>
13744 subdirectory of the sysroot directory for the
13745 build host.
13746 </para>
13747 </glossdef>
13748 </glossentry>
13749
13750 <glossentry id='var-STAGING_EXECPREFIXDIR'><glossterm>STAGING_EXECPREFIXDIR</glossterm>
13751 <info>
13752 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)."
13753 </info>
13754 <glossdef>
13755 <para role="glossdeffirst">
13756<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13757 Specifies the path to the <filename>/usr</filename>
13758 subdirectory of the sysroot directory for the target
13759 for which the current recipe is being built
13760 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13761 </para>
13762 </glossdef>
13763 </glossentry>
13764
13765 <glossentry id='var-STAGING_INCDIR'><glossterm>STAGING_INCDIR</glossterm>
13766 <info>
13767 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)."
13768 </info>
13769 <glossdef>
13770 <para role="glossdeffirst">
13771<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13772 Specifies the path to the
13773 <filename>/usr/include</filename> subdirectory of the
13774 sysroot directory for the target for which the current
13775 recipe being built
13776 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13777 </para>
13778 </glossdef>
13779 </glossentry>
13780
13781 <glossentry id='var-STAGING_INCDIR_NATIVE'><glossterm>STAGING_INCDIR_NATIVE</glossterm>
13782 <info>
13783 STAGING_INCDIR_NATIVE[doc] = "Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host."
13784 </info>
13785 <glossdef>
13786 <para role="glossdeffirst">
13787<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13788 Specifies the path to the <filename>/usr/include</filename>
13789 subdirectory of the sysroot directory for the build host.
13790 </para>
13791 </glossdef>
13792 </glossentry>
13793
Patrick Williamsf1e5d692016-03-30 15:21:19 -050013794 <glossentry id='var-STAGING_KERNEL_BUILDDIR'><glossterm>STAGING_KERNEL_BUILDDIR</glossterm>
13795 <info>
13796 STAGING_KERNEL_BUILDDIR[doc] = "Points to the directory containing the kernel build artifacts."
13797 </info>
13798 <glossdef>
13799 <para role="glossdeffirst">
13800<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13801 Points to the directory containing the kernel build
13802 artifacts.
13803 Recipes building software that needs to access kernel
13804 build artifacts
13805 (e.g. <filename>systemtap-uprobes</filename>) can look in
13806 the directory specified with the
13807 <filename>STAGING_KERNEL_BUILDDIR</filename> variable to
13808 find these artifacts after the kernel has been built.
13809 </para>
13810 </glossdef>
13811 </glossentry>
13812
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013813 <glossentry id='var-STAGING_KERNEL_DIR'><glossterm>STAGING_KERNEL_DIR</glossterm>
13814 <info>
13815 STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
13816 </info>
13817 <glossdef>
13818 <para role="glossdeffirst">
13819<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13820 The directory with kernel headers that are required to build out-of-tree
13821 modules.
13822 </para>
13823 </glossdef>
13824 </glossentry>
13825
13826 <glossentry id='var-STAGING_LIBDIR'><glossterm>STAGING_LIBDIR</glossterm>
13827 <info>
13828 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)."
13829 </info>
13830 <glossdef>
13831 <para role="glossdeffirst">
13832<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13833 Specifies the path to the <filename>/usr/lib</filename>
13834 subdirectory of the sysroot directory for the target for
13835 which the current recipe is being built
13836 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>).
13837 </para>
13838 </glossdef>
13839 </glossentry>
13840
13841 <glossentry id='var-STAGING_LIBDIR_NATIVE'><glossterm>STAGING_LIBDIR_NATIVE</glossterm>
13842 <info>
13843 STAGING_LIBDIR_NATIVE[doc] = "Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host."
13844 </info>
13845 <glossdef>
13846 <para role="glossdeffirst">
13847<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13848 Specifies the path to the <filename>/usr/lib</filename>
13849 subdirectory of the sysroot directory for the build host.
13850 </para>
13851 </glossdef>
13852 </glossentry>
13853
13854 <glossentry id='var-STAMP'><glossterm>STAMP</glossterm>
13855 <info>
13856 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."
13857 </info>
13858 <glossdef>
13859 <para role="glossdeffirst">
13860<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13861 Specifies the base path used to create recipe stamp files.
13862 The path to an actual stamp file is constructed by evaluating this
13863 string and then appending additional information.
13864 Currently, the default assignment for <filename>STAMP</filename>
13865 as set in the <filename>meta/conf/bitbake.conf</filename> file
13866 is:
13867 <literallayout class='monospaced'>
13868 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
13869 </literallayout>
13870 </para>
13871
13872 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013873 For information on how BitBake uses stamp files to determine
13874 if a task should be rerun, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040013875 "<ulink url='&YOCTO_DOCS_OM_URL;#stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</ulink>"
13876 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060013877 </para>
13878
13879 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013880 See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
13881 <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
13882 <link linkend='var-PN'><filename>PN</filename></link>,
13883 <link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>,
13884 <link linkend='var-PV'><filename>PV</filename></link>, and
13885 <link linkend='var-PR'><filename>PR</filename></link> for related variable
13886 information.
13887 </para>
13888 </glossdef>
13889 </glossentry>
13890
13891 <glossentry id='var-STAMPS_DIR'><glossterm>STAMPS_DIR</glossterm>
13892 <info>
13893 STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
13894 </info>
13895 <glossdef>
13896 <para role="glossdeffirst">
13897<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13898 Specifies the base directory in which the OpenEmbedded
13899 build system places stamps.
13900 The default directory is
13901 <filename>${TMPDIR}/stamps</filename>.
13902 </para>
13903 </glossdef>
13904 </glossentry>
13905
13906 <glossentry id='var-STRIP'><glossterm>STRIP</glossterm>
13907 <info>
13908 STRIP[doc] = "Minimal command and arguments to run 'strip' (strip symbols)."
13909 </info>
13910 <glossdef>
13911 <para role="glossdeffirst">
13912<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13913 The minimal command and arguments to run
13914 <filename>strip</filename>, which is used to strip
13915 symbols.
13916 </para>
13917 </glossdef>
13918 </glossentry>
13919
13920 <glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
13921 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013922 SUMMARY[doc] = "The short (80 characters or less) summary of the binary package for packaging systems such as opkg, rpm, or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013923 </info>
13924 <glossdef>
13925 <para role="glossdeffirst">
13926<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13927 The short (72 characters or less) summary of the binary package for packaging
Brad Bishop316dfdd2018-06-25 12:45:53 -040013928 systems such as <filename>opkg</filename>, <filename>rpm</filename>, or
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013929 <filename>dpkg</filename>.
13930 By default, <filename>SUMMARY</filename> is used to define
13931 the <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>
13932 variable if <filename>DESCRIPTION</filename> is not set
13933 in the recipe.
13934 </para>
13935 </glossdef>
13936 </glossentry>
13937
13938 <glossentry id='var-SVNDIR'><glossterm>SVNDIR</glossterm>
13939 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040013940 SVNDIR[doc] = "The directory where Subversion checkouts are stored."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013941 </info>
13942 <glossdef>
13943 <para role="glossdeffirst">
13944<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13945 The directory in which files checked out of a Subversion
13946 system are stored.
13947 </para>
13948 </glossdef>
13949 </glossentry>
13950
13951 <glossentry id='var-SYSLINUX_DEFAULT_CONSOLE'><glossterm>SYSLINUX_DEFAULT_CONSOLE</glossterm>
13952 <info>
13953 SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
13954 </info>
13955 <glossdef>
13956 <para role="glossdeffirst">
13957<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13958 Specifies the kernel boot default console.
13959 If you want to use a console other than the default,
13960 set this variable in your recipe as follows where "X" is
13961 the console number you want to use:
13962 <literallayout class='monospaced'>
13963 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
13964 </literallayout>
13965 </para>
13966
13967 <para>
13968 The
13969 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
13970 class initially sets this variable to null but then checks
13971 for a value later.
13972 </para>
13973 </glossdef>
13974 </glossentry>
13975
13976 <glossentry id='var-SYSLINUX_OPTS'><glossterm>SYSLINUX_OPTS</glossterm>
13977 <info>
13978 SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
13979 </info>
13980 <glossdef>
13981 <para role="glossdeffirst">
13982<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
13983 Lists additional options to add to the syslinux file.
13984 You need to set this variable in your recipe.
13985 If you want to list multiple options, separate the options
13986 with a semicolon character (<filename>;</filename>).
13987 </para>
13988
13989 <para>
13990 The
13991 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
13992 class uses this variable to create a set of options.
13993 </para>
13994 </glossdef>
13995 </glossentry>
13996
13997 <glossentry id='var-SYSLINUX_SERIAL'><glossterm>SYSLINUX_SERIAL</glossterm>
13998 <info>
13999 SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
14000 </info>
14001 <glossdef>
14002 <para role="glossdeffirst">
14003<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14004 Specifies the alternate serial port or turns it off.
14005 To turn off serial, set this variable to an empty string
14006 in your recipe.
14007 The variable's default value is set in the
14008 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014009 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014010 <literallayout class='monospaced'>
14011 SYSLINUX_SERIAL ?= "0 115200"
14012 </literallayout>
14013 </para>
14014
14015 <para>
14016 The class checks for and uses the variable as needed.
14017 </para>
14018 </glossdef>
14019 </glossentry>
14020
14021 <glossentry id='var-SYSLINUX_SPLASH'><glossterm>SYSLINUX_SPLASH</glossterm>
14022 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014023 SYSLINUX_SPLASH[doc] = "An .LSS file used as the background for the VGA boot menu when you use the boot menu."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014024 </info>
14025 <glossdef>
14026 <para role="glossdeffirst">
14027<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14028 An <filename>.LSS</filename> file used as the background
Brad Bishop316dfdd2018-06-25 12:45:53 -040014029 for the VGA boot menu when you use the boot menu.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014030 You need to set this variable in your recipe.
14031 </para>
14032
14033 <para>
14034 The
14035 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
14036 class checks for this variable and if found, the
14037 OpenEmbedded build system installs the splash screen.
14038 </para>
14039 </glossdef>
14040 </glossentry>
14041
14042 <glossentry id='var-SYSLINUX_SERIAL_TTY'><glossterm>SYSLINUX_SERIAL_TTY</glossterm>
14043 <info>
14044 SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
14045 </info>
14046 <glossdef>
14047 <para role="glossdeffirst">
14048<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14049 Specifies the alternate console=tty... kernel boot argument.
14050 The variable's default value is set in the
14051 <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014052 class as follows:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014053 <literallayout class='monospaced'>
14054 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
14055 </literallayout>
14056 </para>
14057
14058 <para>
14059 The class checks for and uses the variable as needed.
14060 </para>
14061 </glossdef>
14062 </glossentry>
14063
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014064 <glossentry id='var-SYSROOT_DESTDIR'><glossterm>SYSROOT_DESTDIR</glossterm>
14065 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014066 SYSROOT_DESTDIR[doc] = "Points to the temporary work directory (default ${WORKDIR}/sysroot-destdir) where the files populated into the sysroot are assembled during the do_populate_sysroot task."
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014067 </info>
14068 <glossdef>
14069 <para role="glossdeffirst">
14070<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14071 Points to the temporary directory under the work directory
14072 (default
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014073 "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
Brad Bishop316dfdd2018-06-25 12:45:53 -040014074 where the files populated into the sysroot are assembled
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014075 during the
14076 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14077 task.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050014078 </para>
14079 </glossdef>
14080 </glossentry>
14081
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014082 <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
14083 <info>
14084 SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
14085 </info>
14086 <glossdef>
14087 <para role="glossdeffirst">
14088<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14089 Directories that are staged into the sysroot by the
14090 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14091 task.
14092 By default, the following directories are staged:
14093 <literallayout class='monospaced'>
14094 SYSROOT_DIRS = " \
14095 ${includedir} \
14096 ${libdir} \
14097 ${base_libdir} \
14098 ${nonarch_base_libdir} \
14099 ${datadir} \
14100 "
14101 </literallayout>
14102 </para>
14103 </glossdef>
14104 </glossentry>
14105
14106 <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
14107 <info>
14108 SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
14109 </info>
14110 <glossdef>
14111 <para role="glossdeffirst">
14112<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14113 Directories that are not staged into the sysroot by the
14114 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14115 task.
14116 You can use this variable to exclude certain subdirectories
14117 of directories listed in
14118 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
14119 from staging.
14120 By default, the following directories are not staged:
14121 <literallayout class='monospaced'>
14122 SYSROOT_DIRS_BLACKLIST = " \
14123 ${mandir} \
14124 ${docdir} \
14125 ${infodir} \
14126 ${datadir}/locale \
14127 ${datadir}/applications \
14128 ${datadir}/fonts \
14129 ${datadir}/pixmaps \
14130 "
14131 </literallayout>
14132 </para>
14133 </glossdef>
14134 </glossentry>
14135
14136 <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
14137 <info>
14138 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."
14139 </info>
14140 <glossdef>
14141 <para role="glossdeffirst">
14142<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14143 Extra directories staged into the sysroot by the
14144 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
14145 task for <filename>-native</filename> recipes, in addition
14146 to those specified in
14147 <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
14148 By default, the following extra directories are staged:
14149 <literallayout class='monospaced'>
14150 SYSROOT_DIRS_NATIVE = " \
14151 ${bindir} \
14152 ${sbindir} \
14153 ${base_bindir} \
14154 ${base_sbindir} \
14155 ${libexecdir} \
14156 ${sysconfdir} \
14157 ${localstatedir} \
14158 "
14159 </literallayout>
14160 <note>
14161 Programs built by <filename>-native</filename> recipes
14162 run directly from the sysroot
14163 (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
14164 which is why additional directories containing program
14165 executables and supporting files need to be staged.
14166 </note>
14167 </para>
14168 </glossdef>
14169 </glossentry>
14170
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014171 <glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
14172 <info>
14173 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."
14174 </info>
14175 <glossdef>
14176 <para role="glossdeffirst">
14177<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14178 A list of functions to execute after files are staged into
14179 the sysroot.
14180 These functions are usually used to apply additional
14181 processing on the staged files, or to stage additional
14182 files.
14183 </para>
14184 </glossdef>
14185 </glossentry>
14186
14187 <glossentry id='var-SYSTEMD_AUTO_ENABLE'><glossterm>SYSTEMD_AUTO_ENABLE</glossterm>
14188 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014189 SYSTEMD_AUTO_ENABLE[doc] = "For recipes that inherit the systemd class, this variable specifies whether the specified service in SYSTEMD_SERVICE should start automatically or not."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014190 </info>
14191 <glossdef>
14192 <para role="glossdeffirst">
14193<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14194 When inheriting the
14195 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014196 class, this variable specifies whether the specified service
14197 in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014198 <link linkend='var-SYSTEMD_SERVICE'><filename>SYSTEMD_SERVICE</filename></link>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014199 should start automatically or not.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014200 By default, the service is enabled to automatically start
14201 at boot time.
14202 The default setting is in the
14203 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14204 class as follows:
14205 <literallayout class='monospaced'>
14206 SYSTEMD_AUTO_ENABLE ??= "enable"
14207 </literallayout>
14208 </para>
14209
14210 <para>
14211 You can disable the service by setting the variable to
14212 "disable".
14213 </para>
14214 </glossdef>
14215 </glossentry>
14216
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014217 <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
14218 <info>
14219 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."
14220 </info>
14221 <glossdef>
14222 <para role="glossdeffirst">
14223<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14224 When
14225 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14226 is set to "systemd-boot", the
14227 <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
14228 configuration file that should be used.
14229 By default, the
14230 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14231 class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
14232 follows:
14233 <literallayout class='monospaced'>
14234 SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
14235 </literallayout>
14236 </para>
14237
14238 <para>
14239 For information on Systemd-boot, see the
14240 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14241 </para>
14242 </glossdef>
14243 </glossentry>
14244
14245 <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
14246 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014247 SYSTEMD_BOOT_ENTRIES[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_ENTRIES variable specifies a list of entry files (*.conf) to install that contain one boot entry per file."
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014248 </info>
14249 <glossdef>
14250 <para role="glossdeffirst">
14251<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14252 When
14253 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14254 is set to "systemd-boot", the
14255 <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
14256 a list of entry files
Brad Bishop316dfdd2018-06-25 12:45:53 -040014257 (<filename>*.conf</filename>) to install that contain
14258 one boot entry per file.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014259 By default, the
14260 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14261 class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
14262 follows:
14263 <literallayout class='monospaced'>
14264 SYSTEMD_BOOT_ENTRIES ?= ""
14265 </literallayout>
14266 </para>
14267
14268 <para>
14269 For information on Systemd-boot, see the
14270 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14271 </para>
14272 </glossdef>
14273 </glossentry>
14274
14275 <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
14276 <info>
14277 SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
14278 </info>
14279 <glossdef>
14280 <para role="glossdeffirst">
14281<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14282 When
14283 <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
14284 is set to "systemd-boot", the
14285 <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
14286 the boot menu timeout in seconds.
14287 By default, the
14288 <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
14289 class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
14290 follows:
14291 <literallayout class='monospaced'>
14292 SYSTEMD_BOOT_TIMEOUT ?= "10"
14293 </literallayout>
14294 </para>
14295
14296 <para>
14297 For information on Systemd-boot, see the
14298 <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
14299 </para>
14300 </glossdef>
14301 </glossentry>
14302
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014303 <glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
14304 <info>
14305 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."
14306 </info>
14307 <glossdef>
14308 <para role="glossdeffirst">
14309<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14310 When inheriting the
14311 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14312 class, this variable locates the systemd unit files when
14313 they are not found in the main recipe's package.
14314 By default, the
14315 <filename>SYSTEMD_PACKAGES</filename> variable is set
14316 such that the systemd unit files are assumed to reside in
14317 the recipes main package:
14318 <literallayout class='monospaced'>
14319 SYSTEMD_PACKAGES ?= "${PN}"
14320 </literallayout>
14321 </para>
14322
14323 <para>
14324 If these unit files are not in this recipe's main
14325 package, you need to use
14326 <filename>SYSTEMD_PACKAGES</filename> to list the package
14327 or packages in which the build system can find the systemd
14328 unit files.
14329 </para>
14330 </glossdef>
14331 </glossentry>
14332
14333 <glossentry id='var-SYSTEMD_SERVICE'><glossterm>SYSTEMD_SERVICE</glossterm>
14334 <info>
14335 SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
14336 </info>
14337 <glossdef>
14338 <para role="glossdeffirst">
14339<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14340 When inheriting the
14341 <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
14342 class, this variable specifies the systemd service name for
14343 a package.
14344 </para>
14345
14346 <para>
14347 When you specify this file in your recipe, use a package
14348 name override to indicate the package to which the value
14349 applies.
14350 Here is an example from the connman recipe:
14351 <literallayout class='monospaced'>
14352 SYSTEMD_SERVICE_${PN} = "connman.service"
14353 </literallayout>
14354 </para>
14355 </glossdef>
14356 </glossentry>
14357
14358 <glossentry id='var-SYSVINIT_ENABLED_GETTYS'><glossterm>SYSVINIT_ENABLED_GETTYS</glossterm>
14359 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014360 SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should run a getty, the default is '1'."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014361 </info>
14362 <glossdef>
14363 <para role="glossdeffirst">
14364<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14365 When using
14366 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
14367 specifies a space-separated list of the virtual terminals
Brad Bishop316dfdd2018-06-25 12:45:53 -040014368 that should run a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014369 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
14370 (allowing login), assuming
14371 <link linkend='var-USE_VT'><filename>USE_VT</filename></link>
14372 is not set to "0".
14373 </para>
14374
14375 <para>
14376 The default value for
14377 <filename>SYSVINIT_ENABLED_GETTYS</filename> is "1"
14378 (i.e. only run a getty on the first virtual terminal).
14379 </para>
14380 </glossdef>
14381 </glossentry>
14382
14383 </glossdiv>
14384
14385 <glossdiv id='var-glossary-t'><title>T</title>
14386
14387 <glossentry id='var-T'><glossterm>T</glossterm>
14388 <info>
14389 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."
14390 </info>
14391 <glossdef>
14392 <para role="glossdeffirst">
14393<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14394 This variable points to a directory were BitBake places
14395 temporary files, which consist mostly of task logs and
14396 scripts, when building a particular recipe.
14397 The variable is typically set as follows:
14398 <literallayout class='monospaced'>
14399 T = "${WORKDIR}/temp"
14400 </literallayout>
14401 </para>
14402
14403 <para>
14404 The <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
14405 is the directory into which BitBake unpacks and builds the
14406 recipe.
14407 The default <filename>bitbake.conf</filename> file sets this variable.</para>
14408 <para>The <filename>T</filename> variable is not to be confused with
14409 the <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> variable,
14410 which points to the root of the directory tree where BitBake
14411 places the output of an entire build.
14412 </para>
14413 </glossdef>
14414 </glossentry>
14415
14416 <glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
14417 <info>
14418 TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
14419 </info>
14420 <glossdef>
14421 <para role="glossdeffirst">
14422<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14423 The target machine's architecture.
14424 The OpenEmbedded build system supports many
14425 architectures.
14426 Here is an example list of architectures supported.
14427 This list is by no means complete as the architecture
14428 is configurable:
14429 <literallayout class='monospaced'>
14430 arm
14431 i586
14432 x86_64
14433 powerpc
14434 powerpc64
14435 mips
14436 mipsel
14437 </literallayout>
14438 </para>
14439
14440 <para>
14441 For additional information on machine architectures, see
14442 the
14443 <link linkend='var-TUNE_ARCH'><filename>TUNE_ARCH</filename></link>
14444 variable.
14445 </para>
14446 </glossdef>
14447 </glossentry>
14448
14449 <glossentry id='var-TARGET_AS_ARCH'><glossterm>TARGET_AS_ARCH</glossterm>
14450 <info>
14451 TARGET_AS_ARCH[doc] = "Specifies architecture-specific assembler flags for the target system."
14452 </info>
14453 <glossdef>
14454 <para role="glossdeffirst">
14455<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14456 Specifies architecture-specific assembler flags for the
14457 target system.
14458 <filename>TARGET_AS_ARCH</filename> is initialized from
14459 <link linkend='var-TUNE_ASARGS'><filename>TUNE_ASARGS</filename></link>
14460 by default in the BitBake configuration file
14461 (<filename>meta/conf/bitbake.conf</filename>):
14462 <literallayout class='monospaced'>
14463 TARGET_AS_ARCH = "${TUNE_ASARGS}"
14464 </literallayout>
14465 </para>
14466 </glossdef>
14467 </glossentry>
14468
14469 <glossentry id='var-TARGET_CC_ARCH'><glossterm>TARGET_CC_ARCH</glossterm>
14470 <info>
14471 TARGET_CC_ARCH[doc] = "Specifies architecture-specific C compiler flags for the target system."
14472 </info>
14473 <glossdef>
14474 <para role="glossdeffirst">
14475<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14476 Specifies architecture-specific C compiler flags for the
14477 target system.
14478 <filename>TARGET_CC_ARCH</filename> is initialized from
14479 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14480 by default.
14481 <note>
14482 It is a common workaround to append
14483 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14484 to <filename>TARGET_CC_ARCH</filename>
14485 in recipes that build software for the target that
14486 would not otherwise respect the exported
14487 <filename>LDFLAGS</filename> variable.
14488 </note>
14489 </para>
14490 </glossdef>
14491 </glossentry>
14492
14493 <glossentry id='var-TARGET_CC_KERNEL_ARCH'><glossterm>TARGET_CC_KERNEL_ARCH</glossterm>
14494 <info>
14495 TARGET_CC_KERNEL_ARCH[doc] = "This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune."
14496 </info>
14497 <glossdef>
14498 <para role="glossdeffirst">
14499<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14500 This is a specific kernel compiler flag for a CPU or
14501 Application Binary Interface (ABI) tune.
14502 The flag is used rarely and only for cases where a
14503 userspace
14504 <link linkend='var-TUNE_CCARGS'><filename>TUNE_CCARGS</filename></link>
14505 is not compatible with the kernel compilation.
14506 The <filename>TARGET_CC_KERNEL_ARCH</filename> variable
14507 allows the kernel (and associated modules) to use a
14508 different configuration.
14509 See the
14510 <filename>meta/conf/machine/include/arm/feature-arm-thumb.inc</filename>
14511 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014512 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014513 for an example.
14514 </para>
14515 </glossdef>
14516 </glossentry>
14517
14518 <glossentry id='var-TARGET_CFLAGS'><glossterm>TARGET_CFLAGS</glossterm>
14519 <info>
14520 TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
14521 </info>
14522 <glossdef>
14523 <para role="glossdeffirst">
14524<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14525 Specifies the flags to pass to the C compiler when building
14526 for the target.
14527 When building in the target context,
14528 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
14529 is set to the value of this variable by default.
14530 </para>
14531
14532 <para>
14533 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014534 the <filename>CFLAGS</filename> variable in the environment
14535 to the <filename>TARGET_CFLAGS</filename> value so that
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014536 executables built using the SDK also have the flags
14537 applied.
14538 </para>
14539 </glossdef>
14540 </glossentry>
14541
14542 <glossentry id='var-TARGET_CPPFLAGS'><glossterm>TARGET_CPPFLAGS</glossterm>
14543 <info>
14544 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."
14545 </info>
14546 <glossdef>
14547 <para role="glossdeffirst">
14548<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14549 Specifies the flags to pass to the C pre-processor
14550 (i.e. to both the C and the C++ compilers) when building
14551 for the target.
14552 When building in the target context,
14553 <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
14554 is set to the value of this variable by default.
14555 </para>
14556
14557 <para>
14558 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014559 the <filename>CPPFLAGS</filename> variable in the
14560 environment to the <filename>TARGET_CPPFLAGS</filename>
14561 value so that executables built using the SDK also have
14562 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014563 </para>
14564 </glossdef>
14565 </glossentry>
14566
14567 <glossentry id='var-TARGET_CXXFLAGS'><glossterm>TARGET_CXXFLAGS</glossterm>
14568 <info>
14569 TARGET_CXXFLAGS[doc] = "Specifies the flags to pass to the C++ compiler when building for the target."
14570 </info>
14571 <glossdef>
14572 <para role="glossdeffirst">
14573<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14574 Specifies the flags to pass to the C++ compiler when
14575 building for the target.
14576 When building in the target context,
14577 <link linkend='var-CXXFLAGS'><filename>CXXFLAGS</filename></link>
14578 is set to the value of this variable by default.
14579 </para>
14580
14581 <para>
14582 Additionally, the SDK's environment setup script sets
Brad Bishop316dfdd2018-06-25 12:45:53 -040014583 the <filename>CXXFLAGS</filename> variable in the
14584 environment to the <filename>TARGET_CXXFLAGS</filename>
14585 value so that executables built using the SDK also have
14586 the flags applied.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014587 </para>
14588 </glossdef>
14589 </glossentry>
14590
14591 <glossentry id='var-TARGET_FPU'><glossterm>TARGET_FPU</glossterm>
14592 <info>
14593 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."
14594 </info>
14595 <glossdef>
14596 <para role="glossdeffirst">
14597<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14598 Specifies the method for handling FPU code.
14599 For FPU-less targets, which include most ARM CPUs, the variable must be
14600 set to "soft".
14601 If not, the kernel emulation gets used, which results in a performance penalty.
14602 </para>
14603 </glossdef>
14604 </glossentry>
14605
14606 <glossentry id='var-TARGET_LD_ARCH'><glossterm>TARGET_LD_ARCH</glossterm>
14607 <info>
14608 TARGET_LD_ARCH[doc] = "Specifies architecture-specific linker flags for the target system."
14609 </info>
14610 <glossdef>
14611 <para role="glossdeffirst">
14612<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14613 Specifies architecture-specific linker flags for the
14614 target system.
14615 <filename>TARGET_LD_ARCH</filename> is initialized from
14616 <link linkend='var-TUNE_LDARGS'><filename>TUNE_LDARGS</filename></link>
14617 by default in the BitBake configuration file
14618 (<filename>meta/conf/bitbake.conf</filename>):
14619 <literallayout class='monospaced'>
14620 TARGET_LD_ARCH = "${TUNE_LDARGS}"
14621 </literallayout>
14622 </para>
14623 </glossdef>
14624 </glossentry>
14625
14626 <glossentry id='var-TARGET_LDFLAGS'><glossterm>TARGET_LDFLAGS</glossterm>
14627 <info>
14628 TARGET_LDFLAGS[doc] = "Specifies the flags to pass to the linker when building for the target."
14629 </info>
14630 <glossdef>
14631 <para role="glossdeffirst">
14632<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14633 Specifies the flags to pass to the linker when building
14634 for the target.
14635 When building in the target context,
14636 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14637 is set to the value of this variable by default.
14638 </para>
14639
14640 <para>
14641 Additionally, the SDK's environment setup script sets
14642 the
14643 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
14644 variable in the environment to the
14645 <filename>TARGET_LDFLAGS</filename> value so that
14646 executables built using the SDK also have the flags
14647 applied.
14648 </para>
14649 </glossdef>
14650 </glossentry>
14651
14652 <glossentry id='var-TARGET_OS'><glossterm>TARGET_OS</glossterm>
14653 <info>
14654 TARGET_OS[doc] = "Specifies the target's operating system."
14655 </info>
14656 <glossdef>
14657 <para role="glossdeffirst">
14658<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14659 Specifies the target's operating system.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014660 The variable can be set to "linux" for glibc-based systems
14661 (GNU C Library) and to "linux-musl" for musl libc.
14662 For ARM/EABI targets, "linux-gnueabi" and "linux-musleabi"
14663 possible values exist.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014664 </para>
14665 </glossdef>
14666 </glossentry>
14667
14668 <glossentry id='var-TARGET_PREFIX'><glossterm>TARGET_PREFIX</glossterm>
14669 <info>
14670 TARGET_PREFIX[doc] = "The prefix used for the toolchain binary target tools."
14671 </info>
14672 <glossdef>
14673 <para role="glossdeffirst">
14674<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14675 Specifies the prefix used for the toolchain binary target
14676 tools.
14677 </para>
14678
14679 <para>
14680 Depending on the type of recipe and the build target,
14681 <filename>TARGET_PREFIX</filename> is set as follows:
14682 <itemizedlist>
14683 <listitem><para>
14684 For recipes building for the target machine,
14685 the value is
14686 "${<link linkend='var-TARGET_SYS'>TARGET_SYS</link>}-".
14687 </para></listitem>
14688 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014689 For native recipes, the build system sets the
14690 variable to the value of
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014691 <filename>BUILD_PREFIX</filename>.
14692 </para></listitem>
14693 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014694 For native SDK recipes
14695 (<filename>nativesdk</filename>), the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014696 build system sets the variable to the value of
14697 <filename>SDK_PREFIX</filename>.
14698 </para></listitem>
14699 </itemizedlist>
14700 </para>
14701 </glossdef>
14702 </glossentry>
14703
14704 <glossentry id='var-TARGET_SYS'><glossterm>TARGET_SYS</glossterm>
14705 <info>
14706 TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
14707 </info>
14708 <glossdef>
14709 <para role="glossdeffirst">
14710<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14711 Specifies the system, including the architecture and the
14712 operating system, for which the build is occurring in
14713 the context of the current recipe.
14714 </para>
14715
14716 <para>
14717 The OpenEmbedded build system automatically sets this
14718 variable based on
14719 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
14720 <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>,
14721 and
14722 <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>
14723 variables.
14724 <note>
14725 You do not need to set the
14726 <filename>TARGET_SYS</filename> variable yourself.
14727 </note>
14728 </para>
14729
14730 <para>
14731 Consider these two examples:
14732 <itemizedlist>
14733 <listitem><para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050014734 Given a native recipe on a 32-bit, x86 machine
14735 running Linux, the value is "i686-linux".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014736 </para></listitem>
14737 <listitem><para>
14738 Given a recipe being built for a little-endian,
14739 MIPS target running Linux, the value might be
14740 "mipsel-linux".
14741 </para></listitem>
14742 </itemizedlist>
14743 </para>
14744 </glossdef>
14745 </glossentry>
14746
14747 <glossentry id='var-TARGET_VENDOR'><glossterm>TARGET_VENDOR</glossterm>
14748 <info>
14749 TARGET_VENDOR[doc] = "The name of the target vendor."
14750 </info>
14751 <glossdef>
14752 <para role="glossdeffirst">
14753<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14754 Specifies the name of the target vendor.
14755 </para>
14756 </glossdef>
14757 </glossentry>
14758
14759 <glossentry id='var-TCLIBCAPPEND'><glossterm>TCLIBCAPPEND</glossterm>
14760 <info>
14761 TCLIBCAPPEND[doc] = "Specifies a suffix appended to TMPDIR that identifies the libc variant for the build."
14762 </info>
14763 <glossdef>
14764 <para role="glossdeffirst">
14765<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14766 Specifies a suffix to be appended onto the
14767 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
14768 value.
14769 The suffix identifies the <filename>libc</filename> variant
14770 for building.
14771 When you are building for multiple variants with the same
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014772 <link linkend='build-directory'>Build Directory</link>,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014773 this mechanism ensures that output for different
14774 <filename>libc</filename> variants is kept separate to
14775 avoid potential conflicts.
14776 </para>
14777
14778 <para>
14779 In the <filename>defaultsetup.conf</filename> file, the
14780 default value of <filename>TCLIBCAPPEND</filename> is
14781 "-${TCLIBC}".
14782 However, distros such as poky, which normally only support
14783 one <filename>libc</filename> variant, set
14784 <filename>TCLIBCAPPEND</filename> to "" in their distro
14785 configuration file resulting in no suffix being applied.
14786 </para>
14787 </glossdef>
14788 </glossentry>
14789
14790 <glossentry id='var-TCLIBC'><glossterm>TCLIBC</glossterm>
14791 <info>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014792 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 -050014793 </info>
14794 <glossdef>
14795 <para role="glossdeffirst">
14796<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14797 Specifies the GNU standard C library (<filename>libc</filename>)
14798 variant to use during the build process.
14799 This variable replaces <filename>POKYLIBC</filename>, which is no longer
14800 supported.
14801 </para>
14802
14803 <para>
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014804 You can select "glibc" or "musl".
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014805 </para>
14806 </glossdef>
14807 </glossentry>
14808
14809 <glossentry id='var-TCMODE'><glossterm>TCMODE</glossterm>
14810 <info>
14811 TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
14812 </info>
14813 <glossdef>
14814 <para role="glossdeffirst">
14815<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14816 Specifies the toolchain selector.
14817 <filename>TCMODE</filename> controls the characteristics
14818 of the generated packages and images by telling the
14819 OpenEmbedded build system which toolchain profile to use.
14820 By default, the OpenEmbedded build system builds its own
14821 internal toolchain.
14822 The variable's default value is "default", which uses
14823 that internal toolchain.
14824 <note>
14825 If <filename>TCMODE</filename> is set to a value
14826 other than "default", then it is your responsibility
14827 to ensure that the toolchain is compatible with the
14828 default toolchain.
14829 Using older or newer versions of these components
14830 might cause build problems.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014831 See the Release Notes for the Yocto Project release
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014832 for the specific components with which the toolchain
14833 must be compatible.
Brad Bishop316dfdd2018-06-25 12:45:53 -040014834 To access the Release Notes, go to the
14835 <ulink url='&YOCTO_HOME_URL;/software-overview/downloads/'>Downloads</ulink>
14836 page on the Yocto Project website and click on the
14837 "RELEASE INFORMATION" link for the appropriate
14838 release.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014839 </note>
14840 </para>
14841
14842 <para>
14843 The <filename>TCMODE</filename> variable is similar to
14844 <link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>,
14845 which controls the variant of the GNU standard C library
14846 (<filename>libc</filename>) used during the build process:
Brad Bishop37a0e4d2017-12-04 01:01:44 -050014847 <filename>glibc</filename> or <filename>musl</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014848 </para>
14849
14850 <para>
14851 With additional layers, it is possible to use a pre-compiled
14852 external toolchain.
14853 One example is the Sourcery G++ Toolchain.
14854 The support for this toolchain resides in the separate
14855 <trademark class='registered'>Mentor Graphics</trademark>
14856 <filename>meta-sourcery</filename> layer at
14857 <ulink url='http://github.com/MentorEmbedded/meta-sourcery/'></ulink>.
14858 </para>
14859
14860 <para>
14861 The layer's <filename>README</filename> file contains
14862 information on how to use the Sourcery G++ Toolchain as
14863 an external toolchain.
14864 In summary, you must be sure to add the layer to your
14865 <filename>bblayers.conf</filename> file in front of the
14866 <filename>meta</filename> layer and then set the
14867 <filename>EXTERNAL_TOOLCHAIN</filename>
14868 variable in your <filename>local.conf</filename> file
14869 to the location in which you installed the toolchain.
14870 </para>
14871
14872 <para>
14873 The fundamentals used for this example apply to any
14874 external toolchain.
14875 You can use <filename>meta-sourcery</filename> as a
14876 template for adding support for other external toolchains.
14877 </para>
14878 </glossdef>
14879 </glossentry>
14880
14881 <glossentry id='var-TEST_EXPORT_DIR'><glossterm>TEST_EXPORT_DIR</glossterm>
14882 <info>
14883 TEST_EXPORT_DIR[doc] = "The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY variable is set to "1"."
14884 </info>
14885 <glossdef>
14886 <para role="glossdeffirst">
14887<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14888 The location the OpenEmbedded build system uses to export
14889 tests when the
14890 <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
14891 variable is set to "1".
14892 </para>
14893
14894 <para>
14895 The <filename>TEST_EXPORT_DIR</filename> variable defaults
14896 to <filename>"${TMPDIR}/testimage/${PN}"</filename>.
14897 </para>
14898 </glossdef>
14899 </glossentry>
14900
14901 <glossentry id='var-TEST_EXPORT_ONLY'><glossterm>TEST_EXPORT_ONLY</glossterm>
14902 <info>
14903 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."
14904 </info>
14905 <glossdef>
14906 <para role="glossdeffirst">
14907<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14908 Specifies to export the tests only.
14909 Set this variable to "1" if you do not want to run the
14910 tests but you want them to be exported in a manner that
14911 you to run them outside of the build system.
14912 </para>
14913 </glossdef>
14914 </glossentry>
14915
14916 <glossentry id='var-TEST_IMAGE'><glossterm>TEST_IMAGE</glossterm>
14917 <info>
14918 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."
14919 </info>
14920 <glossdef>
14921 <para role="glossdeffirst">
14922<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14923 Automatically runs the series of automated tests for
14924 images when an image is successfully built.
14925 </para>
14926
14927 <para>
14928 These tests are written in Python making use of the
14929 <filename>unittest</filename> module, and the majority of
14930 them run commands on the target system over
14931 <filename>ssh</filename>.
14932 You can set this variable to "1" in your
14933 <filename>local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014934 <link linkend='build-directory'>Build Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014935 to have the OpenEmbedded build system automatically run
14936 these tests after an image successfully builds:
14937 <literallayout class='monospaced'>
14938 TEST_IMAGE = "1"
14939 </literallayout>
14940 For more information on enabling, running, and writing
14941 these tests, see the
14942 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014943 section in the Yocto Project Development Tasks Manual and
14944 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050014945 "<link linkend='ref-classes-testimage*'><filename>testimage*.bbclass</filename></link>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014946 section.
14947 </para>
14948 </glossdef>
14949 </glossentry>
14950
14951 <glossentry id='var-TEST_LOG_DIR'><glossterm>TEST_LOG_DIR</glossterm>
14952 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040014953 TEST_LOG_DIR[doc] = "Holds the SSH log and the boot log for QEMU machines. The TEST_LOG_DIR variable defaults to "${WORKDIR}/testimage"."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014954 </info>
14955 <glossdef>
14956 <para role="glossdeffirst">
14957<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14958 Holds the SSH log and the boot log for QEMU machines.
14959 The <filename>TEST_LOG_DIR</filename> variable defaults
14960 to <filename>"${WORKDIR}/testimage"</filename>.
14961 <note>
14962 Actual test results reside in the task log
14963 (<filename>log.do_testimage</filename>), which is in
14964 the <filename>${WORKDIR}/temp/</filename> directory.
14965 </note>
14966 </para>
14967 </glossdef>
14968 </glossentry>
14969
14970 <glossentry id='var-TEST_POWERCONTROL_CMD'><glossterm>TEST_POWERCONTROL_CMD</glossterm>
14971 <info>
14972 TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
14973 </info>
14974 <glossdef>
14975 <para role="glossdeffirst">
14976<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14977 For automated hardware testing, specifies the command to
14978 use to control the power of the target machine under test.
14979 Typically, this command would point to a script that
14980 performs the appropriate action (e.g. interacting
14981 with a web-enabled power strip).
14982 The specified command should expect to receive as the last
14983 argument "off", "on" or "cycle" specifying to power off,
14984 on, or cycle (power off and then power on) the device,
14985 respectively.
14986 </para>
14987 </glossdef>
14988 </glossentry>
14989
14990 <glossentry id='var-TEST_POWERCONTROL_EXTRA_ARGS'><glossterm>TEST_POWERCONTROL_EXTRA_ARGS</glossterm>
14991 <info>
14992 TEST_POWERCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
14993 </info>
14994 <glossdef>
14995 <para role="glossdeffirst">
14996<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
14997 For automated hardware testing, specifies additional
14998 arguments to pass through to the command specified in
14999 <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
15000 Setting <filename>TEST_POWERCONTROL_EXTRA_ARGS</filename>
15001 is optional.
15002 You can use it if you wish, for example, to separate the
15003 machine-specific and non-machine-specific parts of the
15004 arguments.
15005 </para>
15006 </glossdef>
15007 </glossentry>
15008
15009 <glossentry id='var-TEST_QEMUBOOT_TIMEOUT'><glossterm>TEST_QEMUBOOT_TIMEOUT</glossterm>
15010 <info>
15011 TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
15012 </info>
15013 <glossdef>
15014 <para role="glossdeffirst">
15015<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15016 The time in seconds allowed for an image to boot before
15017 automated runtime tests begin to run against an
15018 image.
15019 The default timeout period to allow the boot process to
15020 reach the login prompt is 500 seconds.
15021 You can specify a different value in the
15022 <filename>local.conf</filename> file.
15023 </para>
15024
15025 <para>
15026 For more information on testing images, see the
15027 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015028 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015029 </para>
15030 </glossdef>
15031 </glossentry>
15032
15033 <glossentry id='var-TEST_SERIALCONTROL_CMD'><glossterm>TEST_SERIALCONTROL_CMD</glossterm>
15034 <info>
15035 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."
15036 </info>
15037 <glossdef>
15038 <para role="glossdeffirst">
15039<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15040 For automated hardware testing, specifies the command
15041 to use to connect to the serial console of the target
15042 machine under test.
15043 This command simply needs to connect to the serial console
15044 and forward that connection to standard input and output
15045 as any normal terminal program does.
15046 </para>
15047
15048 <para>
15049 For example, to use the Picocom terminal program on
15050 serial device <filename>/dev/ttyUSB0</filename> at
15051 115200bps, you would set the variable as follows:
15052 <literallayout class='monospaced'>
15053 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
15054 </literallayout>
15055 </para>
15056 </glossdef>
15057 </glossentry>
15058
15059 <glossentry id='var-TEST_SERIALCONTROL_EXTRA_ARGS'><glossterm>TEST_SERIALCONTROL_EXTRA_ARGS</glossterm>
15060 <info>
15061 TEST_SERIALCONTROL_EXTRA_ARGS[doc] = "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD."
15062 </info>
15063 <glossdef>
15064 <para role="glossdeffirst">
15065<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15066 For automated hardware testing, specifies additional
15067 arguments to pass through to the command specified in
15068 <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
15069 Setting <filename>TEST_SERIALCONTROL_EXTRA_ARGS</filename>
15070 is optional.
15071 You can use it if you wish, for example, to separate the
15072 machine-specific and non-machine-specific parts of the
15073 command.
15074 </para>
15075 </glossdef>
15076 </glossentry>
15077
15078 <glossentry id='var-TEST_SERVER_IP'><glossterm>TEST_SERVER_IP</glossterm>
15079 <info>
15080 TEST_SERVER_IP[doc] = "The IP address of the build machine (host machine). This IP address is usually automatically detected."
15081 </info>
15082 <glossdef>
15083 <para role="glossdeffirst">
15084<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15085 The IP address of the build machine (host machine).
15086 This IP address is usually automatically detected.
15087 However, if detection fails, this variable needs to be set
15088 to the IP address of the build machine (i.e. where
15089 the build is taking place).
15090 <note>
15091 The <filename>TEST_SERVER_IP</filename> variable
15092 is only used for a small number of tests such as
Brad Bishop6e60e8b2018-02-01 10:27:11 -050015093 the "dnf" test suite, which needs to download
15094 packages from
15095 <filename>WORKDIR/oe-rootfs-repo</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015096 </note>
15097 </para>
15098 </glossdef>
15099 </glossentry>
15100
15101 <glossentry id='var-TEST_TARGET'><glossterm>TEST_TARGET</glossterm>
15102 <info>
15103 TEST_TARGET[doc] = "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine."
15104 </info>
15105 <glossdef>
15106 <para role="glossdeffirst">
15107<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15108 Specifies the target controller to use when running tests
15109 against a test image.
15110 The default controller to use is "qemu":
15111 <literallayout class='monospaced'>
15112 TEST_TARGET = "qemu"
15113 </literallayout>
15114 </para>
15115
15116 <para>
15117 A target controller is a class that defines how an
15118 image gets deployed on a target and how a target is started.
15119 A layer can extend the controllers by adding a module
15120 in the layer's <filename>/lib/oeqa/controllers</filename>
15121 directory and by inheriting the
15122 <filename>BaseTarget</filename> class, which is an abstract
15123 class that cannot be used as a value of
15124 <filename>TEST_TARGET</filename>.
15125 </para>
15126
15127 <para>
15128 You can provide the following arguments with
15129 <filename>TEST_TARGET</filename>:
15130 <itemizedlist>
15131 <listitem><para><emphasis>"qemu" and "QemuTarget":</emphasis>
15132 Boots a QEMU image and runs the tests.
15133 See the
15134 "<ulink url='&YOCTO_DOCS_DEV_URL;#qemu-image-enabling-tests'>Enabling Runtime Tests on QEMU</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015135 section in the Yocto Project Development Tasks
15136 Manual for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015137 </para></listitem>
15138 <listitem><para><emphasis>"simpleremote" and "SimpleRemoteTarget":</emphasis>
15139 Runs the tests on target hardware that is already
15140 up and running.
15141 The hardware can be on the network or it can be
15142 a device running an image on QEMU.
15143 You must also set
15144 <link linkend='var-TEST_TARGET_IP'><filename>TEST_TARGET_IP</filename></link>
15145 when you use "simpleremote" or "SimpleRemoteTarget".
15146 <note>
15147 This argument is defined in
15148 <filename>meta/lib/oeqa/targetcontrol.py</filename>.
15149 The small caps names are kept for compatibility
15150 reasons.
15151 </note>
15152 </para></listitem>
15153 <listitem><para><emphasis>"GummibootTarget":</emphasis>
15154 Automatically deploys and runs tests on an
15155 EFI-enabled machine that has a master image
15156 installed.
15157 <note>
15158 This argument is defined in
15159 <filename>meta/lib/oeqa/controllers/masterimage.py</filename>.
15160 </note>
15161 </para></listitem>
15162 </itemizedlist>
15163 </para>
15164
15165 <para>
15166 For information on running tests on hardware, see the
15167 "<ulink url='&YOCTO_DOCS_DEV_URL;#hardware-image-enabling-tests'>Enabling Runtime Tests on Hardware</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015168 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015169 </para>
15170 </glossdef>
15171 </glossentry>
15172
15173 <glossentry id='var-TEST_TARGET_IP'><glossterm>TEST_TARGET_IP</glossterm>
15174 <info>
15175 TEST_TARGET_IP[doc] = "The IP address of your hardware under test."
15176 </info>
15177 <glossdef>
15178 <para role="glossdeffirst">
15179<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15180 The IP address of your hardware under test.
15181 The <filename>TEST_TARGET_IP</filename> variable has no
15182 effect when
15183 <link linkend='var-TEST_TARGET'><filename>TEST_TARGET</filename></link>
15184 is set to "qemu".
15185 </para>
15186
15187 <para>
15188 When you specify the IP address, you can also include a
15189 port.
15190 Here is an example:
15191 <literallayout class='monospaced'>
15192 TEST_TARGET_IP = "192.168.1.4:2201"
15193 </literallayout>
15194 Specifying a port is useful when SSH is started on a
15195 non-standard port or in cases when your hardware under test
15196 is behind a firewall or network that is not directly
15197 accessible from your host and you need to do port address
15198 translation.
15199 </para>
15200 </glossdef>
15201 </glossentry>
15202
15203 <glossentry id='var-TEST_SUITES'><glossterm>TEST_SUITES</glossterm>
15204 <info>
15205 TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
15206 </info>
15207 <glossdef>
15208 <para role="glossdeffirst">
15209<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15210 An ordered list of tests (modules) to run against
15211 an image when performing automated runtime testing.
15212 </para>
15213
15214 <para>
15215 The OpenEmbedded build system provides a core set of tests
15216 that can be used against images.
15217 <note>
15218 Currently, there is only support for running these tests
15219 under QEMU.
15220 </note>
15221 Tests include <filename>ping</filename>,
15222 <filename>ssh</filename>, <filename>df</filename> among
15223 others.
15224 You can add your own tests to the list of tests by
15225 appending <filename>TEST_SUITES</filename> as follows:
15226 <literallayout class='monospaced'>
15227 TEST_SUITES_append = " <replaceable>mytest</replaceable>"
15228 </literallayout>
15229 Alternatively, you can provide the "auto" option to
15230 have all applicable tests run against the image.
15231 <literallayout class='monospaced'>
15232 TEST_SUITES_append = " auto"
15233 </literallayout>
15234 Using this option causes the build system to automatically
15235 run tests that are applicable to the image.
15236 Tests that are not applicable are skipped.
15237 </para>
15238
15239 <para>
15240 The order in which tests are run is important.
15241 Tests that depend on another test must appear later in the
15242 list than the test on which they depend.
15243 For example, if you append the list of tests with two
15244 tests (<filename>test_A</filename> and
15245 <filename>test_B</filename>) where
15246 <filename>test_B</filename> is dependent on
15247 <filename>test_A</filename>, then you must order the tests
15248 as follows:
15249 <literallayout class='monospaced'>
15250 TEST_SUITES = " test_A test_B"
15251 </literallayout>
15252 </para>
15253
15254 <para>
15255 For more information on testing images, see the
15256 "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015257 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015258 </para>
15259 </glossdef>
15260 </glossentry>
15261
15262 <glossentry id='var-THISDIR'><glossterm>THISDIR</glossterm>
15263 <info>
15264 THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
15265 </info>
15266 <glossdef>
15267 <para role="glossdeffirst">
15268<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15269 The directory in which the file BitBake is currently
15270 parsing is located.
15271 Do not manually set this variable.
15272 </para>
15273 </glossdef>
15274 </glossentry>
15275
15276 <glossentry id='var-TIME'><glossterm>TIME</glossterm>
15277 <info>
15278 TIME[doc] = "The time the build was started using HMS format."
15279 </info>
15280 <glossdef>
15281 <para role="glossdeffirst">
15282<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15283 The time the build was started.
15284 Times appear using the hour, minute, and second (HMS)
15285 format (e.g. "140159" for one minute and fifty-nine
15286 seconds past 1400 hours).
15287 </para>
15288 </glossdef>
15289 </glossentry>
15290
15291 <glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
15292 <info>
15293 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."
15294 </info>
15295 <glossdef>
15296 <para role="glossdeffirst">
15297<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15298 This variable is the base directory the OpenEmbedded
15299 build system uses for all build output and intermediate
15300 files (other than the shared state cache).
15301 By default, the <filename>TMPDIR</filename> variable points
15302 to <filename>tmp</filename> within the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015303 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015304 </para>
15305
15306 <para>
15307 If you want to establish this directory in a location other
15308 than the default, you can uncomment and edit the following
15309 statement in the
15310 <filename>conf/local.conf</filename> file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015311 <link linkend='source-directory'>Source Directory</link>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015312 <literallayout class='monospaced'>
15313 #TMPDIR = "${TOPDIR}/tmp"
15314 </literallayout>
15315 An example use for this scenario is to set
15316 <filename>TMPDIR</filename> to a local disk, which does
15317 not use NFS, while having the Build Directory use NFS.
15318 </para>
15319
15320 <para>
15321 The filesystem used by <filename>TMPDIR</filename> must
15322 have standard filesystem semantics (i.e. mixed-case files
15323 are unique, POSIX file locking, and persistent inodes).
15324 Due to various issues with NFS and bugs in some
15325 implementations, NFS does not meet this minimum
15326 requirement.
15327 Consequently, <filename>TMPDIR</filename> cannot be on
15328 NFS.
15329 </para>
15330 </glossdef>
15331 </glossentry>
15332
15333 <glossentry id='var-TOOLCHAIN_HOST_TASK'><glossterm>TOOLCHAIN_HOST_TASK</glossterm>
15334 <info>
15335 TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
15336 </info>
15337 <glossdef>
15338 <para role="glossdeffirst">
15339<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15340 This variable lists packages the OpenEmbedded build system
15341 uses when building an SDK, which contains a
15342 cross-development environment.
15343 The packages specified by this variable are part of the
15344 toolchain set that runs on the
15345 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
15346 and each package should usually have the prefix
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015347 <filename>nativesdk-</filename>.
15348 For example, consider the following command when
15349 building an SDK:
15350 <literallayout class='monospaced'>
15351 $ bitbake -c populate_sdk <replaceable>imagename</replaceable>
15352 </literallayout>
15353 In this case, a default list of packages is set in this
15354 variable, but you can add additional packages to the list.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015355 See the
15356 "<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 -050015357 section in the Yocto Project Application Development and
15358 the Extensible Software Development Kit (eSDK) manual
15359 for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015360 </para>
15361
15362 <para>
15363 For background information on cross-development toolchains
15364 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015365 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15366 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015367 For information on setting up a cross-development
15368 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015369 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15370 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015371 </para>
15372 </glossdef>
15373 </glossentry>
15374
15375 <glossentry id='var-TOOLCHAIN_OUTPUTNAME'><glossterm>TOOLCHAIN_OUTPUTNAME</glossterm>
15376 <info>
15377 TOOLCHAIN_OUTPUTNAME[doc] = "Defines the name used for the toolchain output."
15378 </info>
15379 <glossdef>
15380 <para role="glossdeffirst">
15381<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15382 This variable defines the name used for the toolchain
15383 output.
15384 The
15385 <link linkend='ref-classes-populate-sdk-*'><filename>populate_sdk_base</filename></link>
15386 class sets the
15387 <filename>TOOLCHAIN_OUTPUTNAME</filename> variable as
15388 follows:
15389 <literallayout class='monospaced'>
15390 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
15391 </literallayout>
15392 See the
15393 <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
15394 and
15395 <link linkend='var-SDK_VERSION'><filename>SDK_VERSION</filename></link>
15396 variables for additional information.
15397 </para>
15398 </glossdef>
15399 </glossentry>
15400
15401 <glossentry id='var-TOOLCHAIN_TARGET_TASK'><glossterm>TOOLCHAIN_TARGET_TASK</glossterm>
15402 <info>
15403 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."
15404 </info>
15405 <glossdef>
15406 <para role="glossdeffirst">
15407<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15408 This variable lists packages the OpenEmbedded build system
15409 uses when it creates the target part of an SDK
15410 (i.e. the part built for the target hardware), which
15411 includes libraries and headers.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050015412 Use this variable to add individual packages to the
15413 part of the SDK that runs on the target.
15414 See the
15415 "<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 -050015416 section in the Yocto Project Application Development and
15417 the Extensible Software Development Kit (eSDK) manual for
15418 more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015419 </para>
15420
15421 <para>
15422 For background information on cross-development toolchains
15423 in the Yocto Project development environment, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040015424 "<ulink url='&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
15425 section in the Yocto Project Overview and Concepts Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015426 For information on setting up a cross-development
15427 environment, see the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015428 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
15429 manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015430 </para>
15431 </glossdef>
15432 </glossentry>
15433
15434 <glossentry id='var-TOPDIR'><glossterm>TOPDIR</glossterm>
15435 <info>
15436 TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
15437 </info>
15438 <glossdef>
15439 <para role="glossdeffirst">
15440<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15441 The top-level
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015442 <link linkend='build-directory'>Build Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015443 BitBake automatically sets this variable when you
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015444 initialize your build environment using
15445 <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015446 </para>
15447 </glossdef>
15448 </glossentry>
15449
15450 <glossentry id='var-TRANSLATED_TARGET_ARCH'><glossterm>TRANSLATED_TARGET_ARCH</glossterm>
15451 <info>
15452 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."
15453 </info>
15454 <glossdef>
15455 <para role="glossdeffirst">
15456<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15457 A sanitized version of
15458 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
15459 This variable is used where the architecture is needed in
15460 a value where underscores are not allowed, for example
15461 within package filenames.
15462 In this case, dash characters replace any underscore
Brad Bishop316dfdd2018-06-25 12:45:53 -040015463 characters used in <filename>TARGET_ARCH</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015464 </para>
15465
15466 <para>
15467 Do not edit this variable.
15468 </para>
15469 </glossdef>
15470 </glossentry>
15471
15472 <glossentry id='var-TUNE_ARCH'><glossterm>TUNE_ARCH</glossterm>
15473 <info>
15474 TUNE_ARCH[doc] = "The GNU canonical architecture for a specific architecture (i.e. arm, armeb, mips, mips64, and so forth)."
15475 </info>
15476 <glossdef>
15477 <para role="glossdeffirst">
15478<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15479 The GNU canonical architecture for a specific architecture
15480 (i.e. <filename>arm</filename>,
15481 <filename>armeb</filename>,
15482 <filename>mips</filename>,
15483 <filename>mips64</filename>, and so forth).
15484 BitBake uses this value to setup configuration.
15485 </para>
15486
15487 <para>
15488 <filename>TUNE_ARCH</filename> definitions are specific to
15489 a given architecture.
15490 The definitions can be a single static definition, or
15491 can be dynamically adjusted.
15492 You can see details for a given CPU family by looking at
15493 the architecture's <filename>README</filename> file.
15494 For example, the
15495 <filename>meta/conf/machine/include/mips/README</filename>
15496 file in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015497 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015498 provides information for <filename>TUNE_ARCH</filename>
15499 specific to the <filename>mips</filename> architecture.
15500 </para>
15501
15502 <para>
15503 <filename>TUNE_ARCH</filename> is tied closely to
15504 <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>,
15505 which defines the target machine's architecture.
15506 The BitBake configuration file
15507 (<filename>meta/conf/bitbake.conf</filename>) sets
15508 <filename>TARGET_ARCH</filename> as follows:
15509 <literallayout class='monospaced'>
15510 TARGET_ARCH = "${TUNE_ARCH}"
15511 </literallayout>
15512 </para>
15513
15514 <para>
15515 The following list, which is by no means complete since
15516 architectures are configurable, shows supported machine
15517 architectures:
15518 <literallayout class='monospaced'>
15519 arm
15520 i586
15521 x86_64
15522 powerpc
15523 powerpc64
15524 mips
15525 mipsel
15526 </literallayout>
15527 </para>
15528 </glossdef>
15529 </glossentry>
15530
15531 <glossentry id='var-TUNE_ASARGS'><glossterm>TUNE_ASARGS</glossterm>
15532 <info>
15533 TUNE_ASARGS[doc] = "Specifies architecture-specific assembler flags for the target system."
15534 </info>
15535 <glossdef>
15536 <para role="glossdeffirst">
15537<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15538 Specifies architecture-specific assembler flags for
15539 the target system.
15540 The set of flags is based on the selected tune features.
15541 <filename>TUNE_ASARGS</filename> is set using
15542 the tune include files, which are typically under
15543 <filename>meta/conf/machine/include/</filename> and are
15544 influenced through
15545 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15546 For example, the
15547 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15548 file defines the flags for the x86 architecture as follows:
15549 <literallayout class='monospaced'>
15550 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
15551 </literallayout>
15552 <note>
15553 Board Support Packages (BSPs) select the tune.
15554 The selected tune, in turn, affects the tune variables
15555 themselves (i.e. the tune can supply its own
15556 set of flags).
15557 </note>
15558 </para>
15559 </glossdef>
15560 </glossentry>
15561
15562 <glossentry id='var-TUNE_CCARGS'><glossterm>TUNE_CCARGS</glossterm>
15563 <info>
15564 TUNE_CCARGS[doc] = "Specifies architecture-specific C compiler flags for the target system."
15565 </info>
15566 <glossdef>
15567 <para role="glossdeffirst">
15568<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15569 Specifies architecture-specific C compiler flags for
15570 the target system.
15571 The set of flags is based on the selected tune features.
15572 <filename>TUNE_CCARGS</filename> is set using
15573 the tune include files, which are typically under
15574 <filename>meta/conf/machine/include/</filename> and are
15575 influenced through
15576 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15577 <note>
15578 Board Support Packages (BSPs) select the tune.
15579 The selected tune, in turn, affects the tune variables
15580 themselves (i.e. the tune can supply its own
15581 set of flags).
15582 </note>
15583 </para>
15584 </glossdef>
15585 </glossentry>
15586
15587 <glossentry id='var-TUNE_LDARGS'><glossterm>TUNE_LDARGS</glossterm>
15588 <info>
15589 TUNE_LDARGS[doc] = "Specifies architecture-specific linker flags for the target system."
15590 </info>
15591 <glossdef>
15592 <para role="glossdeffirst">
15593<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15594 Specifies architecture-specific linker flags for
15595 the target system.
15596 The set of flags is based on the selected tune features.
15597 <filename>TUNE_LDARGS</filename> is set using
15598 the tune include files, which are typically under
15599 <filename>meta/conf/machine/include/</filename> and are
15600 influenced through
15601 <link linkend='var-TUNE_FEATURES'><filename>TUNE_FEATURES</filename></link>.
15602 For example, the
15603 <filename>meta/conf/machine/include/x86/arch-x86.inc</filename>
15604 file defines the flags for the x86 architecture as follows:
15605 <literallayout class='monospaced'>
15606 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
15607 </literallayout>
15608 <note>
15609 Board Support Packages (BSPs) select the tune.
15610 The selected tune, in turn, affects the tune variables
15611 themselves (i.e. the tune can supply its own
15612 set of flags).
15613 </note>
15614 </para>
15615 </glossdef>
15616 </glossentry>
15617
15618 <glossentry id='var-TUNE_FEATURES'><glossterm>TUNE_FEATURES</glossterm>
15619 <info>
15620 TUNE_FEATURES[doc] = "Features used to "tune" a compiler for optimal use given a specific processor."
15621 </info>
15622 <glossdef>
15623 <para role="glossdeffirst">
15624<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15625 Features used to "tune" a compiler for optimal use
15626 given a specific processor.
15627 The features are defined within the tune files and allow
15628 arguments (i.e. <filename>TUNE_*ARGS</filename>) to be
15629 dynamically generated based on the features.
15630 </para>
15631
15632 <para>
15633 The OpenEmbedded build system verifies the features
15634 to be sure they are not conflicting and that they are
15635 supported.
15636 </para>
15637
15638 <para>
15639 The BitBake configuration file
15640 (<filename>meta/conf/bitbake.conf</filename>) defines
15641 <filename>TUNE_FEATURES</filename> as follows:
15642 <literallayout class='monospaced'>
15643 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
15644 </literallayout>
15645 See the
15646 <link linkend='var-DEFAULTTUNE'><filename>DEFAULTTUNE</filename></link>
15647 variable for more information.
15648 </para>
15649 </glossdef>
15650 </glossentry>
15651
15652 <glossentry id='var-TUNE_PKGARCH'><glossterm>TUNE_PKGARCH</glossterm>
15653 <info>
15654 TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
15655 </info>
15656 <glossdef>
15657 <para role="glossdeffirst">
15658<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15659 The package architecture understood by the packaging
15660 system to define the architecture, ABI, and tuning of
15661 output packages.
15662 The specific tune is defined using the "_tune" override
15663 as follows:
15664 <literallayout class='monospaced'>
15665 TUNE_PKGARCH_tune-<replaceable>tune</replaceable> = "<replaceable>tune</replaceable>"
15666 </literallayout>
15667 </para>
15668
15669 <para>
15670 These tune-specific package architectures are defined in
15671 the machine include files.
15672 Here is an example of the "core2-32" tuning as used
15673 in the
15674 <filename>meta/conf/machine/include/tune-core2.inc</filename>
15675 file:
15676 <literallayout class='monospaced'>
15677 TUNE_PKGARCH_tune-core2-32 = "core2-32"
15678 </literallayout>
15679 </para>
15680 </glossdef>
15681 </glossentry>
15682
15683 <glossentry id='var-TUNEABI'><glossterm>TUNEABI</glossterm>
15684 <info>
15685 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."
15686 </info>
15687 <glossdef>
15688 <para role="glossdeffirst">
15689<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15690 An underlying Application Binary Interface (ABI) used by
15691 a particular tuning in a given toolchain layer.
15692 Providers that use prebuilt libraries can use the
15693 <filename>TUNEABI</filename>,
15694 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15695 and
15696 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15697 variables to check compatibility of tunings against their
15698 selection of libraries.
15699 </para>
15700
15701 <para>
15702 If <filename>TUNEABI</filename> is undefined, then every
15703 tuning is allowed.
15704 See the
15705 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15706 class to see how the variable is used.
15707 </para>
15708 </glossdef>
15709 </glossentry>
15710
15711 <glossentry id='var-TUNEABI_OVERRIDE'><glossterm>TUNEABI_OVERRIDE</glossterm>
15712 <info>
15713 TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
15714 </info>
15715 <glossdef>
15716 <para role="glossdeffirst">
15717<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15718 If set, the OpenEmbedded system ignores the
15719 <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
15720 variable.
15721 Providers that use prebuilt libraries can use the
15722 <filename>TUNEABI_OVERRIDE</filename>,
15723 <filename>TUNEABI_WHITELIST</filename>,
15724 and
15725 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15726 variables to check compatibility of a tuning against their
15727 selection of libraries.
15728 </para>
15729
15730 <para>
15731 See the
15732 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15733 class to see how the variable is used.
15734 </para>
15735 </glossdef>
15736 </glossentry>
15737
15738 <glossentry id='var-TUNEABI_WHITELIST'><glossterm>TUNEABI_WHITELIST</glossterm>
15739 <info>
15740 TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
15741 </info>
15742 <glossdef>
15743 <para role="glossdeffirst">
15744<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15745 A whitelist of permissible
15746 <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
15747 values.
15748 If <filename>TUNEABI_WHITELIST</filename> is not set,
15749 all tunes are allowed.
15750 Providers that use prebuilt libraries can use the
15751 <filename>TUNEABI_WHITELIST</filename>,
15752 <link linkend='var-TUNEABI_OVERRIDE'><filename>TUNEABI_OVERRIDE</filename></link>,
15753 and <filename>TUNEABI</filename> variables to check
15754 compatibility of a tuning against their selection of
15755 libraries.
15756 </para>
15757
15758 <para>
15759 See the
15760 <link linkend='ref-classes-sanity'><filename>sanity</filename></link>
15761 class to see how the variable is used.
15762 </para>
15763 </glossdef>
15764 </glossentry>
15765
15766 <glossentry id='var-TUNECONFLICTS'><glossterm>TUNECONFLICTS[<replaceable>feature</replaceable>]</glossterm>
15767 <info>
15768 TUNECONFLICTS[doc] = "Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with specified feature."
15769 </info>
15770 <glossdef>
15771 <para role="glossdeffirst">
15772<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15773 Specifies CPU or Application Binary Interface (ABI)
15774 tuning features that conflict with <replaceable>feature</replaceable>.
15775 </para>
15776
15777 <para>
15778 Known tuning conflicts are specified in the machine include
15779 files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015780 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015781 Here is an example from the
15782 <filename>meta/conf/machine/include/mips/arch-mips.inc</filename>
15783 include file that lists the "o32" and "n64" features as
15784 conflicting with the "n32" feature:
15785 <literallayout class='monospaced'>
15786 TUNECONFLICTS[n32] = "o32 n64"
15787 </literallayout>
15788 </para>
15789 </glossdef>
15790 </glossentry>
15791
15792 <glossentry id='var-TUNEVALID'><glossterm>TUNEVALID[<replaceable>feature</replaceable>]</glossterm>
15793 <info>
15794 TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
15795 </info>
15796 <glossdef>
15797 <para role="glossdeffirst">
15798<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15799 Specifies a valid CPU or Application Binary Interface (ABI)
15800 tuning feature.
15801 The specified feature is stored as a flag.
15802 Valid features are specified in the machine include files
15803 (e.g. <filename>meta/conf/machine/include/arm/arch-arm.inc</filename>).
15804 Here is an example from that file:
15805 <literallayout class='monospaced'>
15806 TUNEVALID[bigendian] = "Enable big-endian mode."
15807 </literallayout>
15808 </para>
15809
15810 <para>
15811 See the machine include files in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015812 <link linkend='source-directory'>Source Directory</link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015813 for these features.
15814 </para>
15815 </glossdef>
15816 </glossentry>
15817
15818 </glossdiv>
15819
15820 <glossdiv id='var-glossary-u'><title>U</title>
15821
15822 <glossentry id='var-UBOOT_CONFIG'><glossterm>UBOOT_CONFIG</glossterm>
15823 <info>
15824 UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
15825 </info>
15826 <glossdef>
15827 <para role="glossdeffirst">
15828<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15829 Configures the
15830 <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
15831 and can also define
15832 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
15833 for individual cases.
15834 </para>
15835
15836 <para>
15837 Following is an example from the
15838 <filename>meta-fsl-arm</filename> layer.
15839 <literallayout class='monospaced'>
15840 UBOOT_CONFIG ??= "sd"
15841 UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
15842 UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
15843 UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
15844 UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
15845 </literallayout>
15846 In this example, "sd" is selected as the configuration
15847 of the possible four for the
15848 <filename>UBOOT_MACHINE</filename>.
15849 The "sd" configuration defines "mx6qsabreauto_config"
15850 as the value for <filename>UBOOT_MACHINE</filename>, while
15851 the "sdcard" specifies the
15852 <filename>IMAGE_FSTYPES</filename> to use for the U-boot
15853 image.
15854 </para>
15855
15856 <para>
15857 For more information on how the
15858 <filename>UBOOT_CONFIG</filename> is handled, see the
15859 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/uboot-config.bbclass'><filename>uboot-config</filename></ulink>
15860 class.
15861 </para>
15862 </glossdef>
15863 </glossentry>
15864
15865 <glossentry id='var-UBOOT_ENTRYPOINT'><glossterm>UBOOT_ENTRYPOINT</glossterm>
15866 <info>
15867 UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
15868 </info>
15869 <glossdef>
15870 <para role="glossdeffirst">
15871<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15872 Specifies the entry point for the U-Boot image.
15873 During U-Boot image creation, the
15874 <filename>UBOOT_ENTRYPOINT</filename> variable is passed
15875 as a command-line parameter to the
15876 <filename>uboot-mkimage</filename> utility.
15877 </para>
15878 </glossdef>
15879 </glossentry>
15880
15881 <glossentry id='var-UBOOT_LOADADDRESS'><glossterm>UBOOT_LOADADDRESS</glossterm>
15882 <info>
15883 UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
15884 </info>
15885 <glossdef>
15886 <para role="glossdeffirst">
15887<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15888 Specifies the load address for the U-Boot image.
15889 During U-Boot image creation, the
15890 <filename>UBOOT_LOADADDRESS</filename> variable is passed
15891 as a command-line parameter to the
15892 <filename>uboot-mkimage</filename> utility.
15893 </para>
15894 </glossdef>
15895 </glossentry>
15896
15897 <glossentry id='var-UBOOT_LOCALVERSION'><glossterm>UBOOT_LOCALVERSION</glossterm>
15898 <info>
15899 UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
15900 </info>
15901 <glossdef>
15902 <para role="glossdeffirst">
15903<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15904 Appends a string to the name of the local version of the
15905 U-Boot image.
15906 For example, assuming the version of the U-Boot image
15907 built was "2013.10, the full version string reported by
15908 U-Boot would be "2013.10-yocto" given the following
15909 statement:
15910 <literallayout class='monospaced'>
15911 UBOOT_LOCALVERSION = "-yocto"
15912 </literallayout>
15913 </para>
15914 </glossdef>
15915 </glossentry>
15916
15917 <glossentry id='var-UBOOT_MACHINE'><glossterm>UBOOT_MACHINE</glossterm>
15918 <info>
15919 UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
15920 </info>
15921 <glossdef>
15922 <para role="glossdeffirst">
15923<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15924 Specifies the value passed on the
15925 <filename>make</filename> command line when building
15926 a U-Boot image.
15927 The value indicates the target platform configuration.
15928 You typically set this variable from the machine
15929 configuration file (i.e.
15930 <filename>conf/machine/<replaceable>machine_name</replaceable>.conf</filename>).
15931 </para>
15932
15933 <para>
15934 Please see the "Selection of Processor Architecture and
15935 Board Type" section in the U-Boot README for valid values
15936 for this variable.
15937 </para>
15938 </glossdef>
15939 </glossentry>
15940
15941 <glossentry id='var-UBOOT_MAKE_TARGET'><glossterm>UBOOT_MAKE_TARGET</glossterm>
15942 <info>
15943 UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
15944 </info>
15945 <glossdef>
15946 <para role="glossdeffirst">
15947<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15948 Specifies the target called in the
15949 <filename>Makefile</filename>.
15950 The default target is "all".
15951 </para>
15952 </glossdef>
15953 </glossentry>
15954
15955 <glossentry id='var-UBOOT_SUFFIX'><glossterm>UBOOT_SUFFIX</glossterm>
15956 <info>
15957 UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
15958 </info>
15959 <glossdef>
15960 <para role="glossdeffirst">
15961<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15962 Points to the generated U-Boot extension.
15963 For example, <filename>u-boot.sb</filename> has a
15964 <filename>.sb</filename> extension.
15965 </para>
15966
15967 <para>
15968 The default U-Boot extension is
15969 <filename>.bin</filename>
15970 </para>
15971 </glossdef>
15972 </glossentry>
15973
15974 <glossentry id='var-UBOOT_TARGET'><glossterm>UBOOT_TARGET</glossterm>
15975 <info>
15976 UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
15977 </info>
15978 <glossdef>
15979 <para role="glossdeffirst">
15980<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15981 Specifies the target used for building U-Boot.
15982 The target is passed directly as part of the "make" command
15983 (e.g. SPL and AIS).
15984 If you do not specifically set this variable, the
15985 OpenEmbedded build process passes and uses "all" for the
15986 target during the U-Boot building process.
15987 </para>
15988 </glossdef>
15989 </glossentry>
15990
15991 <glossentry id='var-UNKNOWN_CONFIGURE_WHITELIST'><glossterm>UNKNOWN_CONFIGURE_WHITELIST</glossterm>
15992 <info>
15993 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."
15994 </info>
15995 <glossdef>
15996 <para role="glossdeffirst">
15997<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
15998 Specifies a list of options that, if reported by the
15999 configure script as being invalid, should not generate a
16000 warning during the
16001 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
16002 task.
16003 Normally, invalid configure options are simply not passed
16004 to the configure script (e.g. should be removed from
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016005 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
16006 or
16007 <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016008 However, common options, for example, exist that are passed
16009 to all configure scripts at a class level that might not
16010 be valid for some configure scripts.
16011 It follows that no benefit exists in seeing a warning about
16012 these options.
16013 For these cases, the options are added to
16014 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename>.
16015 </para>
16016
16017 <para>
16018 The configure arguments check that uses
16019 <filename>UNKNOWN_CONFIGURE_WHITELIST</filename> is part
16020 of the
16021 <link linkend='ref-classes-insane'><filename>insane</filename></link>
16022 class and is only enabled if the recipe inherits the
16023 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
16024 class.
16025 </para>
16026 </glossdef>
16027 </glossentry>
16028
16029 <glossentry id='var-UPDATERCPN'><glossterm>UPDATERCPN</glossterm>
16030 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016031 UPDATERCPN[doc] = "Specifies the package that contains the initscript that is enabled."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016032 </info>
16033 <glossdef>
16034 <para role="glossdeffirst">
16035<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16036 For recipes inheriting the
16037 <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
16038 class, <filename>UPDATERCPN</filename> specifies
Brad Bishop316dfdd2018-06-25 12:45:53 -040016039 the package that contains the initscript that is
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016040 enabled.
16041 </para>
16042
16043 <para>
16044 The default value is "${PN}".
16045 Given that almost all recipes that install initscripts
16046 package them in the main package for the recipe, you
16047 rarely need to set this variable in individual recipes.
16048 </para>
16049 </glossdef>
16050 </glossentry>
16051
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016052 <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
16053 <info>
16054 UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
16055 </info>
16056 <glossdef>
16057 <para role="glossdeffirst">
16058<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16059 When the
16060 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16061 class is enabled globally, you can perform a per-recipe
16062 check for what the latest upstream source code version is
16063 by calling
16064 <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
16065 If the recipe source code is provided from Git
16066 repositories, the OpenEmbedded build system determines the
16067 latest upstream version by picking the latest tag from the
16068 list of all repository tags.
16069 You can use the
16070 <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
16071 variable to provide a regular expression to filter only the
16072 relevant tags should the default filter not work
16073 correctly.
16074 <literallayout class='monospaced'>
16075 UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
16076 </literallayout>
16077 </para>
16078 </glossdef>
16079 </glossentry>
16080
16081 <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
16082 <info>
16083 UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
16084 </info>
16085 <glossdef>
16086 <para role="glossdeffirst">
16087<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16088 When the
16089 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16090 class is enabled globally, use the
16091 <filename>UPSTREAM_CHECK_REGEX</filename> variable to
16092 specify a different regular expression instead of the
16093 default one when the package checking system is parsing
16094 the page found using
16095 <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
16096 <literallayout class='monospaced'>
16097 UPSTREAM_CHECK_REGEX = "package_regex"
16098 </literallayout>
16099 </para>
16100 </glossdef>
16101 </glossentry>
16102
16103 <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
16104 <info>
16105 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."
16106 </info>
16107 <glossdef>
16108 <para role="glossdeffirst">
16109<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16110 When the
16111 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
16112 class is enabled globally, you can perform a per-recipe
16113 check for what the latest upstream source code version is
16114 by calling <filename>bitbake -c checkpkg</filename>
16115 <replaceable>recipe</replaceable>.
16116 If the source code is provided from tarballs, the latest
16117 version is determined by fetching the directory listing
16118 where the tarball is and attempting to find a later tarball.
16119 When this approach does not work, you can use
16120 <filename>UPSTREAM_CHECK_URI</filename> to
16121 provide a different URI that contains the link to the
16122 latest tarball.
16123 <literallayout class='monospaced'>
16124 UPSTREAM_CHECK_URI = "recipe_url"
16125 </literallayout>
16126 </para>
16127 </glossdef>
16128 </glossentry>
16129
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016130 <glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
16131 <info>
16132 USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
16133 </info>
16134 <glossdef>
16135 <para role="glossdeffirst">
16136<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16137 Determines if <filename>devtmpfs</filename> is used for
16138 <filename>/dev</filename> population.
16139 The default value used for <filename>USE_DEVFS</filename>
16140 is "1" when no value is specifically set.
16141 Typically, you would set <filename>USE_DEVFS</filename>
16142 to "0" for a statically populated <filename>/dev</filename>
16143 directory.
16144 </para>
16145
16146 <para>
16147 See the
16148 "<ulink url='&YOCTO_DOCS_DEV_URL;#selecting-dev-manager'>Selecting a Device Manager</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016149 section in the Yocto Project Development Tasks Manual for
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016150 information on how to use this variable.
16151 </para>
16152 </glossdef>
16153 </glossentry>
16154
16155 <glossentry id='var-USE_VT'><glossterm>USE_VT</glossterm>
16156 <info>
16157 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."
16158 </info>
16159 <glossdef>
16160 <para role="glossdeffirst">
16161<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16162 When using
16163 <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
16164 determines whether or not to run a
16165 <ulink url='http://en.wikipedia.org/wiki/Getty_%28Unix%29'>getty</ulink>
16166 on any virtual terminals in order to enable logging in
16167 through those terminals.
16168 </para>
16169
16170 <para>
16171 The default value used for <filename>USE_VT</filename>
16172 is "1" when no default value is specifically set.
16173 Typically, you would set <filename>USE_VT</filename>
16174 to "0" in the machine configuration file for machines
16175 that do not have a graphical display attached and
16176 therefore do not need virtual terminal functionality.
16177 </para>
16178 </glossdef>
16179 </glossentry>
16180
16181 <glossentry id='var-USER_CLASSES'><glossterm>USER_CLASSES</glossterm>
16182 <info>
16183 USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
16184 </info>
16185 <glossdef>
16186 <para role="glossdeffirst">
16187<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16188 A list of classes to globally inherit.
16189 These classes are used by the OpenEmbedded build system
16190 to enable extra features (e.g.
16191 <filename>buildstats</filename>,
16192 <filename>image-mklibs</filename>, and so forth).
16193 </para>
16194
16195 <para>
16196 The default list is set in your
16197 <filename>local.conf</filename> file:
16198 <literallayout class='monospaced'>
16199 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
16200 </literallayout>
16201 For more information, see
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050016202 <filename>meta-poky/conf/local.conf.sample</filename> in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016203 the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016204 <link linkend='source-directory'>Source Directory</link>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016205 </para>
16206 </glossdef>
16207 </glossentry>
16208
16209 <glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
16210 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016211 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 -050016212 </info>
16213 <glossdef>
16214 <para role="glossdeffirst">
16215<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016216 If set to "error", forces the OpenEmbedded build system to
16217 produce an error if the user identification
16218 (<filename>uid</filename>) and group identification
16219 (<filename>gid</filename>) values are not defined
16220 in <filename>files/passwd</filename>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016221 and <filename>files/group</filename> files.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016222 If set to "warn", a warning will be issued instead.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016223 </para>
16224
16225 <para>
16226 The default behavior for the build system is to dynamically
16227 apply <filename>uid</filename> and
16228 <filename>gid</filename> values.
16229 Consequently, the <filename>USERADD_ERROR_DYNAMIC</filename>
16230 variable is by default not set.
16231 If you plan on using statically assigned
16232 <filename>gid</filename> and <filename>uid</filename>
16233 values, you should set
16234 the <filename>USERADD_ERROR_DYNAMIC</filename> variable in
16235 your <filename>local.conf</filename> file as
16236 follows:
16237 <literallayout class='monospaced'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016238 USERADD_ERROR_DYNAMIC = "error"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016239 </literallayout>
16240 Overriding the default behavior implies you are going to
16241 also take steps to set static <filename>uid</filename> and
16242 <filename>gid</filename> values through use of the
16243 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>,
16244 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>,
16245 and
16246 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16247 variables.
16248 </para>
16249 </glossdef>
16250 </glossentry>
16251
16252 <glossentry id='var-USERADD_GID_TABLES'><glossterm>USERADD_GID_TABLES</glossterm>
16253 <info>
16254 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."
16255 </info>
16256 <glossdef>
16257 <para role="glossdeffirst">
16258<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16259 Specifies a password file to use for obtaining static
16260 group identification (<filename>gid</filename>) values
16261 when the OpenEmbedded build system adds a group to the
16262 system during package installation.
16263 </para>
16264
16265 <para>
16266 When applying static group identification
16267 (<filename>gid</filename>) values, the OpenEmbedded build
16268 system looks in
16269 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16270 for a <filename>files/group</filename> file and then applies
16271 those <filename>uid</filename> values.
16272 Set the variable as follows in your
16273 <filename>local.conf</filename> file:
16274 <literallayout class='monospaced'>
16275 USERADD_GID_TABLES = "files/group"
16276 </literallayout>
16277 </para>
16278
16279 <note>
16280 Setting the
16281 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16282 variable to "useradd-staticids" causes the build system
16283 to use static <filename>gid</filename> values.
16284 </note>
16285 </glossdef>
16286 </glossentry>
16287
16288 <glossentry id='var-USERADD_PACKAGES'><glossterm>USERADD_PACKAGES</glossterm>
16289 <info>
16290 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."
16291 </info>
16292 <glossdef>
16293 <para role="glossdeffirst">
16294<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16295 When inheriting the
16296 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16297 class, this variable
16298 specifies the individual packages within the recipe that
16299 require users and/or groups to be added.
16300 </para>
16301
16302 <para>
16303 You must set this variable if the recipe inherits the
16304 class.
16305 For example, the following enables adding a user for the
16306 main package in a recipe:
16307 <literallayout class='monospaced'>
16308 USERADD_PACKAGES = "${PN}"
16309 </literallayout>
16310 <note>
16311 If follows that if you are going to use the
16312 <filename>USERADD_PACKAGES</filename> variable,
16313 you need to set one or more of the
16314 <link linkend='var-USERADD_PARAM'><filename>USERADD_PARAM</filename></link>,
16315 <link linkend='var-GROUPADD_PARAM'><filename>GROUPADD_PARAM</filename></link>,
16316 or
16317 <link linkend='var-GROUPMEMS_PARAM'><filename>GROUPMEMS_PARAM</filename></link>
16318 variables.
16319 </note>
16320 </para>
16321
16322 </glossdef>
16323 </glossentry>
16324
16325 <glossentry id='var-USERADD_PARAM'><glossterm>USERADD_PARAM</glossterm>
16326 <info>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016327 USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should pass to the useradd command if you add a user to the system when the package is installed."
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016328 </info>
16329 <glossdef>
16330 <para role="glossdeffirst">
16331<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16332 When inheriting the
16333 <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
16334 class, this variable
Brad Bishop316dfdd2018-06-25 12:45:53 -040016335 specifies for a package what parameters should pass
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016336 to the <filename>useradd</filename> command
Brad Bishop316dfdd2018-06-25 12:45:53 -040016337 if you add a user to the system when the package
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016338 is installed.
16339 </para>
16340
16341 <para>
16342 Here is an example from the <filename>dbus</filename>
16343 recipe:
16344 <literallayout class='monospaced'>
16345 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
16346 --no-create-home --shell /bin/false \
16347 --user-group messagebus"
16348 </literallayout>
16349 For information on the standard Linux shell command
16350 <filename>useradd</filename>, see
16351 <ulink url='http://linux.die.net/man/8/useradd'></ulink>.
16352 </para>
16353 </glossdef>
16354 </glossentry>
16355
16356 <glossentry id='var-USERADD_UID_TABLES'><glossterm>USERADD_UID_TABLES</glossterm>
16357 <info>
16358 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."
16359 </info>
16360 <glossdef>
16361 <para role="glossdeffirst">
16362<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16363 Specifies a password file to use for obtaining static
16364 user identification (<filename>uid</filename>) values
16365 when the OpenEmbedded build system adds a user to the
16366 system during package installation.
16367 </para>
16368
16369 <para>
16370 When applying static user identification
16371 (<filename>uid</filename>) values, the OpenEmbedded build
16372 system looks in
16373 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
16374 for a <filename>files/passwd</filename> file and then applies
16375 those <filename>uid</filename> values.
16376 Set the variable as follows in your
16377 <filename>local.conf</filename> file:
16378 <literallayout class='monospaced'>
16379 USERADD_UID_TABLES = "files/passwd"
16380 </literallayout>
16381 </para>
16382
16383 <note>
16384 Setting the
16385 <link linkend='var-USERADDEXTENSION'><filename>USERADDEXTENSION</filename></link>
16386 variable to "useradd-staticids" causes the build system
16387 to use static <filename>uid</filename> values.
16388 </note>
16389 </glossdef>
16390 </glossentry>
16391
16392 <glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
16393 <info>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060016394 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 -050016395 </info>
16396 <glossdef>
16397 <para role="glossdeffirst">
16398<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16399 When set to "useradd-staticids", causes the
16400 OpenEmbedded build system to base all user and group
16401 additions on a static
16402 <filename>passwd</filename> and
16403 <filename>group</filename> files found in
16404 <link linkend='var-BBPATH'><filename>BBPATH</filename></link>.
16405 </para>
16406
16407 <para>
16408 To use static user identification (<filename>uid</filename>)
16409 and group identification (<filename>gid</filename>)
16410 values, set the variable
16411 as follows in your <filename>local.conf</filename> file:
16412 <literallayout class='monospaced'>
16413 USERADDEXTENSION = "useradd-staticids"
16414 </literallayout>
16415 <note>
16416 Setting this variable to use static
16417 <filename>uid</filename> and <filename>gid</filename>
16418 values causes the OpenEmbedded build system to employ
16419 the
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016420 <link linkend='ref-classes-useradd'><filename>useradd-staticids</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016421 class.
16422 </note>
16423 </para>
16424
16425 <para>
16426 If you use static <filename>uid</filename> and
16427 <filename>gid</filename> information, you must also
16428 specify the <filename>files/passwd</filename> and
16429 <filename>files/group</filename> files by setting the
16430 <link linkend='var-USERADD_UID_TABLES'><filename>USERADD_UID_TABLES</filename></link>
16431 and
16432 <link linkend='var-USERADD_GID_TABLES'><filename>USERADD_GID_TABLES</filename></link>
16433 variables.
16434 Additionally, you should also set the
16435 <link linkend='var-USERADD_ERROR_DYNAMIC'><filename>USERADD_ERROR_DYNAMIC</filename></link>
16436 variable.
16437 </para>
16438 </glossdef>
16439 </glossentry>
16440
16441 </glossdiv>
16442
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016443 <glossdiv id='var-glossary-v'><title>V</title>
16444
16445 <glossentry id='var-VOLATILE_LOG_DIR'><glossterm>VOLATILE_LOG_DIR</glossterm>
16446 <info>
16447 VOLATILE_LOG_DIR[doc] = "Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files."
16448 </info>
16449 <glossdef>
16450 <para role="glossdeffirst">
16451<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16452 Specifies the persistence of the target's
16453 <filename>/var/log</filename> directory, which is used to
16454 house postinstall target log files.
16455 </para>
16456
16457 <para>
16458 By default, <filename>VOLATILE_LOG_DIR</filename> is set
16459 to "yes", which means the file is not persistent.
16460 You can override this setting by setting the
16461 variable to "no" to make the log directory persistent.
16462 </para>
16463 </glossdef>
16464 </glossentry>
16465
16466 </glossdiv>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016467
16468 <glossdiv id='var-glossary-w'><title>W</title>
16469
16470 <glossentry id='var-WARN_QA'><glossterm>WARN_QA</glossterm>
16471 <info>
16472 WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
16473 </info>
16474 <glossdef>
16475 <para role="glossdeffirst">
16476<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16477 Specifies the quality assurance checks whose failures are
16478 reported as warnings by the OpenEmbedded build system.
16479 You set this variable in your distribution configuration
16480 file.
16481 For a list of the checks you can control with this variable,
16482 see the
16483 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
16484 section.
16485 </para>
16486 </glossdef>
16487 </glossentry>
16488
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016489 <glossentry id='var-WKS_FILE_DEPENDS'><glossterm>WKS_FILE_DEPENDS</glossterm>
16490 <info>
16491 WKS_FILE_DEPENDS[doc] = "Lists a recipe's build-time dependencies specific to Wic."
16492 </info>
16493 <glossdef>
16494 <para role="glossdeffirst">
16495 When placed in the recipe that builds your image, this
16496 variable lists build-time dependencies.
16497 The <filename>WKS_FILE_DEPENDS</filename> variable is only
16498 applicable when Wic images are active (i.e. when
16499 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
16500 contains entries related to Wic).
16501 If your recipe does not create Wic images, the variable
16502 has no effect.
16503 </para>
16504
16505 <para>
16506 The <filename>WKS_FILE_DEPENDS</filename> variable is
16507 similar to the
16508 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
16509 variable.
16510 When you use the variable in your recipe that builds the
16511 Wic image, dependencies you list in the
16512 <filename>WIC_FILE_DEPENDS</filename> variable are added to
16513 the <filename>DEPENDS</filename> variable.
16514 </para>
16515
16516 <para>
16517 With the <filename>WKS_FILE_DEPENDS</filename> variable,
16518 you have the possibility to specify a list of additional
16519 dependencies (e.g. native tools, bootloaders, and so forth),
16520 that are required to build Wic images.
16521 Following is an example:
16522 <literallayout class='monospaced'>
16523 WKS_FILE_DEPENDS = "<replaceable>some-native-tool</replaceable>"
16524 </literallayout>
16525 In the previous example,
16526 <replaceable>some-native-tool</replaceable> would be
16527 replaced with an actual native tool on which the build
16528 would depend.
16529 </para>
16530 </glossdef>
16531 </glossentry>
16532
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016533 <glossentry id='var-WKS_FILE'><glossterm>WKS_FILE</glossterm>
16534 <info>
16535 WKS_FILE[doc] = "Specifies the name of the wic kickstart file."
16536 </info>
16537 <glossdef>
16538 <para role="glossdeffirst">
16539 Specifies the location of the Wic
16540 kickstart file that is used by the OpenEmbedded build
16541 system to create a partitioned image
16542 (<replaceable>image</replaceable><filename>.wic</filename>).
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016543 For information on how to create a partitioned image, see
16544 the
16545 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
16546 section in the Yocto Project Development Tasks Manual.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016547 For details on the kickstart file format, see the
Brad Bishop316dfdd2018-06-25 12:45:53 -040016548 "<link linkend='ref-kickstart'>OpenEmbedded Kickstart (<filename>.wks</filename>) Reference</link>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050016549 Chapter.
Brad Bishop37a0e4d2017-12-04 01:01:44 -050016550 </para>
16551 </glossdef>
16552 </glossentry>
16553
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016554 <glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
16555 <info>
16556 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."
16557 </info>
16558 <glossdef>
16559 <para role="glossdeffirst">
16560<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16561 The pathname of the work directory in which the OpenEmbedded
16562 build system builds a recipe.
16563 This directory is located within the
16564 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
16565 directory structure and is specific to the recipe being
16566 built and the system for which it is being built.
16567 </para>
16568
16569 <para>
16570 The <filename>WORKDIR</filename> directory is defined as
16571 follows:
16572 <literallayout class='monospaced'>
16573 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
16574 </literallayout>
16575 The actual directory depends on several things:
16576 <itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -040016577 <listitem><filename>TMPDIR</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -050016578 The top-level build output directory</listitem>
16579 <listitem><link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>:
16580 The target system identifier</listitem>
16581 <listitem><link linkend='var-PN'><filename>PN</filename></link>:
16582 The recipe name</listitem>
16583 <listitem><link linkend='var-EXTENDPE'><filename>EXTENDPE</filename></link>:
16584 The epoch - (if
16585 <link linkend='var-PE'><filename>PE</filename></link>
16586 is not specified, which is usually the case for most
16587 recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
16588 <listitem><link linkend='var-PV'><filename>PV</filename></link>:
16589 The recipe version</listitem>
16590 <listitem><link linkend='var-PR'><filename>PR</filename></link>:
16591 The recipe revision</listitem>
16592 </itemizedlist>
16593 </para>
16594
16595 <para>
16596 As an example, assume a Source Directory top-level folder
16597 name <filename>poky</filename>, a default Build Directory at
16598 <filename>poky/build</filename>, and a
16599 <filename>qemux86-poky-linux</filename> machine target
16600 system.
16601 Furthermore, suppose your recipe is named
16602 <filename>foo_1.3.0-r0.bb</filename>.
16603 In this case, the work directory the build system uses to
16604 build the package would be as follows:
16605 <literallayout class='monospaced'>
16606 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
16607 </literallayout>
16608 </para>
16609 </glossdef>
16610 </glossentry>
16611
16612 </glossdiv>
16613
16614 <glossdiv id='var-glossary-x'><title>X</title>
16615
16616 <glossentry id='var-XSERVER'><glossterm>XSERVER</glossterm>
16617 <info>
16618 XSERVER[doc] = "Specifies the packages that should be installed
16619 to provide an X server and drivers for the current machine."
16620 </info>
16621 <glossdef>
16622 <para role="glossdeffirst">
16623<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
16624 Specifies the packages that should be installed to
16625 provide an X server and drivers for the current machine,
16626 assuming your image directly includes
16627 <filename>packagegroup-core-x11-xserver</filename> or,
16628 perhaps indirectly, includes "x11-base" in
16629 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
16630 </para>
16631
16632 <para>
16633 The default value of <filename>XSERVER</filename>, if not
16634 specified in the machine configuration, is
16635 "xserver-xorg xf86-video-fbdev xf86-input-evdev".
16636 </para>
16637 </glossdef>
16638 </glossentry>
16639
16640 </glossdiv>
16641
16642<!-- <glossdiv id='var-glossary-y'><title>Y</title>-->
16643<!-- </glossdiv>-->
16644
16645<!-- <glossdiv id='var-glossary-z'><title>Z</title>-->
16646<!-- </glossdiv>-->
16647
16648</glossary>
16649</chapter>
16650<!--
16651vim: expandtab tw=80 ts=4
16652-->