मुसीबत
मैं एक मेकफाइल के एक या अधिक लक्ष्यों के लिए निर्भरता देखना चाहता हूं। इसलिए मैं एक ऐसे कार्यक्रम की तलाश कर रहा हूं, जो मेकफाइल्स को पार्स कर सके और फिर कुछ पेड़ों की तरह प्रारूप (इंडेंटेशन, एससीआई-आर्ट, ...) या एक ग्राफ (डॉट, ...) के रूप में निर्भरता का प्रतिनिधित्व करेगा।
समान
ऐसे कार्यक्रम हैं जो अन्य स्थितियों के लिए ऐसा करते हैं:
- पैक्ट्री या डेट्री संबंधित फॉर्मेट में सॉफ्टवेयर पैकेज के लिए निर्भरता प्रदर्शित कर सकते हैं जैसे कि आस्की प्रारूप में या
dot
ग्राफ के रूप में , gcc -M source_file.c
सी स्रोत फ़ाइल की निर्भरता को एक नियम के रूप में प्रदर्शित करता है,- pstree प्रक्रिया पेड़ के एक ascii प्रतिनिधित्व प्रदर्शित करता है।
प्रगति
वेब पर सर्च करने पर मुझे थोड़ी मदद मिली । कि मुझे कोशिश करने के लिए नेतृत्व
make --always-make --silent --dry-run some_target | \
grep --extended-regexp 'Considering target file|Trying rule prerequisite'
लेकिन ऐसा लगता है कि मुझे एक अच्छा पेड़ या ग्राफ़ के रूप में प्रतिनिधित्व करने के लिए पर्ल या अजगर में कुछ और पार्सिंग कोड हैक करना होगा। और मुझे अभी तक नहीं पता है कि क्या मुझे इस तरह से पूर्ण और सही ग्राफ़ मिलेगा।
आवश्यकताएँ
कुछ तरीकों से ग्राफ को सीमित करना अच्छा होगा (कोई बिलियन नियम, केवल एक दिया गया लक्ष्य, केवल कुछ गहराई) लेकिन सबसे अधिक भाग के लिए मैं सिर्फ एक उपकरण की तलाश कर रहा हूं जो मुझे कुछ "उचित" में निर्भरता देगा, मानव -उपलब्ध प्रारूप ("समान" के तहत कार्यक्रमों की तरह)।
प्रशन
- क्या कोई कार्यक्रम हैं जो ऐसा कर सकते हैं?
- क्या मुझे पूरी और सही जानकारी मिलेगी
make -dnq ...
? - क्या यह जानकारी प्राप्त करने का कोई बेहतर तरीका है?
- क्या इस जानकारी को पार्स करने के लिए स्क्रिप्ट / प्रयास पहले से मौजूद हैं?
printf 'A\n B\n D\n C\n D\n'
। (किसने कहा कि मैं टिप्पणियों में नई बात नहीं डाल सकता? :)
dot
ऑर्डर ग्राफ स्पष्ट रूप से ठीक हैं।) मैं इसे स्पष्ट करने के लिए सवाल को थोड़ा अपडेट करूंगा (मुझे आशा है)।