曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 10907|回复: 0
打印 上一主题 下一主题

meneconfig 相关符号说明及 Kconfig 中的 select

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2011-7-13 20:44:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 make menuconfig 产生的菜单中会看到 [ ], { }, ( ),< >等符号,它们的意思如下:

[ ] :在方括号里,只能选择 * (built-in)和 不选择。

( ) : 在圆括号里,允许输入相关参数。 (对应于 Kconfig 中的 string, int hex)

{ } :在花括号里,只能选择 M (以模块方式) 和 * (built-in) 。

< > :在尖括号里,可以有 3 态选择 (tristate),即 M , * 和 不选。

另外,还会看到 -*- 这样形式的符号,比如:
-*- GPIO Support  --->
它表示该项只能以 built-in 的形式存在。



select 关键字后接的符号被称为反向依赖

下面通过一个小实验来分析一下 Kconfig 中的 select 关键字,以便了解 ”反向依赖“ 的概念及其它所带来对菜单中相关符号的影响,。

1. 首先在 drivers 目录下创建两个子目录,一个是 beyes ,另一个是 l4nneret 。

2. 接着将下面两个 Kconfig 问及爱你分别放到这两个目录中:
下面文件放入 beyes 目录下
[Plain Text] 纯文本查看 复制代码
menuconfig BeyesDrivers
        tristate "beyes drivers"
        help
          Just for test.

下面文件放入 l4nneret 目录下
[Plain Text] 纯文本查看 复制代码
menuconfig L4nneret
        tristate "L4nneret test"
        default y
        select BeyesDrivers
        help
          Just for test


3. 在 drivers 目录下的 Kconfig 里在 menu 和 endmenu 之间添加:
[Plain Text] 纯文本查看 复制代码
source "drivers/beyes/Kconfig"
source "drivers/l4nneret/Kconfig"


4. 重新执行 make menuconfig ,此时我们看到:

从上图中看到,已经成功添加了上面两个菜单项。

观察这些菜单前面的符号逻辑:
-*- beyes drivers  --->
<*> L4nneret test (NEW)  --->
上面 ”L4nneret test“ 该项被设为 built-in ,而 ”beyes drivers“ 为其反向依赖,且因为 built-in 是最严格的一种存在形态,所以它的依赖也必须是 built-in 。

再用空格点选一下 ”L4nneret test“ 项,使其改变为 "M",此时两个菜单状态变为:
{M} beyes drivers (NEW)  --->
<M> L4nneret test  --->
注意 {M} 这个符号,你用空格键去点选它时,它只能在 "M" 和 "*" 之间变化,也就是说该项要么是以模块编译,要么是以 built-in 编译。
”L4nneret test“ 为 ”M“ 时,即表示它编译为模块,此时它的依赖  ”beyes drivers“ 可以为 bult-in 或者 "M" 了。 模块的依赖性不如 built-in 来的严格,所以它的反向依赖 ”beyes drivers“  可以为模块,当然 built-in 看起来会更好。

再用空格再点选一下  ”L4nneret test“ 项,使其不选,此时两个菜单状态变为:
< > L4nneret test  --->
这时要注意 "beyes drivers" 项前面的符号,它变成了普通的三态性(用 <> 括号表示),它可以不选,或为”M“,或为 "*" (built-in)
因为 ”L4nneret test“ 不需要进行编译,所以它就也无所谓依赖了,因此  "beyes drivers" 为啥状态都是不要紧的。

从上面实验可以看到,以 tristate 声明的反向依赖(beyes drivers),它会根据编译目标(如上面的 "L4nneret test" )的编译状态变化而变化。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-17 14:43 , Processed in 0.095343 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表