Makefile:无法存储“ make”之后的参数(即第二个命令行参数)

时间:2018-08-27 03:09:52

标签: if-statement makefile conditional command-line-arguments gnu-make

我正在尝试将在命令行中传递的第二个参数(即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 :(得分:2)

您不能在$1中使用make(及类似名称)。

make的参数是目标或选项,无法使用$1进行访问。

命令make foo指示make创建foo目标。如果要传递参数,则可以使用make param=foo,并可以在Makefile中访问${param}变量(值为foo)。