This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: autoconf AC_PREREQ ?


Carlos,
All,

On Tuesday 30 September 2008 23:20:49 Carlos O'Donell wrote:
> No, that is correct. Each fragment is *processed* by autoconf,  but
> the fragments are *run* by the top-level configure.in script which is
> the only script that needs the AC_PREREQ.
> See the configure.in code which prints the message "running the
> configure fragment for".

OK, now I can see how it fails on Debian. Some background first:

Debian install autoconf >= 2.50 (lenny today: 2.61) by default, and it gets
named autoconf. But Debian also provides a 'legacy' autoconf-2.13. When the
latter gets installed, autoconf is renamed to autoconf2.50, autoconf-2.13 is
instaleld as autoconf2.13, and a wrapper perl script is instaleld as autoconf.
This wrapper script has some heuristics [1] to detect what version to run.

So with glibc, autoconf-2.53+ is required for glibc/configure.in, and the
wrapper correctly calls autoconf2.50. But because configure.in fragments are
parsed with the wrapper script, and they don't match the heuristics to call
autoconf2.50, autoconf2.13 gets called. Hence the errors.

There is a possibility to have glibc call a specific autoconf (using
${AUTOCONF} if set), but there is no way to know what autoconf is 2.50+,
because different distributions could well install it with different names.
autoconf2.50 for Debian, but what about Fedora Core, Mandriva, Ubuntu, and
Gentoo, to name but a few of the most widely used?

One simple, easy and quite sane solution is to touch the configure fragments
so they don't get regenerated.

Also, would the --without-cvs configure switch be usefull here?

But what about glibc renaming the configure.in fragments to configure.ac,
which is what autoconf >= 2.50 use by default, and that is not used by
autoconf <= 2.13 ? Wouldn't that make sense, as well? (I'm just poking
glibc devels here, to see it I can make them sense an itch to scratch at).

Thank you very much for taking time to read and answer me, and for pointing
me to a solution (workaround?) ! :-)

Regards,
Yann E. MORIN.

[1] Synthetised from 'man autoconf' on Lenny:
    if file is configure.ac
        call autoconf2.50
    else if file is configure.in and contains AC_PREREQ >= 2.50
        call autoconf2.50
    else if aclocal.m4 exists and contains AC_PREREQ >= 2.50
        call autoconf2.50
    else
        call autoconf2.13
    fi

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| --==< ^_^ >==-- `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
`------------------------------^-------^------------------^--------------------'


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]