diff options
-rw-r--r-- | bitbake/doc/user-manual/user-manual-execution.xml | 62 | ||||
-rw-r--r-- | bitbake/doc/user-manual/user-manual-fetching.xml | 11 | ||||
-rw-r--r-- | bitbake/doc/user-manual/user-manual-intro.xml | 81 | ||||
-rw-r--r-- | bitbake/doc/user-manual/user-manual-metadata.xml | 87 |
4 files changed, 115 insertions, 126 deletions
diff --git a/bitbake/doc/user-manual/user-manual-execution.xml b/bitbake/doc/user-manual/user-manual-execution.xml index d451ebb533..6110a93e2a 100644 --- a/bitbake/doc/user-manual/user-manual-execution.xml +++ b/bitbake/doc/user-manual/user-manual-execution.xml | |||
@@ -87,21 +87,6 @@ | |||
87 | just constructed. | 87 | just constructed. |
88 | The <filename>bitbake.conf</filename> file usually indicates | 88 | The <filename>bitbake.conf</filename> file usually indicates |
89 | all the other key include files to parse. | 89 | all the other key include files to parse. |
90 | The usual convention is to have machine, distro, site, and local | ||
91 | configurations. | ||
92 | This means a user provides their own customizations | ||
93 | through a <filename>local.conf</filename> file. | ||
94 | </para> | ||
95 | |||
96 | <para> | ||
97 | As mentioned in the previous paragraph, two of the other notable | ||
98 | configuration files are the distro and machine configuration | ||
99 | files. | ||
100 | These configuration files are normally identified by | ||
101 | variables unique to the build systems using BitBake. | ||
102 | For example, the Yocto Project uses the | ||
103 | <filename>DISTRO</filename> and <filename>MACHINE</filename> | ||
104 | variables, respectively. | ||
105 | </para> | 90 | </para> |
106 | 91 | ||
107 | <para> | 92 | <para> |
@@ -122,7 +107,7 @@ | |||
122 | 107 | ||
123 | <para> | 108 | <para> |
124 | The base configuration metadata is global | 109 | The base configuration metadata is global |
125 | and therefore affects all packages and tasks that are executed. | 110 | and therefore affects all recipes and tasks that are executed. |
126 | </para> | 111 | </para> |
127 | 112 | ||
128 | <para> | 113 | <para> |
@@ -161,10 +146,11 @@ | |||
161 | These variables might have been set from the environment | 146 | These variables might have been set from the environment |
162 | depending on the environment variables previously | 147 | depending on the environment variables previously |
163 | mentioned or set in the configuration files. | 148 | mentioned or set in the configuration files. |
164 | See the | 149 | The |
165 | "<link linkend='ref-variables-glos'>Variables Glossary</link>" | 150 | "<link linkend='ref-variables-glos'>Variables Glossary</link>" |
166 | for a full list of variables. | 151 | chapter presents a full list of variables. |
167 | The following list shows common variables set: | 152 | <!-- |
153 | Here are some common ones used: | ||
168 | <itemizedlist> | 154 | <itemizedlist> |
169 | <listitem><para> | 155 | <listitem><para> |
170 | <link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link> | 156 | <link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link> |
@@ -215,6 +201,7 @@ | |||
215 | <link linkend='var-BBINCLUDED'><filename>BBINCLUDED</filename></link> | 201 | <link linkend='var-BBINCLUDED'><filename>BBINCLUDED</filename></link> |
216 | </para></listitem> | 202 | </para></listitem> |
217 | </itemizedlist> | 203 | </itemizedlist> |
204 | --> | ||
218 | </para> | 205 | </para> |
219 | 206 | ||
220 | <para> | 207 | <para> |
@@ -305,7 +292,7 @@ | |||
305 | </para> | 292 | </para> |
306 | 293 | ||
307 | <para> | 294 | <para> |
308 | BitBake does not need all this information. | 295 | BitBake does not need all of this information. |
309 | It only needs a small subset of the information to make | 296 | It only needs a small subset of the information to make |
310 | decisions about the recipe. | 297 | decisions about the recipe. |
311 | Consequently, BitBake caches the values in which it is | 298 | Consequently, BitBake caches the values in which it is |
@@ -375,7 +362,7 @@ | |||
375 | <literallayout class='monospaced'> | 362 | <literallayout class='monospaced'> |
376 | PROVIDES += "virtual/package" | 363 | PROVIDES += "virtual/package" |
377 | </literallayout> | 364 | </literallayout> |
378 | The recipe now provides both "package1" and "virtual/package. | 365 | The recipe now provides both "package1" and "virtual/package". |
379 | The "virtual/" namespace is often used to denote cases where | 366 | The "virtual/" namespace is often used to denote cases where |
380 | multiple providers are expected with the user choosing between | 367 | multiple providers are expected with the user choosing between |
381 | them. | 368 | them. |
@@ -395,20 +382,8 @@ | |||
395 | The default | 382 | The default |
396 | <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link> | 383 | <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link> |
397 | is the provider with the same name as the target. | 384 | is the provider with the same name as the target. |
398 | </para> | 385 | Bitbake iterates through each target it needs to build and |
399 | 386 | resolves them and their dependencies using this process. | |
400 | <para> | ||
401 | Bitbake iterates through each target it needs to build and resolve | ||
402 | them using this process. | ||
403 | As an example, suppose the target is | ||
404 | <filename>core-image-sato</filename>. | ||
405 | In this case, it would lead to | ||
406 | <filename>packagegroup-core-x11-sato</filename>, | ||
407 | which in turn leads to recipes like | ||
408 | <filename>matchbox-terminal</filename>, <filename>pcmanfm</filename> | ||
409 | and <filename>gthumb</filename>. | ||
410 | These recipes in turn depend on <filename>eglibc</filename> | ||
411 | and the toolchain. | ||
412 | </para> | 387 | </para> |
413 | 388 | ||
414 | <para> | 389 | <para> |
@@ -418,21 +393,21 @@ | |||
418 | Version comparisons are made using the same method as Debian. | 393 | Version comparisons are made using the same method as Debian. |
419 | You can use the | 394 | You can use the |
420 | <link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link> | 395 | <link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link> |
421 | variable to specify a particular version (usually in the distro configuration). | 396 | variable to specify a particular version. |
422 | You can influence the order by using the | 397 | You can influence the order by using the |
423 | <link linkend='var-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link> | 398 | <link linkend='var-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link> |
424 | variable. | 399 | variable. |
425 | By default, files have a preference of "0". | 400 | By default, files have a preference of "0". |
426 | Setting the <filename>DEFAULT_PREFERENCE</filename> to "-1" makes the | 401 | Setting the <filename>DEFAULT_PREFERENCE</filename> to "-1" makes the |
427 | package unlikely to be used unless it is explicitly referenced. | 402 | recipe unlikely to be used unless it is explicitly referenced. |
428 | Setting the <filename>DEFAULT_PREFERENCE</filename> to "1" makes it likely the package is used. | 403 | Setting the <filename>DEFAULT_PREFERENCE</filename> to "1" makes it likely the recipe is used. |
429 | <filename>PREFERRED_VERSION</filename> overrides any <filename>DEFAULT_PREFERENCE</filename> setting. | 404 | <filename>PREFERRED_VERSION</filename> overrides any <filename>DEFAULT_PREFERENCE</filename> setting. |
430 | <filename>DEFAULT_PREFERENCE</filename> is often used to mark newer and more experimental package | 405 | <filename>DEFAULT_PREFERENCE</filename> is often used to mark newer and more experimental recipe |
431 | versions until they have undergone sufficient testing to be considered stable. | 406 | versions until they have undergone sufficient testing to be considered stable. |
432 | </para> | 407 | </para> |
433 | 408 | ||
434 | <para> | 409 | <para> |
435 | When there are multiple “versions” of a given package, | 410 | When there are multiple “versions” of a given recipe, |
436 | BitBake defaults to selecting the most recent | 411 | BitBake defaults to selecting the most recent |
437 | version, unless otherwise specified. | 412 | version, unless otherwise specified. |
438 | If the recipe in question has a | 413 | If the recipe in question has a |
@@ -573,12 +548,12 @@ | |||
573 | <para> | 548 | <para> |
574 | Tasks can either be a shell task or a Python task. | 549 | Tasks can either be a shell task or a Python task. |
575 | For shell tasks, BitBake writes a shell script to | 550 | For shell tasks, BitBake writes a shell script to |
576 | <filename>${WORKDIR}/temp/run.do_taskname.pid</filename> | 551 | <filename>${</filename><link linkend='var-T'><filename>T</filename></link><filename>}/run.do_taskname.pid</filename> |
577 | and then executes the script. | 552 | and then executes the script. |
578 | The generated shell script contains all the exported variables, | 553 | The generated shell script contains all the exported variables, |
579 | and the shell functions with all variables expanded. | 554 | and the shell functions with all variables expanded. |
580 | Output from the shell script goes to the file | 555 | Output from the shell script goes to the file |
581 | <filename>${WORKDIR}/temp/log.do_taskname.pid</filename>. | 556 | <filename>${T}/log.do_taskname.pid</filename>. |
582 | Looking at the expanded shell functions in the run file and | 557 | Looking at the expanded shell functions in the run file and |
583 | the output in the log files is a useful debugging technique. | 558 | the output in the log files is a useful debugging technique. |
584 | </para> | 559 | </para> |
@@ -831,9 +806,6 @@ | |||
831 | a setscene task named <filename>xxx_setscene</filename>. | 806 | a setscene task named <filename>xxx_setscene</filename>. |
832 | The setscene version of the task executes and provides the necessary | 807 | The setscene version of the task executes and provides the necessary |
833 | artifacts returning either success or failure. | 808 | artifacts returning either success or failure. |
834 | <note> | ||
835 | Artifacts might need to be fetched from the network. | ||
836 | </note> | ||
837 | </para> | 809 | </para> |
838 | 810 | ||
839 | <para> | 811 | <para> |
diff --git a/bitbake/doc/user-manual/user-manual-fetching.xml b/bitbake/doc/user-manual/user-manual-fetching.xml index cbf08d949c..c66596ed6e 100644 --- a/bitbake/doc/user-manual/user-manual-fetching.xml +++ b/bitbake/doc/user-manual/user-manual-fetching.xml | |||
@@ -42,7 +42,7 @@ | |||
42 | fetcher = bb.fetch2.Fetch(src_uri, d) | 42 | fetcher = bb.fetch2.Fetch(src_uri, d) |
43 | fetcher.download() | 43 | fetcher.download() |
44 | </literallayout> | 44 | </literallayout> |
45 | This code sets up an instance of the fetch module. | 45 | This code sets up an instance of the fetch class. |
46 | The instance uses a space-separated list of URLs from the | 46 | The instance uses a space-separated list of URLs from the |
47 | <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link> | 47 | <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link> |
48 | variable and then calls the <filename>download</filename> | 48 | variable and then calls the <filename>download</filename> |
@@ -155,14 +155,13 @@ | |||
155 | <filename>SRC_URI</filename> variable with the appropriate | 155 | <filename>SRC_URI</filename> variable with the appropriate |
156 | varflags as follows: | 156 | varflags as follows: |
157 | <literallayout class='monospaced'> | 157 | <literallayout class='monospaced'> |
158 | SRC_URI[md5sum] | 158 | SRC_URI[md5sum] = "value" |
159 | SRC_URI[sha256sum] | 159 | SRC_URI[sha256sum] = "value" |
160 | </literallayout> | 160 | </literallayout> |
161 | You can also specify the checksums as parameters on the | 161 | You can also specify the checksums as parameters on the |
162 | <filename>SRC_URI</filename> as shown below: | 162 | <filename>SRC_URI</filename> as shown below: |
163 | <literallayout class='monospaced'> | 163 | <literallayout class='monospaced'> |
164 | SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07f | 164 | SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d" |
165 | db994d" | ||
166 | </literallayout> | 165 | </literallayout> |
167 | If multiple URIs exist, you can specify the checksums either | 166 | If multiple URIs exist, you can specify the checksums either |
168 | directly as in the previous example, or you can name the URLs. | 167 | directly as in the previous example, or you can name the URLs. |
@@ -578,7 +577,7 @@ db994d" | |||
578 | Fetch submodules also exist for the following: | 577 | Fetch submodules also exist for the following: |
579 | <itemizedlist> | 578 | <itemizedlist> |
580 | <listitem><para> | 579 | <listitem><para> |
581 | Bazzar (<filename>bzr://</filename>) | 580 | Bazaar (<filename>bzr://</filename>) |
582 | </para></listitem> | 581 | </para></listitem> |
583 | <listitem><para> | 582 | <listitem><para> |
584 | Perforce (<filename>p4://</filename>) | 583 | Perforce (<filename>p4://</filename>) |
diff --git a/bitbake/doc/user-manual/user-manual-intro.xml b/bitbake/doc/user-manual/user-manual-intro.xml index 6f9ad2049a..d46e823c72 100644 --- a/bitbake/doc/user-manual/user-manual-intro.xml +++ b/bitbake/doc/user-manual/user-manual-intro.xml | |||
@@ -6,10 +6,10 @@ | |||
6 | 6 | ||
7 | <para> | 7 | <para> |
8 | Welcome to the BitBake User Manual. | 8 | Welcome to the BitBake User Manual. |
9 | This manual provides information on BitBake. | 9 | This manual provides information on the BitBake tool. |
10 | The information attempts to be as independent as possible regarding | 10 | The information attempts to be as independent as possible regarding |
11 | systems that use BitBake, such as the Yocto Project and | 11 | systems that use BitBake, such as the Yocto Project and |
12 | OpenEmbeddeded. | 12 | OpenEmbedded. |
13 | In some cases, scenarios or examples that within the context of | 13 | In some cases, scenarios or examples that within the context of |
14 | a build system are used in the manual to help with understanding. | 14 | a build system are used in the manual to help with understanding. |
15 | For these cases, the manual clearly states the context. | 15 | For these cases, the manual clearly states the context. |
@@ -88,7 +88,7 @@ | |||
88 | an aspiring embedded Linux distribution. | 88 | an aspiring embedded Linux distribution. |
89 | All of the build systems used by traditional desktop Linux | 89 | All of the build systems used by traditional desktop Linux |
90 | distributions lacked important functionality, and none of the | 90 | distributions lacked important functionality, and none of the |
91 | ad-hoc buildroot systems, prevalent in the | 91 | ad-hoc Buildroot-based systems, prevalent in the |
92 | embedded space, were scalable or maintainable. | 92 | embedded space, were scalable or maintainable. |
93 | </para> | 93 | </para> |
94 | 94 | ||
@@ -216,7 +216,7 @@ | |||
216 | 216 | ||
217 | <para> | 217 | <para> |
218 | Within the context of BitBake, or any project utilizing BitBake | 218 | Within the context of BitBake, or any project utilizing BitBake |
219 | as it's build system, files with the <filename>.bb</filename> | 219 | as its build system, files with the <filename>.bb</filename> |
220 | extension are referred to as recipes. | 220 | extension are referred to as recipes. |
221 | <note> | 221 | <note> |
222 | The term "package" is also commonly used to describe recipes. | 222 | The term "package" is also commonly used to describe recipes. |
@@ -282,7 +282,7 @@ | |||
282 | 282 | ||
283 | <para> | 283 | <para> |
284 | To illustrate how you can use layers to keep things modular, | 284 | To illustrate how you can use layers to keep things modular, |
285 | consider machine customizations. | 285 | consider customizations you might make to support a specific target machine. |
286 | These types of customizations typically reside in a special layer, | 286 | These types of customizations typically reside in a special layer, |
287 | rather than a general layer, called a Board Specific Package (BSP) Layer. | 287 | rather than a general layer, called a Board Specific Package (BSP) Layer. |
288 | Furthermore, the machine customizations should be isolated from | 288 | Furthermore, the machine customizations should be isolated from |
@@ -343,7 +343,7 @@ | |||
343 | <filename>busybox_1.3.0.bb</filename>, the append name would not | 343 | <filename>busybox_1.3.0.bb</filename>, the append name would not |
344 | match. | 344 | match. |
345 | However, if you named the append file | 345 | However, if you named the append file |
346 | <filename>busybox_1.%.bb</filename>, then you would have a match. | 346 | <filename>busybox_1.%.bbappend</filename>, then you would have a match. |
347 | </para> | 347 | </para> |
348 | </section> | 348 | </section> |
349 | </section> | 349 | </section> |
@@ -421,20 +421,10 @@ | |||
421 | <title>The BitBake Command</title> | 421 | <title>The BitBake Command</title> |
422 | 422 | ||
423 | <para> | 423 | <para> |
424 | BitBake is the underlying piece of the build system. | 424 | The BitBake command is the primary interface to the BitBake |
425 | Two excellent examples are the Yocto Project and the OpenEmbedded | 425 | tool. |
426 | build systems. | 426 | This section presents the BitBake command syntax and provides |
427 | Each provide an environment in which to develop embedded Linux | 427 | several execution examples. |
428 | images, and each use BitBake as their underlying build engine. | ||
429 | </para> | ||
430 | |||
431 | <para> | ||
432 | BitBake facilitates executing tasks in a single <filename>.bb</filename> | ||
433 | file, or executing a given task on a set of multiple | ||
434 | <filename>.bb</filename> files, accounting for interdependencies | ||
435 | amongst them. | ||
436 | This section presents the BitBake syntax and provides some execution | ||
437 | examples. | ||
438 | </para> | 428 | </para> |
439 | 429 | ||
440 | <section id='usage-and-syntax'> | 430 | <section id='usage-and-syntax'> |
@@ -539,17 +529,21 @@ Options: | |||
539 | </para> | 529 | </para> |
540 | 530 | ||
541 | <para> | 531 | <para> |
542 | The following command runs the clean task on the | ||
543 | <filename>foo_1.0.bb</filename> recipe file: | ||
544 | <literallayout class='monospaced'> | ||
545 | $ bitbake -b foo.bb -c clean | ||
546 | </literallayout> | ||
547 | The following command runs the build task, which is | 532 | The following command runs the build task, which is |
548 | the default task, on the <filename>foo_1.0.bb</filename> | 533 | the default task, on the <filename>foo_1.0.bb</filename> |
549 | recipe file: | 534 | recipe file: |
550 | <literallayout class='monospaced'> | 535 | <literallayout class='monospaced'> |
551 | $ bitbake -b foo_1.0.bb | 536 | $ bitbake -b foo_1.0.bb |
552 | </literallayout> | 537 | </literallayout> |
538 | The following command runs the clean task on the | ||
539 | <filename>foo_1.0.bb</filename> recipe file: | ||
540 | <literallayout class='monospaced'> | ||
541 | $ bitbake -b foo.bb -c clean | ||
542 | </literallayout> | ||
543 | <note> | ||
544 | The "-b" option explicitly does not handle recipe | ||
545 | dependencies. | ||
546 | </note> | ||
553 | </para> | 547 | </para> |
554 | </section> | 548 | </section> |
555 | 549 | ||
@@ -573,7 +567,7 @@ Options: | |||
573 | 567 | ||
574 | <para> | 568 | <para> |
575 | The <filename>bitbake</filename> command, when not using | 569 | The <filename>bitbake</filename> command, when not using |
576 | "--buildfile" or "-b" only accepts a "PROVIDER". | 570 | "--buildfile" or "-b" only accepts a "PROVIDES". |
577 | You cannot provide anything else. | 571 | You cannot provide anything else. |
578 | By default, a recipe file generally "PROVIDES" its | 572 | By default, a recipe file generally "PROVIDES" its |
579 | "packagename", "packagename-version", and | 573 | "packagename", "packagename-version", and |
@@ -581,10 +575,6 @@ Options: | |||
581 | example: | 575 | example: |
582 | <literallayout class='monospaced'> | 576 | <literallayout class='monospaced'> |
583 | $ bitbake foo | 577 | $ bitbake foo |
584 | |||
585 | $ bitbake foo-1.0 | ||
586 | |||
587 | $ bitbake foo-1.0-r0 | ||
588 | </literallayout> | 578 | </literallayout> |
589 | This next example "PROVIDES" the package name and also uses | 579 | This next example "PROVIDES" the package name and also uses |
590 | the "-c" option to tell BitBake to just execute the | 580 | the "-c" option to tell BitBake to just execute the |
@@ -600,22 +590,35 @@ Options: | |||
600 | 590 | ||
601 | <para> | 591 | <para> |
602 | BitBake is able to generate dependency graphs using | 592 | BitBake is able to generate dependency graphs using |
603 | the dot syntax. | 593 | the <filename>dot</filename> syntax. |
604 | You can convert these graphs into images using the dot | 594 | You can convert these graphs into images using the |
605 | application from | 595 | <filename>dot</filename> tool from |
606 | <ulink url='http://www.graphviz.org'>Graphviz</ulink>. | 596 | <ulink url='http://www.graphviz.org'>Graphviz</ulink>. |
607 | </para> | 597 | </para> |
608 | 598 | ||
609 | <para> | 599 | <para> |
610 | When you generate a dependency graph, BitBake writes two files | 600 | When you generate a dependency graph, BitBake writes four files |
611 | to the current working directory: | 601 | to the current working directory: |
612 | <filename>depends.dot</filename>, which contains dependency information | 602 | <itemizedlist> |
613 | at the package level, and <filename>task-depends.dot</filename>, | 603 | <listitem><para><emphasis><filename>package-depends.dot</filename>:</emphasis> |
614 | which contains a breakdown of the dependencies at the task level. | 604 | Shows BitBake's knowledge of dependencies between |
605 | runtime targets. | ||
606 | </para></listitem> | ||
607 | <listitem><para><emphasis><filename>pn-depends.dot</filename>:</emphasis> | ||
608 | Shows dependencies between build-time targets | ||
609 | (i.e. recipes). | ||
610 | </para></listitem> | ||
611 | <listitem><para><emphasis><filename>task-depends.dot</filename>:</emphasis> | ||
612 | Shows dependencies between tasks. | ||
613 | </para></listitem> | ||
614 | <listitem><para><emphasis><filename>pn-buildlist</filename>:</emphasis> | ||
615 | Shows a simple list of targets that are to be built. | ||
616 | </para></listitem> | ||
617 | </itemizedlist> | ||
615 | </para> | 618 | </para> |
616 | 619 | ||
617 | <para> | 620 | <para> |
618 | To stop depending on common depends, use use the "-I" depend | 621 | To stop depending on common depends, use the "-I" depend |
619 | option and BitBake omits them from the graph. | 622 | option and BitBake omits them from the graph. |
620 | Leaving this information out can produce more readable graphs. | 623 | Leaving this information out can produce more readable graphs. |
621 | This way, you can remove from the graph | 624 | This way, you can remove from the graph |
@@ -629,7 +632,7 @@ Options: | |||
629 | <literallayout class='monospaced'> | 632 | <literallayout class='monospaced'> |
630 | $ bitbake -g foo | 633 | $ bitbake -g foo |
631 | 634 | ||
632 | $ bitbake -g -I virtual/whatever -I bloom foo | 635 | $ bitbake -g -I virtual/kernel -I eglibc foo |
633 | </literallayout> | 636 | </literallayout> |
634 | </para> | 637 | </para> |
635 | </section> | 638 | </section> |
diff --git a/bitbake/doc/user-manual/user-manual-metadata.xml b/bitbake/doc/user-manual/user-manual-metadata.xml index 748b959d98..3a19b96303 100644 --- a/bitbake/doc/user-manual/user-manual-metadata.xml +++ b/bitbake/doc/user-manual/user-manual-metadata.xml | |||
@@ -40,12 +40,15 @@ | |||
40 | BitBake supports variables referencing one another's | 40 | BitBake supports variables referencing one another's |
41 | contents using a syntax that is similar to shell scripting. | 41 | contents using a syntax that is similar to shell scripting. |
42 | Following is an example that results in <filename>A</filename> | 42 | Following is an example that results in <filename>A</filename> |
43 | containing "aval" and <filename>B</filename> containing | 43 | containing "aval" and <filename>B</filename> evaluating to |
44 | "preavalpost". | 44 | "preavalpost". |
45 | <literallayout class='monospaced'> | 45 | <literallayout class='monospaced'> |
46 | A = "aval" | 46 | A = "aval" |
47 | B = "pre${A}post" | 47 | B = "pre${A}post" |
48 | </literallayout> | 48 | </literallayout> |
49 | Because the expansion happens later, the value of | ||
50 | <filename>B</filename> expands differently if the value | ||
51 | of <filename>A</filename> changes. | ||
49 | </para> | 52 | </para> |
50 | </section> | 53 | </section> |
51 | 54 | ||
@@ -79,7 +82,7 @@ | |||
79 | <title>Setting a weak default value (??=)</title> | 82 | <title>Setting a weak default value (??=)</title> |
80 | 83 | ||
81 | <para> | 84 | <para> |
82 | It is possible to use a "weaker" assignment that in the | 85 | It is possible to use a "weaker" assignment than in the |
83 | previous section by using the "??=" operator. | 86 | previous section by using the "??=" operator. |
84 | This assignment behaves identical to "?=" except that the | 87 | This assignment behaves identical to "?=" except that the |
85 | assignment is made at the end of the parsing process rather | 88 | assignment is made at the end of the parsing process rather |
@@ -197,6 +200,13 @@ | |||
197 | override syntax. | 200 | override syntax. |
198 | </note> | 201 | </note> |
199 | </para> | 202 | </para> |
203 | |||
204 | <para> | ||
205 | The operators "_append" and "_prepend" differ from | ||
206 | the operators ".=" and "=." in that they are deferred | ||
207 | until after parsing completes rather than being immediately | ||
208 | applied. | ||
209 | </para> | ||
200 | </section> | 210 | </section> |
201 | 211 | ||
202 | <section id='removing-override-style-syntax'> | 212 | <section id='removing-override-style-syntax'> |
@@ -519,7 +529,7 @@ | |||
519 | recipes require. | 529 | recipes require. |
520 | For example, you can easily abstract out the tasks involved in | 530 | For example, you can easily abstract out the tasks involved in |
521 | building a package that uses Autoconf and Automake and put | 531 | building a package that uses Autoconf and Automake and put |
522 | those tasks into a class file that can be used by your package. | 532 | those tasks into a class file that can be used by your recipe. |
523 | </para> | 533 | </para> |
524 | 534 | ||
525 | <para> | 535 | <para> |
@@ -549,9 +559,10 @@ | |||
549 | directive. | 559 | directive. |
550 | This directive causes BitBake to parse whatever file you specify, | 560 | This directive causes BitBake to parse whatever file you specify, |
551 | and to insert that file at that location. | 561 | and to insert that file at that location. |
552 | The directive is much like Make except that if the path specified | 562 | The directive is much like its equivalent in Make except |
553 | on the include line is a relative path, BitBake locates | 563 | that if the path specified on the include line is a relative |
554 | the first file it can find within <filename>BBPATH</filename>. | 564 | path, BitBake locates the first file it can find |
565 | within <filename>BBPATH</filename>. | ||
555 | </para> | 566 | </para> |
556 | 567 | ||
557 | <para> | 568 | <para> |
@@ -588,7 +599,7 @@ | |||
588 | </para> | 599 | </para> |
589 | 600 | ||
590 | <para> | 601 | <para> |
591 | Similar to how BitBake uses | 602 | Similar to how BitBake handles |
592 | <link linkend='include-directive'><filename>include</filename></link>, | 603 | <link linkend='include-directive'><filename>include</filename></link>, |
593 | if the path specified | 604 | if the path specified |
594 | on the require line is a relative path, BitBake locates | 605 | on the require line is a relative path, BitBake locates |
@@ -776,16 +787,17 @@ | |||
776 | Tasks are only supported in recipe (<filename>.bb</filename> | 787 | Tasks are only supported in recipe (<filename>.bb</filename> |
777 | or <filename>.inc</filename>) and class | 788 | or <filename>.inc</filename>) and class |
778 | (<filename>.bbclass</filename>) files. | 789 | (<filename>.bbclass</filename>) files. |
779 | By convention, tasks begin with the string "do_". | 790 | By convention, task names begin with the string "do_". |
780 | </para> | 791 | </para> |
781 | 792 | ||
782 | <para> | 793 | <para> |
783 | Here is an example of a task that prints out the date: | 794 | Here is an example of a task that prints out the date: |
784 | <literallayout class='monospaced'> | 795 | <literallayout class='monospaced'> |
785 | python do_printdate () { | 796 | python do_printdate () { |
786 | import time print | 797 | import time |
787 | time.strftime('%Y%m%d', time.gmtime()) | 798 | print time.strftime('%Y%m%d', time.gmtime()) |
788 | } | 799 | } |
800 | addtask printdate after do_fetch before do_build | ||
789 | </literallayout> | 801 | </literallayout> |
790 | </para> | 802 | </para> |
791 | 803 | ||
@@ -802,8 +814,8 @@ | |||
802 | and defining some dependencies: | 814 | and defining some dependencies: |
803 | <literallayout class='monospaced'> | 815 | <literallayout class='monospaced'> |
804 | python do_printdate () { | 816 | python do_printdate () { |
805 | import time print | 817 | import time |
806 | time.strftime('%Y%m%d', time.gmtime()) | 818 | print time.strftime('%Y%m%d', time.gmtime()) |
807 | } | 819 | } |
808 | addtask printdate after do_fetch before do_build | 820 | addtask printdate after do_fetch before do_build |
809 | </literallayout> | 821 | </literallayout> |
@@ -942,11 +954,6 @@ | |||
942 | <para> | 954 | <para> |
943 | BitBake has a defined set of varflags available for recipes and | 955 | BitBake has a defined set of varflags available for recipes and |
944 | classes. | 956 | classes. |
945 | You can discover the complete set by using <filename>grep</filename> | ||
946 | within a shell and search on the string "VarFlags". | ||
947 | </para> | ||
948 | |||
949 | <para> | ||
950 | Tasks support a number of these flags which control various | 957 | Tasks support a number of these flags which control various |
951 | functionality of the task: | 958 | functionality of the task: |
952 | <itemizedlist> | 959 | <itemizedlist> |
@@ -958,12 +965,13 @@ | |||
958 | </para></listitem> | 965 | </para></listitem> |
959 | <listitem><para><emphasis>noexec:</emphasis> | 966 | <listitem><para><emphasis>noexec:</emphasis> |
960 | Marks the tasks as being empty and no execution required. | 967 | Marks the tasks as being empty and no execution required. |
961 | These flags are used as dependency placeholders or used when | 968 | The <filename>noexec</filename> flag can be used to set up |
962 | added tasks need to be subsequently disabled. | 969 | tasks as dependency placeholders, or to disable tasks defined |
970 | elsewhere that are not needed in a particular recipe. | ||
963 | </para></listitem> | 971 | </para></listitem> |
964 | <listitem><para><emphasis>nostamp:</emphasis> | 972 | <listitem><para><emphasis>nostamp:</emphasis> |
965 | Tells BitBake to not generate a stamp file for a task, | 973 | Tells BitBake to not generate a stamp file for a task, |
966 | which implies the task is always executed. | 974 | which implies the task should always be executed. |
967 | </para></listitem> | 975 | </para></listitem> |
968 | <listitem><para><emphasis>fakeroot:</emphasis> | 976 | <listitem><para><emphasis>fakeroot:</emphasis> |
969 | Causes a task to be run in a fakeroot environment, | 977 | Causes a task to be run in a fakeroot environment, |
@@ -1027,7 +1035,7 @@ | |||
1027 | List of functions to call before the task executes. | 1035 | List of functions to call before the task executes. |
1028 | </para></listitem> | 1036 | </para></listitem> |
1029 | <listitem><para><emphasis>stamp-extra-info:</emphasis> | 1037 | <listitem><para><emphasis>stamp-extra-info:</emphasis> |
1030 | Extra stamp information to append to the task's stamp | 1038 | Extra stamp information to append to the task's stamp. |
1031 | As an example, OpenEmbedded uses this flag to allow | 1039 | As an example, OpenEmbedded uses this flag to allow |
1032 | machine-specific tasks. | 1040 | machine-specific tasks. |
1033 | </para></listitem> | 1041 | </para></listitem> |
@@ -1380,15 +1388,18 @@ | |||
1380 | </row> | 1388 | </row> |
1381 | <row> | 1389 | <row> |
1382 | <entry align="left"><filename>d.setVar("X", value)</filename></entry> | 1390 | <entry align="left"><filename>d.setVar("X", value)</filename></entry> |
1383 | <entry align="left">Sets the variable "X" to "value".</entry> | 1391 | <entry align="left">Sets the variable "X" to the value of the Python |
1392 | variable called "value".</entry> | ||
1384 | </row> | 1393 | </row> |
1385 | <row> | 1394 | <row> |
1386 | <entry align="left"><filename>d.appendVar("X", value)</filename></entry> | 1395 | <entry align="left"><filename>d.appendVar("X", value)</filename></entry> |
1387 | <entry align="left">Adds "value" to the end of the variable "X".</entry> | 1396 | <entry align="left">Adds the value of the Python variable called |
1397 | "value" to the end of the variable "X".</entry> | ||
1388 | </row> | 1398 | </row> |
1389 | <row> | 1399 | <row> |
1390 | <entry align="left"><filename>d.prependVar("X", value)</filename></entry> | 1400 | <entry align="left"><filename>d.prependVar("X", value)</filename></entry> |
1391 | <entry align="left">Adds "value" to the start of the variable "X".</entry> | 1401 | <entry align="left">Adds the value of the Python variable called |
1402 | "value" to the start of the variable "X".</entry> | ||
1392 | </row> | 1403 | </row> |
1393 | <row> | 1404 | <row> |
1394 | <entry align="left"><filename>d.delVar("X")</filename></entry> | 1405 | <entry align="left"><filename>d.delVar("X")</filename></entry> |
@@ -1400,40 +1411,44 @@ | |||
1400 | </row> | 1411 | </row> |
1401 | <row> | 1412 | <row> |
1402 | <entry align="left"><filename>d.getVarFlag("X", flag, expand=False)</filename></entry> | 1413 | <entry align="left"><filename>d.getVarFlag("X", flag, expand=False)</filename></entry> |
1403 | <entry align="left">Gets "flag" from the variable "X". | 1414 | <entry align="left">Gets then named flag from the variable "X". |
1404 | Using "expand=True" expands the flag.</entry> | 1415 | Using "expand=True" expands the named flag.</entry> |
1405 | </row> | 1416 | </row> |
1406 | <row> | 1417 | <row> |
1407 | <entry align="left"><filename>d.setVarFlag("X", flag, value)</filename></entry> | 1418 | <entry align="left"><filename>d.setVarFlag("X", flag, value)</filename></entry> |
1408 | <entry align="left">Sets "flag" for variable "X" to "value". | 1419 | <entry align="left">Sets the named flag for variable "X" to the value |
1409 | <filename>setVarFlags</filename> does not clear previous flags. | 1420 | of the Python variable called "value".</entry> |
1410 | Think of this operation as <filename>addVarFlags</filename>.</entry> | ||
1411 | </row> | 1421 | </row> |
1412 | <row> | 1422 | <row> |
1413 | <entry align="left"><filename>d.appendVarFlag("X", flag, value)</filename></entry> | 1423 | <entry align="left"><filename>d.appendVarFlag("X", flag, value)</filename></entry> |
1414 | <entry align="left">Need description.</entry> | 1424 | <entry align="left">Appends a value to the named flag on the |
1425 | variable "X".</entry> | ||
1415 | </row> | 1426 | </row> |
1416 | <row> | 1427 | <row> |
1417 | <entry align="left"><filename>d.prependVarFlag("X", flag, value)</filename></entry> | 1428 | <entry align="left"><filename>d.prependVarFlag("X", flag, value)</filename></entry> |
1418 | <entry align="left">Need description.</entry> | 1429 | <entry align="left">Prepends a value to the named flag on |
1430 | the variable "X".</entry> | ||
1419 | </row> | 1431 | </row> |
1420 | <row> | 1432 | <row> |
1421 | <entry align="left"><filename>d.delVarFlag("X", flag)</filename></entry> | 1433 | <entry align="left"><filename>d.delVarFlag("X", flag)</filename></entry> |
1422 | <entry align="left">Need description.</entry> | 1434 | <entry align="left">Deletes the named flag on the variable |
1435 | "X" from the datastore.</entry> | ||
1423 | </row> | 1436 | </row> |
1424 | <row> | 1437 | <row> |
1425 | <entry align="left"><filename>d.setVarFlags("X", flagsdict)</filename></entry> | 1438 | <entry align="left"><filename>d.setVarFlags("X", flagsdict)</filename></entry> |
1426 | <entry align="left">Sets the flags specified in | 1439 | <entry align="left">Sets the flags specified in |
1427 | the <filename>dict()</filename> parameter.</entry> | 1440 | the <filename>flagsdict()</filename> parameter. |
1441 | <filename>setVarFlags</filename> does not clear previous flags. | ||
1442 | Think of this operation as <filename>addVarFlags</filename>.</entry> | ||
1428 | </row> | 1443 | </row> |
1429 | <row> | 1444 | <row> |
1430 | <entry align="left"><filename>d.getVarFlags("X")</filename></entry> | 1445 | <entry align="left"><filename>d.getVarFlags("X")</filename></entry> |
1431 | <entry align="left">Returns a <filename>dict</filename> of the flags for | 1446 | <entry align="left">Returns a <filename>flagsdict</filename> of the flags for |
1432 | the variable "X".</entry> | 1447 | the variable "X".</entry> |
1433 | </row> | 1448 | </row> |
1434 | <row> | 1449 | <row> |
1435 | <entry align="left"><filename>d.delVarFlags</filename></entry> | 1450 | <entry align="left"><filename>d.delVarFlags("X")</filename></entry> |
1436 | <entry align="left">Deletes all the flags for a variable.</entry> | 1451 | <entry align="left">Deletes all the flags for the variable "X".</entry> |
1437 | </row> | 1452 | </row> |
1438 | </tbody> | 1453 | </tbody> |
1439 | </tgroup> | 1454 | </tgroup> |