[첫화면으로]MakeUtility/Macro

마지막으로 [b]

정의:

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 계열
# 두 경우에 매크로의 우선 순위가 다르다

매크로 할당 우선순위:

일반적인 경우:
  1. make 명령 입력시 make 명령 다음에 입력한 매크로
  2. 기술 파일의 매크로 정의
  3. 현재 쉘 환경 변수. 사용자가 make 명령 앞에 입력한 매크로
  4. make 의 기본 정의

-e 옵션을 주었을 때:
  1. make 명령 입력시 make 명령 다음에 입력한 매크로
  2. 현재 쉘 환경 변수. 사용자가 make 명령 앞에 입력한 매크로
  3. 기술 파일의 매크로 정의
  4. make 의 기본 정의

매크로 치환:

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 $@
$?  : 현재 타깃보다 최신인 필요 항목들의 명단


컴퓨터분류

마지막 편집일: 2002-11-12 1:16 am (변경사항 [d])
1618 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기