“=”最基本的賦值方式
“:=”覆蓋之前的值
“?=”若沒有則賦值,有則保留原來的(相當於不執行該賦值操作)
“+=”就是在原的基礎上添加
測試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(?=)