Make - Linuxコマンド - Unixコマンド

make - GNU makeユーティリティはプログラムのグループを維持する

シノプシス

make [ -f makefile ] [option] ...ターゲット...

警告

このページは、 GNU makeのドキュメンテーションの抜粋です GNUプロジェクトはnroffを使用しないため、ときどき更新されます。 最新のドキュメントは、Texinfoソースファイルmake.texinfoから作られたinfoファイルmake.infoを参照してください。

説明

makeユーティリティの目的は、大規模なプログラムのどの部分を再コンパイルする必要があるかを自動的に判断し、それらを再コンパイルする コマンド を発行することです。 このマニュアルは、Richard StallmanとRoland McGrathによって書かれたmakeのGNU実装について説明しています。 私たちの例は、Cプログラムが最も一般的であることを示していますが、シェルコマンドでコンパイラを実行できるプログラミング言語でmakeを使用することができます。 実際、 makeはプログラムに限定されません。 他のファイルが変更されるたびに、自動的に他のファイルから更新する必要のあるタスクを記述するために使用することができます。

makeを使用する準備をするには、プログラム内のファイル間の関係を記述するmakefileというファイルを記述し、各ファイルを更新するコマンドを記述する必要があります。 プログラムでは、通常、実行可能ファイルはオブジェクトファイルから更新され、オブジェクトファイルはソースファイルをコンパイルすることによって作成されます。

適切なmakefileが存在すると、いくつかのソースファイルを変更するたびに、次の単純なシェルコマンドが実行されます。

作る

すべての必要な再コンパイルを実行するのに十分です。 makeプログラムは、makefileデータベースとファイルの最終変更時刻を使用して、更新が必要なファイルを決定します。 それらのファイルごとに、データベースに記録されたコマンドを発行します。

makeは、 makefile内のコマンド実行して、1つ以上のターゲットを更新します 。ここで、 nameは通常はプログラムです。 -fオプションが指定されていない場合、makeはmakefiles GNUmakefilemakefileMakefileの順に検索します。

通常、makefileをMakefileまたはMakefileのどちらかと呼ぶべきです。 ( Makefileは、 READMEのような他の重要なファイルのすぐ近くのディレクトリリストの先頭近くに表示されるので、 Makefileを推奨します)。チェックされたファーストネーム、 GNUmakefileは、ほとんどのメイクファイルにはお勧めできません。 GNU makeに固有のmakefileがあり、他のバージョンのmakeでは理解できない場合は、この名前を使用するべきです。 makefileが ` - 'の場合、標準入力が読み込まれます。

ターゲットが最後に変更されてから変更された前提条件ファイルに依存する場合、またはターゲットが存在しない場合は、更新をターゲットにします。

オプション

-b

-m

これらのオプションは、他のバージョンのmakeとの互換性のために無視されます。

-C dir

makefileを読む前にディレクトリdirに変更するか、他の操作をしてください。 複数の-Cオプションが指定されている場合、それぞれのオプションは前のものと比較して解釈されます。 -C / -C etcは-C / etcと等価です。 これは通常、 makeの再帰的な呼び出しで使用されます。

-d

通常の処理に加えて、デバッグ情報を出力します。 デバッグ情報には、どのファイルがリメイクされているか、どのファイルが比較されているか、どのファイルが実際に再作成する必要があるか、どの暗黙的なルールが適用されるか何をすべきか。

-e

makefileからの変数よりも環境優先順位の変数を与えます。

-f ファイル

makefileとしてfileを使用します

-私

ファイルをリメイクするために実行されるコマンドのすべてのエラーを無視します。

-I dir

インクルードされたメークファイルを検索するディレクトリを指定します。 いくつかの-Iオプションを使用して複数のディレクトリを指定すると、指定された順序でディレクトリが検索されます。 makeの他のフラグへの引数とは異なり、 -Iフラグで指定されたディレクトリは、 -I dir-I dirの両方のフラグの直後に来ることがあります この構文は、Cプリプロセッサの-Iフラグとの互換性のために使用できます。

-j jobs

同時に実行するジョブ(コマンド)の数を指定します。 複数の-jオプションがある場合、最後のオプションが有効です。 引数なしで-jオプションを指定した場合、 makeは同時に実行できるジョブの数を制限しません。

-k

エラーの後、可能な限り続ける。 失敗したターゲットとそれに依存するターゲットは再作成できませんが、これらのターゲットの他の依存関係はすべて同じように処理できます。

-l

-l ロード

他のジョブが実行中で、負荷平均が少なくとも負荷 (浮動小数点数)以上である場合 、新しいジョブ(コマンド)を開始しないことを指定します。 引き数を指定しないと、以前の負荷制限が削除されます。

-n

実行されるコマンドを出力しますが、実行しないでください。

-o ファイル

ファイルの依存関係よりも古いファイルであっても、ファイルをリメイクしないでください。 ファイルが変更されたために何かをリメイクしないでください。 基本的にファイルは非常に古いものとして扱われ、その規則は無視されます。

-p

makefileを読み込んだ結果のデータベース(ルールと変数の値)を出力します。 通常どおりに実行するか、別の方法で実行します。 これは、 -vスイッチ(下記参照)によって与えられたバージョン情報も表示します。 ファイルをリメイクせずにデータベースを印刷するには、 make -p -f / dev / nullを使用します。

-q

``質問モード ''。 コマンドを実行したり、何かを印刷したりしないでください。 指定されたターゲットがすでに最新であればゼロの終了ステータスを返し、それ以外の場合はゼロ以外のステータスを返します。

-r

組み込み暗黙ルールの使用を排除します。 サフィックスルールのサフィックスのデフォルトリストもクリアします。

-s

サイレントオペレーション。 コマンドが実行されたときにコマンドを印刷しないでください。

-S

-kオプションの効果を取り消します。 MAKEFLAGS 介してトップレベルのmakeから-kを継承することができる再帰的なmake以外、またはご使用の環境のMAKEFLAGSに-kを設定した場合を除いて、これは決して必要ありません。

-t

コマンドを実行する代わりに、ファイルに触れてください。 これは、 makeの将来の呼び出しを欺くために、コマンドが実行されたことをふりまとうために使用されます。

-v

makeプログラムのバージョン、著作権、著者のリスト、および保証のないことの通知を印刷します。

-w

他の処理の前後に作業ディレクトリを含むメッセージを出力します。 再帰的makeコマンドの複雑なネストからのエラーを追跡するのに便利です。

-W ファイル

ターゲットファイルが変更されたばかりであると仮定します-nフラグと一緒に使用すると、そのファイルを変更する場合に何が起きるかが表示されます。 -nを指定しないと、 makeを実行する前に与えられたファイルに対してtouchコマンドを実行するのとほぼ同じですが、 makeの想像力でのみ変更時間が変更されます。