]>
Commit | Line | Data |
---|---|---|
74b984b6 | 1 | #!/bin/sh |
a151895d | 2 | # |
ef57eb7b | 3 | ## Copyright (C) 1996-2016 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 |
18 | acversions="${acver:-.}" # 2.68 2.67 2.66 2.65 2.64 2.63 2.62 2.61}" |
19 | amversions="${amver:-.}" # 1.11 1.10 1.9}" | |
20 | ltversions="${ltver:-.}" # 2.2}" | |
fbf2848f | 21 | |
22 | check_version() | |
23 | { | |
8ce6be3f | 24 | eval $2 --version 2>/dev/null | grep -i "$1.* $3" >/dev/null |
fbf2848f | 25 | } |
26 | ||
7f3ee672 AJ |
27 | show_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 | ||
34 | find_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 | |
53 | echo "Trying `$tool --version | head -1`" >&2 | |
54 | found="" | |
55 | fi | |
56 | echo $found | |
57 | } | |
96b8d5c3 | 58 | |
37f1dc15 FC |
59 | find_path() |
60 | { | |
61 | tool=$1 | |
62 | path=`which $tool` | |
63 | if test $? -gt 0 ; then | |
0954cf81 FC |
64 | # path for $tool not found. Not defining, and hoping for the best |
65 | echo | |
37f1dc15 FC |
66 | return |
67 | fi | |
68 | echo $(dirname $path) | |
69 | } | |
70 | ||
96b8d5c3 | 71 | bootstrap() { |
307aa7bb | 72 | if "$@"; then |
73 | true # Everything OK | |
74 | else | |
96b8d5c3 | 75 | echo "$1 failed" |
76 | echo "Autotool bootstrapping failed. You will need to investigate and correct" ; | |
77 | echo "before you can develop on this source tree" | |
78 | exit 1 | |
b4468b69 | 79 | fi |
96b8d5c3 | 80 | } |
81 | ||
3e7b6055 | 82 | bootstrap_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 | 91 | if [ `uname -s 2>/dev/null` = 'Darwin' ] |
5f152e61 AJ |
92 | then |
93 | LIBTOOL_BIN="glibtool" | |
94 | else | |
95 | LIBTOOL_BIN="libtool" | |
96 | fi | |
97 | ||
74b984b6 | 98 | # Adjust paths of required autool packages |
7f3ee672 AJ |
99 | amver=`find_variant automake ${amversions}` |
100 | acver=`find_variant autoconf ${acversions}` | |
5f152e61 | 101 | ltver=`find_variant ${LIBTOOL_BIN} ${ltversions}` |
7f3ee672 AJ |
102 | |
103 | # Produce debug output about what version actually found. | |
e9c6b272 HN |
104 | amversion=`show_version automake "${amver}"` |
105 | acversion=`show_version autoconf "${acver}"` | |
5f152e61 | 106 | ltversion=`show_version ${LIBTOOL_BIN} "${ltver}"` |
74b984b6 | 107 | |
37f1dc15 | 108 | # Find the libtool path to get the right aclocal includes |
5f152e61 | 109 | ltpath=`find_path ${LIBTOOL_BIN}${ltver}` |
37f1dc15 | 110 | |
a8ed6bf6 | 111 | # Set environment variable to tell automake which autoconf to use. |
112 | AUTOCONF="autoconf${acver}" ; export AUTOCONF | |
113 | ||
7f3ee672 AJ |
114 | echo "automake ($amversion) : automake$amver" |
115 | echo "autoconf ($acversion) : autoconf$acver" | |
5f152e61 | 116 | echo "libtool ($ltversion) : ${LIBTOOL_BIN}${ltver}" |
0954cf81 | 117 | echo "libtool path : $ltpath" |
a8ed6bf6 | 118 | |
dc838e28 | 119 | for dir in \ |
99742866 | 120 | "" |
dc838e28 | 121 | do |
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 | 150 | done |
b4468b69 | 151 | |
957eb8d1 | 152 | # Make a copy of SPONSORS we can package |
7d7f253c AJ |
153 | if test -f SPONSORS.list; then |
154 | sed -e 's/@Squid-[0-9\.]*://' <SPONSORS.list > SPONSORS || (rm -f SPONSORS && exit 1) | |
155 | fi | |
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 | 160 | if ! grep "configure_args --quiet" configure >/dev/null; then |
161 | echo "Fixing configure recursion" | |
9b472584 | 162 | ed -s configure <<'EOS' >/dev/null || true |
163 | /ac_sub_configure_args=/ | |
164 | +1 | |
165 | i | |
166 | # Add --quiet option if used | |
167 | test "$silent" = yes && | |
168 | ac_sub_configure_args="$ac_sub_configure_args --quiet" | |
169 | . | |
170 | w | |
171 | EOS | |
63ab7f2d | 172 | fi |
9b472584 | 173 | |
96b8d5c3 | 174 | echo "Autotool bootstrapping complete." |