如何检查autoconf中的完整路径可执行文件是否正确

时间:2014-09-25 09:08:34

标签: executable cython autotools autoconf

我正在编写一个宏来检查我的程序即将编译的系统上的cython。 我可以使用AC_PATH_PROG在路径中找到cython,但是如果用户想在配置行中指定它,就像这样:

./configure CYTHON=/home/user/cythonFoo

我找不到合适的方法来检查它。

这不起作用,无论CYTHON的价值如何,它总是通过测试:

AC_PATH_PROG( CYTHON, $CYTHON,"" )

这有点工作,但不是真的可用,因为它需要我事先提取文件名和文件路径:

AC_PATH_PROG( CYTHON, cythonFoo,"", /home/user/ )

所以我已经编写了自己的测试,但我认为可能有一种标准的方法来实现它

AC_MSG_CHECKING([Checking Cython path $CYTHON is correct])
AS_IF($CYTHON -V > /dev/null 2>&1, , CYTHON="")
if test -z $CYTHON; then
    AC_MSG_RESULT([ no ])
else
    AC_MSG_RESULT([ yes ])
fi

1 个答案:

答案 0 :(得分:2)

您正在观察AC_PATH_PROG的{​​{3}}。如果用户设置CYTHONAC_PATH_PROG将把它视为要使用的cython,即使它是假的。作为链接页面的第一行说明

  

如果您需要检查程序的行为以及确定它是否存在,您必须为它编写自己的测试

所以你所做的就是“标准方式”。