(autoconf.info)Automatic Remaking


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

3.3.3 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