“=”最基本的赋值方式
“:=”覆盖之前的值
“?=”若没有则赋值,有则保留原来的(相当于不执行该赋值操作)
“+=”就是在原的基础上添加
测试Makefile如下:
var="this is original\n"
ifdef recover
var:="this is recover(:=)\n"
endif
ifdef nodefinevalue
var?="this is nodefinevalue(?=)\n"
endif
ifdef add
var+="this is add(?=)\n"
endif
all:
@echo $(var)
运行结果如下:
jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make
this is original
jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make recover=ture
this is recover(:=)
jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make nodefinevalue=ture
this is original
jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make add=ture
this is original
this is add(?=)