Kernel

Linux核心Kconfig中的“select”與“depends”有什麼區別?

  • March 30, 2018

核心 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.

在上面的範例中,與 和的FB_CIRRUS關係有何不同?FB && (ZORRO || PCI)``FB_CFB_FILLRECT``FB_CFB_COPYAREA``FB_CFB_IMAGEBLIT

更新

我注意到這depend on在編譯順序方面並沒有多大作用。

例如。AppB 的成功建構取決於首先建構靜態連結的 LibB。在 Kconfig 中為 AppB設置depends on LibB不會強制首先建構 LibB。設置select LibB會。

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

引用自:https://unix.stackexchange.com/questions/117521