04_Makefile编译

04_Makefile编译

4.1 编译器路径设置

• 拿到源码后一般需要设置一下编译器路径,在源码目录Makefile文件中可以设置编译路径“CROSS_COMPILE”

• 前面编译环境搭建的时候,解压arm-2009q3的目录和这里对应

04_Makefile编译

4.2 Makefile编译文件

(1)强制编译

• 强制编译

– 源码开发者强制要求编译进内核的文件

• 打开drivers/Makefile文件

– 类似下面的写法,只要编译内核就必须编译这个文件

– obj-y += gpio/

(2)配置编译

• 配置编译

– 驱动开发人员可以通过配置选择编译

• 打开drivers/Makefile文件

– 强制编译char目录下的文件

– obj-y += char/

• 打开drivers/char/Makefile文件

– 如果定义了宏CONFIG_LEDS_CTL则将itop4412_leds.c文件编译进内核

– obj-$(CONFIG_LEDS_CTL) += itop4412_leds.o

(3)依赖编译

• 依赖编译

– 一个驱动的编译需要另外驱动的支持

– 这一部分不需要另外写编译脚本,只需要在Kconfig中配置即可

• 例如显卡驱动VIDEO_JPEG_V2X中需要MEDIA_SUPPORT等驱动,那么编译显卡驱动的同时也需要将依赖的驱动选上。

4.3 Linux内核编译流程分析

04_Makefile编译

4.4 简单测试(实验)

• 将LEDS驱动编译进内核

04_Makefile编译

04_Makefile编译

– 测试

04_Makefile编译

• 将LEDS驱动不编译进内核

使用make menuconfig将LED的宏变量进行屏蔽,接着重新编译内核并测试。

04_Makefile编译

当前目录下.config文件中宏变量CONFIG_LEDS_CTL已被注释:

04_Makefile编译

– 测试

04_Makefile编译