コンパイルだけでなくソースファイルの管理など、さまざまなタスクを自動で管理してくれるmake
。複数のファイルが依存して構成されているものをコンパイルする作業の負担を減らすために作られたコマンドで、再コンパイルを効率よく行う為に、必要性のある部分のみを効率的に実行してくれます。更新する際に、依存しているファイルが変更されたか存在していないかが判断材料になっているようです。
「Makefile」
makeコマンドを実行するために欠かせないファイルで各ルールや変数定義によって構成されます。プログラムを構成しているファイル同士の関係や、各ファイルの生成手順を書き、コンパイルに必要なコマンドの情報置く場所です。このMakefile
への記述次第で各種プログラムや文書のファイルでmake
を実行し作業の効率化を図れます。
make
と入力するだけで、Makefile
に記述したコマンドが実行されます。自動でファイルのタイムスタンプ(データベースとファイルの最終更新時刻)を比較して更新が必要なものを選び、不要なビルドをスキップしながら的確に更新が必要と判断したものを作成します。大規模なプロジェクトになると100以上のソースファイルがありますが、ビルド毎に修正されるソースファイルの数が少ない場合が多く、すべてを毎回ビルドするのは大変なのでmakeが使われるのです。
「GNUmakefile」
makeコマンド-f
か--file
でファイル名をしていしないと、GNUmakefile
->makefile
->Makefile
の順にmakefileを探そうとします。通常ではMakefileが推奨されますが、GNUmakefileはあくまでもGNU make
の為のもので他のバージョン のmake
では処理できないmakefileを使う場合に使用するようにします。GNU make
はCSSやJava Scriptのサイズ圧縮などの反復作業やメンテナンス作業の自動化に特化しています。