Autoconf, Automake, and Libtool: Automake Development

| ## 2.4 Automake Development By 1994, Autoconf was a solid framework for handling the differences between Unix variants. However, program developers still had to write large ``Makefile.in'` files in order to use it. The ``configure'` script generated by `autoconf` would transform the ``Makefile.in'` file into a ``Makefile'` used by the `make` program. A ``Makefile.in'` file has to describe how to build the program. In the Imake equivalent of a ``Makefile.in'`, known as an ``Imakefile'`, it is only necessary to describe which source files are used to build the program. When Imake generates a ``Makefile'`, it adds the rules for how to build the program itself. Later versions of the BSD `make` program also include rules for building a program. Since most programs are built in much the same way, there was a great deal of duplication in ``Makefile.in'` files. Also, the GNU project developed a reasonably complex set of standards for ``Makefile'`s, and it was easy to get some of the details wrong. These factors led to the development of Automake. `automake`, like `autoconf`, is a program run by a developer. The developer writes files named ``Makefile.am'`; these use a simpler syntax than ordinary ``Makefile'`s. `automake` reads the ``Makefile.am'` files and produces ``Makefile.in'` files. The idea is that a script generated by `autoconf` converts these ``Makefile.in'` files into ``Makefile'`s. As with Imake and BSD `make`, the ``Makefile.am'` file need only describe the files used to build a program. `automake` automatically adds the necessary rules when it generates the ``Makefile.in'` file. `automake` also adds any rules required by the GNU ``Makefile'` standards. The first version of Automake was written by David MacKenzie in 1994. It was completely rewritten in 1995 by Tom Tromey.

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