Подтвердить что ты не робот

GNU Make Convert Spaces to Colons

Учитывая список путей, разделенных двоеточиями, получение списка с разделителями пробелов с помощью GNU Make является простым:

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

Однако я не мог найти хороший способ пойти в противоположном направлении. Следующий хак действительно работает (по крайней мере, если sed установлен), но я уверен, что будет более удобный способ решить эту проблему, только используя внутренние функции.

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

Ответ 1

Единственная сложная часть здесь - определить буквальное пространство:

space :=
space +=

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