Makefile patsubst 以打印逗号分隔的值


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

生成文件内容:

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

当我执行制作时。

$ make
1 5 7

如何让它以逗号分隔的方式打印数字,例如:1,5,7

关于 makefile 解析规则(与其他一些语言(如 shell(不同(需要了解的重要一点是,在扩展变量之前将参数分解。

好消息是,这意味着你可以把任何你喜欢的特殊字符,通过把它"隐藏"在一个变量后面:

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

最新更新