하나의 Makefile을 실행하여 여러 개의 커널 모듈을 만들고 싶습니다.다른 하위 디렉토리에 여러 개의 커널 모듈 만들기/빌드
I이 디렉토리와 파일 다음
- 최상위 디렉토리 :
- subdir0 :
- module0.c
- 메이크
- 디렉토리 subdir1 :
- module1.c
- 메이크
- subdir2 :
- module2.c
- 메이크
- 메이크 (I이를 실행하려는)
- subdir0 :
최상위 디렉토리의 Makefile 만 실행하고 모든 하위 디렉토리 Makefile을 실행해야합니다. 각각의 서브 디렉토리에 대해 하나의 커널 모듈을 얻고 싶습니다.
이것은 현재 설정이지만 작동하지 않습니다. 하위 디렉토리 내부에서 make를 실행하면 올바른 * .ko 파일이 작성됩니다. 그러나 최상위 Makefile을 실행하면 Module.symvers 및 modules.order가 생성되고 모든 Makefile이 실행되는 것처럼 보이지만 하위 디렉토리에는 아무 것도 생성되지 않습니다.
내 최고 수준의 메이크 파일은 다음과 같은 내용이 있습니다
obj-m += module0.o
all:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
누군가가 나를 도울 수 있다면 내가 기쁠 :
TARGETS := all clean
SUBDIRS := subdir0 subdir1 subdir2
.PHONY: $(TARGETS) $(SUBDIRS)
$(TARGETS): $(SUBDIRS)
$(SUBDIRS):
$(MAKE) -C [email protected] $(MAKECMDGOALS)
내 하위 디렉토리 메이크는 다음과 같은 코드가 있습니다.
감사합니다, 미샤 @ 0andriy으로
toplevel * Makefile *과 유사하지만'obj-y + = subdir0 /'등을 사용하십시오. – 0andriy
고마워요.) – p0kR
@ 0andriy 그게 바로 제가 원했던 것입니다. 정말 고마워요. 답변으로 작성했다면 받아 들였습니다. :) – p0kR