深入探索Make工具中的宏与特殊目标
1. 宏的基本定义与赋值
在Make工具里,宏的赋值方式多样,不同的赋值运算符有着不同的特性。
-name = value:当使用=进行赋值时,若name之前已定义,value会直接追加到name的已有内容之后。不过,要是name是用:=定义的,make会先将value完全展开,再追加到name内容之后。
-name ?= value:此运算符用于创建递归展开的变量name,但仅在name未被定义时生效。需注意,即便变量被赋予空值,也会被视为已定义。
-define name ... endef:这种方式同样用于定义递归展开的变量,和=类似。但使用define时,能给宏赋予包含一个或多个换行符的值,这是其他赋值形式(=,:=,+=,?=)所不具备的功能。
宏值的