| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The recipes in built-in implicit rules make liberal use of certain
predefined variables. You can alter the values of 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 recipe 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.
The following tables describe of some of the more commonly-used predefined
variables. This list is not exhaustive, and the default values shown here may
not be what make selects for your environment. To see the
complete list of predefined variables for your instance of GNU make you
can run ‘make -p’ in a directory with no makefiles.
Here is a table of some of the more common variables used as names of programs in built-in rules: makefiles.
ARASCCCXXCPPProgram for running the C preprocessor, with results to standard output; default ‘$(CC) -E’.
FCProgram for compiling or preprocessing Fortran and Ratfor programs; default ‘f77’.
M2CProgram to use to compile Modula-2 source code; default ‘m2c’.
PCCOGETLEXProgram to use to turn Lex grammars into source code; default ‘lex’.
YACCProgram to use to turn Yacc grammars into source code; default ‘yacc’.
LINTMAKEINFOProgram to convert a Texinfo source file into an Info file; default ‘makeinfo’.
TEXProgram to make TeX DVI files from TeX source; default ‘tex’.
TEXI2DVIProgram to make TeX DVI files from Texinfo source; default ‘texi2dvi’.
WEAVECWEAVETANGLECTANGLERMHere 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.
ARFLAGSFlags to give the archive-maintaining program; default ‘rv’.
ASFLAGSExtra flags to give to the assembler (when explicitly invoked on a ‘.s’ or ‘.S’ file).
CFLAGSExtra flags to give to the C compiler.
CXXFLAGSExtra flags to give to the C++ compiler.
COFLAGSExtra flags to give to the RCS co program.
CPPFLAGSExtra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers).
FFLAGSExtra flags to give to the Fortran compiler.
GFLAGSExtra flags to give to the SCCS get program.
LDFLAGSExtra flags to give to compilers when they are supposed to invoke the linker, ‘ld’.
LFLAGSExtra flags to give to Lex.
YFLAGSExtra flags to give to Yacc.
PFLAGSExtra flags to give to the Pascal compiler.
RFLAGSExtra flags to give to the Fortran compiler for Ratfor programs.
LINTFLAGSExtra flags to give to lint.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Davide Tacchella on November 3, 2010 using texi2html 1.82.