patch-2.3.47 linux/Documentation/kbuild/config-language.txt

Next file: linux/Documentation/magic-number.txt
Previous file: linux/Documentation/filesystems/devfs/ToDo
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.46/linux/Documentation/kbuild/config-language.txt linux/Documentation/kbuild/config-language.txt
@@ -120,6 +120,7 @@
     Dependent statements:
 
         dep_bool        /prompt/ /symbol/ /dep/ ...
+        dep_mbool       /prompt/ /symbol/ /dep/ ...
         dep_hex         /prompt/ /symbol/ /word/ /dep/ ...
         dep_int         /prompt/ /symbol/ /word/ /dep/ ...
         dep_string      /prompt/ /symbol/ /word/ /dep/ ...
@@ -386,8 +387,8 @@
 
 Example:
 
-    # Not from the corpus
-    define_int CONFIG_UID_TORVALDS 2026
+    # drivers/char/ftape/Config.in
+    define_int CONFIG_FT_ALPHA_CLOCK 0
 
 
 
@@ -424,10 +425,15 @@
 
 Example:
 
-    # not from the corpus
-    if [ "$CONFIG_ZFTAPE" != "n" ]; then
-      comment 'The compressor will be built as a module only!'
-      define_tristate CONFIG_ZFT_COMPRESSOR m
+    # drivers/video/Config.in
+    if [ "$CONFIG_FB_AMIGA" = "y" ]; then
+       define_tristate CONFIG_FBCON_AFB y
+       define_tristate CONFIG_FBCON_ILBM y
+    else
+       if [ "$CONFIG_FB_AMIGA" = "m" ]; then
+          define_tristate CONFIG_FBCON_AFB m
+          define_tristate CONFIG_FBCON_ILBM m
+       fi
     fi
 
 
@@ -438,6 +444,36 @@
 Any dependency which has a value of "y" does not restrict the input
 range.  Any dependency which has an empty value is ignored.
 Any dependency which has a value of "n", or which has some other value,
+(like "m") restricts the input range to "n".  Quoting dependencies is not
+allowed. Using dependencies with an empty value possible is not
+recommended.  See also dep_mbool below.
+
+If the input range is restricted to the single choice "n", dep_bool
+silently assigns "n" to /symbol/.  If the input range has more than
+one choice, dep_bool displays /prompt/ to the user, accepts a value
+from the user, and assigns that value to /symbol/.
+
+Configure:  implemented
+Menuconfig: implemented
+XConfig:    implemented
+mconfig:    implemented
+
+Example:
+
+    # drivers/net/Config.in
+    dep_bool 'Aironet 4500/4800 PCI support 'CONFIG_AIRONET4500_PCI $CONFIG_PCI
+
+Known bugs:
+- Xconfig does not write "# foo is not set" to .config (as well as
+  "#unset foo" to autoconf.h) if command is disabled by its dependencies.
+
+
+=== dep_mbool /prompt/ /symbol/ /dep/ ...
+
+This verb evaluates all of the dependencies in the dependency list.
+Any dependency which has a value of "y" or "m" does not restrict the
+input range.  Any dependency which has an empty value is ignored.
+Any dependency which has a value of "n", or which has some other value,
 restricts the input range to "n".  Quoting dependencies is not allowed.
 Using dependencies with an empty value possible is not recommended.
 
@@ -446,13 +482,18 @@
 one choice, dep_bool displays /prompt/ to the user, accepts a value
 from the user, and assigns that value to /symbol/.
 
+Notice that the only difference between dep_bool and dep_mbool
+is in the way of treating the "m" value as a dependency.
+
 Configure:  implemented
 Menuconfig: implemented
 XConfig:    implemented
-mconfig:    implemented
+mconfig:    not implemented
 
-    # not from the corpus
-    dep_bool 'RZ1000 chipset bugfix/support' CONFIG_BLK_DEV_RZ1000 $CONFIG_PCI
+Example:
+
+    # Not from the corpus
+    dep_mbool 'Packet socket: mmapped IO' CONFIG_PACKET_MMAP $CONFIG_PACKET
 
 Known bugs:
 - Xconfig does not write "# foo is not set" to .config (as well as
@@ -492,6 +533,11 @@
 Xconfig:    implemented
 mconfig:    implemented
 
+Example:
+
+    # drivers/char/Config.in
+    dep_tristate 'Parallel printer support' CONFIG_PRINTER $CONFIG_PARPORT
+
 Known bugs:
 - Xconfig does not write "# foo is not set" to .config (as well as
   "#unset foo" to autoconf.h) if command is disabled by its dependencies.
@@ -508,6 +554,13 @@
 Xconfig:    implemented (with bugs)
 mconfig:    implemented
 
+Example:
+
+    # arch/mips/config.in
+    unset CONFIG_PCI
+    unset CONFIG_MIPS_JAZZ
+    unset CONFIG_VIDEO_G364
+
 
 
 === choice /prompt/ /word/ /word/
@@ -538,6 +591,14 @@
 Xconfig:    implemented
 mconfig:    implemented
 
+Example:
+
+    # arch/i386/config.in
+    choice '  PCI access mode' \
+        "BIOS           CONFIG_PCI_GOBIOS       \
+         Direct         CONFIG_PCI_GODIRECT     \
+         Any            CONFIG_PCI_GOANY"       Any
+
 
 
 === nchoice /prompt/ /symbol/ /prompt/ /symbol/ ...
@@ -602,9 +663,6 @@
 Xconfig has some known bugs, and probably some unknown bugs too:
 
 - literals with an empty "" value are not properly handled.
-
-- tkparse gives the wrong precedence to -o, -a, and !.  Don't use both
-  -o and -a in an expression.  Don't use ! at all.
 
 
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)