我在the FreeBSD Makefile中找到了${_+_}

BSD Makefile中的${_+_}是什么意思?

最佳答案

${_+_}是指变量。它在share/mk/sys.mk中定义,由make进程读取。因此用户Zack在他的评论中指出了正确的方向。在某些情况下,此变量会扩展为+符号,具体取决于赋予make的标志:

.if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n"
_+_     ?=
.else
_+_     ?=  +
.endif


可以在引入了该符号的this committhis 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).

10-06 13:07