2012-01-25 6 views
1

私はビルドし、後でコンボローダサーバーアプリケーションの使用のために私の.jsファイルを最小化するのに役立つ私のアプリにMakefileをビルドしてビルドしようとしています。ビルド/最小化JSファイルが変更されました

私が成し遂げようとしているのは、makeを実行すると、最後に実行されてから変更された.jsファイルだけをビルドディレクトリにコピーしてから、そのファイルを小さくして-min .jsコピー。最後に、常に新しいmeta.jsファイルを生成することを常に確認する必要があります。

私は以下の作業を貼り付けましたが、この問題は、変更された.jsファイルだけを選択するのではなく、実行ごとに各ファイルを選択することである。私は、このインスタンスで変更されたファイルだけを選択するようにMakeを取得する方法に何か不足しています。

BOOKIE_JS = bookie/static/js/bookie 
JS_BUILD_PATH = bookie/static/js/build 
JS_META_SCRIPT = scripts/js/generate_meta.py 

jsbuild: $(JS_BUILD_PATH)/bookie/meta.js 

clean_js: 
    rm -rf $(JS_BUILD_PATH)/* 

$(JS_BUILD_PATH)/bookie/meta.js: $(BOOKIE_JS)/y*-min.js 
    $(JS_META_SCRIPT) -n YUI_MODULES -s $(BOOKIE_JS)/y* -o $(JS_BUILD_PATH)/bookie/meta.js 

$(BOOKIE_JS)/y*-min.js: $(BOOKIE_JS)/y*.js 
    scripts/js/jsmin_all.py $(JS_BUILD_PATH)/bookie 

    # this is the part that runs for each .js file and I'd like it to only run for the *modified* files 
$(BOOKIE_JS)/y*.js: $(JS_BUILD_PATH)/bookie 
    cp [email protected] $(JS_BUILD_PATH)/bookie/ 

$(JS_BUILD_PATH)/bookie: 
    mkdir $(JS_BUILD_PATH)/bookie 

clean: clean_js 

.PHONE: clean clean_js 

電流出力:

cp bookie/static/js/bookie/yapi.js bookie/static/js/build/bookie/ 
cp bookie/static/js/bookie/ymodel.js bookie/static/js/build/bookie/ 
cp bookie/static/js/bookie/ytagcontrol.js bookie/static/js/build/bookie/ 
cp bookie/static/js/bookie/yview.js bookie/static/js/build/bookie/ 
scripts/js/jsmin_all.py bookie/static/js/build/bookie 
scripts/js/generate_meta.py -n YUI_MODULES -s bookie/static/js/bookie/y* -o bookie/static/js/build/bookie/meta.js 

私が変更されたファイルのCPのみを見てみたいと思います。

答えて

3

pattern ruleを作成しようとしましたが、間違った構文が使用されたと思います。たとえば、この: - それらのすべて、類似した名前を持つだけではなく、1

$(BOOKIE_JS)/y*-min.js: $(BOOKIE_JS)/y*.js 
    scripts/js/jsmin_all.py $(JS_BUILD_PATH)/bookie 

$(BOOKIE_JS)/y*-min.jsの各ファイルは、$(BOOKIE_JS)/y*.jsファイルに依存を意味します。あなたがこれを行う場合は、次の例$(BOOKIE_JS)/yapi-min.jsため$(BOOKIE_JS)/yapi.js

+0

感謝にのみ依存して

$(BOOKIE_JS)/y%-min.js: $(BOOKIE_JS)/y%.js scripts/js/jsmin_all.py $(JS_BUILD_PATH)/bookie 

が、その後%は、それぞれの側に同じ文字列に置き換える必要があり、完全に*%対を逃しました – Rick

関連する問題