autoconf手册(三)[3]

[入库:2005年9月19日] [更新:2007年3月25日]

本文简介:

  这些宏用于寻找没有包含在特定程序测试宏中的程序。如果你除了需要确定程序是否存在,还需要检测程序的行为,你就不得不为它编写你自己的测试了(参见编写测试)。在缺省情况下,这些宏使用环境变量PATH。如果你需要检查可能不会出现在PATH中的程序,你可能要按照下面的方式给出修改了的路径:
  
  AC_PATH_PROG(INETD, inetd, /usr/libexec/inetd,
  $PATH:/usr/libexec:/usr/sbin:/usr/etc:etc)
  宏: AC_CHECK_FILE (file [, action-if-found [, action-if-not-found]])
  检查文件file是否出现在本地系统中。如果找到了,就执行action-if-found。否则,就在给出了 action-if-not-found的时候执行action-if-not-found。
  宏: AC_CHECK_FILES (files[, action-if-found [, action-if-not-found]])
  为每个在files中给出的文件运行AC_CHECK_FILE。并且为每个找到的文件定义 `HAVEfile',定义成1。
  宏: AC_CHECK_PROG (variable, prog-to-check-for, value-if-found [, value-if-not-found [, path, [ reject ]]])
  检查程序prog-to-check-for是否存在于PATH之中。如果找到了,就把变量 variable设置成value-if-found,否则就在给出了value-if-not-found的时候把variable设置成它。即使首先在搜索路径中找到reject(一个绝对文件名),本宏也会忽略它;在那种情况下,用找到的prog-to-check-for,不同于reject的绝对文件名来设置variable。如果variable已经被设置了,就什么也不作。为variable调用AC_SUBST。
  宏: AC_CHECK_PROGS (variable, progs-to-check-for [, value-if-not-found [, path]])
  在PATH中寻找每个出现在以空格分隔的列表progs-to-check-for中的程序。如果找到了,就把variable设置成那个程序的名字。否则,继续寻找列表中的下一个程序。如果列表中的任何一个程序都没有被找到,就把variable设置成value-if-not-found;如果没有给出value-if-not-found,variable的值就不会被改变。为variable调用 AC_SUBST。
  宏: AC_CHECK_TOOL (variable, prog-to-check-for [, value-if-not-found [, path]])
  除了把AC_CANONICAL_HOST确定的主机类型和破折号作为前缀之外,类似于AC_CHECK_PROG,寻找prog-to-check-for(参见获取规范的系统类型)。例如,如果用户运行`configure --host=i386-gnu',那么下列调用:
  AC_CHECK_TOOL(RANLIB, ranlib, :)
  
  当`i386-gnu-ranlib'在PATH中存在的时候,就把RANLIB设置成`i386-gnu-ranlib',或者当`ranlib'在PATH中存在的时候,就把RANLIB设置成`ranlib',或者在上述两个程序都不存在的时候,把RANLIB设置成`:'。
  
  宏: AC_PATH_PROG (variable, prog-to-check-for [, value-if-not-found [, path]])
  类似于AC_CHECK_PROG,但在找到prog-to-check-for的时候,把variable设置成prog-to-check-for的完整路径。
  宏: AC_PATH_PROGS (variable, progs-to-check-for [, value-if-not-found [, path]])
  类似于AC_CHECK_PROGS,但在找到任何一个progs-to-check-for的时候,把variable 设置成找到的程序的完整路径。
  
  库文件
  下列的宏检查某些C、C++或者Fortran 77库文件是否存在。
  宏: AC_CHECK_LIB (library, function [, action-if-found [, action-if-not-found [, other-libraries]]])
  依赖于当前的语言(参见对语言的选择),试图通过检查一个测试程序是否可以和库library进行连接以获取C、C++或者Fortran 77函数function,从而确认函数function 是可以使用的。library是库的基本名字;例如,为了检查`-lmp',就把`mp'作为参数library。
  
  action-if-found是一个在与库成功地进行了连接的时候运行的shell命令列表; action-if-not-found是一个在与库的连接失败的时候运行的shell命令列表。如果没有给出action-if-found,缺省的动作就是把`-llibrary'添加到 LIBS中,并且定义`HAVE_LIBlibrary'(全部使用大写字母)。
  

本文关键:autoconf手册(三)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top