Как определить, существует ли / может быть вызван макрос m4

мы разрабатываем программный пакет, использующий autotools (точнее, autoconf 2.69 и automake 1.13.3). Этому пакету нужны wxwidgets, и эта библиотека предоставляет свой собственный файл m4, позволяющий протестировать установку wxwidgets в окончательной системе установки. wxwidgets недавно изменил версию с 2.8 на 3.0, и в этом изменении они также изменили макрос, используемый для определения доступности (т. е. макрос изменился с AM_PATH_WXCONFIG на WX_CONFIG_CHECK), а также его параметризацию. Это также означает, что если мы распространяем исходный код из нашего пакета, а внешние разработчики хотят пересобрать конфигурацию, то файл configure.ac должен знать, какой из двух следует использовать.

Итак, вопрос: есть ли у нашего пакета возможность проверить, существует ли макрос m4 перед его выполнением? Если это невозможно, то должны ли мы включать файлы m4 из wxwidgets в наш пакет?


person Harald    schedule 24.07.2015    source источник
comment
Похоже, что в autoconf 2.63 включен m4_ifdef, который может быть полезен здесь gnu.org/software/autoconf/manual/autoconf-2.63/html_node/   -  person Harald    schedule 24.07.2015


Ответы (1)


Как вы предложили в своем комментарии, используйте m4_ifdef:

m4_ifdef([AM_PATH_WXCONFIG], [
    AM_PATH_WXCONFIG(parameters)
], [
    m4_ifdef([WX_CONFIG_CHECK], [
        WX_CONFIG_CHECK(parameters)
    ], [
        AC_MSG_ERROR([You need to install the wxWidgets development package.])
    ])
])
person ptomato    schedule 26.07.2015