
681
20
章
make
で
C
プログラムを
ビルドする
18章で紹介したように、Cプログラムをコンパイルしてリンクするには、多数の複雑な
コマンドが必要となる。makeユーティリティは、どんなに複雑で大きなプログラムでもコ
ンパイル処理を自動化して管理する。1つのmakeコマンドで数百のコンパイラやリンカコ
マンドを代替できる。さらに、makeは関連ファイルのタイムスタンプを比較して、既に行っ
た作業を繰り返すのを防ぐ。最も重要なことは、さまざまなターゲットをどのようにビルド
するか定義した個別ルールを管理し、関連する全ファイルについて依存関係を自動的に分
析することだ。
さまざまなバージョンのmakeがあり、機能と用法が大きく異なる。組み込み変数集合
が異なり、ターゲットに特別な意味がある。本章では、さまざまなものをカバーするので
はなくて、広く使われているGNU makeに絞る(デフォルトが異なるmakeのシステム
で
は、GNU makeは実行名gmakeであることが多い)。さらに、GNU makeに関しても本章
は基本にとどまる。本書では、makeをCソースコードからのプログラムビルド用ツールと
してだけ使う。makeの全機能を活用するなら、プログラムのドキュメントを読むしかない。
makeの高度な機能を使うためには、Robert Mecklenburg著、矢吹道郎監訳、菊池彰訳、
GNU Make第3版、オライリー・ジャパン(2005)を参照。
20.1
ターゲット、前提条件、コマンド
makeによる解