当./configure被赋予冲突的选项时,会赢吗?

时间:2013-05-19 18:47:10

标签: gcc configure autotools

我正在使用buildroot构建交叉编译gcc,并且可以为./configure步骤提供一些其他配置选项,而无需修补buildroot源。但是,我想覆盖buildroot源已经明确设置的选项。具体来说,buildroot源有:

$(GCC_SRC_DIR)/configure $(QUIET) \
--prefix=/usr \
...
--disable-__cxa_atexit \
...
$(EXTRA_GCC_CONFIG_OPTIONS)

而且我希望--enable-__cxa_atexit加入$EXTRA_GCC_CONFIG_OPTIONS并让这成为荣耀。

我猜测如果buildroot的makefile设计得足够好,那么实际上会发生这种情况。但我正在尝试验证这是如此(在文档中,而不是通过试验和错误)并且无法找到将冲突选项传递给./configure脚本时会发生什么的任何规范。

所有基于autotools的配置脚本都会以同样的方式处理吗?或者gcc可以单向处理它,并且(例如)binutils以不同的方式处理它?<​​/ p>

我希望SO上的其他人不得不在我面前追踪这一点。但我的google-fu和SO-fu并没有改变任何事情。

1 个答案:

答案 0 :(得分:1)

相关文档是GNU编码标准中的How Configuration Should Work和Autoconf手册中的Running configure Scripts / Optional Features

他们没有提到冲突的选项,所以我们只需要在生成的configure脚本中检查shell代码。我使用Autoconf 2.69创建的脚本只按顺序处理--enable-foo--disable-foo个选项并分配给enable_foo,因此后一个选项只会获胜。