automake-1.16: automake Invocation

 
 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’; ⇒configure) 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
      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 (⇒
      Optional).
 
      In some strictness modes, additional files are installed, see ⇒
      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.
 
      The environment variable ‘AUTOMAKE_LIBDIR’ provides another way to
      set the directory containing Automake data files.  However
      ‘--libdir’ takes precedence over it.
 
 ‘--print-libdir’
      Print the path of the installation directory containing
      Automake-provided scripts and data files (e.g., ‘texinfo.texi’ and
      ‘install-sh’).
 
 ‘-c’
 ‘--copy’
      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
      ‘Makefile’s; 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.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[,CATEGORY...]’
 ‘--warnings=CATEGORY[,CATEGORY...]’
      Output warnings about a CATEGORY of potential problems with the
      package.  CATEGORY can be any of:
 
      ‘cross’
           Constructs compromising the ability to cross-compile the
           package.
      ‘gnu’
           Minor deviations from the GNU Coding Standards (⇒
           (standards)Top).
      ‘obsolete’
           Obsolete features or constructions.
      ‘override’
           Redefinitions of Automake rules or variables.
      ‘portability’
           Portability issues (e.g., use of ‘make’ features that are
           known to be not portable).
      ‘portability-recursive’
           Recursive, or nested, Make variable expansions (‘$(foo$(x))’).
           These are not universally supported, but are more portable
           than the other non-portable constructs diagnosed by
           ‘-Wportability’.  These warnings are turned on by
           ‘-Wportability’ but can then be turned off specifically by
           ‘-Wno-portability-recursive’.
      ‘extra-portability’
           Extra portability issues, related to rarely-used tools such as
           the Microsoft ‘lib’ archiver.
      ‘syntax’
           Questionable syntax, unused variables, typos, etc.
      ‘unsupported’
           Unsupported or incomplete features.
      ‘all’
           Turn on all the above categories of warnings.
      ‘none’
           Turn off all the above categories of 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.
 
      Warnings in the ‘gnu’, ‘obsolete’, ‘portability’, ‘syntax’, and
      ‘unsupported’ categories are turned on by default.  The ‘gnu’ and
      ‘portability’ categories are turned off in ‘--foreign’ 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.
 
      Unknown warning categories supplied as an argument to ‘-W’ will
      themselves produce a warning, in the ‘unsupported’ category.  This
      warning is never treated as an error.
 
      The environment variable ‘WARNINGS’ can contain a comma separated
      list of categories to enable.  ‘-W’ settings on the command line
      take precedence; for instance, ‘-Wnone’ also turns off any warning
      categories enabled by ‘WARNINGS’.
 
      Unknown warning categories named in ‘WARNINGS’ are silently
      ignored.
 
    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.