Automake error: не было найдено правильного вызова AM_INIT_AUTOMAKE
Я новичок в autotools и следую этому учебник. но я не мог решить эти ошибки,
$ automake
configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
..
Makefile.am: error: required file './depcomp' not found
..
/usr/share/automake-1.12/am/depend2.am: error: am__fastdepCC does not appear in AM_CONDITIONAL
..
/usr/share/automake-1.12/am/depend2.am: error: AMDEP does not appear in AM_CONDITIONAL
..
Мой configure.ac
файл
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AM_INIT_AUTOMAKE(hello,1.0)
AC_CONFIG_SRCDIR([config.h.in])
AM_CONFIG_HEADERS(config.h)
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
AC_CHECK_HEADERS([sys/time.h])
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CHECK_FUNCS([gettimeofday])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
Я проверил решение в Интернете, мой configure.ac
выглядит хорошо, не знаю, что с ним не так.
Ответы
Ответ 1
Вы должны исправить это по строкам.
Во-первых, для вашего Makefile.am
требуется depcomp
. Итак, вы должны скопировать его в свою папку (для этого шага вы можете запустить automake --add-missing
, чтобы автоматически добавлять отсутствующие файлы):
cp -a /usr/share/automake-X.XX/depcomp .
Во-вторых, вам нужно запустить aclocal
до automake
:
$ aclocal
Наконец, вы можете запустить automake
:
$ automake
$ autoconf
Ответ 2
Где вы скопировали и вставьте свой configure.ac
из? Независимо от того, что этот сайт, вы должны удалить его из своих закладок!
Вы смешиваете новый способ AC_INIT
, чтобы указать версию пакета, со старым способом AM_INIT_AUTOMAKE
сделать то же самое. Не делай того и другого. (Старый и новый относятся к коммутатору, который произошел 10 лет назад.) Начиная с Automake 1.13, старый способ вызова AM_INIT_AUTOMAKE
с двумя аргументами поддерживает no-longuer.
В вашем случае должно быть достаточно удалить аргументы AM_INIT_AUTOMAKE
и правильно установить аргумент AC_INIT
, чтобы отразить имя и версию вашего проекта.
Посмотрите руководство automake для краткого примера очень простого configure.ac
для начала.
Вместо того, чтобы вызывать automake
самостоятельно, просто используйте autoreconf -vfi
, чтобы он запускал все соответствующие инструменты в правильном порядке и устанавливал недостающие файлы.
Ответ 3
В моем случае обновление libtool с 2.2.6 до 2.4.6.
ps: Я использую версию automay 1.15.
Запустите libtoolize перед запуском aclocal и autoheader.