歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux內核

Makefile之Linux內核模塊的Makefile寫法分析

前些天寫一個驅動模塊。竟然寫內核模塊Makefile時出了問題,於是將其總結下來,下次再用時拿過來改下就行了。

#General Purpose Makefile for Linux Kernel module by guoqingbo

KERN_DIR = /home/gqb/development/linux-kernel-2.6.37
#KERN_DIR = /usr/src/$(shell uname -r)
#KERN_DIR = /lib/modules/$(shell uname -r)/build

all:
    make -C $(KERN_DIR) M=$(shell pwd) modules   

clean:                                 
    make -C $(KERN_DIR) M=$(shell pwd) modules clean
    rm -rf modules.order

obj-m += xxx.o

第3行KERN_DIR表示內核源碼目錄,這種方式適用於嵌入式開發的交叉編譯,KERN_DIR目錄中包含了內核驅動模塊所需要的各種頭文件及依賴。若在PC機開發內核模塊則應使用第4、5行的寫法。

第8行中-C表示 指定進入指定的目錄即KERN_DIR,是內核源代碼目錄,調用該目錄頂層下的Makefile,目標為modules。

M=$(shell pwd)選項讓該Makefile在構造modules目標之前返回到模塊源代碼目錄並在當前目錄生成obj-m指定的xxx.o目標模塊。

clean這個目標表示將模塊清理掉

obj-m += xxx.o即指定當前目錄要生成的目標模塊,然後modules目標指向obj-m變量中設定的模塊

Copyright © Linux教程網 All Rights Reserved