모드별 최상위 대상 이름을 기반으로 변수 만들기

모드별 최상위 대상 이름을 기반으로 변수 만들기

표적

대상(상위 대상)이 전제조건으로 다른 대상(하위 대상)을 호출하는 일반적인 경우에는 모드별 변수를 할당하고 싶습니다(참조:매뉴얼 페이지),다음 조건:

  • 변수 값은 상위 대상을 기반으로 합니다.
  • 하위 목표에는 이 변수가 필요합니다

문맥

사용 사례를 다음과 같이 줄일 수 있습니다. 단순화를 위해 모드별 변수 대신 대상별 변수를 사용하겠습니다(문제는 동일함). 생성된 파일은 다음과 같습니다.

mother-target: VAR = Var-$@
mother-target: child-target

child-target:
    echo VAR=$(VAR)

make출력할 예정입니다 VAR=Var-child-target. 출력하고 싶습니다 VAR=Var-mother-target.

질문:정의된 변수의 대상 이름을 참조하는 방법은 무엇입니까? 자동 변수는 @항상 체인의 "마지막" 대상으로 확인되는 것 같습니다.

노력하다:

  • VAR간단한 확장 변수로서, 즉 비어 mother-target: VAR := Var-$@있습니다 $@.
  • VAR상속되지 않도록 비공개로 선언하면 내 사용 사례에 적합하지 않습니다. 하위 목표에는 변수가 필요합니다.

실제로 무슨 일이 일어나고 있는지는 대상 이름을 구문 분석하는 것이 실제로 유용한 모드별 변수를 사용하는 것입니다(예 %-target: VAR = Var-$@:)

관련 정보