5.现有测试

本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:question

5.2 备选程序

这些宏用于检查指定程序的存在或者行为。经常从几个备选程序中选择一个出来。

5.2.1 特殊程序检查

AC_PROG_LN_S

如果当前文件系统支持ln -s,设置输出变量LN_Sln -s;否则,如果支持ln,设置LN_Sln,否则设置为cp -pR

AC_PROG_LN_S

5.2.2 通用程序和文件检查

这些宏不会被特定的测试宏所覆盖。
强烈建议声明variableprecious variableSee AC_ARG_VAR

AC_CHECK_PROG (variable, prog-to-check-for, value-if-found, [value-if-not-found], [path = ‘$PATH’], [reject])

检查path中是否存才prog-to-check-forvariable=存在 ? value-if-found: value-if-not-found。总是忽视reject(一个文件名的绝对路径),在这种情况下,variable=prog-to-check-for的绝对路径。

调用AC_SUBST赋值。

测试结果可以通过设置variable或者ac_cv_prog_variable的值来覆盖。

AC_CHECK_PROGS (variable, progs-to-check-for, [value-if-not-found], [path = ‘$PATH’])

检查每个在progs-to-check-for中的程序(以空格分隔)在path中是否存在。如果发现了一个,设置variable的值为该程序的名字;否则继续查找下一个。如果都没有找到,设值为value-if-not-found;如果该参数没有指定,变量的值不会改变。

余下的说明同上。

AC_CHECK_PROGS(FLEX,flex,none)
AC_CHECK_TOOL (variable, prog-to-check-for, [value-if-not-found], [path = ‘$PATH’])

类似于AC_CHECK_PROG,但是首先查找选项--host指定前缀的程序,使用-连接。

AC_CHECK_TOOL([RANLIB], [ranlib], [:])

运行‘configure --build=x86_64-gnu --host=i386-gnu’:首先查找i386-gnu-ranlib,没有再查找ranlib,否则就是:。

AC_CHECK_TOOLS (variable, progs-to-check-for, [value-if-not-found], [path = ‘$PATH’])

先查找AC_CANONICAL_HOST指定前缀的程序,使用-连接。如果没有一个被找到,那么去掉前缀继续查找tools。余下的说明参考AC_CHECK_PROGS

AC_CHECK_TOOLS(AR,[ar gar],ar)
AC_PATH_PROG (variable, prog-to-check-for, [value-if-not-found], [path = ‘$PATH’])

检查命令是否安装。类似于AC_CHECK_PROG,检查path中是否存在prog-to-check-for。区别在于总是设置variable=prog-to-check-for的绝对路径。

该测试结果可以通过对variable赋值的方式改变。

测试结果被缓存在ac_cv_path_variable变量中。

AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
AC_PATH_PROGS (variable, progs-to-check-for, [value-if-not-found], [path = ‘$PATH’])

说明参考AC_PATH_PROG。有任何一个程序被找到,赋值给variable

5.4 库文件

AC_CHECK_LIB (library, function, [action-if-found], [action-if-not-found], [other-libraries])

通过尝试链接一个调用含有libraryfunction的测试程序,测试library是否可用。如果没有指定action-if-found,默认的操作是链接-llibraryLIBS并且定义’HAVE_LIBlibrary’(全部大写)。

5.10 编译器和执行器

5.10.3 C编译器特性

AC_PROG_CC ([compiler-search-list])

指定一个C编译器,如果CC没有在环境中设置,那么检查gcc and cc,然后是其它的C编译器。设置找到的编译器给变量CC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值