우분투 파일 만들기 질문

우분투 파일 만들기 질문

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>SUBDIRSmake를 실행할 때 변수를 정의합니다 .

modules이는 해당 목표를 구축하려고 시도한다는 것을 의미합니다.

관련 정보