\chapentry{Introduction}{1}{1} \chapentry{General ideas}{2}{1} \secentry{General Operation}{2}{1}{1} \secentry{Strictness}{2}{2}{2} \secentry{The Uniform Naming Scheme}{2}{3}{3} \secentry{How derived variables are named}{2}{4}{4} \secentry{Variables reserved for the user}{2}{5}{4} \secentry{Programs automake might require}{2}{6}{5} \chapentry{Some example packages}{3}{6} \secentry{A simple example, start to finish}{3}{1}{6} \secentry{A classic program}{3}{2}{6} \secentry{Building true and false}{3}{3}{8} \chapentry{Creating a \file {Makefile.in}}{4}{9} \chapentry{Scanning \file {configure.in}}{5}{12} \secentry{Configuration requirements}{5}{1}{12} \secentry{Other things Automake recognizes}{5}{2}{12} \secentry{Auto-generating aclocal.m4}{5}{3}{14} \secentry{aclocal options}{5}{4}{15} \secentry{Macro search path}{5}{5}{15} \subsecentry{Modifying the macro search path: \code {--acdir}}{5}{5}{1}{16} \subsecentry{Modifying the macro search path: \code {-I \var {dir}}}{5}{5}{2}{16} \subsecentry{Modifying the macro search path: \file {dirlist}}{5}{5}{3}{16} \secentry{Autoconf macros supplied with Automake}{5}{6}{17} \subsecentry{Public macros}{5}{6}{1}{17} \subsecentry{Private macros}{5}{6}{2}{20} \secentry{Writing your own aclocal macros}{5}{7}{20} \chapentry{The top-level \file {Makefile.am}}{6}{21} \secentry{Recursing subdirectories}{6}{1}{21} \secentry{Conditional subdirectories}{6}{2}{21} \subsecentry{Conditional subdirectories with \code {AM_CONDITIONAL}}{6}{2}{1}{22} \subsecentry{Conditional subdirectories with \code {AC_SUBST}}{6}{2}{2}{22} \subsecentry{How \code {DIST_SUBDIRS} is used}{6}{2}{3}{23} \chapentry{An Alternative Approach to Subdirectories}{7}{23} \chapentry{Rebuilding Makefiles}{8}{23} \chapentry{Building Programs and Libraries}{9}{24} \secentry{Building a program}{9}{1}{24} \subsecentry{Defining program sources}{9}{1}{1}{24} \subsecentry{Linking the program}{9}{1}{2}{25} \subsecentry{Conditional compilation of sources}{9}{1}{3}{25} \subsubsecentry{Conditional compilation using \code {_LDADD} substitutions}{9}{1}{3}{1}{26} \subsubsecentry{Conditional compilation using Automake conditionals}{9}{1}{3}{2}{26} \subsecentry{Conditional compilation of programs}{9}{1}{4}{27} \secentry{Building a library}{9}{2}{27} \secentry{Building a Shared Library}{9}{3}{27} \secentry{Program and Library Variables}{9}{4}{28} \secentry{Special handling for LIBOBJS and ALLOCA}{9}{5}{31} \secentry{Variables used when building a program}{9}{6}{31} \secentry{Yacc and Lex support}{9}{7}{32} \secentry{C++ Support}{9}{8}{34} \secentry{Assembly Support}{9}{9}{34} \secentry{Fortran 77 Support}{9}{10}{35} \subsecentry{Preprocessing Fortran 77}{9}{10}{1}{35} \subsecentry{Compiling Fortran 77 Files}{9}{10}{2}{36} \subsecentry{Mixing Fortran 77 With C and C++}{9}{10}{3}{36} \subsubsecentry{How the Linker is Chosen}{9}{10}{3}{1}{38} \subsecentry{Fortran 77 and Autoconf}{9}{10}{4}{38} \secentry{Java Support}{9}{11}{39} \secentry{Support for Other Languages}{9}{12}{39} \secentry{Automatic de-ANSI-fication}{9}{13}{39} \secentry{Automatic dependency tracking}{9}{14}{40} \secentry{Support for executable extensions}{9}{15}{41} \chapentry{Other Derived Objects}{10}{41} \secentry{Executable Scripts}{10}{1}{41} \secentry{Header files}{10}{2}{42} \secentry{Architecture-independent data files}{10}{3}{42} \secentry{Built sources}{10}{4}{42} \subsecentry{Built sources example}{10}{4}{1}{43} \unnumbsubsecentry{First try}{10}{4}{1}{43} \unnumbsubsecentry{Using \code {BUILT_SOURCES}}{10}{4}{1}{44} \unnumbsubsecentry{Recording dependencies manually}{10}{4}{1}{45} \unnumbsubsecentry{Build \file {bindir.h} from \file {configure}}{10}{4}{1}{45} \unnumbsubsecentry{Build \file {bindir.c}, not \file {bindir.h}.}{10}{4}{1}{46} \unnumbsubsecentry{Which is best?}{10}{4}{1}{46} \chapentry{Other GNU Tools}{11}{46} \secentry{Emacs Lisp}{11}{1}{46} \secentry{Gettext}{11}{2}{47} \secentry{Libtool}{11}{3}{47} \secentry{Java}{11}{4}{47} \secentry{Python}{11}{5}{48} \chapentry{Building documentation}{12}{49} \secentry{Texinfo}{12}{1}{49} \secentry{Man pages}{12}{2}{50} \chapentry{What Gets Installed}{13}{51} \secentry{Basics of installation}{13}{1}{51} \secentry{The two parts of install}{13}{2}{51} \secentry{Extending installation}{13}{3}{52} \secentry{Staged installs}{13}{4}{52} \secentry{Rules for the user}{13}{5}{52} \chapentry{What Gets Cleaned}{14}{53} \chapentry{What Goes in a Distribution}{15}{53} \secentry{Basics of distribution}{15}{1}{53} \secentry{Fine-grained distribution control}{15}{2}{54} \secentry{The dist hook}{15}{3}{54} \secentry{Checking the distribution}{15}{4}{54} \secentry{The types of distributions}{15}{5}{55} \chapentry{Support for test suites}{16}{56} \secentry{Simple Tests}{16}{1}{56} \secentry{DejaGNU Tests}{16}{2}{56} \secentry{Install Tests}{16}{3}{57} \chapentry{Changing Automake's Behavior}{17}{57} \chapentry{Miscellaneous Rules}{18}{59} \secentry{Interfacing to \code {etags}}{18}{1}{59} \secentry{Handling new file extensions}{18}{2}{60} \secentry{Support for Multilibs}{18}{3}{61} \chapentry{Include}{19}{61} \chapentry{Conditionals}{20}{61} \chapentry{The effect of \code {--gnu} and \code {--gnits}}{21}{62} \chapentry{The effect of \code {--cygnus}}{22}{63} \chapentry{When Automake Isn't Enough}{23}{64} \chapentry{Distributing \file {Makefile.in}s}{24}{64} \chapentry{Automake API versioning}{25}{65} \unnumbchapentry{Macro and Variable Index}{25}{66} \unnumbchapentry{General Index}{25}{69}