12.1 コンパイルと分割統治

  4.コンパイル例:その2
 gccに、オプション -c を指定することによって、オブジェクトファイルだけ生成していくことを考えます。前頁のコンパイル例:その1で、sgetline.c と scopy.c のオブジェクトファイルを生成し、その後、main.cをコンパイル、リンクするには以下のようにビルドしていきます。
(コンパイル例:その2) 
%gcc -c sgetline.c
%gcc -c scopy.c
%gcc -o maxline main.c sgetline.o scopy.o
 上記の手順は、分割したプログラムのソースファイルが増えても、修正されていないソースファイルに対する無駄なコンパイルをしなくて済みます。
 しかし、ソースファイルの追加や削除、ファイル名の変更、関連するヘッダファイルとの依存関係など、対象となるファイル群に変更が加えられた時、その全てを手作業でサポートすることが、非常に煩雑になります。
 この問題を解決するのが、以下に述べるmake(および指示ファイル Makefile)です。