~aleksej-kolga/lives/apply

« back to all changes in this revision

Viewing changes to autogen.sh

  • Committer: gfinch
  • Date: 2009-08-11 21:03:24 UTC
  • Revision ID: svn-v4:20720ae0-5073-4b1f-83cb-12b13d09b210:trunk:14
updates to build system/ACX_PTHREAD

Show diffs side-by-side

added added

removed removed

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