#include "defs.h"
このとき各ソースファイルの依存関係、実行イメージファイルの生成手順を makefile に記述すると、次のようになります。
prog: prog.o x.o y.o z.o # ルール定義 cc prog.o x.o y.o z.o -o prog # アクション定義: 先頭はタブ(^I) で始まる。 prog.o: prog.c cc -c prog.c x.o: x.c cc -c x.c y.o: y.c defs.h cc -c y.c z.o: z.c defs.h cc -c z.c意味は、
$ makemakefile, Makefile の両方が存在するとき makefile が使用されます。
$ make -f xxxx
make は、その処理を行う場合は次の3段階のルールに従います。
prog: prog.o x.o y.o z.o cc prog.o x.o y.o z.o -o prog x.o y.o: defs.h次の例は、例題の状況で初めて make を実行した時のものです。
$ make cc -c prog.c cc -c x.c cc -c y.c cc -c z.c cc prog.o x.o y.o z.o -o prog次に x.c を修正した場合(更新日付が変更される)、再度 make を実行すると次のように なります。
$ touch x.c # x.c の更新日付を最新に $ make cc -c x.c cc prog.o x.o y.o z.o -o prog同様に defs.h を修正すると、上記の例とは影響範囲が異なります。
$ touch defs.h $ make cc -c x.c cc -c y.c cc prog.o x.o y.o z.o -o progこの様に個々のモジュール(ソースやオブジェクト) の依存関係を makefile に定義しておくことで、必要なターゲット(この場合は prog) を 矛盾なく生成することが可能です。
Section Next|Prev
|Up|Index|凡例 /body>