04_Makefile编译
04_Makefile编译
4.1 编译器路径设置
• 拿到源码后一般需要设置一下编译器路径,在源码目录Makefile文件中可以设置编译路径“CROSS_COMPILE”
• 前面编译环境搭建的时候,解压arm-2009q3的目录和这里对应
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内核编译流程分析
4.4 简单测试(实验)
• 将LEDS驱动编译进内核
– 测试
• 将LEDS驱动不编译进内核
使用make menuconfig将LED的宏变量进行屏蔽,接着重新编译内核并测试。
当前目录下.config文件中宏变量CONFIG_LEDS_CTL已被注释:
– 测试