C/C++ 用の Makefile で楽をする方法
OCaml なら OCamlMakefile、Java なら Eclipse でいいんですが、C++ になったとたん autotools を試すもエラーに泣かされてあきらめて Makefile を手書きする軟弱モノです。なんであんなに使いにくいのよ!
最近になって -MM を知りました。こんなのしらなかったよ、ゴメンナサイ。
SRCS = hoge.cc fuga.cc foo.cc OBJS = $(SRCS:%.cc=%.o) .SUFFIXES: .SUFFIXES: .cc .o .d hoge: $(OBJS) $(CXX) $(CXXFLAGS) -o $@ $^ .cc.d: $(CXX) -MM $^ > $@ .cc.o: $(CXX) $(CXXFLAGS) -c $< -include $(SRCS:%.cc=%.d)
色づけできるようになったのね、はてな。-MM は include を追って Makefile 用の dependency を出力するオプションです。一度 .d に吐いてから .o を生成します。こういうオプション、OSS 界隈の人とかにとっては何を今更って感じなんだろうなぁ。