カーネル ツリーからモジュールをビルドする場合は、次のような単純な makefile が機能するはずです。
MODULE_NAME = mymodule
SRC := foo.c src/bar.c
# Path to target Linux Kernel
KDIR := $(shell pwd) # <--- Fill in with path to kernel you're compiling against
$(MODULE_NAME)-objs = $(SRC:.c=.o)
obj-m := $(MODULE_NAME).o
PWD := $(shell pwd)
EXTRA_CFLAGS := -I$(PWD)/src -I$(PWD)/include
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
行に見られるようにSRC :=
、サブディレクトリ内のファイルを含むすべてのソース ファイルへのパスを指定するだけです。の最上位カーネル makefile がKDIR
コンパイルを処理します。
カーネル ビルド システムとツリー ビルド以外の詳細については、 のカーネル ソース ドキュメントを参照してDocumentation/kbuild/modules.txt
ください。