Next: Miscellaneous Rules, Previous: Rebuilding Makefiles, Up: GNU Automake [Contents][Index]
Various features of Automake can be controlled by options in the
Makefile.am. Such options are applied on a per-Makefile
basis when listed in a special Makefile variable named
AUTOMAKE_OPTIONS
. They are applied globally to all processed
Makefiles when listed in the first argument of
AM_INIT_AUTOMAKE
in configure.ac. Currently understood
options are:
gnits
¶gnu
foreign
cygnus
Set the strictness as appropriate. The gnits
option also implies
readme-alpha
and check-news
.
ansi2knr
¶path/ansi2knr
Turn on automatic de-ANSI-fication. See Automatic de-ANSI-fication. If preceded by a path, the generated Makefile.in will look in the specified directory to find the ansi2knr program. The path should be a relative path to another directory in the same distribution (Automake currently does not check this).
check-news
¶Cause make dist
to fail unless the current version number appears
in the first few lines of the NEWS file.
dejagnu
¶Cause dejagnu
-specific rules to be generated. See Support for test suites.
dist-bzip2
¶Hook dist-bzip2
to dist
.
dist-shar
¶Hook dist-shar
to dist
.
dist-zip
¶Hook dist-zip
to dist
.
dist-tarZ
¶Hook dist-tarZ
to dist
.
filename-length-max=99
¶Abort if filenames longer than 99 characters are found during
make dist
. Such long filenames are generally considered not to
be portable in tarballs. See the tar-v7
and tar-ustar
options below. This option should be used in the top-level
Makefile.am or as an argument of AM_INIT_AUTOMAKE
in
configure.ac, it will be ignored otherwise.
no-define
¶This options is meaningful only when passed as an argument to
AM_INIT_AUTOMAKE
. It will prevent the PACKAGE
and
VERSION
variables to be AC_DEFINE
d.
no-dependencies
¶This is similar to using ‘--include-deps’ on the command line, but is useful for those situations where you don’t have the necessary bits to make automatic dependency tracking work See Automatic dependency tracking. In this case the effect is to effectively disable automatic dependency tracking.
no-dist
¶Don’t emit any code related to dist
target. This is useful
when a package has its own method for making distributions.
no-dist-gzip
¶Do not hook dist-gzip
to dist
.
no-exeext
¶If your Makefile.am defines a rule for target ‘foo’, it
will override a rule for a target named ‘foo$(EXEEXT)’. This is
necessary when EXEEXT
is found to be empty. However, by
default automake will generate an error for this use. The
no-exeext
option will disable this error. This is intended for
use only where it is known in advance that the package will not be
ported to Windows, or any other operating system using extensions on
executables.
no-installinfo
¶The generated Makefile.in will not cause info pages to be built
or installed by default. However, info
and install-info
targets will still be available. This option is disallowed at
‘GNU’ strictness and above.
no-installman
¶The generated Makefile.in will not cause man pages to be
installed by default. However, an install-man
target will still
be available for optional installation. This option is disallowed at
‘GNU’ strictness and above.
nostdinc
¶This option can be used to disable the standard ‘-I’ options which are ordinarily automatically provided by Automake.
no-texinfo.tex
¶Don’t require texinfo.tex, even if there are texinfo files in this directory.
readme-alpha
¶If this release is an alpha release, and the file README-alpha exists, then it will be added to the distribution. If this option is given, version numbers are expected to follow one of two forms. The first form is ‘MAJOR.MINOR.ALPHA’, where each element is a number; the final period and number should be left off for non-alpha releases. The second form is ‘MAJOR.MINORALPHA’, where ALPHA is a letter; it should be omitted for non-alpha releases.
std-options
¶Make the installcheck
rule check that installed scripts and
programs support the --help
and --version
options.
This also provides a basic check that the program’s
run-time dependencies are satisfied after installation.
In a few situations, programs (or scripts) have to be exempted from this
test. For instance false
(from GNU sh-utils) is never
successful, even for --help
or --version
. You can list
such programs in the variable AM_INSTALLCHECK_STD_OPTIONS_EXEMPT
.
Programs (not scripts) listed in this variable should be suffixed by
$(EXEEXT)
for the sake of Win32 or OS/2. For instance suppose we
build false
as a program but true.sh
as a script, and that
neither of them support --help
or --version
:
AUTOMAKE_OPTIONS = std-options bin_PROGRAMS = false ... bin_SCRIPTS = true.sh ... AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = false$(EXEEXT) true.sh
subdir-objects
If this option is specified, then objects are placed into the subdirectory of the build directory corresponding to the subdirectory of the source file. For instance if the source file is subdir/file.cxx, then the output file would be subdir/file.o.
tar-v7
¶tar-ustar
tar-pax
These three mutually exclusive options select the tar format to use
when generating tarballs with make dist
. (The tar file created
is then compressed according to the set of no-dist-gzip
,
dist-bzip2
and dist-tarZ
options in use.)
These options must be passed as argument to AM_INIT_AUTOMAKE
(see Autoconf macros supplied with Automake) because they can causes new configure check to be
performed. Automake will complain if it sees such option in a
AUTOMAKE_OPTIONS
variable.
tar-v7
selects the old V7 tar format. This is the historical
default. This antiquated format is understood by all tar
implementations and supports filenames with up to 99 characters. When
given longer filenames some tar implementations will diagnose the
problem while other will generate broken tarballs or use non-portable
extensions. Furthermore, the V7 format cannot store empty
directories. When using this format, consider using the
filename-length-max=99
option to catch filenames too long.
tar-ustar
selects the ustar format defined by POSIX
1003.1-1988. This format is believed to be old enough to be portable.
It fully supports empty directories. It can stores filenames with up
to 256 characters, provided that the filename can be split at
directory separator in two parts, first of them being at most 155
bytes long. So, in most cases the maximum file name length will be
shorter than 256 characters. However you may run against broken tar
implementations that incorrectly handle filenames longer than 99
characters (please report them to bug-automake@gnu.org so we
can document this accurately).
tar-pax
selects the new pax interchange format defined by POSIX
1003.1-2001. It does not limit the length of filenames. However,
this format is very young and should probably be restricted to
packages which target only very modern platforms. There are moves to
change the pax format in an upward-compatible way, so this option may
refer to a more recent version in the future.
See Controlling the Archive Format in GNU Tar, for further discussion about tar formats.
configure
knows several ways to construct these formats. It
will not abort if it cannot find a tool up to the task (so that the
package can still be built), but make dist
will fail.
A version number (e.g. ‘0.30’) can be specified. If Automake is not newer than the version specified, creation of the Makefile.in will be suppressed.
-Wcategory
or --warnings=category
¶These options behave exactly like their command-line counterpart
(see Creating a Makefile.in). This allows you to enable or disable some
warning categories on a per-file basis. You can also setup some warnings
for your entire project; for instance try AM_INIT_AUTOMAKE([-Wall])
in your configure.ac.
Unrecognized options are diagnosed by automake
.
If you want an option to apply to all the files in the tree, you can use
the AM_INIT_AUTOMAKE
macro in configure.ac.
See Autoconf macros supplied with Automake.
Next: Miscellaneous Rules, Previous: Rebuilding Makefiles, Up: GNU Automake [Contents][Index]