16.1 automake Invocation

To create all the Makefile.ins for a package, run the
automake program in the top level directory, with no
arguments. automake will automatically find each
appropriate Makefile.am (by scanning configure.ac;
see Format of configure.ac) and generate the corresponding
Makefile.in.
Note that automake has a rather simplistic view of what
constitutes a package; it assumes that a package has only one
configure.ac, at the top. If your package has multiple
configure.acs, then you must run automake in each
directory holding a configure.ac. (Alternatively, you may rely
on Autoconf’s autoreconf, which is able to recurse your
package tree and run automake where appropriate.)

You can optionally give automake an argument; .am is
appended to the argument and the result is used as the name of the
input file. This feature is generally only used to automatically
rebuild an out-of-date Makefile.in. Note that
automake must always be run from the topmost directory of a
project, even if being used to regenerate the Makefile.in in
some subdirectory. This is necessary because automake must
scan configure.ac, and because automake uses the
knowledge that a Makefile.in is in a subdirectory to change its
behavior in some cases.

Automake will run autoconf to scan configure.ac and
its dependencies (i.e., aclocal.m4 and any included file),
therefore autoconf must be in your PATH. If there is
an AUTOCONF variable in your environment it will be used
instead of autoconf, this allows you to select a particular
version of Autoconf. By the way, don’t misunderstand this paragraph:
automake runs autoconf to scan your
configure.ac, this won’t build configure and you still
have to run autoconf yourself for this purpose.

automake accepts the following options:

-a

--add-missing

Automake requires certain common files to exist in certain situations;
for instance, config.guess is required if configure.ac invokes
AC_CANONICAL_HOST. Automake is distributed with several of these
files (see Auxiliary Programs); this option will cause the missing
ones to be automatically added to the package, whenever possible. In
general if Automake tells you a file is missing, try using this option.
By default Automake tries to make a symbolic link pointing to its own
copy of the missing file; this can be changed with --copy.

Many of the potentially-missing files are common scripts whose
location may be specified via the AC_CONFIG_AUX_DIR macro.
Therefore, AC_CONFIG_AUX_DIR’s setting affects whether a
file is considered missing, and where the missing file is added
(see Other macros Automake recognizes).

In some strictness modes, additional files are installed, see
Strictness
for more information.

--libdir=dir

Look for Automake data files in directory dir instead of in the
installation directory. This is typically used for debugging.

When used with --add-missing, causes installed files to be
copied. The default is to make a symbolic link.

-f

--force-missing

When used with --add-missing, causes standard files to be reinstalled
even if they already exist in the source tree. This involves removing
the file from the source tree before creating the new symlink (or, with
--copy, copying the new file).

--foreign

Set the global strictness to foreign. For more information, see
Strictness.

--gnits

Set the global strictness to gnits. For more information, see
Strictness.

--gnu

Set the global strictness to gnu. For more information, see
Strictness. This is the default strictness.

--help

Print a summary of the command line options and exit.

-i

--ignore-deps

This disables the dependency tracking feature in generated
Makefiles; see Dependencies.

--include-deps

This enables the dependency tracking feature. This feature is enabled
by default. This option is provided for historical reasons only and
probably should not be used.

--no-force

Ordinarily automake creates all Makefile.ins mentioned in
configure.ac. This option causes it to only update those
Makefile.ins that are out of date with respect to one of their
dependents.

-o dir

--output-dir=dir

Put the generated Makefile.in in the directory dir.
Ordinarily each Makefile.in is created in the directory of the
corresponding Makefile.am. This option is deprecated and will be
removed in a future release.

-v

--verbose

Cause Automake to print information about which files are being read or
created.

portability issues (e.g., use of make features that are
known to be not portable)

extra-portability

extra portability issues related to obscure tools. One example of such
a tool is the Microsoft lib archiver.

syntax

weird syntax, unused variables, typos

unsupported

unsupported or incomplete features

all

all the warnings

none

turn off all the warnings

error

treat warnings as errors

A category can be turned off by prefixing its name with ‘no-’. For
instance, -Wno-syntax will hide the warnings about unused
variables.

The categories output by default are ‘obsolete’, ‘syntax’ and
‘unsupported’. Additionally, ‘gnu’ and ‘portability’
are enabled in --gnu and --gnits strictness.

Turning off ‘portability’ will also turn off ‘extra-portability’,
and similarly turning on ‘extra-portability’ will also turn on
‘portability’. However, turning on ‘portability’ or turning
off ‘extra-portability’ will not affect the other category.

The environment variable WARNINGS can contain a comma separated
list of categories to enable. It will be taken into account before the
command-line switches, this way -Wnone will also ignore any
warning category enabled by WARNINGS. This variable is also used
by other tools like autoconf; unknown categories are ignored
for this reason.

If the environment variable AUTOMAKE_JOBS contains a positive
number, it is taken as the maximum number of Perl threads to use in
automake for generating multiple Makefile.in files
concurrently. This is an experimental feature.