Makefile 先决条件中的变量分配

时间:2021-06-04 09:49:15

标签: makefile linux-kernel kbuild

我正在查看 Linux 内核代码以尝试了解映像的构建方式。 在 scripts/makefile.build Makefile 中,有一些看起来像这样的行:

$(real-objs-m)    :   part-of-module :=y
$(real-objs-m)    :   quiet_modtag := [M]
$(multi-objs-m)   : modname=$(modname-multi)

它们看起来既不像目标和先决条件行,也不像静态模式规则。 我已经用谷歌搜索了很多,但似乎没有任何答案。 这些语法是什么意思?

1 个答案:

答案 0 :(得分:1)

这是特定于目标的变量值

来自文档 https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html

<块引用>

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

<块引用>

目标特定变量还有一个特殊功能:当您定义目标特定变量时,该变量值也对该目标的所有先决条件及其所有先决条件等有效(除非这些先决条件覆盖了该变量)具有自己的特定于目标的变量值的变量)。

相关问题