Makefile: содержит строку - PullRequest
       26

Makefile: содержит строку

58 голосов
/ 30 апреля 2010

Переменная возвращает MINGW32_NT-5.1 или CYGWIN_NT-5.1. (да, точка в конце)

Необходимо сравнить, что данная переменная содержит NT-5.1 в любом месте.

Используя cygwin и хотел бы быть совместимым практически с любым * nix.

Ответы [ 2 ]

98 голосов
/ 30 апреля 2010

Функция findstring - это то, чего желает ваше сердце:

$(findstring найти , в )

Поиск в в случае появления find . Если это произойдет, значение будет find ; в противном случае значение является пустым. Вы можете использовать эту функцию в условном выражении, чтобы проверить наличие определенной подстроки в данной строке. Таким образом, два примера

$(findstring a,a b c)
$(findstring a,b c)

выдает значения "a" и "" (пустая строка) соответственно. См. Флаги тестирования , для практического применения findstring.

Что-то вроде:

ifneq (,$(findstring NT-5.1,$(VARIABLE)))
    # Found
else
    # Not found
endif
17 голосов
/ 10 июня 2016
VARIABLE=NT-5.1_Can_be_any_string
ifeq ($(findstring NT-5.1,$(VARIABLE)),NT-5.1)
    # Found
    RESULT=found
else
    # Not found
    RESULT=notfound
endif

all:
    @echo "RESULT=${RESULT} , output=$(findstring NT-5.1,$(VARIABLE))"

Соответствует заданной строке и возвращает

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