\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}{4} \chapentry{Some example packages}{3}{5} \secentry{A simple example, start to finish}{3}{1}{5} \secentry{A classic program}{3}{2}{6} \secentry{Building etags and ctags}{3}{3}{7} \chapentry{Creating a \file {Makefile.in}}{4}{9} \chapentry{Scanning \file {configure.in}}{5}{10} \secentry{Configuration requirements}{5}{1}{11} \secentry{Other things Automake recognizes}{5}{2}{11} \secentry{Auto-generating aclocal.m4}{5}{3}{13} \secentry{Autoconf macros supplied with Automake}{5}{4}{14} \secentry{Writing your own aclocal macros}{5}{5}{17} \chapentry{The top-level \file {Makefile.am}}{6}{17} \chapentry{An Alternative Approach to Subdirectories}{7}{18} \chapentry{Rebuilding Makefiles}{8}{19} \chapentry{Building Programs and Libraries}{9}{19} \secentry{Building a program}{9}{1}{19} \subsecentry{Introductory blathering}{9}{1}{1}{19} \subsecentry{Conditional compilations}{9}{1}{2}{20} \subsecentry{Linking the program}{9}{1}{3}{20} \secentry{Building a library}{9}{2}{21} \secentry{Building a Shared Library}{9}{3}{22} \secentry{Program and Library Variables}{9}{4}{22} \secentry{Special handling for LIBOBJS and ALLOCA}{9}{5}{25} \secentry{Variables used when building a program}{9}{6}{25} \secentry{Yacc and Lex support}{9}{7}{26} \secentry{C++ Support}{9}{8}{27} \secentry{Assembly Support}{9}{9}{28} \secentry{Fortran 77 Support}{9}{10}{28} \subsecentry{Preprocessing Fortran 77}{9}{10}{1}{29} \subsecentry{Compiling Fortran 77 Files}{9}{10}{2}{29} \subsecentry{Mixing Fortran 77 With C and C++}{9}{10}{3}{29} \subsubsecentry{How the Linker is Chosen}{9}{10}{3}{1}{31} \subsecentry{Fortran 77 and Autoconf}{9}{10}{4}{31} \secentry{Java Support}{9}{11}{32} \secentry{Support for Other Languages}{9}{12}{32} \secentry{Automatic de-ANSI-fication}{9}{13}{32} \secentry{Automatic dependency tracking}{9}{14}{33} \secentry{Support for executable extensions}{9}{15}{33} \chapentry{Other Derived Objects}{10}{34} \secentry{Executable Scripts}{10}{1}{34} \secentry{Header files}{10}{2}{35} \secentry{Architecture-independent data files}{10}{3}{35} \secentry{Built sources}{10}{4}{35} \chapentry{Other GNU Tools}{11}{36} \secentry{Emacs Lisp}{11}{1}{36} \secentry{Gettext}{11}{2}{36} \secentry{Libtool}{11}{3}{36} \secentry{Java}{11}{4}{36} \secentry{Python}{11}{5}{37} \chapentry{Building documentation}{12}{38} \secentry{Texinfo}{12}{1}{38} \secentry{Man pages}{12}{2}{39} \chapentry{What Gets Installed}{13}{40} \secentry{Basics of installation}{13}{1}{40} \secentry{The two parts of install}{13}{2}{41} \secentry{Extending installation}{13}{3}{41} \secentry{Staged installs}{13}{4}{41} \secentry{Rules for the user}{13}{5}{42} \chapentry{What Gets Cleaned}{14}{42} \chapentry{What Goes in a Distribution}{15}{42} \secentry{Basics of distribution}{15}{1}{42} \secentry{Fine-grained distribution control}{15}{2}{43} \secentry{The dist hook}{15}{3}{43} \secentry{Checking the distribution}{15}{4}{43} \secentry{The types of distributions}{15}{5}{44} \chapentry{Support for test suites}{16}{44} \secentry{Simple Tests}{16}{1}{44} \secentry{DejaGNU Tests}{16}{2}{44} \chapentry{Changing Automake's Behavior}{17}{45} \chapentry{Miscellaneous Rules}{18}{47} \secentry{Interfacing to \code {etags}}{18}{1}{47} \secentry{Handling new file extensions}{18}{2}{47} \secentry{Support for Multilibs}{18}{3}{48} \chapentry{Include}{19}{48} \chapentry{Conditionals}{20}{48} \chapentry{The effect of \code {--gnu} and \code {--gnits}}{21}{49} \chapentry{The effect of \code {--cygnus}}{22}{50} \chapentry{When Automake Isn't Enough}{23}{51} \chapentry{Distributing \file {Makefile.in}s}{24}{51} \unnumbchapentry{Macro and Variable Index}{52} \unnumbchapentry{General Index}{55}