2012-09-30 26 views
1

好的,所以需要做的是生成文件必須將.test文件編譯爲.vtt文件,只有當.test文件自最近的編譯版本以來發生了變化。我沒有直接訪問.test文件的路徑,但是我可以得到它們的列表,並且可以從中生成新的.vtt文件的假定路徑。到目前爲止,我所擁有的是:如何編寫生成文件

SRC_DIR = . 
TEST_DIR = $(SRC_DIR)/test 
SPEC_DIR = $(TEST_DIR)/spec 
OBJ_DIR = $(SRC_DIR)/objdir 
OBJ_DIR_SPEC = $(OBJ_DIR)/test/spec 
TEST_SRC := $(shell find $(SPEC_DIR) -name '*.test' -print)                  
VTT_SRC := $(subst $(SRC_DIR)/test,$(OBJ_DIR)/test,$(subst .test,.vtt,$(TEST_SRC))) 
RUN_STIP_VTT = $(SPEC_DIR)/strip-vtt.py 

%.vtt : %.test: 
    $(PYTHON) $(RUN_STIP_VTT) $< [email protected] 

$(VTT_SRC): $(TEST_SRC) 
    $(PYTHON) $(RUN_STIP_VTT) $< [email protected] 

objdir: 
    mkdir $(OBJ_DIR) 

check-js: objdir $(VTT_SRC) 
    $(PYTHON) ./test/spec/run-tests-js.py $(OBJ_DIR_SPEC) 

TEST_SOURCE是已找到的.test文件的列表。 VTT_SOURCE是下面的.vtt格式和對象目錄中已轉換的測試文件的列表。我需要能夠在TEST_SOURCE中找到.vtt文件依賴項.test文件,並以某種方式告訴makefile關於該連接。

結束了這些變化修正它:

check-js: objdir $(VTT_SRC) 
     $(PYTHON) ./test/spec/run-tests-js.py $(OBJ_DIR_SPEC) 

$(OBJ_DIR)/%.vtt : $(SRC_DIR)/%.test 
    @$(PYTHON) $(STIP_VTT) $< [email protected] 

回答

2

我會使用一個靜態模式規則:

$(VTT_SRC): $(OBJ_DIR)/%.vtt : $(SRC_DIR)/%.test 
    $(PYTHON) $(RUN_STIP_VTT) $< [email protected] 
0

VPATH結構的製作可能是你在找什麼。