C. Generated File Dependencies
These diagrams show the data flows associated with each of the tools you
might need to use when bootstrapping a project with GNU Autotools. A lot
of files are consumed and produced by these tools, and it is important
that all of the required input files are present (and correct) at each
configure requires `Makefile.in' and produces
`Makefile' for example. There are many of these relationships, and
these diagrams should help you to visualize the dependencies. They will
be invaluable while you learn your way around GNU Autotools, but before
long you will find that you need to refer to them rarely, if at all.
They do not show how the individual files are laid out in a project
directory tree, since some of them, `config.guess' for example,
have no single place at which they must appear, and others,
`Makefile.am' for example, may be present in several places,
depending on how you want to structure your project directories.
The key to the diagrams in this appendix follows:
The boxes are the individual tools which comprise GNU Autotools.
Where multiple interlinked boxes appear in a single diagram, this
represents one tool itself running other helper programs. If a box is
behind another box, it is a (group of) helper program(s) that may be
automatically run by the boxes in front.
Dotted arrows are for optional files, which may be a part of the
Where an input arrow and output arrow are aligned horizontally, the
output is created from the input by the process between the two.
words in parentheses, "()", are for deprecated files which are supported
but no longer necessary.
Notice that in some cases, a file ouput during one stage of the whole
process becomes the driver for a subsequent stage.
Each of the following diagrams represents the execution of one of the
tools in GNU Autotools; they are presented in the order that we recommend
you run them, though some stages may not be required for your project.
You shouldn't run
libtoolize if your project doesn't use
libtool, for example.