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
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.
autoconf, is a program run by a developer. The developer
writes files named `Makefile.am'; these use a simpler syntax than
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.