Linux 2.6內核驅動模塊Makefile模版,這個模版非常簡潔,單目錄下增減源文件時無需修改。
注意模塊的編譯有兩次make調用的過程,這兩次過程之間Makefile中定義的變量是無法自動傳遞的,所以必須通過命令行來傳遞。
KVERS = $(shell uname -r)
# Kernel modules
MODNAME=test
obj-m := $(MODNAME).o
OBJS = $(patsubst %.c, %.o, $(wildcard *.c))
# Specify flags for the module compilation.
EXTRA_CFLAGS=-g -O0 -I$(M)/inc
all:
make -C /lib/modules/$(KVERS)/build $(MODNAME)-objs="$(OBJS)" M=$(CURDIR) modules
clean:
make -C /lib/modules/$(KVERS)/build M=$(CURDIR) clean
參考資料:
《Linux設備驅動開發詳解》第二版,宋寶華 http://www.linuxidc.net/thread-2174-1-1.html
內核Document/kbuild相關文檔