Поведение nmake на окнах

overwiew

Я хочу использовать nmake на Windows, но застрял с ifeq, который не поддерживается, чтобы добиться чего-то, что я пытаюсь получить. ОС обнаруживает make-файл

обходной путь

Чтобы обойти несовместимость ifeq, я решил использовать $ (OS) приписывать.

include platf/$(OS)_make
  • окна должны включать Макс.высота / Windows_NT_make
  • другие платформы, где $ (OS) возвращает «», поэтому использует файл Макс.высота / сделать _резервную

Макет каталога

|   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

1

Решение

Проблема заключается в символе косой черты, который выделяет каталог platf из имени Makefile.
Это должно быть «/» для семейства Unix и «\» для Windows.

Вам необходимо знать, для какой ОС правильно сформировать название. Это может быть решено несколькими способами:

  1. Не использовать подкаталог
  2. Делать отдельный CD, чтобы названия были локальными

Я решаю проблему, имея один make-файл и используя переносимый файл сценария, чтобы определить ОС и соответствующим образом отредактировать Make-файл (используя sed). С одним скриптом и одним make-файлом я могу перемещаться по всем системам.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]