2013-06-12 2 views
6

b uilt-in $(error text) and $(warning text) functions of GNU Make을 사용할 때 곡예가없는 오류/경고 출력으로 어떻게 줄 바꿈을 사용할 수 있습니까? BTW, GNU와 나를 위해 작동하지 않았다GNU에서 줄 바꿈을 합성하는 방법 경고 또는 오류를 만드시겠습니까?

$(warning $(shell /bin/echo -e "something\nfoo\nbar\nbaz")) 
$(warning $(shell /bin/bash -c 'echo -e "something\nfoo\nbar\nbaz"')) 

우분투 10.04에 3.81하십시오 : 곡예으로

나는 이들 두 가지로 재미있는 방법을 의미한다.

이론적 근거 : 나는 나의 GNUmakefile 더 읽기의 조건 부품 (ifeq, ifneq)의 오류 출력을 만들고 싶어.


나를 위해 현재 해결 방법은 각 라인에 사용할 수 있습니다 :

$(warning ...) 

마지막으로 마지막 줄에 : endef

$(error ...) 
+0

'make'와 공백은별로 좋은 친구가 아닙니다. 두려워요. –

답변

13

정의를 사용하여 줄 바꿈 변수를 정의 /과 다음과 같이 $ n으로 사용하십시오.

define n 


endef 

$(warning "something$nfoo$nbar$nbaz") 

define과 endef 사이의 두 공백을주의하십시오.

+0

두 캐릭터 모두 작동합니다. 아마 하나의 캐릭터이기 때문입니까?! 고마워,이게 내가 원하는거야. – 0xC0000022L

+0

당신을 진심으로 환영합니다. n 대신 nl이라면 $ (nl) 또는 $ {nl}이어야 $ {n} l로 취급되지 않습니다. 한 글자 변수 이름은 Gnu make에서이 문제로 어려움을 겪지 않습니다. –

+0

알았어. 신속한 답변 주셔서 감사합니다. 시스템이 허락하자마자 받아 들일 것입니다. – 0xC0000022L