Thread: On aclocal.m4
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
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
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