前の関連記事:linuxBean14.04(29)LibreOfficeDev5.0SDKの例を一括でmakeする
Makeのデバッガというものを見つけたので使ってみました。
remakeのインストール
Synapticeパッケージマネージャでremakeで検索すると3.82がでてきました。
インストールは簡単でした。
linuxBean14.04ではmakeはすでに3.81がインストールされていました。
LibreOfficeDev5.0SDKのDevelopersGuide FirstStepsのMakefileを例にする
Sample Sessions - GNU Make Debugger, Remakeのサンプル、というかチュートリアルがあります。
これに沿ってLibreOfficeDev5.0SDKのDevelopersGuide FirstStepsのMakefileをみてみます。
(MakefileがやっていることはLibreOffice(23)FirstStepsのMakefileの出力ログ参照。)
linuxBean14.04(29)LibreOfficeDev5.0SDKの例を一括でmakeするで設定したGeanyで/opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstStepsにあるMakefileを開いて、ビルド→setsdkenv。
以下の結果はすべてmake cleanを実行した後に実行しています。
make cleanで削除されないファイルもあるので全く初めてmakeするときよりも出力結果は短くなっています。
1.1.1 How not to debug your Makefile make -d/--debugではデバッグ情報が多すぎる
make -d/--debug とするとデバッグ情報が出力されます。
make -dとすると上のほうの行が消えてしまってみれなかったので、make -d 2>&1 | tee ~/tmp/$(date +%Y%m%d_%H%M%S).log、としてホームフォルダに作ったtmpフォルダ内に出力結果をだしました。
GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. これはフリーソフトウェアです. 利用許諾についてはソースを ご覧ください. 商業性や特定の目的への適合性の如何に関わらず, 無保証です. This program built for i686-pc-linux-gnu makefile を読み込みます... makefile `Makefile' の読み込み中... makefile `../../../settings/settings.mk' の読み込み中 (探索パス) (~ の展開なし)... makefile `/opt/libreofficedev5.0/sdk/settings/dk.mk' の読み込み中 (探索パス) (~ の展開なし)... makefile `../../../settings/std.mk' の読み込み中 (探索パス) (~ の展開なし)... makefile `../../../settings/stdtarget.mk' の読み込み中 (探索パス) (~ の展開なし)... makefile の更新中.... ターゲットファイル `../../../settings/stdtarget.mk' の検討を行います. `../../../settings/stdtarget.mk' のための暗黙ルールを探します. 語幹 `stdtarget.mk' とのパターンルールを試します. 暗黙の必要条件 `../../../settings/stdtarget.mk,v' を試します. 語幹 `stdtarget.mk' とのパターンルールを試します. 暗黙の必要条件 `../../../settings/RCS/stdtarget.mk,v' を試します.途中略
make HelloTextTableShape.run 成功した子プロセス 0x08a10ac8 PID 29927 を回収します 生存子プロセス 0x08a10ac8 (FirstStepsExamples) PID 29928 -------------------------------------------------------------------------------- 成功した子プロセス 0x08a10ac8 PID 29928 を回収します チェインから子プロセス 0x08a10ac8 PID 29928 を削除します. ターゲットファイル `FirstStepsExamples' の再 make に成功しました. ターゲットファイル `ALL' の必要条件を満たしました. ターゲット `ALL' の再 make が必要です. ターゲットファイル `ALL' の再 make に成功しました.たしかにこれだと情報が多すぎてなにがなにやらわかりませんね。
1.1.2 Sample gnu Remake Trace Sessions remake -xでのデバッグ情報出力
make -nとremake -n
make -n/--just-print とするとコマンドの出力はしますが実行はされません。
make -n 2>&1 | tee ~/tmp/$(date +%Y%m%d_%H%M%S).log
mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples echo Main-Class: com.sun.star.lib.loader.Loader> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf echo>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf echo Name: com/sun/star/lib/loader/Loader.class>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf echo Application-Class: FirstUnoContact>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples "/usr/bin/javac" -classpath "/opt/libreofficedev5.0/sdk/../program/classes/juh.jar:/opt/libreofficedev5.0/sdk/../program/classes/jurt.jar:/opt/libreofficedev5.0/sdk/../program/classes/ridl.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoloader.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoil.jar::/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples" -d /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples FirstUnoContact.java rm -f /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples cd /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples && "/usr/bin/jar" cvfm FirstUnoContact.jar FirstUnoContact.mf FirstUnoContact.class /bin/sh: 1: cd: can't cd to /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples make: *** [/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar] エラー 2Makefileで作成したファイルを利用するコマンドのところでエラーがででて途中で止まってしまいました。
remakeでも同様のオプションがあります。
remake -n ではmake -n と違ってエラーで止まった場所がMakefileの何行目のターゲットを生成しようとしたときであるのかを教えてくれます。
remake -n 2>&1 | tee ~/tmp/$(date +%Y%m%d_%H%M%S).log
##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Main-Class: com.sun.star.lib.loader.Loader> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Name: com/sun/star/lib/loader/Loader.class>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Application-Class: FirstUnoContact>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "/usr/bin/javac" -classpath "/opt/libreofficedev5.0/sdk/../program/classes/juh.jar:/opt/libreofficedev5.0/sdk/../program/classes/jurt.jar:/opt/libreofficedev5.0/sdk/../program/classes/ridl.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoloader.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoil.jar::/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples" -d /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples FirstUnoContact.java ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rm -f /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cd /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples && "/usr/bin/jar" cvfm FirstUnoContact.jar FirstUnoContact.mf FirstUnoContact.class ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /bin/sh: 1: cd: can't cd to /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples Makefile:82: *** [/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar] Error 2 #0 /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar at /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:82 #1 FirstStepsExamples at /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:86 #2 ALL at /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:60 Command-line invocation: "remake -n"remake -nではコマンドの間に区切りを入れてくれるのが特徴のようです。
##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> コマンド ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< コマンド出力この形式で出力されるようです。
34行目から36行目は生成しようとしたターゲットが生成順にMakefileに定義されている場所とともに表示されています。
32行目をみるとMakefileの82行目のターゲットを生成しようとしたところでエラーがあったことがわかります。
make --debug=basicとremake -x/--trace
最初に実行したmake -d/--debugにはbasic, verbose, implicit, jobs, allの5つのモードがあります。
モードの指定はmake --debug=モード で行います。
モードの指定を行わない場合はallが指定されたことになるので、make -d はmake --debug=all と同じことになります。
それぞれのモードの出力結果をGISTに貼り付けてみました。
GISTのRevisionsをクリックするとそれぞれの比較ができると思います。
make --debug=basic 最小限のデバッグ情報のみを出力します。
make --debug=verbose basicモードに加えて再makeする必要のないファイルについての検討結果も出力されます。
make --debug=implicit basicモードに加えて暗幕のルールの検索結果についても出力されます。
make --debug=jobs 他のモードと全く異なり各プロセスについての情報が出力されます。
今度はremakeでデバッグ情報を出力してみます。
remake -x/--trace/--trace-normal いずれかのオプションがありますがすべて同じ結果になります。
GNU Make 3.82+dbg0.9 Built for i686-pc-linux-gnu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Reading makefiles... Updating goal targets.... /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:60 File `ALL' does not exist. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:86 File `FirstStepsExamples' does not exist. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:82 File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar' does not exist. File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf' does not exist. Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf'. Invoking recipe from Makefile:70 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Main-Class: com.sun.star.lib.loader.Loader> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Name: com/sun/star/lib/loader/Loader.class>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Application-Class: FirstUnoContact>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:69 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.mf'. File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.class' does not exist. Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.class'. Invoking recipe from Makefile:66 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.class'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "/usr/bin/javac" -classpath "/opt/libreofficedev5.0/sdk/../program/classes/juh.jar:/opt/libreofficedev5.0/sdk/../program/classes/jurt.jar:/opt/libreofficedev5.0/sdk/../program/classes/ridl.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoloader.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoil.jar::/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples" -d /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples FirstUnoContact.java ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:65 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.class'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:82 Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar'. Invoking recipe from Makefile:77 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rm -f /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cd /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples && "/usr/bin/jar" cvfm FirstUnoContact.jar FirstUnoContact.mf FirstUnoContact.class ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< マニフェストが追加されました FirstUnoContact.classを追加中です(入=1295)(出=753)(41%収縮されました) ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "/usr/bin/jar" uvf /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar -C ../../../classes 'com/sun/star/lib/loader/Loader.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$CustomURLClassLoader.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../classes 'com/sun/star/lib/loader/InstallationFinder.class' -C ../../../classes 'com/sun/star/lib/loader/InstallationFinder$StreamGobbler.class' -C ../../../classes 'com/sun/star/lib/loader/WinRegKey.class' -C ../../../classes 'com/sun/star/lib/loader/WinRegKeyException.class' -C ../../../classes 'win/unowinreg.dll' ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< com/sun/star/lib/loader/Loader.classを追加中です(入=7991)(出=3793)(52%収縮されました) com/sun/star/lib/loader/Loader$Drain.classを追加中です(入=739)(出=444)(39%収縮されました) com/sun/star/lib/loader/Loader$CustomURLClassLoader.classを追加中です(入=1363)(出=666)(51%収縮されました) com/sun/star/lib/loader/InstallationFinder.classを追加中です(入=8900)(出=4859)(45%収縮されました) com/sun/star/lib/loader/InstallationFinder$StreamGobbler.classを追加中です(入=960)(出=542)(43%収縮されました) com/sun/star/lib/loader/WinRegKey.classを追加中です(入=4779)(出=2432)(49%収縮されました) com/sun/star/lib/loader/WinRegKeyException.classを追加中です(入=475)(出=287)(39%収縮されました) win/unowinreg.dllを追加中です(入=12288)(出=1712)(86%収縮されました) /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:82 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstUnoContact.jar'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:83 File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.jar' does not exist. File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf' does not exist. Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf'. Invoking recipe from Makefile:70 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Main-Class: com.sun.star.lib.loader.Loader> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Name: com/sun/star/lib/loader/Loader.class>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Application-Class: FirstLoadComponent>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:69 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.mf'. File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.class' does not exist. Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.class'. Invoking recipe from Makefile:66 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.class'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "/usr/bin/javac" -classpath "/opt/libreofficedev5.0/sdk/../program/classes/juh.jar:/opt/libreofficedev5.0/sdk/../program/classes/jurt.jar:/opt/libreofficedev5.0/sdk/../program/classes/ridl.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoloader.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoil.jar::/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples" -d /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples FirstLoadComponent.java ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:65 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.class'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:83 Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.jar'. Invoking recipe from Makefile:77 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.jar'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rm -f /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.jar ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cd /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples && "/usr/bin/jar" cvfm FirstLoadComponent.jar FirstLoadComponent.mf FirstLoadComponent.class ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< マニフェストが追加されました FirstLoadComponent.classを追加中です(入=4529)(出=2307)(49%収縮されました) ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "/usr/bin/jar" uvf /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.jar -C ../../../classes 'com/sun/star/lib/loader/Loader.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$CustomURLClassLoader.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../classes 'com/sun/star/lib/loader/InstallationFinder.class' -C ../../../classes 'com/sun/star/lib/loader/InstallationFinder$StreamGobbler.class' -C ../../../classes 'com/sun/star/lib/loader/WinRegKey.class' -C ../../../classes 'com/sun/star/lib/loader/WinRegKeyException.class' -C ../../../classes 'win/unowinreg.dll' ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< com/sun/star/lib/loader/Loader.classを追加中です(入=7991)(出=3793)(52%収縮されました) com/sun/star/lib/loader/Loader$Drain.classを追加中です(入=739)(出=444)(39%収縮されました) com/sun/star/lib/loader/Loader$CustomURLClassLoader.classを追加中です(入=1363)(出=666)(51%収縮されました) com/sun/star/lib/loader/InstallationFinder.classを追加中です(入=8900)(出=4859)(45%収縮されました) com/sun/star/lib/loader/InstallationFinder$StreamGobbler.classを追加中です(入=960)(出=542)(43%収縮されました) com/sun/star/lib/loader/WinRegKey.classを追加中です(入=4779)(出=2432)(49%収縮されました) com/sun/star/lib/loader/WinRegKeyException.classを追加中です(入=475)(出=287)(39%収縮されました) win/unowinreg.dllを追加中です(入=12288)(出=1712)(86%収縮されました) /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:83 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/FirstLoadComponent.jar'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:84 File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.jar' does not exist. File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf' does not exist. Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf'. Invoking recipe from Makefile:70 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Main-Class: com.sun.star.lib.loader.Loader> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Name: com/sun/star/lib/loader/Loader.class>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Application-Class: HelloTextTableShape>> /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:69 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.mf'. File `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.class' does not exist. Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.class'. Invoking recipe from Makefile:66 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.class'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "/usr/bin/javac" -classpath "/opt/libreofficedev5.0/sdk/../program/classes/juh.jar:/opt/libreofficedev5.0/sdk/../program/classes/jurt.jar:/opt/libreofficedev5.0/sdk/../program/classes/ridl.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoloader.jar:/opt/libreofficedev5.0/sdk/../program/classes/unoil.jar::/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples" -d /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples HelloTextTableShape.java ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:65 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.class'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:84 Must remake target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.jar'. Invoking recipe from Makefile:77 to update target `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.jar'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rm -f /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.jar ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cd /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples && "/usr/bin/jar" cvfm HelloTextTableShape.jar HelloTextTableShape.mf HelloTextTableShape.class ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< マニフェストが追加されました HelloTextTableShape.classを追加中です(入=8580)(出=4362)(49%収縮されました) ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "/usr/bin/jar" uvf /home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.jar -C ../../../classes 'com/sun/star/lib/loader/Loader.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$CustomURLClassLoader.class' -C ../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../classes 'com/sun/star/lib/loader/InstallationFinder.class' -C ../../../classes 'com/sun/star/lib/loader/InstallationFinder$StreamGobbler.class' -C ../../../classes 'com/sun/star/lib/loader/WinRegKey.class' -C ../../../classes 'com/sun/star/lib/loader/WinRegKeyException.class' -C ../../../classes 'win/unowinreg.dll' ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< com/sun/star/lib/loader/Loader.classを追加中です(入=7991)(出=3793)(52%収縮されました) com/sun/star/lib/loader/Loader$Drain.classを追加中です(入=739)(出=444)(39%収縮されました) com/sun/star/lib/loader/Loader$CustomURLClassLoader.classを追加中です(入=1363)(出=666)(51%収縮されました) com/sun/star/lib/loader/InstallationFinder.classを追加中です(入=8900)(出=4859)(45%収縮されました) com/sun/star/lib/loader/InstallationFinder$StreamGobbler.classを追加中です(入=960)(出=542)(43%収縮されました) com/sun/star/lib/loader/WinRegKey.classを追加中です(入=4779)(出=2432)(49%収縮されました) com/sun/star/lib/loader/WinRegKeyException.classを追加中です(入=475)(出=287)(39%収縮されました) win/unowinreg.dllを追加中です(入=12288)(出=1712)(86%収縮されました) /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:84 Successfully remade target file `/home/pq/libreoffice5.0_sdk/LINUXexample.out/class/FirstStepsExamples/HelloTextTableShape.jar'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:86 Must remake target `FirstStepsExamples'. Invoking recipe from Makefile:87 to update target `FirstStepsExamples'. ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo -------------------------------------------------------------------------------- ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -------------------------------------------------------------------------------- ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo Please use one of the following commands to execute the examples! ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Please use one of the following commands to execute the examples! ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo - ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo remake FirstUnoContact.run ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< remake FirstUnoContact.run ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo remake FirstLoadComponent.run ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< remake FirstLoadComponent.run ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo remake HelloTextTableShape.run ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< remake HelloTextTableShape.run ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo -------------------------------------------------------------------------------- ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -------------------------------------------------------------------------------- /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:86 Successfully remade target file `FirstStepsExamples'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:60 Must remake target `ALL'. /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/FirstSteps/Makefile:60 Successfully remade target file `ALL'.このハイライトした行を追っていけばmakeがターゲットと依存関係を調べてMakefileを読み込んでいく様子がよくわかりますね。
1.1.3 A Larger Real-World Makefile Trace remake --trace=readでincludeファイルがわかる
remake --trace=read とするとMakefileで読み込んでいるほかのMakefileがわかります。
Reading makefile `Makefile'... Reading makefile `../../../settings/settings.mk' (search path) (no ~ expansion)... Reading makefile `/opt/libreofficedev5.0/sdk/settings/dk.mk' (search path) (no ~ expansion)... Reading makefile `../../../settings/std.mk' (search path) (no ~ expansion)... Reading makefile `../../../settings/stdtarget.mk' (search path) (no ~ expansion)...includeしたmkファイルがincludeしたmkファイルもちゃんと表示されます。
このモードではremake -nと同じような形式でmakeの出力結果が出力されるだけでデバッグ情報は出力されませんでした。
参考にしたサイト
Summary - GNU Make Debugger, Remake
Make Debugger Remakeのマニュアルページ。なぜかTopページのリンクがおかしくなっています。
GNU make 日本語訳(Coop編) - 目次
makeのマニュアル。
GNU make 日本語訳(Coop編) - makeの実行方法
makeのオプション要約。
12. Debugging Makefiles - Managing Projects with GNU Make, 3rd Edition
デバッグオプションのbasic, verbose, implicit, jobs, allの解説があります。
0 件のコメント:
コメントを投稿