#这里KERNELRELEASE是在kernel顶层Makefile中定义的一个变量,所以会直接跳过ifneq
ifneq ($(KERNELRELEASE),)
obj-m := your_module_name.o #说白了这里是编译发行版的内核用的
else
#下面这句指定kernel源码的路径,通过shell命令($:uname -r)得到当前的kernel版本号
KERNELSRC = /usr/src/linux-headers-$(shell uname -r)
modules:
make -C $(KERNELSRC) SUBDIRS=$(PWD) $@ #SUBDIRS 是模块代码路径,在kernel顶层 #Makefile 中定义,PWD 也是在kernel顶层Makefile中定义,并通过shell命令 ($:pwd)获得的当前路径
clean:
rm -f *.o *.ko *.mod.c *~
endif
其实也可以写成
KERNELSRC = /usr/src/linux-headers-$(shell uname -r)
modules:
make -C $(KERNELSRC) SUBDIRS=$(PWD) $@
clean:
rm -f *.o *.ko *.mod.c *~
阅读(980) | 评论(0) | 转发(0) |