如何将参数传递为命令行上的空格划分的值列表的列表



我的makefile看起来如下:

#====================================================
PREFIX_LIST ?= 
append_prefix = $(foreach prefix, $(PREFIX_LIST), myText_$(prefix))
mytarget: 
     echo $(append_prefix)
#====================================================

我希望prefix_list具有空间界定的值列表,并在我从命令行构建此目标时将其作为变量传递。

类似(这不是完全正确的(:

$ make PREFIX_LIST= [list of values] mytarget

我已经尝试传递makefile内部的值:

#====================================================
PREFIX_LIST ?= foo bar baz xyz
append_prefix = $(foreach prefix, $(PREFIX_LIST), myText_$(prefix))
mytarget: 
     echo $(append_prefix)
#====================================================

,它产生了预期的输出(请参阅底部(

在命令行上:

$ make mytarget

输出:

myText_foo myText_bar myText_baz myText_xyz

这也是我所期望的。我想找出一种将值列表传递给命令行prefix_list变量的方法。

只是将列表包装在引号(简单或double(中:

$ make PREFIX_LIST="foo bar baz xyz" mytarget
myText_foo myText_bar myText_baz myText_xyz

注意:代替foreach功能,您也可以使用addprefix

PREFIX_LIST ?= 
append_prefix = $(addprefix myText_,$(PREFIX_LIST))
mytarget: 
    @echo $(append_prefix)

最新更新