背景 C/C++用のMakefileを書いていると,依存関係を記述するのがなかなか厄介に感じられる. 何とか自動的に依存関係を定義したいと考えた. gcc/g++による依存関係の抽出 gcc/g++は以下のようにして依存関係を抽出することが可能である. $ g++ -MM foo.cpp foo.o: foo.cpp aaa.h bbb.h この機能を利用して,Makefileで依存関係の自動定義を行う. 外部ファイルに依存関係を書き出す makeには他のMakefileをインクルードすることが可能である. これを利用し,依存関係を記述したファイルを掃き出し,Makefileからインクルードするとよさそうだ. CXX := g++ SRCS := foo.cpp bar.cpp DEPENDS := depends.mk .PHONY: depends depends: $(CXX) -M