我想更改Buildroot中包含的包的<PKG>_CONF_OPTS
配置选项,而不更改基线<pkg>.mk
文件。根据我正在阅读的内容,没有必要使用BR2_PACKAGE_OVERRIDE_FILE
完全覆盖包,因为我不想更改源或其他任何重要的内容。
有人建议可以使用BR2_EXTERNAL
和external.mk
完成此操作,但我找不到任何示例,但我的尝试失败了。 Buildroot文档在这个主题上非常沉默,尽我所知,而只是解释了新包的创建,而不是包含的包的构建定制。
我已尝试直接在external.mk
添加行<PKG>_CONF_OPTS += --new-option
,但这没有效果。我还尝试在package/<pkg>/<pkg>.mk
中创建一个补充的makefile,并在Config.in
文件中填写所需的信息以获取“新”包,但这也失败了。
我引用了几个没有给出完整答案的相关问题,所以我希望能找到一般方法并在此处记录。
How to pass extra custom ./configure autotools options to a Buildroot package?
Buildroot: Build only one package as both shared and static lib, all others shared only
希望有一些提示,我们可以解决这个问题,然后记录下来。
编辑:完成了相当多的测试,有趣的是,即使是在现有软件包中直接对_CONF_OPTS进行更改的“健全性检查”情况也没有达到预期的效果。在我的情况下(尝试进行一个特定包的静态链接构建,同时保持其他所有动态)我发现_defconfig中BR2_STATIC_LIBS的存在与否在它归结为最终构建命令时控制所有内容,尽管相反的确认在整个构建日志中。答案 0 :(得分:1)
BR2_EXTERNAL并不是要调整作为Buildroot本身一部分的现有包的配置选项。 BR2_EXTERNAL仅用于添加新包。
您应该在您感兴趣的软件包中添加一个Config.in选项,并使用它来调整其配置。
答案 1 :(得分:0)
似乎没有令人满意的方法来实现这一目标。在更详细地介绍了make过程之后,我发现顶级defconfig BR2_
选项会覆盖单个包选项(例如,在我的情况下,是否存在BR2_STATIC_LIBS
)。