Makefileをいじってみる(2)
- https://www.gnu.org/software/make/manual/make.html
- これをみて色々試してみる
暗黙のルール
- https://www.gnu.org/software/make/manual/make.html#make-Deduces
- https://www.gnu.org/software/make/manual/make.html#Implicit-Rules
main.o : main.c defs.h
cc -c main.c
- この記述が暗黙のルールを採用すると
main.o : defs.h
- ここまで短くなる
- .cを推論している
ディレクトリのクリーンアップ
- https://www.gnu.org/software/make/manual/make.html#Special-Targets
- ここにある
.PHONY
を使用するとファイルの存在や更新時刻に関係なくレシピを実行する
clean: rm edit $(objects)
- この場合にエラーが起きる可能性を排除してくれる
.PHONY : clean clean : -rm edit $(objects)
Makefileにふくまれているもの
以下の5つが含まれている
- explicit rules
- implicit rules
- variable definitions
- directives
- comments.
includeと上書き
- Makefileはincludeで他のMakefileを読み込める
- また、一部を上書きすることも出来る
- http://higepon.hatenablog.com/entry/20061127/1164639881
- ここに詳しい
foo: frobnicate > foo %: force @$(MAKE) -f Makefile $@ force: ;