我认为这将是一个明智的选择,但我似乎无法弄明白。让我们说我想解压缩目录中的所有zip文件并将结果放在另一个目录中。所有文件都遵循模式region_*.zip
,其中*是一些id。
raster/region_%.tif: zip/region_%.zip
unzip -d raster $<
我的问题:如何在all
指令中包含此操作?
# Does not work
all: raster_region_%.tif
答案 0 :(得分:1)
始终从您要创建的目标开始向后工作,返回源文件(在本例中为zip文件)。
必须以某种方式告诉您要创建的目标是什么。它不能凭空而来直播。
在这种情况下,如果要为每个zip文件构建.tif
文件,首先需要获取所有zip文件的列表,然后将它们转换为目标文件:
ZIPFILES := $(wildcard zip/region_*.zip)
TARGETS := $(patsubst zip/region_%.zip,raster/region_%.tif,$(ZIPFILES))
all: $(TARGETS)