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

5
例如,我想要在./configure命令中添加选项--enable-foo --enable-bar
许多./configure选项可以通过BR2_配置间接设置,但是许多软件拥有如此之多的选项,使得为每个可能的./configure选项都设置一个BR2_配置变量是不可行的。
是否存在适用于所有Autotools软件包的通用机制?
2个回答

2

我认为目前(截至2017年2月)还没有通用的方法,因为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配置文件,例如对于尚未转换为autotools的host-qemu,我只需使用以下命令即可获得额外选项:

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

幸运的是,该软件包在Makefile中使用 += 而不是 =

Thomas在https://dev59.com/BKrka4cB1Zd3GeqPaTlc#49570825上的回答还指出,如果没有修改新的配置选项,就无法实现。


0

您可以定义一个 BR2_EXTERNAL 目录,并在 external.mk 中覆盖任何您喜欢的包变量(当然,有一些例外,例如 <PKG>_VERSION)。您可以向变量中添加内容或覆盖已有内容。


嗨,但是有没有适用于配置的变量? - Ciro Santilli OurBigBook.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接