name = text string FILE = TEXT.${ABC} # 매크로 안의 매크로 DEBUG = # null 문자할당
사용:
$(name) ${name} # 중괄호 권장
내부적으로 정의된 매크로:
make -p 로 확인가능
명령행에서 매크로 정의:
$ make jgref DIR=/usr/proj $ DIR=/usr/proj make jgref # Bourne shell, Korn shell 계열 # 두 경우에 매크로의 우선 순위가 다르다
매크로 할당 우선순위:
일반적인 경우:
-e 옵션을 주었을 때:
매크로 치환:
SRC = defs.c redraw.c calc.c ls ${SRC:.c=.o} # ${매크로이름:찾을문자열=바꿀문자열}
prerequisite 또는 target 에 사용되는 내부 매크로:
$@ : 현재 target $$@ : 현재 target. dependancy line 에서만 사용가능 CMDS = cat dd echo date cccmp ${CMDS} : $$@.c # make cat 하면 cat.c 가, make ehco 하면 echo.c 가 적용된다 ${CC} -O $? -o $@ $? : 현재 타깃보다 최신인 필요 항목들의 명단