在Linux内核Makefile中构建变量

时间:2014-11-28 17:15:47

标签: linux makefile kernel

我目前正在尝试了解Linux内核的构建过程。在查看Makefile时,我在表格中找到了几条规则

scripts_basic:
    $(Q)$(MAKE) $(build)=scripts/basic
    $(Q)rm -f .tmp_quiet_recordmcount

所有递归调用其他make进程,并将目录传递给进程。同时,似乎有一个变量,它被传递,表明如何处理子目录($(build)部分。

看看make过程,据我所知,这似乎总是obj,到目前为止,在make过程中我找不到这个变量的任何其他值。此外,我似乎无法找到设置此变量的任何位置。

那么这个变量的用途是什么以及它是如何使用的(例如,设置和处理的位置)。

1 个答案:

答案 0 :(得分:1)

不完全是。相关位在scripts/Kbuild.include中,表示

build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj

这意味着如果$(KBUILD_SRC)不为空,则scripts/Makefile.build的路径将作为绝对路径(或至少具有可从工作目录中找到的路径)给出内核源代码树顶部的路径。据我所知,这是为了让子make使用相同的Makefile并避免使用相同的make代码几十次。