2009-12-28 27 views
33

स्रोत फ़ाइलों को कॉन्फ़िगर करने के लिए autotools का उपयोग करने के संदर्भ में एक्लोकल स्क्रिप्ट और aclocal.m4 फ़ाइल का बिंदु क्या है? जो मैंने पढ़ा है, एक्लोकल मैक्रोज़ के लिए मैक्रो फाइल स्कैन करता है जिसे बाद में ऑटोमेक द्वारा उपयोग किया जाता है। मैं इस प्रक्रिया को गहराई से नहीं समझता, लेकिन ऐसा लगता है कि स्कैनिंग कार्यक्षमता को स्वचालित रूप से ऑटोमेक में एम्बेड किया जा सकता था।ग्रहण का बिंदु क्या है?

+0

@ विलियम पर्सेल, क्या आप "m4sh" और "m4sugar" टैग्स को समझा सकते हैं? वे क्या हैं और वे इस प्रश्न पर कैसे लागू होते हैं, जब उनका प्रश्न या उत्तर में कहीं भी उल्लेख नहीं किया जाता है? – Charles

+0

@ चार्ल्स ऑटोकॉन्फ़ सीधे एम 4 का उपयोग नहीं करता है, बल्कि यह रैपर 'm4sh' और' m4sugar' का उपयोग करता है। उद्घोषणा का उद्देश्य m4sh और m4sugar मैक्रोज़ autoconf के लिए उपलब्ध है। –

+0

@ विल्यमपर्सेल, यहां समस्या यह है कि प्रश्न अंततः 'm4sh' या 'm4sugar' के बारे में नहीं है, लेकिन सामान्य रूप से' एक्लोक्ल 'और ऑटोोटूल के बारे में है। मुझे यहां कुछ भी नहीं दिखाई देता है, या दूसरे प्रश्न में आपने उन दो टैग्स के साथ टैग किया है, जो वास्तव में प्रश्नों के लिए प्रासंगिक टैग बनाता है। – Charles

उत्तर

36

Alexandre Duret Lutz's Autotools tutorial देखें, एक पढ़ना चाहिए।

यह चित्र बताया गया हो कि एक autotools परियोजना के विभिन्न फ़ाइलों को एक दूसरे के साथ बातचीत और जो उपकरण के द्वारा वे उपयोग किया जाता है: configure, config.h, config.status, aclocal.m4 आदि

संपादित करें: जॉन Calcote भी करने के उद्देश्य बताते हैं his book about Autotools के प्रथम अध्याय में aclocal और aclocal.m4: Chapter 1: A brief introduction to the GNU Autotools:

aclocal उपयोगिता वास्तव में जीएनयू मैनुअल द्वारा एक अस्थायी रूप काम के आसपास Autocon में लचीलेपन की एक निश्चित कमी के लिए प्रलेखित है च। Autoconf पहले डिजाइन और लिखा गया था, और उसके बाद कुछ साल बाद, Automake के विचार को Autoconf के लिए ऐड-ऑन के रूप में माना गया था। लेकिन Autoconf वास्तव में Automake द्वारा आवश्यक पैमाने पर एक्स्टेंसिबल होने के लिए डिज़ाइन नहीं किया गया था।

...

अनिवार्य रूप से, aclocal की नौकरी स्थापित Autotool संकुल और उपयोगकर्ता द्वारा निर्दिष्ट स्थानों, से विभिन्न मैक्रो फ़ाइलों को मजबूत बनाने के द्वारा एक aclocal.m4 फ़ाइल बनाने के लिए है इस तरह के Autoconf उन सब में पा सकते हैं कि एक जगह।

...

हालांकि, उपकरण के दोनों सेट से ताज़ा दस्तावेज़ों पता चलता है कि पूरे aclocal/acinclude प्रतिमान अब अप्रचलित है, m4 मैक्रो युक्त एक निर्देशिका निर्दिष्ट करने के एक नए विधि के पक्ष में फ़ाइलें। वर्तमान अनुशंसा यह है कि आप अपनी प्रोजेक्ट निर्देशिका में एक निर्देशिका बनाते हैं जिसे केवल एम 4 कहा जाता है (इस लेखक को अकसर शामिल है), और इस निर्देशिका में व्यक्तिगत .m4 फ़ाइलों के रूप में मैक्रोज़ जोड़ें। Autoconf आपकी config.ac फ़ाइल को संसाधित करने से पहले इस निर्देशिका में सभी फ़ाइलों को aclocal.m4 में एकत्र किया जाएगा। आखिरकार, ऑक्लोकल को ऑटोकॉन्फ़ में कार्यक्षमता द्वारा प्रतिस्थापित किया जाएगा।

+2

तो, 'एक्लोक्ल' को Autoconf कार्यक्षमता द्वारा प्रतिस्थापित किया गया था? –

8

मेरे सॉफ़्टवेयर में, aclocal.m4 मेरे सॉफ़्टवेयर के निर्माण के दौरान उपयोग किए जाने वाले विभिन्न गैर-मानक Autoconf मैक्रोज़ एकत्र करता है। मैक्रोज़ का ऐसा एक सेट उप-दूसरे समय के साथ संबंधित है - उपलब्ध विकल्पों में से सर्वश्रेष्ठ का चयन करना ('सर्वश्रेष्ठ' के लिए कुछ पूर्व निर्धारित मानदंडों के अनुसार); मैक्रोज़ का एक अन्य सेट आईबीएम इनफॉर्मिक्स ईएसक्यूएल/सी संकलन प्रणाली की जटिलताओं से संबंधित है क्योंकि यह पिछले दो दशकों में विकसित हुआ है (यह ईएसक्यूएल/सी 5.20 को संभालता है, जहां संस्करण 5.00 1 99 0 में जारी किया गया था, और यह नवीनतम संस्करणों को भी संभालता है आईबीएम इनफॉर्मिक्स क्लाइंटएसडीके 3.50 - जो कि मेरे chagrin के लिए, ESQL/सी 3.50 शामिल है भले ही इसे 2008 में जारी किया गया था)।

तो, aclocal.m4 स्थानीय मैक्रोज़ के लिए है जो नियमित रूप से नियमित ऑटोकॉन्फ़ का हिस्सा नहीं हैं लेकिन जिनका उपयोग आपके विशिष्ट सॉफ़्टवेयर द्वारा किया जाता है।

+7

+1, यह वही है जो इसके लिए है। बहुत से लोग बस उन बिट्स को config.ac/config.in में छोड़ देते हैं जिन्हें वितरण रखरखाव के लिए पागलपन, अंधापन और यहां तक ​​कि टूरेट सिंड्रोम के कारण जाना जाता है। –

0

http://freesoftwaremagazine.com/articles/brief_introduction_to_gnu_autotools/ द्वारा दिए गए जॉन कैलकोट के आलेख का लिंक। मैंने उस पोस्ट पर टिप्पणी की होगी लेकिन मेरी प्रतिष्ठा यहां बहुत कम है।

आवश्यक पैरा:

अनिवार्य रूप से, aclocal की नौकरी स्थापित Autotool संकुल और उपयोगकर्ता द्वारा निर्दिष्ट स्थानों, ऐसी है कि Autoconf उन सब को एक ही स्थान पर मिल सकता है से विभिन्न मैक्रो फ़ाइलों को मजबूत बनाने के द्वारा एक aclocal.m4 फ़ाइल बनाने के लिए है।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/18762464) – jfeferman

संबंधित मुद्दे