The*_*eer 12 kernel configuration linux-kernel
内核 Kconfig 文件之间select
和depends on
内核中的依赖项有何不同?
config FB_CIRRUS
tristate "Cirrus Logic support"
depends on FB && (ZORRO || PCI)
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
---help---
This enables support for Cirrus Logic GD542x/543x based boards on
Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum.
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,与 和 的FB_CIRRUS
关系如何不同?FB && (ZORRO || PCI)
FB_CFB_FILLRECT
FB_CFB_COPYAREA
FB_CFB_IMAGEBLIT
更新
我注意到这depend on
在编译顺序方面并没有太大作用。
例如。AppB 的成功构建取决于首先构建静态链接的 LibB。depends on LibB
在 Kconfig 中为 AppB设置不会强制首先构建 LibB。设置select LibB
会。
gol*_*cks 18
depends on
表示符号必须已被肯定地选择 ( =y
) 才能配置此选项。例如,必须已选择depends on FB && (ZORRO || PCI)
手段FB
,并且 (&&)ZORRO
或 (||) PCI
。对于诸如 之类的东西make menuconfig
,这决定了是否会显示一个选项。
select
积极地设置一个符号。例如,select FB_CFB_FILLRECT
将意味着FB_CFB_FILLRECT=y
。这满足了一些其他配置选项的潜在依赖性。请注意,内核文档不鼓励将此用于“可见”符号(可由用户选择/取消选择)或用于本身具有依赖关系的符号,因为它们不会被检查。
参考:https : //www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt