author | kergoth <kergoth> | 2002-10-31 17:11:35 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-10-31 17:11:35 (UTC) |
commit | d955226c2197578f69c510282a4e9ad1ea8fe771 (patch) (unidiff) | |
tree | 0d8f210dd012559df4e3432ccc8ce96e9bd15853 /scripts/kconfig/lkc_overview | |
parent | 16fcb285f9ba7c514fc3f2695768a82feeb7182b (diff) | |
download | opie-d955226c2197578f69c510282a4e9ad1ea8fe771.zip opie-d955226c2197578f69c510282a4e9ad1ea8fe771.tar.gz opie-d955226c2197578f69c510282a4e9ad1ea8fe771.tar.bz2 |
Initial bits to start work on revamping the buildsystem
Diffstat (limited to 'scripts/kconfig/lkc_overview') (more/less context) (ignore whitespace changes)
-rw-r--r-- | scripts/kconfig/lkc_overview | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/scripts/kconfig/lkc_overview b/scripts/kconfig/lkc_overview new file mode 100644 index 0000000..e9db60e --- a/dev/null +++ b/scripts/kconfig/lkc_overview | |||
@@ -0,0 +1,111 @@ | |||
1 | Introduction | ||
2 | ------------ | ||
3 | |||
4 | The configuration database is collection of configuration options | ||
5 | organized in a tree structure: | ||
6 | |||
7 | +- Code maturity level options | ||
8 | | +- Prompt for development and/or incomplete code/drivers | ||
9 | +- General setup | ||
10 | | +- Networking support | ||
11 | | +- System V IPC | ||
12 | | +- BSD Process Accounting | ||
13 | | +- Sysctl support | ||
14 | +- Loadable module support | ||
15 | | +- Enable loadable module support | ||
16 | | +- Set version information on all module symbols | ||
17 | | +- Kernel module loader | ||
18 | +- ... | ||
19 | |||
20 | Every entry has its own dependencies. These dependencies are used | ||
21 | to determine the visible of an entry. Any child entry is only | ||
22 | visible if its parent entry is also visible. | ||
23 | |||
24 | Menu entries | ||
25 | ------------ | ||
26 | |||
27 | A single configuration option is defined like this: | ||
28 | |||
29 | config MODVERSIONS | ||
30 | bool "Set version information on all module symbols" | ||
31 | depends MODULES | ||
32 | help | ||
33 | Usually, modules have to be recompiled whenever you switch to a new | ||
34 | kernel. ... | ||
35 | |||
36 | Every line starts with a key word and can be followed by multiple arguments. | ||
37 | "config" starts a new config entry. The following lines define attributes | ||
38 | for this config option. Attributes can be the type of the config option, | ||
39 | input prompt, dependencies, help text and default values. A config option | ||
40 | can be defined multiple times, but every definition can have only a single | ||
41 | input prompt and the type must not conflict. | ||
42 | |||
43 | Menu dependencies | ||
44 | ----------------- | ||
45 | |||
46 | Dependencies define the visibility of a menu entry. When a dependency | ||
47 | exprecession evaluates not to 'n', the entry is visible. Additionally | ||
48 | the dependency limits the input range of tristate choice symbols. | ||
49 | |||
50 | Menu structure | ||
51 | -------------- | ||
52 | |||
53 | The position of a menu entry in the tree is determined in two ways. First | ||
54 | it can be specified explicitely: | ||
55 | |||
56 | menu "Network device support" | ||
57 | depends NET | ||
58 | |||
59 | config NETDEVICES | ||
60 | ... | ||
61 | |||
62 | endmenu | ||
63 | |||
64 | All entries within the "menu" ... "endmenu" block become a submenu of | ||
65 | "Processor type and features". All subentries have the same dependencies | ||
66 | than the menu entry, e.g. this means the dependency "NET" is added to the | ||
67 | dependencies of the option NETDEVICES. | ||
68 | The other way to generate the menu structure is done by analyzing the | ||
69 | dependencies. If a menu entry somehow depends on the previous entry, it | ||
70 | can be made a submenu of it. | ||
71 | |||
72 | config MODULES | ||
73 | bool "Enable loadable module support" | ||
74 | |||
75 | config MODVERSIONS | ||
76 | bool "Set version information on all module symbols" | ||
77 | depends MODULES | ||
78 | |||
79 | comment "module support disabled" | ||
80 | depends !MODULES | ||
81 | |||
82 | MODVERSIONS directly depends on MODULES, this means it's only visible if | ||
83 | MODULES is different from 'n'. The comment on the other hand is always | ||
84 | visible when MODULES it's visible (the dependency of MODULES are part | ||
85 | of the comment dependencies). | ||
86 | |||
87 | Menu attributes | ||
88 | --------------- | ||
89 | |||
90 | A menu attribute can have a number of attributes. Not all of them are | ||
91 | applicable everywhere (see spec). | ||
92 | Input prompt: Every menu entry can have at most one menu entry, which | ||
93 | is used to display to the user. An input prompt is either defined with | ||
94 | "prompt" or it can be defined with the type. | ||
95 | Type definition: Every config option must have a type, known types are | ||
96 | currently: bool, tristate, string, hex, integer. | ||
97 | Default value: It's possible to assign a config option a default value. | ||
98 | This default is always used, when the option wasn't explicitly set by | ||
99 | the user. This means it's either used as default value for input prompts | ||
100 | or the value is saved to the kernel configuration. Multiple default | ||
101 | values can be specified and every one has it's own dependencies. If | ||
102 | multiple default values are visible, the first defined one is active. | ||
103 | A default is not limited to a single menu entry, this means the default | ||
104 | doesn't has to be defined with a input prompt, but it can also be | ||
105 | overridden by prepend it with another definition. | ||
106 | Dependencies: Dependencies can be either defined with "depends", then | ||
107 | there are applied to all attributes of a menu entry, or attribute | ||
108 | specific dependencies can be defined with "if", which immediately | ||
109 | follows the attribute. | ||
110 | |||
111 | |||