Нашёл решение "неудобной" задачи.
Не очень красивое - но работает. Лучше чем вот так напрягать sed через шелл:
var2=`echo $(var) | sed s/\ /,/g`
Нужно в Makefile заменить в переменной все пробелы запятыми. Если бы меняли все двоеточия на точки с запятой - проблем никаких:
$(subst :,;,$(var))
А нужная нам конструкция явно не работает:
$(subst ,,,$(var))
Решение - сделать переменные содержащие пробел и запятую. Более того - переменные можно сделать с "говорящими" именами: $(,) и $( ). На самом деле можно их использовать как "$ " и "$," - без кавычек :) Вот "код":
, := ,
space :=
space +=
$(space) :=
$(space) +=
После него работает, например, такой вызов:
$(subst $ ,$(,),$(var))
Комментариев нет:
Отправить комментарий