From 666a7b09241373731c1c2cd204a795e02f29d93d Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Mon, 10 Feb 2014 16:18:47 -0600 Subject: bitbake: user-manual-metadata.xml: Re-write the "Dependencies" section. General edits and dumping of the useless "Overview" section. (Bitbake rev: b11ad97b9334a86b2f3b10bdf5597910854475bd) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- bitbake/doc/user-manual/user-manual-metadata.xml | 114 +++++++++++++++-------- 1 file changed, 73 insertions(+), 41 deletions(-) (limited to 'bitbake/doc/user-manual/user-manual-metadata.xml') diff --git a/bitbake/doc/user-manual/user-manual-metadata.xml b/bitbake/doc/user-manual/user-manual-metadata.xml index 2e19f4572c..80e5b648db 100644 --- a/bitbake/doc/user-manual/user-manual-metadata.xml +++ b/bitbake/doc/user-manual/user-manual-metadata.xml @@ -1502,24 +1502,36 @@
Dependencies -
- Overview + + To allow for efficient operation given multiple processes + executing in parallel, BitBake handles dependencies at + the task level. + BitBake supports a robust method to handle these dependencies. + - - BitBake handles dependencies at the task level since to - allow for efficient operation with multiple - processes executing in parallel, a robust method of - specifying task dependencies is needed. - -
+ + This section describes several types of dependency mechanisms. +
Dependencies Internal to the <filename>.bb</filename> File - Where the dependencies are internal to a given - .bb file, the dependencies are handled by the - previously detailed addtask directive. + BitBake uses the addtask directive + to manage dependencies that are internal to a given recipe + file. + You can use the addtask directive to + indicate when a task is dependent on other tasks or when + other tasks depend on that recipe. + Here is an example: + + addtask printdate after do_fetch before do_build + + In this example, the printdate task is + depends on the completion of the do_fetch + task. + And, the do_build depends on the completion + of the printdate task.
@@ -1527,15 +1539,18 @@ Build Dependencies - 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. + BitBake uses the + DEPENDS + variable to manage build time dependencies. + The "deptask" varflag for tasks signifies the task of each + item listed in DEPENDS that must + complete before that task can be executed. + Here is an example: do_configure[deptask] = "do_populate_staging" - In the previous example, the do_populate_staging - task of each item in DEPENDS must have completed before + In this example, the do_populate_staging + task of each item in DEPENDS must complete before do_configure can execute.
@@ -1543,11 +1558,20 @@
Runtime Dependencies + + BitBake uses the + PACKAGES, + RDEPENDS, and + RRECOMMENDS + variables to manage runtime dependencies. + + The PACKAGES variable lists runtime - packages and each of these can have RDEPENDS and + packages. + Each of those packages can have RDEPENDS and RRECOMMENDS runtime dependencies. - The 'rdeptask' flag for tasks is used to signify the task of each + 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. @@ -1563,25 +1587,29 @@ Recursive Dependencies - These are specified with the 'recrdeptask' flag - which is used to 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. + BitBake uses the "recrdeptask" flag to manage + recursive task dependencies. + BitBake looks through the build-time and runtime + dependencies of the current recipe, looks through + the task's inter-task + dependencies, and then adds dependencies for the + listed task. + Once BitBake has accomplished this, it recursively works through + the dependencies of those tasks. + Iterative passes continue until all dependencies are discovered + and added. - It may be desirable 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"). + You might want to not only have BitBake look for + dependencies of those tasks, but also have BitBake look + for build-time and runtime dependencies of the dependent + tasks as well. + If that is the case, you need to reference the task name + itself in the task list: + + do_a[recrdeptask] = "do_a do_b" +
@@ -1589,19 +1617,23 @@ Inter-Task Dependencies - The 'depends' flag for tasks is a more generic form which - allows an inter-dependency on specific tasks rather than specifying + BitBake uses the "depends" flag in a more generic form + to manage inter-task dependencies. + This more generic form allows for inter-dependency + checks for specific tasks rather than checks for the data in DEPENDS. + Here is an example: do_patch[depends] = "quilt-native:do_populate_staging" - In the previous example, the do_populate_staging - task of the target quilt-native must have completed before the + In this example, the do_populate_staging + task of the target quilt-native + must have completed before the do_patch task can execute. - The 'rdepends' flag works in a similar way but takes targets + The "rdepends" flag works in a similar way but takes targets in the runtime namespace instead of the build-time dependency namespace. -- cgit v1.2.3-54-g00ecf