Мой файл 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 - очень хорошая идея для отладки.