Makefile先决条件中的变量赋值

Makefile先决条件中的变量赋值,makefile,linux-kernel,kbuild,Makefile,Linux Kernel,Kbuild,我正在浏览Linux内核代码,试图了解映像是如何构建的。 在scripts/makefile.buildmakefile中,有一些行如下所示: $(real-objs-m) : part-of-module :=y $(real-objs-m) : quiet_modtag := [M] $(multi-objs-m) : modname=$(modname-multi) 它们看起来不像目标和先决条件行,也不像静态模式规则。 我已经被谷歌搜索了很多次,但似乎没有什么答案

我正在浏览Linux内核代码,试图了解映像是如何构建的。 在
scripts/makefile.build
makefile中,有一些行如下所示:

$(real-objs-m)    :   part-of-module :=y
$(real-objs-m)    :   quiet_modtag := [M]
$(multi-objs-m)   : modname=$(modname-multi)
它们看起来不像目标和先决条件行,也不像静态模式规则。 我已经被谷歌搜索了很多次,但似乎没有什么答案。 这些语法是什么意思?

这是特定于目标的变量值

从文件中

此功能允许您根据
make
当前正在构建的目标为同一变量定义不同的值。与自动变量一样,这些值仅在目标配方的上下文中可用(以及在其他特定于目标的分配中)

目标特定变量还有一个特殊特性:定义目标特定变量时,该变量值对该目标的所有先决条件及其所有先决条件都有效(除非这些先决条件使用其自身的目标特定变量值覆盖该变量)