Kconfig

来源:互联网 发布:每天编程一小时网站 编辑:程序博客网 时间:2024/06/06 10:50

配置数据库是以树形结构组织的许多配置选项,如下形式:
Figure 1
每个条目都有各自的依赖对象,这些依赖对象用于决定条目的可见性。任何一个子条目仅当父条目可见时才是可见的。

菜单条目

大多数条目代表一个配置选项,其他的条目可以使配置选项条理化。如下定义了一个配置选项:
Figure 2
每行都以一个关键字开始和跟随多个参数。config 创建一个新的配置选项。紧接着的多行描述了这个配置选项的多个属性。这些属性可以包括配置选项的类型、输入提示、依赖对象、帮助文本和默认值。尽管可以使用同一个名称多次定义一个配置选项,但是多次定义只能有一个输入提示和类型一定不能冲突。

菜单属性

一个菜单条目有多种属性,并不是所有属性可以在任何地方使用。
1. type definition: "bool" or "tristate" or "string" or "hex" or "int"
每个配置选项必须有一个类型关键字。只有两种基本类型:tristatestring;另外的类型都是在这两种类型上的变种。根据情况类型定义可以有一个输入提示input prompt ,因此如下两种用法具有相同效果:
  bool "Networking support"
  
  bool
  prompt "Networking support"
2. input prompt: "prompt" <prompt> ["if" <expr>]
每个菜单条目至多有一个用户看得见的提示。根据需要,可以通过"if" 添加仅决定该提示可见性的依赖关系。
3. default value: "default" <expr> ["if" <expr>]
一个配置选项可以有多个默认值。若看见该配置选项有多个默认值,只有第一个定义的默认值生效。默认值不会受限于菜单条目定义的位置,也就是说默认值可以在别处定义或者被以前定义的所替代。
若用户没有设置其他值,默认值仅被赋值给配置符号。如果输入提示可见,默认值可被用户所见和被重写。根据需要,可以通过"if" 添加仅决定默认值有效性的依赖关系。
4. type definition + default value: "def_bool" or "def_tristate" <expr> ["if"] <expr>
这是一个类型定义加一个值的简记。根据需要,可以通过"if" 添加仅决定默认值有效性的依赖关系。
5. dependencies: "depends on" <expr>
该用法是为菜单条目定义依赖关系。如果需要定义多个依赖关系,使用&& 连接彼此。依赖关系将应用到该菜单条目下的其他所有选项。如下两种用法效果一样:
   bool "foo" if BAR
   default y if BAR

   depends on BAR
   bool "foo"
   default y
6. reverse dependencies: "select" <symbol> ["if" <expr>]

0 0
原创粉丝点击