在makefile中定義逗號字符串和空格字符串

空格和逗號是makefile中常見的分隔符,估計是寫不出一個完全沒有空格和逗號的makefile的,沒有的話意義就不對了。但是如果要進行字符串處理,空格和逗號就不能直接出現了,即使直接寫上make解析器也不會將其作爲字符串使用。所以應該這樣寫,才能讓空格和逗號變成字符串。具體是誰想出來的已經不可考了,這裏就寫原創,請真正的原創不要見怪。

comma:=,
empty:=
space:=$(empty) 
foo:= a,b,c
bar:= $(subst $(comma),$(space),$(foo)) 

all:
	@echo $(foo)
	@echo $(bar)
上面的代碼將逗號替換成空格。注意comma,empty,space這三個變量。comma的等號後面就是一個逗號;empty的等號後面沒東西,直接回車;space的等號後面是$(empty)再加一個空格(如果你加多個空格那麼space就代表多個空格)


輸出結果(測試的makefile在/usr/local裏):

root@debian:/usr/local# make
a,b,c
a b c


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章