寻寻觅觅,2.6的kernel程序写了不少,许多时候Makefile也都是各异的.还记得有一次写了个/lib/modules/$(shell uname -r)/build,晓磊说她机子不存在.呵呵,其实一个soft link的问题.也许有时还真是需要一个标准.以后我2.6 kernel的Makefile写法大概就用如下的写法了.个人喜好.
obj-m += parname.o # 产生parname模块的目标文件,多个的话直接加
#eg: obj-m += parname1.o parname2.o parname3.o
CURRENT_PATH := $(shell pwd) #模块所在的当前路径
LINUX_KERNEL := $(shell uname -r) #Linux内核源代码的当前版本
LINUX_KERNEL_PATH := /lib/modules/$(shell uname -r)/build
#Linux内核源代码的绝对路径.这里根据你linux安装而定.最好你还是ls /usr/src看看
再ls /lib/modules/..../build看看没有的话,自己建立了.一般安装了kernel header,以及kernel header develop都是具有的.
|
文件: | Makefile_kernel.tar |
大小: | 10KB |
下载: | 下载 |
|
all: make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules #编译模块了
clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean #清理
#我以前clean都是 rm -f *.o *.ko 可是有的时候有些什么mod...很乱的,写了一大堆的*XXX*.这样clean居然有个Module.symvers 还是没去掉
再加个了哦
rm -f Module.symvers
我cp过来后tab有问题了,大家注意下.ok 就这么多了.
用户态度的Makefile
|
文件: | Makefile_user.tar |
大小: | 10KB |
下载: | 下载 |
|
|
阅读(1395) | 评论(0) | 转发(0) |