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 for 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.  Don't
use `touch' (Note: Limitations of Usual Tools), rather use `echo'
(using `date' would cause needless differences, hence CVS conflicts
etc.).

     $(srcdir)/configure: configure.ac 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.ac aclocal.m4
             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

(Be careful if you copy these lines directly into your Makefile, as you
will need to convert the indented lines to start with the tab
character.)

   In addition, you should use `AC_CONFIG_FILES([stamp-h], [echo
timestamp > stamp-h])' so `config.status' will ensure that `config.h'
is considered up to date.  Note: Output, for more information about
`AC_OUTPUT'.

   *Note config.status Invocation::, for more examples of handling
configuration-related dependencies.


automatically generated by info2www version 1.2.2.9