なじみのないソフトウェアパッケージを作ろうとしていますが、これもなじみのないautomakeを使用しています。さまざまなMakefileには、マクロ$(AM_MAKEFLAGS)がいたるところにあります。このマクロの内容を知る必要があります。greppedとgreppedを実行しましたが、定義されている場所が見つかりません。これは、AM_MAKEFLAGSが空白であることを意味しますか?それとも、automaketypicalは私が決して見ようとは思わない場所にそれを置きますか?結論:どこにも定義されていない場合、何が含まれているのかを知るにはどうすればよいですか?ありがとう。
2 に答える
を呼び出すときmakeは、コマンドラインパラメーターを使用する-pか、検出--print-data-baseしたすべてのルールと変数の値を出力させることができます。出力をファイルにリダイレクトし、AM_MAKEFLAGSそのファイルを検索すると、変数が定義されているかどうか、定義されている場合はその値が表示されます。追加情報については、セクション9.7オプションの要約を参照してください。
Makefile.inまず、 automakeによって生成されたもの、またはテンプレートMakefileからconfigureによって(config.statusを介して)構築されたものを確認する必要はほとんどなく、望ましくないことに注意してMakefile.inください。これらは人間の消費を目的としたものではありません。それらを読むことは、元のソースコードではなく、コンパイラによって生成されたマシンコードを見ることに似ています。
AM_MAKEFLAGSパッケージメンテナが基本的ににテキストを追加できるメカニズムMAKEFLAGSです。のすべての呼び出しは、引数としてmake呼び出されます。AM_MAKEFLAGSそれは(非常に)しばしば未定義のままであり、無視することができます。メンテナがそれを定義することを選択した場合、定義はになり、定義を提供する行は、automakeによってMakefile.am逐語的にコピーされます。Makefile.in