GNU Info

Info Node: (autoconf.info)Automatic Remaking

(autoconf.info)Automatic Remaking


Prev: Build Directories Up: Makefile Substitutions
Enter node , (file) or (file)node

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.


automatically generated by info2www version 1.2.2.9