GNU Make с patsubst: нужны две замены - PullRequest
7 голосов
/ 07 марта 2011

Мне нужно дважды ссылаться на шток при замене для замены переменной:

O23=$(OROOTS:%=$(ODIR)/overx-%2wk-%3wk.mlb)

Мне нужно выполнить две замены с одним и тем же штоком, но замена использует patsubst который делает только первый.Как мы можем достичь обоих?

Ответы [ 3 ]

8 голосов
/ 08 марта 2011

На самом деле, Джек понял это почти правильно - foreach на помощь!В любом случае мы знаем полный ствол и помещаем его в переменную, и foreach расширяет все вхождения переменной:

O23 := $(foreach root,$(OROOTS),$(ODIR)/overx-$(root)2wk-$(root)3wk.mlb)

Я все равно проверю бета-версию на новую перспективу.

4 голосов
/ 07 марта 2011

по кладгере:

O23=$(join $(OROOTS:%=$(ODIR)/overx-%2wk), $(OROOTS:%=-%3wk.mlb))
0 голосов
/ 08 марта 2011

По $(shell):

O23 := $(foreach O,$(OROOTS),$(shell echo '$(O)' | awk '{print "overx-"$$0"2wk-"$$0"3wk.mlb"}'))

Я думаю, что бета-хитрость, вероятно, лучше, так как она не должна раскошелиться на awk для каждого слова в $(OROOTS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...