当前位置: 技术问答>linux和unix
关于Makefile中编写的一些问题
来源: 互联网 发布时间:2016-07-21
本文导语: 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 *.symv...
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文件中的意思是什么?是找到linux系统的源码吗?
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文件中的意思是什么?是找到linux系统的源码吗?
|
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
-------
清空当前目录所有的中间文件
--------
定义要生成的模块名称是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
-------
清空当前目录所有的中间文件
|
完整的makefile里应该还有一个模块名字之类的宏吧,
这个是2.6内核的module 的makefile模式 它根据你提供的obj 里的.o 自己分析需要编译那些源文件生成object.然后把object连接成module ko文件。