是否可以在 Makefile 中使用模式将文件名的中间部分从源映射到目标?
Is it possible to use patterns in Makefile to map middle of filename from source to target?
我有一组文件看起来像:
meta_UNIQID_set.xml.gz
并希望使用 Makefile
来制作看起来像 UNIQID.json.gz
的目标。基本原理是适合现有的多步管道(名称以这种形式指定)。
我已经在 gnu make 中寻找允许这种转换的模式替换,但我还没有找到看起来像我想要的东西。我可以使用其他工具进行此转换,甚至可以编写特定规则,因为只有几个文件。我只是很好奇是否有使用现有 gnu make 功能的直接方法。
您可以像这样使用 %
词干字符:
%.json.gz: meta_%_set.xml.gz
echo "Processing $< to $@, stem is $*"
cp $< $@
官方文档称之为Pattern rules。
我有一组文件看起来像:
meta_UNIQID_set.xml.gz
并希望使用 Makefile
来制作看起来像 UNIQID.json.gz
的目标。基本原理是适合现有的多步管道(名称以这种形式指定)。
我已经在 gnu make 中寻找允许这种转换的模式替换,但我还没有找到看起来像我想要的东西。我可以使用其他工具进行此转换,甚至可以编写特定规则,因为只有几个文件。我只是很好奇是否有使用现有 gnu make 功能的直接方法。
您可以像这样使用 %
词干字符:
%.json.gz: meta_%_set.xml.gz
echo "Processing $< to $@, stem is $*"
cp $< $@
官方文档称之为Pattern rules。