Я хочу использовать nmake на Windows, но застрял с ifeq, который не поддерживается, чтобы добиться чего-то, что я пытаюсь получить. ОС обнаруживает make-файл
Чтобы обойти несовместимость ifeq, я решил использовать $ (OS) приписывать.
include platf/$(OS)_make
Макет каталога
| Makefile
+---platf
| Makefile.linux
| Makefile.macos
| Makefile.win
| Windows_NT_make
| _make
Это работает как шарм, кроме окон снова.
# 1 Если файл platf / Windows_NT_make ЯВЛЯЕТСЯ настоящее время жалуется на
makefile (4): фатальная ошибка U1052: файл ‘platf / $ (OS) _make’ не найден
# 2 Если файл platf / Windows_NT_make НЕ ЯВЛЯЕТСЯ настоящее время жалуется на
makefile (4): фатальная ошибка U1052: файл ‘platf / Windows_NT_make’ не найден
Итак, если nmake может решить, каким будет значение $ (OS) (видно из # 2), почему он жалуется с # 1
Проблема заключается в символе косой черты, который выделяет каталог platf из имени Makefile.
Это должно быть «/» для семейства Unix и «\» для Windows.
Вам необходимо знать, для какой ОС правильно сформировать название. Это может быть решено несколькими способами:
Я решаю проблему, имея один make-файл и используя переносимый файл сценария, чтобы определить ОС и соответствующим образом отредактировать Make-файл (используя sed). С одним скриптом и одним make-файлом я могу перемещаться по всем системам.
Других решений пока нет …