Next: Programs automake might require, Previous: How derived variables are named, Up: General ideas [Contents][Index]
Some Makefile
variables are reserved by the GNU Coding Standards
for the use of the “user” – the person building the package. For
instance, CFLAGS
is one such variable.
Sometimes package developers are tempted to set user variables such as
CFLAGS
because it appears to make their job easier. However,
the package itself should never set a user variable, particularly not
to include switches which are required for proper compilation of the
package. Since these variables are documented as being for the
package builder, that person rightfully expects to be able to override
any of these variables at build time.
To get around this problem, automake introduces an automake-specific
shadow variable for each user flag variable. (Shadow variables are not
introduced for variables like CC
, where they would make no
sense.) The shadow variable is named by prepending ‘AM_’ to the
user variable’s name. For instance, the shadow variable for
YFLAGS
is AM_YFLAGS
.