Я думаю, что setenv не встроен в оболочку sh
. Если вы используете GNU Make, это оболочка по умолчанию. В вашей ситуации вы, вероятно, захотите использовать другую оболочку, например bash. Вы делаете это, устанавливая переменную SHELL в make-файле так, как вам нужно:
SHELL := /usr/bin/bash
Для получения более подробной информации о покупке это раздел руководства по GNU Make. Он подробно описывает различное поведение переменной SHELL и то, как она вызывается или не наследуется от оболочки, вызываемой на разных платформах.
РЕДАКТИРОВАТЬ: Я согласен с выводом других авторов, что вы, вероятно, не устанавливаете переменные окружения так, как вы думаете, и не будете использовать команду setenv в. Я просто отвечаю на ваш оригинальный вопрос. Чтобы узнать о переменных в проверке make-файлов , эти другие разделы в руководстве по GNU Make.