Makefile if заявление вызывает странное поведение - PullRequest
0 голосов
/ 23 ноября 2018

В моем make-файле пользователь предоставляет аргумент EXEC (make target EXEC=something).Я хочу, чтобы это произошло:

if EXEC equals "server"
    make the variable NOT equal to "client"
if EXEC equals "client"
    make the variable NOT equal to "server"

Я пытался сделать это:

ifeq ($(EXEC),server)
    NOT := client
endif
ifeq ($(EXEC),client)
    NOT := server
endif

Я запускаю это, говоря: make -f build.mk EXEC=server

вывод:

NOT := client
make[2]: NOT: No such file or directory

Почему происходит эта ошибка?

1 Ответ

0 голосов
/ 23 ноября 2018

Кажется, вы присвоили переменную присваиванию с помощью символа табуляции.Это означает, что строка считается частью рецепта для предыдущей цели.

Поскольку вы не предоставили весь make-файл или, по крайней мере, часть make-файла до / после этого, мы не можем сказать большечем это.

Однако, как правило, в make-файле вы никогда не должны делать отступы ни одной строке с символами TAB, если они не предназначены для использования в рецепте.

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