本文转载
配置工具 | Makefile相关目标 | 依赖的程序 |
conf | config defconfig oldconfig … | conf.c、zconf.tab.c |
mconf | menuconfig | mconf.c、zconf.tab.c |
qconf | xconfig | qconf.c、kconfig_load.c、zconf.tab.c |
gconf | gconfig | gconf.c、kconfig_load.c、zconf.tab.c |
配置方法 | 功能 |
config | 通过命令行程序更新当前配置 |
menuconfig | 通过菜单程序更新当前配置 |
xconfig | 通过QT图形界面更新当前配置 |
gconfig | 通过GTK图形界面更新当前配置 |
oldconfig | 通过已经提供的.config文件更新当前配置 |
Randconfig | 对所有的选项随机配置 |
Defconfig | 对所有的选项缺省配置 |
allmodconfig | 对所有的选项尽可能选择“m” |
allyesconfig | 对所有的选项尽可能选择“y” |
allnoconfig | 对所有的选项尽可能选择“n”的最小配置 |
属性 | 语法 | 说明 |
输入提示 | "prompt" <prompt> ["if" <expr>] | 每个菜单选项最多只能有一个显示给用户的输入提示。可以用 "if" 来表示该提示的依赖关系,当然这是可选的。 |
默认值 | "default" <expr> ["if" <expr>] | 一个配置选项可以有任意多个默认值。如果有多个默认值,那么只有第一个被定义的值是可用的。默认值并不是只限于应用在定义他们的菜单选项。这就意味着默认值可以定义在任何地方或被更早的定义覆盖。如果用户没有设置(通过上面的输入提示),配置选项的值就是默认值。如果可以显示输入提示的话,就会把默认值显示给用户,并可以让用户进行修改。默认值的依赖关系可以用 "if" 添加。 |
依赖关系 | "depends on" /"requires" <expr> | 为一菜单选项定义依赖关系。如果定义了多个依赖关系,它们之间用 '&&' 间隔。依赖关系也可以应用到该菜单中所有的其它选项(同样接受一if表达式)。 |
反向依赖关系 | "select" <symbol> ["if" <expr>] | 尽管普通的依赖关系可以降低一选项的上限,反向依赖能将这一限制降的更低。当前菜单选项的值是symbol的最小值。如果symbol被选择了多次,上限就是其中的最大值。反向依赖只能用在 boolean 或 tristate 选项上。 |
数据范围 | "range" <symbol> <symbol> ["if" <expr>] | 为int和hex类型的选项设置可以接受输入值范围。用户只能输入大于等于第一个symbol,小于等于第二个symbol的值。 |
帮助信息 | "help" or "---help---" | 定义一帮助信息。帮助信息的结束就由缩进的水平决定的,这也就意味着信息是在第一个比帮助信息开始行的缩进小的行结束。"---help---" 和 "help" 在实现的作用上没有区别,"---help---" 有助于将文件中的配置逻辑与给开发人员的提示分开。 |
表达式 | 结果说明 |
<expr> ::= <symbol> | 将symbol赋给表达式。boolean和tristate类型的symbol直接赋给表达式。所有其它类型的symbol都赋 'n'。 |
<symbol> '=' <symbol> | 如果两个symbol相等,返回'y',否则为'n'。 |
<symbol> '!=' <symbol> | 如果两个symbol相等,返回'n',否则为'y'。 |
'(' <expr> ')' | 返回表达式的值。用于改变优先级。 |
'!' <expr> | 返回 (2-/expr/) 的结果。 |
<expr> '&&' <expr> | 返回 min(/expr/,/expr/) 的结果。 |
<expr> '||' <expr> | 返回 max(/expr/,/expr/) 的结果。 |
关键字 | 语法 | 说明 |
config | "config" <symbol> <config options> | 定义了一配置选项 <symbol> 并且可以接受任何前面介绍的属性。 |
menuconfig | "menuconfig" <symbol> <config options> | 此关键字和前面的关键字很相似,但它在前面的基础上要求所有的子选项作为独立的行显示。 |
choices | "choice" <choice options> <choice block> "endchoice" | 该关键字定义了一组选择项,并且选项可以是前面描述的任何属性。尽管boolean只允许选择一个配置选项,tristate可以抒多个配置选项设为'm',但选项只能是boolean或tristate类型。这可以在一个硬件有多个驱动的情况下使用,最终只有一个驱动被编译进/加载到内核,,但所有的驱动都可以编译成模块。选项可以接受的另一个选项是"optional",这样选项就被设置为'n',没有被选中的。 |
comment | "comment" <prompt> <comment options> | 这定义了在配置过程中显示给用户的注释,该注释还将写进输出文件中。唯一可用的可选项是依赖关系。 |
menu | "menu" <prompt> <menu options> <menu block> "endmenu" | 这里定义了一个菜单,详细信息请看前面的"菜单结构"。唯一可用的可选项是依赖关系。 |
if | "if" <expr> <if block> "endif" | 这里定义了if结构。依赖关系<expr>被加到所有在if ... endif 中的菜单选项中。 |
source | “source” <prompt> | 读取指定的配置文件。读取的文件也会解析生成菜单。 |
Makefile | 顶层Makefile |
.config | 内核配置文件 |
arch/$(ARCH)/Makefile | 具体架构的Makefile |
scripts/Makefile.* | 通用的规则等。面向所有的Kbuild Makefiles。 |
kbuild Makefiles | 内核源代码中大约有500个这样的文件 |
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |