3

そんなこと知ってる

Make は、変更されたソース ファイルに基づいて、更新が必要なファイルを自動的に判断します。また、ある非ソース ファイルが別の非ソース ファイルに依存している場合に備えて、ファイルを更新するための適切な順序も自動的に決定します。

その結果、いくつかのソース ファイルを変更してから Make を実行すると、すべてのプログラムを再コンパイルする必要がなくなります。変更したソース ファイルに直接的または間接的に依存する非ソース ファイルのみが更新されます。

ここで、これらの変更されたソースを一覧表示するように Make に依頼できるかどうかを知りたいですか?

4

2 に答える 2

4

すべてのソースを前提条件として使用するダミー ファイルが必要になります。

mod_list: foo.c bar.cc baz.cpp
    @echo modified sources: $?
    @touch $@

ソースのリストを別の変数として保持できます。

WATCHED_SOURCES = foo.c bar.cc baz.cpp
mod_list: $(WATCHED_SOURCES)
    @echo modified sources: $?
    @touch $@

または、ワイルドカードを使用して、存在するすべてのソースを調べます。

WATCHED_SOURCES = $(wildcard *.c *.cc *.cpp *.whatever)
mod_list: $(WATCHED_SOURCES)
    @echo modified sources: $?
    @touch $@
于 2012-07-16T14:18:31.813 に答える
0

簡単な方法の 1 つは、dry run オプションを使用して作成することです。これは、使用している実装に応じて、1-nつまたは--dry-run複数の選択肢があります。これは、実行された場合に make が何をするかを示し、とりわけ、再コンパイルされるソース ファイルを示します。

それはすべてmanページにあります。

于 2012-07-16T09:13:53.897 に答える