给定一个以冒号分隔的路径列表,使用GNU Make获得一个以空格分隔的列表很简单:
CPATHS := /usr/bin/foo:/usr/bin/baz:/usr/bin/baz
SPATHS := $(subst :, ,$(CPATHS))
但是,我找不到一个好的方法去相反的方向。以下 hack 确实有效(至少在安装sed的情况下),但我很确定使用Make的内部函数会有更好的方法来解决这个问题。
SPATHS := /usr/bin/foo /usr/bin/baz /usr/bin/baz
CPATHS := $(shell echo $(SPATHS) > tmp; sed 's/ \+/:/g' tmp; rm tmp)