Problema
Quiero ver las dependencias para uno o más objetivos de un archivo MAKE. Por lo tanto, estoy buscando un programa que pueda analizar archivos MAKE y luego represente las dependencias en un formato similar a un árbol (sangría, arte ascii, ...) o como un gráfico (punto, ...).
Similar
Hay programas que hacen esto para otras situaciones:
- pactree o deuda libre puede mostrar las dependencias de los paquetes de software en el formato respectivo en un árbol como formato ascii o como un
dot
gráfico, gcc -M source_file.c
muestra las dependencias del archivo fuente C como una regla de creación,- pstree muestra una representación ascii del árbol de procesos.
Progreso
Buscando en la web encontré poca ayuda . Eso me llevó a intentar
make --always-make --silent --dry-run some_target | \
grep --extended-regexp 'Considering target file|Trying rule prerequisite'
pero parece que tengo que hackear un poco más de código de análisis en perl o python para representar esto como un buen árbol / gráfico. Y aún no sé si realmente obtendré el gráfico completo y correcto de esta manera.
Requisitos
Sería bueno limitar el gráfico de alguna manera (sin regla incorporada, solo un objetivo dado, solo algo de profundidad) pero en su mayor parte solo estoy buscando una herramienta que me proporcione las dependencias en algunos humanos "razonables" formato visible (como los programas en "Similar" do).
Preguntas
- ¿Hay algún programa que pueda hacer esto?
- ¿Recibiré la información completa y correcta
make -dnq ...
? - ¿Hay una mejor manera de obtener esta información?
- ¿Ya existen scripts / intentos para analizar esta información?
printf 'A\n B\n D\n C\n D\n'
. (¿Quién dijo que no puedo poner nuevas líneas en los comentarios? :)
dot
gráficos de orden obviamente están bien). Actualizaré la pregunta un poco para aclararla (espero).