automake.info: Introduction

Go forward to Generalities
Go backward to Top
Go up to Top
Go to the top op automake

Introduction

   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 definitions(1), with rules being thrown in
occasionally.  The generated `Makefile.in's are compliant with the GNU
Makefile standards.
   The GNU Makefile Standards Document (*note Makefile Conventions:
(standards)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 (*note Introduction:
(autoconf)Top.), and enforces certain restrictions on the
`configure.in' contents(2).
   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>.

---------- Footnotes ----------

   (1) These variables are also called "make macros" in Make
terminology, however in this manual we reserve the term "macro" for
Autoconf's macros.
   (2) 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.