Makefile Аргумент сравнения строк - PullRequest
0 голосов
/ 11 марта 2019

Я передаю аргумент в целевой файл makefile.Я хочу сделать сравнение строк аргумента.Это мой код,

mode = p
install:
    @echo mode is $(mode)
    ifeq ($(mode),"p")
        @echo mode is production
    else
        @echo mode is development
    endif

Я получаю следующую ошибку:

mode is d
ifeq (d,"p")
/bin/sh: 1: Syntax error: word unexpected (expecting ")")

В чем заключается ошибка и каково общее правило для сравнения строк в скриптах bash?

1 Ответ

3 голосов
/ 11 марта 2019

Вы используете чистый синтаксис make (ifeq) в качестве рецепта (строка начинается с табуляции). Попробуйте вместо этого:

mode = p
install:
    @echo mode is $(mode)
ifeq ($(mode),p)
    @echo mode is production
else
    @echo mode is development
endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...