Value Function

value 함수는 변수에 설정되어 있는 값을 반환하는데 특히 recursive 변수의 경우는 확장되기 전의 식이 있는 그대로 반환됩니다.

SRCS := $(addprefix lib/,foo.c bar.c zoo.c)     # ':=' simple 연산자
$(info $(value SRCS))
실행결과: lib/foo.c lib/bar.c lib/zoo.c

SRCS = $(addprefix lib/,foo.c bar.c zoo.c)      # '=' recursive 연산자
$(info $(value SRCS))
실행결과: $(addprefix lib/,foo.c bar.c zoo.c)     # 식이 있는 그대로 반환된다.

-------------------------------------------------------------------------

FOO = $$HOME                   # '=' recursive 연산자
$(info $(FOO))                 ----- (1)
$(info $(value FOO))           ----- (2)

all:
    @echo $(FOO)               ----- (3)
    @echo $(value FOO)         ----- (4)

########  실행결과  ########

$HOME             # (1) FOO 변수값 '$$HOME' 에서 '$$' 변수가 '$' 로 변경된다.
$$HOME            # (2) value 함수는 문자 그대로 식을 반환한다.
/home/mug896      # (3) 'echo $HOME' 의 출력값이 된다.
16505HOME         # (4) 'echo $$HOME' 의 출력값이 된다. '$$' 는 현재 shell 의 PID 값.