summaryrefslogtreecommitdiffstats
path: root/Documentation/kbuild
diff options
context:
space:
mode:
authorEugeniu Rosca <roscaeugeniu@gmail.com>2016-08-03 00:40:34 +0200
committerJonathan Corbet <corbet@lwn.net>2016-08-18 15:23:31 -0600
commitcfd7c612baa61af61b2c57b7b8321adf2d1b5d90 (patch)
tree8bef0d6797a341c5c40a3bf7875072076feea0d4 /Documentation/kbuild
parent22c6bbe41ecf7606c3effc92b54d5e939e806866 (diff)
downloadlinux-cfd7c612baa61af61b2c57b7b8321adf2d1b5d90.tar.gz
linux-cfd7c612baa61af61b2c57b7b8321adf2d1b5d90.tar.bz2
linux-cfd7c612baa61af61b2c57b7b8321adf2d1b5d90.zip
kconfig-language: improve menuconfig usage description
Improper menuconfig usage leads to empty menu entries. zconfdump() is able to reveal some real-life examples: - menuconfig VFIO_NOIOMMU - menuconfig RESET_CONTROLLER - menuconfig SND_ARM To avoid future occurrences of those, improve the menuconfig syntax description. Signed-off-by: Eugeniu Rosca <rosca.eugeniu@gmail.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'Documentation/kbuild')
-rw-r--r--Documentation/kbuild/kconfig-language.txt39
1 files changed, 38 insertions, 1 deletions
diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
index db101857b2c9..069fcb3eef6e 100644
--- a/Documentation/kbuild/kconfig-language.txt
+++ b/Documentation/kbuild/kconfig-language.txt
@@ -274,7 +274,44 @@ menuconfig:
This is similar to the simple config entry above, but it also gives a
hint to front ends, that all suboptions should be displayed as a
-separate list of options.
+separate list of options. To make sure all the suboptions will really
+show up under the menuconfig entry and not outside of it, every item
+from the <config options> list must depend on the menuconfig symbol.
+In practice, this is achieved by using one of the next two constructs:
+
+(1):
+menuconfig M
+if M
+ config C1
+ config C2
+endif
+
+(2):
+menuconfig M
+config C1
+ depends on M
+config C2
+ depends on M
+
+In the following examples (3) and (4), C1 and C2 still have the M
+dependency, but will not appear under menuconfig M anymore, because
+of C0, which doesn't depend on M:
+
+(3):
+menuconfig M
+ config C0
+if M
+ config C1
+ config C2
+endif
+
+(4):
+menuconfig M
+config C0
+config C1
+ depends on M
+config C2
+ depends on M
choices: