Makefile 变量定义

参考来源: Makefile中的变量

foo = $(bar)

这是最简单的一种变量定义方式, 会在8引用时展开*.

优点是可以引用后面定义的变量.

缺点则是容易引起自己引用自己的死循环; 而且如果引用了函数的话, 函数会在被引用的地方执行.

foo := $(bar)

这种方式会在定义时直接展开, 可能 make 的效率稍低, 不能引用后定义的变量, 但是会避免方式一的缺点, 这是比较常用的定义方式.

foo ?= $(bar)

如果 foo 没有被定义过, 则定义为$(bar). 这是条件赋值, 常见于定义系统相关的变量, 如果没有默认的系统环境变量, 则定义之.