1.使用make menuconfig配置后(menuconfig根据Kconfig内核配置脚本定义的规则显示配置菜单),会生成.config配置文件(out目录下)
2. .config配置文件 定义了编译宏的打开情况 如
# CONFIG_MACH_MSM7X27_SURF is not set
CONFIG_MACH_MSM7X27A_RUMI3=y
CONFIG_MSM_DALRPC_TEST=m
3.Makefile根据.config配置文件决定哪些编译进内核,哪些编译进模块,哪些不编译
首先有如下几个关系:
obj-y 编译进内核
obj-m 编译进模块
obj-n 不编译
所以下面的规则就可以根据编译宏的值决定是否编译相应对象
单个文件:obj-$(CONFIG_ANON_INODES) += anon_inodes.o
多文件模块:
obj-$(CONFIG_LOGFS) += logfs/ //上级Makefile
obj-$(CONFIG_LOGFS) += logfs.o //本级Makefile
logfs-y += compr.o
.....
logfs-$(CONFIG_MTD) += dev_mtd.o
目录层次的迭代:obj-$(CONFIG_SND_AOA) += aoa/