DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(make.info.gz) Implicit Variables

Info Catalog (make.info.gz) Catalogue of Rules (make.info.gz) Implicit Rules (make.info.gz) Chained Rules
 
 Variables Used by Implicit Rules
 ================================
 
    The commands in built-in implicit rules make liberal use of certain
 predefined variables.  You can alter these variables in the makefile,
 with arguments to `make', or in the environment to alter how the
 implicit rules work without redefining the rules themselves.  You can
 cancel all variables used by implicit rules with the `-R' or
 `--no-builtin-variables' option.
 
    For example, the command used to compile a C source file actually
 says `$(CC) -c $(CFLAGS) $(CPPFLAGS)'.  The default values of the
 variables used are `cc' and nothing, resulting in the command `cc -c'.
 By redefining `CC' to `ncc', you could cause `ncc' to be used for all C
 compilations performed by the implicit rule.  By redefining `CFLAGS' to
 be `-g', you could pass the `-g' option to each compilation.  _All_
 implicit rules that do C compilation use `$(CC)' to get the program
 name for the compiler and _all_ include `$(CFLAGS)' among the arguments
 given to the compiler.
 
    The variables used in implicit rules fall into two classes: those
 that are names of programs (like `CC') and those that contain arguments
 for the programs (like `CFLAGS').  (The "name of a program" may also
 contain some command arguments, but it must start with an actual
 executable program name.)  If a variable value contains more than one
 argument, separate them with spaces.
 
    Here is a table of variables used as names of programs in built-in
 rules:
 
 `AR'
      Archive-maintaining program; default `ar'.
 
 `AS'
      Program for doing assembly; default `as'.
 
 `CC'
      Program for compiling C programs; default `cc'.
 
 `CXX'
      Program for compiling C++ programs; default `g++'.
 
 `CO'
      Program for extracting a file from RCS; default `co'.
 
 `CPP'
      Program for running the C preprocessor, with results to standard
      output; default `$(CC) -E'.
 
 `FC'
      Program for compiling or preprocessing Fortran and Ratfor programs;
      default `f77'.
 
 `GET'
      Program for extracting a file from SCCS; default `get'.
 
 `LEX'
      Program to use to turn Lex grammars into C programs or Ratfor
      programs; default `lex'.
 
 `PC'
      Program for compiling Pascal programs; default `pc'.
 
 `YACC'
      Program to use to turn Yacc grammars into C programs; default
      `yacc'.
 
 `YACCR'
      Program to use to turn Yacc grammars into Ratfor programs; default
      `yacc -r'.
 
 `MAKEINFO'
      Program to convert a Texinfo source file into an Info file; default
      `makeinfo'.
 
 `TEX'
      Program to make TeX DVI files from TeX source; default `tex'.
 
 `TEXI2DVI'
      Program to make TeX DVI files from Texinfo source; default
      `texi2dvi'.
 
 `WEAVE'
      Program to translate Web into TeX; default `weave'.
 
 `CWEAVE'
      Program to translate C Web into TeX; default `cweave'.
 
 `TANGLE'
      Program to translate Web into Pascal; default `tangle'.
 
 `CTANGLE'
      Program to translate C Web into C; default `ctangle'.
 
 `RM'
      Command to remove a file; default `rm -f'.
 
    Here is a table of variables whose values are additional arguments
 for the programs above.  The default values for all of these is the
 empty string, unless otherwise noted.
 
 `ARFLAGS'
      Flags to give the archive-maintaining program; default `rv'.
 
 `ASFLAGS'
      Extra flags to give to the assembler (when explicitly invoked on a
      `.s' or `.S' file).
 
 `CFLAGS'
      Extra flags to give to the C compiler.
 
 `CXXFLAGS'
      Extra flags to give to the C++ compiler.
 
 `COFLAGS'
      Extra flags to give to the RCS `co' program.
 
 `CPPFLAGS'
      Extra flags to give to the C preprocessor and programs that use it
      (the C and Fortran compilers).
 
 `FFLAGS'
      Extra flags to give to the Fortran compiler.
 
 `GFLAGS'
      Extra flags to give to the SCCS `get' program.
 
 `LDFLAGS'
      Extra flags to give to compilers when they are supposed to invoke
      the linker, `ld'.
 
 `LFLAGS'
      Extra flags to give to Lex.
 
 `PFLAGS'
      Extra flags to give to the Pascal compiler.
 
 `RFLAGS'
      Extra flags to give to the Fortran compiler for Ratfor programs.
 
 `YFLAGS'
      Extra flags to give to Yacc.
 
Info Catalog (make.info.gz) Catalogue of Rules (make.info.gz) Implicit Rules (make.info.gz) Chained Rules
automatically generated byinfo2html