automake.info (automake-1.16.2.tar.xz) | : | automake.info (automake-1.16.3.tar.xz) | ||
---|---|---|---|---|
File: automake.info, Node: Top, Next: Introduction, Up: (dir) | File: automake.info, Node: Top, Next: Introduction, Up: (dir) | |||
GNU Automake | GNU Automake | |||
************ | ************ | |||
This manual is for GNU Automake (version 1.16.2, 1 February 2020), a | This manual is for GNU Automake (version 1.16.3, 19 November 2020), a | |||
program that creates GNU standards-compliant Makefiles from template | program that creates GNU standards-compliant Makefiles from template | |||
files. | files. | |||
Copyright © 1995–2020 Free Software Foundation, Inc. | Copyright © 1995–2020 Free Software Foundation, Inc. | |||
Permission is granted to copy, distribute and/or modify this | Permission is granted to copy, distribute and/or modify this | |||
document under the terms of the GNU Free Documentation License, | document under the terms of the GNU Free Documentation License, | |||
Version 1.3 or any later version published by the Free Software | Version 1.3 or any later version published by the Free Software | |||
Foundation; with no Invariant Sections, with no Front-Cover texts, | Foundation; with no Invariant Sections, with no Front-Cover texts, | |||
and with no Back-Cover Texts. A copy of the license is included in | and with no Back-Cover Texts. A copy of the license is included in | |||
skipping to change at line 42 | skipping to change at line 42 | |||
* Install:: What gets installed | * Install:: What gets installed | |||
* Clean:: What gets cleaned | * Clean:: What gets cleaned | |||
* Dist:: What goes in a distribution | * Dist:: What goes in a distribution | |||
* Tests:: Support for test suites | * Tests:: Support for test suites | |||
* Rebuilding:: Automatic rebuilding of Makefile | * Rebuilding:: Automatic rebuilding of Makefile | |||
* Options:: Changing Automake’s behavior | * Options:: Changing Automake’s behavior | |||
* Miscellaneous:: Miscellaneous rules | * Miscellaneous:: Miscellaneous rules | |||
* Include:: Including extra files in an Automake template | * Include:: Including extra files in an Automake template | |||
* Conditionals:: Conditionals | * Conditionals:: Conditionals | |||
* Silencing Make:: Obtain less verbose output from ‘make’ | * Silencing Make:: Obtain less verbose output from ‘make’ | |||
* Gnits:: The effect of ‘--gnu’ and ‘--gnits’ | ||||
* Not Enough:: When Automake is not Enough | * Not Enough:: When Automake is not Enough | |||
* Distributing:: Distributing the Makefile.in | * Distributing:: Distributing the Makefile.in | |||
* API Versioning:: About compatibility between Automake versions | * API Versioning:: About compatibility between Automake versions | |||
* Upgrading:: Upgrading to a Newer Automake Version | * Upgrading:: Upgrading to a Newer Automake Version | |||
* FAQ:: Frequently Asked Questions | * FAQ:: Frequently Asked Questions | |||
* Copying This Manual:: How to make copies of this manual | * Copying This Manual:: How to make copies of this manual | |||
* Indices:: Indices of variables, macros, and concepts | * Indices:: Indices of variables, macros, and concepts | |||
— The Detailed Node Listing — | — The Detailed Node Listing — | |||
skipping to change at line 374 | skipping to change at line 373 | |||
‘Makefile.am’, ‘aclocal.m4’, ..., some of them claiming to be _generated | ‘Makefile.am’, ‘aclocal.m4’, ..., some of them claiming to be _generated | |||
by_ Autoconf or Automake. But the exact purpose of these files and | by_ Autoconf or Automake. But the exact purpose of these files and | |||
their relations is probably fuzzy. The goal of this chapter is to | 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 | introduce you to this machinery, to show you how it works and how | |||
powerful it is. If you’ve never installed or seen such a package, do | powerful it is. If you’ve never installed or seen such a package, do | |||
not worry: this chapter will walk you through it. | not worry: this chapter will walk you through it. | |||
If you need some teaching material, more illustrations, or a less | If you need some teaching material, more illustrations, or a less | |||
‘automake’-centered continuation, some slides for this introduction are | ‘automake’-centered continuation, some slides for this introduction are | |||
available in Alexandre Duret-Lutz’s Autotools Tutorial | available in Alexandre Duret-Lutz’s Autotools Tutorial | |||
(http://www.lrde.epita.fr/~adl/autotools.html). This chapter is the | (https://www.lrde.epita.fr/~adl/autotools.html). This chapter is the | |||
written version of the first part of his tutorial. | written version of the first part of his tutorial. | |||
* Menu: | * Menu: | |||
* GNU Build System:: Introducing the GNU Build System | * GNU Build System:: Introducing the GNU Build System | |||
* Use Cases:: Use Cases for the GNU Build System | * Use Cases:: Use Cases for the GNU Build System | |||
* Why Autotools:: How Autotools Help | * Why Autotools:: How Autotools Help | |||
* Hello World:: A Small Hello World Package | * Hello World:: A Small Hello World Package | |||
File: automake.info, Node: GNU Build System, Next: Use Cases, Up: Autotools I ntroduction | File: automake.info, Node: GNU Build System, Next: Use Cases, Up: Autotools I ntroduction | |||
skipping to change at line 1015 | skipping to change at line 1014 | |||
We have already mentioned ‘make dist’. This target collects all your | We have already mentioned ‘make dist’. This target collects all your | |||
source files and the necessary parts of the build system to create a | source files and the necessary parts of the build system to create a | |||
tarball named ‘PACKAGE-VERSION.tar.gz’. | tarball named ‘PACKAGE-VERSION.tar.gz’. | |||
Another, more useful command is ‘make distcheck’. The ‘distcheck’ | Another, more useful command is ‘make distcheck’. The ‘distcheck’ | |||
target constructs ‘PACKAGE-VERSION.tar.gz’ just as well as ‘dist’, but | target constructs ‘PACKAGE-VERSION.tar.gz’ just as well as ‘dist’, but | |||
it additionally ensures most of the use cases presented so far work: | it additionally ensures most of the use cases presented so far work: | |||
• It attempts a full compilation of the package (*note Basic | • It attempts a full compilation of the package (*note Basic | |||
Installation::), unpacking the newly constructed tarball, running | Installation::): unpacking the newly constructed tarball, running | |||
‘make’, ‘make check’, ‘make install’, as well as ‘make | ‘make’, ‘make dvi’, ‘make check’, ‘make install’, as well as ‘make | |||
installcheck’, and even ‘make dist’, | installcheck’, and even ‘make dist’, | |||
• it tests VPATH builds with read-only source tree (*note VPATH | • it tests VPATH builds with read-only source tree (*note VPATH | |||
Builds::), | Builds::), | |||
• it makes sure ‘make clean’, ‘make distclean’, and ‘make uninstall’ | • it makes sure ‘make clean’, ‘make distclean’, and ‘make uninstall’ | |||
do not omit any file (*note Standard Targets::), | do not omit any file (*note Standard Targets::), | |||
• and it checks that ‘DESTDIR’ installations work (*note DESTDIR::). | • and it checks that ‘DESTDIR’ installations work (*note DESTDIR::). | |||
All of these actions are performed in a temporary directory, so that | All of these actions are performed in a temporary directory, so that | |||
no root privileges are required. Please note that the exact location | no root privileges are required. The exact location and the exact | |||
and the exact structure of such a subdirectory (where the extracted | structure of such a subdirectory (where the extracted sources are | |||
sources are placed, how the temporary build and install directories are | placed, how the temporary build and install directories are named and | |||
named and how deeply they are nested, etc.) is to be considered an | how deeply they are nested, etc.) is to be considered an implementation | |||
implementation detail, which can change at any time; so do not rely on | detail, which can change at any time; so do not rely on it. | |||
it. | ||||
Releasing a package that fails ‘make distcheck’ means that one of the | Releasing a package that fails ‘make distcheck’ means that one of the | |||
scenarios we presented will not work and some users will be | scenarios we presented will not work and some users will be | |||
disappointed. Therefore it is a good practice to release a package only | disappointed. Therefore it is a good practice to release a package only | |||
after a successful ‘make distcheck’. This of course does not imply that | after a successful ‘make distcheck’. This of course does not imply that | |||
the package will be flawless, but at least it will prevent some of the | the package will be flawless, but at least it will prevent some of the | |||
embarrassing errors you may find in packages released by people who have | embarrassing errors you may find in packages released by people who have | |||
never heard about ‘distcheck’ (like ‘DESTDIR’ not working because of a | never heard about ‘distcheck’ (like ‘DESTDIR’ not working because of a | |||
typo, or a distributed file being erased by ‘make clean’, or even | typo, or a distributed file being erased by ‘make clean’, or even | |||
‘VPATH’ builds not working). | ‘VPATH’ builds not working). | |||
skipping to change at line 1577 | skipping to change at line 1575 | |||
File: automake.info, Node: Strictness, Next: Uniform, Prev: General Operation , Up: Generalities | File: automake.info, Node: Strictness, Next: Uniform, Prev: General Operation , Up: Generalities | |||
3.2 Strictness | 3.2 Strictness | |||
============== | ============== | |||
While Automake is intended to be used by maintainers of GNU packages, it | While Automake is intended to be used by maintainers of GNU packages, it | |||
does make some effort to accommodate those who wish to use it, but do | does make some effort to accommodate those who wish to use it, but do | |||
not want to use all the GNU conventions. | not want to use all the GNU conventions. | |||
To this end, Automake supports three levels of “strictness”—the | To this end, Automake supports three levels of “strictness”—how | |||
strictness indicating how stringently Automake should check standards | stringently Automake should enforce conformance with GNU conventions. | |||
conformance. | Each strictness level can be selected using an option of the same name; | |||
see *note Options::. | ||||
The valid strictness levels are: | The strictness levels are: | |||
‘gnu’ | ||||
This is the default level of strictness. Automake will check for | ||||
basic compliance with the GNU standards for software packaging. | ||||
*Note (standards)Top:: for full details of these standards. | ||||
Currently the following checks are made: | ||||
• The files ‘INSTALL’, ‘NEWS’, ‘README’, ‘AUTHORS’, and | ||||
‘ChangeLog’, plus one of ‘COPYING.LIB’, ‘COPYING.LESSER’ or | ||||
‘COPYING’, are required at the topmost directory of the | ||||
package. | ||||
If the ‘--add-missing’ option is given, ‘automake’ will add a | ||||
generic version of the ‘INSTALL’ file as well as the ‘COPYING’ | ||||
file containing the text of the current version of the GNU | ||||
General Public License existing at the time of this Automake | ||||
release (version 3 as this is written, | ||||
<https://www.gnu.org/copyleft/gpl.html>). However, an | ||||
existing ‘COPYING’ file will never be overwritten by | ||||
‘automake’. | ||||
• The options ‘no-installman’ and ‘no-installinfo’ are | ||||
prohibited. | ||||
Future versions of Automake will add more checks at this level of | ||||
strictness; it is advisable to be familiar with the precise | ||||
requirements of the GNU standards. | ||||
Future versions of Automake may, at this level of strictness, | ||||
require certain non-standard GNU tools to be available to | ||||
maintainer-only Makefile rules. For instance, in the future | ||||
‘pathchk’ (*note (coreutils)pathchk invocation::) may be required | ||||
to run ‘make dist’. | ||||
‘foreign’ | ‘foreign’ | |||
Automake will check for only those things that are absolutely | Automake will check for only those things that are absolutely | |||
required for proper operation. For instance, whereas GNU standards | required for proper operation. For instance, whereas GNU standards | |||
dictate the existence of a ‘NEWS’ file, it will not be required in | dictate the existence of a ‘NEWS’ file, it will not be required in | |||
this mode. This strictness will also turn off some warnings by | this mode. This strictness will also turn off some warnings by | |||
default (among them, portability warnings). The name comes from | default (among them, portability warnings). | |||
the fact that Automake is intended to be used for GNU programs; | ||||
these relaxed rules are not the standard mode of operation. | ||||
‘gnu’ | ||||
Automake will check—as much as possible—for compliance to the GNU | ||||
standards for packages. This is the default. | ||||
‘gnits’ | ‘gnits’ | |||
Automake will check for compliance to the as-yet-unwritten “Gnits | Automake will check for compliance to the as-yet-unwritten “Gnits | |||
standards”. These are based on the GNU standards, but are even | standards”. These are based on the GNU standards, but are even | |||
more detailed. Unless you are a Gnits standards contributor, it is | more detailed. Unless you are a Gnits standards contributor, it is | |||
recommended that you avoid this option until such time as the Gnits | recommended that you avoid this option until such time as the Gnits | |||
standard is actually published (which may never happen). | standard is actually published (which may never happen). | |||
*Note Gnits::, for more information on the precise implications of | Currently, ‘--gnits’ does all the checks that ‘--gnu’ does, and | |||
the strictness level. | checks the following as well: | |||
• ‘make installcheck’ will check to make sure that the ‘--help’ | ||||
and ‘--version’ really print a usage message and a version | ||||
string, respectively. This is the ‘std-options’ option (*note | ||||
Options::). | ||||
• ‘make dist’ will check to make sure the ‘NEWS’ file has been | ||||
updated to the current version. | ||||
• ‘VERSION’ is checked to make sure its format complies with | ||||
Gnits standards. | ||||
• If ‘VERSION’ indicates that this is an alpha release, and the | ||||
file ‘README-alpha’ appears in the topmost directory of a | ||||
package, then it is included in the distribution. This is | ||||
done in ‘--gnits’ mode, and no other, because this mode is the | ||||
only one where version number formats are constrained, and | ||||
hence the only mode where Automake can automatically determine | ||||
whether ‘README-alpha’ should be included. | ||||
• The file ‘THANKS’ is required. | ||||
File: automake.info, Node: Uniform, Next: Length Limitations, Prev: Strictnes s, Up: Generalities | File: automake.info, Node: Uniform, Next: Length Limitations, Prev: Strictnes s, Up: Generalities | |||
3.3 The Uniform Naming Scheme | 3.3 The Uniform Naming Scheme | |||
============================= | ============================= | |||
Automake variables generally follow a “uniform naming scheme” that makes | Automake variables generally follow a “uniform naming scheme” that makes | |||
it easy to decide how programs (and other derived objects) are built, | it easy to decide how programs (and other derived objects) are built, | |||
and how they are installed. This scheme also supports ‘configure’ time | and how they are installed. This scheme also supports ‘configure’ time | |||
determination of what should be built. | determination of what should be built. | |||
skipping to change at line 1722 | skipping to change at line 1769 | |||
Pages::). | Pages::). | |||
File: automake.info, Node: Length Limitations, Next: Canonicalization, Prev: Uniform, Up: Generalities | File: automake.info, Node: Length Limitations, Next: Canonicalization, Prev: Uniform, Up: Generalities | |||
3.4 Staying below the command line length limit | 3.4 Staying below the command line length limit | |||
=============================================== | =============================================== | |||
Traditionally, most unix-like systems have a length limitation for the | Traditionally, most unix-like systems have a length limitation for the | |||
command line arguments and environment contents when creating new | command line arguments and environment contents when creating new | |||
processes (see for example | processes (see for example | |||
<http://www.in-ulm.de/~mascheck/various/argmax/> for an overview on this | <https://www.in-ulm.de/~mascheck/various/argmax/> for an overview on | |||
issue), which of course also applies to commands spawned by ‘make’. | this issue), which of course also applies to commands spawned by ‘make’. | |||
POSIX requires this limit to be at least 4096 bytes, and most modern | POSIX requires this limit to be at least 4096 bytes, and most modern | |||
systems have quite high limits (or are unlimited). | systems have quite high limits (or are unlimited). | |||
In order to create portable Makefiles that do not trip over these | In order to create portable Makefiles that do not trip over these | |||
limits, it is necessary to keep the length of file lists bounded. | limits, it is necessary to keep the length of file lists bounded. | |||
Unfortunately, it is not possible to do so fully transparently within | Unfortunately, it is not possible to do so fully transparently within | |||
Automake, so your help may be needed. Typically, you can split long | Automake, so your help may be needed. Typically, you can split long | |||
file lists manually and use different installation directory names for | file lists manually and use different installation directory names for | |||
each list. For example, | each list. For example, | |||
skipping to change at line 1891 | skipping to change at line 1938 | |||
longer installed automatically, and it should be safe to remove it. | longer installed automatically, and it should be safe to remove it. | |||
‘py-compile’ | ‘py-compile’ | |||
This is used to byte-compile Python scripts. | This is used to byte-compile Python scripts. | |||
‘test-driver’ | ‘test-driver’ | |||
This implements the default test driver offered by the parallel | This implements the default test driver offered by the parallel | |||
testsuite harness. | testsuite harness. | |||
‘texinfo.tex’ | ‘texinfo.tex’ | |||
Not a program, this file is required for ‘make dvi’, ‘make ps’ and | When Texinfo sources are in the package, this file is required for | |||
‘make pdf’ to work when Texinfo sources are in the package. The | ‘make dvi’, ‘make ps’ and ‘make pdf’. The latest version can be | |||
latest version can be downloaded from | downloaded from <https://www.gnu.org/software/texinfo/>. A working | |||
<https://www.gnu.org/software/texinfo/>. | TeX distribution, or at least a ‘tex’ program, is also required. | |||
Furthermore, ‘make dist’ invokes ‘make dvi’, so these become | ||||
requirements for making a distribution with Texinfo sources. | ||||
‘ylwrap’ | ‘ylwrap’ | |||
This program wraps ‘lex’ and ‘yacc’ to rename their output files. | This program wraps ‘lex’ and ‘yacc’ to rename their output files. | |||
It also ensures that, for instance, multiple ‘yacc’ instances can | It also ensures that, for instance, multiple ‘yacc’ instances can | |||
be invoked in a single directory in parallel. | be invoked in a single directory in parallel. | |||
File: automake.info, Node: Examples, Next: automake Invocation, Prev: General ities, Up: Top | File: automake.info, Node: Examples, Next: automake Invocation, Prev: General ities, Up: Top | |||
4 Some example packages | 4 Some example packages | |||
*********************** | *********************** | |||
skipping to change at line 2125 | skipping to change at line 2174 | |||
reinstalled even if they already exist in the source tree. This | reinstalled even if they already exist in the source tree. This | |||
involves removing the file from the source tree before creating the | involves removing the file from the source tree before creating the | |||
new symlink (or, with ‘--copy’, copying the new file). | new symlink (or, with ‘--copy’, copying the new file). | |||
‘--foreign’ | ‘--foreign’ | |||
Set the global strictness to ‘foreign’. For more information, see | Set the global strictness to ‘foreign’. For more information, see | |||
*note Strictness::. | *note Strictness::. | |||
‘--gnits’ | ‘--gnits’ | |||
Set the global strictness to ‘gnits’. For more information, see | Set the global strictness to ‘gnits’. For more information, see | |||
*note Gnits::. | *note Strictness::. | |||
‘--gnu’ | ‘--gnu’ | |||
Set the global strictness to ‘gnu’. For more information, see | Set the global strictness to ‘gnu’. For more information, see | |||
*note Gnits::. This is the default strictness. | *note Strictness::. This is the default strictness. | |||
‘--help’ | ‘--help’ | |||
Print a summary of the command line options and exit. | Print a summary of the command line options and exit. | |||
‘-i’ | ‘-i’ | |||
‘--ignore-deps’ | ‘--ignore-deps’ | |||
This disables the dependency tracking feature in generated | This disables the dependency tracking feature in generated | |||
‘Makefile’s; see *note Dependencies::. | ‘Makefile’s; see *note Dependencies::. | |||
‘--include-deps’ | ‘--include-deps’ | |||
skipping to change at line 2165 | skipping to change at line 2214 | |||
future release. | future release. | |||
‘-v’ | ‘-v’ | |||
‘--verbose’ | ‘--verbose’ | |||
Cause Automake to print information about which files are being | Cause Automake to print information about which files are being | |||
read or created. | read or created. | |||
‘--version’ | ‘--version’ | |||
Print the version number of Automake and exit. | Print the version number of Automake and exit. | |||
‘-W CATEGORY’ | ‘-W CATEGORY[,CATEGORY...]’ | |||
‘--warnings=CATEGORY’ | ‘--warnings=CATEGORY[,CATEGORY...]’ | |||
Output warnings falling in CATEGORY. CATEGORY can be one of: | Output warnings about a CATEGORY of potential problems with the | |||
package. CATEGORY can be any of: | ||||
‘cross’ | ||||
Constructs compromising the ability to cross-compile the | ||||
package. | ||||
‘gnu’ | ‘gnu’ | |||
warnings related to the GNU Coding Standards (*note | Minor deviations from the GNU Coding Standards (*note | |||
(standards)Top::). | (standards)Top::). | |||
‘obsolete’ | ‘obsolete’ | |||
obsolete features or constructions | Obsolete features or constructions. | |||
‘override’ | ‘override’ | |||
user redefinitions of Automake rules or variables | Redefinitions of Automake rules or variables. | |||
‘portability’ | ‘portability’ | |||
portability issues (e.g., use of ‘make’ features that are | Portability issues (e.g., use of ‘make’ features that are | |||
known to be not portable) | known to be not portable). | |||
‘portability-recursive’ | ||||
Recursive, or nested, Make variable expansions (‘$(foo$(x))’). | ||||
These are not universally supported, but are more portable | ||||
than the other non-portable constructs diagnosed by | ||||
‘-Wportability’. These warnings are turned on by | ||||
‘-Wportability’ but can then be turned off specifically by | ||||
‘-Wno-portability-recursive’. | ||||
‘extra-portability’ | ‘extra-portability’ | |||
extra portability issues related to obscure tools. One | Extra portability issues, related to rarely-used tools such as | |||
example of such a tool is the Microsoft ‘lib’ archiver. | the Microsoft ‘lib’ archiver. | |||
‘syntax’ | ‘syntax’ | |||
weird syntax, unused variables, typos | Questionable syntax, unused variables, typos, etc. | |||
‘unsupported’ | ‘unsupported’ | |||
unsupported or incomplete features | Unsupported or incomplete features. | |||
‘all’ | ‘all’ | |||
all the warnings | Turn on all the above categories of warnings. | |||
‘none’ | ‘none’ | |||
turn off all the warnings | Turn off all the above categories of warnings. | |||
‘error’ | ‘error’ | |||
treat warnings as errors | Treat warnings as errors. | |||
A category can be turned off by prefixing its name with ‘no-’. For | A category can be turned off by prefixing its name with ‘no-’. For | |||
instance, ‘-Wno-syntax’ will hide the warnings about unused | instance, ‘-Wno-syntax’ will hide the warnings about unused | |||
variables. | variables. | |||
The categories output by default are ‘obsolete’, ‘syntax’ and | Warnings in the ‘gnu’, ‘obsolete’, ‘portability’, ‘syntax’, and | |||
‘unsupported’. Additionally, ‘gnu’ and ‘portability’ are enabled | ‘unsupported’ categories are turned on by default. The ‘gnu’ and | |||
in ‘--gnu’ and ‘--gnits’ strictness. | ‘portability’ categories are turned off in ‘--foreign’ strictness. | |||
Turning off ‘portability’ will also turn off ‘extra-portability’, | Turning off ‘portability’ will also turn off ‘extra-portability’, | |||
and similarly turning on ‘extra-portability’ will also turn on | and similarly turning on ‘extra-portability’ will also turn on | |||
‘portability’. However, turning on ‘portability’ or turning off | ‘portability’. However, turning on ‘portability’ or turning off | |||
‘extra-portability’ will not affect the other category. | ‘extra-portability’ will not affect the other category. | |||
Unknown warning categories supplied as an argument to ‘-W’ will | ||||
themselves produce a warning, in the ‘unsupported’ category. This | ||||
warning is never treated as an error. | ||||
The environment variable ‘WARNINGS’ can contain a comma separated | The environment variable ‘WARNINGS’ can contain a comma separated | |||
list of categories to enable. It will be taken into account before | list of categories to enable. ‘-W’ settings on the command line | |||
the command-line switches, this way ‘-Wnone’ will also ignore any | take precedence; for instance, ‘-Wnone’ also turns off any warning | |||
warning category enabled by ‘WARNINGS’. This variable is also used | categories enabled by ‘WARNINGS’. | |||
by other tools like ‘autoconf’; unknown categories are ignored for | ||||
this reason. | Unknown warning categories named in ‘WARNINGS’ are silently | |||
ignored. | ||||
If the environment variable ‘AUTOMAKE_JOBS’ contains a positive | If the environment variable ‘AUTOMAKE_JOBS’ contains a positive | |||
number, it is taken as the maximum number of Perl threads to use in | number, it is taken as the maximum number of Perl threads to use in | |||
‘automake’ for generating multiple ‘Makefile.in’ files concurrently. | ‘automake’ for generating multiple ‘Makefile.in’ files concurrently. | |||
This is an experimental feature. | This is an experimental feature. | |||
File: automake.info, Node: configure, Next: Directories, Prev: automake Invoc ation, Up: Top | File: automake.info, Node: configure, Next: Directories, Prev: automake Invoc ation, Up: Top | |||
6 Scanning ‘configure.ac’, using ‘aclocal’ | 6 Scanning ‘configure.ac’, using ‘aclocal’ | |||
****************************************** | ****************************************** | |||
skipping to change at line 3307 | skipping to change at line 3373 | |||
will instead invoke the ‘missing’ script, in order to give useful | will instead invoke the ‘missing’ script, in order to give useful | |||
advice to the user about the missing maintainer tool. *Note | advice to the user about the missing maintainer tool. *Note | |||
maintainer-mode::, for more information on when the ‘missing’ | maintainer-mode::, for more information on when the ‘missing’ | |||
script is appropriate. | script is appropriate. | |||
‘AM_SILENT_RULES’ | ‘AM_SILENT_RULES’ | |||
Control the machinery for less verbose build output (*note Automake | Control the machinery for less verbose build output (*note Automake | |||
Silent Rules::). | Silent Rules::). | |||
‘AM_WITH_DMALLOC’ | ‘AM_WITH_DMALLOC’ | |||
Add support for the Dmalloc package (http://dmalloc.com/). If the | Add support for the Dmalloc package (https://dmalloc.com/). If the | |||
user runs ‘configure’ with ‘--with-dmalloc’, then define | user runs ‘configure’ with ‘--with-dmalloc’, then define | |||
‘WITH_DMALLOC’ and add ‘-ldmalloc’ to ‘LIBS’. | ‘WITH_DMALLOC’ and add ‘-ldmalloc’ to ‘LIBS’. | |||
File: automake.info, Node: Obsolete Macros, Next: Private Macros, Prev: Publi c Macros, Up: Macros | File: automake.info, Node: Obsolete Macros, Next: Private Macros, Prev: Publi c Macros, Up: Macros | |||
6.4.2 Obsolete Macros | 6.4.2 Obsolete Macros | |||
--------------------- | --------------------- | |||
Although using some of the following macros was required in past | Although using some of the following macros was required in past | |||
releases, you should not use any of them in new code. _All these macros | releases, you should not use any of them in new code. _All these macros | |||
skipping to change at line 3683 | skipping to change at line 3749 | |||
to avoid this check is to use the ‘AC_SUBST’ method to declare | to avoid this check is to use the ‘AC_SUBST’ method to declare | |||
conditional directories; since ‘automake’ does not know the values of | conditional directories; since ‘automake’ does not know the values of | |||
‘AC_SUBST’ variables it cannot ensure the corresponding directory | ‘AC_SUBST’ variables it cannot ensure the corresponding directory | |||
exists. | exists. | |||
File: automake.info, Node: Alternative, Next: Subpackages, Prev: Conditional Subdirectories, Up: Directories | File: automake.info, Node: Alternative, Next: Subpackages, Prev: Conditional Subdirectories, Up: Directories | |||
7.3 An Alternative Approach to Subdirectories | 7.3 An Alternative Approach to Subdirectories | |||
============================================= | ============================================= | |||
If you’ve ever read Peter Miller’s excellent paper, Recursive Make | If you’ve ever read Peter Miller’s excellent paper, ‘Recursive Make | |||
Considered Harmful (http://miller.emu.id.au/pmiller/books/rmch/), the | Considered Harmful’, the preceding sections on the use of make recursion | |||
preceding sections on the use of make recursion will probably come as | will probably come as unwelcome advice. For those who haven’t read the | |||
unwelcome advice. For those who haven’t read the paper, Miller’s main | paper, Miller’s main thesis is that recursive ‘make’ invocations are | |||
thesis is that recursive ‘make’ invocations are both slow and | both slow and error-prone. | |||
error-prone. | ||||
Automake provides sufficient cross-directory support (1) to enable | Automake provides sufficient cross-directory support (1) to enable | |||
you to write a single ‘Makefile.am’ for a complex multi-directory | you to write a single ‘Makefile.am’ for a complex multi-directory | |||
package. | package. | |||
By default an installable file specified in a subdirectory will have | By default an installable file specified in a subdirectory will have | |||
its directory name stripped before installation. For instance, in this | its directory name stripped before installation. For instance, in this | |||
example, the header file will be installed as ‘$(includedir)/stdio.h’: | example, the header file will be installed as ‘$(includedir)/stdio.h’: | |||
include_HEADERS = inc/stdio.h | include_HEADERS = inc/stdio.h | |||
skipping to change at line 4211 | skipping to change at line 4276 | |||
8.3.1 The Libtool Concept | 8.3.1 The Libtool Concept | |||
------------------------- | ------------------------- | |||
Libtool abstracts shared and static libraries into a unified concept | Libtool abstracts shared and static libraries into a unified concept | |||
henceforth called “libtool libraries”. Libtool libraries are files | henceforth called “libtool libraries”. Libtool libraries are files | |||
using the ‘.la’ suffix, and can designate a static library, a shared | using the ‘.la’ suffix, and can designate a static library, a shared | |||
library, or maybe both. Their exact nature cannot be determined until | library, or maybe both. Their exact nature cannot be determined until | |||
‘./configure’ is run: not all platforms support all kinds of libraries, | ‘./configure’ is run: not all platforms support all kinds of libraries, | |||
and users can explicitly select which libraries should be built. | and users can explicitly select which libraries should be built. | |||
(However the package’s maintainers can tune the default; *note The | (However the package’s maintainers can tune the default; *note The | |||
‘AC_PROG_LIBTOOL’ macro: (libtool)AC_PROG_LIBTOOL.) | ‘LT_INIT’ macro: (libtool)LT_INIT.) | |||
Because object files for shared and static libraries must be compiled | Because object files for shared and static libraries must be compiled | |||
differently, libtool is also used during compilation. Object files | differently, libtool is also used during compilation. Object files | |||
built by libtool are called “libtool objects”: these are files using the | built by libtool are called “libtool objects”: these are files using the | |||
‘.lo’ suffix. Libtool libraries are built from these libtool objects. | ‘.lo’ suffix. Libtool libraries are built from these libtool objects. | |||
You should not assume anything about the structure of ‘.la’ or ‘.lo’ | You should not assume anything about the structure of ‘.la’ or ‘.lo’ | |||
files and how libtool constructs them: this is libtool’s concern, and | files and how libtool constructs them: this is libtool’s concern, and | |||
the last thing one wants is to learn about libtool’s guts. However the | the last thing one wants is to learn about libtool’s guts. However the | |||
existence of these files matters, because they are used as targets and | existence of these files matters, because they are used as targets and | |||
skipping to change at line 5513 | skipping to change at line 5578 | |||
in ‘foo_LDADD’ and ‘libfoo_la_LIBADD’, then Automake would have issued a | in ‘foo_LDADD’ and ‘libfoo_la_LIBADD’, then Automake would have issued a | |||
warning. | warning. | |||
* Menu: | * Menu: | |||
* How the Linker is Chosen:: Automatic linker selection | * How the Linker is Chosen:: Automatic linker selection | |||
---------- Footnotes ---------- | ---------- Footnotes ---------- | |||
(1) For example, the cfortran package | (1) For example, the cfortran package | |||
(http://www-zeus.desy.de/~burow/cfortran/) addresses all of these | (https://www-zeus.desy.de/~burow/cfortran/) addresses all of these | |||
inter-language issues, and runs under nearly all Fortran 77, C and C++ | inter-language issues, and runs under nearly all Fortran 77, C and C++ | |||
compilers on nearly all platforms. However, ‘cfortran’ is not yet Free | compilers on nearly all platforms. However, ‘cfortran’ is not yet Free | |||
Software, but it will be in the next major release. | Software, but it will be in the next major release. | |||
File: automake.info, Node: How the Linker is Chosen, Up: Mixing Fortran 77 Wit h C and C++ | File: automake.info, Node: How the Linker is Chosen, Up: Mixing Fortran 77 Wit h C and C++ | |||
8.14.3.1 How the Linker is Chosen | 8.14.3.1 How the Linker is Chosen | |||
................................. | ................................. | |||
When a program or library mixes several languages, Automake chooses the | When a program or library mixes several languages, Automake chooses the | |||
skipping to change at line 5648 | skipping to change at line 5713 | |||
When linking, ‘gcj’ requires that the main class be specified using | When linking, ‘gcj’ requires that the main class be specified using | |||
the ‘--main=’ option. The easiest way to do this is to use the | the ‘--main=’ option. The easiest way to do this is to use the | |||
‘_LDFLAGS’ variable for the program. | ‘_LDFLAGS’ variable for the program. | |||
File: automake.info, Node: Vala Support, Next: Support for Other Languages, P rev: Java Support with gcj, Up: Programs | File: automake.info, Node: Vala Support, Next: Support for Other Languages, P rev: Java Support with gcj, Up: Programs | |||
8.17 Vala Support | 8.17 Vala Support | |||
================= | ================= | |||
Automake provides initial support for Vala | Automake provides initial support for Vala | |||
(<http://www.vala-project.org/>). This requires valac version 0.7.0 or | (<https://www.vala-project.org/>). This requires valac version 0.7.0 or | |||
later, and currently requires the user to use GNU ‘make’. | later, and currently requires the user to use GNU ‘make’. | |||
foo_SOURCES = foo.vala bar.vala zardoc.c | foo_SOURCES = foo.vala bar.vala zardoc.c | |||
Any ‘.vala’ file listed in a ‘_SOURCES’ variable will be compiled | Any ‘.vala’ file listed in a ‘_SOURCES’ variable will be compiled | |||
into C code by the Vala compiler. The generated ‘.c’ files are | into C code by the Vala compiler. The generated ‘.c’ files are | |||
distributed. The end user does not need to have a Vala compiler | distributed. The end user does not need to have a Vala compiler | |||
installed. | installed. | |||
Automake ships with an Autoconf macro called ‘AM_PROG_VALAC’ that | Automake ships with an Autoconf macro called ‘AM_PROG_VALAC’ that | |||
will locate the Vala compiler and optionally check its version number. | will locate the Vala compiler and optionally check its version number. | |||
-- Macro: AM_PROG_VALAC ([MINIMUM-VERSION], [ACTION-IF-FOUND], | -- Macro: AM_PROG_VALAC ([MINIMUM-VERSION], [ACTION-IF-FOUND], | |||
[ACTION-IF-NOT-FOUND]) Search for a Vala compiler in ‘PATH’. If it | [ACTION-IF-NOT-FOUND]) Search for a Vala compiler in ‘PATH’. If it | |||
is found, the variable ‘VALAC’ is set to point to it (see below for | is found, the variable ‘VALAC’ is set to point to it (see below for | |||
more details). This macro takes three optional arguments. The | more details). This macro takes three optional arguments. The | |||
first argument, if present, is the minimum version of the Vala | first argument, if present, is the minimum version of the Vala API | |||
compiler required to compile this package. If a compiler is found | required to compile this package. For Vala releases, this is the | |||
and satisfies MINIMUM-VERSION, then ACTION-IF-FOUND is run (this | same as the major and minor release number; e.g., when ‘valac | |||
defaults to do nothing). Otherwise, ACTION-IF-NOT-FOUND is run. | --version’ reports ‘0.48.7’, ‘valac --api-version’ reports ‘0.48’. | |||
If ACTION-IF-NOT-FOUND is not specified, the default value is to | If a compiler is found and satisfies MINIMUM-VERSION, then | |||
print a warning in case no compiler is found, or if a too-old | ACTION-IF-FOUND is run (this defaults to do nothing). Otherwise, | |||
version of the compiler is found. | ACTION-IF-NOT-FOUND is run. If ACTION-IF-NOT-FOUND is not | |||
specified, the default value is to print a warning in case no | ||||
compiler is found, or if a too-old version of the compiler is | ||||
found. | ||||
There are a few variables that are used when compiling Vala sources: | There are a few variables that are used when compiling Vala sources: | |||
‘VALAC’ | ‘VALAC’ | |||
Absolute path to the Vala compiler, or simply ‘valac’ if no | Absolute path to the Vala compiler, or simply ‘valac’ if no | |||
suitable Vala compiler could be found at configure runtime. | suitable Vala compiler could be found at configure runtime. | |||
‘VALAFLAGS’ | ‘VALAFLAGS’ | |||
Additional arguments for the Vala compiler. | Additional arguments for the Vala compiler. | |||
skipping to change at line 5972 | skipping to change at line 6040 | |||
(regardless of the dependencies), or accurate dependencies exist and | (regardless of the dependencies), or accurate dependencies exist and | |||
they can be used to decide whether ‘foo.o’ should be rebuilt. | they can be used to decide whether ‘foo.o’ should be rebuilt. | |||
It’s a different story if ‘foo.h’ doesn’t exist by the first ‘make’ | It’s a different story if ‘foo.h’ doesn’t exist by the first ‘make’ | |||
run. For instance, there might be a rule to build ‘foo.h’. This time | run. For instance, there might be a rule to build ‘foo.h’. This time | |||
‘file.o’’s build will fail because the compiler can’t find ‘foo.h’. | ‘file.o’’s build will fail because the compiler can’t find ‘foo.h’. | |||
‘make’ failed to trigger the rule to build ‘foo.h’ first by lack of | ‘make’ failed to trigger the rule to build ‘foo.h’ first by lack of | |||
dependency information. | dependency information. | |||
The ‘BUILT_SOURCES’ variable is a workaround for this problem. A | The ‘BUILT_SOURCES’ variable is a workaround for this problem. A | |||
source file listed in ‘BUILT_SOURCES’ is made on ‘make all’ or ‘make | source file listed in ‘BUILT_SOURCES’ is made when ‘make all’, ‘make | |||
check’ (or even ‘make install’) before other targets are processed. | check’, ‘make install’, ‘make install-exec’ (or ‘make dist’) is run, | |||
However, such a source file is not _compiled_ unless explicitly | before other targets are processed. However, such a source file is not | |||
requested by mentioning it in some other ‘_SOURCES’ variable. | _compiled_ unless explicitly requested by mentioning it in some other | |||
‘_SOURCES’ variable. | ||||
So, to conclude our introductory example, we could use ‘BUILT_SOURCES | So, to conclude our introductory example, we could use ‘BUILT_SOURCES | |||
= foo.h’ to ensure ‘foo.h’ gets built before any other target (including | = foo.h’ to ensure ‘foo.h’ gets built before any other target (including | |||
‘foo.o’) during ‘make all’ or ‘make check’. | ‘foo.o’) during ‘make all’ or ‘make check’. | |||
‘BUILT_SOURCES’ is actually a bit of a misnomer, as any file which | ‘BUILT_SOURCES’ is actually a bit of a misnomer, as any file which | |||
must be created early in the build process can be listed in this | must be created early in the build process can be listed in this | |||
variable. Moreover, all built sources do not necessarily have to be | variable. Moreover, all built sources do not necessarily have to be | |||
listed in ‘BUILT_SOURCES’. For instance, a generated ‘.c’ file doesn’t | listed in ‘BUILT_SOURCES’. For instance, a generated ‘.c’ file doesn’t | |||
need to appear in ‘BUILT_SOURCES’ (unless it is included by another | need to appear in ‘BUILT_SOURCES’ (unless it is included by another | |||
source), because it’s a known dependency of the associated object. | source), because it’s a known dependency of the associated object. | |||
It might be important to emphasize that ‘BUILT_SOURCES’ is honored | To emphasize, ‘BUILT_SOURCES’ is honored only by ‘make all’, ‘make | |||
only by ‘make all’, ‘make check’ and ‘make install’. This means you | check’, ‘make install’, and ‘make install-exec’ (and ‘make dist’). This | |||
cannot build a specific target (e.g., ‘make foo’) in a clean tree if it | means you cannot build an arbitrary target (e.g., ‘make foo’) in a clean | |||
depends on a built source. However it will succeed if you have run | tree if it depends on a built source. However it will succeed if you | |||
‘make all’ earlier, because accurate dependencies are already available. | have run ‘make all’ earlier, because accurate dependencies are already | |||
available. | ||||
The next section illustrates and discusses the handling of built | The next section illustrates and discusses the handling of built | |||
sources on a toy example. | sources on a toy example. | |||
* Menu: | * Menu: | |||
* Built Sources Example:: Several ways to handle built sources. | * Built Sources Example:: Several ways to handle built sources. | |||
File: automake.info, Node: Built Sources Example, Up: Sources | File: automake.info, Node: Built Sources Example, Up: Sources | |||
skipping to change at line 6398 | skipping to change at line 6468 | |||
Assuming ACTION-IF-NOT-FOUND is used (otherwise ‘./configure’ will | Assuming ACTION-IF-NOT-FOUND is used (otherwise ‘./configure’ will | |||
abort if Python is absent), the value of ‘PYTHON’ can be used to | abort if Python is absent), the value of ‘PYTHON’ can be used to | |||
set up a conditional in order to disable the relevant part of a | set up a conditional in order to disable the relevant part of a | |||
build as follows. | build as follows. | |||
AM_PATH_PYTHON(,, [:]) | AM_PATH_PYTHON(,, [:]) | |||
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :]) | AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :]) | |||
‘PYTHON_VERSION’ | ‘PYTHON_VERSION’ | |||
The Python version number, in the form MAJOR.MINOR (e.g., ‘2.5’). | The Python version number, in the form MAJOR.MINOR (e.g., ‘2.5’). | |||
This is currently the value of ‘sys.version[:3]’. | This is currently the value of ‘'%u.%u' % sys.version_info[:2]’. | |||
‘PYTHON_PREFIX’ | ‘PYTHON_PREFIX’ | |||
The string ‘${prefix}’. This term may be used in future work that | The string ‘${prefix}’. This term may be used in future work that | |||
needs the contents of Python’s ‘sys.prefix’, but general consensus | needs the contents of Python’s ‘sys.prefix’, but general consensus | |||
is to always use the value from ‘configure’. | is to always use the value from ‘configure’. | |||
‘PYTHON_EXEC_PREFIX’ | ‘PYTHON_EXEC_PREFIX’ | |||
The string ‘${exec_prefix}’. This term may be used in future work | The string ‘${exec_prefix}’. This term may be used in future work | |||
that needs the contents of Python’s ‘sys.exec_prefix’, but general | that needs the contents of Python’s ‘sys.exec_prefix’, but general | |||
consensus is to always use the value from ‘configure’. | consensus is to always use the value from ‘configure’. | |||
skipping to change at line 6603 | skipping to change at line 6673 | |||
‘TEXI2PDF’ | ‘TEXI2PDF’ | |||
The name of the command that translates a ‘.texi’ file into a | The name of the command that translates a ‘.texi’ file into a | |||
‘.pdf’ file. This defaults to ‘$(TEXI2DVI) --pdf --batch’. | ‘.pdf’ file. This defaults to ‘$(TEXI2DVI) --pdf --batch’. | |||
‘DVIPS’ | ‘DVIPS’ | |||
The name of the command that builds a ‘.ps’ file out of a ‘.dvi’ | The name of the command that builds a ‘.ps’ file out of a ‘.dvi’ | |||
file. This defaults to ‘dvips’. | file. This defaults to ‘dvips’. | |||
‘TEXINFO_TEX’ | ‘TEXINFO_TEX’ | |||
If your package has Texinfo files in many directories, you can use | If your package has Texinfo files in many directories, you can use | |||
the variable ‘TEXINFO_TEX’ to tell Automake where to find the | the variable ‘TEXINFO_TEX’ to tell Automake where to find the | |||
canonical ‘texinfo.tex’ for your package. The value of this | canonical ‘texinfo.tex’ for your package. The value of this | |||
variable should be the relative path from the current ‘Makefile.am’ | variable should be the relative path from the current ‘Makefile.am’ | |||
to ‘texinfo.tex’: | to ‘texinfo.tex’: | |||
TEXINFO_TEX = ../doc/texinfo.tex | TEXINFO_TEX = ../doc/texinfo.tex | |||
File: automake.info, Node: Man Pages, Prev: Texinfo, Up: Documentation | File: automake.info, Node: Man Pages, Prev: Texinfo, Up: Documentation | |||
skipping to change at line 6903 | skipping to change at line 6972 | |||
14.1 Basics of Distribution | 14.1 Basics of Distribution | |||
=========================== | =========================== | |||
The ‘dist’ rule in the generated ‘Makefile.in’ can be used to generate a | The ‘dist’ rule in the generated ‘Makefile.in’ can be used to generate a | |||
gzipped ‘tar’ file and other flavors of archive for distribution. The | gzipped ‘tar’ file and other flavors of archive for distribution. The | |||
file is named based on the ‘PACKAGE’ and ‘VERSION’ variables | file is named based on the ‘PACKAGE’ and ‘VERSION’ variables | |||
automatically defined by either the ‘AC_INIT’ invocation or by a | automatically defined by either the ‘AC_INIT’ invocation or by a | |||
_deprecated_ two-arguments invocation of the ‘AM_INIT_AUTOMAKE’ macro | _deprecated_ two-arguments invocation of the ‘AM_INIT_AUTOMAKE’ macro | |||
(see *note Public Macros:: for how these variables get their values, | (see *note Public Macros:: for how these variables get their values, | |||
from either defaults or explicit values – it’s slightly trickier than | from either defaults or explicit values—it’s slightly trickier than one | |||
one would expect). More precisely the gzipped ‘tar’ file is named | would expect). More precisely the gzipped ‘tar’ file is named | |||
‘${PACKAGE}-${VERSION}.tar.gz’. You can use the ‘make’ variable | ‘${PACKAGE}-${VERSION}.tar.gz’. | |||
‘GZIP_ENV’ to control how gzip is run. The default setting is ‘--best’. | ||||
You can use the ‘make’ variable ‘GZIP_ENV’ to control how gzip is | ||||
run. The default setting is ‘--best’. | ||||
You can set the environment variable ‘TAR’ to override the tar | ||||
program used; it defaults to ‘tar’. | ||||
For the most part, the files to distribute are automatically found by | For the most part, the files to distribute are automatically found by | |||
Automake: all source files are automatically included in a distribution, | Automake: all source files are automatically included in a distribution, | |||
as are all ‘Makefile.am’ and ‘Makefile.in’ files. Automake also has a | as are all ‘Makefile.am’ and ‘Makefile.in’ files. Automake also has a | |||
built-in list of commonly used files that are automatically included if | built-in list of commonly used files that are automatically included if | |||
they are found in the current directory (either physically, or as the | they are found in the current directory (either physically, or as the | |||
target of a ‘Makefile.am’ rule); this list is printed by ‘automake | target of a ‘Makefile.am’ rule); this list is printed by ‘automake | |||
--help’. Note that some files in this list are actually distributed | --help’. Note that some files in this list are actually distributed | |||
only if other certain conditions hold (for example, the ‘config.h.top’ | only if other certain conditions hold (for example, the ‘config.h.top’ | |||
and ‘config.h.bot’ files are automatically distributed only if, e.g., | and ‘config.h.bot’ files are automatically distributed only if, e.g., | |||
skipping to change at line 6980 | skipping to change at line 7054 | |||
Occasionally it is useful to be able to change the distribution before | Occasionally it is useful to be able to change the distribution before | |||
it is packaged up. If the ‘dist-hook’ rule exists, it is run after the | it is packaged up. If the ‘dist-hook’ rule exists, it is run after the | |||
distribution directory is filled, but before the actual distribution | distribution directory is filled, but before the actual distribution | |||
archives are created. One way to use this is for removing unnecessary | archives are created. One way to use this is for removing unnecessary | |||
files that get recursively included by specifying a directory in | files that get recursively included by specifying a directory in | |||
‘EXTRA_DIST’: | ‘EXTRA_DIST’: | |||
EXTRA_DIST = doc | EXTRA_DIST = doc | |||
dist-hook: | dist-hook: | |||
chmod -R u+w $(distdir)/doc | ||||
rm -rf `find $(distdir)/doc -type d -name .svn` | rm -rf `find $(distdir)/doc -type d -name .svn` | |||
Note that the ‘dist-hook’ recipe shouldn’t assume that the regular files | Note that the ‘dist-hook’ recipe shouldn’t assume that the regular files | |||
in the distribution directory are writable; this might not be the case | in the distribution directory are writable; this might not be the case | |||
if one is packaging from a read-only source tree, or when a ‘make | if one is packaging from a read-only source tree, or when a ‘make | |||
distcheck’ is being done. For similar reasons, the recipe shouldn’t | distcheck’ is being done. For similar reasons, the recipe shouldn’t | |||
assume that the subdirectories put into the distribution directory as an | assume that the subdirectories put into the distribution directory as an | |||
effect of having them listed in ‘EXTRA_DIST’ are writable. So, if the | effect of having them listed in ‘EXTRA_DIST’ are writable. So, if the | |||
‘dist-hook’ recipe wants to modify the content of an existing file (or | ‘dist-hook’ recipe wants to modify the content of an existing file (or | |||
‘EXTRA_DIST’ subdirectory) in the distribution directory, it should | ‘EXTRA_DIST’ subdirectory) in the distribution directory, it should | |||
explicitly to make it writable first: | explicitly to make it writable first: | |||
EXTRA_DIST = README doc | EXTRA_DIST = README doc | |||
dist-hook: | dist-hook: | |||
chmod u+w $(distdir)/README $(distdir)/doc | chmod u+w $(distdir)/README $(distdir)/doc | |||
echo "Distribution date: `date`" >> README | echo "Distribution date: `date`" >> $(distdir)/README | |||
rm -f $(distdir)/doc/HACKING | rm -f $(distdir)/doc/HACKING | |||
Two variables that come handy when writing ‘dist-hook’ rules are | Two variables that come handy when writing ‘dist-hook’ rules are | |||
‘$(distdir)’ and ‘$(top_distdir)’. | ‘$(distdir)’ and ‘$(top_distdir)’. | |||
‘$(distdir)’ points to the directory where the ‘dist’ rule will copy | ‘$(distdir)’ points to the directory where the ‘dist’ rule will copy | |||
files from the current directory before creating the tarball. If you | files from the current directory before creating the tarball. If you | |||
are at the top-level directory, then ‘distdir = $(PACKAGE)-$(VERSION)’. | are at the top-level directory, then ‘distdir = $(PACKAGE)-$(VERSION)’. | |||
When used from subdirectory named ‘foo/’, then ‘distdir = | When used from subdirectory named ‘foo/’, then ‘distdir = | |||
../$(PACKAGE)-$(VERSION)/foo’. ‘$(distdir)’ can be a relative or | ../$(PACKAGE)-$(VERSION)/foo’. ‘$(distdir)’ can be a relative or | |||
skipping to change at line 7025 | skipping to change at line 7100 | |||
the package where ‘make dist’ was run, not to any sub-packages involved. | the package where ‘make dist’ was run, not to any sub-packages involved. | |||
File: automake.info, Node: Checking the Distribution, Next: The Types of Distr ibutions, Prev: The dist Hook, Up: Dist | File: automake.info, Node: Checking the Distribution, Next: The Types of Distr ibutions, Prev: The dist Hook, Up: Dist | |||
14.4 Checking the Distribution | 14.4 Checking the Distribution | |||
============================== | ============================== | |||
Automake also generates a ‘distcheck’ rule that can be of help to ensure | Automake also generates a ‘distcheck’ rule that can be of help to ensure | |||
that a given distribution will actually work. Simplifying a bit, we can | that a given distribution will actually work. Simplifying a bit, we can | |||
say this rule first makes a distribution, and then, _operating from it_, | say this rule first makes a distribution, and then, _operating from it_, | |||
takes the following steps: | takes the following steps (in this order): | |||
• tries to do a ‘VPATH’ build (*note VPATH Builds::), with the | • tries to do a ‘VPATH’ build (*note VPATH Builds::), with the | |||
‘srcdir’ and all its content made _read-only_; | ‘srcdir’ and all its content made _read-only_; | |||
• tries to make the printable documentation, if any (with ‘make | ||||
dvi’), | ||||
• runs the test suite (with ‘make check’) on this fresh build; | • runs the test suite (with ‘make check’) on this fresh build; | |||
• installs the package in a temporary directory (with ‘make | • installs the package in a temporary directory (with ‘make | |||
install’), and runs the test suite on the resulting installation | install’), and runs the test suite on the resulting installation | |||
(with ‘make installcheck’); | (with ‘make installcheck’); | |||
• checks that the package can be correctly uninstalled (by ‘make | • checks that the package can be correctly uninstalled (by ‘make | |||
uninstall’) and cleaned (by ‘make distclean’); | uninstall’) and cleaned (by ‘make distclean’); | |||
• finally, makes another tarball to ensure the distribution is | • finally, makes another tarball to ensure the distribution is | |||
self-contained. | self-contained. | |||
All of these actions are performed in a temporary directory. Please | All of these actions are performed in a temporary directory. The | |||
note that the exact location and the exact structure of such a directory | exact location and the exact structure of such a directory (where the | |||
(where the read-only sources are placed, how the temporary build and | read-only sources are placed, how the temporary build and install | |||
install directories are named and how deeply they are nested, etc.) is | directories are named and how deeply they are nested, etc.) is to be | |||
to be considered an implementation detail, which can change at any time; | considered an implementation detail, which can change at any time; so do | |||
so do not rely on it. | not rely on it. | |||
DISTCHECK_CONFIGURE_FLAGS | DISTCHECK_CONFIGURE_FLAGS | |||
------------------------- | ------------------------- | |||
Building the package involves running ‘./configure’. If you need to | Building the package involves running ‘./configure’. If you need to | |||
supply additional flags to ‘configure’, define them in the | supply additional flags to ‘configure’, define them in the | |||
‘AM_DISTCHECK_CONFIGURE_FLAGS’ variable in your top-level ‘Makefile.am’. | ‘AM_DISTCHECK_CONFIGURE_FLAGS’ variable in your top-level ‘Makefile.am’. | |||
The user can still extend or override the flags provided there by | The user can still extend or override the flags provided there by | |||
defining the ‘DISTCHECK_CONFIGURE_FLAGS’ variable, on the command line | defining the ‘DISTCHECK_CONFIGURE_FLAGS’ variable, on the command line | |||
when invoking ‘make’. It’s worth noting that ‘make distcheck’ needs | when invoking ‘make’. It’s worth noting that ‘make distcheck’ needs | |||
skipping to change at line 7071 | skipping to change at line 7148 | |||
justified. GNU ‘m4’ offers an example. GNU ‘m4’ configures by default | justified. GNU ‘m4’ offers an example. GNU ‘m4’ configures by default | |||
with its experimental and seldom used "changeword" feature disabled; so | with its experimental and seldom used "changeword" feature disabled; so | |||
in this case it is useful to have ‘make distcheck’ run configure with | in this case it is useful to have ‘make distcheck’ run configure with | |||
the ‘--with-changeword’ option, to ensure that the code for changeword | the ‘--with-changeword’ option, to ensure that the code for changeword | |||
support still compiles correctly. GNU ‘m4’ also employs the | support still compiles correctly. GNU ‘m4’ also employs the | |||
‘AM_DISTCHECK_CONFIGURE_FLAGS’ variable to stress-test the use of | ‘AM_DISTCHECK_CONFIGURE_FLAGS’ variable to stress-test the use of | |||
‘--program-prefix=g’, since at one point the ‘m4’ build system had a bug | ‘--program-prefix=g’, since at one point the ‘m4’ build system had a bug | |||
where ‘make installcheck’ was wrongly assuming it could blindly test | where ‘make installcheck’ was wrongly assuming it could blindly test | |||
"‘m4’", rather than the just-installed "‘gm4’". | "‘m4’", rather than the just-installed "‘gm4’". | |||
dvi and distcheck | ||||
----------------- | ||||
Ordinarily, ‘make distcheck’ runs ‘make dvi’. It does nothing if the | ||||
distribution contains no Texinfo sources. If the distribution does | ||||
contain a Texinfo manual, by default the ‘dvi’ target will run TeX to | ||||
make sure it can be successfully processed (*note Texinfo::). | ||||
However, you may wish to test the manual by producing ‘pdf’ (e.g., if | ||||
your manual uses images in formats other than ‘eps’), ‘html’ (if you | ||||
don’t have TeX at all), some other format, or just skip the test | ||||
entirely (not recommended). You can change the target that is run by | ||||
setting the variable ‘AM_DISTCHECK_DVI_TARGET’ in your ‘Makefile.am’; | ||||
for example, | ||||
AM_DISTCHECK_DVI_TARGET = pdf | ||||
To make ‘dvi’ into a do-nothing target, see the example for | ||||
‘EMPTY_AUTOMAKE_TARGETS’ in *note Third-Party Makefiles::. | ||||
distcheck-hook | distcheck-hook | |||
-------------- | -------------- | |||
If the ‘distcheck-hook’ rule is defined in your top-level ‘Makefile.am’, | If the ‘distcheck-hook’ rule is defined in your top-level ‘Makefile.am’, | |||
then it will be invoked by ‘distcheck’ after the new distribution has | then it will be invoked by ‘distcheck’ after the new distribution has | |||
been unpacked, but before the unpacked copy is configured and built. | been unpacked, but before the unpacked copy is configured and built. | |||
Your ‘distcheck-hook’ can do almost anything, though as always caution | Your ‘distcheck-hook’ can do almost anything, though as always caution | |||
is advised. Generally this hook is used to check for potential | is advised. Generally this hook is used to check for potential | |||
distribution errors not caught by the standard mechanism. Note that | distribution errors not caught by the standard mechanism. Note that | |||
‘distcheck-hook’ as well as ‘AM_DISTCHECK_CONFIGURE_FLAGS’ and | ‘distcheck-hook’ as well as ‘AM_DISTCHECK_CONFIGURE_FLAGS’ and | |||
skipping to change at line 7261 | skipping to change at line 7358 | |||
wildly, and we’ll attempt no precise definition. | wildly, and we’ll attempt no precise definition. | |||
A test is said to _pass_ when it can determine that the condition or | A test is said to _pass_ when it can determine that the condition or | |||
behaviour it means to verify holds, and is said to _fail_ when it can | behaviour it means to verify holds, and is said to _fail_ when it can | |||
determine that such condition of behaviour does _not_ hold. | determine that such condition of behaviour does _not_ hold. | |||
Sometimes, tests can rely on non-portable tools or prerequisites, or | Sometimes, tests can rely on non-portable tools or prerequisites, or | |||
simply make no sense on a given system (for example, a test checking a | simply make no sense on a given system (for example, a test checking a | |||
Windows-specific feature makes no sense on a GNU/Linux system). In this | Windows-specific feature makes no sense on a GNU/Linux system). In this | |||
case, accordingly to the definition above, the tests can neither be | case, accordingly to the definition above, the tests can neither be | |||
considered passed nor failed; instead, they are _skipped_ – i.e., they | considered passed nor failed; instead, they are _skipped_- –i.e., they | |||
are not run, or their result is anyway ignored for what concerns the | are not run, or their result is anyway ignored for what concerns the | |||
count of failures and successes. Skips are usually explicitly reported | count of failures and successes. Skips are usually explicitly reported | |||
though, so that the user will be aware that not all of the testsuite has | though, so that the user will be aware that not all of the testsuite has | |||
really run. | really run. | |||
It’s not uncommon, especially during early development stages, that | It’s not uncommon, especially during early development stages, that | |||
some tests fail for known reasons, and that the developer doesn’t want | some tests fail for known reasons, and that the developer doesn’t want | |||
to tackle these failures immediately (this is especially true when the | to tackle these failures immediately (this is especially true when the | |||
failing tests deal with corner cases). In this situation, the better | failing tests deal with corner cases). In this situation, the better | |||
policy is to declare that each of those failures is an _expected | policy is to declare that each of those failures is an _expected | |||
skipping to change at line 7315 | skipping to change at line 7412 | |||
Test scripts can be executed serially or concurrently. Automake | Test scripts can be executed serially or concurrently. Automake | |||
supports both these kinds of test execution, with the parallel test | supports both these kinds of test execution, with the parallel test | |||
harness being the default. The concurrent test harness relies on the | harness being the default. The concurrent test harness relies on the | |||
concurrence capabilities (if any) offered by the underlying ‘make’ | concurrence capabilities (if any) offered by the underlying ‘make’ | |||
implementation, and can thus only be as good as those are. | implementation, and can thus only be as good as those are. | |||
By default, only the exit statuses of the test scripts are considered | By default, only the exit statuses of the test scripts are considered | |||
when determining the testsuite outcome. But Automake allows also the | when determining the testsuite outcome. But Automake allows also the | |||
use of more complex test protocols, either standard (*note Using the TAP | use of more complex test protocols, either standard (*note Using the TAP | |||
test protocol::) or custom (*note Custom Test Drivers::). Note that you | test protocol::) or custom (*note Custom Test Drivers::). You can’t | |||
can’t enable such protocols when the serial harness is used, though. In | enable such protocols when the serial harness is used, though. In the | |||
the rest of this section we are going to concentrate mostly on | rest of this section we are going to concentrate mostly on protocol-less | |||
protocol-less tests, since we cover test protocols in a later section | tests, since we cover test protocols in a later section (again, *note | |||
(again, *note Custom Test Drivers::). | Custom Test Drivers::). | |||
When no test protocol is in use, an exit status of 0 from a test | When no test protocol is in use, an exit status of 0 from a test | |||
script will denote a success, an exit status of 77 a skipped test, an | script will denote a success, an exit status of 77 a skipped test, an | |||
exit status of 99 a hard error, and any other exit status will denote a | exit status of 99 a hard error, and any other exit status will denote a | |||
failure. | failure. | |||
You may define the variable ‘XFAIL_TESTS’ to a list of tests (usually | You may define the variable ‘XFAIL_TESTS’ to a list of tests (usually | |||
a subset of ‘TESTS’) that are expected to fail; this will effectively | a subset of ‘TESTS’) that are expected to fail; this will effectively | |||
reverse the result of those tests (with the provision that skips and | reverse the result of those tests (with the provision that skips and | |||
hard errors remain untouched). You may also instruct the testsuite | hard errors remain untouched). You may also instruct the testsuite | |||
skipping to change at line 7359 | skipping to change at line 7456 | |||
PASS: zardoz.tap 1 - Daemon started | PASS: zardoz.tap 1 - Daemon started | |||
PASS: zardoz.tap 2 - Daemon responding | PASS: zardoz.tap 2 - Daemon responding | |||
SKIP: zardoz.tap 3 - Daemon uses /proc # SKIP /proc is not mounted | SKIP: zardoz.tap 3 - Daemon uses /proc # SKIP /proc is not mounted | |||
PASS: zardoz.tap 4 - Daemon stopped | PASS: zardoz.tap 4 - Daemon stopped | |||
SKIP: bar.sh | SKIP: bar.sh | |||
PASS: mu.tap 1 | PASS: mu.tap 1 | |||
XFAIL: mu.tap 2 # TODO frobnication not yet implemented | XFAIL: mu.tap 2 # TODO frobnication not yet implemented | |||
A testsuite summary (expected to report at least the number of run, | A testsuite summary (expected to report at least the number of run, | |||
skipped and failed tests) will be printed at the end of the testsuite | skipped and failed tests) will be printed at the end of the testsuite | |||
run. | run. By default, the first line of the summary has the form: | |||
Testsuite summary for PACKAGE-STRING | ||||
where PACKAGE-STRING is the name and version of the package. If you | ||||
have several independent test suites for different parts of the package, | ||||
though, it can be misleading for each suite to imply it is for the whole | ||||
package. Or, in complex projects, you may wish to add the current | ||||
directory or other information to the testsuite header line. So you can | ||||
override the ‘ for PACKAGE-STRING’ suffix on that line by setting the | ||||
‘AM_TESTSUITE_SUMMARY_HEADER’ variable. The value of this variable is | ||||
used unquoted in a shell echo command, so you must include any necessary | ||||
quotes. For example, the default value is | ||||
AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' | ||||
including the double quotes (interpreted by the shell) and the leading | ||||
space (since the value is output directly after the ‘Testsuite | ||||
summary’). The ‘$(PACKAGE_STRING)’ is substituted by ‘make’. | ||||
If the standard output is connected to a capable terminal, then the | If the standard output is connected to a capable terminal, then the | |||
test results and the summary are colored appropriately. The developer | test results and the summary are colored appropriately. The developer | |||
and the user can disable colored output by setting the ‘make’ variable | and the user can disable colored output by setting the ‘make’ variable | |||
‘AM_COLOR_TESTS=no’; the user can in addition force colored output even | ‘AM_COLOR_TESTS=no’; the user can in addition force colored output even | |||
without a connecting terminal with ‘AM_COLOR_TESTS=always’. It’s also | without a connecting terminal with ‘AM_COLOR_TESTS=always’. It’s also | |||
worth noting that some ‘make’ implementations, when used in parallel | worth noting that some ‘make’ implementations, when used in parallel | |||
mode, have slightly different semantics (*note (autoconf)Parallel | mode, have slightly different semantics (*note (autoconf)Parallel | |||
make::), which can break the automatic detection of a connection to a | make::), which can break the automatic detection of a connection to a | |||
capable terminal. If this is the case, the user will have to resort to | capable terminal. If this is the case, the user will have to resort to | |||
skipping to change at line 7952 | skipping to change at line 8067 | |||
called “TAP producers” in this context) write test results in a simple | called “TAP producers” in this context) write test results in a simple | |||
format on standard output; a test harness (also called “TAP consumer”) | format on standard output; a test harness (also called “TAP consumer”) | |||
will parse and interpret these results, and properly present them to the | will parse and interpret these results, and properly present them to the | |||
user, and/or register them for later analysis. The exact details of how | user, and/or register them for later analysis. The exact details of how | |||
this is accomplished can vary among different test harnesses. The | this is accomplished can vary among different test harnesses. The | |||
Automake harness will present the results on the console in the usual | Automake harness will present the results on the console in the usual | |||
fashion (*note Testsuite progress on console::), and will use the ‘.trs’ | fashion (*note Testsuite progress on console::), and will use the ‘.trs’ | |||
files (*note Basics of test metadata::) to store the test results and | files (*note Basics of test metadata::) to store the test results and | |||
related metadata. Apart from that, it will try to remain as compatible | related metadata. Apart from that, it will try to remain as compatible | |||
as possible with pre-existing and widespread utilities, such as the | as possible with pre-existing and widespread utilities, such as the | |||
‘prove’ utility (http://search.cpan.org/~andya/Test-Harness/bin/prove), | ‘prove’ utility | |||
at least for the simpler usages. | (https://metacpan.org/pod/distribution/Test-Harness/bin/prove), at least | |||
for the simpler usages. | ||||
TAP started its life as part of the test harness for Perl, but today | TAP started its life as part of the test harness for Perl, but today | |||
it has been (mostly) standardized, and has various independent | it has been (mostly) standardized, and has various independent | |||
implementations in different languages; among them, C, C++, Perl, | implementations in different languages; among them, C, C++, Perl, | |||
Python, PHP, and Java. For a semi-official specification of the TAP | Python, PHP, and Java. For a semi-official specification of the TAP | |||
protocol, please refer to the documentation of ‘Test::Harness::TAP’ | protocol, please refer to the documentation of ‘Test::Harness’ | |||
(http://search.cpan.org/~petdance/Test-Harness/lib/Test/Harness/TAP.pod). | (https://metacpan.org/pod/Test::Harness). | |||
The most relevant real-world usages of TAP are obviously in the | The most relevant real-world usages of TAP are obviously in the | |||
testsuites of ‘perl’ and of many perl modules. Still, other important | testsuites of ‘perl’ and of many Perl modules. Still, other important | |||
third-party packages, such as ‘git’ (http://git-scm.com/), also use TAP | third-party packages, such as ‘git’ (https://git-scm.com/), also use TAP | |||
in their testsuite. | in their testsuite. | |||
File: automake.info, Node: Use TAP with the Automake test harness, Next: Incom patibilities with other TAP parsers and drivers, Prev: Introduction to TAP, Up : Using the TAP test protocol | File: automake.info, Node: Use TAP with the Automake test harness, Next: Incom patibilities with other TAP parsers and drivers, Prev: Introduction to TAP, Up : Using the TAP test protocol | |||
15.4.2 Use TAP with the Automake test harness | 15.4.2 Use TAP with the Automake test harness | |||
--------------------------------------------- | --------------------------------------------- | |||
Currently, the TAP driver that comes with Automake requires some by-hand | Currently, the TAP driver that comes with Automake requires some by-hand | |||
steps on the developer’s part (this situation should hopefully be | steps on the developer’s part (this situation should hopefully be | |||
improved in future Automake versions). You’ll have to grab the | improved in future Automake versions). You’ll have to grab the | |||
skipping to change at line 8124 | skipping to change at line 8240 | |||
incompatibilities, especially in corner cases or with rare usages. | incompatibilities, especially in corner cases or with rare usages. | |||
File: automake.info, Node: Links and external resources on TAP, Prev: Incompat ibilities with other TAP parsers and drivers, Up: Using the TAP test protocol | File: automake.info, Node: Links and external resources on TAP, Prev: Incompat ibilities with other TAP parsers and drivers, Up: Using the TAP test protocol | |||
15.4.4 Links and external resources on TAP | 15.4.4 Links and external resources on TAP | |||
------------------------------------------ | ------------------------------------------ | |||
Here are some links to more extensive official or third-party | Here are some links to more extensive official or third-party | |||
documentation and resources about the TAP protocol and related tools and | documentation and resources about the TAP protocol and related tools and | |||
libraries. | libraries. | |||
• ‘Test::Harness::TAP’ | • ‘Test::Harness’ (https://metacpan.org/pod/Test::Harness), the | |||
(http://search.cpan.org/~petdance/Test-Harness/lib/Test/Harness/TAP.pod), | (mostly) official documentation about the TAP format and protocol. | |||
the (mostly) official documentation about the TAP format and | • ‘prove’ | |||
protocol. | (https://metacpan.org/pod/distribution/Test-Harness/bin/prove), the | |||
• ‘prove’ (http://search.cpan.org/~andya/Test-Harness/bin/prove), | most famous command-line TAP test driver, included in the | |||
the most famous command-line TAP test driver, included in the | ||||
distribution of ‘perl’ and ‘Test::Harness’ | distribution of ‘perl’ and ‘Test::Harness’ | |||
(http://search.cpan.org/~andya/Test-Harness/lib/Test/Harness.pm). | (https://metacpan.org/pod/distribution/Test-Harness/lib/Test/Harness.pm). | |||
• The TAP wiki (http://testanything.org/wiki/index.php/Main_Page). | • The TAP wiki (https://testanything.org/). | |||
• A “gentle introduction” to testing for perl coders: | • A “gentle introduction” to testing for Perl coders: | |||
‘Test::Tutorial’ | ‘Test::Tutorial’ | |||
(http://search.cpan.org/dist/Test-Simple/lib/Test/Tutorial.pod). | (https://metacpan.org/pod/distribution/Test-Simple/lib/Test/Tutorial.pod). | |||
• ‘Test::Simple’ | • ‘Test::Simple’ | |||
(http://search.cpan.org/~mschwern/Test-Simple/lib/Test/Simple.pm) | (https://metacpan.org/pod/distribution/Test-Simple/lib/Test/Simple.pm) | |||
and ‘Test::More’ | and ‘Test::More’ | |||
(http://search.cpan.org/~mschwern/Test-Simple/lib/Test/More.pm), | (https://metacpan.org/pod/distribution/Test-Simple/lib/Test/More.pm), | |||
the standard perl testing libraries, which are based on TAP. | the standard Perl testing libraries, which are based on TAP. | |||
• C TAP Harness | • C TAP Harness | |||
(http://www.eyrie.org/~eagle/software/c-tap-harness/), a C-based | (https://www.eyrie.org/~eagle/software/c-tap-harness/), a C-based | |||
project implementing both a TAP producer and a TAP consumer. | project implementing both a TAP producer and a TAP consumer. | |||
• tap4j (http://www.tap4j.org/), a Java-based project implementing | • tap4j (https://tap4j.org/), a Java-based project implementing both | |||
both a TAP producer and a TAP consumer. | a TAP producer and a TAP consumer. | |||
File: automake.info, Node: DejaGnu Tests, Next: Install Tests, Prev: Using th e TAP test protocol, Up: Tests | File: automake.info, Node: DejaGnu Tests, Next: Install Tests, Prev: Using th e TAP test protocol, Up: Tests | |||
15.5 DejaGnu Tests | 15.5 DejaGnu Tests | |||
================== | ================== | |||
If ‘dejagnu’ (https://ftp.gnu.org/gnu/dejagnu/) appears in | If ‘dejagnu’ (*note Introduction: (dejagnu)Top.) appears in | |||
‘AUTOMAKE_OPTIONS’, then a ‘dejagnu’-based test suite is assumed. The | ‘AUTOMAKE_OPTIONS’, then a ‘dejagnu’-based test suite is assumed. The | |||
variable ‘DEJATOOL’ is a list of names that are passed, one at a time, | variable ‘DEJATOOL’ is a list of names that are passed, one at a time, | |||
as the ‘--tool’ argument to ‘runtest’ invocations; it defaults to the | as the ‘--tool’ argument to ‘runtest’ invocations; it defaults to the | |||
name of the package. | name of the package. | |||
The variable ‘RUNTESTDEFAULTFLAGS’ holds the ‘--tool’ and ‘--srcdir’ | The variable ‘RUNTESTDEFAULTFLAGS’ holds the ‘--tool’ and ‘--srcdir’ | |||
flags that are passed to dejagnu by default; this can be overridden if | flags that are passed to dejagnu by default; this can be overridden if | |||
necessary. | necessary. | |||
The variables ‘EXPECT’ and ‘RUNTEST’ can also be overridden to | The variables ‘EXPECT’ and ‘RUNTEST’ can also be overridden to | |||
skipping to change at line 8334 | skipping to change at line 8449 | |||
File: automake.info, Node: List of Automake options, Prev: Options generalitie s, Up: Options | File: automake.info, Node: List of Automake options, Prev: Options generalitie s, Up: Options | |||
17.2 List of Automake options | 17.2 List of Automake options | |||
============================= | ============================= | |||
‘gnits’ | ‘gnits’ | |||
‘gnu’ | ‘gnu’ | |||
‘foreign’ | ‘foreign’ | |||
Set the strictness as appropriate. The ‘gnits’ option also implies | Set the strictness as appropriate. *Note Strictness::. The | |||
options ‘readme-alpha’ and ‘check-news’. | ‘gnits’ option also implies options ‘readme-alpha’ and | |||
‘check-news’. | ||||
‘check-news’ | ‘check-news’ | |||
Cause ‘make dist’ to fail unless the current version number appears | Cause ‘make dist’ to fail unless the current version number appears | |||
in the first few lines of the ‘NEWS’ file. | in the first few lines of the ‘NEWS’ file. | |||
‘dejagnu’ | ‘dejagnu’ | |||
Cause ‘dejagnu’-specific rules to be generated. *Note DejaGnu | Cause ‘dejagnu’-specific rules to be generated. *Note DejaGnu | |||
Tests::. | Tests::. | |||
‘dist-bzip2’ | ‘dist-bzip2’ | |||
skipping to change at line 8854 | skipping to change at line 8970 | |||
AM_CPPFLAGS += -DDEBUG | AM_CPPFLAGS += -DDEBUG | |||
endif | endif | |||
AM_CPPFLAGS += -DFEATURE_B | AM_CPPFLAGS += -DFEATURE_B | |||
More details and examples of conditionals are described alongside | More details and examples of conditionals are described alongside | |||
various Automake features in this manual (*note Conditional | various Automake features in this manual (*note Conditional | |||
Subdirectories::, *note Conditional Sources::, *note Conditional | Subdirectories::, *note Conditional Sources::, *note Conditional | |||
Programs::, *note Conditional Libtool Libraries::, *note Conditional | Programs::, *note Conditional Libtool Libraries::, *note Conditional | |||
Libtool Sources::). | Libtool Sources::). | |||
File: automake.info, Node: Silencing Make, Next: Gnits, Prev: Conditionals, Up: Top | File: automake.info, Node: Silencing Make, Next: Not Enough, Prev: Conditiona ls, Up: Top | |||
21 Silencing ‘make’ | 21 Silencing ‘make’ | |||
******************* | ******************* | |||
* Menu: | * Menu: | |||
* Make verbosity:: Make is verbose by default | * Make verbosity:: Make is verbose by default | |||
* Tricks For Silencing Make:: Standard and generic ways to silence make | * Tricks For Silencing Make:: Standard and generic ways to silence make | |||
* Automake Silent Rules:: How Automake can help in silencing make | * Automake Silent Rules:: How Automake can help in silencing make | |||
skipping to change at line 9101 | skipping to change at line 9217 | |||
pkg_verbose_ = $(pkg_verbose_@AM_DEFAULT_V@) | pkg_verbose_ = $(pkg_verbose_@AM_DEFAULT_V@) | |||
pkg_verbose_0 = @echo PKG-GEN $@; | pkg_verbose_0 = @echo PKG-GEN $@; | |||
foo: foo.in | foo: foo.in | |||
$(pkg_verbose)cp $(srcdir)/foo.in $@ | $(pkg_verbose)cp $(srcdir)/foo.in $@ | |||
As a final note, observe that, even when silent rules are enabled, | As a final note, observe that, even when silent rules are enabled, | |||
the ‘--no-print-directory’ option is still required with GNU ‘make’ if | the ‘--no-print-directory’ option is still required with GNU ‘make’ if | |||
the “Entering/Leaving directory ...” messages are to be disabled. | the “Entering/Leaving directory ...” messages are to be disabled. | |||
File: automake.info, Node: Gnits, Next: Not Enough, Prev: Silencing Make, Up | File: automake.info, Node: Not Enough, Next: Distributing, Prev: Silencing Ma | |||
: Top | ke, Up: Top | |||
22 The effect of ‘--gnu’ and ‘--gnits’ | ||||
************************************** | ||||
The ‘--gnu’ option (or ‘gnu’ in the ‘AUTOMAKE_OPTIONS’ variable) causes | ||||
‘automake’ to check the following: | ||||
• The files ‘INSTALL’, ‘NEWS’, ‘README’, ‘AUTHORS’, and ‘ChangeLog’, | ||||
plus one of ‘COPYING.LIB’, ‘COPYING.LESSER’ or ‘COPYING’, are | ||||
required at the topmost directory of the package. | ||||
If the ‘--add-missing’ option is given, ‘automake’ will add a | ||||
generic version of the ‘INSTALL’ file as well as the ‘COPYING’ file | ||||
containing the text of the current version of the GNU General | ||||
Public License existing at the time of this Automake release | ||||
(version 3 as this is written, | ||||
<https://www.gnu.org/copyleft/gpl.html>). However, an existing | ||||
‘COPYING’ file will never be overwritten by ‘automake’. | ||||
• The options ‘no-installman’ and ‘no-installinfo’ are prohibited. | ||||
Note that this option will be extended in the future to do even more | 22 When Automake Isn’t Enough | |||
checking; it is advisable to be familiar with the precise requirements | ||||
of the GNU standards. Also, ‘--gnu’ can require certain non-standard | ||||
GNU programs to exist for use by various maintainer-only rules; for | ||||
instance, in the future ‘pathchk’ might be required for ‘make dist’. | ||||
The ‘--gnits’ option does everything that ‘--gnu’ does, and checks | ||||
the following as well: | ||||
• ‘make installcheck’ will check to make sure that the ‘--help’ and | ||||
‘--version’ really print a usage message and a version string, | ||||
respectively. This is the ‘std-options’ option (*note Options::). | ||||
• ‘make dist’ will check to make sure the ‘NEWS’ file has been | ||||
updated to the current version. | ||||
• ‘VERSION’ is checked to make sure its format complies with Gnits | ||||
standards. | ||||
• If ‘VERSION’ indicates that this is an alpha release, and the file | ||||
‘README-alpha’ appears in the topmost directory of a package, then | ||||
it is included in the distribution. This is done in ‘--gnits’ | ||||
mode, and no other, because this mode is the only one where version | ||||
number formats are constrained, and hence the only mode where | ||||
Automake can automatically determine whether ‘README-alpha’ should | ||||
be included. | ||||
• The file ‘THANKS’ is required. | ||||
File: automake.info, Node: Not Enough, Next: Distributing, Prev: Gnits, Up: | ||||
Top | ||||
23 When Automake Isn’t Enough | ||||
***************************** | ***************************** | |||
In some situations, where Automake is not up to one task, one has to | In some situations, where Automake is not up to one task, one has to | |||
resort to handwritten rules or even handwritten ‘Makefile’s. | resort to handwritten rules or even handwritten ‘Makefile’s. | |||
* Menu: | * Menu: | |||
* Extending:: Adding new rules or overriding existing ones. | * Extending:: Adding new rules or overriding existing ones. | |||
* Third-Party Makefiles:: Integrating Non-Automake ‘Makefile’s. | * Third-Party Makefiles:: Integrating Non-Automake ‘Makefile’s. | |||
File: automake.info, Node: Extending, Next: Third-Party Makefiles, Up: Not En ough | File: automake.info, Node: Extending, Next: Third-Party Makefiles, Up: Not En ough | |||
23.1 Extending Automake Rules | 22.1 Extending Automake Rules | |||
============================= | ============================= | |||
With some minor exceptions (for example ‘_PROGRAMS’ variables, ‘TESTS’, | With some minor exceptions (for example ‘_PROGRAMS’ variables, ‘TESTS’, | |||
or ‘XFAIL_TESTS’) being rewritten to append ‘$(EXEEXT)’), the contents | or ‘XFAIL_TESTS’) being rewritten to append ‘$(EXEEXT)’), the contents | |||
of a ‘Makefile.am’ is copied to ‘Makefile.in’ verbatim. | of a ‘Makefile.am’ is copied to ‘Makefile.in’ verbatim. | |||
These copying semantics mean that many problems can be worked around | These copying semantics mean that many problems can be worked around | |||
by simply adding some ‘make’ variables and rules to ‘Makefile.am’. | by simply adding some ‘make’ variables and rules to ‘Makefile.am’. | |||
Automake will ignore these additions. | Automake will ignore these additions. | |||
skipping to change at line 9271 | skipping to change at line 9336 | |||
When writing ‘install-exec-hook’ or ‘install-data-hook’, please bear | When writing ‘install-exec-hook’ or ‘install-data-hook’, please bear | |||
in mind that the exec/data distinction is based on the installation | in mind that the exec/data distinction is based on the installation | |||
directory, not on the primary used (*note The Two Parts of Install::). | directory, not on the primary used (*note The Two Parts of Install::). | |||
So a ‘foo_SCRIPTS’ will be installed by ‘install-data’, and a | So a ‘foo_SCRIPTS’ will be installed by ‘install-data’, and a | |||
‘barexec_SCRIPTS’ will be installed by ‘install-exec’. You should | ‘barexec_SCRIPTS’ will be installed by ‘install-exec’. You should | |||
define your hooks accordingly. | define your hooks accordingly. | |||
File: automake.info, Node: Third-Party Makefiles, Prev: Extending, Up: Not En ough | File: automake.info, Node: Third-Party Makefiles, Prev: Extending, Up: Not En ough | |||
23.2 Third-Party ‘Makefile’s | 22.2 Third-Party ‘Makefile’s | |||
============================ | ============================ | |||
In most projects all ‘Makefile’s are generated by Automake. In some | In most projects all ‘Makefile’s are generated by Automake. In some | |||
cases, however, projects need to embed subdirectories with handwritten | cases, however, projects need to embed subdirectories with handwritten | |||
‘Makefile’s. For instance, one subdirectory could be a third-party | ‘Makefile’s. For instance, one subdirectory could be a third-party | |||
project with its own build system, not using Automake. | project with its own build system, not using Automake. | |||
It is possible to list arbitrary directories in ‘SUBDIRS’ or | It is possible to list arbitrary directories in ‘SUBDIRS’ or | |||
‘DIST_SUBDIRS’ provided each of these directories has a ‘Makefile’ that | ‘DIST_SUBDIRS’ provided each of these directories has a ‘Makefile’ that | |||
recognizes all the following recursive targets. | recognizes all the following recursive targets. | |||
skipping to change at line 9360 | skipping to change at line 9425 | |||
Usually, many of these rules are irrelevant to the third-party | Usually, many of these rules are irrelevant to the third-party | |||
subproject, but they are required for the whole package to work. It’s | subproject, but they are required for the whole package to work. It’s | |||
OK to have a rule that does nothing, so if you are integrating a | OK to have a rule that does nothing, so if you are integrating a | |||
third-party project with no documentation or tag support, you could | third-party project with no documentation or tag support, you could | |||
simply augment its ‘Makefile’ as follows: | simply augment its ‘Makefile’ as follows: | |||
EMPTY_AUTOMAKE_TARGETS = dvi pdf ps info html tags ctags | EMPTY_AUTOMAKE_TARGETS = dvi pdf ps info html tags ctags | |||
.PHONY: $(EMPTY_AUTOMAKE_TARGETS) | .PHONY: $(EMPTY_AUTOMAKE_TARGETS) | |||
$(EMPTY_AUTOMAKE_TARGETS): | $(EMPTY_AUTOMAKE_TARGETS): | |||
To be clear, there is nothing special about the variable name | ||||
‘EMPTY_AUTOMAKE_TARGETS’; the name could be anything. | ||||
Another aspect of integrating third-party build systems is whether | Another aspect of integrating third-party build systems is whether | |||
they support VPATH builds (*note VPATH Builds::). Obviously if the | they support VPATH builds (*note VPATH Builds::). Obviously if the | |||
subpackage does not support VPATH builds the whole package will not | subpackage does not support VPATH builds the whole package will not | |||
support VPATH builds. This in turns means that ‘make distcheck’ will | support VPATH builds. This in turns means that ‘make distcheck’ will | |||
not work, because it relies on VPATH builds. Some people can live | not work, because it relies on VPATH builds. Some people can live | |||
without this (actually, many Automake users have never heard of ‘make | without this (actually, many Automake users have never heard of ‘make | |||
distcheck’). Other people may prefer to revamp the existing ‘Makefile’s | distcheck’). Other people may prefer to revamp the existing ‘Makefile’s | |||
to support VPATH. Doing so does not necessarily require Automake; only | to support VPATH. Doing so does not necessarily require Automake; only | |||
Autoconf is needed (*note Build Directories: (autoconf)Build | Autoconf is needed (*note Build Directories: (autoconf)Build | |||
Directories.). The necessary substitutions: ‘@srcdir@’, ‘@top_srcdir@’, | Directories.). The necessary substitutions: ‘@srcdir@’, ‘@top_srcdir@’, | |||
skipping to change at line 9432 | skipping to change at line 9500 | |||
# Distribute files from here. | # Distribute files from here. | |||
EXTRA_DIST = subdir/Makefile subdir/program.c ... | EXTRA_DIST = subdir/Makefile subdir/program.c ... | |||
Pushing this idea to the extreme, it is also possible to ignore the | Pushing this idea to the extreme, it is also possible to ignore the | |||
subproject build system and build everything from this proxy | subproject build system and build everything from this proxy | |||
‘Makefile.am’. This might sound very sensible if you need VPATH builds | ‘Makefile.am’. This might sound very sensible if you need VPATH builds | |||
but the subproject does not support them. | but the subproject does not support them. | |||
File: automake.info, Node: Distributing, Next: API Versioning, Prev: Not Enou gh, Up: Top | File: automake.info, Node: Distributing, Next: API Versioning, Prev: Not Enou gh, Up: Top | |||
24 Distributing ‘Makefile.in’s | 23 Distributing ‘Makefile.in’s | |||
****************************** | ****************************** | |||
Automake places no restrictions on the distribution of the resulting | Automake places no restrictions on the distribution of the resulting | |||
‘Makefile.in’s. We still encourage software authors to distribute their | ‘Makefile.in’s. We still encourage software authors to distribute their | |||
work under terms like those of the GPL, but doing so is not required to | work under terms like those of the GPL, but doing so is not required to | |||
use Automake. | use Automake. | |||
Some of the files that can be automatically installed via the | Some of the files that can be automatically installed via the | |||
‘--add-missing’ switch do fall under the GPL. However, these also have | ‘--add-missing’ switch do fall under the GPL. However, these also have | |||
a special exception allowing you to distribute them with your package, | a special exception allowing you to distribute them with your package, | |||
regardless of the licensing you choose. | regardless of the licensing you choose. | |||
File: automake.info, Node: API Versioning, Next: Upgrading, Prev: Distributin g, Up: Top | File: automake.info, Node: API Versioning, Next: Upgrading, Prev: Distributin g, Up: Top | |||
25 Automake API Versioning | 24 Automake API Versioning | |||
************************** | ************************** | |||
New Automake releases usually include bug fixes and new features. | New Automake releases usually include bug fixes and new features. | |||
Unfortunately they may also introduce new bugs and incompatibilities. | Unfortunately they may also introduce new bugs and incompatibilities. | |||
This makes four reasons why a package may require a particular Automake | This makes four reasons why a package may require a particular Automake | |||
version. | version. | |||
Things get worse when maintaining a large tree of packages, each one | Things get worse when maintaining a large tree of packages, each one | |||
requiring a different version of Automake. In the past, this meant that | requiring a different version of Automake. In the past, this meant that | |||
any developer (and sometimes users) had to install several versions of | any developer (and sometimes users) had to install several versions of | |||
skipping to change at line 9511 | skipping to change at line 9579 | |||
of the API. You should avoid using them, as they could change from one | of the API. You should avoid using them, as they could change from one | |||
version to the other (even in bug fix releases, if this helps to fix a | version to the other (even in bug fix releases, if this helps to fix a | |||
bug). | bug). | |||
If it turns out you need to use such an undocumented feature, contact | If it turns out you need to use such an undocumented feature, contact | |||
<automake@gnu.org> and try to get it documented and exercised by the | <automake@gnu.org> and try to get it documented and exercised by the | |||
test-suite. | test-suite. | |||
File: automake.info, Node: Upgrading, Next: FAQ, Prev: API Versioning, Up: T op | File: automake.info, Node: Upgrading, Next: FAQ, Prev: API Versioning, Up: T op | |||
26 Upgrading a Package to a Newer Automake Version | 25 Upgrading a Package to a Newer Automake Version | |||
************************************************** | ************************************************** | |||
Automake maintains three kinds of files in a package. | Automake maintains three kinds of files in a package. | |||
• ‘aclocal.m4’ | • ‘aclocal.m4’ | |||
• ‘Makefile.in’s | • ‘Makefile.in’s | |||
• auxiliary tools like ‘install-sh’ or ‘py-compile’ | • auxiliary tools like ‘install-sh’ or ‘py-compile’ | |||
‘aclocal.m4’ is generated by ‘aclocal’ and contains some | ‘aclocal.m4’ is generated by ‘aclocal’ and contains some | |||
Automake-supplied M4 macros. Auxiliary tools are installed by ‘automake | Automake-supplied M4 macros. Auxiliary tools are installed by ‘automake | |||
skipping to change at line 9558 | skipping to change at line 9626 | |||
However it never checks whether auxiliary scripts are up-to-date. In | However it never checks whether auxiliary scripts are up-to-date. In | |||
other words, ‘automake’ will tell you when ‘aclocal’ needs to be rerun, | other words, ‘automake’ will tell you when ‘aclocal’ needs to be rerun, | |||
but it will never diagnose a missing ‘--force-missing’. | but it will never diagnose a missing ‘--force-missing’. | |||
Before upgrading to a new major release, it is a good idea to read | Before upgrading to a new major release, it is a good idea to read | |||
the file ‘NEWS’. This file lists all changes between releases: new | the file ‘NEWS’. This file lists all changes between releases: new | |||
features, obsolete constructs, known incompatibilities, and workarounds. | features, obsolete constructs, known incompatibilities, and workarounds. | |||
File: automake.info, Node: FAQ, Next: Copying This Manual, Prev: Upgrading, Up: Top | File: automake.info, Node: FAQ, Next: Copying This Manual, Prev: Upgrading, Up: Top | |||
27 Frequently Asked Questions about Automake | 26 Frequently Asked Questions about Automake | |||
******************************************** | ******************************************** | |||
This chapter covers some questions that often come up on the mailing | This chapter covers some questions that often come up on the mailing | |||
lists. | lists. | |||
* Menu: | * Menu: | |||
* CVS:: CVS and generated files | * CVS:: CVS and generated files | |||
* maintainer-mode:: missing and AM_MAINTAINER_MODE | * maintainer-mode:: missing and AM_MAINTAINER_MODE | |||
* Wildcards:: Why doesn’t Automake support wildcards? | * Wildcards:: Why doesn’t Automake support wildcards? | |||
skipping to change at line 9581 | skipping to change at line 9649 | |||
* Flag Variables Ordering:: CFLAGS vs. AM_CFLAGS vs. mumble_CFLAGS | * Flag Variables Ordering:: CFLAGS vs. AM_CFLAGS vs. mumble_CFLAGS | |||
* Renamed Objects:: Why are object files sometimes renamed? | * Renamed Objects:: Why are object files sometimes renamed? | |||
* Per-Object Flags:: How to simulate per-object flags? | * Per-Object Flags:: How to simulate per-object flags? | |||
* Multiple Outputs:: Writing rules for tools with many output files | * Multiple Outputs:: Writing rules for tools with many output files | |||
* Hard-Coded Install Paths:: Installing to hard-coded locations | * Hard-Coded Install Paths:: Installing to hard-coded locations | |||
* Debugging Make Rules:: Strategies when things don’t work as expected | * Debugging Make Rules:: Strategies when things don’t work as expected | |||
* Reporting Bugs:: Feedback on bugs and feature requests | * Reporting Bugs:: Feedback on bugs and feature requests | |||
File: automake.info, Node: CVS, Next: maintainer-mode, Up: FAQ | File: automake.info, Node: CVS, Next: maintainer-mode, Up: FAQ | |||
27.1 CVS and generated files | 26.1 CVS and generated files | |||
============================ | ============================ | |||
Background: distributed generated Files | Background: distributed generated Files | |||
--------------------------------------- | --------------------------------------- | |||
Packages made with Autoconf and Automake ship with some generated files | Packages made with Autoconf and Automake ship with some generated files | |||
like ‘configure’ or ‘Makefile.in’. These files were generated on the | like ‘configure’ or ‘Makefile.in’. These files were generated on the | |||
developer’s machine and are distributed so that end-users do not have to | developer’s machine and are distributed so that end-users do not have to | |||
install the maintainer tools required to rebuild them. Other generated | install the maintainer tools required to rebuild them. Other generated | |||
files like Lex scanners, Yacc parsers, or Info documentation are usually | files like Lex scanners, Yacc parsers, or Info documentation are usually | |||
skipping to change at line 9754 | skipping to change at line 9822 | |||
----------------- | ----------------- | |||
Another class of files not discussed here (because they do not cause | Another class of files not discussed here (because they do not cause | |||
timestamp issues) are files that are shipped with a package, but | timestamp issues) are files that are shipped with a package, but | |||
maintained elsewhere. For instance, tools like ‘gettextize’ and | maintained elsewhere. For instance, tools like ‘gettextize’ and | |||
‘autopoint’ (from Gettext) or ‘libtoolize’ (from Libtool), will install | ‘autopoint’ (from Gettext) or ‘libtoolize’ (from Libtool), will install | |||
or update files in your package. | or update files in your package. | |||
These files, whether they are kept under CVS or not, raise similar | These files, whether they are kept under CVS or not, raise similar | |||
concerns about version mismatch between developers’ tools. The Gettext | concerns about version mismatch between developers’ tools. The Gettext | |||
manual has a section about this; see *note CVS Issues: (gettext)CVS | manual has a section about this; see *note Integrating with Version | |||
Issues. | Control Systems: (gettext)Version Control Issues. | |||
File: automake.info, Node: maintainer-mode, Next: Wildcards, Prev: CVS, Up: FAQ | File: automake.info, Node: maintainer-mode, Next: Wildcards, Prev: CVS, Up: FAQ | |||
27.2 ‘missing’ and ‘AM_MAINTAINER_MODE’ | 26.2 ‘missing’ and ‘AM_MAINTAINER_MODE’ | |||
======================================= | ======================================= | |||
‘missing’ | ‘missing’ | |||
--------- | --------- | |||
The ‘missing’ script is a wrapper around several maintainer tools, | The ‘missing’ script is a wrapper around several maintainer tools, | |||
designed to warn users if a maintainer tool is required but missing. | designed to warn users if a maintainer tool is required but missing. | |||
Typical maintainer tools are ‘autoconf’, ‘automake’, ‘bison’, etc. | Typical maintainer tools are ‘autoconf’, ‘automake’, ‘bison’, etc. | |||
Because files generated by these tools are shipped with the other | Because files generated by these tools are shipped with the other | |||
sources of a package, these tools shouldn’t be required during a user | sources of a package, these tools shouldn’t be required during a user | |||
skipping to change at line 9840 | skipping to change at line 9908 | |||
swayed by François’ arguments, and got rid of ‘AM_MAINTAINER_MODE’ in | swayed by François’ arguments, and got rid of ‘AM_MAINTAINER_MODE’ in | |||
all of his packages. | all of his packages. | |||
Still many people continue to use ‘AM_MAINTAINER_MODE’, because it | Still many people continue to use ‘AM_MAINTAINER_MODE’, because it | |||
helps them working on projects where all files are kept under version | helps them working on projects where all files are kept under version | |||
control, and because ‘missing’ isn’t enough if you have the wrong | control, and because ‘missing’ isn’t enough if you have the wrong | |||
version of the tools. | version of the tools. | |||
File: automake.info, Node: Wildcards, Next: Limitations on File Names, Prev: maintainer-mode, Up: FAQ | File: automake.info, Node: Wildcards, Next: Limitations on File Names, Prev: maintainer-mode, Up: FAQ | |||
27.3 Why doesn’t Automake support wildcards? | 26.3 Why doesn’t Automake support wildcards? | |||
============================================ | ============================================ | |||
Developers are lazy. They would often like to use wildcards in | Developers are lazy. They would often like to use wildcards in | |||
‘Makefile.am’s, so that they would not need to remember to update | ‘Makefile.am’s, so that they would not need to remember to update | |||
‘Makefile.am’s every time they add, delete, or rename a file. | ‘Makefile.am’s every time they add, delete, or rename a file. | |||
There are several objections to this: | There are several objections to this: | |||
• When using CVS (or similar) developers need to remember they have | • When using CVS (or similar) developers need to remember they have | |||
to run ‘cvs add’ or ‘cvs rm’ anyway. Updating ‘Makefile.am’ | to run ‘cvs add’ or ‘cvs rm’ anyway. Updating ‘Makefile.am’ | |||
accordingly quickly becomes a reflex. | accordingly quickly becomes a reflex. | |||
skipping to change at line 9908 | skipping to change at line 9976 | |||
files should be processed. As Automake doesn’t know how to expand | files should be processed. As Automake doesn’t know how to expand | |||
‘$(wildcard ...)’, you cannot use it in these places. ‘$(wildcard ...)’ | ‘$(wildcard ...)’, you cannot use it in these places. ‘$(wildcard ...)’ | |||
is a black box comparable to ‘AC_SUBST’ed variables as far Automake is | is a black box comparable to ‘AC_SUBST’ed variables as far Automake is | |||
concerned. | concerned. | |||
You can get warnings about ‘$(wildcard ...’) constructs using the | You can get warnings about ‘$(wildcard ...’) constructs using the | |||
‘-Wportability’ flag. | ‘-Wportability’ flag. | |||
File: automake.info, Node: Limitations on File Names, Next: Errors with distcl ean, Prev: Wildcards, Up: FAQ | File: automake.info, Node: Limitations on File Names, Next: Errors with distcl ean, Prev: Wildcards, Up: FAQ | |||
27.4 Limitations on File Names | 26.4 Limitations on File Names | |||
============================== | ============================== | |||
Automake attempts to support all kinds of file names, even those that | Automake attempts to support all kinds of file names, even those that | |||
contain unusual characters or are unusually long. However, some | contain unusual characters or are unusually long. However, some | |||
limitations are imposed by the underlying operating system and tools. | limitations are imposed by the underlying operating system and tools. | |||
Most operating systems prohibit the use of the null byte in file | Most operating systems prohibit the use of the null byte in file | |||
names, and reserve ‘/’ as a directory separator. Also, they require | names, and reserve ‘/’ as a directory separator. Also, they require | |||
that file names are properly encoded for the user’s locale. Automake is | that file names are properly encoded for the user’s locale. Automake is | |||
subject to these limits. | subject to these limits. | |||
skipping to change at line 9966 | skipping to change at line 10034 | |||
Source and installation file names like ‘main.c’ are limited even | Source and installation file names like ‘main.c’ are limited even | |||
further: they should conform to the POSIX/XOPEN rules described above. | further: they should conform to the POSIX/XOPEN rules described above. | |||
In addition, if you plan to port to non-POSIX environments, you should | In addition, if you plan to port to non-POSIX environments, you should | |||
avoid file names that differ only in case (e.g., ‘makefile’ and | avoid file names that differ only in case (e.g., ‘makefile’ and | |||
‘Makefile’). Nowadays it is no longer worth worrying about the 8.3 | ‘Makefile’). Nowadays it is no longer worth worrying about the 8.3 | |||
limits of DOS file systems. | limits of DOS file systems. | |||
File: automake.info, Node: Errors with distclean, Next: Flag Variables Orderin g, Prev: Limitations on File Names, Up: FAQ | File: automake.info, Node: Errors with distclean, Next: Flag Variables Orderin g, Prev: Limitations on File Names, Up: FAQ | |||
27.5 Errors with distclean | 26.5 Errors with distclean | |||
========================== | ========================== | |||
This is a diagnostic you might encounter while running ‘make distcheck’. | This is a diagnostic you might encounter while running ‘make distcheck’. | |||
As explained in *note Checking the Distribution::, ‘make distcheck’ | As explained in *note Checking the Distribution::, ‘make distcheck’ | |||
attempts to build and check your package for errors like this one. | attempts to build and check your package for errors like this one. | |||
‘make distcheck’ will perform a ‘VPATH’ build of your package (*note | ‘make distcheck’ will perform a ‘VPATH’ build of your package (*note | |||
VPATH Builds::), and then call ‘make distclean’. Files left in the | VPATH Builds::), and then call ‘make distclean’. Files left in the | |||
build directory after ‘make distclean’ has run are listed after this | build directory after ‘make distclean’ has run are listed after this | |||
skipping to change at line 10083 | skipping to change at line 10151 | |||
point in distributing it. | point in distributing it. | |||
For desperate cases, it’s always possible to disable this check by | For desperate cases, it’s always possible to disable this check by | |||
setting ‘distcleancheck_listfiles’ as documented in *note Checking the | setting ‘distcleancheck_listfiles’ as documented in *note Checking the | |||
Distribution::. Make sure you do understand the reason why ‘make | Distribution::. Make sure you do understand the reason why ‘make | |||
distcheck’ complains before you do this. ‘distcleancheck_listfiles’ is | distcheck’ complains before you do this. ‘distcleancheck_listfiles’ is | |||
a way to _hide_ errors, not to fix them. You can always do better. | a way to _hide_ errors, not to fix them. You can always do better. | |||
File: automake.info, Node: Flag Variables Ordering, Next: Renamed Objects, Pr ev: Errors with distclean, Up: FAQ | File: automake.info, Node: Flag Variables Ordering, Next: Renamed Objects, Pr ev: Errors with distclean, Up: FAQ | |||
27.6 Flag Variables Ordering | 26.6 Flag Variables Ordering | |||
============================ | ============================ | |||
What is the difference between ‘AM_CFLAGS’, ‘CFLAGS’, and | What is the difference between ‘AM_CFLAGS’, ‘CFLAGS’, and | |||
‘mumble_CFLAGS’? | ‘mumble_CFLAGS’? | |||
Why does ‘automake’ output ‘CPPFLAGS’ after | Why does ‘automake’ output ‘CPPFLAGS’ after | |||
‘AM_CPPFLAGS’ on compile lines? Shouldn’t it be the converse? | ‘AM_CPPFLAGS’ on compile lines? Shouldn’t it be the converse? | |||
My ‘configure’ adds some warning flags into ‘CXXFLAGS’. In | My ‘configure’ adds some warning flags into ‘CXXFLAGS’. In | |||
one ‘Makefile.am’ I would like to append a new flag, however if I | one ‘Makefile.am’ I would like to append a new flag, however if I | |||
skipping to change at line 10250 | skipping to change at line 10318 | |||
Finally you should not think that the existence of a per-target | Finally you should not think that the existence of a per-target | |||
variable implies the existence of an ‘AM_’ variable or of a user | variable implies the existence of an ‘AM_’ variable or of a user | |||
variable. For instance, the ‘mumble_LDADD’ per-target variable | variable. For instance, the ‘mumble_LDADD’ per-target variable | |||
overrides the makefile-wide ‘LDADD’ variable (which is not a user | overrides the makefile-wide ‘LDADD’ variable (which is not a user | |||
variable), and ‘mumble_LIBADD’ exists only as a per-target variable. | variable), and ‘mumble_LIBADD’ exists only as a per-target variable. | |||
*Note Program and Library Variables::. | *Note Program and Library Variables::. | |||
File: automake.info, Node: Renamed Objects, Next: Per-Object Flags, Prev: Fla g Variables Ordering, Up: FAQ | File: automake.info, Node: Renamed Objects, Next: Per-Object Flags, Prev: Fla g Variables Ordering, Up: FAQ | |||
27.7 Why are object files sometimes renamed? | 26.7 Why are object files sometimes renamed? | |||
============================================ | ============================================ | |||
This happens when per-target compilation flags are used. Object files | This happens when per-target compilation flags are used. Object files | |||
need to be renamed just in case they would clash with object files | need to be renamed just in case they would clash with object files | |||
compiled from the same sources, but with different flags. Consider the | compiled from the same sources, but with different flags. Consider the | |||
following example. | following example. | |||
bin_PROGRAMS = true false | bin_PROGRAMS = true false | |||
true_SOURCES = generic.c | true_SOURCES = generic.c | |||
true_CPPFLAGS = -DEXIT_CODE=0 | true_CPPFLAGS = -DEXIT_CODE=0 | |||
skipping to change at line 10288 | skipping to change at line 10356 | |||
AM_CPPFLAGS = -DVERSION=1.0 | AM_CPPFLAGS = -DVERSION=1.0 | |||
bin_PROGRAMS = true false | bin_PROGRAMS = true false | |||
true_SOURCES = true.c version.c | true_SOURCES = true.c version.c | |||
false_SOURCES = false.c version.c | false_SOURCES = false.c version.c | |||
Note that the renaming of objects is also affected by the | Note that the renaming of objects is also affected by the | |||
‘_SHORTNAME’ variable (*note Program and Library Variables::). | ‘_SHORTNAME’ variable (*note Program and Library Variables::). | |||
File: automake.info, Node: Per-Object Flags, Next: Multiple Outputs, Prev: Re named Objects, Up: FAQ | File: automake.info, Node: Per-Object Flags, Next: Multiple Outputs, Prev: Re named Objects, Up: FAQ | |||
27.8 Per-Object Flags Emulation | 26.8 Per-Object Flags Emulation | |||
=============================== | =============================== | |||
One of my source files needs to be compiled with different flags. How | One of my source files needs to be compiled with different flags. How | |||
do I do that? | do I do that? | |||
Automake supports per-program and per-library compilation flags (see | Automake supports per-program and per-library compilation flags (see | |||
*note Program and Library Variables:: and *note Flag Variables | *note Program and Library Variables:: and *note Flag Variables | |||
Ordering::). With this you can define compilation flags that apply to | Ordering::). With this you can define compilation flags that apply to | |||
all files compiled for a target. For instance, in | all files compiled for a target. For instance, in | |||
skipping to change at line 10349 | skipping to change at line 10417 | |||
remove ‘foo_CFLAGS’ (because ‘foo.c’ will then be compiled as ‘foo.o’ | remove ‘foo_CFLAGS’ (because ‘foo.c’ will then be compiled as ‘foo.o’ | |||
instead of ‘foo-foo.o’, *note Renamed Objects::). Also in order to | instead of ‘foo-foo.o’, *note Renamed Objects::). Also in order to | |||
support dependency tracking, the two ‘.o’/‘.obj’ extensions, and all the | support dependency tracking, the two ‘.o’/‘.obj’ extensions, and all the | |||
other flags variables involved in a compilation, you will end up | other flags variables involved in a compilation, you will end up | |||
modifying a copy of the rule previously output by ‘automake’ for this | modifying a copy of the rule previously output by ‘automake’ for this | |||
file. If a new release of Automake generates a different rule, your | file. If a new release of Automake generates a different rule, your | |||
copy will need to be updated by hand. | copy will need to be updated by hand. | |||
File: automake.info, Node: Multiple Outputs, Next: Hard-Coded Install Paths, Prev: Per-Object Flags, Up: FAQ | File: automake.info, Node: Multiple Outputs, Next: Hard-Coded Install Paths, Prev: Per-Object Flags, Up: FAQ | |||
27.9 Handling Tools that Produce Many Outputs | 26.9 Handling Tools that Produce Many Outputs | |||
============================================= | ============================================= | |||
This section describes a ‘make’ idiom that can be used when a tool | This section describes a ‘make’ idiom that can be used when a tool | |||
produces multiple output files. It is not specific to Automake and can | produces multiple output files. It is not specific to Automake and can | |||
be used in ordinary ‘Makefile’s. | be used in ordinary ‘Makefile’s. | |||
Suppose we have a program called ‘foo’ that will read one file called | Suppose we have a program called ‘foo’ that will read one file called | |||
‘data.foo’ and produce two files named ‘data.c’ and ‘data.h’. We want | ‘data.foo’ and produce two files named ‘data.c’ and ‘data.h’. We want | |||
to write a ‘Makefile’ rule that captures this one-to-two dependency. | to write a ‘Makefile’ rule that captures this one-to-two dependency. | |||
skipping to change at line 10435 | skipping to change at line 10503 | |||
not rebuild ‘data.h’. The above rules just state that ‘data.c’ must be | not rebuild ‘data.h’. The above rules just state that ‘data.c’ must be | |||
up-to-date with respect to ‘data.foo’, and this is already the case. | up-to-date with respect to ‘data.foo’, and this is already the case. | |||
What we need is a rule that forces a rebuild when ‘data.h’ is | What we need is a rule that forces a rebuild when ‘data.h’ is | |||
missing. Here it is: | missing. Here it is: | |||
data.c: data.foo | data.c: data.foo | |||
foo data.foo | foo data.foo | |||
data.h: data.c | data.h: data.c | |||
## Recover from the removal of $@ | ## Recover from the removal of $@ | |||
@test -f $@ || rm -f data.c | ||||
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) data.c | ||||
It is tempting to use a single test as follows: | ||||
data.h: data.c | ||||
## Recover from the removal of $@ | ||||
@if test -f $@; then :; else \ | @if test -f $@; then :; else \ | |||
rm -f data.c; \ | rm -f data.c; \ | |||
$(MAKE) $(AM_MAKEFLAGS) data.c; \ | $(MAKE) $(AM_MAKEFLAGS) data.c; \ | |||
fi | fi | |||
but that would break ‘make -n’: at least GNU ‘make’ and Solaris ‘make’ | ||||
execute recipes containing the ‘$(MAKE)’ string even when they are | ||||
running in dry mode. So if we didn’t break the recipe above in two | ||||
invocations, the file ‘data.c’ would be removed even upon ‘make -n’. | ||||
Not nice. | ||||
The above scheme can be extended to handle more outputs and more | The above scheme can be extended to handle more outputs and more | |||
inputs. One of the outputs is selected to serve as a witness to the | inputs. One of the outputs is selected to serve as a witness to the | |||
successful completion of the command, it depends upon all inputs, and | successful completion of the command, it depends upon all inputs, and | |||
all other outputs depend upon it. For instance, if ‘foo’ should | all other outputs depend upon it. For instance, if ‘foo’ should | |||
additionally read ‘data.bar’ and also produce ‘data.w’ and ‘data.x’, we | additionally read ‘data.bar’ and also produce ‘data.w’ and ‘data.x’, we | |||
would write: | would write: | |||
data.c: data.foo data.bar | data.c: data.foo data.bar | |||
foo data.foo data.bar | foo data.foo data.bar | |||
data.h data.w data.x: data.c | data.h data.w data.x: data.c | |||
## Recover from the removal of $@ | ## Recover from the removal of $@ | |||
@if test -f $@; then :; else \ | @test -f $@ || rm -f data.c | |||
rm -f data.c; \ | @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) data.c | |||
$(MAKE) $(AM_MAKEFLAGS) data.c; \ | ||||
fi | ||||
However there are now three minor problems in this setup. One is | However there are now three minor problems in this setup. One is | |||
related to the timestamp ordering of ‘data.h’, ‘data.w’, ‘data.x’, and | related to the timestamp ordering of ‘data.h’, ‘data.w’, ‘data.x’, and | |||
‘data.c’. Another one is a race condition if a parallel ‘make’ attempts | ‘data.c’. Another one is a race condition if a parallel ‘make’ attempts | |||
to run multiple instances of the recover block at once. Finally, the | to run multiple instances of the recover block at once. Finally, the | |||
recursive rule breaks ‘make -n’ when run with GNU ‘make’ (as well as | recursive rule breaks ‘make -n’ when run with GNU ‘make’ (as well as | |||
some other ‘make’ implementations), as it may remove ‘data.h’ even when | some other ‘make’ implementations), as it may remove ‘data.h’ even when | |||
it should not (*note How the ‘MAKE’ Variable Works: (make)MAKE | it should not (*note How the ‘MAKE’ Variable Works: (make)MAKE | |||
Variable.). | Variable.). | |||
skipping to change at line 10480 | skipping to change at line 10559 | |||
the ‘if...fi’ command, but actually it will just execute the ‘then’ | the ‘if...fi’ command, but actually it will just execute the ‘then’ | |||
branch, that is: nothing. In other words, because the witness we | branch, that is: nothing. In other words, because the witness we | |||
selected is not the first file created by ‘foo’, ‘make’ will start a | selected is not the first file created by ‘foo’, ‘make’ will start a | |||
shell to do nothing each time it is run. | shell to do nothing each time it is run. | |||
A simple riposte is to fix the timestamps when this happens. | A simple riposte is to fix the timestamps when this happens. | |||
data.c: data.foo data.bar | data.c: data.foo data.bar | |||
foo data.foo data.bar | foo data.foo data.bar | |||
data.h data.w data.x: data.c | data.h data.w data.x: data.c | |||
@if test -f $@; then \ | @test ! -f $@ || touch $@ | |||
touch $@; \ | ||||
else \ | ||||
## Recover from the removal of $@ | ## Recover from the removal of $@ | |||
rm -f data.c; \ | @test -f $@ || rm -f data.c | |||
$(MAKE) $(AM_MAKEFLAGS) data.c; \ | @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) data.c | |||
fi | ||||
Another solution is to use a different and dedicated file as witness, | Another solution is to use a different and dedicated file as witness, | |||
rather than using any of ‘foo’’s outputs. | rather than using any of ‘foo’’s outputs. | |||
data.stamp: data.foo data.bar | data.stamp: data.foo data.bar | |||
@rm -f data.tmp | @rm -f data.tmp | |||
@touch data.tmp | @touch data.tmp | |||
foo data.foo data.bar | foo data.foo data.bar | |||
@mv -f data.tmp $@ | @mv -f data.tmp $@ | |||
data.c data.h data.w data.x: data.stamp | data.c data.h data.w data.x: data.stamp | |||
## Recover from the removal of $@ | ## Recover from the removal of $@ | |||
@if test -f $@; then :; else \ | @test -f $@ || rm -f data.stamp | |||
rm -f data.stamp; \ | @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) data.stamp | |||
$(MAKE) $(AM_MAKEFLAGS) data.stamp; \ | ||||
fi | ||||
‘data.tmp’ is created before ‘foo’ is run, so it has a timestamp | ‘data.tmp’ is created before ‘foo’ is run, so it has a timestamp | |||
older than output files output by ‘foo’. It is then renamed to | older than output files output by ‘foo’. It is then renamed to | |||
‘data.stamp’ after ‘foo’ has run, because we do not want to update | ‘data.stamp’ after ‘foo’ has run, because we do not want to update | |||
‘data.stamp’ if ‘foo’ fails. | ‘data.stamp’ if ‘foo’ fails. | |||
This solution still suffers from the second problem: the race | This solution still suffers from the second problem: the race | |||
condition in the recover rule. If, after a successful build, a user | condition in the recover rule. If, after a successful build, a user | |||
erases ‘data.c’ and ‘data.h’, and runs ‘make -j’, then ‘make’ may start | erases ‘data.c’ and ‘data.h’, and runs ‘make -j’, then ‘make’ may start | |||
both recover rules in parallel. If the two instances of the rule | both recover rules in parallel. If the two instances of the rule | |||
skipping to change at line 10631 | skipping to change at line 10705 | |||
fi | fi | |||
For completeness it should be noted that GNU ‘make’ is able to | For completeness it should be noted that GNU ‘make’ is able to | |||
express rules with multiple output files using pattern rules (*note | express rules with multiple output files using pattern rules (*note | |||
Pattern Rule Examples: (make)Pattern Examples.). We do not discuss | Pattern Rule Examples: (make)Pattern Examples.). We do not discuss | |||
pattern rules here because they are not portable, but they can be | pattern rules here because they are not portable, but they can be | |||
convenient in packages that assume GNU ‘make’. | convenient in packages that assume GNU ‘make’. | |||
File: automake.info, Node: Hard-Coded Install Paths, Next: Debugging Make Rule s, Prev: Multiple Outputs, Up: FAQ | File: automake.info, Node: Hard-Coded Install Paths, Next: Debugging Make Rule s, Prev: Multiple Outputs, Up: FAQ | |||
27.10 Installing to Hard-Coded Locations | 26.10 Installing to Hard-Coded Locations | |||
======================================== | ======================================== | |||
My package needs to install some configuration file. I tried to use | My package needs to install some configuration file. I tried to use | |||
the following rule, but ‘make distcheck’ fails. Why? | the following rule, but ‘make distcheck’ fails. Why? | |||
# Do not do this. | # Do not do this. | |||
install-data-local: | install-data-local: | |||
$(INSTALL_DATA) $(srcdir)/afile $(DESTDIR)/etc/afile | $(INSTALL_DATA) $(srcdir)/afile $(DESTDIR)/etc/afile | |||
My package needs to populate the installation directory of another | My package needs to populate the installation directory of another | |||
skipping to change at line 10743 | skipping to change at line 10817 | |||
‘*/lib/*emacs/site-lisp’ or ‘*/share/*emacs/site-lisp’ in the search | ‘*/lib/*emacs/site-lisp’ or ‘*/share/*emacs/site-lisp’ in the search | |||
path of emacs, and then substitutes ‘${libdir}’ or ‘${datadir}’ | path of emacs, and then substitutes ‘${libdir}’ or ‘${datadir}’ | |||
appropriately. | appropriately. | |||
The emacs case looks complicated because it processes a list and | The emacs case looks complicated because it processes a list and | |||
expects two possible layouts; otherwise it’s easy, and the benefits for | expects two possible layouts; otherwise it’s easy, and the benefits for | |||
non-root users are really worth the extra ‘sed’ invocation. | non-root users are really worth the extra ‘sed’ invocation. | |||
File: automake.info, Node: Debugging Make Rules, Next: Reporting Bugs, Prev: Hard-Coded Install Paths, Up: FAQ | File: automake.info, Node: Debugging Make Rules, Next: Reporting Bugs, Prev: Hard-Coded Install Paths, Up: FAQ | |||
27.11 Debugging Make Rules | 26.11 Debugging Make Rules | |||
========================== | ========================== | |||
The rules and dependency trees generated by ‘automake’ can get rather | The rules and dependency trees generated by ‘automake’ can get rather | |||
complex, and leave the developer head-scratching when things don’t work | complex, and leave the developer head-scratching when things don’t work | |||
as expected. Besides the debug options provided by the ‘make’ command | as expected. Besides the debug options provided by the ‘make’ command | |||
(*note (make)Options Summary::), here’s a couple of further hints for | (*note (make)Options Summary::), here’s a couple of further hints for | |||
debugging makefiles generated by ‘automake’ effectively: | debugging makefiles generated by ‘automake’ effectively: | |||
• If less verbose output has been enabled in the package with the use | • If less verbose output has been enabled in the package with the use | |||
of silent rules (*note Automake Silent Rules::), you can use ‘make | of silent rules (*note Automake Silent Rules::), you can use ‘make | |||
skipping to change at line 10785 | skipping to change at line 10859 | |||
variables, and calling rules interactively, much like a debugger. | variables, and calling rules interactively, much like a debugger. | |||
---------- Footnotes ---------- | ---------- Footnotes ---------- | |||
(1) Automake’s ‘dist’ and ‘distcheck’ rules had a bug in this regard | (1) Automake’s ‘dist’ and ‘distcheck’ rules had a bug in this regard | |||
in that they created directories even with ‘-n’, but this has been fixed | in that they created directories even with ‘-n’, but this has been fixed | |||
in Automake 1.11. | in Automake 1.11. | |||
File: automake.info, Node: Reporting Bugs, Prev: Debugging Make Rules, Up: FA Q | File: automake.info, Node: Reporting Bugs, Prev: Debugging Make Rules, Up: FA Q | |||
27.12 Reporting Bugs | 26.12 Reporting Bugs | |||
==================== | ==================== | |||
Most nontrivial software has bugs. Automake is no exception. Although | Most nontrivial software has bugs. Automake is no exception. Although | |||
we cannot promise we can or will fix a bug, and we might not even agree | 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 | that it is a bug, we want to hear about problems you encounter. Often | |||
we agree they are bugs and want to fix them. | we agree they are bugs and want to fix them. | |||
To make it possible for us to fix a bug, please report it. In order | To make it possible for us to fix a bug, please report it. In order | |||
to do so effectively, it helps to know when and how to do it. | to 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 | Before reporting a bug, it is a good idea to see if it is already | |||
known. You can look at the GNU Bug Tracker (https://debbugs.gnu.org/) | known. You can look at the GNU Bug Tracker (https://debbugs.gnu.org/) | |||
and the bug-automake mailing list archives | and the bug-automake mailing list archives | |||
(https://lists.gnu.org/archive/html/bug-automake/) for previous bug | (https://lists.gnu.org/archive/html/bug-automake/) for previous bug | |||
reports. We previously used a Gnats database | reports. We previously used a Gnats database for bug tracking, but it | |||
(http://sourceware.org/cgi-bin/gnatsweb.pl?database=automake) for bug | is no longer online. | |||
tracking, so some bugs might have been reported there already. Please | ||||
do not use it for new bug reports, however. | ||||
If the bug is not already known, it should be reported. It is very | 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 | important to report bugs in a way that is useful and efficient. For | |||
this, please familiarize yourself with How to Report Bugs Effectively | this, please familiarize yourself with How to Report Bugs Effectively | |||
(http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) and How to Ask | (https://www.chiark.greenend.org.uk/~sgtatham/bugs.html) and How to Ask | |||
Questions the Smart Way | Questions the Smart Way | |||
(http://catb.org/~esr/faqs/smart-questions.html). This helps you and | (http://catb.org/~esr/faqs/smart-questions.html). This helps you and | |||
developers to save time, which can then be spent on fixing more bugs and | developers to save time, which can then be spent on fixing more bugs and | |||
implementing more features. | implementing more features. | |||
For a bug report, a feature request or other suggestions, please send | For a bug report, a feature request or other suggestions, please send | |||
email to <bug-automake@gnu.org>. This will then open a new bug in the | email to <bug-automake@gnu.org>. This will then open a new bug in the | |||
bug tracker (https://debbugs.gnu.org/automake). Be sure to include the | bug tracker (https://debbugs.gnu.org/automake). Be sure to include the | |||
versions of Autoconf and Automake that you use. Ideally, post a minimal | versions of Autoconf and Automake that you use. Ideally, post a minimal | |||
‘Makefile.am’ and ‘configure.ac’ that reproduces the problem you | ‘Makefile.am’ and ‘configure.ac’ that reproduces the problem you | |||
skipping to change at line 11404 | skipping to change at line 11476 | |||
* AM_PROG_LEX: Public Macros. (line 94) | * AM_PROG_LEX: Public Macros. (line 94) | |||
* AM_PROG_MKDIR_P: Obsolete Macros. (line 14) | * AM_PROG_MKDIR_P: Obsolete Macros. (line 14) | |||
* AM_PROG_UPC: Public Macros. (line 104) | * AM_PROG_UPC: Public Macros. (line 104) | |||
* AM_PROG_VALAC: Vala Support. (line 20) | * AM_PROG_VALAC: Vala Support. (line 20) | |||
* AM_SANITY_CHECK: Private Macros. (line 30) | * AM_SANITY_CHECK: Private Macros. (line 30) | |||
* AM_SET_DEPDIR: Private Macros. (line 13) | * AM_SET_DEPDIR: Private Macros. (line 13) | |||
* AM_SILENT_RULES: Public Macros. (line 118) | * AM_SILENT_RULES: Public Macros. (line 118) | |||
* AM_SUBST_NOTMAKE(VAR): Optional. (line 180) | * AM_SUBST_NOTMAKE(VAR): Optional. (line 180) | |||
* AM_WITH_DMALLOC: Public Macros. (line 122) | * AM_WITH_DMALLOC: Public Macros. (line 122) | |||
* m4_include: Basics of Distribution. | * m4_include: Basics of Distribution. | |||
(line 17) | (line 22) | |||
* m4_include <1>: Optional. (line 190) | * m4_include <1>: Optional. (line 190) | |||
File: automake.info, Node: Variable Index, Next: General Index, Prev: Macro I ndex, Up: Indices | File: automake.info, Node: Variable Index, Next: General Index, Prev: Macro I ndex, Up: Indices | |||
B.2 Variable Index | B.2 Variable Index | |||
================== | ================== | |||
* Menu: | * Menu: | |||
* _DATA: Data. (line 6) | * _DATA: Data. (line 6) | |||
skipping to change at line 11445 | skipping to change at line 11517 | |||
* _SOURCES <1>: Program Sources. (line 33) | * _SOURCES <1>: Program Sources. (line 33) | |||
* _SOURCES <2>: Default _SOURCES. (line 6) | * _SOURCES <2>: Default _SOURCES. (line 6) | |||
* _TEXINFOS: Texinfo. (line 6) | * _TEXINFOS: Texinfo. (line 6) | |||
* _TEXINFOS <1>: Texinfo. (line 65) | * _TEXINFOS <1>: Texinfo. (line 65) | |||
* ACLOCAL_AUTOMAKE_DIR: aclocal Options. (line 12) | * ACLOCAL_AUTOMAKE_DIR: aclocal Options. (line 12) | |||
* ALLOCA: LTLIBOBJS. (line 6) | * ALLOCA: LTLIBOBJS. (line 6) | |||
* ALLOCA <1>: LIBOBJS. (line 6) | * ALLOCA <1>: LIBOBJS. (line 6) | |||
* AM_CCASFLAGS: Assembly Support. (line 10) | * AM_CCASFLAGS: Assembly Support. (line 10) | |||
* AM_CFLAGS: Program Variables. (line 50) | * AM_CFLAGS: Program Variables. (line 50) | |||
* AM_COLOR_TESTS: Scripts-based Testsuites. | * AM_COLOR_TESTS: Scripts-based Testsuites. | |||
(line 67) | (line 85) | |||
* AM_CPPFLAGS: Program Variables. (line 16) | * AM_CPPFLAGS: Program Variables. (line 16) | |||
* AM_CPPFLAGS <1>: Assembly Support. (line 10) | * AM_CPPFLAGS <1>: Assembly Support. (line 10) | |||
* AM_CXXFLAGS: C++ Support. (line 22) | * AM_CXXFLAGS: C++ Support. (line 22) | |||
* AM_DEFAULT_SOURCE_EXT: Default _SOURCES. (line 6) | * AM_DEFAULT_SOURCE_EXT: Default _SOURCES. (line 6) | |||
* AM_DEFAULT_V: Automake Silent Rules. | * AM_DEFAULT_V: Automake Silent Rules. | |||
(line 120) | (line 120) | |||
* AM_DEFAULT_VERBOSITY: Automake Silent Rules. | * AM_DEFAULT_VERBOSITY: Automake Silent Rules. | |||
(line 120) | (line 120) | |||
* AM_DISTCHECK_CONFIGURE_FLAGS: Checking the Distribution. | * AM_DISTCHECK_CONFIGURE_FLAGS: Checking the Distribution. | |||
(line 28) | (line 30) | |||
* AM_ETAGSFLAGS: Tags. (line 25) | * AM_ETAGSFLAGS: Tags. (line 25) | |||
* AM_EXT_LOG_DRIVER_FLAGS: Declaring Custom Test Drivers. | * AM_EXT_LOG_DRIVER_FLAGS: Declaring Custom Test Drivers. | |||
(line 6) | (line 6) | |||
* AM_EXT_LOG_FLAGS: Parallel Test Harness. | * AM_EXT_LOG_FLAGS: Parallel Test Harness. | |||
(line 51) | (line 51) | |||
* AM_FCFLAGS: Fortran 9x Support. (line 22) | * AM_FCFLAGS: Fortran 9x Support. (line 22) | |||
* AM_FFLAGS: Fortran 77 Support. (line 22) | * AM_FFLAGS: Fortran 77 Support. (line 22) | |||
* AM_GCJFLAGS: Java Support with gcj. | * AM_GCJFLAGS: Java Support with gcj. | |||
(line 26) | (line 26) | |||
* AM_INSTALLCHECK_STD_OPTIONS_EXEMPT: List of Automake options. | * AM_INSTALLCHECK_STD_OPTIONS_EXEMPT: List of Automake options. | |||
(line 138) | (line 139) | |||
* AM_JAVACFLAGS: Java. (line 44) | * AM_JAVACFLAGS: Java. (line 44) | |||
* AM_LDFLAGS: Linking. (line 10) | * AM_LDFLAGS: Linking. (line 10) | |||
* AM_LDFLAGS <1>: Program Variables. (line 59) | * AM_LDFLAGS <1>: Program Variables. (line 59) | |||
* AM_LFLAGS: Yacc and Lex. (line 60) | * AM_LFLAGS: Yacc and Lex. (line 60) | |||
* AM_LIBTOOLFLAGS: Libtool Flags. (line 6) | * AM_LIBTOOLFLAGS: Libtool Flags. (line 6) | |||
* AM_LOG_DRIVER_FLAGS: Declaring Custom Test Drivers. | * AM_LOG_DRIVER_FLAGS: Declaring Custom Test Drivers. | |||
(line 6) | (line 6) | |||
* AM_LOG_FLAGS: Parallel Test Harness. | * AM_LOG_FLAGS: Parallel Test Harness. | |||
(line 51) | (line 51) | |||
* AM_MAKEFLAGS: Subdirectories. (line 29) | * AM_MAKEFLAGS: Subdirectories. (line 29) | |||
* AM_MAKEINFOFLAGS: Texinfo. (line 115) | * AM_MAKEINFOFLAGS: Texinfo. (line 115) | |||
* AM_MAKEINFOHTMLFLAGS: Texinfo. (line 116) | * AM_MAKEINFOHTMLFLAGS: Texinfo. (line 116) | |||
* AM_OBJCFLAGS: Objective C Support. (line 22) | * AM_OBJCFLAGS: Objective C Support. (line 22) | |||
* AM_OBJCXXFLAGS: Objective C++ Support. | * AM_OBJCXXFLAGS: Objective C++ Support. | |||
(line 22) | (line 22) | |||
* AM_RFLAGS: Fortran 77 Support. (line 28) | * AM_RFLAGS: Fortran 77 Support. (line 28) | |||
* AM_RUNTESTFLAGS: DejaGnu Tests. (line 24) | * AM_RUNTESTFLAGS: DejaGnu Tests. (line 24) | |||
* AM_TESTSUITE_SUMMARY_HEADER: Scripts-based Testsuites. | ||||
(line 69) | ||||
* AM_TESTS_ENVIRONMENT: Scripts-based Testsuites. | * AM_TESTS_ENVIRONMENT: Scripts-based Testsuites. | |||
(line 86) | (line 104) | |||
* AM_TESTS_FD_REDIRECT: Scripts-based Testsuites. | * AM_TESTS_FD_REDIRECT: Scripts-based Testsuites. | |||
(line 94) | (line 112) | |||
* AM_UPCFLAGS: Unified Parallel C Support. | * AM_UPCFLAGS: Unified Parallel C Support. | |||
(line 21) | (line 21) | |||
* AM_UPDATE_INFO_DIR: Texinfo. (line 92) | * AM_UPDATE_INFO_DIR: Texinfo. (line 92) | |||
* AM_V: Automake Silent Rules. | * AM_V: Automake Silent Rules. | |||
(line 120) | (line 120) | |||
* AM_VALAFLAGS: Vala Support. (line 41) | * AM_VALAFLAGS: Vala Support. (line 44) | |||
* AM_V_at: Automake Silent Rules. | * AM_V_at: Automake Silent Rules. | |||
(line 120) | (line 120) | |||
* AM_V_GEN: Automake Silent Rules. | * AM_V_GEN: Automake Silent Rules. | |||
(line 120) | (line 120) | |||
* AM_YFLAGS: Yacc and Lex. (line 37) | * AM_YFLAGS: Yacc and Lex. (line 37) | |||
* AR: Public Macros. (line 75) | * AR: Public Macros. (line 75) | |||
* AUTOCONF: automake Invocation. (line 28) | * AUTOCONF: automake Invocation. (line 28) | |||
* AUTOM4TE: aclocal Invocation. (line 44) | * AUTOM4TE: aclocal Invocation. (line 44) | |||
* AUTOMAKE_JOBS: automake Invocation. (line 178) | * AUTOMAKE_JOBS: automake Invocation. (line 195) | |||
* AUTOMAKE_LIBDIR: automake Invocation. (line 64) | * AUTOMAKE_LIBDIR: automake Invocation. (line 64) | |||
* AUTOMAKE_OPTIONS: Public Macros. (line 10) | * AUTOMAKE_OPTIONS: Public Macros. (line 10) | |||
* AUTOMAKE_OPTIONS <1>: Dependencies. (line 34) | * AUTOMAKE_OPTIONS <1>: Dependencies. (line 34) | |||
* AUTOMAKE_OPTIONS <2>: List of Automake options. | * AUTOMAKE_OPTIONS <2>: List of Automake options. | |||
(line 6) | (line 6) | |||
* bin_PROGRAMS: Program Sources. (line 6) | * bin_PROGRAMS: Program Sources. (line 6) | |||
* bin_SCRIPTS: Scripts. (line 18) | * bin_SCRIPTS: Scripts. (line 18) | |||
* build_triplet: Optional. (line 14) | * build_triplet: Optional. (line 14) | |||
* BUILT_SOURCES: Sources. (line 27) | * BUILT_SOURCES: Sources. (line 27) | |||
* BZIP2: The Types of Distributions. | * BZIP2: The Types of Distributions. | |||
skipping to change at line 11549 | skipping to change at line 11623 | |||
* DATA: Uniform. (line 101) | * DATA: Uniform. (line 101) | |||
* DATA <1>: Data. (line 7) | * DATA <1>: Data. (line 7) | |||
* data_DATA: Data. (line 9) | * data_DATA: Data. (line 9) | |||
* DEFS: Program Variables. (line 12) | * DEFS: Program Variables. (line 12) | |||
* DEJATOOL: DejaGnu Tests. (line 19) | * DEJATOOL: DejaGnu Tests. (line 19) | |||
* DESTDIR: DESTDIR. (line 6) | * DESTDIR: DESTDIR. (line 6) | |||
* DESTDIR <1>: Staged Installs. (line 6) | * DESTDIR <1>: Staged Installs. (line 6) | |||
* DISABLE_HARD_ERRORS: Scripts-based Testsuites. | * DISABLE_HARD_ERRORS: Scripts-based Testsuites. | |||
(line 32) | (line 32) | |||
* DISTCHECK_CONFIGURE_FLAGS: Checking the Distribution. | * DISTCHECK_CONFIGURE_FLAGS: Checking the Distribution. | |||
(line 28) | (line 30) | |||
* distcleancheck_listfiles: Checking the Distribution. | * distcleancheck_listfiles: Checking the Distribution. | |||
(line 70) | (line 92) | |||
* distcleancheck_listfiles <1>: Errors with distclean. | * distcleancheck_listfiles <1>: Errors with distclean. | |||
(line 112) | (line 112) | |||
* DISTCLEANFILES: Clean. (line 13) | * DISTCLEANFILES: Clean. (line 13) | |||
* DISTCLEANFILES <1>: Checking the Distribution. | * DISTCLEANFILES <1>: Checking the Distribution. | |||
(line 70) | (line 92) | |||
* distdir: The dist Hook. (line 33) | * distdir: The dist Hook. (line 34) | |||
* distdir <1>: Third-Party Makefiles. | * distdir <1>: Third-Party Makefiles. | |||
(line 25) | (line 25) | |||
* distuninstallcheck_listfiles: Checking the Distribution. | * distuninstallcheck_listfiles: Checking the Distribution. | |||
(line 106) | (line 128) | |||
* dist_: Alternative. (line 29) | * dist_: Alternative. (line 28) | |||
* dist_ <1>: Fine-grained Distribution Control. | * dist_ <1>: Fine-grained Distribution Control. | |||
(line 6) | (line 6) | |||
* dist_lisp_LISP: Emacs Lisp. (line 11) | * dist_lisp_LISP: Emacs Lisp. (line 11) | |||
* dist_noinst_LISP: Emacs Lisp. (line 11) | * dist_noinst_LISP: Emacs Lisp. (line 11) | |||
* DIST_SUBDIRS: Subdirectories with AM_CONDITIONAL. | * DIST_SUBDIRS: Subdirectories with AM_CONDITIONAL. | |||
(line 25) | (line 25) | |||
* DIST_SUBDIRS <1>: Basics of Distribution. | * DIST_SUBDIRS <1>: Basics of Distribution. | |||
(line 47) | (line 52) | |||
* DVIPS: Texinfo. (line 141) | * DVIPS: Texinfo. (line 141) | |||
* EMACS: Public Macros. (line 60) | * EMACS: Public Macros. (line 60) | |||
* EMPTY_AUTOMAKE_TARGETS: Third-Party Makefiles. | ||||
(line 88) | ||||
* ETAGSFLAGS: Tags. (line 25) | * ETAGSFLAGS: Tags. (line 25) | |||
* ETAGS_ARGS: Tags. (line 25) | * ETAGS_ARGS: Tags. (line 25) | |||
* EXPECT: DejaGnu Tests. (line 19) | * EXPECT: DejaGnu Tests. (line 19) | |||
* EXTRA_DIST: Basics of Distribution. | * EXTRA_DIST: Basics of Distribution. | |||
(line 34) | (line 39) | |||
* EXTRA_maude_DEPENDENCIES: Linking. (line 41) | * EXTRA_maude_DEPENDENCIES: Linking. (line 41) | |||
* EXTRA_maude_DEPENDENCIES <1>: Program and Library Variables. | * EXTRA_maude_DEPENDENCIES <1>: Program and Library Variables. | |||
(line 119) | (line 119) | |||
* EXTRA_maude_SOURCES: Program and Library Variables. | * EXTRA_maude_SOURCES: Program and Library Variables. | |||
(line 53) | (line 53) | |||
* EXTRA_PROGRAMS: Conditional Programs. | * EXTRA_PROGRAMS: Conditional Programs. | |||
(line 15) | (line 15) | |||
* EXT_LOG_COMPILE: Parallel Test Harness. | * EXT_LOG_COMPILE: Parallel Test Harness. | |||
(line 51) | (line 51) | |||
* EXT_LOG_COMPILER: Parallel Test Harness. | * EXT_LOG_COMPILER: Parallel Test Harness. | |||
skipping to change at line 11617 | skipping to change at line 11693 | |||
(line 21) | (line 21) | |||
* FLINK: Fortran 77 Support. (line 35) | * FLINK: Fortran 77 Support. (line 35) | |||
* GCJ: Public Macros. (line 99) | * GCJ: Public Macros. (line 99) | |||
* GCJFLAGS: Public Macros. (line 99) | * GCJFLAGS: Public Macros. (line 99) | |||
* GCJFLAGS <1>: Java Support with gcj. | * GCJFLAGS <1>: Java Support with gcj. | |||
(line 16) | (line 16) | |||
* GCJLINK: How the Linker is Chosen. | * GCJLINK: How the Linker is Chosen. | |||
(line 10) | (line 10) | |||
* GTAGS_ARGS: Tags. (line 60) | * GTAGS_ARGS: Tags. (line 60) | |||
* GZIP_ENV: Basics of Distribution. | * GZIP_ENV: Basics of Distribution. | |||
(line 14) | (line 16) | |||
* HEADERS: Uniform. (line 101) | * HEADERS: Uniform. (line 101) | |||
* host_triplet: Optional. (line 14) | * host_triplet: Optional. (line 14) | |||
* INCLUDES: Program Variables. (line 44) | * INCLUDES: Program Variables. (line 44) | |||
* include_HEADERS: Headers. (line 6) | * include_HEADERS: Headers. (line 6) | |||
* info_TEXINFOS: Texinfo. (line 6) | * info_TEXINFOS: Texinfo. (line 6) | |||
* JAVA: Uniform. (line 101) | * JAVA: Uniform. (line 101) | |||
* JAVAC: Java. (line 37) | * JAVAC: Java. (line 37) | |||
* JAVACFLAGS: Java. (line 40) | * JAVACFLAGS: Java. (line 40) | |||
* JAVAROOT: Java. (line 49) | * JAVAROOT: Java. (line 49) | |||
* LDADD: Linking. (line 10) | * LDADD: Linking. (line 10) | |||
skipping to change at line 11720 | skipping to change at line 11796 | |||
* maude_SOURCES: Program and Library Variables. | * maude_SOURCES: Program and Library Variables. | |||
(line 18) | (line 18) | |||
* maude_UPCFLAGS: Program and Library Variables. | * maude_UPCFLAGS: Program and Library Variables. | |||
(line 180) | (line 180) | |||
* maude_YFLAGS: Program and Library Variables. | * maude_YFLAGS: Program and Library Variables. | |||
(line 181) | (line 181) | |||
* MISSING: Public Macros. (line 110) | * MISSING: Public Macros. (line 110) | |||
* MKDIR_P: Obsolete Macros. (line 14) | * MKDIR_P: Obsolete Macros. (line 14) | |||
* mkdir_p: Obsolete Macros. (line 14) | * mkdir_p: Obsolete Macros. (line 14) | |||
* MOSTLYCLEANFILES: Clean. (line 13) | * MOSTLYCLEANFILES: Clean. (line 13) | |||
* nobase_: Alternative. (line 23) | * nobase_: Alternative. (line 22) | |||
* nodist_: Alternative. (line 29) | * nodist_: Alternative. (line 28) | |||
* nodist_ <1>: Fine-grained Distribution Control. | * nodist_ <1>: Fine-grained Distribution Control. | |||
(line 6) | (line 6) | |||
* noinst_: Uniform. (line 90) | * noinst_: Uniform. (line 90) | |||
* noinst_HEADERS: Headers. (line 6) | * noinst_HEADERS: Headers. (line 6) | |||
* noinst_HEADERS <1>: Headers. (line 23) | * noinst_HEADERS <1>: Headers. (line 23) | |||
* noinst_LIBRARIES: A Library. (line 6) | * noinst_LIBRARIES: A Library. (line 6) | |||
* noinst_LISP: Emacs Lisp. (line 6) | * noinst_LISP: Emacs Lisp. (line 6) | |||
* noinst_LTLIBRARIES: Libtool Convenience Libraries. | * noinst_LTLIBRARIES: Libtool Convenience Libraries. | |||
(line 6) | (line 6) | |||
* noinst_PROGRAMS: Program Sources. (line 6) | * noinst_PROGRAMS: Program Sources. (line 6) | |||
skipping to change at line 11791 | skipping to change at line 11867 | |||
* RUNTESTFLAGS: DejaGnu Tests. (line 24) | * RUNTESTFLAGS: DejaGnu Tests. (line 24) | |||
* sbin_PROGRAMS: Program Sources. (line 6) | * sbin_PROGRAMS: Program Sources. (line 6) | |||
* sbin_SCRIPTS: Scripts. (line 18) | * sbin_SCRIPTS: Scripts. (line 18) | |||
* SCRIPTS: Uniform. (line 101) | * SCRIPTS: Uniform. (line 101) | |||
* SCRIPTS <1>: Scripts. (line 9) | * SCRIPTS <1>: Scripts. (line 9) | |||
* sharedstate_DATA: Data. (line 9) | * sharedstate_DATA: Data. (line 9) | |||
* SOURCES: Program Sources. (line 33) | * SOURCES: Program Sources. (line 33) | |||
* SOURCES <1>: Default _SOURCES. (line 6) | * SOURCES <1>: Default _SOURCES. (line 6) | |||
* SUBDIRS: Subdirectories. (line 8) | * SUBDIRS: Subdirectories. (line 8) | |||
* SUBDIRS <1>: Basics of Distribution. | * SUBDIRS <1>: Basics of Distribution. | |||
(line 47) | (line 52) | |||
* SUFFIXES: Suffixes. (line 6) | * SUFFIXES: Suffixes. (line 6) | |||
* sysconf_DATA: Data. (line 9) | * sysconf_DATA: Data. (line 9) | |||
* TAGS_DEPENDENCIES: Tags. (line 35) | * TAGS_DEPENDENCIES: Tags. (line 35) | |||
* TAR: Basics of Distribution. | ||||
(line 19) | ||||
* target_triplet: Optional. (line 14) | * target_triplet: Optional. (line 14) | |||
* TESTS: Scripts-based Testsuites. | * TESTS: Scripts-based Testsuites. | |||
(line 86) | (line 104) | |||
* TESTS <1>: Parallel Test Harness. | * TESTS <1>: Parallel Test Harness. | |||
(line 12) | (line 12) | |||
* TESTS_ENVIRONMENT: Scripts-based Testsuites. | * TESTS_ENVIRONMENT: Scripts-based Testsuites. | |||
(line 86) | (line 104) | |||
* TEST_EXTENSIONS: Parallel Test Harness. | * TEST_EXTENSIONS: Parallel Test Harness. | |||
(line 34) | (line 34) | |||
* TEST_LOGS: Parallel Test Harness. | * TEST_LOGS: Parallel Test Harness. | |||
(line 34) | (line 34) | |||
* TEST_SUITE_LOG: Parallel Test Harness. | * TEST_SUITE_LOG: Parallel Test Harness. | |||
(line 12) | (line 12) | |||
* TEXI2DVI: Texinfo. (line 132) | * TEXI2DVI: Texinfo. (line 132) | |||
* TEXI2PDF: Texinfo. (line 137) | * TEXI2PDF: Texinfo. (line 137) | |||
* TEXINFOS: Uniform. (line 101) | * TEXINFOS: Uniform. (line 101) | |||
* TEXINFOS <1>: Texinfo. (line 65) | * TEXINFOS <1>: Texinfo. (line 65) | |||
* TEXINFO_TEX: Texinfo. (line 145) | * TEXINFO_TEX: Texinfo. (line 145) | |||
* top_distdir: The dist Hook. (line 33) | * top_distdir: The dist Hook. (line 34) | |||
* top_distdir <1>: Third-Party Makefiles. | * top_distdir <1>: Third-Party Makefiles. | |||
(line 25) | (line 25) | |||
* UPC: Public Macros. (line 104) | * UPC: Public Macros. (line 104) | |||
* UPC <1>: Unified Parallel C Support. | * UPC <1>: Unified Parallel C Support. | |||
(line 15) | (line 15) | |||
* UPCCOMPILE: Unified Parallel C Support. | * UPCCOMPILE: Unified Parallel C Support. | |||
(line 24) | (line 24) | |||
* UPCFLAGS: Unified Parallel C Support. | * UPCFLAGS: Unified Parallel C Support. | |||
(line 18) | (line 18) | |||
* UPCLINK: Unified Parallel C Support. | * UPCLINK: Unified Parallel C Support. | |||
(line 28) | (line 28) | |||
* UPCLINK <1>: How the Linker is Chosen. | * UPCLINK <1>: How the Linker is Chosen. | |||
(line 16) | (line 16) | |||
* V: Automake Silent Rules. | * V: Automake Silent Rules. | |||
(line 88) | (line 88) | |||
* VALAC: Vala Support. (line 34) | * VALAC: Vala Support. (line 37) | |||
* VALAFLAGS: Vala Support. (line 38) | * VALAFLAGS: Vala Support. (line 41) | |||
* VERBOSE: Parallel Test Harness. | * VERBOSE: Parallel Test Harness. | |||
(line 26) | (line 26) | |||
* VERSION: Basics of Distribution. | * VERSION: Basics of Distribution. | |||
(line 6) | (line 6) | |||
* WARNINGS: automake Invocation. (line 171) | * WARNINGS: automake Invocation. (line 187) | |||
* WARNINGS <1>: aclocal Options. (line 95) | * WARNINGS <1>: aclocal Options. (line 95) | |||
* WITH_DMALLOC: Public Macros. (line 122) | * WITH_DMALLOC: Public Macros. (line 122) | |||
* XFAIL_TESTS: Scripts-based Testsuites. | * XFAIL_TESTS: Scripts-based Testsuites. | |||
(line 32) | (line 32) | |||
* XZ_OPT: The Types of Distributions. | * XZ_OPT: The Types of Distributions. | |||
(line 24) | (line 24) | |||
* YACC: Optional. (line 122) | * YACC: Optional. (line 122) | |||
* YFLAGS: Yacc and Lex. (line 37) | * YFLAGS: Yacc and Lex. (line 37) | |||
* ZSTD_CLEVEL: The Types of Distributions. | * ZSTD_CLEVEL: The Types of Distributions. | |||
(line 47) | (line 47) | |||
skipping to change at line 11878 | skipping to change at line 11956 | |||
(line 85) | (line 85) | |||
* --dry-run: aclocal Options. (line 27) | * --dry-run: aclocal Options. (line 27) | |||
* --enable-debug, example: Usage of Conditionals. | * --enable-debug, example: Usage of Conditionals. | |||
(line 21) | (line 21) | |||
* --enable-dependency-tracking: Dependency Tracking. (line 43) | * --enable-dependency-tracking: Dependency Tracking. (line 43) | |||
* --enable-maintainer-mode: Optional. (line 173) | * --enable-maintainer-mode: Optional. (line 173) | |||
* --enable-silent-rules: Automake Silent Rules. | * --enable-silent-rules: Automake Silent Rules. | |||
(line 85) | (line 85) | |||
* --force: aclocal Options. (line 49) | * --force: aclocal Options. (line 49) | |||
* --force-missing: automake Invocation. (line 80) | * --force-missing: automake Invocation. (line 80) | |||
* --foreign: automake Invocation. (line 86) | * --foreign: Strictness. (line 51) | |||
* --gnits: automake Invocation. (line 90) | * --foreign <1>: automake Invocation. (line 86) | |||
* --gnits, complete description: Gnits. (line 29) | * --gnits: Strictness. (line 58) | |||
* --gnu: automake Invocation. (line 94) | * --gnits <1>: automake Invocation. (line 90) | |||
* --gnu, complete description: Gnits. (line 6) | * --gnu: Strictness. (line 18) | |||
* --gnu, required files: Gnits. (line 6) | * --gnu <1>: automake Invocation. (line 94) | |||
* --help: automake Invocation. (line 98) | * --help: automake Invocation. (line 98) | |||
* --help <1>: aclocal Options. (line 31) | * --help <1>: aclocal Options. (line 31) | |||
* --help check: List of Automake options. | * --help check: List of Automake options. | |||
(line 132) | (line 133) | |||
* --help=recursive: Nested Packages. (line 30) | * --help=recursive: Nested Packages. (line 30) | |||
* --host=HOST: Cross-Compilation. (line 16) | * --host=HOST: Cross-Compilation. (line 16) | |||
* --include-deps: automake Invocation. (line 106) | * --include-deps: automake Invocation. (line 106) | |||
* --install: aclocal Options. (line 38) | * --install: aclocal Options. (line 38) | |||
* --libdir: automake Invocation. (line 61) | * --libdir: automake Invocation. (line 61) | |||
* --no-force: automake Invocation. (line 111) | * --no-force: automake Invocation. (line 111) | |||
* --output: aclocal Options. (line 59) | * --output: aclocal Options. (line 59) | |||
* --output-dir: automake Invocation. (line 118) | * --output-dir: automake Invocation. (line 118) | |||
* --prefix: Standard Directory Variables. | * --prefix: Standard Directory Variables. | |||
(line 33) | (line 33) | |||
skipping to change at line 11910 | skipping to change at line 11988 | |||
* --program-prefix=PREFIX: Renaming. (line 16) | * --program-prefix=PREFIX: Renaming. (line 16) | |||
* --program-suffix=SUFFIX: Renaming. (line 18) | * --program-suffix=SUFFIX: Renaming. (line 18) | |||
* --program-transform-name=PROGRAM: Renaming. (line 20) | * --program-transform-name=PROGRAM: Renaming. (line 20) | |||
* --system-acdir: aclocal Options. (line 17) | * --system-acdir: aclocal Options. (line 17) | |||
* --target=TARGET: Cross-Compilation. (line 55) | * --target=TARGET: Cross-Compilation. (line 55) | |||
* --verbose: automake Invocation. (line 125) | * --verbose: automake Invocation. (line 125) | |||
* --verbose <1>: aclocal Options. (line 73) | * --verbose <1>: aclocal Options. (line 73) | |||
* --version: automake Invocation. (line 129) | * --version: automake Invocation. (line 129) | |||
* --version <1>: aclocal Options. (line 76) | * --version <1>: aclocal Options. (line 76) | |||
* --version check: List of Automake options. | * --version check: List of Automake options. | |||
(line 132) | (line 133) | |||
* --warnings: automake Invocation. (line 133) | * --warnings: automake Invocation. (line 133) | |||
* --warnings <1>: aclocal Options. (line 80) | * --warnings <1>: aclocal Options. (line 80) | |||
* --with-dmalloc: Public Macros. (line 122) | * --with-dmalloc: Public Macros. (line 122) | |||
* -a: automake Invocation. (line 41) | * -a: automake Invocation. (line 41) | |||
* -c: automake Invocation. (line 74) | * -c: automake Invocation. (line 74) | |||
* -f: automake Invocation. (line 79) | * -f: automake Invocation. (line 79) | |||
* -hook targets: Extending. (line 66) | * -hook targets: Extending. (line 66) | |||
* -i: automake Invocation. (line 102) | * -i: automake Invocation. (line 102) | |||
* -I: aclocal Options. (line 34) | * -I: aclocal Options. (line 34) | |||
* -l and LDADD: Linking. (line 70) | * -l and LDADD: Linking. (line 70) | |||
skipping to change at line 12025 | skipping to change at line 12103 | |||
(line 20) | (line 20) | |||
* AM_OBJCXXFLAGS and OBJXXCFLAGS: Flag Variables Ordering. | * AM_OBJCXXFLAGS and OBJXXCFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* AM_RFLAGS and RFLAGS: Flag Variables Ordering. | * AM_RFLAGS and RFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* AM_UPCFLAGS and UPCFLAGS: Flag Variables Ordering. | * AM_UPCFLAGS and UPCFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* AM_YFLAGS and YFLAGS: Flag Variables Ordering. | * AM_YFLAGS and YFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* Append operator: General Operation. (line 24) | * Append operator: General Operation. (line 24) | |||
* ar-lib: Auxiliary Programs. (line 16) | ||||
* ARG_MAX: Length Limitations. (line 6) | * ARG_MAX: Length Limitations. (line 6) | |||
* autogen.sh and autoreconf: Error required file ltmain.sh not found . | * autogen.sh and autoreconf: Error required file ltmain.sh not found . | |||
(line 6) | (line 6) | |||
* autom4te: aclocal Invocation. (line 44) | * autom4te: aclocal Invocation. (line 44) | |||
* Automake constraints: Introduction. (line 21) | * Automake constraints: Introduction. (line 21) | |||
* automake options: automake Invocation. (line 37) | * automake options: automake Invocation. (line 37) | |||
* Automake parser, limitations of: General Operation. (line 33) | * Automake parser, limitations of: General Operation. (line 33) | |||
* Automake requirements: Introduction. (line 26) | * Automake requirements: Introduction. (line 26) | |||
* Automake requirements <1>: Requirements. (line 6) | * Automake requirements <1>: Requirements. (line 6) | |||
* Automake targets, no-op: Third-Party Makefiles. | ||||
(line 88) | ||||
* automake, invocation: automake Invocation. (line 6) | * automake, invocation: automake Invocation. (line 6) | |||
* automake, invoking: automake Invocation. (line 6) | * automake, invoking: automake Invocation. (line 6) | |||
* Automake, recursive operation: General Operation. (line 58) | * Automake, recursive operation: General Operation. (line 58) | |||
* Automatic dependency tracking: Dependencies. (line 11) | * Automatic dependency tracking: Dependencies. (line 11) | |||
* Automatic linker selection: How the Linker is Chosen. | * Automatic linker selection: How the Linker is Chosen. | |||
(line 6) | (line 6) | |||
* autoreconf and libtoolize: Error required file ltmain.sh not found . | * autoreconf and libtoolize: Error required file ltmain.sh not found . | |||
(line 6) | (line 6) | |||
* autoreconf, example: Creating amhello. (line 59) | * autoreconf, example: Creating amhello. (line 59) | |||
* autoscan: amhello's configure.ac Setup Explained. | * autoscan: amhello's configure.ac Setup Explained. | |||
(line 89) | (line 89) | |||
* Autotools, introduction: GNU Build System. (line 43) | * Autotools, introduction: GNU Build System. (line 43) | |||
* Autotools, purpose: Why Autotools. (line 6) | * Autotools, purpose: Why Autotools. (line 6) | |||
* autoupdate: Obsolete Macros. (line 6) | * autoupdate: Obsolete Macros. (line 6) | |||
* Auxiliary programs: Auxiliary Programs. (line 6) | * Auxiliary programs: Auxiliary Programs. (line 6) | |||
* Avoiding man page renaming: Man Pages. (line 54) | * Avoiding man page renaming: Man Pages. (line 54) | |||
* Avoiding path stripping: Alternative. (line 23) | * Avoiding path stripping: Alternative. (line 22) | |||
* Binary package: DESTDIR. (line 22) | * Binary package: DESTDIR. (line 22) | |||
* bootstrap and autoreconf: Error required file ltmain.sh not found . | * bootstrap and autoreconf: Error required file ltmain.sh not found . | |||
(line 6) | (line 6) | |||
* Bugs, reporting: Introduction. (line 30) | * Bugs, reporting: Introduction. (line 30) | |||
* build tree and source tree: VPATH Builds. (line 6) | * build tree and source tree: VPATH Builds. (line 6) | |||
* BUILT_SOURCES, defined: Sources. (line 27) | * BUILT_SOURCES, defined: Sources. (line 27) | |||
* C++ support: C++ Support. (line 6) | * C++ support: C++ Support. (line 6) | |||
* canonicalizing Automake variables: Canonicalization. (line 6) | * canonicalizing Automake variables: Canonicalization. (line 6) | |||
* CCASFLAGS and AM_CCASFLAGS: Flag Variables Ordering. | * CCASFLAGS and AM_CCASFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* CFLAGS and AM_CFLAGS: Flag Variables Ordering. | * CFLAGS and AM_CFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* cfortran: Mixing Fortran 77 With C and C++. | * cfortran: Mixing Fortran 77 With C and C++. | |||
(line 6) | (line 6) | |||
* check: Standard Targets. (line 31) | * check: Standard Targets. (line 31) | |||
* check <1>: Tests. (line 6) | * check <1>: Tests. (line 6) | |||
* check <2>: Extending. (line 41) | * check <2>: Extending. (line 41) | |||
* check-local: Extending. (line 41) | * check-local: Extending. (line 41) | |||
* check-news: List of Automake options. | * check-news: List of Automake options. | |||
(line 14) | (line 15) | |||
* check_ primary prefix, definition: Uniform. (line 95) | * check_ primary prefix, definition: Uniform. (line 95) | |||
* check_PROGRAMS example: Default _SOURCES. (line 28) | * check_PROGRAMS example: Default _SOURCES. (line 28) | |||
* clean: Standard Targets. (line 27) | * clean: Standard Targets. (line 27) | |||
* clean <1>: Extending. (line 41) | * clean <1>: Extending. (line 41) | |||
* clean-local: Clean. (line 15) | * clean-local: Clean. (line 15) | |||
* clean-local <1>: Extending. (line 41) | * clean-local <1>: Extending. (line 41) | |||
* Colorized testsuite output: Scripts-based Testsuites. | * Colorized testsuite output: Scripts-based Testsuites. | |||
(line 67) | (line 85) | |||
* command line length limit: Length Limitations. (line 6) | * command line length limit: Length Limitations. (line 6) | |||
* Comment, special to Automake: General Operation. (line 68) | * Comment, special to Automake: General Operation. (line 68) | |||
* Compilation of Java to bytecode: Java. (line 6) | * Compilation of Java to bytecode: Java. (line 6) | |||
* Compilation of Java to native code: Java Support with gcj. | * Compilation of Java to native code: Java Support with gcj. | |||
(line 6) | (line 6) | |||
* compile: Auxiliary Programs. (line 20) | ||||
* Compile Flag Variables: Flag Variables Ordering. | * Compile Flag Variables: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* Complete example: Complete. (line 6) | * Complete example: Complete. (line 6) | |||
* Conditional example, --enable-debug: Usage of Conditionals. | * Conditional example, --enable-debug: Usage of Conditionals. | |||
(line 21) | (line 21) | |||
* conditional libtool libraries: Conditional Libtool Libraries. | * conditional libtool libraries: Conditional Libtool Libraries. | |||
(line 6) | (line 6) | |||
* Conditional programs: Conditional Programs. | * Conditional programs: Conditional Programs. | |||
(line 6) | (line 6) | |||
* Conditional subdirectories: Conditional Subdirectories. | * Conditional subdirectories: Conditional Subdirectories. | |||
(line 6) | (line 6) | |||
* Conditional SUBDIRS: Conditional Subdirectories. | * Conditional SUBDIRS: Conditional Subdirectories. | |||
(line 6) | (line 6) | |||
* Conditionals: Conditionals. (line 6) | * Conditionals: Conditionals. (line 6) | |||
* config.guess: automake Invocation. (line 39) | * config.guess: Auxiliary Programs. (line 30) | |||
* config.guess <1>: automake Invocation. (line 39) | ||||
* config.site example: config.site. (line 6) | * config.site example: config.site. (line 6) | |||
* config.sub: Auxiliary Programs. (line 30) | ||||
* configuration variables, overriding: Standard Configuration Variables. | * configuration variables, overriding: Standard Configuration Variables. | |||
(line 6) | (line 6) | |||
* Configuration, basics: Basic Installation. (line 6) | * Configuration, basics: Basic Installation. (line 6) | |||
* Configure substitutions in TESTS: Parallel Test Harness. | * Configure substitutions in TESTS: Parallel Test Harness. | |||
(line 46) | (line 46) | |||
* configure.ac, Hello World: amhello's configure.ac Setup Explained. | * configure.ac, Hello World: amhello's configure.ac Setup Explained. | |||
(line 6) | (line 6) | |||
* configure.ac, scanning: configure. (line 6) | * configure.ac, scanning: configure. (line 6) | |||
* conflicting definitions: Extending. (line 14) | * conflicting definitions: Extending. (line 14) | |||
* Constraints of Automake: Introduction. (line 21) | * Constraints of Automake: Introduction. (line 21) | |||
skipping to change at line 12134 | skipping to change at line 12218 | |||
* debug build, example: VPATH Builds. (line 48) | * debug build, example: VPATH Builds. (line 48) | |||
* debugging rules: Debugging Make Rules. | * debugging rules: Debugging Make Rules. | |||
(line 6) | (line 6) | |||
* default source, Libtool modules example: Default _SOURCES. (line 38) | * default source, Libtool modules example: Default _SOURCES. (line 38) | |||
* default verbosity for silent rules: Automake Silent Rules. | * default verbosity for silent rules: Automake Silent Rules. | |||
(line 92) | (line 92) | |||
* default _SOURCES: Default _SOURCES. (line 6) | * default _SOURCES: Default _SOURCES. (line 6) | |||
* definitions, conflicts: Extending. (line 14) | * definitions, conflicts: Extending. (line 14) | |||
* dejagnu: DejaGnu Tests. (line 19) | * dejagnu: DejaGnu Tests. (line 19) | |||
* dejagnu <1>: List of Automake options. | * dejagnu <1>: List of Automake options. | |||
(line 18) | (line 19) | |||
* depcomp: Dependencies. (line 22) | * depcomp: Auxiliary Programs. (line 40) | |||
* depcomp <1>: Dependencies. (line 22) | ||||
* dependencies and distributed files: Errors with distclean. | * dependencies and distributed files: Errors with distclean. | |||
(line 6) | (line 6) | |||
* Dependency tracking: Dependency Tracking. (line 6) | * Dependency tracking: Dependency Tracking. (line 6) | |||
* Dependency tracking <1>: Dependencies. (line 11) | * Dependency tracking <1>: Dependencies. (line 11) | |||
* Dependency tracking, disabling: Dependencies. (line 36) | * Dependency tracking, disabling: Dependencies. (line 36) | |||
* directory variables: Standard Directory Variables. | * directory variables: Standard Directory Variables. | |||
(line 6) | (line 6) | |||
* dirlist: Macro Search Path. (line 52) | * dirlist: Macro Search Path. (line 52) | |||
* Disabling dependency tracking: Dependencies. (line 37) | * Disabling dependency tracking: Dependencies. (line 37) | |||
* Disabling hard errors: Scripts-based Testsuites. | * Disabling hard errors: Scripts-based Testsuites. | |||
(line 32) | (line 32) | |||
* dist: Standard Targets. (line 35) | * dist: Standard Targets. (line 35) | |||
* dist <1>: Basics of Distribution. | * dist <1>: Basics of Distribution. | |||
(line 6) | (line 6) | |||
* dist-bzip2: The Types of Distributions. | * dist-bzip2: The Types of Distributions. | |||
(line 18) | (line 18) | |||
* dist-bzip2 <1>: List of Automake options. | * dist-bzip2 <1>: List of Automake options. | |||
(line 22) | (line 23) | |||
* dist-bzip2 <2>: List of Automake options. | * dist-bzip2 <2>: List of Automake options. | |||
(line 22) | (line 23) | |||
* dist-gzip: The Types of Distributions. | * dist-gzip: The Types of Distributions. | |||
(line 11) | (line 11) | |||
* dist-hook: The dist Hook. (line 6) | * dist-hook: The dist Hook. (line 6) | |||
* dist-hook <1>: Extending. (line 66) | * dist-hook <1>: Extending. (line 66) | |||
* dist-lzip: The Types of Distributions. | * dist-lzip: The Types of Distributions. | |||
(line 22) | (line 22) | |||
* dist-lzip <1>: List of Automake options. | * dist-lzip <1>: List of Automake options. | |||
(line 25) | (line 26) | |||
* dist-lzip <2>: List of Automake options. | * dist-lzip <2>: List of Automake options. | |||
(line 25) | (line 26) | |||
* dist-shar: The Types of Distributions. | * dist-shar: The Types of Distributions. | |||
(line 45) | (line 45) | |||
* dist-shar <1>: List of Automake options. | * dist-shar <1>: List of Automake options. | |||
(line 39) | (line 40) | |||
* dist-shar <2>: List of Automake options. | * dist-shar <2>: List of Automake options. | |||
(line 37) | (line 38) | |||
* dist-tarZ: The Types of Distributions. | * dist-tarZ: The Types of Distributions. | |||
(line 39) | (line 39) | |||
* dist-tarZ <1>: List of Automake options. | * dist-tarZ <1>: List of Automake options. | |||
(line 44) | (line 45) | |||
* dist-tarZ <2>: List of Automake options. | * dist-tarZ <2>: List of Automake options. | |||
(line 42) | (line 43) | |||
* dist-xz: The Types of Distributions. | * dist-xz: The Types of Distributions. | |||
(line 30) | (line 30) | |||
* dist-xz <1>: List of Automake options. | * dist-xz <1>: List of Automake options. | |||
(line 28) | (line 29) | |||
* dist-xz <2>: List of Automake options. | * dist-xz <2>: List of Automake options. | |||
(line 28) | (line 29) | |||
* dist-zip: The Types of Distributions. | * dist-zip: The Types of Distributions. | |||
(line 33) | (line 33) | |||
* dist-zip <1>: List of Automake options. | * dist-zip <1>: List of Automake options. | |||
(line 31) | (line 32) | |||
* dist-zip <2>: List of Automake options. | * dist-zip <2>: List of Automake options. | |||
(line 31) | (line 32) | |||
* dist-zstd: The Types of Distributions. | * dist-zstd: The Types of Distributions. | |||
(line 55) | (line 55) | |||
* dist-zstd <1>: List of Automake options. | * dist-zstd <1>: List of Automake options. | |||
(line 34) | (line 35) | |||
* dist-zstd <2>: List of Automake options. | * dist-zstd <2>: List of Automake options. | |||
(line 34) | (line 35) | |||
* distcheck: Creating amhello. (line 100) | * distcheck: Creating amhello. (line 100) | |||
* distcheck <1>: Checking the Distribution. | * distcheck <1>: Checking the Distribution. | |||
(line 6) | (line 6) | |||
* distcheck better than dist: Preparing Distributions. | * distcheck better than dist: Preparing Distributions. | |||
(line 10) | (line 10) | |||
* distcheck example: Creating amhello. (line 100) | * distcheck example: Creating amhello. (line 100) | |||
* distcheck-hook: Checking the Distribution. | * distcheck-hook: Checking the Distribution. | |||
(line 55) | (line 77) | |||
* distclean: Standard Targets. (line 29) | * distclean: Standard Targets. (line 29) | |||
* distclean <1>: Extending. (line 41) | * distclean <1>: Extending. (line 41) | |||
* distclean <2>: Errors with distclean. | * distclean <2>: Errors with distclean. | |||
(line 6) | (line 6) | |||
* distclean, diagnostic: Errors with distclean. | * distclean, diagnostic: Errors with distclean. | |||
(line 6) | (line 6) | |||
* distclean-local: Clean. (line 15) | * distclean-local: Clean. (line 15) | |||
* distclean-local <1>: Extending. (line 41) | * distclean-local <1>: Extending. (line 41) | |||
* distcleancheck: Checking the Distribution. | * distcleancheck: Checking the Distribution. | |||
(line 70) | (line 92) | |||
* distdir: Third-Party Makefiles. | * distdir: Third-Party Makefiles. | |||
(line 25) | (line 25) | |||
* Distinction between errors and failures in testsuites: Generalities about Test ing. | * Distinction between errors and failures in testsuites: Generalities about Test ing. | |||
(line 48) | (line 48) | |||
* Distributions, preparation: Preparing Distributions. | * Distributions, preparation: Preparing Distributions. | |||
(line 6) | (line 6) | |||
* distuninstallcheck: Checking the Distribution. | * distuninstallcheck: Checking the Distribution. | |||
(line 106) | (line 128) | |||
* dist_ and nobase_: Alternative. (line 29) | * dist_ and nobase_: Alternative. (line 28) | |||
* dist_ and notrans_: Man Pages. (line 63) | * dist_ and notrans_: Man Pages. (line 63) | |||
* DIST_SUBDIRS, explained: SUBDIRS vs DIST_SUBDIRS. | * DIST_SUBDIRS, explained: SUBDIRS vs DIST_SUBDIRS. | |||
(line 6) | (line 6) | |||
* dmalloc, support for: Public Macros. (line 122) | * dmalloc, support for: Public Macros. (line 122) | |||
* do-nothing Automake targets: Third-Party Makefiles. | ||||
(line 88) | ||||
* dvi: Texinfo. (line 25) | * dvi: Texinfo. (line 25) | |||
* dvi <1>: Extending. (line 41) | * dvi <1>: Checking the Distribution. | |||
(line 57) | ||||
* dvi <2>: Extending. (line 41) | ||||
* DVI output using Texinfo: Texinfo. (line 6) | * DVI output using Texinfo: Texinfo. (line 6) | |||
* dvi-local: Extending. (line 41) | * dvi-local: Extending. (line 41) | |||
* E-mail, bug reports: Introduction. (line 30) | * E-mail, bug reports: Introduction. (line 30) | |||
* EDITION Texinfo flag: Texinfo. (line 35) | * EDITION Texinfo flag: Texinfo. (line 35) | |||
* else: Usage of Conditionals. | * else: Usage of Conditionals. | |||
(line 36) | (line 36) | |||
* empty Automake targets: Third-Party Makefiles. | ||||
(line 88) | ||||
* Empty libraries: A Library. (line 48) | * Empty libraries: A Library. (line 48) | |||
* Empty libraries and $(LIBOBJS): LIBOBJS. (line 72) | * Empty libraries and $(LIBOBJS): LIBOBJS. (line 72) | |||
* empty _SOURCES: Default _SOURCES. (line 44) | * empty _SOURCES: Default _SOURCES. (line 44) | |||
* endif: Usage of Conditionals. | * endif: Usage of Conditionals. | |||
(line 36) | (line 36) | |||
* eps images: Checking the Distribution. | ||||
(line 60) | ||||
* Example conditional --enable-debug: Usage of Conditionals. | * Example conditional --enable-debug: Usage of Conditionals. | |||
(line 21) | (line 21) | |||
* Example conditional AC_CONFIG_FILES: Usage of Conditionals. | * Example conditional AC_CONFIG_FILES: Usage of Conditionals. | |||
(line 79) | (line 79) | |||
* Example Hello World: Hello World. (line 6) | * Example Hello World: Hello World. (line 6) | |||
* Example of recursive operation: General Operation. (line 58) | * Example of recursive operation: General Operation. (line 58) | |||
* Example of shared libraries: Libtool Libraries. (line 6) | * Example of shared libraries: Libtool Libraries. (line 6) | |||
* Example, EXTRA_PROGRAMS: Uniform. (line 36) | * Example, EXTRA_PROGRAMS: Uniform. (line 36) | |||
* Example, false and true: true. (line 6) | * Example, false and true: true. (line 6) | |||
* Example, mixed language: Mixing Fortran 77 With C and C++. | * Example, mixed language: Mixing Fortran 77 With C and C++. | |||
skipping to change at line 12280 | skipping to change at line 12373 | |||
* EXTRA_prog_SOURCES, defined: Conditional Sources. (line 18) | * EXTRA_prog_SOURCES, defined: Conditional Sources. (line 18) | |||
* false Example: true. (line 6) | * false Example: true. (line 6) | |||
* FCFLAGS and AM_FCFLAGS: Flag Variables Ordering. | * FCFLAGS and AM_FCFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* Features of the GNU Build System: Use Cases. (line 6) | * Features of the GNU Build System: Use Cases. (line 6) | |||
* FFLAGS and AM_FFLAGS: Flag Variables Ordering. | * FFLAGS and AM_FFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* file names, limitations on: Limitations on File Names. | * file names, limitations on: Limitations on File Names. | |||
(line 6) | (line 6) | |||
* filename-length-max=99: List of Automake options. | * filename-length-max=99: List of Automake options. | |||
(line 47) | (line 48) | |||
* Files distributed with Automake: automake Invocation. (line 39) | * Files distributed with Automake: automake Invocation. (line 39) | |||
* First line of Makefile.am: General Operation. (line 74) | * First line of Makefile.am: General Operation. (line 74) | |||
* Flag variables, ordering: Flag Variables Ordering. | * Flag variables, ordering: Flag Variables Ordering. | |||
(line 6) | (line 6) | |||
* Flag Variables, Ordering: Flag Variables Ordering. | * Flag Variables, Ordering: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* FLIBS, defined: Mixing Fortran 77 With C and C++. | * FLIBS, defined: Mixing Fortran 77 With C and C++. | |||
(line 21) | (line 21) | |||
* foreign: amhello's configure.ac Setup Explained. | * foreign: amhello's configure.ac Setup Explained. | |||
(line 38) | (line 38) | |||
* foreign <1>: List of Automake options. | * foreign <1>: List of Automake options. | |||
(line 9) | (line 9) | |||
* foreign strictness: Strictness. (line 10) | * foreign strictness: Strictness. (line 51) | |||
* Fortran 77 support: Fortran 77 Support. (line 6) | * Fortran 77 support: Fortran 77 Support. (line 6) | |||
* Fortran 77, mixing with C and C++: Mixing Fortran 77 With C and C++. | * Fortran 77, mixing with C and C++: Mixing Fortran 77 With C and C++. | |||
(line 6) | (line 6) | |||
* Fortran 77, Preprocessing: Preprocessing Fortran 77. | * Fortran 77, Preprocessing: Preprocessing Fortran 77. | |||
(line 6) | (line 6) | |||
* Fortran 9x support: Fortran 9x Support. (line 6) | * Fortran 9x support: Fortran 9x Support. (line 6) | |||
* GCJFLAGS and AM_GCJFLAGS: Flag Variables Ordering. | * GCJFLAGS and AM_GCJFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* generated files and CVS: CVS. (line 50) | * generated files and CVS: CVS. (line 50) | |||
* generated files, distributed: CVS. (line 9) | * generated files, distributed: CVS. (line 9) | |||
* Gettext support: gettext. (line 6) | * Gettext support: gettext. (line 6) | |||
* git-dist: General Operation. (line 12) | * git-dist: General Operation. (line 12) | |||
* git-dist, non-standard example: General Operation. (line 12) | * git-dist, non-standard example: General Operation. (line 12) | |||
* gnits: List of Automake options. | * gnits: List of Automake options. | |||
(line 9) | (line 9) | |||
* gnits strictness: Strictness. (line 10) | * gnits strictness: Strictness. (line 58) | |||
* gnu: List of Automake options. | * gnu: List of Automake options. | |||
(line 9) | (line 9) | |||
* GNU Build System, basics: Basic Installation. (line 6) | * GNU Build System, basics: Basic Installation. (line 6) | |||
* GNU Build System, features: Use Cases. (line 6) | * GNU Build System, features: Use Cases. (line 6) | |||
* GNU Build System, introduction: GNU Build System. (line 6) | * GNU Build System, introduction: GNU Build System. (line 6) | |||
* GNU Build System, use cases: Use Cases. (line 6) | * GNU Build System, use cases: Use Cases. (line 6) | |||
* GNU Coding Standards: GNU Build System. (line 29) | * GNU Coding Standards: GNU Build System. (line 29) | |||
* GNU Gettext support: gettext. (line 6) | * GNU Gettext support: gettext. (line 6) | |||
* GNU make extensions: General Operation. (line 20) | * GNU make extensions: General Operation. (line 20) | |||
* GNU Makefile standards: Introduction. (line 12) | * GNU Makefile standards: Introduction. (line 12) | |||
* gnu strictness: Strictness. (line 10) | * gnu strictness: Strictness. (line 18) | |||
* GNUmakefile including Makefile: Third-Party Makefiles. | * GNUmakefile including Makefile: Third-Party Makefiles. | |||
(line 111) | (line 114) | |||
* hard error: Generalities about Testing. | * hard error: Generalities about Testing. | |||
(line 48) | (line 48) | |||
* Header files in _SOURCES: Program Sources. (line 39) | * Header files in _SOURCES: Program Sources. (line 39) | |||
* HEADERS primary, defined: Headers. (line 6) | * HEADERS primary, defined: Headers. (line 6) | |||
* HEADERS, installation directories: Headers. (line 6) | * HEADERS, installation directories: Headers. (line 6) | |||
* Hello World example: Hello World. (line 6) | * Hello World example: Hello World. (line 6) | |||
* hook targets: Extending. (line 66) | * hook targets: Extending. (line 66) | |||
* HP-UX 10, lex problems: Public Macros. (line 94) | * HP-UX 10, lex problems: Public Macros. (line 94) | |||
* html: Texinfo. (line 25) | * html: Texinfo. (line 25) | |||
* html <1>: Extending. (line 41) | * html <1>: Extending. (line 41) | |||
* HTML output using Texinfo: Texinfo. (line 6) | * HTML output using Texinfo: Texinfo. (line 6) | |||
* html-local: Extending. (line 41) | * html-local: Extending. (line 41) | |||
* id: Tags. (line 43) | * id: Tags. (line 43) | |||
* if: Usage of Conditionals. | * if: Usage of Conditionals. | |||
(line 36) | (line 36) | |||
* include: Basics of Distribution. | * include: Basics of Distribution. | |||
(line 17) | (line 22) | |||
* include <1>: Include. (line 6) | * include <1>: Include. (line 6) | |||
* include, distribution: Basics of Distribution. | * include, distribution: Basics of Distribution. | |||
(line 17) | (line 22) | |||
* Including Makefile fragment: Include. (line 6) | * Including Makefile fragment: Include. (line 6) | |||
* indentation in Makefile.am: General Operation. (line 33) | * indentation in Makefile.am: General Operation. (line 33) | |||
* info: List of Automake options. | * info: List of Automake options. | |||
(line 96) | (line 97) | |||
* info <1>: Extending. (line 41) | * info <1>: Extending. (line 41) | |||
* info-in-builddir: List of Automake options. | * info-in-builddir: List of Automake options. | |||
(line 56) | (line 57) | |||
* info-local: Extending. (line 41) | * info-local: Extending. (line 41) | |||
* install: Standard Targets. (line 18) | * install: Standard Targets. (line 18) | |||
* install <1>: The Two Parts of Install. | * install <1>: The Two Parts of Install. | |||
(line 14) | (line 14) | |||
* install <2>: Extending. (line 41) | * install <2>: Extending. (line 41) | |||
* Install hook: Extending Installation. | * Install hook: Extending Installation. | |||
(line 15) | (line 15) | |||
* Install, two parts of: The Two Parts of Install. | * Install, two parts of: The Two Parts of Install. | |||
(line 14) | (line 14) | |||
* install-data: Two-Part Install. (line 16) | * install-data: Two-Part Install. (line 16) | |||
skipping to change at line 12383 | skipping to change at line 12476 | |||
* install-exec <2>: Extending. (line 41) | * install-exec <2>: Extending. (line 41) | |||
* install-exec-hook: Extending. (line 66) | * install-exec-hook: Extending. (line 66) | |||
* install-exec-local: Extending Installation. | * install-exec-local: Extending Installation. | |||
(line 9) | (line 9) | |||
* install-exec-local <1>: Extending. (line 41) | * install-exec-local <1>: Extending. (line 41) | |||
* install-html: Texinfo. (line 25) | * install-html: Texinfo. (line 25) | |||
* install-html <1>: Extending. (line 41) | * install-html <1>: Extending. (line 41) | |||
* install-html-local: Extending. (line 41) | * install-html-local: Extending. (line 41) | |||
* install-info: Texinfo. (line 85) | * install-info: Texinfo. (line 85) | |||
* install-info <1>: List of Automake options. | * install-info <1>: List of Automake options. | |||
(line 96) | (line 97) | |||
* install-info <2>: Extending. (line 41) | * install-info <2>: Extending. (line 41) | |||
* install-info target: Texinfo. (line 85) | * install-info target: Texinfo. (line 85) | |||
* install-info-local: Extending. (line 41) | * install-info-local: Extending. (line 41) | |||
* install-man: Man Pages. (line 32) | * install-man: Man Pages. (line 32) | |||
* install-man <1>: List of Automake options. | * install-man <1>: List of Automake options. | |||
(line 102) | (line 103) | |||
* install-man target: Man Pages. (line 32) | * install-man target: Man Pages. (line 32) | |||
* install-pdf: Texinfo. (line 25) | * install-pdf: Texinfo. (line 25) | |||
* install-pdf <1>: Extending. (line 41) | * install-pdf <1>: Extending. (line 41) | |||
* install-pdf-local: Extending. (line 41) | * install-pdf-local: Extending. (line 41) | |||
* install-ps: Texinfo. (line 25) | * install-ps: Texinfo. (line 25) | |||
* install-ps <1>: Extending. (line 41) | * install-ps <1>: Extending. (line 41) | |||
* install-ps-local: Extending. (line 41) | * install-ps-local: Extending. (line 41) | |||
* install-sh: Auxiliary Programs. (line 46) | ||||
* install-strip: Standard Targets. (line 21) | * install-strip: Standard Targets. (line 21) | |||
* install-strip <1>: Install Rules for the User. | * install-strip <1>: Install Rules for the User. | |||
(line 7) | (line 7) | |||
* Installation directories, extending list: Uniform. (line 56) | * Installation directories, extending list: Uniform. (line 56) | |||
* Installation support: Install. (line 6) | * Installation support: Install. (line 6) | |||
* Installation, basics: Basic Installation. (line 6) | * Installation, basics: Basic Installation. (line 6) | |||
* installcheck: Standard Targets. (line 33) | * installcheck: Standard Targets. (line 33) | |||
* installcheck <1>: Extending. (line 41) | * installcheck <1>: Extending. (line 41) | |||
* installcheck-local: Extending. (line 41) | * installcheck-local: Extending. (line 41) | |||
* installdirs: Install Rules for the User. | * installdirs: Install Rules for the User. | |||
skipping to change at line 12466 | skipping to change at line 12560 | |||
(line 6) | (line 6) | |||
* LISP primary, defined: Emacs Lisp. (line 6) | * LISP primary, defined: Emacs Lisp. (line 6) | |||
* LN_S example: Extending. (line 86) | * LN_S example: Extending. (line 86) | |||
* local targets: Extending. (line 37) | * local targets: Extending. (line 37) | |||
* LTALLOCA, special handling: LTLIBOBJS. (line 6) | * LTALLOCA, special handling: LTLIBOBJS. (line 6) | |||
* LTLIBOBJS, special handling: LTLIBOBJS. (line 6) | * LTLIBOBJS, special handling: LTLIBOBJS. (line 6) | |||
* LTLIBRARIES primary, defined: Libtool Libraries. (line 6) | * LTLIBRARIES primary, defined: Libtool Libraries. (line 6) | |||
* ltmain.sh not found: Error required file ltmain.sh not found . | * ltmain.sh not found: Error required file ltmain.sh not found . | |||
(line 6) | (line 6) | |||
* m4_include, distribution: Basics of Distribution. | * m4_include, distribution: Basics of Distribution. | |||
(line 17) | (line 22) | |||
* Macro search path: Macro Search Path. (line 6) | * Macro search path: Macro Search Path. (line 6) | |||
* macro serial numbers: Serials. (line 6) | * macro serial numbers: Serials. (line 6) | |||
* Macros Automake recognizes: Optional. (line 6) | * Macros Automake recognizes: Optional. (line 6) | |||
* maintainer-clean-local: Clean. (line 15) | * maintainer-clean-local: Clean. (line 15) | |||
* make check: Tests. (line 6) | * make check: Tests. (line 6) | |||
* make clean support: Clean. (line 6) | * make clean support: Clean. (line 6) | |||
* make dist: Basics of Distribution. | * make dist: Basics of Distribution. | |||
(line 6) | (line 6) | |||
* make distcheck: Checking the Distribution. | * make distcheck: Checking the Distribution. | |||
(line 6) | (line 6) | |||
* make distclean, diagnostic: Errors with distclean. | * make distclean, diagnostic: Errors with distclean. | |||
(line 6) | (line 6) | |||
* make distcleancheck: Checking the Distribution. | * make distcleancheck: Checking the Distribution. | |||
(line 70) | (line 92) | |||
* make distuninstallcheck: Checking the Distribution. | * make distuninstallcheck: Checking the Distribution. | |||
(line 106) | (line 128) | |||
* make install support: Install. (line 6) | * make install support: Install. (line 6) | |||
* make installcheck, testing --help and --version: List of Automake options. | * make installcheck, testing --help and --version: List of Automake options. | |||
(line 132) | (line 133) | |||
* Make rules, overriding: General Operation. (line 46) | * Make rules, overriding: General Operation. (line 46) | |||
* Make targets, overriding: General Operation. (line 46) | * Make targets, overriding: General Operation. (line 46) | |||
* Makefile fragment, including: Include. (line 6) | * Makefile fragment, including: Include. (line 6) | |||
* Makefile.am, first line: General Operation. (line 74) | * Makefile.am, first line: General Operation. (line 74) | |||
* Makefile.am, Hello World: amhello's Makefile.am Setup Explained. | * Makefile.am, Hello World: amhello's Makefile.am Setup Explained. | |||
(line 6) | (line 6) | |||
* Man page renaming, avoiding: Man Pages. (line 54) | * Man page renaming, avoiding: Man Pages. (line 54) | |||
* MANS primary, defined: Man Pages. (line 6) | * MANS primary, defined: Man Pages. (line 6) | |||
* many outputs, rules with: Multiple Outputs. (line 6) | * many outputs, rules with: Multiple Outputs. (line 6) | |||
* mdate-sh: Texinfo. (line 35) | * mdate-sh: Auxiliary Programs. (line 50) | |||
* mdate-sh <1>: Texinfo. (line 35) | ||||
* MinGW cross-compilation example: Cross-Compilation. (line 25) | * MinGW cross-compilation example: Cross-Compilation. (line 25) | |||
* missing program: Auxiliary Programs. (line 54) | ||||
* missing, purpose: maintainer-mode. (line 9) | * missing, purpose: maintainer-mode. (line 9) | |||
* Mixed language example: Mixing Fortran 77 With C and C++. | * Mixed language example: Mixing Fortran 77 With C and C++. | |||
(line 34) | (line 34) | |||
* Mixing Fortran 77 with C and C++: Mixing Fortran 77 With C and C++. | * Mixing Fortran 77 with C and C++: Mixing Fortran 77 With C and C++. | |||
(line 6) | (line 6) | |||
* Mixing Fortran 77 with C and/or C++: Mixing Fortran 77 With C and C++. | * Mixing Fortran 77 with C and/or C++: Mixing Fortran 77 With C and C++. | |||
(line 6) | (line 6) | |||
* mkdir -p, macro check: Obsolete Macros. (line 14) | * mkdir -p, macro check: Obsolete Macros. (line 14) | |||
* mkinstalldirs: Auxiliary Programs. (line 60) | ||||
* modules, libtool: Libtool Modules. (line 6) | * modules, libtool: Libtool Modules. (line 6) | |||
* mostlyclean: Extending. (line 41) | * mostlyclean: Extending. (line 41) | |||
* mostlyclean-local: Clean. (line 15) | * mostlyclean-local: Clean. (line 15) | |||
* mostlyclean-local <1>: Extending. (line 41) | * mostlyclean-local <1>: Extending. (line 41) | |||
* multiple configurations, example: VPATH Builds. (line 48) | * multiple configurations, example: VPATH Builds. (line 48) | |||
* Multiple configure.ac files: automake Invocation. (line 6) | * Multiple configure.ac files: automake Invocation. (line 6) | |||
* Multiple lex lexers: Yacc and Lex. (line 68) | * Multiple lex lexers: Yacc and Lex. (line 68) | |||
* multiple outputs, rules with: Multiple Outputs. (line 6) | * multiple outputs, rules with: Multiple Outputs. (line 6) | |||
* Multiple yacc parsers: Yacc and Lex. (line 68) | * Multiple yacc parsers: Yacc and Lex. (line 68) | |||
* Nested packages: Nested Packages. (line 6) | * Nested packages: Nested Packages. (line 6) | |||
* Nesting packages: Subpackages. (line 6) | * Nesting packages: Subpackages. (line 6) | |||
* no-define: Public Macros. (line 54) | * no-define: Public Macros. (line 54) | |||
* no-define <1>: List of Automake options. | * no-define <1>: List of Automake options. | |||
(line 61) | (line 62) | |||
* no-dependencies: Dependencies. (line 34) | * no-dependencies: Dependencies. (line 34) | |||
* no-dependencies <1>: List of Automake options. | * no-dependencies <1>: List of Automake options. | |||
(line 69) | (line 70) | |||
* no-dist: List of Automake options. | * no-dist: List of Automake options. | |||
(line 76) | (line 77) | |||
* no-dist-gzip: List of Automake options. | * no-dist-gzip: List of Automake options. | |||
(line 80) | (line 81) | |||
* no-dist-gzip <1>: List of Automake options. | * no-dist-gzip <1>: List of Automake options. | |||
(line 80) | (line 81) | |||
* no-exeext: List of Automake options. | * no-exeext: List of Automake options. | |||
(line 83) | (line 84) | |||
* no-installinfo: Texinfo. (line 85) | * no-installinfo: Texinfo. (line 85) | |||
* no-installinfo <1>: List of Automake options. | * no-installinfo <1>: List of Automake options. | |||
(line 93) | (line 94) | |||
* no-installinfo option: Texinfo. (line 85) | * no-installinfo option: Texinfo. (line 85) | |||
* no-installman: Man Pages. (line 32) | * no-installman: Man Pages. (line 32) | |||
* no-installman <1>: List of Automake options. | * no-installman <1>: List of Automake options. | |||
(line 99) | (line 100) | |||
* no-installman option: Man Pages. (line 32) | * no-installman option: Man Pages. (line 32) | |||
* no-op Automake targets: Third-Party Makefiles. | ||||
(line 88) | ||||
* no-texinfo.tex: List of Automake options. | * no-texinfo.tex: List of Automake options. | |||
(line 109) | (line 110) | |||
* nobase_ and dist_ or nodist_: Alternative. (line 29) | * nobase_ and dist_ or nodist_: Alternative. (line 28) | |||
* nobase_ prefix: Alternative. (line 23) | * nobase_ prefix: Alternative. (line 22) | |||
* nodist_ and nobase_: Alternative. (line 29) | * nodist_ and nobase_: Alternative. (line 28) | |||
* nodist_ and notrans_: Man Pages. (line 63) | * nodist_ and notrans_: Man Pages. (line 63) | |||
* noinst_ primary prefix, definition: Uniform. (line 90) | * noinst_ primary prefix, definition: Uniform. (line 90) | |||
* Non-GNU packages: Strictness. (line 6) | * Non-GNU packages: Strictness. (line 6) | |||
* Non-standard targets: General Operation. (line 12) | * Non-standard targets: General Operation. (line 12) | |||
* nostdinc: List of Automake options. | * nostdinc: List of Automake options. | |||
(line 105) | (line 106) | |||
* notrans_ and dist_ or nodist_: Man Pages. (line 63) | * notrans_ and dist_ or nodist_: Man Pages. (line 63) | |||
* notrans_ prefix: Man Pages. (line 54) | * notrans_ prefix: Man Pages. (line 54) | |||
* OBJCFLAGS and AM_OBJCFLAGS: Flag Variables Ordering. | * OBJCFLAGS and AM_OBJCFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* OBJCXXFLAGS and AM_OBJCXXFLAGS: Flag Variables Ordering. | * OBJCXXFLAGS and AM_OBJCXXFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* Objective C support: Objective C Support. (line 6) | * Objective C support: Objective C Support. (line 6) | |||
* Objective C++ support: Objective C++ Support. | * Objective C++ support: Objective C++ Support. | |||
(line 6) | (line 6) | |||
* Objects in subdirectory: Program and Library Variables. | * Objects in subdirectory: Program and Library Variables. | |||
(line 51) | (line 51) | |||
* obsolete macros: Obsolete Macros. (line 6) | * obsolete macros: Obsolete Macros. (line 6) | |||
* optimized build, example: VPATH Builds. (line 48) | * optimized build, example: VPATH Builds. (line 48) | |||
* Option, --warnings=CATEGORY: List of Automake options. | * Option, --warnings=CATEGORY: List of Automake options. | |||
(line 216) | (line 217) | |||
* Option, -WCATEGORY: List of Automake options. | * Option, -WCATEGORY: List of Automake options. | |||
(line 216) | (line 217) | |||
* Option, check-news: List of Automake options. | * Option, check-news: List of Automake options. | |||
(line 14) | (line 15) | |||
* Option, dejagnu: List of Automake options. | * Option, dejagnu: List of Automake options. | |||
(line 18) | (line 19) | |||
* Option, dist-bzip2: List of Automake options. | * Option, dist-bzip2: List of Automake options. | |||
(line 22) | (line 23) | |||
* Option, dist-lzip: List of Automake options. | * Option, dist-lzip: List of Automake options. | |||
(line 25) | (line 26) | |||
* Option, dist-shar: List of Automake options. | * Option, dist-shar: List of Automake options. | |||
(line 37) | (line 38) | |||
* Option, dist-tarZ: List of Automake options. | * Option, dist-tarZ: List of Automake options. | |||
(line 42) | (line 43) | |||
* Option, dist-xz: List of Automake options. | * Option, dist-xz: List of Automake options. | |||
(line 28) | (line 29) | |||
* Option, dist-zip: List of Automake options. | * Option, dist-zip: List of Automake options. | |||
(line 31) | (line 32) | |||
* Option, dist-zstd: List of Automake options. | * Option, dist-zstd: List of Automake options. | |||
(line 34) | (line 35) | |||
* Option, filename-length-max=99: List of Automake options. | * Option, filename-length-max=99: List of Automake options. | |||
(line 47) | (line 48) | |||
* Option, foreign: List of Automake options. | * Option, foreign: List of Automake options. | |||
(line 9) | (line 9) | |||
* Option, gnits: List of Automake options. | * Option, gnits: List of Automake options. | |||
(line 9) | (line 9) | |||
* Option, gnu: List of Automake options. | * Option, gnu: List of Automake options. | |||
(line 9) | (line 9) | |||
* Option, info-in-builddir: List of Automake options. | * Option, info-in-builddir: List of Automake options. | |||
(line 56) | (line 57) | |||
* Option, no-define: List of Automake options. | * Option, no-define: List of Automake options. | |||
(line 61) | (line 62) | |||
* Option, no-dependencies: List of Automake options. | * Option, no-dependencies: List of Automake options. | |||
(line 69) | (line 70) | |||
* Option, no-dist: List of Automake options. | * Option, no-dist: List of Automake options. | |||
(line 76) | (line 77) | |||
* Option, no-dist-gzip: List of Automake options. | * Option, no-dist-gzip: List of Automake options. | |||
(line 80) | (line 81) | |||
* Option, no-exeext: List of Automake options. | * Option, no-exeext: List of Automake options. | |||
(line 83) | (line 84) | |||
* Option, no-installinfo: Texinfo. (line 85) | * Option, no-installinfo: Texinfo. (line 85) | |||
* Option, no-installinfo <1>: List of Automake options. | * Option, no-installinfo <1>: List of Automake options. | |||
(line 93) | (line 94) | |||
* Option, no-installman: Man Pages. (line 32) | * Option, no-installman: Man Pages. (line 32) | |||
* Option, no-installman <1>: List of Automake options. | * Option, no-installman <1>: List of Automake options. | |||
(line 99) | (line 100) | |||
* Option, no-texinfo.tex: List of Automake options. | * Option, no-texinfo.tex: List of Automake options. | |||
(line 109) | (line 110) | |||
* Option, nostdinc: List of Automake options. | * Option, nostdinc: List of Automake options. | |||
(line 105) | (line 106) | |||
* Option, parallel-tests: List of Automake options. | * Option, parallel-tests: List of Automake options. | |||
(line 117) | (line 118) | |||
* Option, readme-alpha: List of Automake options. | * Option, readme-alpha: List of Automake options. | |||
(line 123) | (line 124) | |||
* Option, serial-tests: List of Automake options. | * Option, serial-tests: List of Automake options. | |||
(line 113) | (line 114) | |||
* Option, tar-pax: List of Automake options. | * Option, tar-pax: List of Automake options. | |||
(line 162) | (line 163) | |||
* Option, tar-ustar: List of Automake options. | * Option, tar-ustar: List of Automake options. | |||
(line 162) | (line 163) | |||
* Option, tar-v7: List of Automake options. | * Option, tar-v7: List of Automake options. | |||
(line 162) | (line 163) | |||
* Option, VERSION: List of Automake options. | * Option, VERSION: List of Automake options. | |||
(line 211) | (line 212) | |||
* Option, warnings: List of Automake options. | * Option, warnings: List of Automake options. | |||
(line 216) | (line 217) | |||
* Options, aclocal: aclocal Options. (line 6) | * Options, aclocal: aclocal Options. (line 6) | |||
* Options, automake: automake Invocation. (line 37) | * Options, automake: automake Invocation. (line 37) | |||
* Options, std-options: List of Automake options. | * Options, std-options: List of Automake options. | |||
(line 132) | (line 133) | |||
* Options, subdir-objects: List of Automake options. | * Options, subdir-objects: List of Automake options. | |||
(line 153) | (line 154) | |||
* Ordering flag variables: Flag Variables Ordering. | * Ordering flag variables: Flag Variables Ordering. | |||
(line 6) | (line 6) | |||
* Overriding make rules: General Operation. (line 46) | * Overriding make rules: General Operation. (line 46) | |||
* Overriding make targets: General Operation. (line 46) | * Overriding make targets: General Operation. (line 46) | |||
* Overriding make variables: General Operation. (line 51) | * Overriding make variables: General Operation. (line 51) | |||
* overriding rules: Extending. (line 26) | * overriding rules: Extending. (line 26) | |||
* overriding semantics: Extending. (line 26) | * overriding semantics: Extending. (line 26) | |||
* PACKAGE, directory: Uniform. (line 19) | * PACKAGE, directory: Uniform. (line 19) | |||
* PACKAGE, prevent definition: Public Macros. (line 54) | * PACKAGE, prevent definition: Public Macros. (line 54) | |||
* Packages, nested: Nested Packages. (line 6) | * Packages, nested: Nested Packages. (line 6) | |||
* Packages, preparation: Preparing Distributions. | * Packages, preparation: Preparing Distributions. | |||
(line 6) | (line 6) | |||
* Parallel build trees: VPATH Builds. (line 6) | * Parallel build trees: VPATH Builds. (line 6) | |||
* parallel-tests: List of Automake options. | * parallel-tests: List of Automake options. | |||
(line 117) | (line 118) | |||
* Path stripping, avoiding: Alternative. (line 23) | * Path stripping, avoiding: Alternative. (line 22) | |||
* pax format: List of Automake options. | * pax format: List of Automake options. | |||
(line 162) | (line 163) | |||
* pdf: Texinfo. (line 25) | * pdf: Texinfo. (line 25) | |||
* pdf <1>: Extending. (line 41) | * pdf <1>: Extending. (line 41) | |||
* PDF output using Texinfo: Texinfo. (line 6) | * PDF output using Texinfo: Texinfo. (line 6) | |||
* pdf-local: Extending. (line 41) | * pdf-local: Extending. (line 41) | |||
* Per-object flags, emulated: Per-Object Flags. (line 6) | * Per-object flags, emulated: Per-Object Flags. (line 6) | |||
* per-target compilation flags, defined: Program and Library Variables. | * per-target compilation flags, defined: Program and Library Variables. | |||
(line 182) | (line 182) | |||
* pkgdatadir, defined: Uniform. (line 19) | * pkgdatadir, defined: Uniform. (line 19) | |||
* pkgincludedir, defined: Uniform. (line 19) | * pkgincludedir, defined: Uniform. (line 19) | |||
* pkglibdir, defined: Uniform. (line 19) | * pkglibdir, defined: Uniform. (line 19) | |||
skipping to change at line 12690 | skipping to change at line 12789 | |||
* Primary variable, SOURCES: Program Sources. (line 32) | * Primary variable, SOURCES: Program Sources. (line 32) | |||
* Primary variable, TEXINFOS: Texinfo. (line 6) | * Primary variable, TEXINFOS: Texinfo. (line 6) | |||
* PROGRAMS primary variable: Uniform. (line 11) | * PROGRAMS primary variable: Uniform. (line 11) | |||
* Programs, auxiliary: Auxiliary Programs. (line 6) | * Programs, auxiliary: Auxiliary Programs. (line 6) | |||
* PROGRAMS, bindir: Program Sources. (line 6) | * PROGRAMS, bindir: Program Sources. (line 6) | |||
* Programs, conditional: Conditional Programs. | * Programs, conditional: Conditional Programs. | |||
(line 6) | (line 6) | |||
* Programs, renaming during installation: Renaming. (line 6) | * Programs, renaming during installation: Renaming. (line 6) | |||
* prog_LDADD, defined: Linking. (line 12) | * prog_LDADD, defined: Linking. (line 12) | |||
* Proxy Makefile for third-party packages: Third-Party Makefiles. | * Proxy Makefile for third-party packages: Third-Party Makefiles. | |||
(line 128) | (line 131) | |||
* ps: Texinfo. (line 25) | * ps: Texinfo. (line 25) | |||
* ps <1>: Extending. (line 41) | * ps <1>: Extending. (line 41) | |||
* PS output using Texinfo: Texinfo. (line 6) | * PS output using Texinfo: Texinfo. (line 6) | |||
* ps-local: Extending. (line 41) | * ps-local: Extending. (line 41) | |||
* py-compile: Auxiliary Programs. (line 70) | ||||
* PYTHON primary, defined: Python. (line 6) | * PYTHON primary, defined: Python. (line 6) | |||
* Ratfor programs: Preprocessing Fortran 77. | * Ratfor programs: Preprocessing Fortran 77. | |||
(line 6) | (line 6) | |||
* read-only source tree: VPATH Builds. (line 91) | * read-only source tree: VPATH Builds. (line 91) | |||
* readme-alpha: List of Automake options. | * readme-alpha: List of Automake options. | |||
(line 123) | (line 124) | |||
* README-alpha: Gnits. (line 42) | * README-alpha: Strictness. (line 78) | |||
* rebuild rules: Rebuilding. (line 6) | * rebuild rules: Rebuilding. (line 6) | |||
* rebuild rules <1>: CVS. (line 9) | * rebuild rules <1>: CVS. (line 9) | |||
* recheck: Parallel Test Harness. | * recheck: Parallel Test Harness. | |||
(line 130) | (line 130) | |||
* Recognized macros by Automake: Optional. (line 6) | * Recognized macros by Automake: Optional. (line 6) | |||
* Recursive operation of Automake: General Operation. (line 58) | * Recursive operation of Automake: General Operation. (line 58) | |||
* recursive targets and third-party Makefiles: Third-Party Makefiles. | * recursive targets and third-party Makefiles: Third-Party Makefiles. | |||
(line 15) | (line 15) | |||
* Register test case result: Log files generation and test results r ecording. | * Register test case result: Log files generation and test results r ecording. | |||
(line 24) | (line 24) | |||
skipping to change at line 12742 | skipping to change at line 12842 | |||
(line 6) | (line 6) | |||
* rules, overriding: Extending. (line 26) | * rules, overriding: Extending. (line 26) | |||
* Scanning configure.ac: configure. (line 6) | * Scanning configure.ac: configure. (line 6) | |||
* SCRIPTS primary, defined: Scripts. (line 6) | * SCRIPTS primary, defined: Scripts. (line 6) | |||
* SCRIPTS, installation directories: Scripts. (line 18) | * SCRIPTS, installation directories: Scripts. (line 18) | |||
* Selecting the linker automatically: How the Linker is Chosen. | * Selecting the linker automatically: How the Linker is Chosen. | |||
(line 6) | (line 6) | |||
* serial number and --install: aclocal Options. (line 42) | * serial number and --install: aclocal Options. (line 42) | |||
* serial numbers in macros: Serials. (line 6) | * serial numbers in macros: Serials. (line 6) | |||
* serial-tests: List of Automake options. | * serial-tests: List of Automake options. | |||
(line 113) | (line 114) | |||
* serial-tests, Using: Serial Test Harness. (line 6) | * serial-tests, Using: Serial Test Harness. (line 6) | |||
* Shared libraries, support for: A Shared Library. (line 6) | * Shared libraries, support for: A Shared Library. (line 6) | |||
* Silencing make: Silencing Make. (line 6) | * Silencing make: Silencing Make. (line 6) | |||
* Silent make: Silencing Make. (line 6) | * Silent make: Silencing Make. (line 6) | |||
* Silent make rules: Silencing Make. (line 6) | * Silent make rules: Silencing Make. (line 6) | |||
* Silent rules: Silencing Make. (line 6) | * Silent rules: Silencing Make. (line 6) | |||
* silent rules and libtool: Automake Silent Rules. | * silent rules and libtool: Automake Silent Rules. | |||
(line 59) | (line 59) | |||
* site.exp: DejaGnu Tests. (line 26) | * site.exp: DejaGnu Tests. (line 26) | |||
* source tree and build tree: VPATH Builds. (line 6) | * source tree and build tree: VPATH Builds. (line 6) | |||
* source tree, read-only: VPATH Builds. (line 91) | * source tree, read-only: VPATH Builds. (line 91) | |||
* SOURCES primary, defined: Program Sources. (line 32) | * SOURCES primary, defined: Program Sources. (line 32) | |||
* Special Automake comment: General Operation. (line 68) | * Special Automake comment: General Operation. (line 68) | |||
* Staged installation: DESTDIR. (line 14) | * Staged installation: DESTDIR. (line 14) | |||
* std-options: List of Automake options. | * std-options: List of Automake options. | |||
(line 132) | (line 133) | |||
* Strictness, command line: automake Invocation. (line 37) | * Strictness, command line: automake Invocation. (line 37) | |||
* Strictness, defined: Strictness. (line 10) | * Strictness, defined: Strictness. (line 10) | |||
* Strictness, foreign: Strictness. (line 10) | * Strictness, foreign: Strictness. (line 51) | |||
* Strictness, gnits: Strictness. (line 10) | * Strictness, gnits: Strictness. (line 58) | |||
* Strictness, gnu: Strictness. (line 10) | * Strictness, gnu: Strictness. (line 18) | |||
* su, before make install: Basic Installation. (line 49) | * su, before make install: Basic Installation. (line 49) | |||
* subdir-objects: List of Automake options. | * subdir-objects: List of Automake options. | |||
(line 153) | (line 154) | |||
* Subdirectories, building conditionally: Conditional Subdirectories. | * Subdirectories, building conditionally: Conditional Subdirectories. | |||
(line 6) | (line 6) | |||
* Subdirectories, configured conditionally: Unconfigured Subdirectories. | * Subdirectories, configured conditionally: Unconfigured Subdirectories. | |||
(line 6) | (line 6) | |||
* Subdirectories, not distributed: Unconfigured Subdirectories. | * Subdirectories, not distributed: Unconfigured Subdirectories. | |||
(line 55) | (line 55) | |||
* Subdirectory, objects in: Program and Library Variables. | * Subdirectory, objects in: Program and Library Variables. | |||
(line 51) | (line 51) | |||
* SUBDIRS and AC_SUBST: Subdirectories with AC_SUBST. | * SUBDIRS and AC_SUBST: Subdirectories with AC_SUBST. | |||
(line 6) | (line 6) | |||
skipping to change at line 12802 | skipping to change at line 12902 | |||
(line 6) | (line 6) | |||
* Support for Objective C: Objective C Support. (line 6) | * Support for Objective C: Objective C Support. (line 6) | |||
* Support for Objective C++: Objective C++ Support. | * Support for Objective C++: Objective C++ Support. | |||
(line 6) | (line 6) | |||
* Support for Unified Parallel C: Unified Parallel C Support. | * Support for Unified Parallel C: Unified Parallel C Support. | |||
(line 6) | (line 6) | |||
* Support for Vala: Vala Support. (line 6) | * Support for Vala: Vala Support. (line 6) | |||
* tags: Tags. (line 9) | * tags: Tags. (line 9) | |||
* TAGS support: Tags. (line 6) | * TAGS support: Tags. (line 6) | |||
* tar formats: List of Automake options. | * tar formats: List of Automake options. | |||
(line 162) | (line 163) | |||
* tar-pax: List of Automake options. | * tar-pax: List of Automake options. | |||
(line 162) | (line 163) | |||
* tar-ustar: List of Automake options. | * tar-ustar: List of Automake options. | |||
(line 162) | (line 163) | |||
* tar-v7: List of Automake options. | * tar-v7: List of Automake options. | |||
(line 162) | (line 163) | |||
* Target, install-info: Texinfo. (line 85) | * Target, install-info: Texinfo. (line 85) | |||
* Target, install-man: Man Pages. (line 32) | * Target, install-man: Man Pages. (line 32) | |||
* targets, making into no-op: Third-Party Makefiles. | ||||
(line 88) | ||||
* test case: Generalities about Testing. | * test case: Generalities about Testing. | |||
(line 11) | (line 11) | |||
* Test case result, registering: Log files generation and test results r ecording. | * Test case result, registering: Log files generation and test results r ecording. | |||
(line 24) | (line 24) | |||
* test failure: Generalities about Testing. | * test failure: Generalities about Testing. | |||
(line 25) | (line 25) | |||
* test harness: Generalities about Testing. | * test harness: Generalities about Testing. | |||
(line 18) | (line 18) | |||
* test metadata: Parallel Test Harness. | * test metadata: Parallel Test Harness. | |||
(line 12) | (line 12) | |||
* test pass: Generalities about Testing. | * test pass: Generalities about Testing. | |||
(line 25) | (line 25) | |||
* Test result, registering: Log files generation and test results r ecording. | * Test result, registering: Log files generation and test results r ecording. | |||
(line 24) | (line 24) | |||
* test skip: Generalities about Testing. | * test skip: Generalities about Testing. | |||
(line 29) | (line 29) | |||
* Test suites: Tests. (line 6) | * Test suites: Tests. (line 6) | |||
* test-driver: Auxiliary Programs. (line 73) | ||||
* Tests, expected failure: Scripts-based Testsuites. | * Tests, expected failure: Scripts-based Testsuites. | |||
(line 32) | (line 32) | |||
* testsuite harness: Generalities about Testing. | * testsuite harness: Generalities about Testing. | |||
(line 18) | (line 18) | |||
* Testsuite progress on console: Scripts-based Testsuites. | * Testsuite progress on console: Scripts-based Testsuites. | |||
(line 45) | (line 45) | |||
* Texinfo flag, EDITION: Texinfo. (line 35) | * Texinfo flag, EDITION: Texinfo. (line 35) | |||
* Texinfo flag, UPDATED: Texinfo. (line 35) | * Texinfo flag, UPDATED: Texinfo. (line 35) | |||
* Texinfo flag, UPDATED-MONTH: Texinfo. (line 35) | * Texinfo flag, UPDATED-MONTH: Texinfo. (line 35) | |||
* Texinfo flag, VERSION: Texinfo. (line 35) | * Texinfo flag, VERSION: Texinfo. (line 35) | |||
* texinfo.tex: Texinfo. (line 70) | * texinfo.tex: Auxiliary Programs. (line 77) | |||
* texinfo.tex <1>: Texinfo. (line 70) | ||||
* TEXINFOS primary, defined: Texinfo. (line 6) | * TEXINFOS primary, defined: Texinfo. (line 6) | |||
* third-party files and CVS: CVS. (line 168) | * third-party files and CVS: CVS. (line 168) | |||
* Third-party packages, interfacing with: Third-Party Makefiles. | * Third-party packages, interfacing with: Third-Party Makefiles. | |||
(line 6) | (line 6) | |||
* timestamps and CVS: CVS. (line 29) | * timestamps and CVS: CVS. (line 29) | |||
* Transforming program names: Renaming. (line 6) | * Transforming program names: Renaming. (line 6) | |||
* trees, source vs. build: VPATH Builds. (line 6) | * trees, source vs. build: VPATH Builds. (line 6) | |||
* true Example: true. (line 6) | * true Example: true. (line 6) | |||
* underquoted AC_DEFUN: Extending aclocal. (line 36) | * underquoted AC_DEFUN: Extending aclocal. (line 36) | |||
* unexpected pass: Generalities about Testing. | * unexpected pass: Generalities about Testing. | |||
skipping to change at line 12872 | skipping to change at line 12976 | |||
(line 154) | (line 154) | |||
* Unpacking: Basic Installation. (line 27) | * Unpacking: Basic Installation. (line 27) | |||
* UPCFLAGS and AM_UPCFLAGS: Flag Variables Ordering. | * UPCFLAGS and AM_UPCFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* UPDATED Texinfo flag: Texinfo. (line 35) | * UPDATED Texinfo flag: Texinfo. (line 35) | |||
* UPDATED-MONTH Texinfo flag: Texinfo. (line 35) | * UPDATED-MONTH Texinfo flag: Texinfo. (line 35) | |||
* Use Cases for the GNU Build System: Use Cases. (line 6) | * Use Cases for the GNU Build System: Use Cases. (line 6) | |||
* user variables: User Variables. (line 6) | * user variables: User Variables. (line 6) | |||
* Using aclocal: configure. (line 6) | * Using aclocal: configure. (line 6) | |||
* ustar format: List of Automake options. | * ustar format: List of Automake options. | |||
(line 162) | (line 163) | |||
* v7 tar format: List of Automake options. | * v7 tar format: List of Automake options. | |||
(line 162) | (line 163) | |||
* Vala Support: Vala Support. (line 6) | * Vala Support: Vala Support. (line 6) | |||
* variables, conflicting: Extending. (line 14) | * variables, conflicting: Extending. (line 14) | |||
* Variables, overriding: General Operation. (line 51) | * Variables, overriding: General Operation. (line 51) | |||
* variables, reserved for the user: User Variables. (line 6) | * variables, reserved for the user: User Variables. (line 6) | |||
* VERSION Texinfo flag: Texinfo. (line 35) | * VERSION Texinfo flag: Texinfo. (line 35) | |||
* VERSION, prevent definition: Public Macros. (line 54) | * VERSION, prevent definition: Public Macros. (line 54) | |||
* version.m4, example: Rebuilding. (line 12) | * version.m4, example: Rebuilding. (line 12) | |||
* version.sh, example: Rebuilding. (line 12) | * version.sh, example: Rebuilding. (line 12) | |||
* versioned binaries, installing: Extending. (line 86) | * versioned binaries, installing: Extending. (line 86) | |||
* VPATH builds: VPATH Builds. (line 6) | * VPATH builds: VPATH Builds. (line 6) | |||
* wildcards: Wildcards. (line 6) | * wildcards: Wildcards. (line 6) | |||
* Windows: EXEEXT. (line 6) | * Windows: EXEEXT. (line 6) | |||
* xfail: Generalities about Testing. | * xfail: Generalities about Testing. | |||
(line 39) | (line 39) | |||
* xpass: Generalities about Testing. | * xpass: Generalities about Testing. | |||
(line 39) | (line 39) | |||
* yacc, multiple parsers: Yacc and Lex. (line 68) | * yacc, multiple parsers: Yacc and Lex. (line 68) | |||
* YFLAGS and AM_YFLAGS: Flag Variables Ordering. | * YFLAGS and AM_YFLAGS: Flag Variables Ordering. | |||
(line 20) | (line 20) | |||
* ylwrap: Yacc and Lex. (line 68) | * ylwrap: Auxiliary Programs. (line 85) | |||
* ylwrap <1>: Yacc and Lex. (line 68) | ||||
* zardoz example: Complete. (line 35) | * zardoz example: Complete. (line 35) | |||
End of changes. 229 change blocks. | ||||
362 lines changed or deleted | 466 lines changed or added |