ifeq ($(KERNELRELEASE),)
#判斷描述內核版本的KERNELRELEASE變量是否爲空,只有執行了make命令的當前目錄爲內核源碼目錄時,該變量纔不爲空
KERNELDIR ?= /linux-2.6.29.4/linux-2.6.29.4 #定義內核路徑
PWD := $(shell pwd) #獲取當前模塊路徑
modules: #標識符,以冒號結尾,此處表示makefile文件的一個功能選項
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
#MAKE -C 內核路徑 M=模塊路徑 modules, 該句執行內核模塊的編譯
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean: #刪除多餘文件標識
rm-rf *.o *.mod.o *.mod.c *.symvers modul*
#刪除編譯過程的中間文件的命令
else
obj-m := helo.o
#將hello.o編譯成hello.ko模塊,如果要編譯其他模塊時,將hello.o中的hello改爲模塊的文件名
endif
Linux 內核模塊makefile
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.