ऑटोटूलस का पूरा बिंदु एक आर्कान एम 4-मैक्रो-आधारित भाषा प्रदान करना है जो अंततः शेल स्क्रिप्ट को संकलित करता है ./configure
। आप स्रोत कोड के साथ इस संकलित शेल स्क्रिप्ट को शिप कर सकते हैं और उस स्क्रिप्ट को पर्यावरण का पता लगाने और बिल्डिंग के लिए कार्यक्रम तैयार करने के लिए सब कुछ करना चाहिए। ऑटोटूलस को केवल उसी व्यक्ति की आवश्यकता होनी चाहिए जो परीक्षणों को मोड़ना चाहता है और उस शेल स्क्रिप्ट को रीफ्रेश करना चाहता है।
यह ऑटोटॉल्स के बिंदु को हरा देता है यदि GNU This और GNU को काम करने के लिए सिस्टम पर स्थापित किया जाना है। मूल रूप से, यह विभिन्न यूनिक्स प्रणालियों के कार्यक्रमों की पोर्टिंग को सरल बनाने के लिए आविष्कार किया गया था, जिनके बारे में कुछ भी नहीं गिना जा सकता था। यहां तक कि उत्पन्न शेल कोड द्वारा उपयोग किए जाने वाले निर्माणों ./configure
को यह सुनिश्चित करने के लिए बहुत सावधानी से चुना जाना चाहिए कि वे हर जगह हर टूटे हुए पुराने शेल पर काम करेंगे।
आपके द्वारा चलाए जा रहे समस्या के कारण लोगों द्वारा आविष्कार किए गए कुछ टूटे हुए मेकफाइल चरणों के कारण है जो बस यह नहीं समझते हैं कि ऑटोटूलस क्या है और अंतिम ./configure
स्क्रिप्ट की भूमिका क्या है ।
वर्कअराउंड के रूप में, आप मेकफाइल में जा सकते हैं और इसे बाहर निकालने के लिए कुछ बदलाव कर सकते हैं। एक उदाहरण के रूप में, मैं GNU Awk के Git प्रमुख का निर्माण कर रहा हूं और इसी समस्या में चल रहा हूं। Makefile.in
हालाँकि, मैंने इस पैच को लागू किया , और मैं लगातार कर सकता हूँ make gawk
:
diff --it / a / Makefile.in b / Makefile.in
index 5585046..b8b8588 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -312,12 +312,12 @@ distcleancheck_listfiles = find . -type f -print
# Directory for gawk's data files. Automake supplies datadir.
pkgdatadir = $(datadir)/awk
-ACLOCAL = @ACLOCAL@
+ACLOCAL = true
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
+AUTOCONF = true
+AUTOHEADER = true
+AUTOMAKE = true
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
मूल रूप से, मैंने चीजों को बदल दिया ताकि हानिरहित true
शेल कमांड को सभी ऑटो-सामान कार्यक्रमों के लिए प्रतिस्थापित किया जाए।
Gawk के लिए वास्तविक बिल्ड चरणों को ऑटो-सामान की आवश्यकता नहीं है! यह केवल कुछ नियमों में शामिल है जो ऑटो-सामान के कुछ हिस्सों को बदलने और फिर से संसाधित किए जाने की आवश्यकता होने पर आह्वान किया जाता है। हालाँकि, Makefile को इस तरह संरचित किया जाता है कि यदि उपकरण मौजूद न हों तो यह विफल हो जाता है।
उपरोक्त पैच से पहले:
$ ./configure
[...]
$ make gawk
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/kaz/gawk/missing aclocal-1.15 -I m4
/home/kaz/gawk/missing: line 81: aclocal-1.15: command not found
WARNING: 'aclocal-1.15' is missing on your system.
You should only need it if you modified 'acinclude.m4' or
'configure.ac' or m4 files included by 'configure.ac'.
The 'aclocal' program is part of the GNU Automake package:
<http:
It also requires GNU Autoconf, GNU m4 and Perl in order to run:
<http:
<http:
<http:
make: *** [aclocal.m4] Error 127
पैच के बाद:
$ ./configure
[...]
$ make gawk
CDPATH="${ZSH_VERSION+.}:" && cd . && true -I m4
CDPATH="${ZSH_VERSION+.}:" && cd . && true
gcc -std=gnu99 -DDEFPATH='".:/usr/local/share/awk"' -DDEFLIBPATH="\"/usr/local/lib/gawk\"" -DSHLIBEXT="\"so"\" -DHAVE_CONFIG_H -DGAWK -DLOCALEDIR='"/usr/local/share/locale"' -I. -g -O2 -DNDEBUG -MT array.o -MD -MP -MF .deps/array.Tpo -c -o array.o array.c
[...]
gcc -std=gnu99 -g -O2 -DNDEBUG -Wl,-export-dynamic -o gawk array.o awkgram.o builtin.o cint_array.o command.o debug.o dfa.o eval.o ext.o field.o floatcomp.o gawkapi.o gawkmisc.o getopt.o getopt1.o int_array.o io.o main.o mpfr.o msg.o node.o profile.o random.o re.o regex.o replace.o str_array.o symbol.o version.o -ldl -lm
$ ./gawk --version
GNU Awk 4.1.60, API: 1.2
Copyright (C) 1989, 1991-2015 Free Software Foundation.
[...]
हम वहाँ चलें। जैसा कि आप देख सकते हैं, CDPATH=
वहां की कमांड लाइन वहां हैं जहां ऑटो-सामान को आमंत्रित किया जा रहा था, जहां आप true
कमांड देखते हैं । ये सफल समापन की रिपोर्ट करते हैं, और इसलिए यह केवल रद्दी किए गए निर्माण को करने के लिए उस कबाड़ के माध्यम से गिरता है, जो पूरी तरह से कॉन्फ़िगर किया गया है।
मैंने किया make gawk
क्योंकि कुछ उपनिर्देशिकाएं हैं जो निर्मित होती हैं जो विफल हो जाती हैं; उनके संबंधित मेकफाइल्स के लिए चाल को दोहराया जाना चाहिए।
यदि आप अपने डेवलपर्स से कार्यक्रम के आधिकारिक तारबंदी के साथ इस तरह की बात कर रहे हैं, तो शिकायत करें। यह सिर्फ अनपैक करना चाहिए, ./configure
और आपके make
बिना कुछ भी पैच करने या किसी भी स्वचालित या ऑटोकॉनफ सामग्री को स्थापित करने के लिए।
आदर्श रूप में, उनके सिर के एक पुल को भी इस तरह से व्यवहार करना चाहिए।