我正在爲具有複雜目錄結構中大量js文件的項目編寫一個Makefile。運行時,需要對每個文件執行一些編譯並將結果保存到具有相同樹結構的不同目錄中(現在由cp
模擬)。當我運行make js
時,它會自動生成,當我再次運行make js
時,它說沒有任何工作要做。但是,當我修改其中一個文件和make js
時,它會重新構建整個樹而不是修改後的文件。即使只有一個更改,Makefile也會重建所有文件
SHELL := /bin/bash
BUILDDIR := build/gui/
RAWJSFILES := $(shell find app -name '*.js')
BUILT_RAWJSFILES := $(patsubst %, $(BUILDDIR)%,$(RAWJSFILES))
$(BUILDDIR):
mkdir -p $(BUILDDIR)
$(RAWJSFILES): $(BUILDDIR)
$(BUILT_RAWJSFILES): $(RAWJSFILES)
mkdir -p $(@D)
# compile step
cp $(shell python -c "print '[email protected]'.lstrip('${BUILDDIR}')") $(@D)
.PHONY: js
js: $(BUILT_RAWJSFILES)
啊感謝結算,多達你舉的例子也工作完全一樣標榜! – hatch