常规宏
有各种默认的宏。你可以通过 “make -p” 命令看到他们。大多数的常规宏都是见名知意。
这些预定义变量(即隐式规则中使用的宏)分为两类 -
作为程序名称的宏(如CC)
包含程序参数的宏(如CFLAGS)。
以下是一些用作 Makefile 内置规则中程序名称的常用变量表。
| AR | 档案保存程序;默认是ar。 |
|---|---|
| AS | 编译汇编文件的程序;默认是 as。 |
| CC | 编译 C 语言文件的程序;默认是 cc. |
| CO | Program for checking out files from RCS; default is co. |
| CXX | 编译 C++ 文件的程序; 默认是 g++. |
| CPP | 运行 C 预处理器并输出到当前输出流的程序; 默认是 $(CC) -E. |
| FC | Program for compiling or preprocessing Fortran and Ratfor programs; default is f77. |
| GET | Program for extracting a file from SCCS; default is get. |
| LEX | Program to use to turn Lex grammars into source code; default is lex. |
| YACC | Program to use to turn Yacc grammars into source code; default is yacc. |
| LINT | Program to use to run lint on source code; default is lint. |
| M2C | Program to use to compile Modula-2 source code; default is m2c. |
| PC | 编译 Pascal 的程序;默认值是 pc。 |
| MAKEINFO | Program to convert a Texinfo source file into an Info file; default is makeinfo. |
| TEX | Program to make TeX dvi files from TeX source; default is tex. |
| TEXI2DVI | Program to make TeX dvi files from Texinfo source; default is texi2dvi. |
| WEAVE | 将 Web 转化为 TeX 的程序;默认值是 weave。 |
| CWEAVE | 将 C Web 转换为 TeX 的程序;默认值是 cweave。 |
| TANGLE | 将 Web 转化为 Pascal 的程序;默认值是 tangle。 |
| CTANGLE | 将 C Web 转换为 C 的程序;默认值是 ctangle。 |
| RM | 删除文件的命令;默认是 rm -f. |
这是一个变量表,其值是上述程序的附加参数。除非另有说明,否则所有这些变量的默认值都是空字符串。
| ARFLAGS | Flags to give the archive-maintaining program; default is rv. |
|---|---|
| ASFLAGS | Extra flags to give to the assembler when explicitly invoked on a .s or .S file. |
| CFLAGS | 传递给 C 编译器的额外 flag。 |
| CXXFLAGS | 传递给 C 编译器 的额外 flag。 |
| COFLAGS | Extra flags to give to the RCS co program. |
| CPPFLAGS | Extra flags to give to the C preprocessor and programs, which use it (such as 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. |
注 - 你可以使用 -R 或 --no-builtin-variables 选项取消隐式规则使用的所有变量。
你也可以在命令行中定义宏,如下所示 -
make CPP = /home/courses/cop4530/spring02