有关makefile语法的内容,可以Google下”“跟我一起学makefile”。讲的挺好的,第一次看可能看的一塌糊涂。看多几次就好了。
内核的makfile在源码目录Documentation\kbuild\makefiles.txt也有介绍。
一、内核的Makefile涉及到5部分的内容
1.Makefile, 位于kernel根目录, 顶层Makefile. 最终目的是编译内核, 生成 vmlinux 和 modules.
2。 .config, kernel配置文件, 已在 kernel之编译体验分析过生成方式和过程
3.arch/$(ARCH)/Makefile, 芯片架构相关的Makefile
4.scripts/Makefile.*, Makefile的规则和脚本
5.kbuild Makefiles, 即各子目录下的Makefile, 最终都会被顶层Makefile调用的.
小知识
obj-y, 表示需要编译进内核, 其形式很简单
obj-$(CONFIG_DM9000) += dm9dev9000c.o, 含变量的形式.
obj-y += dm9dev9000c.o, 替换变量后的直观形式.
obj-m, 表示需要编译为.ko模块. 有三种形式
https://draapho.github.io/2017/09/14/1724-kernel-makefile/