Проверьте результат AX_PYTHON_MODULE в configure.ac - PullRequest
1 голос
/ 15 марта 2010

Используя макрос m4_ax_python_module.m4 в файле configure.ac (AX_PYTHON_MODULE), можно узнать во время настройки, установлен ли данный модуль. Он принимает два аргумента: имя модуля и второй аргумент, который, если он не пустой, приведет к выходу, что полезно, когда модуль является обязательным.

В случае, если вы не хотите фатального выхода, как вы проверяете в configure.ac, какие модули были найдены или нет? Они выводят «да» или «нет» при запуске configure, но это все, что я нашел до сих пор. В основном, если у меня есть эти строки в configure.ac:

РЕДАКТИРОВАТЬ: добавлены квадратные скобки вокруг имен модулей

AX_PYTHON_MODULE([json],[])
AX_PYTHON_MODULE([simplejson],[])

Как проверить, какой из двух модулей был найден?

См. http://www.gnu.org/software/autoconf-archive/ax_python_module.html#ax_python_module для документации об этом макросе.

1 Ответ

1 голос
/ 15 марта 2010

Хорошо, лучшее решение, которое я нашел, было:

РЕДАКТИРОВАТЬ: используя AS_IF вместо просто if test

AS_IF([test "x${HAVE_PYMOD_JSON}" = "xno"], 
    AS_IF([test "x${HAVE_PYMOD_SIMPLEJSON}" = "xno"],
        [AC_MSG_ERROR([Requires one of json or simplejson])]))

То, что через меня было в макросе, AS_TR_CPP преобразует свои аргументы в макросы стиля #define, то есть весь верхний регистр.

...