Подтвердить что ты не робот

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

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

Нужно сравнить, что данный var содержит NT-5.1, расположенный где угодно.

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

4b9b3361

Ответ 1

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

$(findstring найдите , в )

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

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

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

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

ifneq (,$(findstring NT-5.1,$(VARIABLE)))
    # Found
else
    # Not found
endif

Ответ 2

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))"

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