Выглядит так, как будто вы получаете "Неопределенную строку в кавычках", потому что Make выполняет каждую строку рецепта в отдельной оболочке, а первая строка:
echo " /dev d 755 - - - - -
Вот лучшее решение, которое я мог бы придумать (и я признаю, что это не очень хорошо, но вы идете против структуры Make) - это передать VARS
субкомоду, который вызывает $(info ...)
:
Makefile:
define VAR1
/dev d 755 - - - - -
endef
define VAR2
/test d 777 - - - - -
/test2 d 777 - - - - -
endef
define VARS
$(VAR1)
$(VAR2)
endef
export VARS
all:
$(MAKE) -f Makefile.print > test
Makefile.print:
$(info $(VARS))
.PHONY:all
all:
@# do nothing