У меня обычно есть настройка среды для MAKE_MODE (Windows XP, использующая GNU make, как в Cygwin, так и в native)
set MAKE_MODE=UNIX
Теперь я обнаружил различия между моим сервером сборки (для которого не определен MAKE_MODE) иместная сборка.Это может быть что-то совершенно иное, но меня удивило, какие еще значения я могу указать для MAKE_MODE
.
Я думаю, я знаю, что MAKE_MODE=UNIX
предполагает, что GNU make использует /bin/sh
- еслион находит его - но я быстро проверил руководство по сборке GNU и не смог найти описание.Поиск в Google сказал мне только то, что я уже знаю, но не дает действительной альтернативы.
Является ли единственная альтернатива, не определяющая переменную?Имеет ли это влияние при использовании CMD.exe и собственной версии GNU make?
РЕДАКТИРОВАТЬ: до сих пор я нашел ссылки на значения 'unix', 'win32', 'null' и undefined,но без объяснений и спецификаций.Но взгляд на исходный код GNU make 3.82 показывает, что строка «MAKE_MODE» не встречается ни разу, поэтому сам GNUmake, по-видимому, не меняет своего поведения, если эта переменная среды установлена или нет.
EDIT2:Я проверил исходный код для GNU make для MinGW и снова ничего не нашел.Может быть, это специфично для CygWin?
EDIT3: я обнаружил ссылку , что это может быть свойством старой версии GNU make, поэтому я проверил версию 3.75.Не повезло, строка MAKE_MODE вообще не появляется в исходном коде.Следующим шагом действительно должна стать версия Cygwin GNU make.Я знаю 10 лет назад, что порт Cygwin в те дни не был интегрирован в обычное дерево исходников.