autotools: как включить мой собственный макрос m4 в configure.ac

В моем проекте у меня есть папка m4. В этой папке у меня есть ax_cxx_version.файл m4, содержащий макрос AX_CHECK_CXXFLAGS.

Затем я включаю папку m4 в autoconf.ac:

AC_CONFIG_MACRO_DIR([m4])

и выполнение autoconf.

При запуске configure script происходит сбой с ошибкой flowing:

checking complex usability... yes
checking complex presence... yes
checking for complex... yes
checking size of int64_t... 8
checking for long long int... yes
./configure: line 7235: syntax error near unexpected token `-std=c++0x'
./configure: line 7235: `AX_CHECK_CXXFLAGS(-std=c++0x -pedantic -Wall)'

Если добавить макрос в aclocal.m4 тогда все работает отлично.

Как правильно включить мой собственный макрос?

1 ответ

  1. Проблема в том, что AC_CONFIG_MACRO_DIRна самом деле не настраивается путь включения, но он позволяет aclocalсоздать правильный файл. Но aclocalявляется частью automake, и если вы просто выполняетеautoconf, он не будет вызван.

    Вы можете начать вызов autoreconfвместо autoconfтого, чтобы регенерировать файлы, и это должно сделать трюк. Или, если вы не хотите зависеть от automake, вы можете использовать ряд других трюков m4_include.

    Соответствующая (написанная мной) документация по данному вопросу доступна на сайте Autotools Mythbuster .