私はmakefileビルドシステム(Linux上でAndroidをビルド)のバグに直面しています - いくつかのファイルは 'rm'コマンドで削除され、ビルドログでそのコマンドを見ることができます。Makefile(s)debug:コマンドに対するファイル/回線の呼び出し?
「rm」を呼び出すmakefileの正確な行を見つけるにはどうすればよいですか?自動化された方法はありますか?
私はmakefileビルドシステム(Linux上でAndroidをビルド)のバグに直面しています - いくつかのファイルは 'rm'コマンドで削除され、ビルドログでそのコマンドを見ることができます。Makefile(s)debug:コマンドに対するファイル/回線の呼び出し?
「rm」を呼び出すmakefileの正確な行を見つけるにはどうすればよいですか?自動化された方法はありますか?
約二ファイルと貴重ファイルは、以下のトリックを行うことができます作るも読む:
__shell := $(SHELL)
SHELL = \
$(warning making '[email protected]'$(if $^, from '$^')$(if $?, because of '$?'))$(__shell)
SHELL
変数は、makeを実行するサブシェルを起動するたびに展開されていますレシピ。これらの行では、各展開時にターゲット、その前提条件、およびターゲットよりも新しい前提条件を出力するように置き換えられます。また、各デバッグメッセージの先頭には、実行されているルールのファイルと行番号が付加されます。
GMDでは、特定のターゲットにブレークポイントを設定するために同じ手法が使用されています。
make -d -wを試してから、大量の出力行からファイルをgrepすることができます。
あなたmake
がGnu makeで、あなたはまた、彼らはintermediateをしているため、一部のファイルが削除される-d
と同じである--debug=b
(基本的なデバッグメッセージ、非常に多くの場合、十分な)または--debug=all
のような、some debugging optionsを渡すことができますと仮定。 GNUのためにmake
いいですね。しようとします。メイクファイル名と行番号を表示するように展開できますか? – LiMar
実際には、すでにあります。 ['$(warning ...)'](http://www.gnu.org/software/make/manual/make.html#Make-Control-Functions)関数はメッセージとともにメークファイル名と行番号を表示します。 –