automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unnecessary running of configure with fatal consequences


From: Ralf Wildenhues
Subject: Re: Unnecessary running of configure with fatal consequences
Date: Wed, 3 Dec 2008 21:57:15 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Hello Joost,

* Joost Kraaijeveld wrote on Wed, Dec 03, 2008 at 09:09:58PM CET:
> On linux everything works as advertised: "../configure; make" and
> everything runs/works (I do an out-of-tree build).
> 
> On Windows however, when I do a "make" after running "../configure",
> "configure" is run again as part of the "make" process.

That's the first issue.  Most likely due to messed up time stamps,
maybe due to the packing/unpacking process?  w32 file systems may have
different time stamp granularity or so.  But with a correctly packaged
tarball, I don't think this should happen.

> During that
> process (the second run of configure) it changes all the aclocal.m4,
> Makefiles.in files and the configure script in the source tree. In that
> process it loses all the non-default (?) macros that are in the
> aclocal.m4 files ( macros for wxWidgets an Boost) and the configure
> fails miserably.

This is the second issue.  It can have several reasons:
- the package requires (typically newer) autotools releases than are
available on the system.  If this is the case, then the required
versions should be annotated in configure.ac (with AC_PREREQ and
AM_INIT_AUTOMAKE), so that older versions fail reliably with exit status
63.  That will then fix the rebuild process to ignore this.

- there are third-party macros needed for regenerating files which are
either not packaged with your package, or not found by aclocal.  The
solution to the former is typically, to install them in m4/ (which can
be done with new 'aclocal --install' if AC_CONFIG_MACRO_DIR([m4]) is
used in configure.ac), the solution to the latter is to add
  ACLOCAL_AMFLAGS = -I m4
to the toplevel Makefile.am file.

- Last but not least, of course you might hit a backward compatibility
  issue in an autotool, or the package or some used macro relies on some
undocumented semantics that are not preserved across versions.

I might have forgotten to list more here.

> If I than do a revert from SVN (restore all the changed files but
> WITHOUT removing the freshly generated Makefiles in the build tree) ,
> *don't* run configure but run make immediately , it *again* starts a
> "configure" but this time it does *not* lose the macros and the build
> succeeds, be it that I have to repeat this procedure for every one of
> the 3 "sub configures".

Well, whether any or all of the files are regenerated, depends on the
relative time stamps.  If the restoration process leaves aclocal.m4 new
enough, then it will likely not be regenerated next time.  I assume it's
this part that is buggy for you.

Cheers,
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]