obj-m (tab)= module.o
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD (tab) := $(shell pwd)
all:
(tab) $(MAKE) –C $(KERNELDIR) M=$(PWD)
clean:
(tab)rm –rf *.o *~ core .depend .*.cmd *.ko *.mod.c .temp_versions *.symvers
这是在一个教材上看到的一个Makefile文件的内容,开始不理解什么意思,但是一位好心的朋友回答了我的问题,解决了我的疑惑。
下面就是对第条语句的解释。
obj-m (tab)= module.o
--------
定义要生成的模块名称是module.ko 隐含说明驱动程序的入口在module.c 文件里
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
-------------------
指定内核目录 ,你可以执行uname -r 看看结果,再到/lib/modules/下去看看就明白了
PWD (tab) := $(shell pwd)
---------
指定当前目录 pwd命令不用说吧
all:
(tab) $(MAKE) –C $(KERNELDIR) M=$(PWD)
------
all是make的默认目标
$(KERNELDIR) 和$(PWD) 刚才说过了 -C指定内核目录 -M指定模块文件目录
目的是编译此模块
clean:
(tab)rm –rf *.o *~ core .depend .*.cmd *.ko *.mod.c .temp_versions *.symvers
-------
清空当前目录所有的中间文件
学习技术还是要多动手啊。~ |