In my makefile I have a variable with a list of directories, like this:
DIRS = /usr /usr/share/ /lib
Now, I need to create PATH variable from it, which is basically the same, but uses semicolon as a separator:
PATH = /usr:/usr/share/:/lib
How do I do that? I mean, how do I join elements of DIRS list with semicolons, instead of spaces?
You can use the $(subst) command, combined with a little trick to get a variable that has a value of a single space:
p = /usr /usr/share /lib
noop=
space = $(noop) $(noop)
all:
@echo $(subst $(space),:,$(p))