Automatic Remaking
------------------
You can put rules like the following in the top-level `Makefile.in'
for a package to automatically update the configuration information when
you change the configuration files. This example includes all of the
optional files, such as `aclocal.m4' and those related to configuration
header files. Omit from the `Makefile.in' rules any of these files
that your package does not use.
The `${srcdir}/' prefix is included because of limitations in the
`VPATH' mechanism.
The `stamp-' files are necessary because the timestamps of
`config.h.in' and `config.h' will not be changed if remaking them does
not change their contents. This feature avoids unnecessary
recompilation. You should include the file `stamp-h.in' your package's
distribution, so `make' will consider `config.h.in' up to date. On
some old BSD systems, `touch' or any command that results in an empty
file does not update the timestamps, so use a command like `echo' as a
workaround.
${srcdir}/configure: configure.in aclocal.m4
cd ${srcdir} && autoconf
# autoheader might not change config.h.in, so touch a stamp file.
${srcdir}/config.h.in: stamp-h.in
${srcdir}/stamp-h.in: configure.in aclocal.m4 acconfig.h \
config.h.top config.h.bot
cd ${srcdir} && autoheader
echo timestamp > ${srcdir}/stamp-h.in
config.h: stamp-h
stamp-h: config.h.in config.status
./config.status
Makefile: Makefile.in config.status
./config.status
config.status: configure
./config.status --recheck
In addition, you should pass `echo timestamp > stamp-h' in the
EXTRA-CMDS argument to `AC_OUTPUT', so `config.status' will ensure that
`config.h' is considered up to date. Note:Output, for more
information about `AC_OUTPUT'.
*Note Invoking config.status::, for more examples of handling
configuration-related dependencies.