@node Introduction
@chapter Introduction
-Automake is a tool for automatically generating
-@file{Makefile.in}s from files called @file{Makefile.am}. The
-@file{Makefile.am} is basically a series of @code{make} macro
-definitions (with rules being thrown in occasionally). The generated
-@file{Makefile.in}s are compliant with the GNU Makefile standards.
+Automake is a tool for automatically generating @file{Makefile.in}s from
+files called @file{Makefile.am}. Each @file{Makefile.am} is basically a
+series of @code{make} macro definitions (with rules being thrown in
+occasionally). The generated @file{Makefile.in}s are compliant with the
+GNU Makefile standards.
The GNU Makefile Standards Document
(@pxref{Makefile Conventions, , , standards, The GNU Coding Standards})
Standards}).
Automake extends this list with @code{pkglibdir}, @code{pkgincludedir},
and @code{pkgdatadir}; these are the same as the non-@samp{pkg}
-versions, but with @samp{@@PACKAGE@@} appended.
+versions, but with @samp{@@PACKAGE@@} appended. For instance,
+@code{pkglibdir} is defined as @code{$(datadir)/@@PACKAGE@@}.
@cvindex PACKAGE
For each primary, there is one additional variable named by prepending
@section A simple example, start to finish
Let's suppose you just finished writing @code{zardoz}, a program to make
-your head float around. You've been using @code{autoconf} to provide a
-portability framework, but your @file{Makefile.in}s have been ad-hoc.
-You want to make them bulletproof, so you turn to @code{automake}.
+your head float from vortex to vortex. You've been using
+@code{autoconf} to provide a portability framework, but your
+@file{Makefile.in}s have been ad-hoc. You want to make them
+bulletproof, so you turn to @code{automake}.
The first step is to update your @file{configure.in} to include the
commands that @code{automake} needs. The simplest way to do this is to
info_TEXINFOS = zardoz.texi
@end example
-Now you can run @code{automake} to generate your @file{Makefile.in}, and
+Now you can run @code{automake --add-missing} to generate your
+@file{Makefile.in} and grab any auxiliary files you might need, and
you're done!
@section A classic program
@code{hello} is renowned for its classic simplicity and versatility.
-What better place to begin a tour? The below shows how Automake could
-be used with the Hello package. The examples below are from the latest
-GNU Hello, but all the maintainer-only code has been stripped out, as
-well as all copyright comments.
+This section shows how Automake could be used with the Hello package.
+The examples below are from the latest GNU Hello, but all the
+maintainer-only code has been stripped out, as well as all copyright
+comments.
Of course, GNU Hello is somewhat more featureful than your traditional
two-liner. GNU Hello is internationalized, does option processing, and
The script @file{hello} is generated by @code{configure}, and is the
only test case. @code{make check} will run this test.
-Last, @file{src/Makefile.am}, where all the real work is done:
+Last we have @file{src/Makefile.am}, where all the real work is done:
@example
bin_PROGRAMS = hello
@file{regex.h} should be removed, because the correct one cannot be
known until the user configures the package.
-As it turns out, @code{automake} is actually smart enough to handle this
-particular case. It will also automatically omit @file{libintl.h} if
-@samp{AM_GNU_GETTEXT} is used.
+As it turns out, @code{automake} is actually smart enough to the
+particular case of the regular expression header. It will also
+automatically omit @file{libintl.h} if @samp{AM_GNU_GETTEXT} is used.
Automatic dependency tracking can be suppressed by putting
@code{no-dependencies} in the variable @code{AUTOMAKE_OPTIONS}.
purposes of making a distribution.
Man pages are not currently considered to be source, because it is not
-uncommon for man pages to be automatically distributed.
+uncommon for man pages to be automatically generated.
@node Install
@node Cygnus
@chapter The effect of @code{--cygnus}
-Cygnus Support has slightly different rules for how a @file{Makefile.in}
-is to be constructed. Passing @samp{--cygnus} to @code{automake} will
-cause any generated @file{Makefile.in} to comply with Cygnus rules.
+Cygnus Solutions has slightly different rules for how a
+@file{Makefile.in} is to be constructed. Passing @samp{--cygnus} to
+@code{automake} will cause any generated @file{Makefile.in} to comply
+with Cygnus rules.
Here are the precise effects of @samp{--cygnus}: