On Thu, Apr 13, 2006 at 09:54:31AM +0200, Alexandre Duret-Lutz wrote: > Noah: > | `automake' can generate a Makefile.in that does not fit > | `configure' if the version of Autoconf it uses to trace > | `configure.ac' differs from the version used to generate > | `configure'. > > The Autoconf version used by Automake should also be the same > used by aclocal. Maybe aclocal could output some code in > aclocal.m4 to ensure that the autoconf version that reads > aclocal.m4 is the same as the version that was traced to > generate it. > > The consequences of such a test are not entirely clear to me, > but it looks like it would prevent the version mismatch we are > discussing:
This solution is elegant. It would have prevented the problem I described, along with a whole family of potential, similar failures. There could be subtle consequences that I am not seeing, either, but your description makes sense, and no obvious snags come to mind. This will also affect `autoheader'; we'll probably want to make it return $?=63 on version mismatch, like the Automake-supplied tools. > In case this check doesn't sound appropriate for > non-automake-based package, we could also arrange that it be > only performed inside AM_INIT_AUTOMAKE. Yes. The check could be in a macro that AM_INIT_AUTOMAKE calls, and that non-Automake packages could call directly, should they want the protection. Many thanks! This is the sort of solution I had hoped for. It's good that Autoconf 2.60 will explicitly clean up $datarootdir breakage, but this will reduce the need for such workarounds in the future.