好的,所以需要做的是makefile必须将.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) $< $@
$(VTT_SRC): $(TEST_SRC)
$(PYTHON) $(RUN_STIP_VTT) $< $@
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) $< $@
答案 0 :(得分:2)
我使用静态模式规则:
$(VTT_SRC): $(OBJ_DIR)/%.vtt : $(SRC_DIR)/%.test
$(PYTHON) $(RUN_STIP_VTT) $< $@
答案 1 :(得分:0)
Make中的VPATH
构造可能正是您所寻找的。 p>