【Linux内核】Linux内核模块编译时使用的Makefile文件模板

使用时请注意如下两点:

  • 此文件须放置到 驱动模块的源代码顶级目录下面
  • 在注释行 #WHAT_YOU_NEED_TO_CHANGED 下面将 MOD_NAMEMOD_SRCS 的取值根据实际情况进行修改
  • 此模板文件支持 使用【aarch64-linux-gnu-】交叉编译工具链 进行交叉编译到ARM64平台上,具体用法见 make help 输出
KVERS := $(shell uname -r)
#若定义了HC_KSD变量, 则以HC_KSD的取值替换默认的linux内核代码路径(/lib/modules/$(KVERS)/build)
KSRCDIR = /lib/modules/$(KVERS)/build
ifdef HC_KSD
KSRCDIR := $(HC_KSD)
endif

MAKE = make #代码默认不进行交叉编译
#若定义了HC_CTP变量, 则使用【aarch64-linux-gnu-】交叉编译工具链交叉编译到arm64上
ifdef HC_CTP
MAKE := make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64
endif

# WHAT_YOU_NEED_TO_CHANGED
#指定驱动模块的名字,注意:驱动模块的名字千万不能和本文件夹内的任何源文件同名!
MOD_NAME := hello
#指定驱动模块的所有依赖源文件
MOD_SRCS := hc_hello.c

#最终由XXX-objs链接生成$(MOD_NAME).o ,再生成$(MOD_NAME).ko
$(MOD_NAME)-objs := $(MOD_SRCS:.c=.o)
obj-m += $(MOD_NAME).o

# 模块编译额外FLAG, 放开后将以【完全不优化】模式编译模块
# EXTRA_CFLAGS = -g -O0

build: modules
modules clean:
	$(MAKE) -C $(KSRCDIR) M=$(CURDIR) $@
help:
	@echo -e '\n[HC_KSD=/path/to/kernel/srcdir] [HC_CTP=1] make [{build|clean}]\n'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值