2017-04-12 1 views
0

나는 이것이 생각할 필요가 없을 것이라고 생각했지만, 나는 그것을 파악하지 못했습니다. 디렉토리의 모든 zip 파일의 압축을 풀고 결과를 다른 디렉토리에 저장하려고한다고 가정 해 봅시다. 모든 파일은 region_*.zip 패턴을 따르며 여기서 *는 일부 ID입니다.메이크 파일의 모든 지시문에 와일드 카드가 포함 된 대상 파일을 포함하십시오.

raster/region_%.tif: zip/region_%.zip 
    unzip -d raster $< 

내 문제 : 어떻게 all 지침에서이 작업을 포함합니까?

# Does not work 
all: raster_region_%.tif 

답변

1

Make는 항상 소스 파일 (이 경우 zip 파일)로 만들 대상에서 뒤로 작동합니다.

Make는 어떻게 든 만들려는 대상이 무엇인지 말해야합니다. 얇은 공기에서 그렇게 쉽게 직감 할 수는 없습니다. 이 경우

, 당신은 당신이 먼저 모든 압축 파일의 목록을 대상 파일로 변환해야하는 각 압축 파일에 대한 .tif 파일 구축하려는 경우 :

ZIPFILES := $(wildcard zip/region_*.zip) 
TARGETS := $(patsubst zip/region_%.zip,raster/region_%.tif,$(ZIPFILES)) 

all: $(TARGETS) 
관련 문제