当前位置: 首页 > 工具软件 > .config > 使用案例 >

.config文件和Menuconfig以及Makefile参考学习

穆丁雨
2023-12-01

Linux内核Make Menuconfig 与 Makeifle间的交互_zhiweimai的博客-CSDN博客

以ARM平台为例,具体配置过程:

1.当执行make menuconfig 时,系统首先读取arch/arm/Kconfig生成整个配置界面

2.在读取配置界面的同时,系统会读取Kconfig文件,生成所有配置选项的默认值

3.当修改完配置并保存后,系统会更新顶层目录下的.config

4.当执行make时,各层的Makefile会根据.config文件中的编译选项来决定哪些文件会被编译到内核中,或者编译成模块。

Kconfig文件:在make menuconfig命令的时候读取的文件

.config文件 :是make menuconfig完成后的最终输出文件,内部包含了对内核所有的配置项

kconfig------->.config---------->makefile

linux-3.4.2/.config

CONFIG_CRYPTO_MD5=y 
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m

=y :表示直接编译进内核

=m:表示编译程模块   ko文件,可以动态加载到内核运行

在make的过程,Makefile会对.config进行解析,并输出两个文件include/config/auto.conf

CONFIG_CPU_S3C2442=y
CONFIG_MMC=y
CONFIG_CPU_S3C2443=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_ZISOFS=y
CONFIG_BUG=y
CONFIG_NFS_FS=y
CONFIG_MII=y
CONFIG_ARM=y
CONFIG_CRYPTO=y

 include/linux/autoconf.h

#define CONFIG_CPU_S3C2443 1
#define CONFIG_INITRAMFS_SOURCE ""
#define CONFIG_ZISOFS 1
#define CONFIG_BUG 1
#define CONFIG_NFS_FS 1
#define CONFIG_MII 1
#define CONFIG_ARM 1
#define CONFIG_CRYPTO 1
#define CONFIG_MTD_CFI_INTELEXT 1

auto.conf文件是作用于Makefile的,它是在定义Makefile变量。而autoconf.h是作用于源代码的,它是在定义一些的宏,匹配源码中的条件编译。

 类似资料: