您的位置:首页 > 其它

驱动程序Makefile 的解释

2016-07-27 13:17 211 查看
在任意一个目录下编写驱动程序,然后把此驱动程序编译为指定内核的模块,那么就要为此驱动程序写Makefile文件,假设驱动程序为:helloworld.c.此时编写Makefile文件。

/Makefile/

KERNAL ?=/home/forlinx/work/linux-3.2.0/  
//KERNAL是定义的一个变量,来指定我们要驱动程序要运行内核的源码的路径,“?=”表示如果这个变量没有被赋值 

                                                                               就把后面的变量赋给它。/home/forlinx/work/linux-3.2.0/ 表示内核源码的路径

obj-m +=helloworld.o  
 // 把helloworld.c编译为内核模块

default:

make -C $(KERNAL) M=$(PWD) modules  //make -C 是改变当前目录进入到变量KERNAL所指定的目录,M=$(PATH) 回到当前                                                                        目录下,执行当前
Makefile       modules是编译为模块

clean:

@rm -f  *.o *.order.o *.ko *.order *.mod*   //删除文件,@德作用是去掉删除时在屏幕上的显示的打印信息;-f 表示强制删除,忽略
                                     不存在的文件,从不给出提示。

补充:
http://tscsh.blog.163.com/blog/static/2003201032013151544087/(参数的意义) http://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html(=,?=,:=,+=的意义)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: