Makefile: сохранение аргумента после «make» (т. Е. Аргумента 2-й командной строки) не работает - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь сохранить 2-й аргумент, переданный в командной строке (т. Е. Аргумент после make), в переменной с именем NAME, а затем использовать ее для выполнения каких-либо задач.Если второго аргумента нет, то NAME = a.

Почему это не работает?

Вот фрагмент из моего Makefile:

NAME := $(shell $2)

ifeq ($(strip $(NAME)),)
    $(NAME) = a
endif


# ... and do other things with NAME

Это дает мне эту ошибку:

*** empty variable name. Stop

1 Ответ

0 голосов
/ 27 августа 2018

Вы не можете использовать $1 (и аналогичные) в make.

Параметры make являются целями или опциями и не могут получить доступ с помощью $1.

Команда make foo указывает make создать foo цель.Если вы хотите передать параметры, вы можете использовать make param=foo и в Makefile получить доступ к переменной ${param} (со значением foo).

...