Contents|Index|Previous|Next
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
CFLAGSto
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 being names of programs
(like CC).
-
Those containing 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.
The following are 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.
The following are variables
whose values are additional arguments for the previous list of programs
associated with variables. 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.
Top|Contents|Index|Previous|Next