Automake is a tool for automatically generating Makefile.in
s from
files called Makefile.am
. Each Makefile.am
is basically a
series of make
variable definitions1, with
rules being thrown in occasionally. The generated Makefile.in
s
are compliant with the GNU Makefile standards.
The GNU Makefile Standards Document (see Makefile Conventions) is long, complicated, and subject to change. The goal of Automake is to remove the burden of Makefile maintenance from the back of the individual GNU maintainer (and put it on the back of the Automake maintainer).
The typical Automake input file is simply a series of variable definitions.
Each such file is processed to create a Makefile.in
. There
should generally be one Makefile.am
per directory of a project.
Automake does constrain a project in certain ways; for instance it
assumes that the project uses Autoconf (see Introduction), and enforces certain restrictions on
the configure.in
contents2.
Automake requires perl
in order to generate the
Makefile.in
s. However, the distributions created by Automake are
fully GNU standards-compliant, and do not require perl
in order
to be built.
Mail suggestions and bug reports for Automake to bug-automake@gnu.org.
These variables are also called make macros in Make terminology, however in this manual we reserve the term macro for Autoconf's macros.
Autoconf 2.50 promotes
configure.ac
over configure.in
. The rest of this
documentation will refer to configure.in
as this use is not yet
spread, but Automake supports configure.ac
too.