内核的Makefile

来源:互联网 发布:手机cs软件 编辑:程序博客网 时间:2024/05/03 04:30

内核的Makefile

在linux2.6.x/Documentation/kbuild目录下有周详的介绍有关kernel makefile的知识。
内核的Makefile分为5个组成部分:
Makefile     最顶层的Makefile
.config        内核的当前配置文档,编译时成为定层Makefile的一部分
arch/$(ARCH)/Makefile    和体系结构相关的Makefile
s/ Makefile.*      一些Makefile的通用规则
kbuild Makefile           各级目录下的大概约500个文档,编译时根据上层Makefile传下来的宏定义和其他编译规则,将源代码编译成模块或编入内核
顶层的Makefile文档读取 .config文档的内容,并总体上负责build内核和模块。Arch Makefile则提供补充体系结构相关的信息。 s目录下的Makefile文档包含了任何用来根据kbuild Makefile 构建内核所需的定义和规则。
(其中.config的内容是在make menuconfig的时候,通过Kconfig文档配置的结果。
举个例子:
    假设想把自己写的一个flash的驱动程式加载到工程中,而且能够通过menuconfig配置内核时选择该驱动该怎么办呢?能够分三步:
  第一:将您写的flashtest.c 文档添加到/driver/mtd/maps/ 目录下。
  第二:修改/driver/mtd/maps目录下的kconfig文档:
        config MTD_flashtest
             tristate “ap71 flash"
         这样当make menuconfig时 ,将会出现 ap71 flash选项。
第三:修改该目录下makefile文档。
ü       添加如下内容:obj-$(CONFIG_MTD_flashtest)       += flashtest.o
这样,当您运行make menucofnig时,您将发现ap71 flash选项,假如您选择了此项。该选择就会保存在.config文档中。当您编译内核时,将会读取.config文档,当发现ap71 flash 选项为yes 时,系统在调用/driver/mtd/maps/下的makefile 时,将会把 flashtest.o 加入到内核中。即可达到您的目的

原创粉丝点击