变量定义
VARIABLE = value
# 在执行时扩展,允许递归扩展。
VARIABLE := value
# 在定义时扩展。
VARIABLE ?= value
# 只有在该变量为空时才设置值。
VARIABLE += value
# 将值追加到变量的尾端。
自动变量
-
$@
当前目标 -
$<
第一个前置条件 -
$?
指代比目标更新的所有前置条件,之间以空格分隔 -
$^
指代所有前置条件,之间以空格分隔 -
$*
指代匹配符 % 匹配的部分, 比如% 匹配 f1.txt 中的f1 ,$* 就表示 f1 -
$(@D) $(@F)
分别指向 $@ 的目录名和文件名。比如,$@是 src/input.c,那么$(@D) 的值为 src ,$(@F) 的值为 input.c -
$(<D) $(<F)
分别指向 $< 的目录名和文件名