Makefileのファイルの関係を絵に書いて理解しようとしていたのですが、手作業じゃ無理〜となったので自動化を試みました。
LANG=C make -p
によって出力されたMakefileのデータ構造をJSON形式へ変換してから、DOT形式で出力しています。
オリジナルのファイルがグレー、生成されるファイル(ターゲット)は白で表されています。
こちらの記事: Makefileの依存関係の可視化 を元にソースコードを改変させていただきました。
ソースコード
こちら→ https://github.com/souring001/makefile-visualizer
環境
GNU Make (3.81)
Python (3.5.2)
Graphviz (2.40.1)
実行
Makefileと関連するファイルをソースコードがあるフォルダに入れて以下を実行してください。
LANG=C make -p | python3 make_p_to_json.py | python3 json_to_dot.py | dot -Tpdf >| workflow.pdf
License
GPL version 3.