ubuntu make文件问题

ubuntu make文件问题

我对 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>SUBDIRS在运行 make 时定义变量。

modules表示它将尝试构建该目标。

相关内容