Подтвердить что ты не робот

Как включить файлы .m4 в Autoconf?

Я загрузил макрос из Autoconf Archive, и я хочу его использовать. Что мне нужно добавить в файл configure.ac, чтобы использовать этот макрос?

4b9b3361

Ответ 1

Вы можете добавить AC_CONFIG_MACRO_DIR в configure.ac в каталог, где находится макрос:

AC_CONFIG_MACRO_DIR([path/to/macros])

Вам также нужно вызвать макрос в этом файле.

и в Makefile.am вам, вероятно, потребуется настроить ACLOCAL_AMFLAGS (если вы используете automake):

ACLOCAL_AMFLAGS         = -I path/to/macros

Затем вызовите autoreconf -fvi, и вы должны быть установлены.

Ответ 2

У меня был такой же вопрос, и найти ответ мне было труднее, чем я думал. Похоже, что AC_CONFIG_MACRO_DIR был тем, что я хотел, но если вы не используете libtoolize, кажется, что AC_CONFIG_MACRO_DIR сейчас бесполезно.

Если вы используете automake, я думаю, что правильный ответ.

Я не использую automake, поэтому единственный способ, которым я нашел, - использовать макрос m4_include для всасывания каждого файла .m4 по отдельности. Я нашел этот подход здесь:

http://www.flameeyes.eu/autotools-mythbuster/autoconf/macros.html

Надеюсь, это поможет. (Учитывая, как долго работает autoconf, это немного умудряет мой разум, что нет встроенного способа просто указать каталог в файле .ac.Это похоже, что это будет широко распространенный случай использования. О, хорошо.)

Ответ 3

В качестве альтернативы решению Idav1s (что абсолютно правильно) вы можете установить макрос в том месте, где aclocal найдет его (используйте aclocal --print, чтобы увидеть, где aclocal ищет файлы .m4). У каждого подхода есть плюсы и минусы. Если вы установите файлы .m4 в $(aclocal --print), вы можете использовать макрос во всех своих проектах, не делая ничего другого. Основной недостаток заключается в том, что каждый разработчик, который работает над проектом, должен будет установить макрос в своем поле, и это требует от каждого разработчика разумного понимания автозапуска.

Ответ 4

У меня тоже есть эта проблема, и я просто ее исправил. Моя среда: CentOS 6.4, M4 1.4.17, autoconf 2.69, libtool 2.4, automake 1.14

Вот шаги, которые я использовал.

add m4 as AC_CONFIG_MACRO_DIR to your configure.ac
rm aclocal.m4  if it exists
mkdir m4       if it does not exist
# copy some dummy files into the folder 
# or some versions of autoconf  won't work   
autoreconf -i --install    

Ответ 5

Не достаточно ли просто сохранить макрос m4 в определенном каталоге и запустить autoreconf с помощью опции -I:

autoreconf -i -I/path/to/your/m4/file

Или я неправильно понял вас, и вы хотите интегрировать его навсегда, без того, чтобы человек, работающий под управлением autoreconf, беспокоиться о загрузке файла m4?