automake-1.16: List of Automake options
17.2 List of Automake options
=============================
‘gnits’
‘gnu’
‘foreign’
Set the strictness as appropriate. ⇒Strictness. The
‘gnits’ option also implies options ‘readme-alpha’ and
‘check-news’.
‘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. ⇒DejaGnu
Tests.
‘dist-bzip2’
Hook ‘dist-bzip2’ to ‘dist’.
‘dist-lzip’
Hook ‘dist-lzip’ to ‘dist’.
‘dist-xz’
Hook ‘dist-xz’ to ‘dist’.
‘dist-zip’
Hook ‘dist-zip’ to ‘dist’.
‘dist-zstd’
Hook ‘dist-zstd’ to ‘dist’.
‘dist-shar’
Hook ‘dist-shar’ to ‘dist’. Use of this option is deprecated, as
the ‘shar’ format is obsolescent and problematic. Support for it
will be removed altogether in Automake 2.0.
‘dist-tarZ’
Hook ‘dist-tarZ’ to ‘dist’. Use of this option is deprecated, as
the ‘compress’ program is obsolete. Support for it will be removed
altogether in Automake 2.0.
‘filename-length-max=99’
Abort if file names longer than 99 characters are found during
‘make dist’. Such long file names 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. It will also be ignored in sub-packages of
nested packages (⇒Subpackages).
‘info-in-builddir’
Instruct Automake to place the generated ‘.info’ files in the
‘builddir’ rather than in the ‘srcdir’. Note that this might make
VPATH builds with some non-GNU make implementations more brittle.
‘no-define’
This option is meaningful only when passed as an argument to
‘AM_INIT_AUTOMAKE’. It will prevent the ‘PACKAGE’ and ‘VERSION’
variables from being ‘AC_DEFINE’d. But notice that they will
remain defined as shell variables in the generated ‘configure’, and
as make variables in the generated ‘Makefile’; this is deliberate,
and required for backward compatibility.
‘no-dependencies’
This is similar to using ‘--ignore-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 (⇒
Dependencies). 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-built-sources’
Don’t build ‘BUILT_SOURCES’ as part of ‘dist’. This option can be
set if building the distribution only requires the source files,
and doesn’t compile anything as a side-effect. The default is for
‘$(distdir)’ to depend on ‘$(BUILT_SOURCES)’ because it is common,
at least among GNU packages, to want to build the program to
generate man pages with ‘help2man’ (⇒Errors with distclean).
Admittedly the default behavior should perhaps be to omit the
dependency, but to preserve compatibility, we don’t want to change
it now.
‘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 that
are ordinarily automatically provided by Automake.
‘no-texinfo.tex’
Don’t require ‘texinfo.tex’, even if there are texinfo files in
this directory.
‘serial-tests’
Enable the older serial test suite harness for ‘TESTS’ (⇒
Serial Test Harness, for more information).
‘parallel-tests’
Enable test suite harness for ‘TESTS’ that can run tests in
parallel (⇒Parallel Test Harness, for more information).
This option is only kept for backward-compatibility, since the
parallel test harness is the default now.
‘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 coreutils) 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 Windows 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’. ⇒Program and Library Variables.
‘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’, ‘dist-lzip’, ‘dist-xz’, ‘dist-zstd’ and ‘dist-tarZ’
options in use.)
These options must be passed as arguments to ‘AM_INIT_AUTOMAKE’
(⇒Macros) because they can require additional configure
checks. Automake will complain if it sees such options in an
‘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 file names with up to 99 characters.
When given longer file names some tar implementations will diagnose
the problem while others 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 file names too long.
‘tar-ustar’ selects the ustar format defined by POSIX 1003.1-1988.
This format is old enough to be portable: As of 2018, it is
supported by the native ‘tar’ command on GNU, FreeBSD, NetBSD,
OpenBSD, AIX, HP-UX, and Solaris, at least. It fully supports
empty directories. It can store file names with up to 256
characters, provided that the file name 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.
‘tar-pax’ selects the new pax interchange format defined by POSIX
1003.1-2001. It does not limit the length of file names. However,
this format is very young and should probably be restricted to
packages that target only very modern platforms. As of 2018, this
format is supported by the native ‘tar’ command only on GNU,
FreeBSD, and OpenBSD systems; it is not supported by the native
‘tar’ command on NetBSD, AIX, HP-UX, or Solaris. 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.
⇒Controlling the Archive Format (tar)Formats, 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.
VERSION
A version number (e.g., ‘0.30’) can be specified. If Automake is
not the same version or 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
(⇒automake Invocation). 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’. ⇒Macros.