why autogen.sh failed even with the correct autoconf?

hugemeow picture hugemeow · Aug 27, 2012 · Viewed 11.4k times · Source

autogen.sh failed, the output shows that i need an autoconf of higher version. but in fact i have a 2.6x autoconf....

why it still failed?

[mirror@home 4]$ ./autogen.sh
+ autoreconf -i -f -v
autoreconf: Entering directory `.'
autoreconf: configure.in: not using Gettext
autoreconf: running: aclocal --force -I m4
configure.in:4: error: Autoconf version 2.60 or higher is required
configure.in:4: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
autoreconf: aclocal failed with exit status: 63

// content in configure:4
it's AC_PREREQ(2.60)

[mirror@home 4]$ autoconf
autoconf      autoconf2.59  autoconf2.6x
[mirror@home 4]$ autoconf
[mirror@home 4]$ ls -l autocon
[mirror@home 4]$ ls /usr/bin/autoconf* -l
lrwxrwxrwx 1 root root    12 Aug 27 13:55 /usr/bin/autoconf -> autoconf2.6x
-rwxr-xr-x 1 root root  7663 Jan  6  2007 /usr/bin/autoconf2.59
-rwxr-xr-x 1 root root 14635 Feb  3  2011 /usr/bin/autoconf2.6x

2.63 > 2.60, but autogen failed, it's really confusing:(

[mirror@home 4]$ autoconf --version
autoconf (GNU Autoconf) 2.63
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later
<http://gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

more details:

    autoreconf --version
    autoreconf (GNU Autoconf) 2.59

what i want to know is why autogen.sh failed?

Answer

kenorb picture kenorb · Jun 28, 2013

You have two versions of autoconf installed, and when aclocal runs autom4te, this launches the old one. Do you have a autom4te-2.6x in your path? If so, set export AUTOM4TE=autom4te2.6x before running autoreconf-2.64.

Or just run:

AUTOM4TE=autom4te2.6x ./autogen.sh

See also:

update autoconf to at least 2.6

why i failed to build autoconf with autoconf2.6x, its version is newer than 2.6 anyhow