2016-10-19 4 views
0

У меня есть минимальный configure.ac файл:AUTORECONF игнорирует AC_CONFIG_MACRO_DIR

AC_INIT([phmf], [0.1]) 
AM_INIT_AUTOMAKE 
AC_OUTPUT([Makefile]) 

Использование самого последней версии autoconf 2,69 на нем (что 2012 кстати) я получаю следующее предупреждение:

$ autoreconf -iv 
autoreconf: running: aclocal -I m4 
aclocal-1.15: warning: couldn't open directory 'm4': No such file or directory 

Это привело меня к предположению, что поиск «m4» просматривается, потому что это поведение по умолчанию autoreconf. Так что я попытался переписать значение по умолчанию, добавив следующий макрос:

AC_CONFIG_MACRO_DIR([.]) 

Но это было бесполезно - я все еще получаю такое же предупреждение. Является ли это ошибкой или мне нужно сделать что-то еще, чтобы предотвратить включение каталога «m4» для aclocal?

Редактировать: У меня нет никаких скриптов m4 в моем проекте. И я также согласен с тем, что я действительно не хочу устанавливать каталог макросов в корневую директорию моего проекта. Поэтому более подходящая конфигурация будет:

AC_CONFIG_MACRO_DIR() 

, потому что я не хочу, чтобы включить что-либо, то вызываемая команда должна быть только

aclocal 

без каких-либо параметров.

ответ

1

Если aclocal флаги включают -I m4, то ваш AC_CONFIG_MACRO_DIR в основном, вероятно, следует читать

AC_CONFIG_MACRO_DIR([m4]) 

, установив его в текущий каталог, я бы ожидать, что вы делаете вещи хуже, а лучше.

У вас есть {root}/m4? (где {root} является корнем вашего репозитория)? Если нет, то это может быть проблемой.

Попробуйте создать каталог «m4». Он должен войти в «корень» вашего проекта (тот же каталог, что и файл configure.ac (или configure.in)).

+0

Действительно, если вы не отправляете какие-либо макросы m4 с вашим проектом и только помещаете их в каталог m4 , тогда лучше всего вставить 'mkdir -p m4' в ваш' autogen.sh'. – ptomato

+0

Хорошо, если бы я написал свой собственный autogen.sh, я мог бы отказаться от 'autoreconf' и использовать свою собственную цепочку команд, например' aclocal && autoheader && autoconf && automake --add-missing', которая не нуждается в пустом и бесполезный каталог «m4». –

1

Это предупреждение, вы должны не нужно делать ничего об этом, если вы не планировал использовать -Werror для Automake (и это, вероятно, плохая идея.)

Проблема заключается в том, что вы не можете переопределить по умолчанию m4 с . из-за дизайна aclocal (и это было бы проблемой automake в любом случае, а не autoconf.)