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 fr
Cleanest Form (that I can find):
classpathify = $(subst $(eval) ,:,$(wildcard $1))
cp = a b c d/*.jar
target:
echo $(call classpathify,$(cp))
# prints a:b:c:d/1.jar:d/2.jar
Notes:
You use ':' as separator, so you are on Linux. Consider using bash tool chain to replace continuous spaces by single colon
PATH := $(shell echo $(DIRS) | sed "s/ \+/:/g")
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))
Hope that helps,
Eric Melski