7. Introducing GNU Automake
The primary goal of Automake is to generate `Makefile.in's
compliant with the GNU Makefile Standards. Along the way, it tries
to remove boilerplate and drudgery. It also helps the `Makefile'
writer by implementing features (for instance automatic dependency
tracking and parallel
make support) that most maintainers don't
have the patience to implement by hand. It also implements some best
practices as well as workarounds for vendor
make bugs -- both of
which require arcane knowledge not generally available.
A secondary goal for Automake is that it work well with other free
software, and, specifically, GNU tools. For example, Automake has
support for Dejagnu-based test suites.
Chances are that you don't care about the GNU Coding Standards.
That's okay. You'll still appreciate the convenience that Automake
provides, and you'll find that the GNU standards compliance
feature, for the most part, assists rather than impedes.
Automake helps the maintainer with five large tasks, and countless minor
ones. The basic functional areas are:
Install and uninstall
We cover the first three items in this chapter, and the others in later
chapters. Before we get into the details, let's talk a bit about some
general principles of Automake.