【发布时间】:2011-06-29 12:51:49
【问题描述】:
下面示例代码中的dep2函数有什么问题?
dep1 = $(eval makefile_list_$1 := $(MAKEFILE_LIST))$(eval -include $1.mk)$(eval MAKEFILE_LIST := $(makefile_list_$1))
define dep2
$(eval makefile_list_$1 := $(MAKEFILE_LIST))
$(eval -include $1.mk)
$(eval MAKEFILE_LIST := $(makefile_list_$1))
endef
$(call dep1,test)
$(call dep2,test)
.DEFAULT_TARGET: all
.PHONY: all
all:
@echo $@
GNU make 3.81 和 3.82 产生 Makefile:10: *** missing separator. Stop. 指向 dep2 调用, dep1 运行没有错误。这两个变体之间的唯一区别是 dep2 中的换行符(以及我想使用 define 的全部原因)。
【问题讨论】: