我在the FreeBSD Makefile中找到了${_+_}
。
BSD Makefile中的${_+_}
是什么意思?
最佳答案
${_+_}
是指变量。它在share/mk/sys.mk中定义,由make进程读取。因此用户Zack在他的评论中指出了正确的方向。在某些情况下,此变量会扩展为+
符号,具体取决于赋予make的标志:
.if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n"
_+_ ?=
.else
_+_ ?= +
.endif
可以在引入了该符号的this commit和this one注释中找到其基本原理:
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).