版权声明:本文章参考了《Linux内核官方文档》。未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!!
菜单入口 "菜单入口名"
[依赖]
[反向依赖]
[引入其它Kconfig文件]
... ...
[帮助]
配置项 symbol
值类型
[输入提示]
[默认值]
[依赖]
[反向依赖]
... ...
[帮助]
bool/tristate/int/hex/string
值类型,只有配置选项有值类型。包括: bool——值为y或n、 tristate——值为y或m或n、string——值为字符串、int——值为十进制整数、 hex——值为十六进制整数
prompt "提示字符串" [if
输入提示:每个菜单入口最多只能有一个展示给用户看的输入提示,可以使用“if”来表示输入提示的依赖性,这个依赖性是可选的。
default
默认值:一个配置选项可以有任意多个默认值,但只有第一个有效的。当输入提示是可见时,才能看到默认值,并且可以输入一个值将默认值覆盖。与输入提示一样,可以使用“if”来表示默认值的依赖性,这个依赖性是可选的。
def_bool/def_tristate
值类型+默认值:说明值类型时同时说明默认值。可以使用“if”来表示默认值的依赖性,这个依赖性是可选的。
requires(或depends on)
,
依赖: 依赖项给菜单入口或配置项定义了一个依赖规则,只有当expr为真或被选中时,该菜单入口或配置项才有效,依赖对菜单入口或配置项中的其它属性都有效。
select
反向依赖:当前配置项被选中时,选中symbol,忽略依赖项和手动设置值。只有boolean和tristate类型的symbol可以使用反向依赖。
imply
弱反向依赖:当前配置项被选中时,选中symbol,但是symbol仍然可由依赖或者手动配置为n。
range
,
值范围:限定int和hex类型symbol的输入值。用户只能输入一个大于等于第一个symbol的值,并且小于等于第二个symbol的值。
visible if
只能用于menu/endmenu中,当expr为真时菜单可见。
---help---/help
帮助:定义了一个帮助文本。帮助文本的结尾是根据缩进级别来决定的,这就意味着如果帮助文本中某一行相对于第一行有更小的缩进,那么这一行就是帮助文档的最后一行。”—help—”和“help”在使用功能上没有区别,”—help—”是用来作为对开发者的一种提示,它显式区别于文档中的配置选项“help”。
option
其它属性:各种不常见的选项的通过这个选项来定义,比如修改菜单入口的行为和配置symbol。下面这些配置当前是允许的:
defconfig_list
modules
env=
, allnoconfig_y
补充:
值类型后可以紧跟一个输入提示(也可以单独使用一个提示属性),所以下面的这两个例子是等价的:
bool "Networking support" #和 bool prompt "Networking support"
依赖对菜单入口中的其它属性都有效,下面两种写法是等价的
bool"foo" if BAR default y if BAR #和 depends on BAR bool "foo" default y
并非每个菜单入口或者配置项都具有所有的属性。
限制一个配置项只能编译为模块或不选择。
config FOO dependson m
限制一个配置项只能编译或模块化
config FOO tristate "foo" select FOO if m default m
如果一个配置项只有值类型属性,则它的选中只能通过其他配置项的select属性
<expr> ::= <symbol> (1)
<symbol> '=' <symbol> (2)
<symbol> '!=' <symbol> (3)
<symbol1> '<' <symbol2> (4)
<symbol1> '>' <symbol2> (4)
<symbol1> '<=' <symbol2> (4)
<symbol1> '>=' <symbol2> (4)
'(' <expr> ')' (5)
'!' <expr> (6)
<expr> '&&' <expr> (7)
<expr> '||' <expr> (8)
表达式以降序的顺序排列在下面。
一个表达式的值可以是’n’,’m’或’y’(或者相对于0,1,2)。当表达式的值是m或者y的时候,菜单入口就是可见的。
存在两种类型的symbol:常数symbol和非常数symbol。非常数symbol是最常见的一类symbol,定义的时候使用‘config’来声明。非常数symbol由字母和下划线组成。
常数symbol只是表达式的一部分。常数symbol通常被单引号或者双引号包围着。在引号中,任何字母都是允许的,并且可以使用‘\’进行转义。
mainmenu "主菜单名字"
menu "string"
... ...
endmenu
menuconfig 配置关键字
... ...
config 配置关键字
... ...
choice
... ...
endchoice
comment
if
... ...
endif
source "...dir/Kconfig"
menu "Network device support"
depends on NET
config NETDEVICES1
...
config NETDEVICES2
...
menuconfig NETDEVICES3
...
config NETDEVICES1
...
config NETDEVICES2
...
endmenu
config MODULES
bool"Enable loadable module support"
config MODVERSIONS
bool"Set version information on all module symbols"
dependson MODULES
comment "module support disabled"
dependson !MODULES
版权声明:本文章参考了《Linux内核官方文档》。未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!!