要有条件地启用自动化项目的一部分,我需要检查自动工具不支持的语言中的短程序存根是否可以编译。
我需要AC_TRY_COMPILE
之类的任意编译器可执行文件 - 创建一个临时文件,写一段代码,然后尝试调用编译器(之前通过AC_CHECK_PROGS
找到)返回一个出口代码等于零。
最优雅/最常用的方法是什么?
答案 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发行版会发布残缺的软件包,其中引发错误比静默进行更有帮助。)