Linux 內核模塊makefile

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章