2010-06-22 91 views
1

我想對可能包含對其他變量的引用的變量執行擴展。我將用一個例子說明:Makefile擴展變量

一個= 1
B = 2
C = 3
X = FOO巴巴茲$(的foreach X,ABC,$$(值$(X)))qux
$(資訊$(X))

如果運行此生成的文件,它打印:
FOO酒吧巴茲$(值)$(b值)$(值c)qux

我d想知道如何擴展它,以便得到:
foo bar baz 1 2 3 qux

我可以做到以下幾點:
$(EVAL X = $(X))

爲了更貼近我想要的,但是這需要我再重新分配變量。另外,我對整個變量中的任何內容進行了「評估」,這可能不是我想要的。我希望能夠做一些像$(展開X)併產生文本。

回答

1
X = $(foreach x, a b c, $($(x))) 
+0

對不起,我沒有做出我的例子,我最終得到了一個包含「foo bar baz $(somevar)$(some-other-var)」之類的變量。 我想展開$(somevar)和$(some-other-var)。 我是/知道如何間接擴展變量引用時,這是一個變量包含。 – BitShifter 2010-06-22 22:08:06

+0

@BitShifter:我給了這個想法很多,我不知道該怎麼做。我最好的猜測是使用SECONDEXPANSION(我的gmake版本沒有),並且把'$(X)'作爲虛擬規則的先決條件。如果這不起作用,那麼可能會存在一些可怕的黑客行爲,但我不知道它會是什麼。 – Beta 2010-06-30 19:31:42