Statistics
| Branch: | Revision:

root / autogen.sh @ master

History | View | Annotate | Download (46.3 kB)

1 abdb293f Chrysostomos Nanakos
#!/bin/sh
2 abdb293f Chrysostomos Nanakos
#                        a u t o g e n . s h
3 abdb293f Chrysostomos Nanakos
#
4 abdb293f Chrysostomos Nanakos
# Copyright (c) 2005-2009 United States Government as represented by
5 abdb293f Chrysostomos Nanakos
# the U.S. Army Research Laboratory.
6 abdb293f Chrysostomos Nanakos
#
7 abdb293f Chrysostomos Nanakos
# Redistribution and use in source and binary forms, with or without
8 abdb293f Chrysostomos Nanakos
# modification, are permitted provided that the following conditions
9 abdb293f Chrysostomos Nanakos
# are met:
10 abdb293f Chrysostomos Nanakos
#
11 abdb293f Chrysostomos Nanakos
# 1. Redistributions of source code must retain the above copyright
12 abdb293f Chrysostomos Nanakos
# notice, this list of conditions and the following disclaimer.
13 abdb293f Chrysostomos Nanakos
#
14 abdb293f Chrysostomos Nanakos
# 2. Redistributions in binary form must reproduce the above
15 abdb293f Chrysostomos Nanakos
# copyright notice, this list of conditions and the following
16 abdb293f Chrysostomos Nanakos
# disclaimer in the documentation and/or other materials provided
17 abdb293f Chrysostomos Nanakos
# with the distribution.
18 abdb293f Chrysostomos Nanakos
#
19 abdb293f Chrysostomos Nanakos
# 3. The name of the author may not be used to endorse or promote
20 abdb293f Chrysostomos Nanakos
# products derived from this software without specific prior written
21 abdb293f Chrysostomos Nanakos
# permission.
22 abdb293f Chrysostomos Nanakos
#
23 abdb293f Chrysostomos Nanakos
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
24 abdb293f Chrysostomos Nanakos
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25 abdb293f Chrysostomos Nanakos
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 abdb293f Chrysostomos Nanakos
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
27 abdb293f Chrysostomos Nanakos
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 abdb293f Chrysostomos Nanakos
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
29 abdb293f Chrysostomos Nanakos
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 abdb293f Chrysostomos Nanakos
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
31 abdb293f Chrysostomos Nanakos
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 abdb293f Chrysostomos Nanakos
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 abdb293f Chrysostomos Nanakos
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 abdb293f Chrysostomos Nanakos
#
35 abdb293f Chrysostomos Nanakos
###
36 abdb293f Chrysostomos Nanakos
#
37 abdb293f Chrysostomos Nanakos
# Script for automatically preparing the sources for compilation by
38 abdb293f Chrysostomos Nanakos
# performing the myriad of necessary steps.  The script attempts to
39 abdb293f Chrysostomos Nanakos
# detect proper version support, and outputs warnings about particular
40 abdb293f Chrysostomos Nanakos
# systems that have autotool peculiarities.
41 abdb293f Chrysostomos Nanakos
#
42 abdb293f Chrysostomos Nanakos
# Basically, if everything is set up and installed correctly, the
43 abdb293f Chrysostomos Nanakos
# script will validate that minimum versions of the GNU Build System
44 abdb293f Chrysostomos Nanakos
# tools are installed, account for several common configuration
45 abdb293f Chrysostomos Nanakos
# issues, and then simply run autoreconf for you.
46 abdb293f Chrysostomos Nanakos
#
47 abdb293f Chrysostomos Nanakos
# If autoreconf fails, which can happen for many valid configurations,
48 abdb293f Chrysostomos Nanakos
# this script proceeds to run manual preparation steps effectively
49 abdb293f Chrysostomos Nanakos
# providing a POSIX shell script (mostly complete) reimplementation of
50 abdb293f Chrysostomos Nanakos
# autoreconf.
51 abdb293f Chrysostomos Nanakos
#
52 abdb293f Chrysostomos Nanakos
# The AUTORECONF, AUTOCONF, AUTOMAKE, LIBTOOLIZE, ACLOCAL, AUTOHEADER
53 abdb293f Chrysostomos Nanakos
# environment variables and corresponding _OPTIONS variables (e.g.
54 abdb293f Chrysostomos Nanakos
# AUTORECONF_OPTIONS) may be used to override the default automatic
55 abdb293f Chrysostomos Nanakos
# detection behaviors.  Similarly the _VERSION variables will override
56 abdb293f Chrysostomos Nanakos
# the minimum required version numbers.
57 abdb293f Chrysostomos Nanakos
#
58 abdb293f Chrysostomos Nanakos
# Examples:
59 abdb293f Chrysostomos Nanakos
#
60 abdb293f Chrysostomos Nanakos
#   To obtain help on usage:
61 abdb293f Chrysostomos Nanakos
#     ./autogen.sh --help
62 abdb293f Chrysostomos Nanakos
#
63 abdb293f Chrysostomos Nanakos
#   To obtain verbose output:
64 abdb293f Chrysostomos Nanakos
#     ./autogen.sh --verbose
65 abdb293f Chrysostomos Nanakos
#
66 abdb293f Chrysostomos Nanakos
#   To skip autoreconf and prepare manually:
67 abdb293f Chrysostomos Nanakos
#     AUTORECONF=false ./autogen.sh
68 abdb293f Chrysostomos Nanakos
#
69 abdb293f Chrysostomos Nanakos
#   To verbosely try running with an older (unsupported) autoconf:
70 abdb293f Chrysostomos Nanakos
#     AUTOCONF_VERSION=2.50 ./autogen.sh --verbose
71 abdb293f Chrysostomos Nanakos
#
72 abdb293f Chrysostomos Nanakos
# Author:
73 abdb293f Chrysostomos Nanakos
#   Christopher Sean Morrison <morrison@brlcad.org>
74 abdb293f Chrysostomos Nanakos
#
75 abdb293f Chrysostomos Nanakos
# Patches:
76 abdb293f Chrysostomos Nanakos
#   Sebastian Pipping <sebastian@pipping.org>
77 abdb293f Chrysostomos Nanakos
#
78 abdb293f Chrysostomos Nanakos
######################################################################
79 abdb293f Chrysostomos Nanakos
80 abdb293f Chrysostomos Nanakos
# set to minimum acceptable version of autoconf
81 abdb293f Chrysostomos Nanakos
if [ "x$AUTOCONF_VERSION" = "x" ] ; then
82 abdb293f Chrysostomos Nanakos
    AUTOCONF_VERSION=2.52
83 abdb293f Chrysostomos Nanakos
fi
84 abdb293f Chrysostomos Nanakos
# set to minimum acceptable version of automake
85 abdb293f Chrysostomos Nanakos
if [ "x$AUTOMAKE_VERSION" = "x" ] ; then
86 abdb293f Chrysostomos Nanakos
    AUTOMAKE_VERSION=1.6.0
87 abdb293f Chrysostomos Nanakos
fi
88 abdb293f Chrysostomos Nanakos
# set to minimum acceptable version of libtool
89 abdb293f Chrysostomos Nanakos
if [ "x$LIBTOOL_VERSION" = "x" ] ; then
90 abdb293f Chrysostomos Nanakos
    LIBTOOL_VERSION=1.4.2
91 abdb293f Chrysostomos Nanakos
fi
92 abdb293f Chrysostomos Nanakos
93 abdb293f Chrysostomos Nanakos
94 abdb293f Chrysostomos Nanakos
##################
95 abdb293f Chrysostomos Nanakos
# ident function #
96 abdb293f Chrysostomos Nanakos
##################
97 abdb293f Chrysostomos Nanakos
ident ( ) {
98 abdb293f Chrysostomos Nanakos
    # extract copyright from header
99 abdb293f Chrysostomos Nanakos
    __copyright="`grep Copyright $AUTOGEN_SH | head -${HEAD_N}1 | awk '{print $4}'`"
100 abdb293f Chrysostomos Nanakos
    if [ "x$__copyright" = "x" ] ; then
101 abdb293f Chrysostomos Nanakos
	__copyright="`date +%Y`"
102 abdb293f Chrysostomos Nanakos
    fi
103 abdb293f Chrysostomos Nanakos
104 abdb293f Chrysostomos Nanakos
    # extract version from CVS Id string
105 abdb293f Chrysostomos Nanakos
    __id="$Id: autogen.sh 33925 2009-03-01 23:27:06Z brlcad $"
106 abdb293f Chrysostomos Nanakos
    __version="`echo $__id | sed 's/.*\([0-9][0-9][0-9][0-9]\)[-\/]\([0-9][0-9]\)[-\/]\([0-9][0-9]\).*/\1\2\3/'`"
107 abdb293f Chrysostomos Nanakos
    if [ "x$__version" = "x" ] ; then
108 abdb293f Chrysostomos Nanakos
	__version=""
109 abdb293f Chrysostomos Nanakos
    fi
110 abdb293f Chrysostomos Nanakos
111 abdb293f Chrysostomos Nanakos
    echo "autogen.sh build preparation script by Christopher Sean Morrison"
112 abdb293f Chrysostomos Nanakos
    echo "  + config.guess download patch by Sebastian Pipping (2008-12-03)"
113 abdb293f Chrysostomos Nanakos
    echo "revised 3-clause BSD-style license, copyright (c) $__copyright"
114 abdb293f Chrysostomos Nanakos
    echo "script version $__version, ISO/IEC 9945 POSIX shell script"
115 abdb293f Chrysostomos Nanakos
}
116 abdb293f Chrysostomos Nanakos
117 abdb293f Chrysostomos Nanakos
118 abdb293f Chrysostomos Nanakos
##################
119 abdb293f Chrysostomos Nanakos
# USAGE FUNCTION #
120 abdb293f Chrysostomos Nanakos
##################
121 abdb293f Chrysostomos Nanakos
usage ( ) {
122 abdb293f Chrysostomos Nanakos
    echo "Usage: $AUTOGEN_SH [-h|--help] [-v|--verbose] [-q|--quiet] [-d|--download] [--version]"
123 abdb293f Chrysostomos Nanakos
    echo "    --help      Help on $NAME_OF_AUTOGEN usage"
124 abdb293f Chrysostomos Nanakos
    echo "    --verbose   Verbose progress output"
125 abdb293f Chrysostomos Nanakos
    echo "    --quiet     Quiet suppressed progress output"
126 abdb293f Chrysostomos Nanakos
    echo "    --download  Download the latest config.guess from gnulib"
127 abdb293f Chrysostomos Nanakos
    echo "    --version   Only perform GNU Build System version checks"
128 abdb293f Chrysostomos Nanakos
    echo
129 abdb293f Chrysostomos Nanakos
    echo "Description: This script will validate that minimum versions of the"
130 abdb293f Chrysostomos Nanakos
    echo "GNU Build System tools are installed and then run autoreconf for you."
131 abdb293f Chrysostomos Nanakos
    echo "Should autoreconf fail, manual preparation steps will be run"
132 abdb293f Chrysostomos Nanakos
    echo "potentially accounting for several common preparation issues.  The"
133 abdb293f Chrysostomos Nanakos
134 abdb293f Chrysostomos Nanakos
    echo "AUTORECONF, AUTOCONF, AUTOMAKE, LIBTOOLIZE, ACLOCAL, AUTOHEADER,"
135 abdb293f Chrysostomos Nanakos
    echo "PROJECT, & CONFIGURE environment variables and corresponding _OPTIONS"
136 abdb293f Chrysostomos Nanakos
    echo "variables (e.g. AUTORECONF_OPTIONS) may be used to override the"
137 abdb293f Chrysostomos Nanakos
    echo "default automatic detection behavior."
138 abdb293f Chrysostomos Nanakos
    echo
139 abdb293f Chrysostomos Nanakos
140 abdb293f Chrysostomos Nanakos
    ident
141 abdb293f Chrysostomos Nanakos
142 abdb293f Chrysostomos Nanakos
    return 0
143 abdb293f Chrysostomos Nanakos
}
144 abdb293f Chrysostomos Nanakos
145 abdb293f Chrysostomos Nanakos
146 abdb293f Chrysostomos Nanakos
##########################
147 abdb293f Chrysostomos Nanakos
# VERSION_ERROR FUNCTION #
148 abdb293f Chrysostomos Nanakos
##########################
149 abdb293f Chrysostomos Nanakos
version_error ( ) {
150 abdb293f Chrysostomos Nanakos
    if [ "x$1" = "x" ] ; then
151 abdb293f Chrysostomos Nanakos
	echo "INTERNAL ERROR: version_error was not provided a version"
152 abdb293f Chrysostomos Nanakos
	exit 1
153 abdb293f Chrysostomos Nanakos
    fi
154 abdb293f Chrysostomos Nanakos
    if [ "x$2" = "x" ] ; then
155 abdb293f Chrysostomos Nanakos
	echo "INTERNAL ERROR: version_error was not provided an application name"
156 abdb293f Chrysostomos Nanakos
	exit 1
157 abdb293f Chrysostomos Nanakos
    fi
158 abdb293f Chrysostomos Nanakos
    $ECHO
159 abdb293f Chrysostomos Nanakos
    $ECHO "ERROR:  To prepare the ${PROJECT} build system from scratch,"
160 abdb293f Chrysostomos Nanakos
    $ECHO "        at least version $1 of $2 must be installed."
161 abdb293f Chrysostomos Nanakos
    $ECHO
162 abdb293f Chrysostomos Nanakos
    $ECHO "$NAME_OF_AUTOGEN does not need to be run on the same machine that will"
163 abdb293f Chrysostomos Nanakos
    $ECHO "run configure or make.  Either the GNU Autotools will need to be installed"
164 abdb293f Chrysostomos Nanakos
    $ECHO "or upgraded on this system, or $NAME_OF_AUTOGEN must be run on the source"
165 abdb293f Chrysostomos Nanakos
    $ECHO "code on another system and then transferred to here. -- Cheers!"
166 abdb293f Chrysostomos Nanakos
    $ECHO
167 abdb293f Chrysostomos Nanakos
}
168 abdb293f Chrysostomos Nanakos
169 abdb293f Chrysostomos Nanakos
##########################
170 abdb293f Chrysostomos Nanakos
# VERSION_CHECK FUNCTION #
171 abdb293f Chrysostomos Nanakos
##########################
172 abdb293f Chrysostomos Nanakos
version_check ( ) {
173 abdb293f Chrysostomos Nanakos
    if [ "x$1" = "x" ] ; then
174 abdb293f Chrysostomos Nanakos
	echo "INTERNAL ERROR: version_check was not provided a minimum version"
175 abdb293f Chrysostomos Nanakos
	exit 1
176 abdb293f Chrysostomos Nanakos
    fi
177 abdb293f Chrysostomos Nanakos
    _min="$1"
178 abdb293f Chrysostomos Nanakos
    if [ "x$2" = "x" ] ; then
179 abdb293f Chrysostomos Nanakos
	echo "INTERNAL ERROR: version check was not provided a comparison version"
180 abdb293f Chrysostomos Nanakos
	exit 1
181 abdb293f Chrysostomos Nanakos
    fi
182 abdb293f Chrysostomos Nanakos
    _cur="$2"
183 abdb293f Chrysostomos Nanakos
184 abdb293f Chrysostomos Nanakos
    # needed to handle versions like 1.10 and 1.4-p6
185 abdb293f Chrysostomos Nanakos
    _min="`echo ${_min}. | sed 's/[^0-9]/./g' | sed 's/\.\././g'`"
186 abdb293f Chrysostomos Nanakos
    _cur="`echo ${_cur}. | sed 's/[^0-9]/./g' | sed 's/\.\././g'`"
187 abdb293f Chrysostomos Nanakos
188 abdb293f Chrysostomos Nanakos
    _min_major="`echo $_min | cut -d. -f1`"
189 abdb293f Chrysostomos Nanakos
    _min_minor="`echo $_min | cut -d. -f2`"
190 abdb293f Chrysostomos Nanakos
    _min_patch="`echo $_min | cut -d. -f3`"
191 abdb293f Chrysostomos Nanakos
192 abdb293f Chrysostomos Nanakos
    _cur_major="`echo $_cur | cut -d. -f1`"
193 abdb293f Chrysostomos Nanakos
    _cur_minor="`echo $_cur | cut -d. -f2`"
194 abdb293f Chrysostomos Nanakos
    _cur_patch="`echo $_cur | cut -d. -f3`"
195 abdb293f Chrysostomos Nanakos
196 abdb293f Chrysostomos Nanakos
    if [ "x$_min_major" = "x" ] ; then
197 abdb293f Chrysostomos Nanakos
	_min_major=0
198 abdb293f Chrysostomos Nanakos
    fi
199 abdb293f Chrysostomos Nanakos
    if [ "x$_min_minor" = "x" ] ; then
200 abdb293f Chrysostomos Nanakos
	_min_minor=0
201 abdb293f Chrysostomos Nanakos
    fi
202 abdb293f Chrysostomos Nanakos
    if [ "x$_min_patch" = "x" ] ; then
203 abdb293f Chrysostomos Nanakos
	_min_patch=0
204 abdb293f Chrysostomos Nanakos
    fi
205 abdb293f Chrysostomos Nanakos
    if [ "x$_cur_minor" = "x" ] ; then
206 abdb293f Chrysostomos Nanakos
	_cur_major=0
207 abdb293f Chrysostomos Nanakos
    fi
208 abdb293f Chrysostomos Nanakos
    if [ "x$_cur_minor" = "x" ] ; then
209 abdb293f Chrysostomos Nanakos
	_cur_minor=0
210 abdb293f Chrysostomos Nanakos
    fi
211 abdb293f Chrysostomos Nanakos
    if [ "x$_cur_patch" = "x" ] ; then
212 abdb293f Chrysostomos Nanakos
	_cur_patch=0
213 abdb293f Chrysostomos Nanakos
    fi
214 abdb293f Chrysostomos Nanakos
215 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "Checking if ${_cur_major}.${_cur_minor}.${_cur_patch} is greater than ${_min_major}.${_min_minor}.${_min_patch}"
216 abdb293f Chrysostomos Nanakos
217 abdb293f Chrysostomos Nanakos
    if [ $_min_major -lt $_cur_major ] ; then
218 abdb293f Chrysostomos Nanakos
	return 0
219 abdb293f Chrysostomos Nanakos
    elif [ $_min_major -eq $_cur_major ] ; then
220 abdb293f Chrysostomos Nanakos
	if [ $_min_minor -lt $_cur_minor ] ; then
221 abdb293f Chrysostomos Nanakos
	    return 0
222 abdb293f Chrysostomos Nanakos
	elif [ $_min_minor -eq $_cur_minor ] ; then
223 abdb293f Chrysostomos Nanakos
	    if [ $_min_patch -lt $_cur_patch ] ; then
224 abdb293f Chrysostomos Nanakos
		return 0
225 abdb293f Chrysostomos Nanakos
	    elif [ $_min_patch -eq $_cur_patch ] ; then
226 abdb293f Chrysostomos Nanakos
		return 0
227 abdb293f Chrysostomos Nanakos
	    fi
228 abdb293f Chrysostomos Nanakos
	fi
229 abdb293f Chrysostomos Nanakos
    fi
230 abdb293f Chrysostomos Nanakos
    return 1
231 abdb293f Chrysostomos Nanakos
}
232 abdb293f Chrysostomos Nanakos
233 abdb293f Chrysostomos Nanakos
234 abdb293f Chrysostomos Nanakos
######################################
235 abdb293f Chrysostomos Nanakos
# LOCATE_CONFIGURE_TEMPLATE FUNCTION #
236 abdb293f Chrysostomos Nanakos
######################################
237 abdb293f Chrysostomos Nanakos
locate_configure_template ( ) {
238 abdb293f Chrysostomos Nanakos
    _pwd="`pwd`"
239 abdb293f Chrysostomos Nanakos
    if test -f "./configure.ac" ; then
240 abdb293f Chrysostomos Nanakos
	echo "./configure.ac"
241 abdb293f Chrysostomos Nanakos
    elif test -f "./configure.in" ; then
242 abdb293f Chrysostomos Nanakos
	echo "./configure.in"
243 abdb293f Chrysostomos Nanakos
    elif test -f "$_pwd/configure.ac" ; then
244 abdb293f Chrysostomos Nanakos
	echo "$_pwd/configure.ac"
245 abdb293f Chrysostomos Nanakos
    elif test -f "$_pwd/configure.in" ; then
246 abdb293f Chrysostomos Nanakos
	echo "$_pwd/configure.in"
247 abdb293f Chrysostomos Nanakos
    elif test -f "$PATH_TO_AUTOGEN/configure.ac" ; then
248 abdb293f Chrysostomos Nanakos
	echo "$PATH_TO_AUTOGEN/configure.ac"
249 abdb293f Chrysostomos Nanakos
    elif test -f "$PATH_TO_AUTOGEN/configure.in" ; then
250 abdb293f Chrysostomos Nanakos
	echo "$PATH_TO_AUTOGEN/configure.in"
251 abdb293f Chrysostomos Nanakos
    fi
252 abdb293f Chrysostomos Nanakos
}
253 abdb293f Chrysostomos Nanakos
254 abdb293f Chrysostomos Nanakos
255 abdb293f Chrysostomos Nanakos
##################
256 abdb293f Chrysostomos Nanakos
# argument check #
257 abdb293f Chrysostomos Nanakos
##################
258 abdb293f Chrysostomos Nanakos
ARGS="$*"
259 abdb293f Chrysostomos Nanakos
PATH_TO_AUTOGEN="`dirname $0`"
260 abdb293f Chrysostomos Nanakos
NAME_OF_AUTOGEN="`basename $0`"
261 abdb293f Chrysostomos Nanakos
AUTOGEN_SH="$PATH_TO_AUTOGEN/$NAME_OF_AUTOGEN"
262 abdb293f Chrysostomos Nanakos
263 abdb293f Chrysostomos Nanakos
LIBTOOL_M4="${PATH_TO_AUTOGEN}/misc/libtool.m4"
264 abdb293f Chrysostomos Nanakos
265 abdb293f Chrysostomos Nanakos
if [ "x$HELP" = "x" ] ; then
266 abdb293f Chrysostomos Nanakos
    HELP=no
267 abdb293f Chrysostomos Nanakos
fi
268 abdb293f Chrysostomos Nanakos
if [ "x$QUIET" = "x" ] ; then
269 abdb293f Chrysostomos Nanakos
    QUIET=no
270 abdb293f Chrysostomos Nanakos
fi
271 abdb293f Chrysostomos Nanakos
if [ "x$VERBOSE" = "x" ] ; then
272 abdb293f Chrysostomos Nanakos
    VERBOSE=no
273 abdb293f Chrysostomos Nanakos
fi
274 abdb293f Chrysostomos Nanakos
if [ "x$VERSION_ONLY" = "x" ] ; then
275 abdb293f Chrysostomos Nanakos
    VERSION_ONLY=no
276 abdb293f Chrysostomos Nanakos
fi
277 abdb293f Chrysostomos Nanakos
if [ "x$DOWNLOAD" = "x" ] ; then
278 abdb293f Chrysostomos Nanakos
    DOWNLOAD=no
279 abdb293f Chrysostomos Nanakos
fi
280 abdb293f Chrysostomos Nanakos
if [ "x$AUTORECONF_OPTIONS" = "x" ] ; then
281 abdb293f Chrysostomos Nanakos
    AUTORECONF_OPTIONS="-i -f"
282 abdb293f Chrysostomos Nanakos
fi
283 abdb293f Chrysostomos Nanakos
if [ "x$AUTOCONF_OPTIONS" = "x" ] ; then
284 abdb293f Chrysostomos Nanakos
    AUTOCONF_OPTIONS="-f"
285 abdb293f Chrysostomos Nanakos
fi
286 abdb293f Chrysostomos Nanakos
if [ "x$AUTOMAKE_OPTIONS" = "x" ] ; then
287 abdb293f Chrysostomos Nanakos
    AUTOMAKE_OPTIONS="-a -c -f"
288 abdb293f Chrysostomos Nanakos
fi
289 abdb293f Chrysostomos Nanakos
ALT_AUTOMAKE_OPTIONS="-a -c"
290 abdb293f Chrysostomos Nanakos
if [ "x$LIBTOOLIZE_OPTIONS" = "x" ] ; then
291 abdb293f Chrysostomos Nanakos
    LIBTOOLIZE_OPTIONS="--automake -c -f"
292 abdb293f Chrysostomos Nanakos
fi
293 abdb293f Chrysostomos Nanakos
ALT_LIBTOOLIZE_OPTIONS="--automake --copy --force"
294 abdb293f Chrysostomos Nanakos
if [ "x$ACLOCAL_OPTIONS" = "x" ] ; then
295 abdb293f Chrysostomos Nanakos
    ACLOCAL_OPTIONS=""
296 abdb293f Chrysostomos Nanakos
fi
297 abdb293f Chrysostomos Nanakos
if [ "x$AUTOHEADER_OPTIONS" = "x" ] ; then
298 abdb293f Chrysostomos Nanakos
    AUTOHEADER_OPTIONS=""
299 abdb293f Chrysostomos Nanakos
fi
300 abdb293f Chrysostomos Nanakos
if [ "x$CONFIG_GUESS_URL" = "x" ] ; then
301 abdb293f Chrysostomos Nanakos
    CONFIG_GUESS_URL="http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.guess;hb=HEAD"
302 abdb293f Chrysostomos Nanakos
fi
303 abdb293f Chrysostomos Nanakos
for arg in $ARGS ; do
304 abdb293f Chrysostomos Nanakos
    case "x$arg" in
305 abdb293f Chrysostomos Nanakos
	x--help) HELP=yes ;;
306 abdb293f Chrysostomos Nanakos
	x-[hH]) HELP=yes ;;
307 abdb293f Chrysostomos Nanakos
	x--quiet) QUIET=yes ;;
308 abdb293f Chrysostomos Nanakos
	x-[qQ]) QUIET=yes ;;
309 abdb293f Chrysostomos Nanakos
	x--verbose) VERBOSE=yes ;;
310 abdb293f Chrysostomos Nanakos
	x-[dD]) DOWNLOAD=yes ;;
311 abdb293f Chrysostomos Nanakos
	x--download) DOWNLOAD=yes ;;
312 abdb293f Chrysostomos Nanakos
	x-[vV]) VERBOSE=yes ;;
313 abdb293f Chrysostomos Nanakos
	x--version) VERSION_ONLY=yes ;;
314 abdb293f Chrysostomos Nanakos
	*)
315 abdb293f Chrysostomos Nanakos
	    echo "Unknown option: $arg"
316 abdb293f Chrysostomos Nanakos
	    echo
317 abdb293f Chrysostomos Nanakos
	    usage
318 abdb293f Chrysostomos Nanakos
	    exit 1
319 abdb293f Chrysostomos Nanakos
	    ;;
320 abdb293f Chrysostomos Nanakos
    esac
321 abdb293f Chrysostomos Nanakos
done
322 abdb293f Chrysostomos Nanakos
323 abdb293f Chrysostomos Nanakos
324 abdb293f Chrysostomos Nanakos
#####################
325 abdb293f Chrysostomos Nanakos
# environment check #
326 abdb293f Chrysostomos Nanakos
#####################
327 abdb293f Chrysostomos Nanakos
328 abdb293f Chrysostomos Nanakos
# sanity check before recursions potentially begin
329 abdb293f Chrysostomos Nanakos
if [ ! -f "$AUTOGEN_SH" ] ; then
330 abdb293f Chrysostomos Nanakos
    echo "INTERNAL ERROR: $AUTOGEN_SH does not exist"
331 abdb293f Chrysostomos Nanakos
    if [ ! "x$0" = "x$AUTOGEN_SH" ] ; then
332 abdb293f Chrysostomos Nanakos
	echo "INTERNAL ERROR: dirname/basename inconsistency: $0 != $AUTOGEN_SH"
333 abdb293f Chrysostomos Nanakos
    fi
334 abdb293f Chrysostomos Nanakos
    exit 1
335 abdb293f Chrysostomos Nanakos
fi
336 abdb293f Chrysostomos Nanakos
337 abdb293f Chrysostomos Nanakos
# force locale setting to C so things like date output as expected
338 abdb293f Chrysostomos Nanakos
LC_ALL=C
339 abdb293f Chrysostomos Nanakos
340 abdb293f Chrysostomos Nanakos
# commands that this script expects
341 abdb293f Chrysostomos Nanakos
for __cmd in echo head tail pwd ; do
342 abdb293f Chrysostomos Nanakos
    echo "test" | $__cmd > /dev/null 2>&1
343 abdb293f Chrysostomos Nanakos
    if [ $? != 0 ] ; then
344 abdb293f Chrysostomos Nanakos
	echo "INTERNAL ERROR: '${__cmd}' command is required"
345 abdb293f Chrysostomos Nanakos
	exit 2
346 abdb293f Chrysostomos Nanakos
    fi
347 abdb293f Chrysostomos Nanakos
done
348 abdb293f Chrysostomos Nanakos
echo "test" | grep "test" > /dev/null 2>&1
349 abdb293f Chrysostomos Nanakos
if test ! x$? = x0 ; then
350 abdb293f Chrysostomos Nanakos
    echo "INTERNAL ERROR: grep command is required"
351 abdb293f Chrysostomos Nanakos
    exit 1
352 abdb293f Chrysostomos Nanakos
fi
353 abdb293f Chrysostomos Nanakos
echo "test" | sed "s/test/test/" > /dev/null 2>&1
354 abdb293f Chrysostomos Nanakos
if test ! x$? = x0 ; then
355 abdb293f Chrysostomos Nanakos
    echo "INTERNAL ERROR: sed command is required"
356 abdb293f Chrysostomos Nanakos
    exit 1
357 abdb293f Chrysostomos Nanakos
fi
358 abdb293f Chrysostomos Nanakos
359 abdb293f Chrysostomos Nanakos
360 abdb293f Chrysostomos Nanakos
# determine the behavior of echo
361 abdb293f Chrysostomos Nanakos
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
362 abdb293f Chrysostomos Nanakos
    *c*,-n*) ECHO_N= ECHO_C='
363 abdb293f Chrysostomos Nanakos
' ECHO_T='	' ;;
364 abdb293f Chrysostomos Nanakos
    *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
365 abdb293f Chrysostomos Nanakos
    *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
366 abdb293f Chrysostomos Nanakos
esac
367 abdb293f Chrysostomos Nanakos
368 abdb293f Chrysostomos Nanakos
# determine the behavior of head
369 abdb293f Chrysostomos Nanakos
case "x`echo 'head' | head -n 1 2>&1`" in
370 abdb293f Chrysostomos Nanakos
    *xhead*) HEAD_N="n " ;;
371 abdb293f Chrysostomos Nanakos
    *) HEAD_N="" ;;
372 abdb293f Chrysostomos Nanakos
esac
373 abdb293f Chrysostomos Nanakos
374 abdb293f Chrysostomos Nanakos
# determine the behavior of tail
375 abdb293f Chrysostomos Nanakos
case "x`echo 'tail' | tail -n 1 2>&1`" in
376 abdb293f Chrysostomos Nanakos
    *xtail*) TAIL_N="n " ;;
377 abdb293f Chrysostomos Nanakos
    *) TAIL_N="" ;;
378 abdb293f Chrysostomos Nanakos
esac
379 abdb293f Chrysostomos Nanakos
380 abdb293f Chrysostomos Nanakos
VERBOSE_ECHO=:
381 abdb293f Chrysostomos Nanakos
ECHO=:
382 abdb293f Chrysostomos Nanakos
if [ "x$QUIET" = "xyes" ] ; then
383 abdb293f Chrysostomos Nanakos
    if [ "x$VERBOSE" = "xyes" ] ; then
384 abdb293f Chrysostomos Nanakos
	echo "Verbose output quelled by quiet option.  Further output disabled."
385 abdb293f Chrysostomos Nanakos
    fi
386 abdb293f Chrysostomos Nanakos
else
387 abdb293f Chrysostomos Nanakos
    ECHO=echo
388 abdb293f Chrysostomos Nanakos
    if [ "x$VERBOSE" = "xyes" ] ; then
389 abdb293f Chrysostomos Nanakos
	echo "Verbose output enabled"
390 abdb293f Chrysostomos Nanakos
	VERBOSE_ECHO=echo
391 abdb293f Chrysostomos Nanakos
    fi
392 abdb293f Chrysostomos Nanakos
fi
393 abdb293f Chrysostomos Nanakos
394 abdb293f Chrysostomos Nanakos
395 abdb293f Chrysostomos Nanakos
# allow a recursive run to disable further recursions
396 abdb293f Chrysostomos Nanakos
if [ "x$RUN_RECURSIVE" = "x" ] ; then
397 abdb293f Chrysostomos Nanakos
    RUN_RECURSIVE=yes
398 abdb293f Chrysostomos Nanakos
fi
399 abdb293f Chrysostomos Nanakos
400 abdb293f Chrysostomos Nanakos
401 abdb293f Chrysostomos Nanakos
################################################
402 abdb293f Chrysostomos Nanakos
# check for help arg and bypass version checks #
403 abdb293f Chrysostomos Nanakos
################################################
404 abdb293f Chrysostomos Nanakos
if [ "x`echo $ARGS | sed 's/.*[hH][eE][lL][pP].*/help/'`" = "xhelp" ] ; then
405 abdb293f Chrysostomos Nanakos
    HELP=yes
406 abdb293f Chrysostomos Nanakos
fi
407 abdb293f Chrysostomos Nanakos
if [ "x$HELP" = "xyes" ] ; then
408 abdb293f Chrysostomos Nanakos
    usage
409 abdb293f Chrysostomos Nanakos
    $ECHO "---"
410 abdb293f Chrysostomos Nanakos
    $ECHO "Help was requested.  No preparation or configuration will be performed."
411 abdb293f Chrysostomos Nanakos
    exit 0
412 abdb293f Chrysostomos Nanakos
fi
413 abdb293f Chrysostomos Nanakos
414 abdb293f Chrysostomos Nanakos
415 abdb293f Chrysostomos Nanakos
#######################
416 abdb293f Chrysostomos Nanakos
# set up signal traps #
417 abdb293f Chrysostomos Nanakos
#######################
418 abdb293f Chrysostomos Nanakos
untrap_abnormal ( ) {
419 abdb293f Chrysostomos Nanakos
    for sig in 1 2 13 15; do
420 abdb293f Chrysostomos Nanakos
	trap - $sig
421 abdb293f Chrysostomos Nanakos
    done
422 abdb293f Chrysostomos Nanakos
}
423 abdb293f Chrysostomos Nanakos
424 abdb293f Chrysostomos Nanakos
# do this cleanup whenever we exit.
425 abdb293f Chrysostomos Nanakos
trap '
426 abdb293f Chrysostomos Nanakos
    # start from the root
427 abdb293f Chrysostomos Nanakos
    if test -d "$START_PATH" ; then
428 abdb293f Chrysostomos Nanakos
	cd "$START_PATH"
429 abdb293f Chrysostomos Nanakos
    fi
430 abdb293f Chrysostomos Nanakos
431 abdb293f Chrysostomos Nanakos
    # restore/delete backup files
432 abdb293f Chrysostomos Nanakos
    if test "x$PFC_INIT" = "x1" ; then
433 abdb293f Chrysostomos Nanakos
	recursive_restore
434 abdb293f Chrysostomos Nanakos
    fi
435 abdb293f Chrysostomos Nanakos
' 0
436 abdb293f Chrysostomos Nanakos
437 abdb293f Chrysostomos Nanakos
# trap SIGHUP (1), SIGINT (2), SIGPIPE (13), SIGTERM (15)
438 abdb293f Chrysostomos Nanakos
for sig in 1 2 13 15; do
439 abdb293f Chrysostomos Nanakos
    trap '
440 abdb293f Chrysostomos Nanakos
	$ECHO ""
441 abdb293f Chrysostomos Nanakos
	$ECHO "Aborting $NAME_OF_AUTOGEN: caught signal '$sig'"
442 abdb293f Chrysostomos Nanakos
443 abdb293f Chrysostomos Nanakos
	# start from the root
444 abdb293f Chrysostomos Nanakos
	if test -d "$START_PATH" ; then
445 abdb293f Chrysostomos Nanakos
	    cd "$START_PATH"
446 abdb293f Chrysostomos Nanakos
	fi
447 abdb293f Chrysostomos Nanakos
448 abdb293f Chrysostomos Nanakos
	# clean up on abnormal exit
449 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "rm -rf autom4te.cache"
450 abdb293f Chrysostomos Nanakos
	rm -rf autom4te.cache
451 abdb293f Chrysostomos Nanakos
452 abdb293f Chrysostomos Nanakos
	if test -f "acinclude.m4.$$.backup" ; then
453 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "cat acinclude.m4.$$.backup > acinclude.m4"
454 abdb293f Chrysostomos Nanakos
	    chmod u+w acinclude.m4
455 abdb293f Chrysostomos Nanakos
	    cat acinclude.m4.$$.backup > acinclude.m4
456 abdb293f Chrysostomos Nanakos
457 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "rm -f acinclude.m4.$$.backup"
458 abdb293f Chrysostomos Nanakos
	    rm -f acinclude.m4.$$.backup
459 abdb293f Chrysostomos Nanakos
        fi
460 abdb293f Chrysostomos Nanakos
461 abdb293f Chrysostomos Nanakos
	{ (exit 1); exit 1; }
462 abdb293f Chrysostomos Nanakos
' $sig
463 abdb293f Chrysostomos Nanakos
done
464 abdb293f Chrysostomos Nanakos
465 abdb293f Chrysostomos Nanakos
466 abdb293f Chrysostomos Nanakos
#############################
467 abdb293f Chrysostomos Nanakos
# look for a configure file #
468 abdb293f Chrysostomos Nanakos
#############################
469 abdb293f Chrysostomos Nanakos
if [ "x$CONFIGURE" = "x" ] ; then
470 abdb293f Chrysostomos Nanakos
    CONFIGURE="`locate_configure_template`"
471 abdb293f Chrysostomos Nanakos
    if [ ! "x$CONFIGURE" = "x" ] ; then
472 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Found a configure template: $CONFIGURE"
473 abdb293f Chrysostomos Nanakos
    fi
474 abdb293f Chrysostomos Nanakos
else
475 abdb293f Chrysostomos Nanakos
    $ECHO "Using CONFIGURE environment variable override: $CONFIGURE"
476 abdb293f Chrysostomos Nanakos
fi
477 abdb293f Chrysostomos Nanakos
if [ "x$CONFIGURE" = "x" ] ; then
478 abdb293f Chrysostomos Nanakos
    if [ "x$VERSION_ONLY" = "xyes" ] ; then
479 abdb293f Chrysostomos Nanakos
	CONFIGURE=/dev/null
480 abdb293f Chrysostomos Nanakos
    else
481 abdb293f Chrysostomos Nanakos
	$ECHO
482 abdb293f Chrysostomos Nanakos
	$ECHO "A configure.ac or configure.in file could not be located implying"
483 abdb293f Chrysostomos Nanakos
	$ECHO "that the GNU Build System is at least not used in this directory.  In"
484 abdb293f Chrysostomos Nanakos
	$ECHO "any case, there is nothing to do here without one of those files."
485 abdb293f Chrysostomos Nanakos
	$ECHO
486 abdb293f Chrysostomos Nanakos
	$ECHO "ERROR: No configure.in or configure.ac file found in `pwd`"
487 abdb293f Chrysostomos Nanakos
	exit 1
488 abdb293f Chrysostomos Nanakos
    fi
489 abdb293f Chrysostomos Nanakos
fi
490 abdb293f Chrysostomos Nanakos
491 abdb293f Chrysostomos Nanakos
####################
492 abdb293f Chrysostomos Nanakos
# get project name #
493 abdb293f Chrysostomos Nanakos
####################
494 abdb293f Chrysostomos Nanakos
if [ "x$PROJECT" = "x" ] ; then
495 abdb293f Chrysostomos Nanakos
    PROJECT="`grep AC_INIT $CONFIGURE | grep -v '.*#.*AC_INIT' | tail -${TAIL_N}1 | sed 's/^[ 	]*AC_INIT(\([^,)]*\).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
496 abdb293f Chrysostomos Nanakos
    if [ "x$PROJECT" = "xAC_INIT" ] ; then
497 abdb293f Chrysostomos Nanakos
	# projects might be using the older/deprecated arg-less AC_INIT .. look for AM_INIT_AUTOMAKE instead
498 abdb293f Chrysostomos Nanakos
	PROJECT="`grep AM_INIT_AUTOMAKE $CONFIGURE | grep -v '.*#.*AM_INIT_AUTOMAKE' | tail -${TAIL_N}1 | sed 's/^[ 	]*AM_INIT_AUTOMAKE(\([^,)]*\).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
499 abdb293f Chrysostomos Nanakos
    fi
500 abdb293f Chrysostomos Nanakos
    if [ "x$PROJECT" = "xAM_INIT_AUTOMAKE" ] ; then
501 abdb293f Chrysostomos Nanakos
	PROJECT="project"
502 abdb293f Chrysostomos Nanakos
    fi
503 abdb293f Chrysostomos Nanakos
    if [ "x$PROJECT" = "x" ] ; then
504 abdb293f Chrysostomos Nanakos
	PROJECT="project"
505 abdb293f Chrysostomos Nanakos
    fi
506 abdb293f Chrysostomos Nanakos
else
507 abdb293f Chrysostomos Nanakos
    $ECHO "Using PROJECT environment variable override: $PROJECT"
508 abdb293f Chrysostomos Nanakos
fi
509 abdb293f Chrysostomos Nanakos
$ECHO "Preparing the $PROJECT build system...please wait"
510 abdb293f Chrysostomos Nanakos
$ECHO
511 abdb293f Chrysostomos Nanakos
512 abdb293f Chrysostomos Nanakos
513 abdb293f Chrysostomos Nanakos
########################
514 abdb293f Chrysostomos Nanakos
# check for autoreconf #
515 abdb293f Chrysostomos Nanakos
########################
516 abdb293f Chrysostomos Nanakos
HAVE_AUTORECONF=no
517 abdb293f Chrysostomos Nanakos
if [ "x$AUTORECONF" = "x" ] ; then
518 abdb293f Chrysostomos Nanakos
    for AUTORECONF in autoreconf ; do
519 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Checking autoreconf version: $AUTORECONF --version"
520 abdb293f Chrysostomos Nanakos
	$AUTORECONF --version > /dev/null 2>&1
521 abdb293f Chrysostomos Nanakos
	if [ $? = 0 ] ; then
522 abdb293f Chrysostomos Nanakos
	    HAVE_AUTORECONF=yes
523 abdb293f Chrysostomos Nanakos
	    break
524 abdb293f Chrysostomos Nanakos
	fi
525 abdb293f Chrysostomos Nanakos
    done
526 abdb293f Chrysostomos Nanakos
else
527 abdb293f Chrysostomos Nanakos
    HAVE_AUTORECONF=yes
528 abdb293f Chrysostomos Nanakos
    $ECHO "Using AUTORECONF environment variable override: $AUTORECONF"
529 abdb293f Chrysostomos Nanakos
fi
530 abdb293f Chrysostomos Nanakos
531 abdb293f Chrysostomos Nanakos
532 abdb293f Chrysostomos Nanakos
##########################
533 abdb293f Chrysostomos Nanakos
# autoconf version check #
534 abdb293f Chrysostomos Nanakos
##########################
535 abdb293f Chrysostomos Nanakos
_acfound=no
536 abdb293f Chrysostomos Nanakos
if [ "x$AUTOCONF" = "x" ] ; then
537 abdb293f Chrysostomos Nanakos
    for AUTOCONF in autoconf ; do
538 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Checking autoconf version: $AUTOCONF --version"
539 abdb293f Chrysostomos Nanakos
	$AUTOCONF --version > /dev/null 2>&1
540 abdb293f Chrysostomos Nanakos
	if [ $? = 0 ] ; then
541 abdb293f Chrysostomos Nanakos
	    _acfound=yes
542 abdb293f Chrysostomos Nanakos
	    break
543 abdb293f Chrysostomos Nanakos
	fi
544 abdb293f Chrysostomos Nanakos
    done
545 abdb293f Chrysostomos Nanakos
else
546 abdb293f Chrysostomos Nanakos
    _acfound=yes
547 abdb293f Chrysostomos Nanakos
    $ECHO "Using AUTOCONF environment variable override: $AUTOCONF"
548 abdb293f Chrysostomos Nanakos
fi
549 abdb293f Chrysostomos Nanakos
550 abdb293f Chrysostomos Nanakos
_report_error=no
551 abdb293f Chrysostomos Nanakos
if [ ! "x$_acfound" = "xyes" ] ; then
552 abdb293f Chrysostomos Nanakos
    $ECHO "ERROR:  Unable to locate GNU Autoconf."
553 abdb293f Chrysostomos Nanakos
    _report_error=yes
554 abdb293f Chrysostomos Nanakos
else
555 abdb293f Chrysostomos Nanakos
    _version="`$AUTOCONF --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`"
556 abdb293f Chrysostomos Nanakos
    if [ "x$_version" = "x" ] ; then
557 abdb293f Chrysostomos Nanakos
	_version="0.0.0"
558 abdb293f Chrysostomos Nanakos
    fi
559 abdb293f Chrysostomos Nanakos
    $ECHO "Found GNU Autoconf version $_version"
560 abdb293f Chrysostomos Nanakos
    version_check "$AUTOCONF_VERSION" "$_version"
561 abdb293f Chrysostomos Nanakos
    if [ $? -ne 0 ] ; then
562 abdb293f Chrysostomos Nanakos
	_report_error=yes
563 abdb293f Chrysostomos Nanakos
    fi
564 abdb293f Chrysostomos Nanakos
fi
565 abdb293f Chrysostomos Nanakos
if [ "x$_report_error" = "xyes" ] ; then
566 abdb293f Chrysostomos Nanakos
    version_error "$AUTOCONF_VERSION" "GNU Autoconf"
567 abdb293f Chrysostomos Nanakos
    exit 1
568 abdb293f Chrysostomos Nanakos
fi
569 abdb293f Chrysostomos Nanakos
570 abdb293f Chrysostomos Nanakos
571 abdb293f Chrysostomos Nanakos
##########################
572 abdb293f Chrysostomos Nanakos
# automake version check #
573 abdb293f Chrysostomos Nanakos
##########################
574 abdb293f Chrysostomos Nanakos
_amfound=no
575 abdb293f Chrysostomos Nanakos
if [ "x$AUTOMAKE" = "x" ] ; then
576 abdb293f Chrysostomos Nanakos
    for AUTOMAKE in automake ; do
577 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Checking automake version: $AUTOMAKE --version"
578 abdb293f Chrysostomos Nanakos
	$AUTOMAKE --version > /dev/null 2>&1
579 abdb293f Chrysostomos Nanakos
	if [ $? = 0 ] ; then
580 abdb293f Chrysostomos Nanakos
	    _amfound=yes
581 abdb293f Chrysostomos Nanakos
	    break
582 abdb293f Chrysostomos Nanakos
	fi
583 abdb293f Chrysostomos Nanakos
    done
584 abdb293f Chrysostomos Nanakos
else
585 abdb293f Chrysostomos Nanakos
    _amfound=yes
586 abdb293f Chrysostomos Nanakos
    $ECHO "Using AUTOMAKE environment variable override: $AUTOMAKE"
587 abdb293f Chrysostomos Nanakos
fi
588 abdb293f Chrysostomos Nanakos
589 abdb293f Chrysostomos Nanakos
590 abdb293f Chrysostomos Nanakos
_report_error=no
591 abdb293f Chrysostomos Nanakos
if [ ! "x$_amfound" = "xyes" ] ; then
592 abdb293f Chrysostomos Nanakos
    $ECHO
593 abdb293f Chrysostomos Nanakos
    $ECHO "ERROR: Unable to locate GNU Automake."
594 abdb293f Chrysostomos Nanakos
    _report_error=yes
595 abdb293f Chrysostomos Nanakos
else
596 abdb293f Chrysostomos Nanakos
    _version="`$AUTOMAKE --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`"
597 abdb293f Chrysostomos Nanakos
    if [ "x$_version" = "x" ] ; then
598 abdb293f Chrysostomos Nanakos
	_version="0.0.0"
599 abdb293f Chrysostomos Nanakos
    fi
600 abdb293f Chrysostomos Nanakos
    $ECHO "Found GNU Automake version $_version"
601 abdb293f Chrysostomos Nanakos
    version_check "$AUTOMAKE_VERSION" "$_version"
602 abdb293f Chrysostomos Nanakos
    if [ $? -ne 0 ] ; then
603 abdb293f Chrysostomos Nanakos
	_report_error=yes
604 abdb293f Chrysostomos Nanakos
    fi
605 abdb293f Chrysostomos Nanakos
fi
606 abdb293f Chrysostomos Nanakos
if [ "x$_report_error" = "xyes" ] ; then
607 abdb293f Chrysostomos Nanakos
    version_error "$AUTOMAKE_VERSION" "GNU Automake"
608 abdb293f Chrysostomos Nanakos
    exit 1
609 abdb293f Chrysostomos Nanakos
fi
610 abdb293f Chrysostomos Nanakos
611 abdb293f Chrysostomos Nanakos
612 abdb293f Chrysostomos Nanakos
########################
613 abdb293f Chrysostomos Nanakos
# check for libtoolize #
614 abdb293f Chrysostomos Nanakos
########################
615 abdb293f Chrysostomos Nanakos
HAVE_LIBTOOLIZE=yes
616 abdb293f Chrysostomos Nanakos
HAVE_ALT_LIBTOOLIZE=no
617 abdb293f Chrysostomos Nanakos
_ltfound=no
618 abdb293f Chrysostomos Nanakos
if [ "x$LIBTOOLIZE" = "x" ] ; then
619 abdb293f Chrysostomos Nanakos
    LIBTOOLIZE=libtoolize
620 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "Checking libtoolize version: $LIBTOOLIZE --version"
621 abdb293f Chrysostomos Nanakos
    $LIBTOOLIZE --version > /dev/null 2>&1
622 abdb293f Chrysostomos Nanakos
    if [ ! $? = 0 ] ; then
623 abdb293f Chrysostomos Nanakos
	HAVE_LIBTOOLIZE=no
624 abdb293f Chrysostomos Nanakos
	$ECHO
625 abdb293f Chrysostomos Nanakos
	if [ "x$HAVE_AUTORECONF" = "xno" ] ; then
626 abdb293f Chrysostomos Nanakos
	    $ECHO "Warning:  libtoolize does not appear to be available."
627 abdb293f Chrysostomos Nanakos
	else
628 abdb293f Chrysostomos Nanakos
	    $ECHO "Warning:  libtoolize does not appear to be available.  This means that"
629 abdb293f Chrysostomos Nanakos
	    $ECHO "the automatic build preparation via autoreconf will probably not work."
630 abdb293f Chrysostomos Nanakos
	    $ECHO "Preparing the build by running each step individually, however, should"
631 abdb293f Chrysostomos Nanakos
	    $ECHO "work and will be done automatically for you if autoreconf fails."
632 abdb293f Chrysostomos Nanakos
	fi
633 abdb293f Chrysostomos Nanakos
634 abdb293f Chrysostomos Nanakos
	# look for some alternates
635 abdb293f Chrysostomos Nanakos
	for tool in glibtoolize libtoolize15 libtoolize14 libtoolize13 ; do
636 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "Checking libtoolize alternate: $tool --version"
637 abdb293f Chrysostomos Nanakos
	    _glibtoolize="`$tool --version > /dev/null 2>&1`"
638 abdb293f Chrysostomos Nanakos
	    if [ $? = 0 ] ; then
639 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "Found $tool --version"
640 abdb293f Chrysostomos Nanakos
		_glti="`which $tool`"
641 abdb293f Chrysostomos Nanakos
		if [ "x$_glti" = "x" ] ; then
642 abdb293f Chrysostomos Nanakos
		    $VERBOSE_ECHO "Cannot find $tool with which"
643 abdb293f Chrysostomos Nanakos
		    continue;
644 abdb293f Chrysostomos Nanakos
		fi
645 abdb293f Chrysostomos Nanakos
		if test ! -f "$_glti" ; then
646 abdb293f Chrysostomos Nanakos
		    $VERBOSE_ECHO "Cannot use $tool, $_glti is not a file"
647 abdb293f Chrysostomos Nanakos
		    continue;
648 abdb293f Chrysostomos Nanakos
		fi
649 abdb293f Chrysostomos Nanakos
		_gltidir="`dirname $_glti`"
650 abdb293f Chrysostomos Nanakos
		if [ "x$_gltidir" = "x" ] ; then
651 abdb293f Chrysostomos Nanakos
		    $VERBOSE_ECHO "Cannot find $tool path with dirname of $_glti"
652 abdb293f Chrysostomos Nanakos
		    continue;
653 abdb293f Chrysostomos Nanakos
		fi
654 abdb293f Chrysostomos Nanakos
		if test ! -d "$_gltidir" ; then
655 abdb293f Chrysostomos Nanakos
		    $VERBOSE_ECHO "Cannot use $tool, $_gltidir is not a directory"
656 abdb293f Chrysostomos Nanakos
		    continue;
657 abdb293f Chrysostomos Nanakos
		fi
658 abdb293f Chrysostomos Nanakos
		HAVE_ALT_LIBTOOLIZE=yes
659 abdb293f Chrysostomos Nanakos
		LIBTOOLIZE="$tool"
660 abdb293f Chrysostomos Nanakos
		$ECHO
661 abdb293f Chrysostomos Nanakos
		$ECHO "Fortunately, $tool was found which means that your system may simply"
662 abdb293f Chrysostomos Nanakos
		$ECHO "have a non-standard or incomplete GNU Autotools install.  If you have"
663 abdb293f Chrysostomos Nanakos
		$ECHO "sufficient system access, it may be possible to quell this warning by"
664 abdb293f Chrysostomos Nanakos
		$ECHO "running:"
665 abdb293f Chrysostomos Nanakos
		$ECHO
666 abdb293f Chrysostomos Nanakos
		sudo -V > /dev/null 2>&1
667 abdb293f Chrysostomos Nanakos
		if [ $? = 0 ] ; then
668 abdb293f Chrysostomos Nanakos
		    $ECHO "   sudo ln -s $_glti $_gltidir/libtoolize"
669 abdb293f Chrysostomos Nanakos
		    $ECHO
670 abdb293f Chrysostomos Nanakos
		else
671 abdb293f Chrysostomos Nanakos
		    $ECHO "   ln -s $_glti $_gltidir/libtoolize"
672 abdb293f Chrysostomos Nanakos
		    $ECHO
673 abdb293f Chrysostomos Nanakos
		    $ECHO "Run that as root or with proper permissions to the $_gltidir directory"
674 abdb293f Chrysostomos Nanakos
		    $ECHO
675 abdb293f Chrysostomos Nanakos
		fi
676 abdb293f Chrysostomos Nanakos
		_ltfound=yes
677 abdb293f Chrysostomos Nanakos
		break
678 abdb293f Chrysostomos Nanakos
	    fi
679 abdb293f Chrysostomos Nanakos
	done
680 abdb293f Chrysostomos Nanakos
    else
681 abdb293f Chrysostomos Nanakos
	_ltfound=yes
682 abdb293f Chrysostomos Nanakos
    fi
683 abdb293f Chrysostomos Nanakos
else
684 abdb293f Chrysostomos Nanakos
    _ltfound=yes
685 abdb293f Chrysostomos Nanakos
    $ECHO "Using LIBTOOLIZE environment variable override: $LIBTOOLIZE"
686 abdb293f Chrysostomos Nanakos
fi
687 abdb293f Chrysostomos Nanakos
688 abdb293f Chrysostomos Nanakos
689 abdb293f Chrysostomos Nanakos
############################
690 abdb293f Chrysostomos Nanakos
# libtoolize version check #
691 abdb293f Chrysostomos Nanakos
############################
692 abdb293f Chrysostomos Nanakos
_report_error=no
693 abdb293f Chrysostomos Nanakos
if [ ! "x$_ltfound" = "xyes" ] ; then
694 abdb293f Chrysostomos Nanakos
    $ECHO
695 abdb293f Chrysostomos Nanakos
    $ECHO "ERROR: Unable to locate GNU Libtool."
696 abdb293f Chrysostomos Nanakos
    _report_error=yes
697 abdb293f Chrysostomos Nanakos
else
698 abdb293f Chrysostomos Nanakos
    _version="`$LIBTOOLIZE --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`"
699 abdb293f Chrysostomos Nanakos
    if [ "x$_version" = "x" ] ; then
700 abdb293f Chrysostomos Nanakos
	_version="0.0.0"
701 abdb293f Chrysostomos Nanakos
    fi
702 abdb293f Chrysostomos Nanakos
    $ECHO "Found GNU Libtool version $_version"
703 abdb293f Chrysostomos Nanakos
    version_check "$LIBTOOL_VERSION" "$_version"
704 abdb293f Chrysostomos Nanakos
    if [ $? -ne 0 ] ; then
705 abdb293f Chrysostomos Nanakos
	_report_error=yes
706 abdb293f Chrysostomos Nanakos
    fi
707 abdb293f Chrysostomos Nanakos
fi
708 abdb293f Chrysostomos Nanakos
if [ "x$_report_error" = "xyes" ] ; then
709 abdb293f Chrysostomos Nanakos
    version_error "$LIBTOOL_VERSION" "GNU Libtool"
710 abdb293f Chrysostomos Nanakos
    exit 1
711 abdb293f Chrysostomos Nanakos
fi
712 abdb293f Chrysostomos Nanakos
713 abdb293f Chrysostomos Nanakos
714 abdb293f Chrysostomos Nanakos
#####################
715 abdb293f Chrysostomos Nanakos
# check for aclocal #
716 abdb293f Chrysostomos Nanakos
#####################
717 abdb293f Chrysostomos Nanakos
if [ "x$ACLOCAL" = "x" ] ; then
718 abdb293f Chrysostomos Nanakos
    for ACLOCAL in aclocal ; do
719 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Checking aclocal version: $ACLOCAL --version"
720 abdb293f Chrysostomos Nanakos
	$ACLOCAL --version > /dev/null 2>&1
721 abdb293f Chrysostomos Nanakos
	if [ $? = 0 ] ; then
722 abdb293f Chrysostomos Nanakos
	    break
723 abdb293f Chrysostomos Nanakos
	fi
724 abdb293f Chrysostomos Nanakos
    done
725 abdb293f Chrysostomos Nanakos
else
726 abdb293f Chrysostomos Nanakos
    $ECHO "Using ACLOCAL environment variable override: $ACLOCAL"
727 abdb293f Chrysostomos Nanakos
fi
728 abdb293f Chrysostomos Nanakos
729 abdb293f Chrysostomos Nanakos
730 abdb293f Chrysostomos Nanakos
########################
731 abdb293f Chrysostomos Nanakos
# check for autoheader #
732 abdb293f Chrysostomos Nanakos
########################
733 abdb293f Chrysostomos Nanakos
if [ "x$AUTOHEADER" = "x" ] ; then
734 abdb293f Chrysostomos Nanakos
    for AUTOHEADER in autoheader ; do
735 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Checking autoheader version: $AUTOHEADER --version"
736 abdb293f Chrysostomos Nanakos
	$AUTOHEADER --version > /dev/null 2>&1
737 abdb293f Chrysostomos Nanakos
	if [ $? = 0 ] ; then
738 abdb293f Chrysostomos Nanakos
	    break
739 abdb293f Chrysostomos Nanakos
	fi
740 abdb293f Chrysostomos Nanakos
    done
741 abdb293f Chrysostomos Nanakos
else
742 abdb293f Chrysostomos Nanakos
    $ECHO "Using AUTOHEADER environment variable override: $AUTOHEADER"
743 abdb293f Chrysostomos Nanakos
fi
744 abdb293f Chrysostomos Nanakos
745 abdb293f Chrysostomos Nanakos
746 abdb293f Chrysostomos Nanakos
#########################
747 abdb293f Chrysostomos Nanakos
# check if version only #
748 abdb293f Chrysostomos Nanakos
#########################
749 abdb293f Chrysostomos Nanakos
$VERBOSE_ECHO "Checking whether to only output version information"
750 abdb293f Chrysostomos Nanakos
if [ "x$VERSION_ONLY" = "xyes" ] ; then
751 abdb293f Chrysostomos Nanakos
    $ECHO
752 abdb293f Chrysostomos Nanakos
    ident
753 abdb293f Chrysostomos Nanakos
    $ECHO "---"
754 abdb293f Chrysostomos Nanakos
    $ECHO "Version requested.  No preparation or configuration will be performed."
755 abdb293f Chrysostomos Nanakos
    exit 0
756 abdb293f Chrysostomos Nanakos
fi
757 abdb293f Chrysostomos Nanakos
758 abdb293f Chrysostomos Nanakos
759 abdb293f Chrysostomos Nanakos
#################################
760 abdb293f Chrysostomos Nanakos
# PROTECT_FROM_CLOBBER FUNCTION #
761 abdb293f Chrysostomos Nanakos
#################################
762 abdb293f Chrysostomos Nanakos
protect_from_clobber ( ) {
763 abdb293f Chrysostomos Nanakos
    PFC_INIT=1
764 abdb293f Chrysostomos Nanakos
765 abdb293f Chrysostomos Nanakos
    # protect COPYING & INSTALL from overwrite by automake.  the
766 abdb293f Chrysostomos Nanakos
    # automake force option will (inappropriately) ignore the existing
767 abdb293f Chrysostomos Nanakos
    # contents of a COPYING and/or INSTALL files (depending on the
768 abdb293f Chrysostomos Nanakos
    # version) instead of just forcing *missing* files like it does
769 abdb293f Chrysostomos Nanakos
    # for AUTHORS, NEWS, and README. this is broken but extremely
770 abdb293f Chrysostomos Nanakos
    # prevalent behavior, so we protect against it by keeping a backup
771 abdb293f Chrysostomos Nanakos
    # of the file that can later be restored.
772 abdb293f Chrysostomos Nanakos
773 abdb293f Chrysostomos Nanakos
    for file in COPYING INSTALL ; do
774 abdb293f Chrysostomos Nanakos
	if test -f ${file} ; then
775 abdb293f Chrysostomos Nanakos
	    if test -f ${file}.$$.protect_from_automake.backup ; then
776 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "Already backed up ${file} in `pwd`"
777 abdb293f Chrysostomos Nanakos
	    else
778 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "Backing up ${file} in `pwd`"
779 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "cp -p ${file} ${file}.$$.protect_from_automake.backup"
780 abdb293f Chrysostomos Nanakos
		cp -p ${file} ${file}.$$.protect_from_automake.backup
781 abdb293f Chrysostomos Nanakos
	    fi
782 abdb293f Chrysostomos Nanakos
	fi
783 abdb293f Chrysostomos Nanakos
    done
784 abdb293f Chrysostomos Nanakos
}
785 abdb293f Chrysostomos Nanakos
786 abdb293f Chrysostomos Nanakos
787 abdb293f Chrysostomos Nanakos
##############################
788 abdb293f Chrysostomos Nanakos
# RECURSIVE_PROTECT FUNCTION #
789 abdb293f Chrysostomos Nanakos
##############################
790 abdb293f Chrysostomos Nanakos
recursive_protect ( ) {
791 abdb293f Chrysostomos Nanakos
792 abdb293f Chrysostomos Nanakos
    # for projects using recursive configure, run the build
793 abdb293f Chrysostomos Nanakos
    # preparation steps for the subdirectories.  this function assumes
794 abdb293f Chrysostomos Nanakos
    # START_PATH was set to pwd before recursion begins so that
795 abdb293f Chrysostomos Nanakos
    # relative paths work.
796 abdb293f Chrysostomos Nanakos
797 abdb293f Chrysostomos Nanakos
    # git 'r done, protect COPYING and INSTALL from being clobbered
798 abdb293f Chrysostomos Nanakos
    protect_from_clobber
799 abdb293f Chrysostomos Nanakos
800 abdb293f Chrysostomos Nanakos
    if test -d autom4te.cache ; then
801 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Found an autom4te.cache directory, deleting it"
802 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "rm -rf autom4te.cache"
803 abdb293f Chrysostomos Nanakos
	rm -rf autom4te.cache
804 abdb293f Chrysostomos Nanakos
    fi
805 abdb293f Chrysostomos Nanakos
806 abdb293f Chrysostomos Nanakos
    # find configure template
807 abdb293f Chrysostomos Nanakos
    _configure="`locate_configure_template`"
808 abdb293f Chrysostomos Nanakos
    if [ "x$_configure" = "x" ] ; then
809 abdb293f Chrysostomos Nanakos
	return
810 abdb293f Chrysostomos Nanakos
    fi
811 abdb293f Chrysostomos Nanakos
    # $VERBOSE_ECHO "Looking for configure template found `pwd`/$_configure"
812 abdb293f Chrysostomos Nanakos
813 abdb293f Chrysostomos Nanakos
    # look for subdirs
814 abdb293f Chrysostomos Nanakos
    # $VERBOSE_ECHO "Looking for subdirs in `pwd`"
815 abdb293f Chrysostomos Nanakos
    _det_config_subdirs="`grep AC_CONFIG_SUBDIRS $_configure | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ 	]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
816 abdb293f Chrysostomos Nanakos
    CHECK_DIRS=""
817 abdb293f Chrysostomos Nanakos
    for dir in $_det_config_subdirs ; do
818 abdb293f Chrysostomos Nanakos
	if test -d "`pwd`/$dir" ; then
819 abdb293f Chrysostomos Nanakos
	    CHECK_DIRS="$CHECK_DIRS \"`pwd`/$dir\""
820 abdb293f Chrysostomos Nanakos
	fi
821 abdb293f Chrysostomos Nanakos
    done
822 abdb293f Chrysostomos Nanakos
823 abdb293f Chrysostomos Nanakos
    # process subdirs
824 abdb293f Chrysostomos Nanakos
    if [ ! "x$CHECK_DIRS" = "x" ] ; then
825 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Recursively scanning the following directories:"
826 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "  $CHECK_DIRS"
827 abdb293f Chrysostomos Nanakos
	for dir in $CHECK_DIRS ; do
828 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "Protecting files from automake in $dir"
829 abdb293f Chrysostomos Nanakos
	    cd "$START_PATH"
830 abdb293f Chrysostomos Nanakos
	    eval "cd $dir"
831 abdb293f Chrysostomos Nanakos
832 abdb293f Chrysostomos Nanakos
	    # recursively git 'r done
833 abdb293f Chrysostomos Nanakos
	    recursive_protect
834 abdb293f Chrysostomos Nanakos
	done
835 abdb293f Chrysostomos Nanakos
    fi
836 abdb293f Chrysostomos Nanakos
} # end of recursive_protect
837 abdb293f Chrysostomos Nanakos
838 abdb293f Chrysostomos Nanakos
839 abdb293f Chrysostomos Nanakos
#############################
840 abdb293f Chrysostomos Nanakos
# RESTORE_CLOBBERED FUNCION #
841 abdb293f Chrysostomos Nanakos
#############################
842 abdb293f Chrysostomos Nanakos
restore_clobbered ( ) {
843 abdb293f Chrysostomos Nanakos
844 abdb293f Chrysostomos Nanakos
    # The automake (and autoreconf by extension) -f/--force-missing
845 abdb293f Chrysostomos Nanakos
    # option may overwrite COPYING and INSTALL even if they do exist.
846 abdb293f Chrysostomos Nanakos
    # Here we restore the files if necessary.
847 abdb293f Chrysostomos Nanakos
848 abdb293f Chrysostomos Nanakos
    spacer=no
849 abdb293f Chrysostomos Nanakos
850 abdb293f Chrysostomos Nanakos
    for file in COPYING INSTALL ; do
851 abdb293f Chrysostomos Nanakos
	if test -f ${file}.$$.protect_from_automake.backup ; then
852 abdb293f Chrysostomos Nanakos
	    if test -f ${file} ; then
853 abdb293f Chrysostomos Nanakos
	    # compare entire content, restore if needed
854 abdb293f Chrysostomos Nanakos
	    if test "x`cat ${file}`" != "x`cat ${file}.$$.protect_from_automake.backup`" ; then
855 abdb293f Chrysostomos Nanakos
		if test "x$spacer" = "xno" ; then
856 abdb293f Chrysostomos Nanakos
		    $VERBOSE_ECHO
857 abdb293f Chrysostomos Nanakos
		    spacer=yes
858 abdb293f Chrysostomos Nanakos
		fi
859 abdb293f Chrysostomos Nanakos
		# restore the backup
860 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "Restoring ${file} from backup (automake -f likely clobbered it)"
861 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "rm -f ${file}"
862 abdb293f Chrysostomos Nanakos
		rm -f ${file}
863 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "mv ${file}.$$.protect_from_automake.backup ${file}"
864 abdb293f Chrysostomos Nanakos
		mv ${file}.$$.protect_from_automake.backup ${file}
865 abdb293f Chrysostomos Nanakos
	    fi # check contents
866 abdb293f Chrysostomos Nanakos
	    elif test -f ${file}.$$.protect_from_automake.backup ; then
867 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "mv ${file}.$$.protect_from_automake.backup ${file}"
868 abdb293f Chrysostomos Nanakos
		mv ${file}.$$.protect_from_automake.backup ${file}
869 abdb293f Chrysostomos Nanakos
	    fi # -f ${file}
870 abdb293f Chrysostomos Nanakos
	
871 abdb293f Chrysostomos Nanakos
	    # just in case
872 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "rm -f ${file}.$$.protect_from_automake.backup"
873 abdb293f Chrysostomos Nanakos
	    rm -f ${file}.$$.protect_from_automake.backup
874 abdb293f Chrysostomos Nanakos
	fi # -f ${file}.$$.protect_from_automake.backup
875 abdb293f Chrysostomos Nanakos
    done
876 abdb293f Chrysostomos Nanakos
877 abdb293f Chrysostomos Nanakos
    CONFIGURE="`locate_configure_template`"
878 abdb293f Chrysostomos Nanakos
    if [ "x$CONFIGURE" = "x" ] ; then
879 abdb293f Chrysostomos Nanakos
	return
880 abdb293f Chrysostomos Nanakos
    fi
881 abdb293f Chrysostomos Nanakos
882 abdb293f Chrysostomos Nanakos
    _aux_dir="`grep AC_CONFIG_AUX_DIR $CONFIGURE | grep -v '.*#.*AC_CONFIG_AUX_DIR' | tail -${TAIL_N}1 | sed 's/^[ 	]*AC_CONFIG_AUX_DIR(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
883 abdb293f Chrysostomos Nanakos
    if test ! -d "$_aux_dir" ; then
884 abdb293f Chrysostomos Nanakos
	_aux_dir=.
885 abdb293f Chrysostomos Nanakos
    fi
886 abdb293f Chrysostomos Nanakos
887 abdb293f Chrysostomos Nanakos
    for file in config.guess config.sub ltmain.sh ; do
888 abdb293f Chrysostomos Nanakos
	if test -f "${_aux_dir}/${file}" ; then
889 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "rm -f \"${_aux_dir}/${file}.backup\""
890 abdb293f Chrysostomos Nanakos
	    rm -f "${_aux_dir}/${file}.backup"
891 abdb293f Chrysostomos Nanakos
	fi
892 abdb293f Chrysostomos Nanakos
    done
893 abdb293f Chrysostomos Nanakos
} # end of restore_clobbered
894 abdb293f Chrysostomos Nanakos
895 abdb293f Chrysostomos Nanakos
896 abdb293f Chrysostomos Nanakos
##############################
897 abdb293f Chrysostomos Nanakos
# RECURSIVE_RESTORE FUNCTION #
898 abdb293f Chrysostomos Nanakos
##############################
899 abdb293f Chrysostomos Nanakos
recursive_restore ( ) {
900 abdb293f Chrysostomos Nanakos
901 abdb293f Chrysostomos Nanakos
    # restore COPYING and INSTALL from backup if they were clobbered
902 abdb293f Chrysostomos Nanakos
    # for each directory recursively.
903 abdb293f Chrysostomos Nanakos
904 abdb293f Chrysostomos Nanakos
    # git 'r undone
905 abdb293f Chrysostomos Nanakos
    restore_clobbered
906 abdb293f Chrysostomos Nanakos
907 abdb293f Chrysostomos Nanakos
    # find configure template
908 abdb293f Chrysostomos Nanakos
    _configure="`locate_configure_template`"
909 abdb293f Chrysostomos Nanakos
    if [ "x$_configure" = "x" ] ; then
910 abdb293f Chrysostomos Nanakos
	return
911 abdb293f Chrysostomos Nanakos
    fi
912 abdb293f Chrysostomos Nanakos
913 abdb293f Chrysostomos Nanakos
    # look for subdirs
914 abdb293f Chrysostomos Nanakos
    _det_config_subdirs="`grep AC_CONFIG_SUBDIRS $_configure | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ 	]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
915 abdb293f Chrysostomos Nanakos
    CHECK_DIRS=""
916 abdb293f Chrysostomos Nanakos
    for dir in $_det_config_subdirs ; do
917 abdb293f Chrysostomos Nanakos
	if test -d "`pwd`/$dir" ; then
918 abdb293f Chrysostomos Nanakos
	    CHECK_DIRS="$CHECK_DIRS \"`pwd`/$dir\""
919 abdb293f Chrysostomos Nanakos
	fi
920 abdb293f Chrysostomos Nanakos
    done
921 abdb293f Chrysostomos Nanakos
922 abdb293f Chrysostomos Nanakos
    # process subdirs
923 abdb293f Chrysostomos Nanakos
    if [ ! "x$CHECK_DIRS" = "x" ] ; then
924 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Recursively scanning the following directories:"
925 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "  $CHECK_DIRS"
926 abdb293f Chrysostomos Nanakos
	for dir in $CHECK_DIRS ; do
927 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "Checking files for automake damage in $dir"
928 abdb293f Chrysostomos Nanakos
	    cd "$START_PATH"
929 abdb293f Chrysostomos Nanakos
	    eval "cd $dir"
930 abdb293f Chrysostomos Nanakos
931 abdb293f Chrysostomos Nanakos
	    # recursively git 'r undone
932 abdb293f Chrysostomos Nanakos
	    recursive_restore
933 abdb293f Chrysostomos Nanakos
	done
934 abdb293f Chrysostomos Nanakos
    fi
935 abdb293f Chrysostomos Nanakos
} # end of recursive_restore
936 abdb293f Chrysostomos Nanakos
937 abdb293f Chrysostomos Nanakos
938 abdb293f Chrysostomos Nanakos
#######################
939 abdb293f Chrysostomos Nanakos
# INITIALIZE FUNCTION #
940 abdb293f Chrysostomos Nanakos
#######################
941 abdb293f Chrysostomos Nanakos
initialize ( ) {
942 abdb293f Chrysostomos Nanakos
943 abdb293f Chrysostomos Nanakos
    # this routine performs a variety of directory-specific
944 abdb293f Chrysostomos Nanakos
    # initializations.  some are sanity checks, some are preventive,
945 abdb293f Chrysostomos Nanakos
    # and some are necessary setup detection.
946 abdb293f Chrysostomos Nanakos
    #
947 abdb293f Chrysostomos Nanakos
    # this function sets:
948 abdb293f Chrysostomos Nanakos
    #   CONFIGURE
949 abdb293f Chrysostomos Nanakos
    #   SEARCH_DIRS
950 abdb293f Chrysostomos Nanakos
    #   CONFIG_SUBDIRS
951 abdb293f Chrysostomos Nanakos
952 abdb293f Chrysostomos Nanakos
    ##################################
953 abdb293f Chrysostomos Nanakos
    # check for a configure template #
954 abdb293f Chrysostomos Nanakos
    ##################################
955 abdb293f Chrysostomos Nanakos
    CONFIGURE="`locate_configure_template`"
956 abdb293f Chrysostomos Nanakos
    if [ "x$CONFIGURE" = "x" ] ; then
957 abdb293f Chrysostomos Nanakos
	$ECHO
958 abdb293f Chrysostomos Nanakos
	$ECHO "A configure.ac or configure.in file could not be located implying"
959 abdb293f Chrysostomos Nanakos
	$ECHO "that the GNU Build System is at least not used in this directory.  In"
960 abdb293f Chrysostomos Nanakos
	$ECHO "any case, there is nothing to do here without one of those files."
961 abdb293f Chrysostomos Nanakos
	$ECHO
962 abdb293f Chrysostomos Nanakos
	$ECHO "ERROR: No configure.in or configure.ac file found in `pwd`"
963 abdb293f Chrysostomos Nanakos
	exit 1
964 abdb293f Chrysostomos Nanakos
    fi
965 abdb293f Chrysostomos Nanakos
966 abdb293f Chrysostomos Nanakos
    #####################
967 abdb293f Chrysostomos Nanakos
    # detect an aux dir #
968 abdb293f Chrysostomos Nanakos
    #####################
969 abdb293f Chrysostomos Nanakos
    _aux_dir="`grep AC_CONFIG_AUX_DIR $CONFIGURE | grep -v '.*#.*AC_CONFIG_AUX_DIR' | tail -${TAIL_N}1 | sed 's/^[ 	]*AC_CONFIG_AUX_DIR(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
970 abdb293f Chrysostomos Nanakos
    if test ! -d "$_aux_dir" ; then
971 abdb293f Chrysostomos Nanakos
	_aux_dir=.
972 abdb293f Chrysostomos Nanakos
    else
973 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Detected auxillary directory: $_aux_dir"
974 abdb293f Chrysostomos Nanakos
    fi
975 abdb293f Chrysostomos Nanakos
976 abdb293f Chrysostomos Nanakos
    ################################
977 abdb293f Chrysostomos Nanakos
    # detect a recursive configure #
978 abdb293f Chrysostomos Nanakos
    ################################
979 abdb293f Chrysostomos Nanakos
    CONFIG_SUBDIRS=""
980 abdb293f Chrysostomos Nanakos
    _det_config_subdirs="`grep AC_CONFIG_SUBDIRS $CONFIGURE | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ 	]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
981 abdb293f Chrysostomos Nanakos
    for dir in $_det_config_subdirs ; do
982 abdb293f Chrysostomos Nanakos
	if test -d "`pwd`/$dir" ; then
983 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "Detected recursive configure directory: `pwd`/$dir"
984 abdb293f Chrysostomos Nanakos
	    CONFIG_SUBDIRS="$CONFIG_SUBDIRS `pwd`/$dir"
985 abdb293f Chrysostomos Nanakos
	fi
986 abdb293f Chrysostomos Nanakos
    done
987 abdb293f Chrysostomos Nanakos
988 abdb293f Chrysostomos Nanakos
    ###########################################################
989 abdb293f Chrysostomos Nanakos
    # make sure certain required files exist for GNU projects #
990 abdb293f Chrysostomos Nanakos
    ###########################################################
991 abdb293f Chrysostomos Nanakos
    _marker_found=""
992 abdb293f Chrysostomos Nanakos
    _marker_found_message_intro='Detected non-GNU marker "'
993 abdb293f Chrysostomos Nanakos
    _marker_found_message_mid='" in '
994 abdb293f Chrysostomos Nanakos
    for marker in foreign cygnus ; do
995 abdb293f Chrysostomos Nanakos
	_marker_found_message=${_marker_found_message_intro}${marker}${_marker_found_message_mid}
996 abdb293f Chrysostomos Nanakos
	_marker_found="`grep 'AM_INIT_AUTOMAKE.*'${marker} $CONFIGURE`"
997 abdb293f Chrysostomos Nanakos
	if [ ! "x$_marker_found" = "x" ] ; then
998 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "${_marker_found_message}`basename \"$CONFIGURE\"`"
999 abdb293f Chrysostomos Nanakos
	    break
1000 abdb293f Chrysostomos Nanakos
	fi
1001 abdb293f Chrysostomos Nanakos
	if test -f "`dirname \"$CONFIGURE\"/Makefile.am`" ; then
1002 abdb293f Chrysostomos Nanakos
	    _marker_found="`grep 'AUTOMAKE_OPTIONS.*'${marker} Makefile.am`"
1003 abdb293f Chrysostomos Nanakos
	    if [ ! "x$_marker_found" = "x" ] ; then
1004 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "${_marker_found_message}Makefile.am"
1005 abdb293f Chrysostomos Nanakos
		break
1006 abdb293f Chrysostomos Nanakos
	    fi
1007 abdb293f Chrysostomos Nanakos
	fi
1008 abdb293f Chrysostomos Nanakos
    done
1009 abdb293f Chrysostomos Nanakos
    if [ "x${_marker_found}" = "x" ] ; then
1010 abdb293f Chrysostomos Nanakos
	_suggest_foreign=no
1011 abdb293f Chrysostomos Nanakos
	for file in AUTHORS COPYING ChangeLog INSTALL NEWS README ; do
1012 abdb293f Chrysostomos Nanakos
	    if [ ! -f $file ] ; then
1013 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "Touching ${file} since it does not exist"
1014 abdb293f Chrysostomos Nanakos
		_suggest_foreign=yes
1015 abdb293f Chrysostomos Nanakos
		touch $file
1016 abdb293f Chrysostomos Nanakos
	    fi
1017 abdb293f Chrysostomos Nanakos
	done
1018 abdb293f Chrysostomos Nanakos
1019 abdb293f Chrysostomos Nanakos
	if [ "x${_suggest_foreign}" = "xyes" ] ; then
1020 abdb293f Chrysostomos Nanakos
	    $ECHO
1021 abdb293f Chrysostomos Nanakos
	    $ECHO "Warning: Several files expected of projects that conform to the GNU"
1022 abdb293f Chrysostomos Nanakos
	    $ECHO "coding standards were not found.  The files were automatically added"
1023 abdb293f Chrysostomos Nanakos
	    $ECHO "for you since you do not have a 'foreign' declaration specified."
1024 abdb293f Chrysostomos Nanakos
	    $ECHO
1025 abdb293f Chrysostomos Nanakos
	    $ECHO "Considered adding 'foreign' to AM_INIT_AUTOMAKE in `basename \"$CONFIGURE\"`"
1026 abdb293f Chrysostomos Nanakos
	    if test -f "`dirname \"$CONFIGURE\"/Makefile.am`" ; then
1027 abdb293f Chrysostomos Nanakos
		$ECHO "or to AUTOMAKE_OPTIONS in your top-level Makefile.am file."
1028 abdb293f Chrysostomos Nanakos
	    fi
1029 abdb293f Chrysostomos Nanakos
	    $ECHO
1030 abdb293f Chrysostomos Nanakos
	fi
1031 abdb293f Chrysostomos Nanakos
    fi
1032 abdb293f Chrysostomos Nanakos
1033 abdb293f Chrysostomos Nanakos
    ##################################################
1034 abdb293f Chrysostomos Nanakos
    # make sure certain generated files do not exist #
1035 abdb293f Chrysostomos Nanakos
    ##################################################
1036 abdb293f Chrysostomos Nanakos
    for file in config.guess config.sub ltmain.sh ; do
1037 abdb293f Chrysostomos Nanakos
	if test -f "${_aux_dir}/${file}" ; then
1038 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "mv -f \"${_aux_dir}/${file}\" \"${_aux_dir}/${file}.backup\""
1039 abdb293f Chrysostomos Nanakos
	    mv -f "${_aux_dir}/${file}" "${_aux_dir}/${file}.backup"
1040 abdb293f Chrysostomos Nanakos
	fi
1041 abdb293f Chrysostomos Nanakos
    done
1042 abdb293f Chrysostomos Nanakos
1043 abdb293f Chrysostomos Nanakos
    ############################
1044 abdb293f Chrysostomos Nanakos
    # search alternate m4 dirs #
1045 abdb293f Chrysostomos Nanakos
    ############################
1046 abdb293f Chrysostomos Nanakos
    SEARCH_DIRS=""
1047 abdb293f Chrysostomos Nanakos
    for dir in m4 ; do
1048 abdb293f Chrysostomos Nanakos
	if [ -d $dir ] ; then
1049 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "Found extra aclocal search directory: $dir"
1050 abdb293f Chrysostomos Nanakos
	    SEARCH_DIRS="$SEARCH_DIRS -I $dir"
1051 abdb293f Chrysostomos Nanakos
	fi
1052 abdb293f Chrysostomos Nanakos
    done
1053 abdb293f Chrysostomos Nanakos
1054 abdb293f Chrysostomos Nanakos
    ######################################
1055 abdb293f Chrysostomos Nanakos
    # remove any previous build products #
1056 abdb293f Chrysostomos Nanakos
    ######################################
1057 abdb293f Chrysostomos Nanakos
    if test -d autom4te.cache ; then
1058 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Found an autom4te.cache directory, deleting it"
1059 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "rm -rf autom4te.cache"
1060 abdb293f Chrysostomos Nanakos
	rm -rf autom4te.cache
1061 abdb293f Chrysostomos Nanakos
    fi
1062 abdb293f Chrysostomos Nanakos
# tcl/tk (and probably others) have a customized aclocal.m4, so can't delete it
1063 abdb293f Chrysostomos Nanakos
#     if test -f aclocal.m4 ; then
1064 abdb293f Chrysostomos Nanakos
# 	$VERBOSE_ECHO "Found an aclocal.m4 file, deleting it"
1065 abdb293f Chrysostomos Nanakos
# 	$VERBOSE_ECHO "rm -f aclocal.m4"
1066 abdb293f Chrysostomos Nanakos
# 	rm -f aclocal.m4
1067 abdb293f Chrysostomos Nanakos
#     fi
1068 abdb293f Chrysostomos Nanakos
1069 abdb293f Chrysostomos Nanakos
} # end of initialize()
1070 abdb293f Chrysostomos Nanakos
1071 abdb293f Chrysostomos Nanakos
1072 abdb293f Chrysostomos Nanakos
##############
1073 abdb293f Chrysostomos Nanakos
# initialize #
1074 abdb293f Chrysostomos Nanakos
##############
1075 abdb293f Chrysostomos Nanakos
1076 abdb293f Chrysostomos Nanakos
# stash path
1077 abdb293f Chrysostomos Nanakos
START_PATH="`pwd`"
1078 abdb293f Chrysostomos Nanakos
1079 abdb293f Chrysostomos Nanakos
# Before running autoreconf or manual steps, some prep detection work
1080 abdb293f Chrysostomos Nanakos
# is necessary or useful.  Only needs to occur once per directory, but
1081 abdb293f Chrysostomos Nanakos
# does need to traverse the entire subconfigure hierarchy to protect
1082 abdb293f Chrysostomos Nanakos
# files from being clobbered even by autoreconf.
1083 abdb293f Chrysostomos Nanakos
recursive_protect
1084 abdb293f Chrysostomos Nanakos
1085 abdb293f Chrysostomos Nanakos
# start from where we started
1086 abdb293f Chrysostomos Nanakos
cd "$START_PATH"
1087 abdb293f Chrysostomos Nanakos
1088 abdb293f Chrysostomos Nanakos
# get ready to process
1089 abdb293f Chrysostomos Nanakos
initialize
1090 abdb293f Chrysostomos Nanakos
1091 abdb293f Chrysostomos Nanakos
1092 abdb293f Chrysostomos Nanakos
#########################################
1093 abdb293f Chrysostomos Nanakos
# DOWNLOAD_GNULIB_CONFIG_GUESS FUNCTION #
1094 abdb293f Chrysostomos Nanakos
#########################################
1095 abdb293f Chrysostomos Nanakos
1096 abdb293f Chrysostomos Nanakos
# TODO - should make sure wget/curl exist and/or work before trying to
1097 abdb293f Chrysostomos Nanakos
# use them.
1098 abdb293f Chrysostomos Nanakos
1099 abdb293f Chrysostomos Nanakos
download_gnulib_config_guess () {
1100 abdb293f Chrysostomos Nanakos
    # abuse gitweb to download gnulib's latest config.guess via HTTP
1101 abdb293f Chrysostomos Nanakos
    config_guess_temp="config.guess.$$.download"
1102 abdb293f Chrysostomos Nanakos
    ret=1
1103 abdb293f Chrysostomos Nanakos
    for __cmd in wget curl fetch ; do
1104 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Checking for command ${__cmd}"
1105 abdb293f Chrysostomos Nanakos
	${__cmd} --version > /dev/null 2>&1
1106 abdb293f Chrysostomos Nanakos
	ret=$?
1107 abdb293f Chrysostomos Nanakos
	if [ ! $ret = 0 ] ; then
1108 abdb293f Chrysostomos Nanakos
	    continue
1109 abdb293f Chrysostomos Nanakos
        fi
1110 abdb293f Chrysostomos Nanakos
1111 abdb293f Chrysostomos Nanakos
	__cmd_version=`${__cmd} --version | head -n 1 | sed -e 's/^[^0-9]\+//' -e 's/ .*//'`
1112 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Found ${__cmd} ${__cmd_version}"
1113 abdb293f Chrysostomos Nanakos
1114 abdb293f Chrysostomos Nanakos
	opts=""
1115 abdb293f Chrysostomos Nanakos
	case ${__cmd} in
1116 abdb293f Chrysostomos Nanakos
	    wget)
1117 abdb293f Chrysostomos Nanakos
		opts="-O" 
1118 abdb293f Chrysostomos Nanakos
		;;
1119 abdb293f Chrysostomos Nanakos
	    curl)
1120 abdb293f Chrysostomos Nanakos
		opts="-o"
1121 abdb293f Chrysostomos Nanakos
		;;
1122 abdb293f Chrysostomos Nanakos
	    fetch)
1123 abdb293f Chrysostomos Nanakos
		opts="-t 5 -f"
1124 abdb293f Chrysostomos Nanakos
		;;
1125 abdb293f Chrysostomos Nanakos
	esac
1126 abdb293f Chrysostomos Nanakos
1127 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Running $__cmd \"${CONFIG_GUESS_URL}\" $opts \"${config_guess_temp}\""
1128 abdb293f Chrysostomos Nanakos
	eval "$__cmd \"${CONFIG_GUESS_URL}\" $opts \"${config_guess_temp}\"" > /dev/null 2>&1
1129 abdb293f Chrysostomos Nanakos
	if [ $? = 0 ] ; then
1130 abdb293f Chrysostomos Nanakos
	    mv -f "${config_guess_temp}" ${_aux_dir}/config.guess
1131 abdb293f Chrysostomos Nanakos
	    ret=0
1132 abdb293f Chrysostomos Nanakos
	    break
1133 abdb293f Chrysostomos Nanakos
	fi
1134 abdb293f Chrysostomos Nanakos
    done
1135 abdb293f Chrysostomos Nanakos
1136 abdb293f Chrysostomos Nanakos
    if [ ! $ret = 0 ] ; then
1137 abdb293f Chrysostomos Nanakos
	$ECHO "Warning: config.guess download failed from: $CONFIG_GUESS_URL"
1138 abdb293f Chrysostomos Nanakos
	rm -f "${config_guess_temp}"
1139 abdb293f Chrysostomos Nanakos
    fi
1140 abdb293f Chrysostomos Nanakos
}
1141 abdb293f Chrysostomos Nanakos
1142 abdb293f Chrysostomos Nanakos
1143 abdb293f Chrysostomos Nanakos
##############################
1144 abdb293f Chrysostomos Nanakos
# LIBTOOLIZE_NEEDED FUNCTION #
1145 abdb293f Chrysostomos Nanakos
##############################
1146 abdb293f Chrysostomos Nanakos
libtoolize_needed () {
1147 abdb293f Chrysostomos Nanakos
    ret=1 # means no, don't need libtoolize
1148 abdb293f Chrysostomos Nanakos
    for feature in AC_PROG_LIBTOOL AM_PROG_LIBTOOL LT_INIT ; do
1149 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1150 abdb293f Chrysostomos Nanakos
	found="`grep \"^$feature.*\" $CONFIGURE`"
1151 abdb293f Chrysostomos Nanakos
	if [ ! "x$found" = "x" ] ; then
1152 abdb293f Chrysostomos Nanakos
	    ret=0 # means yes, need to run libtoolize
1153 abdb293f Chrysostomos Nanakos
	    break
1154 abdb293f Chrysostomos Nanakos
	fi
1155 abdb293f Chrysostomos Nanakos
    done
1156 abdb293f Chrysostomos Nanakos
    return ${ret}
1157 abdb293f Chrysostomos Nanakos
}
1158 abdb293f Chrysostomos Nanakos
1159 abdb293f Chrysostomos Nanakos
1160 abdb293f Chrysostomos Nanakos
1161 abdb293f Chrysostomos Nanakos
############################################
1162 abdb293f Chrysostomos Nanakos
# prepare build via autoreconf or manually #
1163 abdb293f Chrysostomos Nanakos
############################################
1164 abdb293f Chrysostomos Nanakos
reconfigure_manually=no
1165 abdb293f Chrysostomos Nanakos
if [ "x$HAVE_AUTORECONF" = "xyes" ] ; then
1166 abdb293f Chrysostomos Nanakos
    $ECHO
1167 abdb293f Chrysostomos Nanakos
    $ECHO $ECHO_N "Automatically preparing build ... $ECHO_C"
1168 abdb293f Chrysostomos Nanakos
1169 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "$AUTORECONF $SEARCH_DIRS $AUTORECONF_OPTIONS"
1170 abdb293f Chrysostomos Nanakos
    autoreconf_output="`$AUTORECONF $SEARCH_DIRS $AUTORECONF_OPTIONS 2>&1`"
1171 abdb293f Chrysostomos Nanakos
    ret=$?
1172 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "$autoreconf_output"
1173 abdb293f Chrysostomos Nanakos
1174 abdb293f Chrysostomos Nanakos
    if [ ! $ret = 0 ] ; then
1175 abdb293f Chrysostomos Nanakos
	if [ "x$HAVE_ALT_LIBTOOLIZE" = "xyes" ] ; then
1176 abdb293f Chrysostomos Nanakos
	    if [ ! "x`echo \"$autoreconf_output\" | grep libtoolize | grep \"No such file or directory\"`" = "x" ] ; then
1177 abdb293f Chrysostomos Nanakos
		$ECHO
1178 abdb293f Chrysostomos Nanakos
		$ECHO "Warning: autoreconf failed but due to what is usually a common libtool"
1179 abdb293f Chrysostomos Nanakos
		$ECHO "misconfiguration issue.  This problem is encountered on systems that"
1180 abdb293f Chrysostomos Nanakos
		$ECHO "have installed libtoolize under a different name without providing a"
1181 abdb293f Chrysostomos Nanakos
		$ECHO "symbolic link or without setting the LIBTOOLIZE environment variable."
1182 abdb293f Chrysostomos Nanakos
		$ECHO
1183 abdb293f Chrysostomos Nanakos
		$ECHO "Restarting the preparation steps with LIBTOOLIZE set to $LIBTOOLIZE"
1184 abdb293f Chrysostomos Nanakos
1185 abdb293f Chrysostomos Nanakos
		export LIBTOOLIZE
1186 abdb293f Chrysostomos Nanakos
		RUN_RECURSIVE=no
1187 abdb293f Chrysostomos Nanakos
		export RUN_RECURSIVE
1188 abdb293f Chrysostomos Nanakos
		untrap_abnormal
1189 abdb293f Chrysostomos Nanakos
1190 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO sh $AUTOGEN_SH "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1191 abdb293f Chrysostomos Nanakos
		sh "$AUTOGEN_SH" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1192 abdb293f Chrysostomos Nanakos
		exit $?
1193 abdb293f Chrysostomos Nanakos
	    fi
1194 abdb293f Chrysostomos Nanakos
	fi
1195 abdb293f Chrysostomos Nanakos
1196 abdb293f Chrysostomos Nanakos
	$ECHO "Warning: $AUTORECONF failed"
1197 abdb293f Chrysostomos Nanakos
1198 abdb293f Chrysostomos Nanakos
	if test -f ltmain.sh ; then
1199 abdb293f Chrysostomos Nanakos
	    $ECHO "libtoolize being run by autoreconf is not creating ltmain.sh in the auxillary directory like it should"
1200 abdb293f Chrysostomos Nanakos
	fi
1201 abdb293f Chrysostomos Nanakos
1202 abdb293f Chrysostomos Nanakos
	$ECHO "Attempting to run the preparation steps individually"
1203 abdb293f Chrysostomos Nanakos
	reconfigure_manually=yes
1204 abdb293f Chrysostomos Nanakos
    else
1205 abdb293f Chrysostomos Nanakos
	if [ "x$DOWNLOAD" = "xyes" ] ; then
1206 abdb293f Chrysostomos Nanakos
	    if libtoolize_needed ; then
1207 abdb293f Chrysostomos Nanakos
		download_gnulib_config_guess
1208 abdb293f Chrysostomos Nanakos
	    fi
1209 abdb293f Chrysostomos Nanakos
	fi
1210 abdb293f Chrysostomos Nanakos
    fi
1211 abdb293f Chrysostomos Nanakos
else
1212 abdb293f Chrysostomos Nanakos
    reconfigure_manually=yes
1213 abdb293f Chrysostomos Nanakos
fi
1214 abdb293f Chrysostomos Nanakos
1215 abdb293f Chrysostomos Nanakos
1216 abdb293f Chrysostomos Nanakos
############################
1217 abdb293f Chrysostomos Nanakos
# LIBTOOL_FAILURE FUNCTION #
1218 abdb293f Chrysostomos Nanakos
############################
1219 abdb293f Chrysostomos Nanakos
libtool_failure ( ) {
1220 abdb293f Chrysostomos Nanakos
1221 abdb293f Chrysostomos Nanakos
    # libtool is rather error-prone in comparison to the other
1222 abdb293f Chrysostomos Nanakos
    # autotools and this routine attempts to compensate for some
1223 abdb293f Chrysostomos Nanakos
    # common failures.  the output after a libtoolize failure is
1224 abdb293f Chrysostomos Nanakos
    # parsed for an error related to AC_PROG_LIBTOOL and if found, we
1225 abdb293f Chrysostomos Nanakos
    # attempt to inject a project-provided libtool.m4 file.
1226 abdb293f Chrysostomos Nanakos
1227 abdb293f Chrysostomos Nanakos
    _autoconf_output="$1"
1228 abdb293f Chrysostomos Nanakos
1229 abdb293f Chrysostomos Nanakos
    if [ "x$RUN_RECURSIVE" = "xno" ] ; then
1230 abdb293f Chrysostomos Nanakos
	# we already tried the libtool.m4, don't try again
1231 abdb293f Chrysostomos Nanakos
	return 1
1232 abdb293f Chrysostomos Nanakos
    fi
1233 abdb293f Chrysostomos Nanakos
1234 abdb293f Chrysostomos Nanakos
    if test -f "$LIBTOOL_M4" ; then
1235 abdb293f Chrysostomos Nanakos
	found_libtool="`$ECHO $_autoconf_output | grep AC_PROG_LIBTOOL`"
1236 abdb293f Chrysostomos Nanakos
	if test ! "x$found_libtool" = "x" ; then
1237 abdb293f Chrysostomos Nanakos
	    if test -f acinclude.m4 ; then
1238 abdb293f Chrysostomos Nanakos
		rm -f acinclude.m4.$$.backup
1239 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "cat acinclude.m4 > acinclude.m4.$$.backup"
1240 abdb293f Chrysostomos Nanakos
		cat acinclude.m4 > acinclude.m4.$$.backup
1241 abdb293f Chrysostomos Nanakos
	    fi
1242 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "cat \"$LIBTOOL_M4\" >> acinclude.m4"
1243 abdb293f Chrysostomos Nanakos
	    chmod u+w acinclude.m4
1244 abdb293f Chrysostomos Nanakos
	    cat "$LIBTOOL_M4" >> acinclude.m4
1245 abdb293f Chrysostomos Nanakos
1246 abdb293f Chrysostomos Nanakos
	    # don't keep doing this
1247 abdb293f Chrysostomos Nanakos
	    RUN_RECURSIVE=no
1248 abdb293f Chrysostomos Nanakos
	    export RUN_RECURSIVE
1249 abdb293f Chrysostomos Nanakos
	    untrap_abnormal
1250 abdb293f Chrysostomos Nanakos
1251 abdb293f Chrysostomos Nanakos
	    $ECHO
1252 abdb293f Chrysostomos Nanakos
	    $ECHO "Restarting the preparation steps with libtool macros in acinclude.m4"
1253 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO sh $AUTOGEN_SH "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1254 abdb293f Chrysostomos Nanakos
	    sh "$AUTOGEN_SH" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1255 abdb293f Chrysostomos Nanakos
	    exit $?
1256 abdb293f Chrysostomos Nanakos
	fi
1257 abdb293f Chrysostomos Nanakos
    fi
1258 abdb293f Chrysostomos Nanakos
}
1259 abdb293f Chrysostomos Nanakos
1260 abdb293f Chrysostomos Nanakos
1261 abdb293f Chrysostomos Nanakos
###########################
1262 abdb293f Chrysostomos Nanakos
# MANUAL_AUTOGEN FUNCTION #
1263 abdb293f Chrysostomos Nanakos
###########################
1264 abdb293f Chrysostomos Nanakos
manual_autogen ( ) {
1265 abdb293f Chrysostomos Nanakos
1266 abdb293f Chrysostomos Nanakos
    ##################################################
1267 abdb293f Chrysostomos Nanakos
    # Manual preparation steps taken are as follows: #
1268 abdb293f Chrysostomos Nanakos
    #   aclocal [-I m4]                              #
1269 abdb293f Chrysostomos Nanakos
    #   libtoolize --automake -c -f                  #
1270 abdb293f Chrysostomos Nanakos
    #   aclocal [-I m4]                              #
1271 abdb293f Chrysostomos Nanakos
    #   autoconf -f                                  #
1272 abdb293f Chrysostomos Nanakos
    #   autoheader                                   #
1273 abdb293f Chrysostomos Nanakos
    #   automake -a -c -f                            #
1274 abdb293f Chrysostomos Nanakos
    ##################################################
1275 abdb293f Chrysostomos Nanakos
1276 abdb293f Chrysostomos Nanakos
    ###########
1277 abdb293f Chrysostomos Nanakos
    # aclocal #
1278 abdb293f Chrysostomos Nanakos
    ###########
1279 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS"
1280 abdb293f Chrysostomos Nanakos
    aclocal_output="`$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS 2>&1`"
1281 abdb293f Chrysostomos Nanakos
    ret=$?
1282 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "$aclocal_output"
1283 abdb293f Chrysostomos Nanakos
    if [ ! $ret = 0 ] ; then $ECHO "ERROR: $ACLOCAL failed" && exit 2 ; fi
1284 abdb293f Chrysostomos Nanakos
1285 abdb293f Chrysostomos Nanakos
    ##############
1286 abdb293f Chrysostomos Nanakos
    # libtoolize #
1287 abdb293f Chrysostomos Nanakos
    ##############
1288 abdb293f Chrysostomos Nanakos
    if libtoolize_needed ; then
1289 abdb293f Chrysostomos Nanakos
	if [ "x$HAVE_LIBTOOLIZE" = "xyes" ] ; then
1290 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "$LIBTOOLIZE $LIBTOOLIZE_OPTIONS"
1291 abdb293f Chrysostomos Nanakos
	    libtoolize_output="`$LIBTOOLIZE $LIBTOOLIZE_OPTIONS 2>&1`"
1292 abdb293f Chrysostomos Nanakos
	    ret=$?
1293 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "$libtoolize_output"
1294 abdb293f Chrysostomos Nanakos
1295 abdb293f Chrysostomos Nanakos
	    if [ ! $ret = 0 ] ; then $ECHO "ERROR: $LIBTOOLIZE failed" && exit 2 ; fi
1296 abdb293f Chrysostomos Nanakos
	else
1297 abdb293f Chrysostomos Nanakos
	    if [ "x$HAVE_ALT_LIBTOOLIZE" = "xyes" ] ; then
1298 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "$LIBTOOLIZE $ALT_LIBTOOLIZE_OPTIONS"
1299 abdb293f Chrysostomos Nanakos
		libtoolize_output="`$LIBTOOLIZE $ALT_LIBTOOLIZE_OPTIONS 2>&1`"
1300 abdb293f Chrysostomos Nanakos
		ret=$?
1301 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "$libtoolize_output"
1302 abdb293f Chrysostomos Nanakos
1303 abdb293f Chrysostomos Nanakos
		if [ ! $ret = 0 ] ; then $ECHO "ERROR: $LIBTOOLIZE failed" && exit 2 ; fi
1304 abdb293f Chrysostomos Nanakos
	    fi
1305 abdb293f Chrysostomos Nanakos
	fi
1306 abdb293f Chrysostomos Nanakos
1307 abdb293f Chrysostomos Nanakos
	###########
1308 abdb293f Chrysostomos Nanakos
	# aclocal #
1309 abdb293f Chrysostomos Nanakos
	###########
1310 abdb293f Chrysostomos Nanakos
	# re-run again as instructed by libtoolize
1311 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS"
1312 abdb293f Chrysostomos Nanakos
	aclocal_output="`$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS 2>&1`"
1313 abdb293f Chrysostomos Nanakos
	ret=$?
1314 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$aclocal_output"
1315 abdb293f Chrysostomos Nanakos
1316 abdb293f Chrysostomos Nanakos
	# libtoolize might put ltmain.sh in the wrong place
1317 abdb293f Chrysostomos Nanakos
	if test -f ltmain.sh ; then
1318 abdb293f Chrysostomos Nanakos
	    if test ! -f "${_aux_dir}/ltmain.sh" ; then
1319 abdb293f Chrysostomos Nanakos
		$ECHO
1320 abdb293f Chrysostomos Nanakos
		$ECHO "Warning:  $LIBTOOLIZE is creating ltmain.sh in the wrong directory"
1321 abdb293f Chrysostomos Nanakos
		$ECHO
1322 abdb293f Chrysostomos Nanakos
		$ECHO "Fortunately, the problem can be worked around by simply copying the"
1323 abdb293f Chrysostomos Nanakos
		$ECHO "file to the appropriate location (${_aux_dir}/).  This has been done for you."
1324 abdb293f Chrysostomos Nanakos
		$ECHO
1325 abdb293f Chrysostomos Nanakos
		$VERBOSE_ECHO "cp -p ltmain.sh \"${_aux_dir}/ltmain.sh\""
1326 abdb293f Chrysostomos Nanakos
		cp -p ltmain.sh "${_aux_dir}/ltmain.sh"
1327 abdb293f Chrysostomos Nanakos
		$ECHO $ECHO_N "Continuing build preparation ... $ECHO_C"
1328 abdb293f Chrysostomos Nanakos
	    fi
1329 abdb293f Chrysostomos Nanakos
	fi # ltmain.sh
1330 abdb293f Chrysostomos Nanakos
1331 abdb293f Chrysostomos Nanakos
	if [ "x$DOWNLOAD" = "xyes" ] ; then
1332 abdb293f Chrysostomos Nanakos
	    download_gnulib_config_guess
1333 abdb293f Chrysostomos Nanakos
	fi
1334 abdb293f Chrysostomos Nanakos
    fi # libtoolize_needed
1335 abdb293f Chrysostomos Nanakos
1336 abdb293f Chrysostomos Nanakos
    ############
1337 abdb293f Chrysostomos Nanakos
    # autoconf #
1338 abdb293f Chrysostomos Nanakos
    ############
1339 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO
1340 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "$AUTOCONF $AUTOCONF_OPTIONS"
1341 abdb293f Chrysostomos Nanakos
    autoconf_output="`$AUTOCONF $AUTOCONF_OPTIONS 2>&1`"
1342 abdb293f Chrysostomos Nanakos
    ret=$?
1343 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "$autoconf_output"
1344 abdb293f Chrysostomos Nanakos
1345 abdb293f Chrysostomos Nanakos
    if [ ! $ret = 0 ] ; then
1346 abdb293f Chrysostomos Nanakos
	# retry without the -f and check for usage of macros that are too new
1347 abdb293f Chrysostomos Nanakos
	ac2_59_macros="AC_C_RESTRICT AC_INCLUDES_DEFAULT AC_LANG_ASSERT AC_LANG_WERROR AS_SET_CATFILE"
1348 abdb293f Chrysostomos Nanakos
	ac2_55_macros="AC_COMPILER_IFELSE AC_FUNC_MBRTOWC AC_HEADER_STDBOOL AC_LANG_CONFTEST AC_LANG_SOURCE AC_LANG_PROGRAM AC_LANG_CALL AC_LANG_FUNC_TRY_LINK AC_MSG_FAILURE AC_PREPROC_IFELSE"
1349 abdb293f Chrysostomos Nanakos
	ac2_54_macros="AC_C_BACKSLASH_A AC_CONFIG_LIBOBJ_DIR AC_GNU_SOURCE AC_PROG_EGREP AC_PROG_FGREP AC_REPLACE_FNMATCH AC_FUNC_FNMATCH_GNU AC_FUNC_REALLOC AC_TYPE_MBSTATE_T"
1350 abdb293f Chrysostomos Nanakos
1351 abdb293f Chrysostomos Nanakos
	macros_to_search=""
1352 abdb293f Chrysostomos Nanakos
	ac_major="`echo ${AUTOCONF_VERSION}. | cut -d. -f1 | sed 's/[^0-9]//g'`"
1353 abdb293f Chrysostomos Nanakos
	ac_minor="`echo ${AUTOCONF_VERSION}. | cut -d. -f2 | sed 's/[^0-9]//g'`"
1354 abdb293f Chrysostomos Nanakos
1355 abdb293f Chrysostomos Nanakos
	if [ $ac_major -lt 2 ] ; then
1356 abdb293f Chrysostomos Nanakos
	    macros_to_search="$ac2_59_macros $ac2_55_macros $ac2_54_macros"
1357 abdb293f Chrysostomos Nanakos
	else
1358 abdb293f Chrysostomos Nanakos
	    if [ $ac_minor -lt 54 ] ; then
1359 abdb293f Chrysostomos Nanakos
		macros_to_search="$ac2_59_macros $ac2_55_macros $ac2_54_macros"
1360 abdb293f Chrysostomos Nanakos
	    elif [ $ac_minor -lt 55 ] ; then
1361 abdb293f Chrysostomos Nanakos
		macros_to_search="$ac2_59_macros $ac2_55_macros"
1362 abdb293f Chrysostomos Nanakos
	    elif [ $ac_minor -lt 59 ] ; then
1363 abdb293f Chrysostomos Nanakos
		macros_to_search="$ac2_59_macros"
1364 abdb293f Chrysostomos Nanakos
	    fi
1365 abdb293f Chrysostomos Nanakos
	fi
1366 abdb293f Chrysostomos Nanakos
1367 abdb293f Chrysostomos Nanakos
	configure_ac_macros=__none__
1368 abdb293f Chrysostomos Nanakos
	for feature in $macros_to_search ; do
1369 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1370 abdb293f Chrysostomos Nanakos
	    found="`grep \"^$feature.*\" $CONFIGURE`"
1371 abdb293f Chrysostomos Nanakos
	    if [ ! "x$found" = "x" ] ; then
1372 abdb293f Chrysostomos Nanakos
		if [ "x$configure_ac_macros" = "x__none__" ] ; then
1373 abdb293f Chrysostomos Nanakos
		    configure_ac_macros="$feature"
1374 abdb293f Chrysostomos Nanakos
		else
1375 abdb293f Chrysostomos Nanakos
		    configure_ac_macros="$feature $configure_ac_macros"
1376 abdb293f Chrysostomos Nanakos
		fi
1377 abdb293f Chrysostomos Nanakos
	    fi
1378 abdb293f Chrysostomos Nanakos
	done
1379 abdb293f Chrysostomos Nanakos
	if [ ! "x$configure_ac_macros" = "x__none__" ] ; then
1380 abdb293f Chrysostomos Nanakos
	    $ECHO
1381 abdb293f Chrysostomos Nanakos
	    $ECHO "Warning:  Unsupported macros were found in $CONFIGURE"
1382 abdb293f Chrysostomos Nanakos
	    $ECHO
1383 abdb293f Chrysostomos Nanakos
	    $ECHO "The `basename \"$CONFIGURE\"` file was scanned in order to determine if any"
1384 abdb293f Chrysostomos Nanakos
	    $ECHO "unsupported macros are used that exceed the minimum version"
1385 abdb293f Chrysostomos Nanakos
	    $ECHO "settings specified within this file.  As such, the following macros"
1386 abdb293f Chrysostomos Nanakos
	    $ECHO "should be removed from configure.ac or the version numbers in this"
1387 abdb293f Chrysostomos Nanakos
	    $ECHO "file should be increased:"
1388 abdb293f Chrysostomos Nanakos
	    $ECHO
1389 abdb293f Chrysostomos Nanakos
	    $ECHO "$configure_ac_macros"
1390 abdb293f Chrysostomos Nanakos
	    $ECHO
1391 abdb293f Chrysostomos Nanakos
	    $ECHO $ECHO_N "Ignorantly continuing build preparation ... $ECHO_C"
1392 abdb293f Chrysostomos Nanakos
	fi
1393 abdb293f Chrysostomos Nanakos
1394 abdb293f Chrysostomos Nanakos
	###################
1395 abdb293f Chrysostomos Nanakos
	# autoconf, retry #
1396 abdb293f Chrysostomos Nanakos
	###################
1397 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO
1398 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$AUTOCONF"
1399 abdb293f Chrysostomos Nanakos
	autoconf_output="`$AUTOCONF 2>&1`"
1400 abdb293f Chrysostomos Nanakos
	ret=$?
1401 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$autoconf_output"
1402 abdb293f Chrysostomos Nanakos
1403 abdb293f Chrysostomos Nanakos
	if [ ! $ret = 0 ] ; then
1404 abdb293f Chrysostomos Nanakos
	    # test if libtool is busted
1405 abdb293f Chrysostomos Nanakos
	    libtool_failure "$autoconf_output"
1406 abdb293f Chrysostomos Nanakos
1407 abdb293f Chrysostomos Nanakos
	    # let the user know what went wrong
1408 abdb293f Chrysostomos Nanakos
	    cat <<EOF
1409 abdb293f Chrysostomos Nanakos
$autoconf_output
1410 abdb293f Chrysostomos Nanakos
EOF
1411 abdb293f Chrysostomos Nanakos
	    $ECHO "ERROR: $AUTOCONF failed"
1412 abdb293f Chrysostomos Nanakos
	    exit 2
1413 abdb293f Chrysostomos Nanakos
	else
1414 abdb293f Chrysostomos Nanakos
	    # autoconf sans -f and possibly sans unsupported options succeed so warn verbosely
1415 abdb293f Chrysostomos Nanakos
	    $ECHO
1416 abdb293f Chrysostomos Nanakos
	    $ECHO "Warning: autoconf seems to have succeeded by removing the following options:"
1417 abdb293f Chrysostomos Nanakos
	    $ECHO "	AUTOCONF_OPTIONS=\"$AUTOCONF_OPTIONS\""
1418 abdb293f Chrysostomos Nanakos
	    $ECHO
1419 abdb293f Chrysostomos Nanakos
	    $ECHO "Removing those options should not be necessary and indicate some other"
1420 abdb293f Chrysostomos Nanakos
	    $ECHO "problem with the build system.  The build preparation is highly suspect"
1421 abdb293f Chrysostomos Nanakos
	    $ECHO "and may result in configuration or compilation errors.  Consider"
1422 abdb293f Chrysostomos Nanakos
	    if [ "x$VERBOSE_ECHO" = "x:" ] ; then
1423 abdb293f Chrysostomos Nanakos
		$ECHO "rerunning the build preparation with verbose output enabled."
1424 abdb293f Chrysostomos Nanakos
		$ECHO "	$AUTOGEN_SH --verbose"
1425 abdb293f Chrysostomos Nanakos
	    else
1426 abdb293f Chrysostomos Nanakos
		$ECHO "reviewing the minimum GNU Autotools version settings contained in"
1427 abdb293f Chrysostomos Nanakos
		$ECHO "this script along with the macros being used in your `basename \"$CONFIGURE\"` file."
1428 abdb293f Chrysostomos Nanakos
	    fi
1429 abdb293f Chrysostomos Nanakos
	    $ECHO
1430 abdb293f Chrysostomos Nanakos
	    $ECHO $ECHO_N "Continuing build preparation ... $ECHO_C"
1431 abdb293f Chrysostomos Nanakos
	fi # autoconf ret = 0
1432 abdb293f Chrysostomos Nanakos
    fi # autoconf ret = 0
1433 abdb293f Chrysostomos Nanakos
1434 abdb293f Chrysostomos Nanakos
    ##############
1435 abdb293f Chrysostomos Nanakos
    # autoheader #
1436 abdb293f Chrysostomos Nanakos
    ##############
1437 abdb293f Chrysostomos Nanakos
    need_autoheader=no
1438 abdb293f Chrysostomos Nanakos
    for feature in AM_CONFIG_HEADER AC_CONFIG_HEADER ; do
1439 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1440 abdb293f Chrysostomos Nanakos
	found="`grep \"^$feature.*\" $CONFIGURE`"
1441 abdb293f Chrysostomos Nanakos
	if [ ! "x$found" = "x" ] ; then
1442 abdb293f Chrysostomos Nanakos
	    need_autoheader=yes
1443 abdb293f Chrysostomos Nanakos
	    break
1444 abdb293f Chrysostomos Nanakos
	fi
1445 abdb293f Chrysostomos Nanakos
    done
1446 abdb293f Chrysostomos Nanakos
    if [ "x$need_autoheader" = "xyes" ] ; then
1447 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$AUTOHEADER $AUTOHEADER_OPTIONS"
1448 abdb293f Chrysostomos Nanakos
	autoheader_output="`$AUTOHEADER $AUTOHEADER_OPTIONS 2>&1`"
1449 abdb293f Chrysostomos Nanakos
	ret=$?
1450 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$autoheader_output"
1451 abdb293f Chrysostomos Nanakos
	if [ ! $ret = 0 ] ; then $ECHO "ERROR: $AUTOHEADER failed" && exit 2 ; fi
1452 abdb293f Chrysostomos Nanakos
    fi # need_autoheader
1453 abdb293f Chrysostomos Nanakos
1454 abdb293f Chrysostomos Nanakos
    ############
1455 abdb293f Chrysostomos Nanakos
    # automake #
1456 abdb293f Chrysostomos Nanakos
    ############
1457 abdb293f Chrysostomos Nanakos
    need_automake=no
1458 abdb293f Chrysostomos Nanakos
    for feature in AM_INIT_AUTOMAKE ; do
1459 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1460 abdb293f Chrysostomos Nanakos
	found="`grep \"^$feature.*\" $CONFIGURE`"
1461 abdb293f Chrysostomos Nanakos
	if [ ! "x$found" = "x" ] ; then
1462 abdb293f Chrysostomos Nanakos
	    need_automake=yes
1463 abdb293f Chrysostomos Nanakos
	    break
1464 abdb293f Chrysostomos Nanakos
	fi
1465 abdb293f Chrysostomos Nanakos
    done
1466 abdb293f Chrysostomos Nanakos
1467 abdb293f Chrysostomos Nanakos
    if [ "x$need_automake" = "xyes" ] ; then
1468 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$AUTOMAKE $AUTOMAKE_OPTIONS"
1469 abdb293f Chrysostomos Nanakos
	automake_output="`$AUTOMAKE $AUTOMAKE_OPTIONS 2>&1`"
1470 abdb293f Chrysostomos Nanakos
	ret=$?
1471 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "$automake_output"
1472 abdb293f Chrysostomos Nanakos
1473 abdb293f Chrysostomos Nanakos
	if [ ! $ret = 0 ] ; then
1474 abdb293f Chrysostomos Nanakos
1475 abdb293f Chrysostomos Nanakos
	    ###################
1476 abdb293f Chrysostomos Nanakos
	    # automake, retry #
1477 abdb293f Chrysostomos Nanakos
	    ###################
1478 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO
1479 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "$AUTOMAKE $ALT_AUTOMAKE_OPTIONS"
1480 abdb293f Chrysostomos Nanakos
	    # retry without the -f
1481 abdb293f Chrysostomos Nanakos
	    automake_output="`$AUTOMAKE $ALT_AUTOMAKE_OPTIONS 2>&1`"
1482 abdb293f Chrysostomos Nanakos
	    ret=$?
1483 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "$automake_output"
1484 abdb293f Chrysostomos Nanakos
1485 abdb293f Chrysostomos Nanakos
	    if [ ! $ret = 0 ] ; then
1486 abdb293f Chrysostomos Nanakos
	 	# test if libtool is busted
1487 abdb293f Chrysostomos Nanakos
		libtool_failure "$automake_output"
1488 abdb293f Chrysostomos Nanakos
1489 abdb293f Chrysostomos Nanakos
		# let the user know what went wrong
1490 abdb293f Chrysostomos Nanakos
		cat <<EOF
1491 abdb293f Chrysostomos Nanakos
$automake_output
1492 abdb293f Chrysostomos Nanakos
EOF
1493 abdb293f Chrysostomos Nanakos
		$ECHO "ERROR: $AUTOMAKE failed"
1494 abdb293f Chrysostomos Nanakos
		exit 2
1495 abdb293f Chrysostomos Nanakos
	    fi # automake retry
1496 abdb293f Chrysostomos Nanakos
	fi # automake ret = 0
1497 abdb293f Chrysostomos Nanakos
    fi # need_automake
1498 abdb293f Chrysostomos Nanakos
} # end of manual_autogen
1499 abdb293f Chrysostomos Nanakos
1500 abdb293f Chrysostomos Nanakos
1501 abdb293f Chrysostomos Nanakos
#####################################
1502 abdb293f Chrysostomos Nanakos
# RECURSIVE_MANUAL_AUTOGEN FUNCTION #
1503 abdb293f Chrysostomos Nanakos
#####################################
1504 abdb293f Chrysostomos Nanakos
recursive_manual_autogen ( ) {
1505 abdb293f Chrysostomos Nanakos
1506 abdb293f Chrysostomos Nanakos
    # run the build preparation steps manually for this directory
1507 abdb293f Chrysostomos Nanakos
    manual_autogen
1508 abdb293f Chrysostomos Nanakos
1509 abdb293f Chrysostomos Nanakos
    # for projects using recursive configure, run the build
1510 abdb293f Chrysostomos Nanakos
    # preparation steps for the subdirectories.
1511 abdb293f Chrysostomos Nanakos
    if [ ! "x$CONFIG_SUBDIRS" = "x" ] ; then
1512 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "Recursively configuring the following directories:"
1513 abdb293f Chrysostomos Nanakos
	$VERBOSE_ECHO "  $CONFIG_SUBDIRS"
1514 abdb293f Chrysostomos Nanakos
	for dir in $CONFIG_SUBDIRS ; do
1515 abdb293f Chrysostomos Nanakos
	    $VERBOSE_ECHO "Processing recursive configure in $dir"
1516 abdb293f Chrysostomos Nanakos
	    cd "$START_PATH"
1517 abdb293f Chrysostomos Nanakos
	    cd "$dir"
1518 abdb293f Chrysostomos Nanakos
1519 abdb293f Chrysostomos Nanakos
	    # new directory, prepare
1520 abdb293f Chrysostomos Nanakos
	    initialize
1521 abdb293f Chrysostomos Nanakos
1522 abdb293f Chrysostomos Nanakos
	    # run manual steps for the subdir and any others below
1523 abdb293f Chrysostomos Nanakos
	    recursive_manual_autogen
1524 abdb293f Chrysostomos Nanakos
	done
1525 abdb293f Chrysostomos Nanakos
    fi
1526 abdb293f Chrysostomos Nanakos
}
1527 abdb293f Chrysostomos Nanakos
1528 abdb293f Chrysostomos Nanakos
1529 abdb293f Chrysostomos Nanakos
################################
1530 abdb293f Chrysostomos Nanakos
# run manual preparation steps #
1531 abdb293f Chrysostomos Nanakos
################################
1532 abdb293f Chrysostomos Nanakos
if [ "x$reconfigure_manually" = "xyes" ] ; then
1533 abdb293f Chrysostomos Nanakos
    $ECHO
1534 abdb293f Chrysostomos Nanakos
    $ECHO $ECHO_N "Preparing build ... $ECHO_C"
1535 abdb293f Chrysostomos Nanakos
1536 abdb293f Chrysostomos Nanakos
    recursive_manual_autogen
1537 abdb293f Chrysostomos Nanakos
fi
1538 abdb293f Chrysostomos Nanakos
1539 abdb293f Chrysostomos Nanakos
1540 abdb293f Chrysostomos Nanakos
#########################
1541 abdb293f Chrysostomos Nanakos
# restore and summarize #
1542 abdb293f Chrysostomos Nanakos
#########################
1543 abdb293f Chrysostomos Nanakos
cd "$START_PATH"
1544 abdb293f Chrysostomos Nanakos
1545 abdb293f Chrysostomos Nanakos
# restore COPYING and INSTALL from backup if necessary
1546 abdb293f Chrysostomos Nanakos
recursive_restore
1547 abdb293f Chrysostomos Nanakos
1548 abdb293f Chrysostomos Nanakos
# make sure we end up with a configure script
1549 abdb293f Chrysostomos Nanakos
config_ac="`locate_configure_template`"
1550 abdb293f Chrysostomos Nanakos
config="`echo $config_ac | sed 's/\.ac$//' | sed 's/\.in$//'`"
1551 abdb293f Chrysostomos Nanakos
if [ "x$config" = "x" ] ; then
1552 abdb293f Chrysostomos Nanakos
    $VERBOSE_ECHO "Could not locate the configure template (from `pwd`)"
1553 abdb293f Chrysostomos Nanakos
fi
1554 abdb293f Chrysostomos Nanakos
1555 abdb293f Chrysostomos Nanakos
# summarize
1556 abdb293f Chrysostomos Nanakos
$ECHO "done"
1557 abdb293f Chrysostomos Nanakos
$ECHO
1558 abdb293f Chrysostomos Nanakos
if test "x$config" = "x" -o ! -f "$config" ; then
1559 abdb293f Chrysostomos Nanakos
    $ECHO "WARNING: The $PROJECT build system should now be prepared but there"
1560 abdb293f Chrysostomos Nanakos
    $ECHO "does not seem to be a resulting configure file.  This is unexpected"
1561 abdb293f Chrysostomos Nanakos
    $ECHO "and likely the result of an error.  You should run $NAME_OF_AUTOGEN"
1562 abdb293f Chrysostomos Nanakos
    $ECHO "with the --verbose option to get more details on a potential"
1563 abdb293f Chrysostomos Nanakos
    $ECHO "misconfiguration."
1564 abdb293f Chrysostomos Nanakos
else
1565 abdb293f Chrysostomos Nanakos
    $ECHO "The $PROJECT build system is now prepared.  To build here, run:"
1566 abdb293f Chrysostomos Nanakos
    $ECHO "  $config"
1567 abdb293f Chrysostomos Nanakos
    $ECHO "  make"
1568 abdb293f Chrysostomos Nanakos
fi
1569 abdb293f Chrysostomos Nanakos
1570 abdb293f Chrysostomos Nanakos
1571 abdb293f Chrysostomos Nanakos
# Local Variables:
1572 abdb293f Chrysostomos Nanakos
# mode: sh
1573 abdb293f Chrysostomos Nanakos
# tab-width: 8
1574 abdb293f Chrysostomos Nanakos
# sh-basic-offset: 4
1575 abdb293f Chrysostomos Nanakos
# sh-indentation: 4
1576 abdb293f Chrysostomos Nanakos
# indent-tabs-mode: t
1577 abdb293f Chrysostomos Nanakos
# End:
1578 abdb293f Chrysostomos Nanakos
# ex: shiftwidth=4 tabstop=8