Autoconf:检查是否编译了不支持的语言的程序

时间:2010-12-03 01:03:45

标签: build autotools autoconf configure

要有条件地启用自动化项目的一部分,我需要检查自动工具不支持的语言中的短程序存根是否可以编译。

我需要AC_TRY_COMPILE之类的任意编译器可执行文件 - 创建一个临时文件,写一段代码,然后尝试调用编译器(之前通过AC_CHECK_PROGS找到)返回一个出口代码等于零。

最优雅/最常用的方法是什么?

2 个答案:

答案 0 :(得分:3)

AC_TRY_COMPILE(已被弃用并由AC_COMPILE_IFELSE取代)仅支持一组有限的语言:C,C ++,Fortran 77,Fortran,Erlang,Objective C,Objective C ++({{3} })。

configure.ac可以包含自定义shell代码 - 它只是被autoconf(真正m4)跳过。为什么不在shell中编写测试?如果您要使用多个测试,请将其包装在source

答案 1 :(得分:0)

要启用自动课程项目的可选部分,您应使用--enable-something选项。不要使其依赖于构建环境中当前可用的内容。这很容易在自动构建中出现掩码错误。 (例如:由于缺少构建依赖性或环境中的其他问题,已知Linux发行版会发布残缺的软件包,其中引发错误比静默进行更有帮助。)