इस मामले में
VAR=value ./configure
व्यवहार आपके वर्तमान शेल पर निर्भर करता है, जबकि इसमें
./configure VAR=value
व्यवहार कॉन्फ़िगर-स्क्रिप्ट पर निर्भर करता है। कुछ डेवलपर बाद वाले को पसंद करते हैं क्योंकि वे यह चुनना चाहेंगे कि स्क्रिप्ट के भीतर वेरिएबल्स को सेट करना है या नहीं, बजाय किसी ने जादुई रूप से स्क्रिप्ट के वेरिएबल को बाहर से सेट करने के लिए।
व्यवहार में, थोड़ा अंतर है क्योंकि
- कॉन्फ़िगरेशन कर रहे अधिकांश लोग POSIX शेल से चल रहे हैं, जहां पूर्व व्यवहार "बस काम करता है", और
- अधिकांश कॉन्फ़िगर स्क्रिप्ट मौजूदा पर्यावरण चर को परेशान नहीं करती हैं, और
- पारंपरिक पर्यावरण चर (स्वचालित के बाहर) का लंबे समय से स्थापित उपयोग है
उदाहरण के लिए, बैश कॉन्फ़िगर स्क्रिप्ट --help
संदेश दिखाता है:
Some influential environment variables:
DEBUGGER_START_FILE
location of bash debugger initialization file
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
YACC The `Yet Another C Compiler' implementation to use. Defaults to
the first program found out of: `bison -y', `byacc', `yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC.
This script will default YFLAGS to the empty string to avoid a
default value of `-d' given by some make applications.
और प्रत्येक मामले में, चर कार्यों को स्थापित करने का तरीका ।
लेकिन डेवलपर की वरीयताओं को ध्यान में रखें, यदि कोई व्यक्ति चीजों को "सुधार" करने का फैसला करता है।
आगे की पढाई:
AC_ARG_VAR
मैक्रो स्क्रिप्ट के लिए एक तर्क के रूप में एक विशेष (पर्यावरण) चर घोषित करने के लिए, यह एक विवरण और एक विशेष उपयोग देने के लिए किया जाता है। जबकि यह फीचर ऑटोकॉन्फ़ के इतिहास में अपेक्षाकृत हाल ही में जोड़ा गया है , यह वास्तव में महत्वपूर्ण है। इसकी अधिक हालिया उपस्थिति को दर्शाते हुए, मैक्रो को AS_HELP_STRING
सहायक की आवश्यकता नहीं है , और केवल दो मापदंडों को लेता है: चर का नाम और स्ट्रिंग के दौरान मुद्रित। --configure --help:
AC_ARG_VAR(var-name, help-string)
और लंबे समय तक अभ्यास के बारे में एक टिप्पणी के साथ जारी है:
डिफ़ॉल्ट रूप से, किसी भी अन्य स्क्रिप्ट की तरह पर्यावरण से चर उठाता कॉन्फ़िगर करें। उनमें से ज्यादातर को नजरअंदाज कर दिया जाता है। जिन्हें इस मैक्रो के माध्यम से घोषित नहीं किया जाना चाहिए। इस तरह उन्हें एक कीमती चर के रूप में चिह्नित किया जाता है।
स्पष्ट रूप से कॉल किए बिना Makefile.in में कीमती के रूप में चिह्नित एक चर को बदल दिया जाता है AC_SUBST
, लेकिन यह परिभाषा का सबसे महत्वपूर्ण हिस्सा नहीं है। क्या महत्वपूर्ण है कि चर कैश किया गया है।
- 7.2 सेटिंग आउटपुट वेरिएबल्स (ऑटोकॉन्फ प्रलेखन) का
वर्णन है AC_ARG_VAR
, फिर से डेवलपर की वरीयताओं को व्यक्त करना।
जब लॉन्च किया गया था तब चर का मान कैश में सहेजा जाता है, जिसमें यह निर्दिष्ट नहीं था कि यह कमांड लाइन पर निर्दिष्ट नहीं है, लेकिन पर्यावरण के माध्यम से। दरअसल, कॉन्फ़िगर करते समय CC की परिभाषा './configure CC = bizarre-cc' में देखी जा सकती है, लेकिन 'CC = bizarre-cc/configure' में इसे नोटिस करना असंभव है, जो दुर्भाग्य से, अधिकांश उपयोगकर्ता करते हैं।
env VAR=value ./configure
से संबंधित हैVAR=value ./configure