(automake-1.16.info)Program Variables


Next: Yacc and Lex Prev: LIBOBJS Up: Programs
Enter node , (file) or (file)node

8.7 Variables used when building a program
==========================================

Occasionally it is useful to know which ‘Makefile’ variables Automake
uses for compilations, and in which order (Note: Flag Variables
Ordering); for instance, you might need to do your own compilation in
some special cases.

   Some variables are inherited from Autoconf; these are ‘CC’, ‘CFLAGS’,
‘CPPFLAGS’, ‘DEFS’, ‘LDFLAGS’, and ‘LIBS’.

   There are some additional variables that Automake defines on its own:

‘AM_CPPFLAGS’
     The contents of this variable are passed to every compilation that
     invokes the C preprocessor; it is a list of arguments to the
     preprocessor.  For instance, ‘-I’ and ‘-D’ options should be listed
     here.

     Automake already provides some ‘-I’ options automatically, in a
     separate variable that is also passed to every compilation that
     invokes the C preprocessor.  In particular it generates ‘-I.’,
     ‘-I$(srcdir)’, and a ‘-I’ pointing to the directory holding
     ‘config.h’ (if you’ve used ‘AC_CONFIG_HEADERS’).  You can disable
     the default ‘-I’ options using the ‘nostdinc’ option.

     When a file to be included is generated during the build and not
     part of a distribution tarball, its location is under
     ‘$(builddir)’, not under ‘$(srcdir)’.  This matters especially for
     packages that use header files placed in sub-directories and want
     to allow builds outside the source tree (Note: VPATH Builds).  In
     that case we recommend to use a pair of ‘-I’ options, such as,
     e.g., ‘-Isome/subdir -I$(srcdir)/some/subdir’ or
     ‘-I$(top_builddir)/some/subdir -I$(top_srcdir)/some/subdir’.  Note
     that the reference to the build tree should come before the
     reference to the source tree, so that accidentally leftover
     generated files in the source directory are ignored.

     ‘AM_CPPFLAGS’ is ignored in preference to a per-executable (or
     per-library) ‘_CPPFLAGS’ variable if it is defined.

‘INCLUDES’
     This does the same job as ‘AM_CPPFLAGS’ (or any per-target
     ‘_CPPFLAGS’ variable if it is used).  It is an older name for the
     same functionality.  This variable is deprecated; we suggest using
     ‘AM_CPPFLAGS’ and per-target ‘_CPPFLAGS’ instead.

‘AM_CFLAGS’
     This is the variable the ‘Makefile.am’ author can use to pass in
     additional C compiler flags.  In some situations, this is not used,
     in preference to the per-executable (or per-library) ‘_CFLAGS’.

‘COMPILE’
     This is the command used to actually compile a C source file.  The
     file name is appended to form the complete command line.

‘AM_LDFLAGS’
     This is the variable the ‘Makefile.am’ author can use to pass in
     additional linker flags.  In some situations, this is not used, in
     preference to the per-executable (or per-library) ‘_LDFLAGS’.

‘LINK’
     This is the command used to actually link a C program.  It already
     includes ‘-o $@’ and the usual variable references (for instance,
     ‘CFLAGS’); it takes as “arguments” the names of the object files
     and libraries to link in.  This variable is not used when the
     linker is overridden with a per-target ‘_LINK’ variable or
     per-target flags cause Automake to define such a ‘_LINK’ variable.


automatically generated by info2www version 1.2.2.9