内核版本:2.6.38
1. src := $(obj)
$(obj) 是从外部传递进来的参数。
2. kbuild-dir
[Plain Text] 纯文本查看 复制代码 kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
kbuild-dir 是要编译目录的绝对路径,路径 $(src) 通过顶层 Makefile 中的 $(build) 变量传递进来,如:$(vmlinux-dirs): prepare scripts
$(Q)$(MAKE) $(build)=$@
3. kbuild-file
[Plain Text] 纯文本查看 复制代码 kbuild-file := $(if $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Kbuild,$(kbuild-dir)/Makefile)
把要编译的目录下的 Makefile (Kbuild 文件就是 kbuild Makefile)包含进来,如果要编译的目录下有 Kbuild 就用 Kbuild,Kbuild 优先,没有的话就用 Makefile 。
这里的 wildcard $(kbuild-dir)/Kbuild 表示测试 Kbuild 文件有没有存在,如果已经存在,wildcard 函数就会返回存在的文件。 |