On Fri, Sep 06, 2002 at 08:45:55PM +0200, Joerg Mayer wrote:
> Well, with each and every file added to the tree, we need to
> regenerate Makefile.in from Makefile.am -> autogen.sh.
Eh?
I've generally found that if you run "make", at least from the CVS tree,
and "Makefile.am" is newer than "Makefile.in", it re-runs automake and
regenerates "Makefile.in" - and then, as "Makefile.in" is newer than
"Makefile", it proceeds to re-run the configure script and regenerates
the Makefile:
% touch Makefile.am
% make |& tee errs
cd . && automake --gnu Makefile
cd . \
&& CONFIG_FILES=Makefile CONFIG_HEADERS= /bin/sh ./config.status
creating Makefile
make all-recursive
...
It appears, at least from the Makefile in one of my trees, that this is
done by the rules:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
If a new *directory* is added, you might have to re-run autogen.sh to
generate stuff in that directory, and if the *behavior* of autogen.sh is
changed - e.g., your changes to use the backup files for autoconf if
necessary - you might have to re-run it, but I have not found that
merely adding a file to the tree always requires you to re-run
autoconf.sh.
> A solution might be that everyone upgrades their autoconf to
> version 2.53
Which would be a pain for me at work, as I can't just upgrade the
autoconf in "/usr/local" on the machines at work - the "/usr/local" file
systems are mounted read-only on most of the engineering compute
servers, to prevent people from randomly changing tools on which our
builds might depend - and I wouldn't want to do so anyway. I'd have to
use my own private version, or stop using the CVS tree for Ethereal at
work.
> and we include configure in the cvs tree (2.53
> doesn't include absolute line numbers into configure anymore).
That's a pain, because people can forget to check in "configure" if
they've updated something that generates it.