|
@@ -46,6 +46,51 @@ supposed to contain anything but the 'bare' name of the package.
|
|
|
source "package/libfoo/Config.in"
|
|
|
--------------------------
|
|
|
|
|
|
+The +Config.in+ file of your package must also ensure that
|
|
|
+dependencies are enabled. Typically, Buildroot uses the following
|
|
|
+rules:
|
|
|
+
|
|
|
+* Use a +select+ type of dependency for dependencies on
|
|
|
+ libraries. These dependencies are generally not obvious and it
|
|
|
+ therefore make sense to have the kconfig system ensure that the
|
|
|
+ dependencies are selected. For example, the _libgtk2_ package uses
|
|
|
+ +select BR2_PACKAGE_LIBGLIB2+ to make sure this library is also
|
|
|
+ enabled.
|
|
|
+
|
|
|
+* Use a +depends on+ type of dependency when the user really needs to
|
|
|
+ be aware of the dependency. Typically, Buildroot uses this type of
|
|
|
+ dependency for dependencies on toolchain options (large file
|
|
|
+ support, RPC support, IPV6 support), or for dependencies on "big"
|
|
|
+ things, such as the X.org system. In some cases, especially
|
|
|
+ dependency on toolchain options, it is recommended to add a
|
|
|
+ +comment+ displayed when the option is not enabled, so that the user
|
|
|
+ knows why the package is not available.
|
|
|
+
|
|
|
+An example illustrates both the usage of +select+ and +depends on+.
|
|
|
+
|
|
|
+--------------------------
|
|
|
+config BR2_PACKAGE_ACL
|
|
|
+ bool "acl"
|
|
|
+ select BR2_PACKAGE_ATTR
|
|
|
+ depends on BR2_LARGEFILE
|
|
|
+ help
|
|
|
+ POSIX Access Control Lists, which are used to define more
|
|
|
+ fine-grained discretionary access rights for files and
|
|
|
+ directories.
|
|
|
+ This package also provides libacl.
|
|
|
+
|
|
|
+ http://savannah.nongnu.org/projects/acl
|
|
|
+
|
|
|
+comment "acl requires a toolchain with LARGEFILE support"
|
|
|
+ depends on !BR2_LARGEFILE
|
|
|
+--------------------------
|
|
|
+
|
|
|
+
|
|
|
+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
|
|
|
+package.
|
|
|
+
|
|
|
The +.mk+ file
|
|
|
~~~~~~~~~~~~~~
|
|
|
|