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.