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