Makefile patsubst打印逗号分隔值

时间:2017-07-14 15:54:38

标签: makefile gnu

$ ls /tmp/foo
file1.txt

$ ls /tmp/bar
file5.txt  file7.txt

Makefile内容:

$ cat Makefile 
NUMS = $(patsubst file%,%,$(basename $(notdir $(wildcard /tmp/foo/file*.txt /tmp/bar/file*.txt))))

all:
        @echo $(NUMS)

当我执行make。

$ make
1 5 7

如何以逗号分隔打印数字,例如:1,5,7

1 个答案:

答案 0 :(得分:2)

要理解makefile解析规则(与shell之类的其他语言不同),重要的是make在扩展变量之前分解参数。

好消息是,这意味着您可以通过将其“隐藏”在变量后面来放置您喜欢的任何特殊字符:

COMMA := ,
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)

NUMS = $(subst $(SPACE),$(COMMA),$(basename $(notdir $(wildcard /tmp/foo/file*.txt /tmp/bar/file*.txt))))