次のコードは、Linuxの実行から取得したものです
BASEINCLUDE ?= /home/ben/work/runninglinuxkernel_4.0
#BASEINCLUDE ?= /lib/modules/`uname -r`/build
mydemo_misc-objs := mydemodrv_misc.o
obj-m := mydemo_misc.o
all :
$(MAKE) -C $(BASEINCLUDE) M=$(PWD) modules;
clean:
$(MAKE) -C $(BASEINCLUDE) SUBDIRS=$(PWD) clean;
rm -f *.ko;
makeのターゲットがすべての場合、-C (BASEINCLUDE)は、カーネルソースディレクトリにジャンプしてMakefileを読み取ることを示します。M=(BASEINCLUDE)は、カーネルソースディレクトリにジャンプしてMakefileを読み取ることを示します。M=(B A S E I N C L U- D Eが)を指す次のホップに転送するコアソースコード先レコード読み取りが取られ、その中にM A K E F I L E 、M=(PWD)は、現在のディレクトリに戻って、現在のMakefileの読み取りと実行を続行することを示します。
コンパイル後、mydemo_misc.koが最終的に生成されます。
さらに:
mydemo_misc-objs:= mydemodrv_misc.o前のmydemo_miscはコンパイルされたファイルの名前であり、固定された表現である必要があり、変更後にコンパイルが失敗します