2016-08-30 26 views
0

私はこのMakefileをPHPプロジェクトに持っています(これは完全なMakefileから削除されています)。どのように私はこれを変更することができますので、public/assets/styles/main.scssが&再実行されたことを検出しましたか?Makefile:ソースが変更された場合、ターゲットを再構築

all: public/assets/styles/styles.css 

public/assets/styles/styles.css: 
    sass public/assets/styles/main.scss > public/assets/styles/styles.css 
+0

あなたは依存関係としてSCSSファイルを設定する必要があります。 – tkausl

答えて

1

は単に.scssがあなたの.cssターゲットの前提条件を提出します。ボーナスとして、あなたのベースパスの繰り返しを避けるために、レシピはあまり冗長にするためにautomatic variablesを使用します。

STYLEDIR := public/assets/styles 

all: $(STYLEDIR)/styles.css 

$(STYLEDIR)/styles.css: $(STYLEDIR)/main.scss 
    sass $< > [email protected] 
+0

ここでの問題: 'sass'コマンドが失敗した場合でも、出力は作成されます。次回の実行時に_make_を混乱させます。 makefileのどこかに 'DELETE_ON_ERROR:'を追加してください。ほとんどの場合、これは有効にしておきます。 – bobbogo

関連する問題