# バッチファイルの例 cc -c foo.c cc -c bar.c cc -o foobar foo.o bar.o
bar.cを直して再度コンパイルしてみる場合を考えてみましょう。 コンパイル必要なのは、bar.cだけなので、
cc -c bar.c cc -o foobar foo.o bar.oの2つだけでいいはずです。foo.cのソースコードには手を加えていないので もう一度コンパイルしても前回とまったく同じfoo.oが作られるだけです。つまり foo.cをコンパイルするのは時間の無駄ということに なります。このように必要な作業だけを選んで順番にやってくれたら 楽ですよねぇ。これをやってくれるのがmakeです。
makeでは、Makefileというファイルにバッチファイルでやっていたようなことを 書いておきます。
foobar: foo.o bar.o cc -o foobar foo.o bar.o foo.o: foo.c cc -c foo.c bar.o: bar.c cc -c bar.cこのファイル(Makefile)を同じディレクトリに作り、コマンドラインから
% makeと入力するだけで作業を行なってくれます。
「ファイルfoo.oはファイルfoo.cをコンパイルして作られる」という ルールを書いてみましょう。
foo.o: foo.c cc -c foo.c最初の行は依存関係を表します。 依存関係とは、「foo.oはfoo.cから作られる」ということです。 実際にどうやって作るかは依存関係の次の行に書きます。 foo.oは、foo.cをコンパイルして作るので、そのときのコマンド 'cc -c foo.c'を書きます。 先頭にTABを入れるということに注意してください。先頭にTABが あるかどうかで依存関係か実行文かを判断しています。