[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.1 General Automake principles

Automake at its simplest turns a file called ‘Makefile.am’ into a GNU-compliant ‘Makefile.in’ for use with ‘configure’. Each ‘Makefile.am’ is written according to make syntax; Automake recognizes special macro and target names and generates code based on these.

There are a few Automake rules which differ slightly from make rules:

All macros and targets, including those which Automake does not recognize, are passed through to the generated ‘Makefile.in’ – this is a powerful extension mechanism. Sometimes Automake will define macros or targets internally. If these are also defined in ‘Makefile.am’ then the definition in ‘Makefile.am’ takes precedence. This feature provides an easy way to tailor specific parts of the output in small ways.

Note, however, that it is a mistake to override parts of the generated code that aren’t documented (and thus ‘exported’ by Automake). Overrides like this stand a good chance of not working with future Automake releases.

Automake also scans ‘configure.in’. Sometimes it uses the information it discovers to generate extra code, and sometimes to provide extra error checking. Automake also turns every AC_SUBST into a ‘Makefile’ variable. This is convenient in more ways than one: not only does it mean that you can refer to these macros in ‘Makefile.am’ without extra work, but, since Automake scans ‘configure.in’ before it reads any ‘Makefile.am’, it also means that special variables and overrides Automake recognizes can be defined once in ‘configure.in’.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Ben Elliston on July 10, 2015 using texi2html 1.82.