Buildroot 导出配置符号的位置

Where Buildroot exports configuration symbols

我想知道代码 buildroot 导出配置符号的位置,以便可以在每个包的 .mk 中读取它们:

示例:

在包 exim.mk 中有对 BR2_PACKAGE_OPENSSL 值的测试:

ifeq ($(BR2_PACKAGE_OPENSSL),y)

符号是在.config中定义的,但是exim.mk怎么看呢

Buildroot 基于 make 构建系统。 make 读取顶层 Makefile,并解析该文件中的 include 指令。一个这样的指令是

-include $(BR2_CONFIG)

BR2_CONFIG 变量扩展为 .config(在 Buildroot 目录中,如果给出 O=,则在输出目录中)。 .config 文件包含您使用 Kconfig 基础结构选择的所有配置选项。

接下来,顶层Makefile有

include $(sort $(wildcard package/*/*.mk))

这会读入包目录中的所有 .mk 文件,包括 exim.mk。所以当 exim.mk 被解析时, BR2_PACKAGE_OPENSSL 中设置的值 .config 将被评估。这可以是

BR2_PACKAGE_OPENSSL=y

如果选择了该选项,或者

# BR2_PACKAGE_OPENSSL is not set

如果没有选中。所以条件在第一种情况下为真,在第二种情况下为假。