Problem
Ich möchte die Abhängigkeiten für ein oder mehrere Ziele eines Makefiles sehen. Ich suche also ein Programm, das Makefiles parsen kann und dann die Abhängigkeiten in einem baumartigen Format (Einrückung, ASCII-Grafik, ...) oder als Grafik (Punkt, ...) darstellt.
Ähnlich
Es gibt Programme, die dies für andere Situationen tun:
- Pactree oder Debtree können die Abhängigkeiten für Software-Pakete im jeweiligen Format in einem Baum wie ASCII-Format oder als
dot
Grafik anzeigen. gcc -M source_file.c
zeigt die Abhängigkeiten der C-Quelldatei als make-Regel an,- pstree zeigt eine ASCII-Darstellung des Prozessbaums an.
Fortschritt
Beim Durchsuchen des Webs habe ich wenig Hilfe gefunden . Das hat mich dazu gebracht, es zu versuchen
make --always-make --silent --dry-run some_target | \
grep --extended-regexp 'Considering target file|Trying rule prerequisite'
aber es sieht so aus, als müsste ich noch mehr Parsing-Code in Perl oder Python hacken, um dies als einen schönen Baum / Graphen darzustellen. Und ich weiß noch nicht, ob ich auf diese Weise wirklich die vollständige und korrekte Grafik bekomme.
Bedarf
Es wäre schön, den Graphen in gewisser Weise einzuschränken (keine eingebaute Regel, nur ein bestimmtes Ziel, nur eine gewisse Tiefe), aber zum größten Teil suche ich nur nach einem Werkzeug, das mir die Abhängigkeiten in einem "vernünftigen", menschlichen Bereich gibt -sichtbares Format (wie die Programme unter "Ähnlich").
Fragen
- Gibt es Programme, die das können?
- Erhalte ich die vollständigen und korrekten Informationen von
make -dnq ...
? - Gibt es einen besseren Weg, um diese Informationen zu bekommen?
- Gibt es bereits Skripte / Versuche zum Parsen dieser Informationen?
printf 'A\n B\n D\n C\n D\n'
. (Wer hat gesagt, dass ich in Kommentaren keine Zeilenumbrüche einfügen kann? :)
dot
Ordnungsdiagramme offensichtlich in Ordnung sind). Ich werde die Frage ein wenig aktualisieren, um sie klarer zu machen (ich hoffe).