2012-01-14 11 views
6

वर्तमान में, हमारे स्थापना के निर्देश दिए गए हैं:अगर कॉन्फ़िगरेशन उपलब्ध है तो "कॉन्फ़िगर" स्क्रिप्ट वितरित की जानी चाहिए?

autoreconf -fi 
./configure 
... 

autoreconf कदम configure.ac और Makefile.inMakefile.in से से configure फ़ाइल उत्पन्न करता है। यदि निर्भरताओं में से एक (pkg-config कहें) स्थापित नहीं है, तो configure और autoreconf दोनों विफल हो गए हैं, हालांकि बाद में एक गुप्त त्रुटि संदेश प्रिंट करता है।

स्रोत टैरबॉल जारी करते समय, configure स्क्रिप्ट पैकेज में आपूर्ति की जानी चाहिए या नहीं? अगर इसे वितरित किया जाना है तो अन्य फाइलों को शामिल करने की आवश्यकता है? निर्देशिका build-aux और autom4te.cache और फ़ाइलें aclocal.m4 भी बनाई गई थीं।

+2

एक एससीएम भंडार में, कुछ भी स्वत: उत्पन्न नहीं होना चाहिए (कॉन्फ़िगर सहित); एक टैरबॉल में autoreconf -fi/autogen.sh/बूटस्ट्रैप के बाद राज्य होना चाहिए (या बस 'dist dist' का उपयोग करें)। –

+0

@ jorgensen इसे एक उत्तर दें, मुझे पूरी तरह से एहसास नहीं हुआ कि 'डिस्ट डिस्ट' यहां कुंजी है – Lekensteyn

+0

मैं उत्सुक भी हूं * क्यों * कॉन्फ़िगरेशन स्क्रिप्ट वितरित करना अच्छा है। मेरे लिए यह 'autogen.sh' चलाने के लिए बस इतना आसान (और क्लीनर) लगता है। –

उत्तर

6

एक एससीएम भंडार में, कुछ भी स्वत: उत्पन्न नहीं होना चाहिए (कॉन्फ़िगरेशन सहित - लेकिन डेवलपर राय यहां digress)। एक टैरबॉल में autoreconf -fi और/या autogen.sh (या जो भी नाम आपने चुना है) के बाद राज्य होना चाहिए। तीसरा, आप make dist का भी उपयोग कर सकते हैं, हालांकि यह आवश्यक है कि टैरबॉल में दिखाई देने वाली सभी फाइलें मेकफ़ाइल में भी सूचीबद्ध हों।

+1

आप इसके बारे में गलत हैं, अंतिम उपयोगकर्ता को अपने सॉफ़्टवेयर को बनाने के लिए ऑटोोटूल इंस्टॉल करने की आवश्यकता नहीं है। – MoDJ

+1

@MoDJ बस एक नोट: इस समाधान के साथ, अंतिम उपयोगकर्ता को autotools स्थापित करने की आवश्यकता नहीं है (लेकिन डेवलपर करते हैं)। –

3

कॉन्फ़िगरेशन स्क्रिप्ट को रखरखाव द्वारा बनाया जाना चाहिए और टैरबॉल में वितरित किया जाना चाहिए। अंतिम उपयोगकर्ताओं को इसे कभी छूना नहीं चाहिए, और यदि आप automake का उपयोग कर रहे हैं तो AM_MAINTAINER_MODE के माध्यम से यह सुनिश्चित करना एक अच्छा विचार है। यदि नहीं, तो सुनिश्चित करें कि आपके Makefile.in अंतिम उपयोगकर्ताओं के लिए चलते समय configure पुन: उत्पन्न नहीं करते हैं।

automake यदि आप जानना चाहते हैं कि वहां और क्या है, तो आपके लिए वितरण उत्पन्न करें। सहायक निर्देशिका build-aux और aclocal.m4 करें, automat4e.cache नहीं है।

+0

आह, मैंने सिर्फ PHP भंडार में देखा है और ऐसा लगता है कि गिट से स्रोत युक्त टैरबॉल का वितरण के लिए उपयोग नहीं किया जाना चाहिए। अगर मैं एक टैरबॉल जारी करता हूं जिसमें 'कॉन्फ़िगरेशन' स्क्रिप्ट होती है (जैसे PHP से डाउनलोड की तरह), तो मुझे 'डिस्क बनाने' का उपयोग करने की आवश्यकता है? – Lekensteyn

+3

AM_MAINTAINER_MODE हमेशा एक बुरा विचार रहा है। लेखक ने उस साल पहले सहमति व्यक्त की थी। अब इसे (ज्यादातर) बहिष्कृत माना जाता है, और ऑटोमैक से इसे हटाने की बात है। इसका प्रयोग न करें। –

+0

@ लेकेंस्टीन: 'डिस्ट डिस्ट' डिस्ट्रीब्यूशन टैरबॉल बनाने के लिए शानदार काम करता है, जो उसके काम के बाद होता है। – thiton

4

आपके स्थापना निर्देश बहुत टूटे हुए हैं। उपयोगकर्ता को आपके सॉफ़्टवेयर को बनाने के लिए ऑटोोटूल चेन स्थापित करने की आवश्यकता नहीं है। आपको अपनी टैरबॉल में कॉन्फ़िगर स्क्रिप्ट वितरित करनी होगी। ध्यान दें कि आपको अपने संस्करण नियंत्रण प्रणाली में कॉन्फ़िगर स्क्रिप्ट शामिल नहीं करना चाहिए। (आपको वितरण प्रणाली के रूप में अपने संस्करण नियंत्रण प्रणाली का उपयोग नहीं करना चाहिए।)

+0

उत्तर के लिए धन्यवाद, अब मुझे पता है कि 'dist dist' का उपयोग किया जाना चाहिए (यह' कॉन्फ़िगरेशन 'फ़ाइल और ऐसे) उत्पन्न करने के लिए सही काम करता है। – Lekensteyn

+2

@Lekensteyn - असल में, आपको हमेशा 'डिस्टचेक' –

+0

का उपयोग करना चाहिए, जानना अच्छा है, ऑटोोटूल के पास कई विकल्प हैं लेकिन दस्तावेज़ों के बारे में आपको बस इसके बारे में पता होना चाहिए क्योंकि दस्तावेज़ नहीं है। http://www.gnu.org/software/automake/manual/html_node/Preparing-Distributions.html – Lekensteyn

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