2017-12-17 6 views
1

서브 디렉토리로 이동하여 다른 Makefile을 호출하는 Master Makefile을 만들고 싶습니다. 이 마스터 메이크를 들어, 내가 한 :마스터 메이크 파일 - 현재 경로의 디렉토리로 이동

DIR_1D = $(dir $(mkfile_dir))1D 
DIR_2D = $(dir $(mkfile_dir))2D 
DIR_3D = $(dir $(mkfile_dir))3D 

# Phony target 
.PHONY: all clean 

all: 
     @(cd $(DIR_1D) ; $(MAKE)) 
     @(cd $(DIR_2D) ; $(MAKE)) 
     @(cd $(DIR_3D) ; $(MAKE)) 

# Clean target 
clean: 
     @(cd $(DIR_1D) ; $(MAKE) [email protected]) 
     @(cd $(DIR_2D) ; $(MAKE) [email protected]) 
     @(cd $(DIR_3D) ; $(MAKE) [email protected]) 

UPDATE : 죄송합니다, 바보 오타 오류, 수정, 감사

+0

내 라이브러리에서'GNU make' https://github.com/igagis/prorab/blob/master/wiki/TutorialBasicConcepts.md를 보시면 마스터 메이크 파일을 가지고 서브 디렉토리에 독립적 인 메이크 파일을 가질 수 있습니다. 그리고 동시에''GNU make '의'-j' 스위치를 사용하여 병렬로 물건을 만드는 비 재귀 적 make를한다. – igagis

답변

2

당신은 변수 DIR_1D, DIR_2D, DIR_3D을 설정하지만 cd 명령을 사용 DIR_1, DIR_2, DIR_3. 이러한 변수를 설정하지 않았으므로 인수가없는 cd을 실행 중이며 인수가없는 cdcd "$HOME"을 의미합니다.