如何将额外的自定义./configure autotools选项传递给Buildroot包?

时间:2017-06-03 06:48:42

标签: autotools configure buildroot

例如,我想将选项--enable-foo --enable-bar添加到./configure命令。

可以通过./configure配置间接设置许多BR2_个选项,但是许多软件有很多选项,每个可能的{{1}配置一个BR2_配置是不可行的。选项。

是否有适用于所有autotools软件包的通用机制?

2 个答案:

答案 0 :(得分:2)

我认为截至2017.02没有当前的一般方法,因为package/pkg-autotools.mk包含:

# Configure package for target
define $(2)_CONFIGURE_CMDS
    (cd $$($$(PKG)_SRCDIR) && rm -rf config.cache && \
    $$(TARGET_CONFIGURE_OPTS) \
    $$(TARGET_CONFIGURE_ARGS) \
    $$($$(PKG)_CONF_ENV) \
    CONFIG_SITE=/dev/null \
    ./configure \
        --target=$$(GNU_TARGET_NAME) \
        --host=$$(GNU_TARGET_NAME) \
        --build=$$(GNU_HOST_NAME) \
        --prefix=/usr \
        --exec-prefix=/usr \
        --sysconfdir=/etc \
        --localstatedir=/var \
        --program-prefix="" \
        --disable-gtk-doc \
        --disable-gtk-doc-html \
        --disable-doc \
        --disable-docs \
        --disable-documentation \
        --with-xmlto=no \
        --with-fop=no \
        --disable-dependency-tracking \
        --enable-ipv6 \
        $$(DISABLE_NLS) \
        $$(SHARED_STATIC_LIBS_OPTS) \
        $$(QUIET) $$($$(PKG)_CONF_OPTS) \
    )
endef
else

我看不到任何插入任意选项的方法,因为$$($$(PKG)_CONF_OPTS)是从每个包的package.mk设置的,其他变量似乎也有特定用途,不应该被搞乱了。

但我认为如果我们添加一个:

,可以轻松修补
$$($$(PKG)_CONF_OPTS_EXTRA)

然后从CLI中执行:

make MYPACKAGE_CONF_OPTS_EXTRA="--enable-foo --enable-bar"

最后,对于某些软件包,您可以使用现有的make配置,例如对于尚未转换为自动工具的host-qemu,我设法通过以下方式获得额外选项:

HOST_QEMU_OPTS="--enable-sdl --with-sdlabi=2.0"

因为幸运的是,该包恰好在Makefile上使用+=而不是=

托马斯在https://stackoverflow.com/a/49570825/895245的回答也表明,如果不破解新的配置选项,就不可能做到这一点。

答案 1 :(得分:0)

您可以定义BR2_EXTERNAL树,并在external.mk中覆盖您喜欢的任何包变量(嗯,有一些例外情况,例如<PKG>_VERSION)。您可以附加到变量或覆盖它们。