Thread: On aclocal.m4

On aclocal.m4

From
Peter Eisentraut
Date:
Just so you know what this aclocal.m4 thing is for: When you run autoconf
it looks into this file for additional macro definitions. Several ways
exist to provide additional macros: write them yourself, get them from an
archive site, or use the ones provided by some program like libtool.

To create aclocal.m4 you run the program aclocal. This scans configure.in
and looks for all the macros that are undefined. It then looks around for
definitions of these macros and copies them all into aclocal.m4. "Looks
around" by default means places like /usr/share/aclocal, where things like
libtool and automake leave their macros. When you write macros yourself
you put them into a .m4 file and stick them (in our case) into config/ and
then run `aclocal -I config'. As an analogy, you could think of all the
*.m4 files as .c files and aclocal.m4 as a library, where aclocal is the
linker.

aclocal comes with automake as does the AM_PROG_MISSING macro that
configure uses now. Note that this does not mean that anyone working on
configure.in needs to have automake installed, only those that are adding
external macro definitions. No, this wasn't my idea, this is the standard
autoconf setup.

-- 
Peter Eisentraut                  Sernanders väg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden



Re: On aclocal.m4

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> aclocal comes with automake as does the AM_PROG_MISSING macro that
> configure uses now. Note that this does not mean that anyone working on
> configure.in needs to have automake installed, only those that are adding
> external macro definitions.

... or editing existing ones to fix bugs ... in practice, as you push
more of configure's functionality into macros (which I agree is nice
from a readability standpoint) it will become almost impossible to work
on configure without modifying config/*.m4.

As things stood over the weekend, even just pulling from CVS required
automake, since aclocal.m4 may or may not get a newer timestamp than
the config/*.m4 files.  I temporarily diked out the toplevel make
dependencies that tried to update aclocal.m4, but the issue needs
discussion.

I'd like to be convinced that automake is actually going to be a win
for Postgres before we start requiring developers to have it.
        regards, tom lane


Re: On aclocal.m4

From
Peter Eisentraut
Date:
On Mon, 12 Jun 2000, Tom Lane wrote:

> As things stood over the weekend, even just pulling from CVS required
> automake, since aclocal.m4 may or may not get a newer timestamp than
> the config/*.m4 files.  I temporarily diked out the toplevel make
> dependencies that tried to update aclocal.m4, but the issue needs
> discussion.

As I mentioned to you off-list, if it actually invoked aclocal when there
was none, then that's a bug. Configure should put out a line `checking for
working aclocal|autoconf... missing|found'.


-- 
Peter Eisentraut                  Sernanders väg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden