本文参照自狄泰软件学院:《门徒计划》课程
变量和命名规则:makefile中支持程序语言设计中的变量的概念,但是变量只代表文本数据(字符串),命名规则如下:
变量名可以包含字符数字和下划线,但是不能包含 ":", " # ", " = ", " ",而且变量名大小写敏感
变量的定义和使用:
常用的变量的赋值方式:
简单赋值(:=) 递归赋值( = ) 条件赋值 (?=) 追加赋值(+=)
用法示例:
简单赋值(:=)
递归赋值( = ):
条件赋值 (?=):
追加赋值(+=):
常用的预定义变量
—自动变量 $@ $^ $<
—特殊变量 $(MAKE) $(MAKECMDGOALS) $(MAKEFILE_LIST)
$(MAKE_VERRION) $(CURDIR) $(VARIABLES)
自动变量的解释:
自动变量的使用示例:
输出结果为:
$@ => all
$^ => first second third
$< => first
特殊变量的解释:
相关示例代码:
.PHONY : all out first second third test
all out :
@echo "$(MAKE)"
@echo "$(MAKECMDGOALS)"
@echo "$(MAKEFILE_LIST)"
first :
@echo "first"
second :
@echo "second"
third :
@echo "third"
test :
@$(MAKE) first
@$(MAKE) second
@$(MAKE) third
make test的输出结果
make all 的输出结果
相关示例代码:
.PHONY : test1 test2
TDelphi := Delphi Tang
D.T.Software := D.T.
test1 :
@echo "$(MAKE_VERSION)"
@echo "$(CURDIR)"
@echo "$(.VARIABLES)"
test2 :
@echo "$(RM)"
结果,自己可以编译查看一下