我正在使用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并没有改变任何事情。
答案 0 :(得分:1)
相关文档是GNU编码标准中的How Configuration Should Work和Autoconf手册中的Running configure Scripts / Optional Features。
他们没有提到冲突的选项,所以我们只需要在生成的configure
脚本中检查shell代码。我使用Autoconf 2.69创建的脚本只按顺序处理--enable-foo
和--disable-foo
个选项并分配给enable_foo
,因此后一个选项只会获胜。