в makefile отсутствует разделитель

Хорошо, я застрял на этом, и я понятия не имею, что я делаю неправильно. Все шло отлично, работая над более сложным make-файлом, но вдруг я получил ошибку «Отсутствует разделитель». Я смог изолировать его до очень простого сценария:

test.mk

define push_dir
$(info ${1})
endef

define pop_dir
$(info ${1})
endef

define include_submake
$(call push_dir,${1})
$(call pop_dir,${1})
endef

Простой

include test.mk

INITIAL_SUBMAKE:= includeme.mk
$(call include_submake,${INITIAL_SUBMAKE})

process:
    @echo Processed...

И вывод:

C:\project>make -f Simple process
includeme.mk
includeme.mk
Simple:4: *** missing separator.  Stop.

includeme.mkна самом деле не существует. Я понятия не имею, что здесь происходит не так, я пробовал множество вещей. Если я окружу вызов include_submake информацией примерно так:

$(info $(call include_submake,${INITIAL_SUBMAKE}))

Ошибка отсутствия разделителя исчезает. Также, если в определении include_submakeя вызываю только одну из функций, она работает нормально. Кроме того, если я вызываю функции напрямую, а не include_submake, это также работает:

include test.mk

INITIAL_SUBMAKE:= includeme.mk
$(call push_dir,${INITIAL_SUBMAKE})
$(call pop_dir,${INITIAL_SUBMAKE})

process:
    @echo Processed...


C:\project>make -f Simple process
includeme.mk
includeme.mk
Processed...

Мне кажется, что я упускаю здесь что-то фундаментальное. Спасибо за вашу помощь.

17
задан SheetJS 16 October 2013 в 04:38
поделиться