summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-02 16:36:08 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-04 14:48:15 +0100
commit852266d0bcc13e46c083e102ddb5f0eda0d59513 (patch)
tree5000c698c813f7ea36ecd6c49439763cf9782d01 /bitbake
parent34889669265f341ccd7425fe121948b13e5b7c38 (diff)
downloadpoky-852266d0bcc13e46c083e102ddb5f0eda0d59513.tar.gz
bitbake: usermanual: Improve task dependency documentation to match reality
(Bitbake rev: f67c0606fc681359fb0c68be55cfc9f11d410f17) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/doc/manual/usermanual.xml22
1 files changed, 10 insertions, 12 deletions
diff --git a/bitbake/doc/manual/usermanual.xml b/bitbake/doc/manual/usermanual.xml
index f894dfc167..81b301a370 100644
--- a/bitbake/doc/manual/usermanual.xml
+++ b/bitbake/doc/manual/usermanual.xml
@@ -228,7 +228,7 @@ addtask printdate before do_build</screen></para>
228 <para>'nostamp' - don't generate a stamp file for a task. This means the task is always rexecuted.</para> 228 <para>'nostamp' - don't generate a stamp file for a task. This means the task is always rexecuted.</para>
229 <para>'fakeroot' - this task needs to be run in a fakeroot environment, obtained by adding the variables in FAKEROOTENV to the environment.</para> 229 <para>'fakeroot' - this task needs to be run in a fakeroot environment, obtained by adding the variables in FAKEROOTENV to the environment.</para>
230 <para>'umask' - the umask to run the task under.</para> 230 <para>'umask' - the umask to run the task under.</para>
231 <para> For the 'deptask', 'rdeptask', 'recdeptask' and 'recrdeptask' flags please see the dependencies section.</para> 231 <para> For the 'deptask', 'rdeptask', 'depends', 'rdepends' and 'recrdeptask' flags please see the dependencies section.</para>
232 </section> 232 </section>
233 233
234 <section> 234 <section>
@@ -308,37 +308,35 @@ SRC_URI_append_1.0.7+ = "file://some_patch_which_the_new_versions_need.patch;pat
308 </section> 308 </section>
309 <section> 309 <section>
310 <title>Dependency handling</title> 310 <title>Dependency handling</title>
311 <para>BitBake 1.7.x onwards works with the metadata at the task level since this is optimal when dealing with multiple threads of execution. A robust method of specifing task dependencies is therefore needed. </para> 311 <para>BitBake handles dependencies at the task level since to allow for efficient operation with multiple processed executing in parallel. A robust method of specifying task dependencies is therefore needed. </para>
312 <section> 312 <section>
313 <title>Dependencies internal to the .bb file</title> 313 <title>Dependencies internal to the .bb file</title>
314 <para>Where the dependencies are internal to a given .bb file, the dependencies are handled by the previously detailed addtask directive.</para> 314 <para>Where the dependencies are internal to a given .bb file, the dependencies are handled by the previously detailed addtask directive.</para>
315 </section> 315 </section>
316 316
317 <section> 317 <section>
318 <title>DEPENDS</title> 318 <title>Build Dependencies</title>
319 <para>DEPENDS lists build time dependencies. The 'deptask' flag for tasks is used to signify the task of each item listed in DEPENDS which must have completed before that task can be executed.</para> 319 <para>DEPENDS lists build time dependencies. The 'deptask' flag for tasks is used to signify the task of each item listed in DEPENDS which must have completed before that task can be executed.</para>
320 <para><screen>do_configure[deptask] = "do_populate_staging"</screen></para> 320 <para><screen>do_configure[deptask] = "do_populate_staging"</screen></para>
321 <para>means the do_populate_staging task of each item in DEPENDS must have completed before do_configure can execute.</para> 321 <para>means the do_populate_staging task of each item in DEPENDS must have completed before do_configure can execute.</para>
322 </section> 322 </section>
323 <section> 323 <section>
324 <title>RDEPENDS</title> 324 <title>Runtime Dependencies</title>
325 <para>RDEPENDS lists runtime dependencies. The 'rdeptask' flag for tasks is used to signify the task of each item listed in RDEPENDS which must have completed before that task can be executed.</para> 325 <para>The PACKAGES variable lists runtime packages and each of these can have RDEPENDS and RRECOMMENDS runtime dependencies. The 'rdeptask' flag for tasks is used to signify the task of each item runtime dependency which must have completed before that task can be executed.</para>
326 <para><screen>do_package_write[rdeptask] = "do_package"</screen></para> 326 <para><screen>do_package_write[rdeptask] = "do_package"</screen></para>
327 <para>means the do_package task of each item in RDEPENDS must have completed before do_package_write can execute.</para> 327 <para>means the do_package task of each item in RDEPENDS must have completed before do_package_write can execute.</para>
328 </section> 328 </section>
329 <section> 329 <section>
330 <title>Recursive DEPENDS</title> 330 <title>Recursive Dependencies</title>
331 <para>These are specified with the 'recdeptask' flag and is used signify the task(s) of each DEPENDS which must have completed before that task can be executed. It applies recursively so the DEPENDS of each item in the original DEPENDS must be met and so on.</para> 331 <para>These are specified with the 'recrdeptask' flag which is used signify the task(s) of dependencies which must have completed before that task can be executed. It works by looking though the build and runtime dependencies of the current recipe as well as any inter-task dependencies the task has, then adding a dependency on the listed task. It will then recurse through the dependencies of those tasks and so on.</para>
332 </section> 332 <para>It may be desireable to recurse not just through the dependencies of those tasks but through the build and runtime dependencies of dependent tasks too. If that is the case, the taskname itself should be referenced in the task list, e.g. do_a[recrdeptask] = "do_a do_b".</para>
333 <section>
334 <title>Recursive RDEPENDS</title>
335 <para>These are specified with the 'recrdeptask' flag and is used signify the task(s) of each RDEPENDS which must have completed before that task can be executed. It applies recursively so the RDEPENDS of each item in the original RDEPENDS must be met and so on. It also runs all DEPENDS first.</para>
336 </section> 333 </section>
337 <section> 334 <section>
338 <title>Inter task</title> 335 <title>Inter task</title>
339 <para>The 'depends' flag for tasks is a more generic form of which allows an interdependency on specific tasks rather than specifying the data in DEPENDS or RDEPENDS.</para> 336 <para>The 'depends' flag for tasks is a more generic form of which allows an interdependency on specific tasks rather than specifying the data in DEPENDS.</para>
340 <para><screen>do_patch[depends] = "quilt-native:do_populate_staging"</screen></para> 337 <para><screen>do_patch[depends] = "quilt-native:do_populate_staging"</screen></para>
341 <para>means the do_populate_staging task of the target quilt-native must have completed before the do_patch can execute.</para> 338 <para>means the do_populate_staging task of the target quilt-native must have completed before the do_patch can execute.</para>
339 <para>The 'rdepends' flag works in a similar way but takes targets in the runtime namespace instead of the build time dependency namespace.
342 </section> 340 </section>
343 </section> 341 </section>
344 342