首页 > 解决方案 > make:如何将文本附加到列表的开头和结尾?

问题描述

在我正在编写的 makefile 中,我使用 shell 命令find来构建要编译的源文件列表。特别是,我正在使用这条线:

SRCS := $(shell find $(SOURCES) '*.[cs]')

现在这工作得很好。但是,我想添加对排除文件的支持,这些文件的模式出现在名为EXCLUDE. 我想prune使用find.

如果里面只有一个项目,这样的事情就有效EXCLUDE

SRCS := $(shell find $(SOURCES) -name ${EXCLUDE} -prune -o -name '*.[cs]' -print)

为了使这项工作与多个排除一起工作,我需要对-name exclude -prune -o排除列表中的每个元素重复。

TLDR:我需要一种方法来将列表EXCLUDE转换a b c-name a -prune -o name b -prune -o name c -prune -o. 我怎样才能做到这一点?

谢谢。

标签: linuxmakefile

解决方案


$(patsubst %,-name % -prune -o,$(EXCLUDE))应该管用。


推荐阅读