info 相当于宏展开,而eval相当于计算
pointer:=pointed_value
define foo
val:=123
arg:=$1
$($(1)):=oooo
endef
#$(info $(call foo,pointer))
$(eval $(call foo,pointer))
.PHONY:target
target:
@echo ------------
@echo var:$(var),arg:$(arg)
@echo pointer:$(pointer),pointed_value:$(pointed_value)
@echo done
@echo -------------
实例中:
- makefile中定义一个宏foo,第一个参数为$1
- info只是展开宏,不做计算,call调用“函数” foo,参数pointer
- eval计算,call调用”函数” foo,参数为pointer