前言
最近又看了一下Makefile规范写法,做一点小笔记。
笔记
"=", ":=", "?=" 意义
"=":
make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:
x = first
y = $(x)
x = second
在上例中,y的值将会是 second 。
":=":
表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
x := first
y := $(x)
x := second
在上例中,y的值将会是 first 。
make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:
x = first
y = $(x)
x = second
在上例中,y的值将会是 second 。
":=":
表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
x := first
y := $(x)
x := second
在上例中,y的值将会是 first 。
"?=":
变量如果没有被赋值就赋等号后面的值。