with what tutorial para framework espaƱol develop applications path makefile gnu-make space colon

path - what - tutorial de django



GNU hacer convertir espacios a dos puntos (2)

Dada una lista de rutas delimitada por dos puntos, obtener una lista delimitada por espacios con GNU Make es sencillo:

CPATHS := /usr/bin/foo:/usr/bin/baz:/usr/bin/baz SPATHS := $(subst :, ,$(CPATHS))

Sin embargo, no pude encontrar una buena manera de ir en la dirección opuesta. El siguiente truco funciona (al menos si está instalado sed ) pero estoy bastante seguro de que habrá una manera más agradable de resolver esto utilizando las funciones internas de Make .

SPATHS := /usr/bin/foo /usr/bin/baz /usr/bin/baz CPATHS := $(shell echo $(SPATHS) > tmp; sed ''s/ /+/:/g'' tmp; rm tmp)


La única parte difícil aquí es definir un espacio literal:

space := space += SPATHS := /usr/bin/foo /usr/bin/baz /usr/bin/baz CPATHS := $(subst $(space),:,$(SPATHS))


La forma más corta de obtener un espacio literal sería a través de $() $() . Así:

$(subst $() $(),:,$(CPATHS))

O, por brevedad:

_=$() $() $(subst $(_),:,$(CPATHS))