2011-10-16 2 views
0

gmake의 makefile에서 그런 일을 할 수있는 방법이 있습니까?gmake : 함수에서 recipe 내부의 eval

GOALS := g1 
define fun_one 
    @echo "blabla" #this causes an error - maybe can't be recognized as a recipe 
endef 

define fun_two 
$(1): 
$(eval $(call fun_one,$(1))) 
endef 

$(forech goal, $(GOALS), $(eval $(call fun_two,$(goal)))) 

all: ${GOALS} 

내가 이해할 수있는 한, 규칙을 정의하는 함수 외부에서 래서 피의 일부를 정의 할 수 없다는 것인가?

답변

2

처음에는 필요하지 않습니다. eval; 그냥 줄을 제정하는 동안 그것은 여전히 ​​fun_one의 정의를 구문 분석하는 동안 알려줍니다. 평가 후면을 제거하고 메이크 작동합니다 :

define fun_two 
$(1): 
$(call fun_one,$(1)) 
endef 
+0

도움이되지 않습니다 오류를 foreach는 라인에서 : "*** 분리 누락 중지합니다.." @echo "blabla"가 주석 처리 될 때 - 오류가 없습니다. – Riga

+0

@ 리가 : 저는 사지에 나갈 것입니다 : 그것은 fun_one에서 탭이되어야하지만, 그것은 단지 공백 일 것입니다. – Beta

+0

네 말이 맞아, 고마워! – Riga