ubuntu faz questão de arquivo

2

Eu tenho uma pequena pergunta em um arquivo make, aqui está o 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/*

Eu quero saber o que esse código faz:

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

thx para avançar ~~

    
por Cong Li 13.10.2015 / 15:51

1 resposta

0

O comando muda para o diretório $(KDIR) e executa o make para criar o destino modules .

$(MAKE) é uma macro que executa o executável do make. A razão para isso (em vez de usar apenas make ) é que esse executável pode ter nomes diferentes.

-C <directory> muda para um determinado diretório antes de executar o make.

SUBDIRS=<variable> define a variável SUBDIRS ao executar o make.

modules significa que ele tentará criar esse alvo.

    
por MasterOfBinary 13.10.2015 / 16:48