2010-03-05 20 views
15

Büyük karmaşık hale getirme dosyaları okumak ve incelemek için göz korkutucu olabilir. Bir gnu make dosyasını görselleştirmek veya başka bir şekilde incelemek için hangi araçlar iyidir?Makefiles'i incelemek için iyi bir araç var mı?

https://metacpan.org/pod/GraphViz::Makefile

+0

kedi? az? GVIM? –

+0

Değeri için Mk'yi kullanıyorum. Gözbebekleri ve editörleri birleştiriyorum ... çoğu insan oldukça benzer makefile yazıyor ve buna alışmaktasınız. Bu, makine tarafından üretilen makefile için geçerli değildir, ancak bunlar için muhtemelen jeneratöre giriş ile başlamalısınız. – dmckee

+3

Make -d (ve isteğe bağlı olarak -n) öğesini kullanarak neler olup bittiğini yazdırabilirsiniz; bu genellikle yararlıdır. –

cevap

8

Makefile dan GraphViz rakamları oluşturmak için Perl kütüphane bulunmaktadır. En büyük yapım tabanlı yapı ortamlarının, rastgele komutlar, korkutucu makro ikamesi ve büyük ölçüde bağlam bağımlı kontrol akışı gibi bir hodge-podge olduğu için, bir tane yaratmak neredeyse imkansız olabilir.

Bir kenara baktığımda, baktığım SCons ile ilgili iyi şeyler duyuyorum çünkü bir bakım ortamı olan bir sistemle ilgileniyorum.

+1

Benzer şekilde bir tane de buldum ve aynı zamanda png dosyaları üretmek için de iyi http://search.cpan.org/~agent/Makefile-GraphViz-0.18/lib/Makefile/GraphViz.pm – Johnny

3

Makefile bir dizi mantıklı bir aracın bilmiyorum:

+0

SCons en sevdiğim yapı sistemidir ama make bir büyük avantajı var. Bir dosya kümesine karşı herhangi bir programı yürütmek için hızlıca bir make dosyası yazabilirsiniz. SCons, farklı derleme görevleri için çeşitli eklentiler kullanır, ortak derleyiciler için eklentiler içerir, ancak bazı durumlarda kendi yazmanızı yazmanız gerekebilir. – mikerobi

3

--print-data-base (-p) seçeneğiyle başarılı oldum.

Bir dosyaya --just-print (-n, --dry-run) ve yönlendirme stdout ile birleştirildiğinde, anlaşılması daha kolay olan genel bir biçimde tüm kuralları ve değişkenleri içeren yeni tek bir makefile oluşturulur.

Gerçekten kötü makefilelarla yeni bir derleme sistemi oluşturmak için Perl'de bu çıkışı ayrıştırmak kadar ileri gittim!

19

CPAN'ın görselleştiricisini kullanmayı denedim ve başarısız oldu. Bu yüzden kendi hızlı kirli Makefile görselleştiricimi yazdım.

Bunu denemek isteyebilirsiniz: http://github.com/vak/makefile2dot

+2

Size +10 verebilseydim olurdu. Çözümünüz, yayınlanan Perl çözümlerinden daha iyi çalışır. – synthesizerpatel

+0

oh, teşekkürler, yardım ettiğine sevindim :) – vak

+0

@synthesizerpatel bir şekilde bir ödül gönderiyor ve vak'in kabulü mü? – n611x007