
682
20
章
make
で
C
プログラムをビルドする
である。同時に、オブジェクトファイルは、ソースファイルやヘッダファイルが変更される
と、再コンパイルしなければならない中間ターゲットである(実行ファイルは間接的にソー
スファイルに依存し、makeは依存の連鎖を、たとえ複雑になっても管理する)。各ターゲッ
トのルールは、一般に1つ以上のコマンドを含み、コマンドスクリプトと呼ばれ、それを
makeが実行してビルドする。例えば、実行ファイルをビルドするルールはリンカを実行し、
オブジェクトファイルをビルドするルールは、プリプロセッサとコンパイラを実行する。言
い換えると、ルールの前提条件はいつターゲットをビルドするかを、コマンドスクリプトは
どのようにビルドするかを示す。
20.2
make
ファイル
makeはルールに特別な構文を使う。さらに、makeがプロジェクトで管理する全操作の
ルールは、一般にmakeが読む 1つのファイルにまとめられる。コマンドラインオプシ
ョン
-f
filename
は、makeにどのファイルが適用したいルールを含むか指定する。通常、この
オプションは省略され、makeはデフォルト名makefile、あるいは失敗したらMakefileと
いう名のファイルを探す
*1
。
makefileを読むときに、それらが単に読んだ順番に実行されるスクリプトではないこと
に注意。makeは makefile全部をまず分析して、可能なターゲットとその前提条件との依
存関係ツリーを構築し、それから依存関係ツリーを調べて ...