@menu
* Introduction:: Automake's purpose
-* Invoking automake:: Creating a Makefile.in
+* Invoking Automake:: Creating a Makefile.in
* Generalities:: General ideas
* configure:: Scanning configure.in
* Top level:: The top-level Makefile.am
Include all automatically generated dependency information
(@pxref{Dependencies}) see dependencies) in the generated
@file{Makefile.in}. This is generally done when making a distribution;
-see @ref{distributions}.
+see @ref{Dist}.
@item --install-missing
Automake requires certain common files to exist in certain situations;
Sometimes, multiple programs are built in one directory but do not share
the same link-time requirements. In this case, you can use the
@samp{prog_LDADD} variable (where @var{PROG} is the name of the program
-as it appears in some ``_PROGRAMS'' variable}) to override the global
+as it appears in some ``_PROGRAMS'' variable) to override the global
@samp{LDADD}. (If this variable exists for a given program, then that
program is not linked using @samp{LDADD}.)
@vindex _LDADD
is what cpio's @file{src/Makefile.am} looks like (abridged):
@example
-bin_PROGRAMS = cpio pax @MT@
-libexec_PROGRAMS = @RMT@
+bin_PROGRAMS = cpio pax @@MT@@
+libexec_PROGRAMS = @@RMT@@
EXTRA_PROGRAMS = mt rmt
LDADD = ../lib/libcpio.a @@INTLLIBS@@
@section Automatic de-ANSI-fication
Although the GNU standards prohibit it, some GNU programs are written in
-ANSI C; see @ref{FIXME}. This is possible because each source file can
-be ``de-ANSI-fied'' before the actual compilation takes place.
+ANSI C; see FIXME. This is possible because each source file can be
+``de-ANSI-fied'' before the actual compilation takes place.
If the @file{Makefile.am} variable @samp{AUTOMAKE_OPTIONS}
@vindex AUTOMAKE_OPTIONS
@node Dependencies
+@section Automatic dependency tracking
As a developer it is often painful to continually update the
@file{Makefile.in} whenever the include-file dependencies change in a
@node Documentation
-@section Building documentation
+@chapter Building documentation
Currently Automake provides support for Texinfo and man pages.
@node Texinfo
-@subsection Texinfo
+@section Texinfo
If the current directory contains Texinfo source, you must declare it
with the @samp{TEXINFOS} primary. Generally Texinfo files are converted
@node Man pages
-@subsection Man pages
+@section Man pages
A package can also include man pages. (Though see the GNU standards on
this matter, @ref{Man Pages, , , standards.info, The GNU Coding
-Standards}). Man pages are declared using the @samp{MANS} primary.
+Standards}.) Man pages are declared using the @samp{MANS} primary.
Generally the @samp{man_MANS} macro is used. Man pages are
automatically installed in the correct subdirectory of @code{mandir},
based on the file extension.
@node Dist
-@section What Goes in a Distribution
+@chapter What Goes in a Distribution
The @samp{dist} target in the generated @file{Makefile.in} can be used
to generate a gzip'd tar file for distribution. The tar file is named
based on the @var{PACKAGE} and @var{VERSION} variables.
-@vindex PACKAGE
-@vindex VERSION
+@cvindex PACKAGE
+@cvindex VERSION
For the most part, the files to distribute are automatically found by
Automake: all source files are automatically included in a distribution,
@vindex DIST_OTHER
-@ndoe Options
+@node Options
@chapter Changing Automake's Behavior
Various features of Automake can be controlled by options in the
@node Extending
-@section When Automake Isn't Enough
+@chapter When Automake Isn't Enough
Sometimes @code{automake} isn't enough. Then you just lose.
$(INSTALL_DATA) $(srcdir)/afile /etc/afile
@end example
+@c FIXME should include discussion of variables you can use in these
+@c rules
+
@node Distributing
@chapter Distributing @file{Makefile.in}s
@node Variables
-@chapter Index of Variables
@unnumbered Index of Variables
@printindex vr
@node Configure variables
-@chapter Index of Configure Variables and Macros
@unnumbered Index of Configure Variables and Macros
@printindex cv
@node Targets
-@chapter Index of Targets
+@unnumbered Index of Targets
FIXME