]>
Commit | Line | Data |
---|---|---|
74b984b6 | 1 | #!/bin/sh |
a2794549 | 2 | # Used to setup the configure.in, 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 | ||
fbf2848f | 7 | # Autotool versions preferred. To override either edit the script |
c3d3f1cf | 8 | # to match the versions you want to use, or set the variables on |
9 | # the command line like "env acver=.. amver=... ./bootstrap.sh" | |
65f9f80c | 10 | acversions="${acver:-2.63 2.62 2.61}" |
416157b5 | 11 | amversions="${amver:-1.11 1.10 1.9}" |
b44ef959 | 12 | ltversions="${ltver:-2.2 1.5 1.4}" |
fbf2848f | 13 | |
14 | check_version() | |
15 | { | |
8ce6be3f | 16 | eval $2 --version 2>/dev/null | grep -i "$1.* $3" >/dev/null |
fbf2848f | 17 | } |
18 | ||
7f3ee672 AJ |
19 | show_version() |
20 | { | |
21 | tool=$1 | |
22 | found="NOT_FOUND" | |
23 | shift | |
24 | versions="$*" | |
25 | for version in $versions; do | |
471931e2 AJ |
26 | for variant in "" "-${version}" "`echo $version | sed -e 's/\.//g'`"; do |
27 | if check_version $tool ${tool}${variant} $version; then | |
28 | found="${version}" | |
7f3ee672 AJ |
29 | break |
30 | fi | |
471931e2 AJ |
31 | done |
32 | if [ "x$found" != "xNOT_FOUND" ]; then | |
33 | break | |
34 | fi | |
7f3ee672 AJ |
35 | done |
36 | if [ "x$found" = "xNOT_FOUND" ]; then | |
37 | found="??" | |
38 | fi | |
39 | echo $found | |
40 | } | |
41 | ||
42 | find_variant() | |
fbf2848f | 43 | { |
44 | tool=$1 | |
45 | found="NOT_FOUND" | |
46 | shift | |
47 | versions="$*" | |
48 | for version in $versions; do | |
80feea5a | 49 | for variant in "" "-${version}" "`echo $version | sed -e 's/\.//g'`"; do |
fbf2848f | 50 | if check_version $tool ${tool}${variant} $version; then |
51 | found="${variant}" | |
52 | break | |
53 | fi | |
54 | done | |
55 | if [ "x$found" != "xNOT_FOUND" ]; then | |
56 | break | |
57 | fi | |
58 | done | |
59 | if [ "x$found" = "xNOT_FOUND" ]; then | |
60 | echo "WARNING: Cannot find $tool version $versions" >&2 | |
61 | echo "Trying `$tool --version | head -1`" >&2 | |
62 | found="" | |
63 | fi | |
64 | echo $found | |
65 | } | |
96b8d5c3 | 66 | |
67 | bootstrap() { | |
307aa7bb | 68 | if "$@"; then |
69 | true # Everything OK | |
70 | else | |
96b8d5c3 | 71 | echo "$1 failed" |
72 | echo "Autotool bootstrapping failed. You will need to investigate and correct" ; | |
73 | echo "before you can develop on this source tree" | |
74 | exit 1 | |
b4468b69 | 75 | fi |
96b8d5c3 | 76 | } |
77 | ||
3e7b6055 AR |
78 | bootstrap_libtoolize() { |
79 | ltver=$1 | |
80 | ||
44937bde AR |
81 | # TODO: when we have libtool2, tell libtoolize where to put its files |
82 | # instead of manualy moving files from ltdl to lib/libLtdl | |
3e7b6055 AR |
83 | if egrep -q '^[[:space:]]*AC_LIBLTDL_' configure.in |
84 | then | |
d3a6661c HN |
85 | if libtoolize$ltver --help | grep -q -- --ltdl.=; then |
86 | ltdl="--ltdl=lib/libLtdl" | |
87 | else | |
88 | ltdl="--ltdl" | |
89 | copy_libltdl=1 | |
90 | fi | |
3e7b6055 | 91 | else |
d3a6661c | 92 | ltdl="" |
3e7b6055 AR |
93 | fi |
94 | ||
d3a6661c | 95 | bootstrap libtoolize$ltver $ltdl --force --copy --automake |
3e7b6055 AR |
96 | |
97 | # customize generated libltdl, if any | |
d3a6661c | 98 | if test -d libltdl && [ $copy_libltdl ] |
3e7b6055 AR |
99 | then |
100 | src=libltdl | |
101 | ||
102 | # do not bundle with the huge standard license text | |
ad439abb | 103 | rm -f $src/COPYING.LIB |
3e7b6055 AR |
104 | makefile=$src/Makefile.in |
105 | sed 's/COPYING.LIB/ /g' $makefile > $makefile.new; | |
106 | chmod u+w $makefile | |
107 | mv $makefile.new $makefile | |
0e65e9c7 | 108 | chmod u-w $makefile |
3e7b6055 AR |
109 | |
110 | dest=lib/libLtdl | |
0e65e9c7 | 111 | # move $src to $dest |
3e7b6055 AR |
112 | if test -d $dest # already exists |
113 | then | |
0e65e9c7 | 114 | echo "Updating $dest from $src." |
44937bde | 115 | chmod u+w $dest/* |
3e7b6055 AR |
116 | mv $src/* $dest/ |
117 | rmdir $src | |
118 | else | |
0e65e9c7 | 119 | echo "Creating $dest from $src." |
3e7b6055 AR |
120 | mv $src $dest |
121 | fi | |
122 | fi | |
123 | } | |
124 | ||
74b984b6 | 125 | # Adjust paths of required autool packages |
7f3ee672 AJ |
126 | amver=`find_variant automake ${amversions}` |
127 | acver=`find_variant autoconf ${acversions}` | |
128 | ltver=`find_variant libtool ${ltversions}` | |
129 | ||
130 | # Produce debug output about what version actually found. | |
471931e2 AJ |
131 | amversion=`show_version automake ${amversions}` |
132 | acversion=`show_version autoconf ${acversions}` | |
133 | ltversion=`show_version libtool ${ltversions}` | |
74b984b6 | 134 | |
a8ed6bf6 | 135 | # Set environment variable to tell automake which autoconf to use. |
136 | AUTOCONF="autoconf${acver}" ; export AUTOCONF | |
137 | ||
7f3ee672 AJ |
138 | echo "automake ($amversion) : automake$amver" |
139 | echo "autoconf ($acversion) : autoconf$acver" | |
140 | echo "libtool ($ltversion) : libtool$ltver" | |
a8ed6bf6 | 141 | |
dc838e28 | 142 | for dir in \ |
143 | "" \ | |
3ad12bda | 144 | lib/libTrie |
dc838e28 | 145 | do |
bd6d8fb7 | 146 | if [ -z "$dir" ] || [ -d $dir ]; then |
98c7875e | 147 | if ( |
dc838e28 | 148 | echo "Bootstrapping $dir" |
149 | cd ./$dir | |
897c0dcf | 150 | if [ -n "$dir" ] && [ -f bootstrap.sh ]; then |
67c29939 | 151 | ./bootstrap.sh |
4d00560c | 152 | elif [ ! -f $dir/configure ]; then |
83c44f93 | 153 | # Make sure cfgaux exists |
154 | mkdir -p cfgaux | |
155 | ||
67c29939 | 156 | # Bootstrap the autotool subsystems |
157 | bootstrap aclocal$amver | |
67c29939 | 158 | bootstrap autoheader$acver |
3e7b6055 | 159 | bootstrap_libtoolize $ltver |
3e0237d6 | 160 | bootstrap automake$amver --foreign --add-missing --copy -f |
63ab7f2d | 161 | bootstrap autoconf$acver --force |
67c29939 | 162 | fi ); then |
dc838e28 | 163 | : # OK |
164 | else | |
165 | exit 1 | |
166 | fi | |
98c7875e | 167 | fi |
dc838e28 | 168 | done |
b4468b69 | 169 | |
9b472584 | 170 | # Fixup autoconf recursion using --silent/--quiet option |
171 | # autoconf should inherit this option whe recursing into subdirectories | |
172 | # but it currently doesn't for some reason. | |
63ab7f2d | 173 | if ! grep "configure_args --quiet" configure >/dev/null; then |
174 | echo "Fixing configure recursion" | |
9b472584 | 175 | ed -s configure <<'EOS' >/dev/null || true |
176 | /ac_sub_configure_args=/ | |
177 | +1 | |
178 | i | |
179 | # Add --quiet option if used | |
180 | test "$silent" = yes && | |
181 | ac_sub_configure_args="$ac_sub_configure_args --quiet" | |
182 | . | |
183 | w | |
184 | EOS | |
63ab7f2d | 185 | fi |
9b472584 | 186 | |
96b8d5c3 | 187 | echo "Autotool bootstrapping complete." |