make menuconfig , Kconfig , Makefile , .config,弄清楚这四者的关系

来源:互联网 发布:http请求模拟器json 编辑:程序博客网 时间:2024/05/21 10:08
 make menuconfig

arch/arm/mach-s3c2440/Kconfig

arch/arm/mach-s3c2440/Makefile

.config

Kconfig就是menuconfig中的内容来源,在menuconfig中选中了某项也就会在.config中体现出来,而makefile中则根据选项来决定某项。

如我现在要将arch/arm/mach-s3c2440/mach-mini2440.c编译进内核,首先要做Kconfig中增加其选项

  config MACH_MINI2440

      bool "MINI2440 development board"

      .

      .

更多内容不再列出。然后make menuconfig 在

System Type --->

  S3C2440 Machines --->

    [*] MINI2440 development board

如果选中了此项,在顶层的.config文件中就会有

CONFIG_MACH_MINI2440 = y

再在makefile中添加

obj-$(CONFIG_MACH_MINI2440) += mach-2440.o

这样makefile再读取.config时发现CONFIG_MACH_MINI2440为y就会把mach-2440.c编译进来。

这个过程还算比较清楚,如果你自己在arch/arm/mach-s3c2440/写了一个针对你自己开发板c文件,yourboard.c那可以把该目录下的makefile中的

obj-$(CONFIG_MACH_MINI2440) += mach-2440.o改成

obj-$(CONFIG_MACH_MINI2440) += yourboard.o即可

这里也就是将mach-smdk2440.c复制成gml-2440.c同时将obj-$(CONFIG_MACH_MINI2440) += gml-2440.o

然后修改时钟频率,注释掉smdk_machine_init()。

转自:http://hi.baidu.com/rqm3000/blog/item/59f0d397f80da27e54fb96a1.html