DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(automk14.info.gz) General Operation

Info Catalog (automk14.info.gz) Generalities (automk14.info.gz) Generalities (automk14.info.gz) Depth
 
 2.1 General Operation
 =====================
 
 Automake works by reading a `Makefile.am' and generating a
 `Makefile.in'.  Certain macros and targets defined in the `Makefile.am'
 instruct Automake to generate more specialized code; for instance, a
 `bin_PROGRAMS' macro definition will cause targets for compiling and
 linking programs to be generated.
 
    The macro definitions and targets in the `Makefile.am' are copied
 verbatim into the generated file.  This allows you to add arbitrary code
 into the generated `Makefile.in'.  For instance the Automake
 distribution includes a non-standard `cvs-dist' target, which the
 Automake maintainer uses to make distributions from his source control
 system.
 
    Note that GNU make extensions are not recognized by Automake.  Using
 such extensions in a `Makefile.am' will lead to errors or confusing
 behavior.
 
    Automake tries to group comments with adjoining targets and macro
 definitions in an intelligent way.
 
    A target defined in `Makefile.am' generally overrides any such
 target of a similar name that would be automatically generated by
 `automake'.  Although this is a supported feature, it is generally best
 to avoid making use of it, as sometimes the generated rules are very
 particular.
 
    Similarly, a macro defined in `Makefile.am' will override any
 definition of the macro that `automake' would ordinarily create.  This
 feature is more often useful than the ability to override a target
 definition.  Be warned that many of the macros generated by `automake'
 are considered to be for internal use only, and their names might
 change in future releases.
 
    When examining a macro definition, Automake will recursively examine
 macros referenced in the definition.  For example, if Automake is
 looking at the content of `foo_SOURCES' in this snippet
 
      xs = a.c b.c
      foo_SOURCES = c.c $(xs)
 
    it would use the files `a.c', `b.c', and `c.c' as the contents of
 `foo_SOURCES'.
 
    Automake also allows a form of comment which is _not_ copied into
 the output; all lines beginning with `##' are completely ignored by
 Automake.
 
    It is customary to make the first line of `Makefile.am' read:
 
      ## Process this file with automake to produce Makefile.in
 
Info Catalog (automk14.info.gz) Generalities (automk14.info.gz) Generalities (automk14.info.gz) Depth
automatically generated byinfo2html