2011-05-23 Kconfig 与makefile

Kconfig 是make menuconfig 的主要文件.(相关语法不作讨论).在Kconfig 里面加入选项后,在menuconfig 选择后就可以在内核的根目录的隐藏文件.config里面看到.顶层的Makefile文件读取 .config文件的内容,并总体上负责build内核和模块。

 

假设想把自己写的一个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 加入到内核中。即可达到你的目的

 

所以也有很多makefile文件这样写:

obj-y       += flashtest.o

这样就不用根据.config文件里面的配置了,直接是选择.

在将驱动放在内核外的文件夹,不用编译进内核,直接

KERNELDIR = ~/eLDK/kernel/src

PWD := $(shell pwd)

obj-m := m1-ts.o

modules:

 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

 cp m1-ts.ko ~/eLDK/workspace/lRootFS/drv/

而在/home/cai/eLDK/kernel/src/arch/arm/mach-softwinner中makefile:

obj-y += ../../../../../drivers/system/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值