【メイク】
Make とは?
最終更新:
💡 依存関係をたどり、必要な成果物を作る職人
Makefileに記述した依存関係と作り方に従い、ファイルの生成などを自動化するビルドツール。通常のファイルのルールでは、成果物の有無と更新日時を基に、必要な作業を判断する。
📌 このページのポイント
Makeって名前はシンプルだけど、何をしてくれるの?
毎回全部コンパイルし直すの?
通常のファイルのルールでは、成果物が存在しないか、依存ファイルより古ければ作り直すよ。main.cだけが新しくなった例なら、main.oを作り直し、それを使う実行ファイルもリンクし直す。Makeが毎回ファイルの内容を比較して差分を見つける、という仕組みではないんだ
Makefileってどんな感じで書くの?
C言語以外でも使えるの?
コマンドで行える文書の生成やテストなどにも使えるよ。cleanのように、同名のファイルがあっても実行したい作業は、GNU Makeでは.PHONYでファイルのターゲットと区別できる。更新日時だけで判断する通常のルールとは扱いが違うんだ
タブとスペースの違いでエラーになるって本当?
GNU Makeでは、通常レシピ行の先頭にタブを使うよ。Makefileの全てのインデントがタブ必須、という意味ではない。また.RECIPEPREFIXで先頭文字を変えたり、ルールと同じ行のセミコロンの後にレシピを書いたりする形式もあるんだ
📖 おまけ:英語の意味
「Make」 = 作る・生成する
💬 ソースコードなどから成果物を作る、という名前だよ。ここでは主にGNU Makeのマニュアルに沿って、ファイルの依存関係とレシピの仕組みを説明しているんだ