[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
5. Creating a ‘Makefile.in’
To create all the ‘Makefile.in’s 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 section Scanning ‘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.ac’s, 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 section Programs automake might require); 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 section Other things Automake recognizes).In some strictness modes, additional files are installed, see The effect of ‘--gnu’ and ‘--gnits’ 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.
-
-c
-
--copy
-
When used with ‘--add-missing’, causes installed files to be copied. The default is to make a symbolic link.
-
--cygnus
-
Causes the generated ‘Makefile.in’s to follow Cygnus rules, instead of GNU or Gnits rules. For more information, see The effect of ‘--cygnus’.
-
-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 The effect of ‘--gnu’ and ‘--gnits’.
-
--gnu
-
Set the global strictness to ‘gnu’. For more information, see The effect of ‘--gnu’ and ‘--gnits’. 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 ‘Makefile’s; see Automatic dependency tracking.
-
--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.in’s mentioned in ‘configure.ac’. This option causes it to only update those ‘Makefile.in’s 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.
-
--version
-
Print the version number of Automake and exit.
-
-W CATEGORY
-
--warnings=category
-
Output warnings falling in category. category can be one of:
-
gnu
warnings related to the GNU Coding Standards (see (standards)Top section `Top' in The GNU Coding Standards).
-
obsolete
obsolete features or constructions
-
override
user redefinitions of Automake rules or variables
-
portability
portability issues (e.g., use of
make
features that are known to be not portable)-
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 ‘syntax’ and ‘unsupported’. Additionally, ‘gnu’ and ‘portability’ are enabled in ‘--gnu’ and ‘--gnits’ strictness. On the other hand, the ‘silent-rules’ options (see section Changing Automake's Behavior) turns off portability warnings about recursive variable expansions.
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 byWARNINGS
. This variable is also used by other tools likeautoconf
; 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.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |