【问题标题】:Makefile: eliminate element from a listMakefile:从列表中消除元素
【发布时间】:2018-03-11 11:46:03
【问题描述】:

我的 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))

但是这个解决方案没有成功。我收到一条空消息。

还有其他建议吗?

【问题讨论】:

    标签: foreach makefile build compilation gnu-make


    【解决方案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))
    

    【讨论】:

      猜你喜欢
      • 2015-06-05
      • 1970-01-01
      • 2017-03-05
      • 2014-12-19
      • 2013-11-25
      相关资源
      最近更新 更多