一:內(nèi)核模塊Makefile
#這一行定義了要編譯的內(nèi)核模塊目標(biāo)文件。obj-m表示目標(biāo)模塊對(duì)象文件(.o文件),
#并指定了兩個(gè)模塊源文件:helloworld-params.c 和 helloworld.c。最終會(huì)生成這
#這兩個(gè).c文件的.o對(duì)象文件。
obj-m := helloworld-params.o helloworld.o#這行定義了內(nèi)核源代碼構(gòu)建環(huán)境的路徑,KERNELDIR變量指向當(dāng)前系統(tǒng)內(nèi)核模塊構(gòu)建目錄,
#?= 表示如果 KERNELDIR 沒有被定義,則使用后面的默認(rèn)值。
KERNELDIR ?= /lib/modules/$(shell uname -r)/build#這是一個(gè)目標(biāo)定義,all 和 default 是 moudule 目標(biāo)的別名,也就是在允許 make 或
#make all 或 make default 時(shí),會(huì)編譯的模塊。
all default: modules#這個(gè)目標(biāo)表示在運(yùn)行 make install 時(shí),會(huì)調(diào)用 modules_install 目標(biāo), 用于安裝編譯好的
#內(nèi)核模塊
install: modules_install#這一行定義了多個(gè)目標(biāo),它們分別是 modules,modules_install, help, clean, 這些目標(biāo)都是由
#$(MAKE) 命令來驅(qū)動(dòng)。
modules modules_install help clean:$(MAKE) -C $(KERNELDIR) M&