Это необходимо, потому что это синтаксис, который make использует для ссылки на переменные.Например, смотрите GNU make manual или даже стандартное определение POSIX make
.
Обратите внимание, что make-файлы являются , а не сценариями оболочки и не имеюттот же синтаксис, что и сценарии оболочки.Makefiles делают содержат сценарии оболочки (или, по крайней мере, команды оболочки) в рецептах.
Устанавливая переменную:
VAR1 = abcd
в вашем make-файле, вы создаете переменная make , а не переменная shell .
Рецепт (команда с отступом TAB) сначала анализируется make, и все ссылки на переменные make расширяются.Затем результат этого расширения передается в оболочку.Поскольку вы хотите сослаться на переменную make в своем рецепте, вы должны использовать синтаксис ссылки на переменную make.