(make.info) Implicit Variables
Info Catalog
(make.info) Catalogue of Rules
(make.info) Implicit Rules
(make.info) 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) Catalogue of Rules
(make.info) Implicit Rules
(make.info) Chained Rules
automatically generated byinfo2html