Makefile规则有下列通用形式:
target:dependency [ dependency[...] ]
command
command
[ ... ]
target是要创建的二进制文件或者目标文件。dependency 是在创建target时需要输入的一个或多个文件的列表。命令序列是创建 target文件所需要的步骤,如编译命令。此外,除非特别指定,否则 make的工作目录就是当前目录。
自动变量
$@ 规则的目标所对应的文件名
$^ 规则中所有相关文件的列表 ,以空格为分隔符
$< 规则中的第一个相关文件名
$? 规则中日期新于目标的所有相关文件的列表,以空格为分隔符
$(@D) 目标文件的目录部分(如果目标在子目录中)
$(@F) 目标文件的文件名部分(如果目标在子目录中)
用于程序名和标志的预定义变量
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 编译器的选项。
LDFLAGS 传给链接程序(ld)的标志,没有默认值
make的命令行选项与参数