Makefile の書き方 (C 言語) — WTOPIA v1.0 documentation
基本的な書き方
ターゲット名: 依存ファイル名 1 依存ファイル名 2 依存ファイル名 3 コマンド行 1 コマンド行 2 コマンド行 3
実行
make ターゲット名
ポイント
- make というコマンドを実行するだけで、自動的にコマンドを実行してコンパイルしてくれる
- 出力:入力 という関係
- インデントはタブ文字 で書かないと作動しない
Makefileの例
all: $(MAKE) -C pdp11-10 7run.out: 7runall.sh ./7runall.sh > $@ interpreter.out: pdp11-10/10-2-execute.fsx pdp11-10/10-2.fsx cd pdp11-10/ && fsharpi 10-2-execute.fsx > ../$@ # make test # ファイルが存在するかチェックが走る # ファイルが存在しなかったら7run.out もしくはinterpreter.out を実行する # ファイルが存在しても依存しているファイルが更新されている場合は実行し直す # 故に毎回make cleanする必要はない test: 7run.out interpreter.out diff -u 7run.out interpreter.out # make clean clean: rm -f 7run.out interpreter.out
たとえば、
$ make 7run.out
ってやると、./7runall.sh > $@が実行される。
subsystem: $(MAKE) -C subdir
ってやると、サブディレにあるMakefileが実行される。ポイントは-C。 $(MAKE)と書かずにmakeと書くと、どのmakeが実行されるのかわからない。