Next: Chained Rules Prev: Catalogue of Rules Up: Implicit 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.
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
Archive-maintaining program; default `ar'.
Program for doing assembly; default `as'.
Program for compiling C programs; default `cc'.
Program for compiling C++ programs; default `g++'.
Program for extracting a file from RCS; default `co'.
Program for running the C preprocessor, with results to standard
output; default `$(CC) -E'.
Program for compiling or preprocessing Fortran and Ratfor programs;
Program for extracting a file from SCCS; default `get'.
Program to use to turn Lex grammars into C programs or Ratfor
programs; default `lex'.
Program for compiling Pascal programs; default `pc'.
Program to use to turn Yacc grammars into C programs; default
Program to use to turn Yacc grammars into Ratfor programs; default
Program to convert a Texinfo source file into an Info file; default
Program to make TeX DVI files from TeX source; default `tex'.
Program to make TeX DVI files from Texinfo source; default
Program to translate Web into TeX; default `weave'.
Program to translate C Web into TeX; default `cweave'.
Program to translate Web into Pascal; default `tangle'.
Program to translate C Web into C; default `ctangle'.
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.
Flags to give the archive-maintaining program; default `rv'.
Extra flags to give to the assembler (when explicitly invoked on a
`.s' or `.S' file).
Extra flags to give to the C compiler.
Extra flags to give to the C++ compiler.
Extra flags to give to the RCS `co' program.
Extra flags to give to the C preprocessor and programs that use it
(the C and Fortran compilers).
Extra flags to give to the Fortran compiler.
Extra flags to give to the SCCS `get' program.
Extra flags to give to compilers when they are supposed to invoke
the linker, `ld'.
Extra flags to give to Lex.
Extra flags to give to the Pascal compiler.
Extra flags to give to the Fortran compiler for Ratfor programs.
Extra flags to give to Yacc.
automatically generated by info2www