automake error: no proper invocation of AM_INIT_AUTOMAKE was found

arslan picture arslan · Apr 24, 2013 · Viewed 25.3k times · Source

I am new in autotools, and following this tutorial. but I could not solve this errors,

   $ 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
  ..

my configure.ac file is

   # -*- 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

I checked for solution on Internet, my configure.ac looks fine, don't know what is wrong with it.

Answer

adl picture adl · Apr 24, 2013

Where did you copy&paste your configure.ac from? Whatever that site is, you should remove it from your bookmarks!

You are mixing the new AC_INIT way to indicate the package version, with the old AM_INIT_AUTOMAKE way to do the same thing. Don't do both. (Old and new refer to a switch that occurred 10 years ago.) Starting with Automake 1.13 the old way to call AM_INIT_AUTOMAKE with two arguments is no-longuer supported.

In your case, removing the AM_INIT_AUTOMAKE arguments, and correctly setting the AC_INIT arguement to reflect the name and version of your project should be enough.

See the automake manual for an up-to-date example of very simple configure.ac to start with.

Instead of calling automake yourself, just use autoreconf -vfi so that it runs all the relevant tools in the right order, and installs the missing files.