驱动模块makefile文件编写求助

duoduozb 2009-12-22 05:12:40
自己编的一个linux驱动,我原来的工程目录是这样的:工程总目录下有一个include文件夹,所有的.c源文件,makefile文件,还有一个总的x.h头文件,x.h中include了include文件夹中所有的头文件和一些内核的头文件。include文件夹里有几个子文件夹,按类放头文件。每个.c源文件都#include "x.h"。下面是原来的makefile文件。在工程总目录下make可以生成.ko文件。
KERNELDIR :=/arm/linux-2.6.22.19
PWD :=$(shell pwd)
CFLAGS =-fno-common
CROSS_COMPILE =/arm/3.4.1/bin/arm-linux-
CC =$(CROSS_COMPILE)gcc
OBJECTS :=a.o b.o c.o d.o e.o
obj-m := mydriver.o
mydriver-objs := $(OBJECTS)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *.ko *.mod.o *.mod.c

现在工程的文件越来越多,很乱。我想建立这样的工程目录:
工程总目录下有:include文件夹,src文件夹,makefile文件。include文件夹和src文件夹下都有几个子文件夹,都按类放好头文件或源文件。x.h头文件也放在include文件夹下。
应该怎么来写makefile。怎么样在驱动模块的makefile中指定头文件、源文件的目录?是否还需要指定内核头文件的目录?
大家帮我看看!谢谢!
...全文
251 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
施施 2011-03-30
  • 打赏
  • 举报
回复
这是我写的 你看一下!
ifeq ($(KERNELRELEASE),)
KERNELRELEASE?=/opt/linux-2.6.22
PWD := $(shell pwd)
ARCH = ARM
CROSS_COMPILE = /opt/arm-2007q1/bin/arm-none-linux-gnueabi-
modules:
$(MAKE) -C $(KERNELRELEASE) M=$(PWD) modules
clean:
-rm -f *.elf *.gdb *.o *.ko *~
.PHONE: modules clean
else
obj-m:=keyboard1.o

endif
kingmax54212008 2010-05-07
  • 打赏
  • 举报
回复
你用一下nmake呢。
@ThomasJiang 2010-04-29
  • 打赏
  • 举报
回复
我也想知道,顶顶~~~
kyzf 2009-12-22
  • 打赏
  • 举报
回复
友情帮顶下。

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧