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