Определение пользовательских функций GNU make

В чем проблема функции 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: *** отсутствует разделитель. Стоп. что указывает на вызов dep2, dep1 выполняется без ошибок. Единственная разница между этими двумя вариантами - это новые строки в dep2 (и все дело, почему я хотел бы использовать define).

16
задан g.b. 29 June 2011 в 12:51
поделиться