Makefile:从列表中删除元素

时间:2017-09-29 14:30:31

标签: foreach makefile build compilation gnu-make

我的Makefile中有一个变量列表:

varglob := a1 a2 a3 a4 a5 a6

我想从varglob创建一个新变量但是要删除一些特定元素,例如" a3"。

我想到了foreach,但我的问题是我不知道如何在foreach中测试ifneq。所以我试着像这样使用shell:

varglobelim := $(foreach y, $(varglob), $(shell if [$(y) != "a3"]; then echo $y;fi))

但这种解决方案并不成功。我收到一条空信息。

还有其他建议吗?

1 个答案:

答案 0 :(得分:1)

filter-out是你的朋友:

varglob := a1 a2 a3 a4 a5 a6 b7 b8 b-whatever
has-no-ticket := a3 b%  # a3 and all the b's didn't pay the ride

varglobelim := $(filter-out $(has-no-ticket),$(varglob))