1.Makefile的组织结构
.config 内核配置文件
arch/$(ARCH)/Makefile 对应体系结构的Makefile
scripts/Makefile.* 所有kbuild Makefile的通用规则等定义
顶层目录的Makefile读取.config文件,根据.config文件中的配置选项编译内核。这个.config文件是内核配置过程中生成的。
顶层目录的makefile负责编译vmlinux(常驻内存的内核映像)和module(任何模块文件)。它递归地遍历内核源代码树中的所有子目录,编译所有的目标文件。
编译访问的子目录列表依赖于内核配置。顶层目录的Makefile原原本本的包含了一个arch Makefile,就是arch/$(ARCH)/Makefile。这个arch Makefile给顶层目录给顶层目录提供了体系结构的相关的信息。
每个子目录都有一个Kbuild Makefile(内核编译过程调用),这些Makefile执行从上层传递下来的命令。这些Makefile使用.config文件中的信息,构建各种文件列表,由Kbuild编译静态链接或者模块化的目标程序。
scripts/Makefile.*几个文件包含了Kbuild Makefile所有的定义和规则等,用于编译内核。