14
ein Doppelpunkt getrennte Liste von Pfaden gegeben, immer ein Leerzeichen getrennte Liste mit GNU Make ist einfach:GNU Convert Spaces Colons
CPATHS := /usr/bin/foo:/usr/bin/baz:/usr/bin/baz
SPATHS := $(subst :, ,$(CPATHS))
aber ich konnte nicht einen schönen Weg finden, geh in die entgegengesetzte Richtung. Der folgende Hack funktioniert (zumindest, wenn sed ist installiert), aber ich bin mir ziemlich sicher, es wird eine schönere Möglichkeit, dies zu lösen nur mit machen 's interne Funktionen.
SPATHS := /usr/bin/foo /usr/bin/baz /usr/bin/baz
CPATHS := $(shell echo $(SPATHS) > tmp; sed 's/ \+/:/g' tmp; rm tmp)
Ich ziehe 'leer zu verwenden: =' 'dann Raum: = $ (leer) $ (leer)'. Nur ein bisschen klarer und nicht auf einen Nebeneffekt angewiesen. Aber beides wird funktionieren. – MadScientist
Cool, danke. Ich denke, ich werde 'SPACE: = $ (eval) $ (eval)' verwenden, um ein Space-Token zu erhalten. Ich dachte, dass "subst" die Wörter einzeln anwendet und daher die Abstände zwischen ihnen nicht sieht. – 5gon12eder
Eine andere Option ist die Verwendung von 'space: = $ (subst ,,)'. –