2011-07-28 12 views
9

私は以下の構造(動作例)のMakefileを持っています。"make"と "make all"の違いは何ですか?

.PHONY: image flashcard put-files 

put-files: 
    @echo "=== put-files" 

image: 
    @echo "=== image" 

flashcard: 
    @echo "=== flashcard" 

all: put-files image flashcard 
    @echo "Done" 

は、私はシンプルなmakeは、すべての3つのターゲットを構築することを期待していますが、これはそうではありません。

% make 
=== put-files 

しかし、私は明示的にターゲットを指定した場合、依存関係は、同様に構築されています:

% make all 
=== put-files 
=== image 
=== flashcard 
Done 

私は間違っていますか?

答えて

11

単純なmakeは、リスト内の最初のターゲット(put-files)を構築します。

make allは、ターゲットallを構築します。 allをデフォルトにしたい場合は、リストの一番上に移動します。

そうだねhttp://www.gnu.org/s/hello/manual/make/Phony-Targets.html

+0

を参照してください、.PHONYが何をするかを理解するために、私の問題は、私は何とかデフォルトターゲットは、(「すべて」)名前で、代わりの位置によって選択されることを考え出したということでした。どうもありがとう! –

関連する問題