1. =
最基本的赋值。
需要注意的是:makefile全部展开之后,才会最终确定变量的值,如下例:
val_1 = abc
val_2 = $(val_1)
val_1 = def
上例中,val_2的值是def,而不是abc
2. :=
同样是赋值操作,与‘=’赋值不同的是,':=',赋值的结果取决与在makefile中的位置,如下例:
val_1 := abc
val_2 := $(val_1)
val_1 := def
上例中,val_2的值是abc,即取决了makefile中的位置
3. ?=
首先判断变量是否被赋值过,如果没有被赋值过,那么赋予‘?=’后面的值;如果已经被赋值过,那么不再重新赋值,如下例:
val_1 = abc
val_1 ?= def
上例中val_1的值为abc
val_1 ?= def
上例中val_1的值为def
4. +=
添加等号后面的值,如下例:
val_1 = abc
val_1 += def
上例中,val_1的值为"abc def"
val_1 += abc
上例中,val_1的值为"abc"