diff options
| author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2014-03-06 09:48:37 -0600 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-03-09 18:59:04 -0700 |
| commit | 40ab94036081f9fdc4ebf6126b077149c2a97c31 (patch) | |
| tree | 65075fcb43ab2e731a9891063878d13addf0737e /bitbake | |
| parent | 96294ee40748dd96da7203cedf93a42e34b2a468 (diff) | |
| download | poky-40ab94036081f9fdc4ebf6126b077149c2a97c31.tar.gz | |
bitbake: user-manual: Review edits applied from Paul Eggleton.
Review of the entire manual by Paul. I have implemented his
suggestions throughout.
(Bitbake rev: 5cd310d1df194cd171691a4bcfb98024e2bc66b8)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
| -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> |
