summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorSamuel MARTIN <s.martin49@gmail.com>2012-03-18 09:54:03 +0100
committerPeter Korsgaard <jacmet@sunsite.dk>2012-03-18 22:12:45 +0100
commit6372f4e64600335b5ff7d07e3b78baf2fa6cce59 (patch)
treee9a673159995d1e5e09e7c69a087eafe349b9aa7 /docs
parent22937a37507f6e032b4c6a09ed3c45a982296176 (diff)
downloadbuildroot-novena-6372f4e64600335b5ff7d07e3b78baf2fa6cce59.tar.gz
buildroot-novena-6372f4e64600335b5ff7d07e3b78baf2fa6cce59.zip
manual: update Config.in dependency explainations
[Peter: adjusted according to Arnout's suggestions] Signed-off-by: Samuel MARTIN <s.martin49@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'docs')
-rw-r--r--docs/manual/adding-packages-directory.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt
index 04be820ce..2670f2fe9 100644
--- a/docs/manual/adding-packages-directory.txt
+++ b/docs/manual/adding-packages-directory.txt
@@ -87,6 +87,59 @@ comment "acl requires a toolchain with LARGEFILE support"
--------------------------
+Note that these two dependency types are only transitive with the
+dependencies of the same kind.
+
+This means, in the following example:
+
+--------------------------
+config BR2_PACKAGE_A
+ bool "Package A"
+
+config BR2_PACKAGE_B
+ bool "Package B"
+ depends on BR2_PACKAGE_A
+
+config BR2_PACKAGE_C
+ bool "Package C"
+ depends on BR2_PACKAGE_B
+
+config BR2_PACKAGE_D
+ bool "Package D"
+ select BR2_PACKAGE_B
+
+config BR2_PACKAGE_E
+ bool "Package E"
+ select BR2_PACKAGE_D
+--------------------------
+
+* Selecting +Package C+ will be visible if +Package B+ has been
+ selected, which in turn is only visible if +Package A+ has been
+ selected.
+
+* Selecting +Package E+ will select +Package D+, which will select
+ +Package B+, it will not check for the dependencies of +Package B+,
+ so it will not select +Package A+.
+
+* Since +Package B+ is selected but +Package A+ is not, this violates
+ the dependency of +Package B+ on +Package A+. Therefore, in such a
+ situation, the transitive dependency has to be added explicitly:
+
+--------------------------
+config BR2_PACKAGE_D
+ bool "Package D"
+ select BR2_PACKAGE_B
+ depends on BR2_PACKAGE_A
+
+config BR2_PACKAGE_E
+ bool "Package E"
+ select BR2_PACKAGE_D
+ depends on BR2_PACKAGE_A
+--------------------------
+
+Overall, for package library dependencies, +select+ should be
+preferred.
+
Note that such dependencies will make sure that the dependency option
is also enabled, but not necessarily built before your package. To do
so, the dependency also needs to be expressed in the +.mk+ file of the