内核编译Makefile篇
一、总体结构
顶层Makefile:它是所有Makefile文件的核心,从总体上控制着内核的编译、连接
.config :配置文件,在配置内核时生成,所有Makefile文件(包括顶层目录及各级子目录)都是根据.config来决定使用哪些文件
arch/$(ARCH)/Makefile:对应于体系结构的Makefile,它用来决定哪些体系结构相关的文件参与内核的生成,并提供一些规则来生成特定格式的内核映像
scripts/Makefile.* : Makefile共用的通用规则、脚本等
kbuild Makefile :各级子目录下的Makefile,被上一层Makefile调用来编译当前目录下的文件
二、MAKE分析
Linux内核的编译过程从顶层Makefile开始,然后递归地进入各级子目录调用它们的Makefile,分为3个步骤:
1、决定编译那些文件
(1)、顶层Makefile决定内核根目录下哪些子目录将被编译进内核
顶层MAKEFILE中有如下内容:
init-y := init/
drivers-y := drivers/ sound/ firmware/
net-y := net/
libs-y := lib/
core-y := usr/
...
core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/
顶层Makefile将这13个子目录分为5类,除去include目录和后面不包含内核源码的目录外,还有一个arch目录在arch/$(ARCH)/Makefile中被包含进内核&#