我正在编写一个宏来检查我的程序即将编译的系统上的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
答案 0 :(得分:2)
您正在观察AC_PATH_PROG
的{{3}}。如果用户设置CYTHON
,AC_PATH_PROG
将把它视为要使用的cython,即使它是假的。作为链接页面的第一行说明
如果您需要检查程序的行为以及确定它是否存在,您必须为它编写自己的测试
所以你所做的就是“标准方式”。