include
指令が指示make
サスペンドするために、現在のメイクファイルを読み込む(一時停止)と1つの読み続ける前に、またはそれ以上の他のmakefileを(含める現在のmakeはMakefileを読んで停止しますが、その後、メイクファイルが含まれている読み込みせる命令を)。ディレクティブがありますルックスが好きなことをメイクファイル内の行にこれを:
include filenames…
ファイル名はシェルのファイル名のパターンを含めることができます。ファイル名が空の場合、何も含まれていないとエラーが出力されません。
余分なスペースが許可され、行の先頭に無視されますが、タブ(またはの値であってはならない最初の文字されている.RECIPEPREFIX
行-ifは)それがレシピ行と見なされます、タブで始まります。空白はとの間に必要とされるinclude
と、ファイル名、およびファイル名の間; 余分な空白が無視され、ディレクティブの終わりにされています。「#」で始まるコメントは行の終わりに許可されています。ファイル名は任意の変数や関数の参照が含まれている場合は、それらが展開されます。
たとえば、3つの.mkファイル、a.mk、b.mk、およびc.mk、としている場合$(bar)
が膨張をするにはbish bash
、次の式
include foo *.mk $(bar)
に相当します
include foo a.mk b.mk c.mk bish bash
場合make
処理include
指令を、それが含有するメイクファイルの読み出し中断し(按顺序)順番にリストされたファイルから読み込みます。それが終了すると、make
ディレクティブが表示されているメイクファイルを読み込む(继续)再開します。
使用するための一つの機会(チャンス)include
ディレクティブをするとき「複数の」プログラム、さまざまなディレクトリ内の個々のMakefileによって処理され、共通の定義や変数パターンルールのセットA(使用を使用する必要がシナリオを含め、必要性はいくつかのプログラムをコンパイルするとき、そして、各プログラムは、独自のメイクファイルを持っていることを、私たちが使用することができ、この時は)メイクファイルのそれぞれが含まれるように含まれています。
あなたは自動的にソースファイルから前提条件を生成する際に別のこのような機会があります。前提条件はメインのmakefileによって含まれているファイルに入れることができます。この方法は、一般的に、伝統的に、他のバージョンで行われていたとして何とかメインのmakefileの最後に前提条件を追加するよりもきれいですmake
。
指定された名前がスラッシュで始まらない、とファイルがカレントディレクトリに見つからない場合は、他のいくつかのディレクトリが検索されます。まず、あなたは「 - I」または「--include-dirの」オプションで指定した任意のディレクトリが検索されます。そして、次のディレクトリ(存在する場合)は、この順に、検索されます。プレフィックス/含める(通常は/ usr / local /含む)には/ usr / GNU /含めるには、/ usr / local /含めるの/ usr / include。
付属のmakefileはこれらのディレクトリのいずれかで見つけることができない場合は、警告メッセージが生成されますが、それはすぐに致命的なエラーではありません。含むメイクファイルの処理がinclude
継続されます。それが完成読み取りmakefileを持ったら、make
古くなっているか、存在しないいずれかをリメイクしようとします。それはメイクファイルをリメイクする方法を見つけることを試みたと失敗した後にのみ、だろうmake
致命的なエラーとして不足しているメイクファイルを診断します。
あなたがしたい場合はmake
、単にエラーメッセージなしで、存在しないか、リメイクすることはできませんメイクファイルを無視するために、使用-include
の代わりに、ディレクティブをinclude
次のように:
-include filenames…
これは、のように動作しinclude
、ファイル名(またはファイル名のいずれかの任意の前提条件)のいずれかが存在しないか、リメイクできない場合はエラー(いなくても警告)がないことを除いて、すべての方法インチ
いくつかの他との互換性のためmake
の実装、sinclude
別の名前です-include
。