Ubuntu Make-Datei Frage

Ubuntu Make-Datei Frage

Ich habe eine kleine Frage zu einer Make-Datei, hier ist der Code:

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/*

Ich möchte wissen, was dieser Code macht:

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

Danke für den Vorschuss~~

Antwort1

Der Befehl wechselt in das Verzeichnis $(KDIR)und führt von dort aus „make“ aus, um das Ziel zu erstellen modules.

$(MAKE)ist ein Makro, das die ausführbare Datei make ausführt. Der Grund dafür (anstatt einfach zu verwenden make) ist, dass diese ausführbare Datei verschiedene Namen haben könnte.

-C <directory>Änderungen an einem bestimmten Verzeichnis vor dem Ausführen von make.

SUBDIRS=<variable>definiert die Variable SUBDIRSbeim Ausführen von make.

modulesbedeutet, dass versucht wird, dieses Ziel zu erstellen.

verwandte Informationen