1.变量的嵌套引用
一个变量名中可以包含对其他变量的引用
嵌套引用的本质是使用一个变量表示另外一个变量
例:
x := y
y := z
a := $($(x))
分析: 这个很好理解,上述第三行可以解析为
a := $(y) ==> a := z
2.命令行变量
在shell中运行make的时候,在命令行中定义变量
命令行变量可以默认覆盖Makefile中定义的变量。
例:
hm := hello makefile
test:
@echo "hm => $(hm)"
shell中执行 make hm = cmd
执行结果: hm => cmd
3.override关键字
override关键字用于保护Makefile中的变量不被覆盖。
override var := dest
test:
@echo "var => $(var)"
shell中执行 make hm = cmd
执行结果: var =>dest
这个类似于C++中的const关键字
4.define关键字
define关键字用于在Makefile中定义多行变量
变量定义从变量名开始到endef结束
define定义的变量等价于使用 = 定义的变量(递归赋值)
例:
define ade
Jack!
Tom!
endef
可以加上override 修饰
over define cmd
@echo "Run cmd ls..."
@ls
endif