Autoconf, Automake, and Libtool: configure process

| ## C.5 configure The purpose of the preceding processes was to create the input files necessary for `configure` to run correctly. You would ship your project with the generated `script` and the files in columns, other input and processes (except ``config.cache'`), but `configure` is designed to be run by the person installing your package. Naturally, you will run it too while you develop your project, but the files it produces are specific to your development machine, and are not shipped with your package -- the person installing it later will run `configure` and generate output files specific to their own machine. Running the `configure` script on the build host executes the various tests originally specified by the ``configure.in'` file, and then creates another script, ``config.status'`. This new script generates the ``config.h'` header file from ``config.h.in'`, and ``Makefile'`s from the named ``Makefile.in'`s. Once ``config.status'` has been created, it can be executed by itself to regenerate files without rerunning all the tests. Additionally, if ``AC_PROG_LIBTOOL'` was used, then `ltconfig` is used to generate a `libtool` script.
    user input files   other input      processes          output files
    ================   ===========      =========          ============

                                         .---------,
                       config.site - - ->|         |
                      config.cache - - ->|configure| - - -> config.cache
                                         |         +-,
                                         `-+-------' |
                                           |         |----> config.status
                       config.h.in ------->|config-  |----> config.h
                       Makefile.in ------->|  .status|----> Makefile
                                           |         |----> stamp-h
                                           |         +--,
                                         .-+         |  |
                                         | `------+--'  |
                       ltmain.sh ------->|ltconfig|-------> libtool
                                         |        |     |
                                         `-+------'     |
                                           |config.guess|
                                           | config.sub |
                                           `------------'

This document was generated by Gary V. Vaughan on February, 8 2006 using texi2html