Ubuntu のファイル作成に関する質問

Ubuntu のファイル作成に関する質問

Make ファイルについて少し質問があります。コードは次のとおりです。

KERNEL_VERSION := $(shell uname -r)
KERNEL_MODLIB  := /lib/modules/$(KERNEL_VERSION)
KERNEL_SOURCES := $(shell test -d $(KERNEL_MODLIB)/source && echo $(KERNEL_MODLIB)/source || echo $(KERNEL_MODLIB)/build)
CPPFLAGS       += -DDRIVER_ERROR -DDRIVER_DEBUG
obj-m   := main.o
KDIR    := $(KERNEL_SOURCES)
PWD := $(shell pwd)
default:
     $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules 
clean:
     $(RM) main.ko.unsigned  main.mod.c  main.mod.o  main.o modules.order  module.symvers .main* .tmp_versions/*

このコードが何をするのか知りたいです:

$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules 

事前ありがとう〜〜

答え1

コマンドはディレクトリに変更し$(KDIR)、そこから make を実行してターゲットをビルドしますmodules

$(MAKE)は、make 実行ファイルを実行するマクロです。 を使用する理由は ( を使用する代わりにmake)、その実行ファイルの名前が異なる可能性があるからです。

-C <directory>make を実行する前に特定のディレクトリに変更します。

SUBDIRS=<variable>make を実行するときに変数を定義しますSUBDIRS

modulesつまり、そのターゲットを構築しようとするということです。

関連情報