Хорошо, я застрял на этом, и я понятия не имею, что я делаю неправильно. Все отлично работало над более сложным 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
define я вызываю только одну из функций, она работает нормально. Кроме того, если я непосредственно вызываю функции вместо их вызова 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...
Мне кажется, что я не замечаю здесь ничего принципиального. Благодарим за помощь.