В чем проблема с функцией 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).