2013-04-01 2 views
4

${_+_}을 찾았습니다.

BSD Makefile에서 ${_+_}의 의미는 무엇입니까?

+3

Makefile의 명령 줄 맨 앞에 _bare_'+'는 "-n"모드에서도이 명령을 실행한다는 것을 의미합니다. 당신이 발견 한 구성물은 어떻게 든 그와 관련이있는 것으로 보입니다. '_ + _'는 변수의 특별한 _name _ 일 뿐이며'+'또는 비어있는 것으로 설정 될 수 있습니다 (Make는 변수 이름에 거의 모든 것을 넣을 수 있습니다). 그러나 설정 한 곳이 보이지 않습니다. 아무 데나, 그래서 내가 얻을 수있는 한. – zwol

답변

4

${_+_}은 변수를 나타냅니다. make 프로세스에 의해 읽혀지는 share/mk/sys.mk에 정의되어있다. 따라서 사용자 Zack은 자신의 의견에서 올바른 방향을 지적했습니다. 이 변수를 만들기 위해 주어진 플래그에 따라, 어떤 경우에 + 기호로 확장 :

.if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n" 
_+_  ?= 
.else 
_+_  ?= + 
.endif 

이에 대한 근거는 심볼이 소개되었다 this committhis one에 대한 주석에서 찾을 수 있습니다

Make make recurse into sub-directories and sub-makes when given 
two -n flags. If only one -n flag is given the old behaviour 
is retained (POLA). 
+0

친절한 답변을 주셔서 감사합니다 :) –

+0

내 기쁨과 환영 StackOverflow. –