График DAG, сгенерированный make?

Насколько я понимаю, когда make выполняется, он внутри генерирует DAG для представления всех зависимостей в проекте. Есть ли способ добраться до этого DAG и построить его график, скажем, используя что-то вроде graphviz?

Я использую gnu make на Ubuntu 8.04.

ИЗМЕНИТЬ

Я только что наткнулся на эти инструменты под названием mamdag и мамдот. Предполагается, что они работают как с nmake, так и с gnu make, но я не могу найти варианты, чтобы заставить gnu make выплевывать файл mam.

Его можно скачать здесь - эти пакеты:

INIT
ast-base
ast-gpl

Только что нашел эту статью Гленна Фаулера из AT&T, описывающую язык MAM и инструмент mamdot. .

Похоже, вам нужно исправить gnu make, чтобы это работало, хотя я еще не уверен на 100%.

Может есть другой способ?


person Robert S. Barnes    schedule 01.06.2010    source источник


Ответы (2)


Попробуйте использовать Makefile::GraphViz Утилита gvmake для создания нужных вам графиков.

person Hasturkun    schedule 01.06.2010
comment
+1 за интересно, но я действительно хочу визуализировать внутреннюю DAG gnu make. - person Robert S. Barnes; 01.06.2010
comment
makesimple, который предлагает вам использовать документ gvmake, получает вывод от make --print-data-base и анализирует его. он, вероятно, содержит достаточно информации о внутренней DAG, хотя я не могу это подтвердить - person Hasturkun; 01.06.2010

Что касается кода, doxygen создаст диаграммы зависимостей между исходным и заголовочным файлами, если это то, что вы интересует, без использования make.

person Community    schedule 01.06.2010
comment
Нет, на самом деле мне нужен дамп внутренней DAG make. Это способ доказать, что настройка сборки для конкретного проекта не работает и нуждается в переработке. Как и в статье, Recursive Make считается вредным, aegis.sourceforge.net/auug97.pdf - person Robert S. Barnes; 01.06.2010