1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
|
#!/bin/sh
#
## Copyright (C) 1996-2022 The Squid Software Foundation and contributors
##
## Squid software is distributed under GPLv2+ license and includes
## contributions from numerous individuals and organizations.
## Please see the COPYING and CONTRIBUTORS files for details.
##
#
# Used to setup the configure.ac, autoheader and Makefile.in's if configure
# has not been generated. This script is only needed for developers when
# configure has not been run, or if a Makefile.am in a non-configured directory
# has been updated
# Autotool versions preferred. To override either edit the script
# to match the versions you want to use, or set the variables on
# the command line like "env acver=.. amver=... ./bootstrap.sh"
acversions="${acver:-.}" # 2.68 2.67 2.66 2.65 2.64 2.63 2.62 2.61}"
amversions="${amver:-.}" # 1.11 1.10 1.9}"
ltversions="${ltver:-.}" # 2.2}"
check_version()
{
eval $2 --version 2>/dev/null | grep -i "$1.* $3" >/dev/null
}
show_version()
{
tool=$1
variant=$2
${tool}${variant} --version 2>/dev/null | head -1 | sed -e 's/.*) //'
}
find_variant()
{
tool=$1
found="NOT_FOUND"
shift
versions="$*"
for version in $versions; do
for variant in "" "${version}" "-${version}" "`echo $version | sed -e 's/\.//g'`"; do
if check_version $tool ${tool}${variant} $version; then
found="${variant}"
break
fi
done
if [ "x$found" != "xNOT_FOUND" ]; then
break
fi
done
if [ "x$found" = "xNOT_FOUND" ]; then
echo "WARNING: Cannot find $tool version $versions" >&2
echo "Trying `$tool --version | head -1`" >&2
found=""
fi
echo $found
}
find_path()
{
tool=$1
path=`which $tool`
if test $? -gt 0 ; then
# path for $tool not found. Not defining, and hoping for the best
echo
return
fi
echo $(dirname $path)
}
bootstrap() {
if "$@"; then
true # Everything OK
else
echo "$1 failed"
echo "Autotool bootstrapping failed. You will need to investigate and correct" ;
echo "before you can develop on this source tree"
exit 1
fi
}
bootstrap_libtoolize() {
tool=$1
ltdl="--ltdl"
bootstrap $tool $ltdl --force --copy --automake
}
# On MAC OS X, GNU libtool is named 'glibtool':
if [ `uname -s 2>/dev/null` = 'Darwin' ]
then
LIBTOOL_BIN="glibtool"
else
LIBTOOL_BIN="libtool"
fi
# Adjust paths of required autool packages
amver=`find_variant automake ${amversions}`
acver=`find_variant autoconf ${acversions}`
ltver=`find_variant ${LIBTOOL_BIN} ${ltversions}`
# Produce debug output about what version actually found.
amversion=`show_version automake "${amver}"`
acversion=`show_version autoconf "${acver}"`
ltversion=`show_version ${LIBTOOL_BIN} "${ltver}"`
# Find the libtool path to get the right aclocal includes
ltpath=`find_path ${LIBTOOL_BIN}${ltver}`
# Set environment variable to tell automake which autoconf to use.
AUTOCONF="autoconf${acver}" ; export AUTOCONF
echo "automake ($amversion) : automake$amver"
echo "autoconf ($acversion) : autoconf$acver"
echo "libtool ($ltversion) : ${LIBTOOL_BIN}${ltver}"
echo "libtool path : $ltpath"
for dir in \
""
do
if [ -z "$dir" ] || [ -d $dir ]; then
if (
echo "Bootstrapping $dir"
cd ./$dir
if [ -n "$dir" ] && [ -f bootstrap.sh ]; then
./bootstrap.sh
elif [ ! -f $dir/configure ]; then
# Make sure cfgaux exists
mkdir -p cfgaux
if test -n "$ltpath"; then
acincludeflag="-I $ltpath/../share/aclocal"
else
acincludeflag=""
fi
# Bootstrap the autotool subsystems
bootstrap aclocal$amver $acincludeflag
bootstrap autoheader$acver
bootstrap_libtoolize ${LIBTOOL_BIN}ize${ltver}
bootstrap automake$amver --foreign --add-missing --copy -f
bootstrap autoconf$acver --force
fi ); then
: # OK
else
exit 1
fi
fi
done
# Make a copy of SPONSORS we can package
if test -f SPONSORS.list; then
sed -e 's/@Squid-[0-9\.]*://' <SPONSORS.list > SPONSORS || (rm -f SPONSORS && exit 1)
fi
# Fixup autoconf recursion using --silent/--quiet option
# autoconf should inherit this option whe recursing into subdirectories
# but it currently doesn't for some reason.
if ! grep "configure_args --quiet" configure >/dev/null; then
echo "Fixing configure recursion"
ed -s configure <<'EOS' >/dev/null || true
/ac_sub_configure_args=/
+1
i
# Add --quiet option if used
test "$silent" = yes &&
ac_sub_configure_args="$ac_sub_configure_args --quiet"
.
w
EOS
fi
echo "Autotool bootstrapping complete."
|