2016-06-07 1 views
1

조건을 : 메이크가 메이크업에 전달패스 파일 인수는

  • 다음 hi 대상도 make

를 호출 make -f ../makefile hi

  • 내가 값을 전파 할 수있는 방법이 필요 -f에서 hi 내에서 실행중인 sub-make 명령에 이르기까지. 이 공식 문서에 기록 된대로 모든 변수 기록 파싱 메이크 파일이 포함 것을,

    CURR_MAKEFILE:=$(lastword $(MAKEFILE_LIST)) 
    
    bye: 
        echo 'whatever' 
    
    hi: 
        +$(MAKE) -f $(CURR_MAKEFILE) bye 
    

    그러나 참고 :

    bye: 
        echo 'whatever' 
    
    hi: 
        ${MAKE} bye 
    
  • +0

    그래서 "hi"를 하드 코딩하는 대신 명령 줄에서 전달 된 내용을 전달하고 싶습니다. 그러나 Make 타겟이 무엇을 실행할 지 말하면'hi'는 이미'hi'를 실행하고 있음을 이미 알고 있습니다; 어떻게 그럴 수 없습니까? 어쩌면 당신은 당신이 현재 얻고있는 것과 당신이 얻고 자하는 것을 명확히 할 수 있습니다. – tripleee

    답변

    0

    제가 알고있는 유일한 가능성은 MAKEFILE_LIST 변수를 사용하는 것입니다 include 에드. 변수의 값은 makefile의 맨 위에서 쿼리가 포함될 때만 신뢰할 수 있습니다.

    $ make MAKEFILES=../makefile hi 
    make bye 
    make[1]: Entering directory '/home/imk/develop/scrap' 
    echo 'whatever' 
    whatever 
    make[1]: Leaving directory '/home/imk/develop/scrap' 
    

    3.4 The Variable MAKEFILES를 참조하십시오 : 현재 디렉토리 (당신이 -f ../makefile을 전달하는 아마도 그 이유) 다음 귀하의 예를 ../makefile 당신 같은 make를 호출하면 그대로 작동에는 기본 메이크가없는 가정

    0

    이 현재 디렉토리의 기본 makefile 인 인 경우이 접근 방식은 e make ../makefile을 읽은 후 기본 메이크 파일을 읽는 것이 좋지 않은 결과를 가져옵니다. 이 경우 @ Dummy00001의 대답을 선호하십시오.