проблема с коротким Makefile - PullRequest
0 голосов
/ 14 июля 2011

У меня есть этот короткий make-файл. UNAME исходит от команды uname, но, для примера, она просто жестко запрограммирована. Я хотел бы проверить, что если UNAME начинается со строки "MINGW32_NT", то код внутри if должен выполняться.

UNAME := Linux  # MINGW32_NT-6.1

ifneq ( $(findstr MINGW32_NT, $(UNAME)) , "" )  
      UNAME := MINGW32
endif


info:   
      @echo Compiling for "$(UNAME)"

РЕДАКТИРОВАТЬ: проблема заключалась в кавычки и пробелы. ; -)

ifneq ($(findstring MINGW32_NT, $(UNAME)),)

1 Ответ

1 голос
/ 14 июля 2011

Если вы используете GNU make, функция должна быть findstring.

Кроме того, правила для строк и пробелов немного строги в Makefile. Следующие работы:

UNAME := Linux  # MINGW32_NT-6.1

ifneq ($(findstring MINGW32_NT,$(UNAME)),)  
      UNAME := MINGW32
endif


info:   
      @echo Compiling for "$(UNAME)"

(обратите внимание, что я удалил все ложные пробелы в тесте ifneq.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...