2016-11-10 5 views
1

私たちはすべてのJSをビルドするための2つのターゲットを持っています。ファイルの完全なリストを取得してtranspileスクリプトに渡し、もう一方は変更されたファイルのみを取り出し、透明なスクリプトに渡します。問題は、nのファイルが変更されている場合、各ファイルに対して一度に1つずつ一致するターゲットを実行することです。すべての一致するファイルを一度にビルドするMakefileターゲット

現在の目標:目標はすべてのマッチングは、それが一度だけ実行されるように、その後transpileスクリプトに渡すことができるファイルを変更取得するため

.PHONY: build-all 
build-all: 
    FILE_LIST="$(RAWJSFILES)" ./scripts/transpile.js 

$(BUILD)/app/%.js: $(SRC)/app/%.js 
    FILE_LIST="$(SRC)/app/$*.js" ./scripts/transpile.js 

はできてますか?ありがとう!

答えて

0

あなたはこれを動作させる方法を正確には言いません。私はJavaScriptのハッキングや "トランスカリル"に精通していないので推測できません。

しかし、あなたは常にそれが実行された最後の時間以降に変更されたファイル上でスクリプトを実行するターゲットをしたい場合は、あなたのようなものを使用することができます:$?の議論のため

ALLFILES := $(wildcard $(SRC)/app/*.js 

build-all: $(ALLFILES) 
     FILE_LIST="$?" ./scripts/transpile.js 
     @touch [email protected] 

参照Automatic Variablesを。

問題がありますが、問題が明確に定義されていないため、影響を受けるかどうかは不明です。

+0

私はそれが望んでいた正確にこれは正確に動作します。私は '$? 'を使って答えが分かりましたが、私はカナリーファイルをコンパイラとして使うことは考えていませんでした。 – hatch

関連する問題