なじみのないソフトウェアパッケージを作ろうとしていますが、これもなじみのない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