我需要在替换变量替换时引用词干两次:
O23=$(OROOTS:%=$(ODIR)/overx-%2wk-%3wk.mlb)
我需要使用相同的词干执行两次替换,但替换使用patsubst
,它只执行第一次。我们怎样才能完成两者?
答案 0 :(得分:8)
事实上,杰克几乎是正确的 - foreach
救援!无论如何我们知道完整的词干并将其粘贴到var中,foreach
扩展了var的所有出现次数:
O23 := $(foreach root,$(OROOTS),$(ODIR)/overx-$(root)2wk-$(root)3wk.mlb)
无论如何,我会检查Beta的新视角。
答案 1 :(得分:4)
通过kludgery:
O23=$(join $(OROOTS:%=$(ODIR)/overx-%2wk), $(OROOTS:%=-%3wk.mlb))
答案 2 :(得分:0)
按$(shell)
:
O23 := $(foreach O,$(OROOTS),$(shell echo '$(O)' | awk '{print "overx-"$$0"2wk-"$$0"3wk.mlb"}'))
我认为Beta的kludge可能更好,因为awk
中的每个单词都不需要$(OROOTS)
。