[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Cvs-cvs] ccvs/windows-NT ChangeLog config.h

From: Derek R. Price
Subject: Re: [Cvs-cvs] ccvs/windows-NT ChangeLog config.h
Date: Fri, 07 Jul 2006 11:40:24 -0400
User-agent: Thunderbird (Windows/20060516)

Hash: SHA1

Jim Hyslop wrote:
> Derek R. Price wrote:
>>> Please don't change the files.  They are *both*
>>> autogenerated.  The top level one is generated by autoconf from the
>>> file.
> Right. Methinks I need to learn more about using autoconf. Any pointers
> to quick-start guides?

The system is rather complex and I don't know if there is a quick start
guide.  `info autoconf' after installing autoconf (and GNU info) should
get the Autoconf manual.  It is also online

In short (you may want to skip to the "To boil this down even more" at
the end):

GNULIB may add macro files to the m4/* directory and we have a few in
there ourselves.

Automake's `aclocal' file builds up an `aclocal.m4' file from various
macros provided by Automake, plus the files installed in m4/.

Autoconf's `autoheader' turns the macros and shell script in
`' and `aclocal.m4' (remember, including Automake's macros
and m4/*) into

Autoconf's `autoconf' turns `' into `configure'.

Automake's `automake' then reuses `' and `aclocal.m4'
(remember, including Automake's macros and m4/*) to turn all the
`' files into `' files.

All these commands should only need be run by maintainers (us), leaving
users on to:

`configure && make' (`configure' turns all `'s into
`Makefile's, as well as generating a few other files, as described in
the macros in `', m4/*, & Automake).

There are ASCII diagrams of much of this in the Automake and Autoconf
manuals if you want a visual.  To boil this down even more:

1.  The only top level build files you should ever edit are, any, and m4/* files (for Windows, of course,
there is,, and the MSVC project files,
but I covered those in an earlier email).

2.  If you edit an m4/* file which came from GNULIB (most of them), then
we generally need to push the change upstream to GNULIB (this also goes
for lib/* files from GNULIB, again, most of them).

3.  If you edit any Auto{conf,make} source file(s), then you can attempt
to forget about the whole complex inter-relationships and run Autoconf's
`autoreconf' to regenerate any files that need regenerating.  This
usually works and always works if you `touch && autoreconf'
(`cvs update' can sometimes munge timestamps inappropriately).
`autoreconf -m' will also reconfigure and `make' when done rebuilding
the Auto* generated build files.

4.  If you `configure --enable-maintainer-mode' (and have Autoconf,
Automake, Perl, and any dependencies installed), then a simple `make'
will also rebuild the Auto* generated build files, assuming things
haven't gotten too out of whack.  When things are so out of whack that
`touch && make' doesnt't rebuild the Auto* generated files
with maintainer mode enabled, `touch && autoreconf -m' will
do the trick, assuming that the problem isn't a syntax error or the like
in one of the Auto* source files.

5.  You should never need to `autoreconf' Auto* source files.  You
should never need to enable maintainer mode if you do not either alter
one of the Auto* build files or alter `window-NT/{in,footer}'.

Clear as mud?


- --
Derek R. Price
CVS Solutions Architect
Get CVS support at Ximbiot <>!
v: +1 248.835.1260
f: +1 248.835.1263
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Using GnuPG with Mozilla -


reply via email to

[Prev in Thread] Current Thread [Next in Thread]