summaryrefslogtreecommitdiffstats
path: root/Documentation/kbuild
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-12-04 03:58:56 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-12-04 03:58:56 +0000
commit1d67e90f19a7acfd9a05dc59678e7d0c5090bd0d (patch)
tree357efc7b93f8f5102110d20d293f41360ec212fc /Documentation/kbuild
parentaea27b2e18d69af87e673972246e66657b4fa274 (diff)
Merge with Linux 2.3.21.
Diffstat (limited to 'Documentation/kbuild')
-rw-r--r--Documentation/kbuild/config-language.txt68
1 files changed, 38 insertions, 30 deletions
diff --git a/Documentation/kbuild/config-language.txt b/Documentation/kbuild/config-language.txt
index 079f0c751..dce6086f9 100644
--- a/Documentation/kbuild/config-language.txt
+++ b/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 @@ Here are the basic grammar elements.
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 @@ This verb assigns the value of /word/ to /symbol/. Any hexadecimal
number is a legal value.
Configure: implemented
-Menuconfig: not implemented
-Xconfig: not implemented
+Menuconfig: implemented
+Xconfig: implemented
mconfig: implemented
Example:
@@ -377,8 +380,8 @@ This verb assigns /symbol/ the value /word/. Any decimal number is a
legal value.
Configure: implemented
-Menuconfig: not implemented
-Xconfig: not implemented
+Menuconfig: implemented
+Xconfig: implemented
mconfig: implemented
Example:
@@ -394,8 +397,8 @@ This verb assigns the value of /word/ to /symbol/. Legal input values
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 @@ As soon as this verb is implemented in all interpreters, please use it
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 @@ Example:
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 @@ mconfig: not implemented
-=== 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 @@ one choice, dep_tristate displays /prompt/ to the user, accepts a value
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 @@ up deeper problems with variable semantics in a random-execution language.
Configure: implemented
Menuconfig: implemented
-Xconfig: not implemented
+Xconfig: implemented (with bugs)
mconfig: implemented
@@ -570,14 +583,9 @@ Menuconfig: implemented
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.