@syncodeindex cm cp
@ifnottex
-@node Top, Introduction, (dir), (dir)
+@node Top
@comment node-name, next, previous, up
@top GNU Automake
@end ifnottex
-@node Introduction, Generalities, Top, Top
+@node Introduction
@chapter Introduction
Automake is a tool for automatically generating @file{Makefile.in}s from
@email{bug-automake@@gnu.org}.
-@node Generalities, Examples, Introduction, Top
+@node Generalities
@chapter General ideas
The following sections cover a few basic ideas that will help you
@end menu
-@node General Operation, Strictness, Generalities, Generalities
+@node General Operation
@section General Operation
Automake works by reading a @file{Makefile.am} and generating a
@c FIXME document customary ordering of Makefile.am here!
-@node Strictness, Uniform, General Operation, Generalities
+@node Strictness
@section Strictness
@cindex Non-GNU packages
more information on this mode, see @ref{Cygnus}.
-@node Uniform, Canonicalization, Strictness, Generalities
+@node Uniform
@section The Uniform Naming Scheme
@cindex Uniform naming scheme
are explained later (@pxref{Program and Library Variables}).
-@node Canonicalization, User Variables, Uniform, Generalities
+@node Canonicalization
@section How derived variables are named
@cindex canonicalizing Automake variables
variable names less obfuscating.
-@node User Variables, Auxiliary Programs, Canonicalization, Generalities
+@node User Variables
@section Variables reserved for the user
@cindex variables, reserved for the user
@code{YFLAGS} is @code{AM_YFLAGS}.
-@node Auxiliary Programs, , User Variables, Generalities
+@node Auxiliary Programs
@section Programs automake might require
@cindex Programs, auxiliary
@end table
-@node Examples, Invoking Automake, Generalities, Top
+@node Examples
@chapter Some example packages
@menu
@end menu
-@node Complete, Hello, Examples, Examples
+@node Complete
@section A simple example, start to finish
@cindex Complete example
you're done!
-@node Hello, true, Complete, Examples
+@node Hello
@section A classic program
@cindex Example, GNU Hello
@end example
-@node true, , Hello, Examples
+@node true
@section Building true and false
@cindex Example, false and true
(The name of the object files rarely matters.)
-@node Invoking Automake, configure, Examples, Top
+@node Invoking Automake
@chapter Creating a @file{Makefile.in}
@cindex Multiple configure.in files
@end table
-@node configure, Top level, Invoking Automake, Top
+@node configure
@chapter Scanning @file{configure.in}
@cindex configure.in, scanning
@end menu
-@node Requirements, Optional, configure, configure
+@node Requirements
@section Configuration requirements
@cindex Automake requirements
@end table
-@node Optional, Invoking aclocal, Requirements, configure
+@node Optional
@section Other things Automake recognizes
@cindex Macros Automake recognizes
@end table
-@node Invoking aclocal, aclocal options, Optional, configure
+@node Invoking aclocal
@section Auto-generating aclocal.m4
@cindex Invoking aclocal
* Macro search path:: How aclocal finds .m4 files
@end menu
-@node aclocal options, Macro search path, Invoking aclocal, configure
+@node aclocal options
@section aclocal options
@cindex aclocal, Options
Print the version number of Automake and exit.
@end table
-@node Macro search path, Macros, aclocal options, configure
+@node Macro search path
@section Macro search path
@cindex Macro search path
macros installed at other places on the system.
-@node Macros, Extending aclocal, Macro search path, configure
+@node Macros
@section Autoconf macros supplied with Automake
Automake ships with several Autoconf macros that you can use from your
@c consider generating the following subsections automatically from m4 files.
-@node Public macros, Private macros, Macros, Macros
+@node Public macros
@subsection Public macros
@table @code
@end table
-@node Private macros, , Public macros, Macros
+@node Private macros
@subsection Private macros
The following macros are private macros you should not call directly.
@end table
-@node Extending aclocal, Local Macros, Macros, configure
+@node Extending aclocal
@section Writing your own aclocal macros
@cindex aclocal, extending
manage macros which are used locally by the package, @ref{Local
Macros}.
-@node Local Macros, Future of aclocal, Extending aclocal, configure
+@node Local Macros
@section Handling Local Macros
Feature tests offered by Autoconf do not cover all needs. People
such third-party macros in your local @file{m4/} directory so they get
distributed.
-@node Future of aclocal, , Local Macros, configure
+@node Future of aclocal
@section The Future of @command{aclocal}
@cindex aclocal's scheduled death
you will not call @command{aclocal} directly anymore.
-@node Top level, Alternative, configure, Top
+@node Top level
@chapter The top-level @file{Makefile.am}
@section Recursing subdirectories
@code{DIST_SUBDIRS} needs to be defined manually.
-@node Alternative, Rebuilding, Top level, Top
+@node Alternative
@chapter An Alternative Approach to Subdirectories
If you've ever read Peter Miller's excellent paper,
nobase_dist_pkgdata_DATA = images/vortex.pgm
@end example
-@node Rebuilding, Programs, Alternative, Top
+@node Rebuilding
@chapter Rebuilding Makefiles
Automake generates rules to automatically rebuild @file{Makefile}s,
@vindex ACLOCAL_AMFLAGS
-@node Programs, Other objects, Rebuilding, Top
+@node Programs
@chapter Building Programs and Libraries
A large part of Automake's functionality is dedicated to making it easy
@end menu
-@node A Program, A Library, Programs, Programs
+@node A Program
@section Building a program
In order to build a program, you need to tell Automake which sources
* Conditional Programs:: Building program conditionally
@end menu
-@node Program Sources, Linking, A Program, A Program
+@node Program Sources
@subsection Defining program sources
@cindex PROGRAMS, bindir
and Lex}.
-@node Linking, Conditional Sources, Program Sources, A Program
+@node Linking
@subsection Linking the program
If you need to link against libraries that are not found by
generated.
-@node Conditional Sources, Conditional Programs, Linking, A Program
+@node Conditional Sources
@subsection Conditional compilation of sources
You can't put a configure substitution (e.g., @samp{@@FOO@@} or
endif
@end example
-@node Conditional Programs, , Conditional Sources, A Program
+@node Conditional Programs
@subsection Conditional compilation of programs
@cindex Conditional programs
@cindex Programs, conditional
@end example
-@node A Library, A Shared Library, A Program, Programs
+@node A Library
@section Building a library
@cindex _LIBRARIES primary, defined
@file{configure.in}, or by defining a per-library @code{maude_AR}
variable (@pxref{Program and Library Variables}).
-@node A Shared Library, Program and Library Variables, A Library, Programs
+@node A Shared Library
@section Building a Shared Library
@cindex Shared libraries, support for
libtool, The Libtool Manual}, for more information.
-@node Program and Library Variables, LIBOBJS, A Shared Library, Programs
+@node Program and Library Variables
@section Program and Library Variables
Associated with each program are a collection of variables which can be
and we recommend avoiding it until you find it is required.
@end table
-@node LIBOBJS, Program variables, Program and Library Variables, Programs
+@node LIBOBJS
@section Special handling for LIBOBJS and ALLOCA
@cindex @code{LIBOBJS}, special handling
@samp{_LDADD} or @samp{_LIBADD} variable.
-@node Program variables, Yacc and Lex, LIBOBJS, Programs
+@node Program variables
@section Variables used when building a program
Occasionally it is useful to know which @file{Makefile} variables
@end vtable
-@node Yacc and Lex, C++ Support, Program variables, Programs
+@node Yacc and Lex
@section Yacc and Lex support
Automake has somewhat idiosyncratic support for Yacc and Lex.
covered here, please report the new name so it can be added to the list.
-@node C++ Support, Assembly Support, Yacc and Lex, Programs
+@node C++ Support
@section C++ Support
@cindex C++ support
@end vtable
-@node Assembly Support, Fortran 77 Support, C++ Support, Programs
+@node Assembly Support
@section Assembly Support
Automake includes some support for assembly code.
@code{automake} as being files containing assembly code.
-@node Fortran 77 Support, Java Support, Assembly Support, Programs
+@node Fortran 77 Support
@comment node-name, next, previous, up
@section Fortran 77 Support
@end menu
-@node Preprocessing Fortran 77, Compiling Fortran 77 Files, Fortran 77 Support, Fortran 77 Support
+@node Preprocessing Fortran 77
@comment node-name, next, previous, up
@subsection Preprocessing Fortran 77
@end table
-@node Compiling Fortran 77 Files, Mixing Fortran 77 With C and C++, Preprocessing Fortran 77, Fortran 77 Support
+@node Compiling Fortran 77 Files
@comment node-name, next, previous, up
@subsection Compiling Fortran 77 Files
@end table
-@node Mixing Fortran 77 With C and C++, Fortran 77 and Autoconf, Compiling Fortran 77 Files, Fortran 77 Support
+@node Mixing Fortran 77 With C and C++
@comment node-name, next, previous, up
@subsection Mixing Fortran 77 With C and C++
* How the Linker is Chosen::
@end menu
-@node How the Linker is Chosen, , Mixing Fortran 77 With C and C++, Mixing Fortran 77 With C and C++
+@node How the Linker is Chosen
@comment node-name, next, previous, up
@subsubsection How the Linker is Chosen
@end example
-@node Fortran 77 and Autoconf, , Mixing Fortran 77 With C and C++, Fortran 77 Support
+@node Fortran 77 and Autoconf
@comment node-name, next, previous, up
@subsection Fortran 77 and Autoconf
that version of Autoconf or later.
-@node Java Support, Support for Other Languages, Fortran 77 Support, Programs
+@node Java Support
@comment node-name, next, previous, up
@section Java Support
the @code{_LDFLAGS} variable for the program.
-@node Support for Other Languages, ANSI, Java Support, Programs
+@node Support for Other Languages
@comment node-name, next, previous, up
@section Support for Other Languages
suffix rule handling; see @ref{Suffixes}.
-@node ANSI, Dependencies, Support for Other Languages, Programs
+@node ANSI
@section Automatic de-ANSI-fication
@cindex de-ANSI-fication, defined
@code{LTLIBOBJS}. (@pxref{AC_LIBOBJ vs LIBOBJS, , @code{AC_LIBOBJ}
vs. @code{LIBOBJS}, autoconf, The Autoconf Manual})
-@node Dependencies, EXEEXT, ANSI, Programs
+@node Dependencies
@section Automatic dependency tracking
As a developer it is often painful to continually update the
@cindex Dependency tracking, disabling
-@node EXEEXT, , Dependencies, Programs
+@node EXEEXT
@section Support for executable extensions
@cindex Executable extension
@code{no-exeext} option, this use will give an error.
-@node Other objects, Other GNU Tools, Programs, Top
+@node Other objects
@chapter Other Derived Objects
Automake can handle derived objects which are not C programs. Sometimes
@end menu
-@node Scripts, Headers, Other objects, Other objects
+@node Scripts
@section Executable Scripts
@cindex _SCRIPTS primary, defined
@code{make check} should go in @code{check_SCRIPTS}.
-@node Headers, Data, Scripts, Other objects
+@node Headers
@section Header files
@cindex _HEADERS primary, defined
@code{pkgincludedir}.
-@node Data, Sources, Headers, Other objects
+@node Data
@section Architecture-independent data files
@cindex _DATA primary, defined
@end example
-@node Sources, , Data, Other objects
+@node Sources
@section Built sources
Because Automake's automatic dependency tracking works as a side-effect
* Built sources example:: Several ways to handle built sources.
@end menu
-@node Built sources example, , Sources, Sources
+@node Built sources example
@subsection Built sources example
Suppose that @file{foo.c} includes @file{bindir.h}, which is
is converting @file{.h} files into @file{.c} files.
-@node Other GNU Tools, Documentation, Other objects, Top
+@node Other GNU Tools
@chapter Other GNU Tools
Since Automake is primarily intended to generate @file{Makefile.in}s for
@end menu
-@node Emacs Lisp, gettext, Other GNU Tools, Other GNU Tools
+@node Emacs Lisp
@section Emacs Lisp
@cindex _LISP primary, defined
for sites with strange setups to cope for themselves than to make the
installation less nice for everybody else.
-@node gettext, Libtool, Emacs Lisp, Other GNU Tools
+@node gettext
@section Gettext
@cindex GNU Gettext support
@code{dist_noinst_LISP}, to indicate that these files should be
distributed.
-@node Libtool, Java, gettext, Other GNU Tools
+@node Libtool
@section Libtool
Automake provides support for GNU Libtool (@pxref{Top, , Introduction,
@xref{A Shared Library}.
-@node Java, Python, Libtool, Other GNU Tools
+@node Java
@section Java
@cindex _JAVA primary, defined
@end vtable
-@node Python, , Java, Other GNU Tools
+@node Python
@section Python
@cindex _PYTHON primary, defined
Variables, autoconf, The Autoconf Manual}).
-@node Documentation, Install, Other GNU Tools, Top
+@node Documentation
@chapter Building documentation
Currently Automake provides support for Texinfo and man pages.
@end menu
-@node Texinfo, Man pages, Documentation, Documentation
+@node Texinfo
@section Texinfo
@cindex _TEXINFOS primary, defined
This can be prevented via the @code{no-installinfo} option.
-@node Man pages, , Texinfo, Documentation
+@node Man pages
@section Man pages
@cindex _MANS primary, defined
disallowed.
-@node Install, Clean, Documentation, Top
+@node Install
@chapter What Gets Installed
@cindex Installation support
packaging tool.
-@node Clean, Dist, Install, Top
+@node Clean
@chapter What Gets Cleaned
@cindex make clean support
@file{Makefile.am}.
-@node Dist, Tests, Clean, Top
+@node Dist
@chapter What Goes in a Distribution
@section Basics of distribution
the @code{dist-gzip} target is hooked to @code{dist}.
-@node Tests, Options, Dist, Top
+@node Tests
@chapter Support for test suites
@cindex Test suites
this by writing an @code{installcheck-local} target.
-@node Options, Miscellaneous, Tests, Top
+@node Options
@chapter Changing Automake's Behavior
Various features of Automake can be controlled by options in the
@xref{Macros}.
-@node Miscellaneous, Include, Options, Top
+@node Miscellaneous
@chapter Miscellaneous Rules
There are a few rules and variables that didn't fit anywhere else.
@end menu
-@node Tags, Suffixes, Miscellaneous, Miscellaneous
+@node Tags
@section Interfacing to @code{etags}
@cindex TAGS support
@vindex GTAGS_ARGS
-@node Suffixes, Multilibs, Tags, Miscellaneous
+@node Suffixes
@section Handling new file extensions
@cindex Adding new SUFFIXES
@code{SUFFIXES} go at the start of the generated suffixes list, followed
by Automake generated suffixes not already in the list.
-@node Multilibs, , Suffixes, Miscellaneous
+@node Multilibs
@section Support for Multilibs
Automake has support for an obscure feature called multilibs. A
familiar with multilibs and can debug problems you might encounter.
-@node Include, Conditionals, Miscellaneous, Top
+@node Include
@chapter Include
@cmindex include
Makefile fragments included this way are always distributed because
there are needed to rebuild @file{Makefile.in}.
-@node Conditionals, Gnits, Include, Top
+@node Conditionals
@chapter Conditionals
@cindex Conditionals
Automake conditionals will work with any make program.
-@node Gnits, Cygnus, Conditionals, Top
+@node Gnits
@chapter The effect of @code{--gnu} and @code{--gnits}
@cindex --gnu, required files
@end itemize
-@node Cygnus, Extending, Gnits, Top
+@node Cygnus
@chapter The effect of @code{--cygnus}
@cindex Cygnus strictness
removed.
-@node Extending, Distributing, Cygnus, Top
+@node Extending
@chapter When Automake Isn't Enough
Automake's implicit copying semantics means that many problems can be
@c FIXME should include discussion of variables you can use in these
@c rules
-@node Distributing, API versioning, Extending, Top
+@node Distributing
@chapter Distributing @file{Makefile.in}s
Automake places no restrictions on the distribution of the resulting
package, regardless of the licensing you choose.
-@node API versioning, FAQ, Distributing, Top
+@node API versioning
@chapter Automake API versioning
New Automake releases usually include bug fixes and new features.
@email{automake@@gnu.org} and try to get it documented and exercised by
the test-suite.
-@node FAQ, Macro and Variable Index, API versioning, Top
+@node FAQ
@chapter Frequently Asked Questions about Automake
This chapter covers some questions that often come up on the mailing
* renamed objects:: Why are object files sometimes renamed?
@end menu
-@node CVS, maintainer-mode, FAQ, FAQ
+@node CVS
@section CVS and generated files
@subsection Background: distributed generated files
Gettext manual has a section about this, see @ref{CVS Issues, CVS
Issues, Integrating with CVS, gettext, GNU gettext tools}.
-@node maintainer-mode, wildcards, CVS, FAQ
+@node maintainer-mode
@section @command{missing} and @code{AM_MAINTAINER_MODE}
@subsection @command{missing}
version of the tools.
-@node wildcards, distcleancheck, maintainer-mode, FAQ
+@node wildcards
@section Why doesn't Automake support wildcards?
@cindex wildcards
You can get warnings about @code{$(wildcard ...}) constructs using the
@code{-Wportability} flag.
-@node distcleancheck, renamed objects, wildcards, FAQ
+@node distcleancheck
@section Files left in build directory after distclean
@cindex distclean, diagnostic
@cindex dependencies and distributed files
complains before you do this. @code{distcleancheck_listfiles} is a
way to @emph{hide} errors, not to fix them. You can always do better.
-@node renamed objects, , distcleancheck, FAQ
+@node renamed objects
@section Why are object files sometimes renamed?
This happens when per-target compilation flags are used. Object
@code{_SHORTNAME} variable (@pxref{Program and Library Variables}).
@page
-@node Macro and Variable Index, General Index, FAQ, Top
+@node Macro and Variable Index
@unnumbered Macro and Variable Index
@printindex vr
@page
-@node General Index, , Macro and Variable Index, Top
+@node General Index
@unnumbered General Index
@printindex cp