Autoconf: определить, установлен ли emacs

Как лучше всего определить, установлен ли emacs? Сборка компилятора nesC (очевидно) требует установки emacs, и я хотел бы изменить их скрипт configure, чтобы обнаружить это, но я не знаю ни одного макроса AC_ для обнаружения emacs...

Как лучше всего это обнаружить — проверить наличие /usr/bin/emacs? Проверяете результаты which emacs (при условии, что в системе есть which...)?

Релевантно: https://github.com/tinyos/nesc/issues/1


person Pat    schedule 14.02.2013    source источник
comment
Скажи мне, что это шутка! Компилятор требует emacs?! Интересно, когда я смогу установить CC=emacs?!   -  person William Pursell    schedule 14.02.2013


Ответы (2)


Если вы также используете Automake, вы можете использовать макрос AM_PATH_LISPDIR. Он принимает значение переменной среды EMACS, если она установлена, и в противном случае ищет emacs или xemacs в пути.

AM_PATH_LISPDIR
AS_IF([test "$EMACS" = no], [AC_MSG_ERROR([cannot find Emacs])])

Он также пытается запустить emacs, чтобы определить, куда следует установить файлы elisp. Дополнительные сведения см. в документации.

person legoscia    schedule 14.02.2013

Используйте AC_ARG_VAR, чтобы показать переменную пользователю (и перечислите ее в ./configure --help) и AC_PATH_PROGS, чтобы проверить наличие emacs/xemacs. Если вам нужен только GNU emacs, используйте вместо него AC_PATH_PROG([EMACS], [emacs], [no]).

AC_ARG_VAR([EMACS], [Path to emacs.])
AS_IF([test -z "$EMACS"], [AC_PATH_PROGS([EMACS], [emacs], [no])])

# If you want to fail out if you can't find emacs:
AS_IF([test "$EMACS" = no],
  [AC_MSG_ERROR([emacs is required to build. Install it, or set $EMACS])])
person Jack Kelly    schedule 14.02.2013