Man Pages

automake - phpMan automake - phpMan

Command: man perldoc info search(apropos)  


File: automake.info,  Node: Invoking Automake,  Next: configure,  Prev: Examples,  Up: Top

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'; *note 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
     distributed with several of these files (*note 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 (*note
     Optional::).

     In some strictness modes, additional files are installed, see
     *note 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 *note 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
     *note Strictness::.

`--gnits'
     Set the global strictness to `gnits'.  For more information, see
     *note Gnits::.

`--gnu'
     Set the global strictness to `gnu'.  For more information, see
     *note 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 *note 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'
`--warnings=CATEGORY'
     Output warnings falling in CATEGORY.  CATEGORY can be one of:
    `gnu'
          warnings related to the GNU Coding Standards (*note Top:
          (standards)Top.).

    `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 (*note Options::) 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 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.