具有相同文件前缀、多个文件扩展名的Makefile目标

具有相同文件前缀、多个文件扩展名的Makefile目标,makefile,Makefile,我正在编写一个makefile,作为其操作的一部分,它下载并提取一个包含ESRI形状文件的zipfile。Shapefile用词不当,因为Shapefile实际上是一个目录,包含名为shape的文件。[shp,dbf,prj,shp.html,shp.xml,sbn,sbx] 是否有方法定义要附加到make目标中的公共文件前缀的扩展名列表?比如: shape.[mylistofexts] : shape.zip unzip stuff... 我发现这似乎是相反的,因为他们有一个单一的目

我正在编写一个makefile,作为其操作的一部分,它下载并提取一个包含ESRI形状文件的zipfile。Shapefile用词不当,因为Shapefile实际上是一个目录,包含名为shape的文件。[shp,dbf,prj,shp.html,shp.xml,sbn,sbx]

是否有方法定义要附加到make目标中的公共文件前缀的扩展名列表?比如:

shape.[mylistofexts] : shape.zip
    unzip stuff...

我发现这似乎是相反的,因为他们有一个单一的目标和多个来源,每个都需要处理。我的新手的直觉是,这应该是一个更简单的情况

这里需要的功能是在单个目标中使用多个模式

从GNU make makefile的部分:

此模式规则有两个目标:

%.tab.c %.tab.h: %.y
        bison -d $<
可(技术上)缩短为:

%.shp, %.dbf %.prj %.shp.html %.shp.xml %.sbn %.sbx: %.zip
        @unzip ...
$(addprefix %.,dbf prj shp.html shp.xml sbn sbx): %.zip
        @unzip ...