2

最初のMakefileを書き込もうとしています。現在、ルールは3つだけです。「make」を実行すると、最初のルールのみが実行され、他の2つを実行せずに終了します。Makefileに複雑なことは何もありません。ルールの数を2つに減らしてみましたが、同じ結果が得られました。これが私がこれまでに持っているものです。

SRC = src/analytics.js

lint:
    jshint $(SRC)

build: $(SRC)
    cat $^ > build/analytics.js

min: build
    uglifyjs --no-mangle build/analytics.js > build/analytics.min.js

make onを実行すると、次のようになります。lintルールが実行されたというメッセージが表示されます。jshint src/analytics.js

MacOS10.8.2でmake3.81を実行しています。

4

1 に答える 1

2

「make」だけを実行すると、通常は最初のターゲットであるデフォルトのターゲットだけが実行されます-あなたの場合は「lint:」です。

「lint」に依存関係がある場合は、それらをリストする必要があります。例えば:

lint: dep1 dep2

Make は、lint を実行する前に dep1 と dep2 を実行します。

上記の 3 つすべてを 'make' の 1 回の呼び出しで実行する場合は、このターゲットを他のターゲットの上に追加します。

all: lint build min

発生させたい順序でそれらを配置できます。私がターゲットを「すべて」と呼んだのは、それがその目的であって、何か特別なことをするという意味ではないからです。

于 2013-02-11T07:34:40.630 に答える