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.

Reply via email to