Как сравнить две строковые переменные в Makefile - PullRequest
0 голосов
/ 13 марта 2019

У меня есть следующий код:

LOCAL_VERSION := $(shell some_binary -v | head -n 1)
REMOTE_VERSION := $(shell curl -s https://example.com/key)

all:
    ifeq($(REMOTE_VERSION), $(LOCAL_VERSION))
        @echo yes
    endfi

Но я получаю это:

user:tmp user$ make
ifeq(v0.11.1, v0.11.1)
/bin/sh: -c: line 0: syntax error near unexpected token `v0.11.1,'
/bin/sh: -c: line 0: `ifeq(v0.11.1, v0.11.1)'
make: *** [all] Error

Я нахожусь на Mac OSX, но все равно использую GNU Make.

1 Ответ

1 голос
/ 13 марта 2019

ifeq не должно иметь отступ, например

LOCAL_VERSION := $(shell some_binary -v | head -n 1)
REMOTE_VERSION := $(shell curl -s https://example.com/key)

all:
ifeq($(REMOTE_VERSION), $(LOCAL_VERSION))
    @echo yes
else
    @echo NO
endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...