\input texinfo @c -*-texinfo-*-
@c %**start of header
-@setfilename automake.info
-@settitle automake
+@setfilename automake-ng.info
+@settitle automake-ng
@setchapternewpage off
@c %**end of header
@r{[}@var{\varname\}@r{]}
@end macro
-@set PACKAGE_BUGREPORT bug-automake@@gnu.org
+@set PACKAGE_BUGREPORT automake-ng@@gnu.org
@copying
-This manual is for GNU Automake (version @value{VERSION},
+This manual is for GNU Automake-NG (version @value{VERSION},
@value{UPDATED}), a program that creates GNU standards-compliant
Makefiles from template files.
@dircategory Software development
@direntry
-* Automake: (automake). Making GNU standards-compliant Makefiles.
+* Automake-NG: (automake-ng). Making GNU standards-compliant Makefiles.
@end direntry
@dircategory Individual utilities
@direntry
-* aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4.
-* automake-invocation: (automake)automake Invocation. Generating Makefile.in.
+* aclocal-invocation: (automake-ng)aclocal Invocation. Generating aclocal.m4.
+* automake-invocation: (automake-ng)automake Invocation. Generating Makefile.in.
@end direntry
@titlepage
-@title GNU Automake
+@title GNU Automake-NG
@subtitle For version @value{VERSION}, @value{UPDATED}
@author David MacKenzie
@author Tom Tromey
@author Alexandre Duret-Lutz
+@author Ralf Wildenhues
+@author Stefano Lattarini
@page
@vskip 0pt plus 1filll
@insertcopying
@ifnottex
@node Top
@comment node-name, next, previous, up
-@top GNU Automake
+@top GNU Automake-NG
@insertcopying
@menu
-* Introduction:: Automake's purpose
+* Introduction:: Automake-NG's purpose
* Autotools Introduction:: An Introduction to the Autotools
* Generalities:: General ideas
* Examples:: Some example packages
@node Introduction
@chapter Introduction
-Automake is a tool for automatically generating @file{Makefile.in}s
+Automake-NG 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 @command{make} variable
definitions@footnote{These variables are also called @dfn{make macros}
The GNU Makefile Standards Document
(@pxref{Makefile Conventions, , , standards, The GNU Coding Standards})
-is long, complicated, and subject to change. The goal of Automake is to
-remove the burden of Makefile maintenance from the back of the
-individual GNU maintainer (and put it on the back of the Automake
+is long, complicated, and subject to change. The goal of Automake-NG
+is to remove the burden of Makefile maintenance from the back of the
+individual GNU maintainer (and put it on the back of the Automake-NG
maintainers).
-The typical Automake input file is simply a series of variable definitions.
-Each such file is processed to create a @file{Makefile.in}. There
-should generally be one @file{Makefile.am} per directory of a project.
+The typical Automake-NG input file is simply a series of variable
+definitions. Each such file is processed to create a @file{Makefile.in}.
+There should generally be one @file{Makefile.am} per directory of a
+project.
+@cindex Constraints of Automake-NG
+@cindex Automake-NG constraints
@cindex Constraints of Automake
@cindex Automake constraints
-Automake does constrain a project in certain ways; for instance, it
+Automake-NG does constrain a project in certain ways; for instance, it
assumes that the project uses Autoconf (@pxref{Top, , Introduction,
autoconf, The Autoconf Manual}), and enforces certain restrictions on
the @file{configure.ac} contents.
+@cindex Automake-NG requirements
+@cindex Requirements, Automake-NG
@cindex Automake requirements
@cindex Requirements, Automake
-Automake requires @command{perl} in order to generate the
-@file{Makefile.in}s. However, the distributions created by Automake are
-fully GNU standards-compliant, and do not require @command{perl} in order
-to be built.
+Automake-NG requires @command{perl} in order to generate the
+@file{Makefile.in}s. However, the distributions created by Automake-NG
+are fully GNU standards-compliant, and do not require @command{perl} in
+order to be built.
@cindex Bugs, reporting
@cindex Reporting bugs
@node Autotools Introduction
@chapter An Introduction to the Autotools
-If you are new to Automake, maybe you know that it is part of a set of
+If you are new to Automake-NG, maybe you know that it is part of a set of
tools called @emph{The Autotools}. Maybe you've already delved into a
package full of files named @file{configure}, @file{configure.ac},
@file{Makefile.in}, @file{Makefile.am}, @file{aclocal.m4}, @dots{},
-some of them claiming to be @emph{generated by} Autoconf or Automake.
+some of them claiming to be @emph{generated by} Autoconf or Automake-NG.
But the exact purpose of these files and their relations is probably
fuzzy. The goal of this chapter is to introduce you to this machinery,
to show you how it works and how powerful it is. If you've never
@cindex Autotools, introduction
The Autotools are tools that will create a GNU Build System for your
-package. Autoconf mostly focuses on @file{configure} and Automake on
-@file{Makefile}s. It is entirely possible to create a GNU Build
+package. Autoconf mostly focuses on @file{configure} and Automake-NG
+on @file{Makefile}s. It is entirely possible to create a GNU Build
System without the help of these tools. However it is rather
burdensome and error-prone. We will discuss this again after some
illustration of the GNU Build System in action.
In this section we explore several use cases for the GNU Build System.
You can replay all these examples on the @file{amhello-1.0.tar.gz}
-package distributed with Automake. If Automake is installed on your
-system, you should find a copy of this file in
+package distributed with Automake-NG. If Automake-NG is installed on
+your system, you should find a copy of this file in
@file{@var{prefix}/share/doc/automake/amhello-1.0.tar.gz}, where
@var{prefix} is the installation prefix specified during configuration
-(@var{prefix} defaults to @file{/usr/local}, however if Automake was
+(@var{prefix} defaults to @file{/usr/local}, however if Automake-NG was
installed by some GNU/Linux distribution it most likely has been set
-to @file{/usr}). If you do not have a copy of Automake installed,
+to @file{/usr}). If you do not have a copy of Automake-NG installed,
you can find a copy of this file inside the @file{doc/} directory of
-the Automake package.
+the Automake-NG package.
Some of the following use cases present features that are in fact
extensions to the GNU Build System. Read: they are not specified by
package.
@example
~/amhello % @kbd{cat README}
-This is a demonstration package for GNU Automake.
-Type `info Automake' to read the Automake manual.
+This is a demonstration package for GNU Automake-NG.
+Type 'info Automake-NG' to read its manual.
@end example
@item
-@file{Makefile.am} and @file{src/Makefile.am} contain Automake
+@file{Makefile.am} and @file{src/Makefile.am} contain Automake-NG
instructions for these two directories.
@example
@command{automake}, and a bunch of other commands in the right order.
If you are beginning with these tools, it is not important to figure
out in which order all these tools should be invoked and why. However,
-because Autoconf and Automake have separate manuals, the important
+because Autoconf and Automake-NG have separate manuals, the important
point to understand is that @command{autoconf} is in charge of
creating @file{configure} from @file{configure.ac}, while
@command{automake} is in charge of creating @file{Makefile.in}s from
@node Reporting Bugs
@section Reporting Bugs
-Most nontrivial software has bugs. Automake is no exception. Although
+Most nontrivial software has bugs. Automake-NG is no exception. Although
we cannot promise we can or will fix a bug, and we might not even agree
that it is a bug, we want to hear about problems you encounter. Often we
agree they are bugs and want to fix them.
do so effectively, it helps to know when and how to do it.
Before reporting a bug, it is a good idea to see if it is already known.
-You can look at the @uref{http://debbugs.gnu.org/, GNU Bug Tracker}
-and the @uref{http://lists.gnu.org/@/archive/@/html/@/bug-automake/,
-bug-automake mailing list archives} for previous bug reports. We
-previously used a
-@uref{http://sourceware.org/@/cgi-bin/@/gnatsweb.pl?database=automake,
-Gnats database} for bug tracking, so some bugs might have been reported
-there already. Please do not use it for new bug reports, however.
+@c FIXME: we'll need a bug tracker for Automake-NG, sooner or later ...
+@c You can look at the @uref{http://debbugs.gnu.org/, GNU Bug Tracker}
+You can look at the
+@uref{http://lists.gnu.org/@/archive/@/html/@/automake-ng/,automake-ng
+mailing list archives} for previous bug reports.
If the bug is not already known, it should be reported. It is very
important to report bugs in a way that is useful and efficient. For
features.
For a bug report, a feature request or other suggestions, please send
-email to @email{@value{PACKAGE_BUGREPORT}}. This will then open a new
-bug in the @uref{http://debbugs.gnu.org/@/automake, bug tracker}. Be
-sure to include the versions of Autoconf and Automake that you use.
+email to @email{@value{PACKAGE_BUGREPORT}}.
+@c FIXME: we'll need a bug tracker for Automake-NG, sooner or later ...
+@c This will then open a new bug in the
+@c @uref{http://debbugs.gnu.org/@/automake, bug tracker}.
+Be sure to include the versions of Autoconf and Automake-NG that you use.
Ideally, post a minimal @file{Makefile.am} and @file{configure.ac} that
reproduces the problem you encounter. If you have encountered test
suite failures, please attach the @file{tests/test-suite.log} file.