Ethereal-dev: Re: [Ethereal-dev] The need to run autogen (almost) every day.

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxx>
Date: Fri, 6 Sep 2002 13:49:39 -0700
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.