프로그램이 Some_Command
명령줄에서 대상 이름을 인수 중 하나로 가져오고(플래그를 통해 전달됨 -p
) 해당 명령을 호출하는 인수가 COMMON_ARG
변수 에 포함되기를 원한다고 가정해 보겠습니다. 재사용 (말) .
알아요$@
다음을 사용하여 대상의 이름에 액세스할 수 있습니다.규칙 내에서. 이 변수의 평가를 연기할 수 있는 방법이 있습니까?
보통 내가 원하는
COMMON_ARG:= "-p $@"
foo:bar
Some_Command $(COMMAND_ARG) $< -o $@
이것은 ... Make bar
불리운다
Some_Command -p foo bar -o foo
답변1
=
(대신)으로 변수를 선언 :=
하면재귀 확장어디에 사용되든, 선언할 때는 그렇지 않습니다. 그러므로
COMMON_ARG = -p $@
foo: bar
Some_Command $(COMMAND_ARG) $< -o $@
$@
원하는 효과를 제공하기 위해 레시피 내에서 확장됩니다.