1
我想通過執行一個Makefile來創建多個內核模塊。在不同的子目錄中創建/構建多個內核模塊
我有以下目錄和文件:
- 頂級目錄:
- subdir0:
- module0.c
- 的Makefile
- subdir1:
- module1.c
- 的Makefile
- subdir2:
- module2.c
- 的Makefile
- Makefile文件(我想執行這個)
- subdir0:
我想只執行頂級目錄中的Makefile,並且應該執行所有子目錄Makefile。我想爲每個子目錄獲取一個內核模塊。
這是我目前的設置,但它不起作用。如果我在子目錄中執行make,它會生成正確的* .ko文件。但是如果我執行最高級別的Makefile,它只會生成Module.symvers和modules.order,並且輸出看起來像每個Makefile都會被執行,但是在子目錄內沒有任何東西被創建。
我頂層Makefile文件有如下內容:
TARGETS := all clean
SUBDIRS := subdir0 subdir1 subdir2
.PHONY: $(TARGETS) $(SUBDIRS)
$(TARGETS): $(SUBDIRS)
$(SUBDIRS):
$(MAKE) -C [email protected] $(MAKECMDGOALS)
我子目錄Makefile中有以下代碼:
obj-m += module0.o
all:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
我會很高興,如果有人可以幫助我。
感謝, 米莎
Make toplevel * Makefile * similar,但使用'obj-y + = subdir0 /'等 – 0andriy
謝謝,我會試試看:) – p0kR
@ 0andriy這正是我想要的,非常感謝。 如果你已經寫了這個答案,我已經接受了:) – p0kR