patch-2.3.20 linux/Documentation/kbuild/config-language.txt
Next file: linux/Documentation/kernel-parameters.txt
Previous file: linux/Documentation/devices.txt
Back to the patch index
Back to the overall index
- Lines: 160
- Date:
Thu Oct 7 10:17:08 1999
- Orig file:
v2.3.19/linux/Documentation/kbuild/config-language.txt
- Orig date:
Mon Feb 1 12:03:20 1999
diff -u --recursive --new-file v2.3.19/linux/Documentation/kbuild/config-language.txt linux/Documentation/kbuild/config-language.txt
@@ -1,5 +1,5 @@
Config Language Specification
-21 January 1999
+28 September 1999
Michael Elizabeth Chastain, <mailto:mec@shout.net>
@@ -82,7 +82,10 @@
double-quoted string. If the word is unquoted or double quoted,
then $-substition will be performed on the word.
- A /symbol/ is a single unquoted word.
+ A /symbol/ is a single unquoted word. A symbol must have a name of
+ the form CONFIG_*. scripts/mkdep.c relies on this convention in order
+ to generate dependencies on individual CONFIG_* symbols instead of
+ making one massive dependency on include/linux/autoconf.h.
A /dep/ is a dependency. Syntactically, it is a /word/. At run
time, a /dep/ must evaluate to "y", "m", "n", or "".
@@ -355,8 +358,8 @@
number is a legal value.
Configure: implemented
-Menuconfig: not implemented
-Xconfig: not implemented
+Menuconfig: implemented
+Xconfig: implemented
mconfig: implemented
Example:
@@ -377,8 +380,8 @@
legal value.
Configure: implemented
-Menuconfig: not implemented
-Xconfig: not implemented
+Menuconfig: implemented
+Xconfig: implemented
mconfig: implemented
Example:
@@ -394,8 +397,8 @@
are any ASCII string, except for the characters '"' and '\\'.
Configure: implemented
-Menuconfig: not implemented
-Xconfig: not implemented
+Menuconfig: implemented
+Xconfig: implemented
mconfig: implemented
Example
@@ -414,9 +417,9 @@
instead of define_bool to define tristate values. This aids in static
type checking.
-Configure: not implemented
-Menuconfig: not implemented
-Xconfig: not implemented
+Configure: implemented
+Menuconfig: implemented
+Xconfig: implemented
mconfig: implemented
Example:
@@ -433,22 +436,27 @@
This verb evaluates all of the dependencies in the dependency list.
Any dependency which has a value of "y" does not restrict the input
-range. Any dependency which has a value of "n", or which has some
-other value, restricts the input range to "n".
+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.
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: not implemented
-Menuconfig: not implemented
-XConfig: not implemented
+Configure: implemented
+Menuconfig: implemented
+XConfig: implemented
mconfig: implemented
# not from the corpus
dep_bool 'RZ1000 chipset bugfix/support' CONFIG_BLK_DEV_RZ1000 $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_hex /prompt/ /symbol/ /word/ /dep/ ...
@@ -464,13 +472,15 @@
-=== dep_tristate /prompt/ /symbol /dep/ ...
+=== dep_tristate /prompt/ /symbol/ /dep/ ...
This verb evaluates all of the dependencies in the dependency list.
-Any dependency which as a value of "y" does not restrict the input range.
+Any dependency which has a value of "y" does not restrict the input range.
Any dependency which has a value of "m" restricts the input range to
-"m" or "n". Any dependency which has a value of "n", or which has some
-other value, restricts the input range to "n".
+"m" or "n". 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.
If the input range is restricted to the single choice "n", dep_tristate
silently assigns "n" to /symbol/. If the input range has more than
@@ -478,10 +488,13 @@
from the user, and assigns that value to /symbol/.
Configure: implemented
-Menuconfig: implemented (but silently ignores dependencies after the first)
-Xconfig: implemented (but silently ignores dependencies after the first)
+Menuconfig: implemented
+Xconfig: implemented
mconfig: implemented
+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.
=== unset /symbol/ ...
@@ -492,7 +505,7 @@
Configure: implemented
Menuconfig: implemented
-Xconfig: not implemented
+Xconfig: implemented (with bugs)
mconfig: implemented
@@ -570,14 +583,9 @@
XConfig: implemented, with bugs
mconfig: implemented
-Xconfig has several known bugs, and probably some unknown bugs too:
-
-- In a comparison, if the left-hand atom is a variable and that variable
- is from a choice list, the right-hand atom must be "y".
+Xconfig has some known bugs, and probably some unknown bugs too:
-- In a comparison, if the right-hand atom is a variable and that variable
- is from a choice list, you lose. tkparse will throw a segmentation
- violation, silently generate bizarre TCL code, or something else.
+- 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)