Autoconf, Automake, and Libtool: Generated File Dependencies

| # 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 stage -- `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 process. 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 output 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.

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