Kconfig语法详解

来源:互联网 发布:draw9patch mac 编辑:程序博客网 时间:2024/05/16 06:31

Kconfig

  当在内核目录执行”make menuconfig”的时候读取相应的Kconfig文件,来生成配置界面。Kconfig常用的语法主要是几个重要的条目,每个条目都有自己的依赖关系。使用这些依赖关系以确定条目的可见性。任何子条目是唯一,如果其父条目可见,则可见。

1.1 config条目

example:config MODVERSIONS    bool "Set version information on all module symbols""    depends     help         Usually,module have to.......

  大多数条目都定义了这个config选项,所有其他的条目都是来组织config选项的。每行都以一个关键字开始,后面可以跟着多个参数。 “config”启动一个新的配置项。以下几行定义此配置选项的属性。属性可以是选项类型,输入提示符,依赖项,帮助信息和默认值值。配置选项可以多次定义相同名称,但每个定义只能有一个输入提示符和类型不能冲突。
  一个条目有很多属性,如下:

  • 定义类型:bool、tristate、string、hex、int。
    每个config必须有一个类型,其他的类型都是基于tristate和string,其中bool变量的值有y和n,tristate变量的值有y、n和m,string变量的值为字符串。类型定义可以接受输入提示,所以这两个例子是等效的:
    bool "Networking support"    and    bool    prompt "Networking support"
  • 输入提示:变量的类型后面跟着输入提示。输入提示也可以单独做一行,使用prompt,格式为:prompt [if ],其中if用来表示该提示的依赖关系。
  • 依赖关系:格式为depends on(或者requires) ,表示config这个配置选项是依赖与”expr”,如果定义了多重依赖关系,他们之间用”&&”间隔。
  • 选择关系:select [if ],A如果选择了B,则在A被选中的情况下,B自动被选中。
  • 帮助信息:help(或—help—)

1.2 menu条目

  menu条目用于生成菜单,格式如下

example:menu "Floating poing emulation"        config FPE_NWFPE        ..............        config FPE_NWFPE_XP        .............endmenu

  menu之后的字符串是菜单名,menu和endmenu之间有很多config条目(待会说介绍config条目),在配置界面上会出现如下字样的菜单,移动光标选中它之后按回车进入,就会看到config条目定义的配置选项。

Floating point emulation  --->           [] FPE_NWFPE           [] FPE_NWFPE_XP

1.3 choice条目

  choice条目将多个类似的配置选项组合在一起,供用户单选或者多选。

example:choice    prompt "arm system type"    default arch_versatileconfig arch_aarc200    ...config arch_integrator    ...endchoice

  prompt后面跟的是提示信息,光标选中它后按回车键进入,就可以看到多个config条目定义的配置选项。
  条目中定义的变量类型只能有两种:bool和tristate,不能同时有这两种类型的变量。对于bool类型的choice条目,只能在多个选项中选择一个;对于tristate类型的choice条目,要么就把多个选项都设为m;要么就像bool类型的choice条目一样,只能选择一个。

1.4 comment条目

  comment条目定义了一些帮助信息,它在配置过程中出现在界面的第一行;并且这些帮助信息会出现在配置文件中,格式如下:

comment <prompt><comment options>example:menu "floating point emulation"comment "At least one emultaion must be selected"...

  进入菜单“floating point emulation —>”之后,在第一行就会看到如下内容:

--- At least one emultaion must be selected

1.5 source条目

  source条目用于读入另一个Kconfig文件,格式如下:

source <promt>example:source "net/Kconfig"
原创粉丝点击