$*

不包含扩展名的目标文件名称。

$+

所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。

$<

第一个依赖文件的名称。

$?

所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。

$@

目标的完整名称。

$^

所有的依赖文件,以空格分开,不包含重复的依赖文件。

$%

如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为

(p_w_picpath.o),则 $@ 为 ,而 $% 为 p_w_picpath.o。

AR

归档维护程序的名称,默认值为 ar。

ARFLAGS

归档维护程序的选项。

AS

汇编程序的名称,默认值为 as。

ASFLAGS

汇编程序的选项。

CC

C编译器的名称,默认值为 cc。

CFLAGS

C编译器的选项。

CPP

C 预编译器的名称,默认值为 $(CC) -E。

CPPFLAGS

C预编译的选项。

CXX

C++编译器的名称,默认值为 g++。

CXXFLAGS

C++编译器的选项。

FC

FORTRAN编译器的名称,默认值为 f77。

FFLAGS

FORTRAN编译器的选项。

Makefile以文件名:文件名的形式比较冒号右边的文件是不是较左边的文件有更新,如果有更新则执行下一行的程序代码。因此Makefile可以把文件关联起来