변수

다음과 같은 메이크파일이 확장되면

var = text        # 변수가 할당되는 코드

all:
  echo ${var}     # 변수가 참조되는 코드

다음과 같아진다.

all:
  echo text       

공백 처리

# sample/variable.001/Makefile

var1 =text
var2 = text
var3 =  text
var4 =    long long text
var5 =    long     long text

all:
    echo \"${var1}\"
    echo \"${var2}\"
    echo \"${var3}\"
    echo \"${var4}\"
    echo \"${var5}\"
echo \"text\"
"text"
echo \"text\"
"text"
echo \"text\"
"text"
echo \"long long text\"
"long long text"
echo \"long     long text\"
"long long text"

변수 확장

  • 참조된 변수가 어떤 값으로 확장되는가는 다음 규칙에 의해 결정된다.

확장 규칙 1

  • 변수의 값은 해당 변수가 확장되는 시점 기준으로 가장 최근에 할당된 값

확장 규칙 2

  • 변수는 다음 예외를 제외하고 처음 make 도구가 makefile을 읽는 시점에 확장된다.
    1. 레시피 내부
    2. = 할당 기호의 오른쪽
    3. define 지시어를 이용한 변수 정의