Unix BSD生成文件中的${+;{}

Unix BSD生成文件中的${+;{},unix,makefile,bsd,Unix,Makefile,Bsd,我在中找到了${{+} BSD Makefiles中${{{+}的含义是什么?${{+}指的是一个变量。它是由make进程在其中读取的定义。因此,用户扎克在评论中指出了正确的方向;在某些情况下,此变量会扩展为+符号,具体取决于给定的标志: .if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n" _+_ ?= .else _+_ ?= + .endif 这方面的基本原理可在和的注释中找到,其中引入了符号:

我在中找到了
${{+}


BSD Makefiles中
${{{+}
的含义是什么?

${{+}
指的是一个变量。它是由make进程在其中读取的定义。因此,用户扎克在评论中指出了正确的方向;在某些情况下,此变量会扩展为
+
符号,具体取决于给定的标志:

.if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n"
_+_     ?=
.else
_+_     ?=  +
.endif
这方面的基本原理可在和的注释中找到,其中引入了符号:

Make make recurse into sub-directories and sub-makes when given
two -n flags.  If only one -n flag is given the old behaviour
is retained (POLA).

我可以告诉您,Makefile中命令行开头的裸
+
表示“即使在
-n
模式下运行此命令”。你发现的结构似乎与此有关。有可能,
+
只是一个不寻常的变量名,可以设置为
+
或为空(Make允许您在变量名中放置几乎任何内容),但我看不到它的位置,所以我只能做到这一点。谢谢您的友好回答:)