驱动模块Makefile 编写【原创】

为了省去每次编译内核的麻烦,于是采用模块的方式进行编写,这样会省很多时间。

 

makefile:

 

#

# gpio_keys

#

PWD :=$(shell pwd)

KERNELDIR := /home/zjf/R40/lichee/linux-3.10

 

 

ARCH=arm

 

 

CROSS_COMPILE = /home/zjf/R40/lichee/out/sun8iw11p1/linux/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-

 

 

CC=$(CROSS_COMPILE)gcc

 

 

LD=$(CROSS_COMPILE)ld

 

 

obj-m += gpio_keys.o

 

 

modules:

$(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) modules    //必须TAB缩进

 

clean:    

make -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) clean   //必须TAB缩进

 

 

上面不缩进的话会提示:Makefile:24: *** missing separator。 停止。

要编译的.c 文件可以放在其他地方,不一定非要放在内核目录下,编译后会在当前目录生成 .o 和.ko文件。

你可能感兴趣的:(linux内核模块学习)