= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
估计=和:=比较难以理解,举个例子如下:
1、= 是当Makefile被最后展开以后,再确定变量的值,比如:
x = foo
y = $(x) bar
x = abc
这个例子中最后的结果y = abc bar
2、:= 是赋值的时候在Makefile中的位置,比如:
x := foo
y := $(x) bar
x := abc
这个例子中的结果:y = foo bar