linux - 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
. 我怎样才能做到这一点?
谢谢。
解决方案
$(patsubst %,-name % -prune -o,$(EXCLUDE))
应该管用。
推荐阅读
- c++ - boost::atomic_shared_ptr 绝对安全吗?
- algorithm - 在 n 数组树中生成所有叶到叶路径
- javascript - 什么是匹配字母数字 6 字符单词的正则表达式,用空格或逗号分隔
- cassandra - Cassnadra - 基于时间戳数据类型的更新/删除
- css-filters - 更改页面上另一个元素的混合混合模式时,背景过滤器不起作用
- python - GofChisquarePower solve_power
- angular - Angular 材质 matNoDataRow 在 Angular 11 中不起作用
- c++ - С++ 抽象返回类型
- mongodb - 使用 UUID v4 的键集分页
- asp.net - ASP.NET 中的更新导致异常:“必须声明标量变量”