前瞻
官方文档位置:Linux/Documentation/Kbuild/makefiles.txt
内核makefile框架
linux内核makefile由五部分组成:
Makefile:顶层makefile,主makefile,用于定义vmlinux(kernel image)和module这两个目标的编译和构建及其在软件层面的依赖。
arch/$(ARCH)/Makefile:arch相关的makefile,arch/$(ARCH)/makefile定义目标在硬件架构层面上的依赖/编译选项,被主makefile所直接包含。
scripts/Makefile:makefile的解析规则。
Kbulid Makefile:分散在各个子目录下的makefile,用于逐级定义编译选项。
.config:kernel配置文件,该文件根据Kconfig文件,通过make menuconfig自动生成。
Kbulid makefile
Kbulid makefile可以使用Makefile和Kbulid两种文件名,但是当同一目录下同时含有这两种文件时,使用Kbuild文件作为makefile使用。
Kbuild目标定义:
Kbuild的目标一般包含三种形式:编译进内核的obj、编译为单独模块的obj以及编译为库的lib,三者的表现形式分别为:
ob