Problem
Chcę zobaczyć zależności dla jednego lub większej liczby celów makefile. Szukam więc programu, który może analizować pliki makefile, a następnie będzie reprezentować zależności w jakimś drzewiastym formacie (wcięcie, ascii-art, ...) lub jako wykres (kropka, ...).
Podobny
Istnieją programy, które robią to w innych sytuacjach:
- pactree lub dług może wyświetlać zależności dla pakietów oprogramowania w odpowiednim formacie w drzewie jak format ascii lub jako
dot
wykres, gcc -M source_file.c
wyświetla zależności pliku źródłowego C jako regułę make,- pstree wyświetla ascii reprezentację drzewa procesów.
Postęp
Przeszukując Internet, znalazłem niewielką pomoc . To skłoniło mnie do spróbowania
make --always-make --silent --dry-run some_target | \
grep --extended-regexp 'Considering target file|Trying rule prerequisite'
ale wygląda na to, że muszę zhakować trochę więcej parsującego kodu w Perlu lub Pythonie, aby przedstawić to jako ładne drzewo / wykres. I nie wiem jeszcze, czy naprawdę w ten sposób uzyskam pełny i poprawny wykres.
Wymagania
Byłoby miło ograniczyć wykres w pewien sposób (brak wbudowanej reguły, tylko dany cel, tylko pewna głębokość), ale w przeważającej części szukam tylko narzędzia, które da mi zależności w pewnym „rozsądnym” ludzkim sensie -widoczny format (jak programy w „Podobne” zrobić).
pytania
- Czy są jakieś programy, które mogą to zrobić?
- Czy otrzymam pełne i prawidłowe informacje
make -dnq ...
? - Czy istnieje lepszy sposób na uzyskanie tych informacji?
- Czy skrypty / próby analizy tych informacji już istnieją?
printf 'A\n B\n D\n C\n D\n'
. (Kto powiedział, że nie mogę wstawiać nowych wierszy w komentarzach? :)
dot
wykresy zamówień są oczywiście w porządku.) Zaktualizuję to pytanie nieco, aby było jaśniejsze (mam nadzieję).