17.2 List of Automake options

gnits
gnu
foreign

Set the strictness as appropriate. See 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. See 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 (see Nesting Packages).

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_DEFINEd. 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 (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-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 (see 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.

posix

Generate the special target .POSIX as the first non-comment line in the Makefile.in files. This alters the behavior of the make program. See make.

serial-tests

Enable the older serial test suite harness for TESTS (see Older (and discouraged) Serial Test Harness, for more information).

parallel-tests

Enable test suite harness for TESTS that can run tests in parallel (see 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. See 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 (see Autoconf macros supplied with Automake) 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.

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.

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 (see Creating a Makefile.in: Invoking automake). 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.