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 값.