ubuntu crea una pregunta sobre el archivo

ubuntu crea una pregunta sobre el archivo

Tengo una pequeña pregunta sobre un archivo make, aquí está el código:

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

Quiero saber qué hace este código:

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

gracias por el avance~~

Respuesta1

El comando cambia al directorio $(KDIR)y ejecuta make desde allí para construir el destino modules.

$(MAKE)es una macro que ejecuta el ejecutable make. La razón (en lugar de simplemente usar make) es que ese ejecutable podría tener nombres diferentes.

-C <directory>cambia a un directorio determinado antes de ejecutar make.

SUBDIRS=<variable>define la variable SUBDIRScuando se ejecuta make.

modulessignifica que intentará construir ese objetivo.

información relacionada