MakeFile _10.3 Variables Used by Implicit Rules

10.3 Variables Used by Implicit Rules(潜规则。哈哈)

The commands 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 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.

 

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 are selected by make 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.

================================应用程序的变量========================================================== AR
Archive-maintaining program; default ` ar'.
AS
Program for compiling assembly files; default ` as'.
CC
Program for compiling C programs; default `cc'.
CO
Program for checking out files from RCS; default ` co'.
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 source code; default ` lex'.
YACC
Program to use to turn Yacc grammars into source code; default ` yacc'.
LINT
Program to use to run lint on source code; default ` lint'.
M2C
Program to use to compile Modula-2 source code; default ` m2c'.
PC
Program for compiling Pascal programs; default ` pc'.
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.
YFLAGS
Extra flags to give to Yacc.
PFLAGS
Extra flags to give to the Pascal compiler.
RFLAGS
Extra flags to give to the Fortran compiler for Ratfor programs.
LINTFLAGS
Extra flags to give to lint.

 


Next:  Pattern Rules, Previous:  Implicit Variables, Up:  Implicit Rules
==================================================
最近在读MakeFile的Manual,挺费劲的。呵呵。
不过坚持最重要呢。
加油~!!!!!!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值