표적
대상(상위 대상)이 전제조건으로 다른 대상(하위 대상)을 호출하는 일반적인 경우에는 모드별 변수를 할당하고 싶습니다(참조:매뉴얼 페이지),다음 조건:
- 변수 값은 상위 대상을 기반으로 합니다.
- 하위 목표에는 이 변수가 필요합니다
문맥
사용 사례를 다음과 같이 줄일 수 있습니다. 단순화를 위해 모드별 변수 대신 대상별 변수를 사용하겠습니다(문제는 동일함). 생성된 파일은 다음과 같습니다.
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-$@
:)