2014-09-25 3 views
1

Я пишу макрос, чтобы проверить на cython в системе, которую моя программа собирается скомпилировать. я могу использовать AC_PATH_PROG все права, чтобы найти Cython, когда он находится в пути, но если пользователь хочет specifiy его в строках конфигурации, как это:Как проверить правильность полного исполняемого файла в autoconf

./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

Вы наблюдаете за expected behavior от AC_PATH_PROG. Если пользователь устанавливает CYTHON, то AC_PATH_PROG будет рассматривать его как используемый cython, даже если он фиктивный. Поскольку первая строка связанной страницы заявляет

Если вам необходимо проверить поведение программы, а также выяснить, является ли она присутствует, вы должны написать свой собственный тест для этой

Итак, вы сделали «стандартный способ».

 Смежные вопросы

  • Нет связанных вопросов^_^