AC_PATH_PROG всегда возвращает / usr / bin / prog вместо / my / own / path / prog - PullRequest
0 голосов
/ 31 октября 2018

Мой файл configure.ac проверяет наличие программы Rscript, которая может иметь одно или несколько расположений в другой системе.

AC_PATH_PROG([RSCRIPT], [Rscript], [na])

RSCRIPT установлен в / usr / local / bin / Rscript, что является тем же значением, которое возвращается из

which Rscript
/usr/local/bin/Rscript

На одном из моих компьютеров. На другом компьютере Rscript остаются в двух местах

/usr/bin/Rscript  # this one is older
which Rscript
/global/software/bin/Rscript # this one is what I wanted

PATH=/global/software/bin:/usr/bin:muchlonger/notshown

Моя переменная PATH содержит / global / software / bin перед / usr / bin. Согласно документу, AC_PATH_PROG должен возвращать / global, а не / usr / bin. Не уверен, как избежать этой проблемы.

Один из способов - установить переменную RSCRIPT вне конфигурации. В настоящее время я использую этот метод.

Обновлен:

I constructed a minimal configure.ac file
AC_PREREQ([2.69])
AC_INIT([minimaltest], [1.0.0], [blabal@yahoo.com])
AM_INIT_AUTOMAKE([-Wall -Wportability])
AC_CONFIG_SRCDIR([src/helloworld.cpp])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])

# Checks for programs.
AC_PROG_CXX
AC_PATH_PROG([RSCRIPT], [Rscript], [na])
if test "$RSCRIPT" = na; then
   AC_MSG_ERROR([Rscript binary not found on this machine!])
else
   AC_MSG_RESULT([Rscrpt path: $RSCRIPT])
fi


# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT

Затем запустите configure на «подозрительной» системе и получите ожидаемое поведение. Это раздел выходных данных конфигурации:

checking dependency style of g++... gcc3
checking for Rscript... /global/software/r/3.5.0/bin/Rscript
Rscrpt path: /global/software/r/3.5.0/bin/Rscript
checking that generated files are newer than configure... done

Так что, как-то, в моем исходном файле configure.ac определенно что-то не так. Я пойму это. Спасибо Джону за указание на это. Минимальный файл configure.ac - очень хорошая идея для отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...