Newer
Older
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://curl.haxx.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# $Id$
###########################################################################
#--------------------------------------------------------------------------
# findtool works as 'which' but we use a different name to make it more
# obvious we aren't using 'which'! ;-)
#
Daniel Stenberg
committed
findtool(){
file="$1"
old_IFS=$IFS; IFS=':'
Daniel Stenberg
committed
for path in $PATH
do
IFS=$old_IFS
Daniel Stenberg
committed
# echo "checks for $file in $path" >&2
if test -f "$path/$file"; then
Daniel Stenberg
committed
echo "$path/$file"
return
fi
done
IFS=$old_IFS
Daniel Stenberg
committed
}
#--------------------------------------------------------------------------
# Ensure that buildconf runs from the subdirectory where configure.ac lives
#
if test ! -f configure.ac ||
test ! -f src/main.c ||
test ! -f lib/urldata.h ||
test ! -f include/curl/curl.h; then
echo "Can not run buildconf from outside of curl's source subdirectory!"
echo "Change to the subdirectory where buildconf is found, and try again."
exit 1
fi
Daniel Stenberg
committed
#--------------------------------------------------------------------------
Daniel Stenberg
committed
#
Daniel Stenberg
committed
ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|head -n 1| sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
Daniel Stenberg
committed
if test -z "$ac_version"; then
echo "buildconf: autoconf not found."
echo " You need autoconf version $need_autoconf or newer installed."
Daniel Stenberg
committed
exit 1
fi
IFS=.; set $ac_version; IFS=' '
if test "$1" = "2" -a "$2" -lt "57" || test "$1" -lt "2"; then
Daniel Stenberg
committed
echo "buildconf: autoconf version $ac_version found."
echo " You need autoconf version $need_autoconf or newer installed."
Daniel Stenberg
committed
echo " If you have a sufficient autoconf installed, but it"
echo " is not named 'autoconf', then try setting the"
echo " AUTOCONF environment variable."
exit 1
fi
echo "buildconf: autoconf version $ac_version (ok)"
#--------------------------------------------------------------------------
# autoheader 2.50 or newer
#
Daniel Stenberg
committed
ah_version=`${AUTOHEADER:-autoheader} --version 2>/dev/null|head -n 1| sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
Daniel Stenberg
committed
if test -z "$ah_version"; then
echo "buildconf: autoheader not found."
echo " You need autoheader version 2.50 or newer installed."
exit 1
fi
IFS=.; set $ah_version; IFS=' '
if test "$1" = "2" -a "$2" -lt "50" || test "$1" -lt "2"; then
echo "buildconf: autoheader version $ah_version found."
echo " You need autoheader version 2.50 or newer installed."
echo " If you have a sufficient autoheader installed, but it"
echo " is not named 'autoheader', then try setting the"
echo " AUTOHEADER environment variable."
exit 1
fi
echo "buildconf: autoheader version $ah_version (ok)"
#--------------------------------------------------------------------------
Daniel Stenberg
committed
#
Daniel Stenberg
committed
am_version=`${AUTOMAKE:-automake} --version 2>/dev/null|head -n 1| sed -e 's/^.* \([0-9]\)/\1/' -e 's/[a-z]* *$//' -e 's/\(.*\)\(-p.*\)/\1/'`
Daniel Stenberg
committed
if test -z "$am_version"; then
echo "buildconf: automake not found."
echo " You need automake version $need_automake or newer installed."
Daniel Stenberg
committed
exit 1
fi
IFS=.; set $am_version; IFS=' '
if test "$1" = "1" -a "$2" -lt "7" || test "$1" -lt "1"; then
Daniel Stenberg
committed
echo "buildconf: automake version $am_version found."
echo " You need automake version $need_automake or newer installed."
Daniel Stenberg
committed
echo " If you have a sufficient automake installed, but it"
echo " is not named 'automake', then try setting the"
Daniel Stenberg
committed
echo " AUTOMAKE environment variable."
exit 1
fi
echo "buildconf: automake version $am_version (ok)"
ac=`findtool ${ACLOCAL:-aclocal}`
if test -z "$ac"; then
echo "buildconf: aclocal not found. Weird automake installation!"
exit 1
else
echo "buildconf: aclocal found"
fi
#--------------------------------------------------------------------------
LIBTOOL_WANTED_MINOR=4
LIBTOOL_WANTED_PATCH=2
LIBTOOL_WANTED_VERSION=1.4.2
Daniel Stenberg
committed
# this approach that tries 'glibtool' first is some kind of work-around for
# some BSD-systems I believe that use to provide the GNU libtool named
# glibtool, with 'libtool' being something completely different.
libtool=`findtool glibtool 2>/dev/null`
Daniel Stenberg
committed
libtool=`findtool ${LIBTOOL:-libtool}`
Daniel Stenberg
committed
if test -z "$LIBTOOLIZE"; then
# set the LIBTOOLIZE here so that glibtoolize is used if glibtool was found
# $libtool is already the full path
libtoolize="${libtool}ize"
else
libtoolize=`findtool $LIBTOOLIZE`
fi
lt_pversion=`$libtool --version 2>/dev/null|head -n 2|sed -e 's/^[^0-9]*//g' -e 's/[- ].*//'`
if test -z "$lt_pversion"; then
echo "buildconf: libtool not found."
echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed"
exit 1
fi
lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$//'`
IFS=.; set $lt_version; IFS=' '
lt_status="good"
major=$1
minor=$2
patch=$3
if test "$major" = "$LIBTOOL_WANTED_MAJOR"; then
if test "$minor" -lt "$LIBTOOL_WANTED_MINOR"; then
elif test -n "$LIBTOOL_WANTED_PATCH"; then
if test "$minor" -gt "$LIBTOOL_WANTED_MINOR"; then
lt_status="good"
elif test -n "$patch"; then
if test "$patch" -lt "$LIBTOOL_WANTED_PATCH"; then
lt_status="bad"
fi
else
lt_status="bad"
fi
fi
fi
if test $lt_status != "good"; then
echo "buildconf: libtool version $lt_pversion found."
echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed"
exit 1
fi
echo "buildconf: libtool version $lt_version (ok)"
Daniel Stenberg
committed
if test -f "$libtoolize"; then
echo "buildconf: libtoolize found"
else
echo "buildconf: libtoolize not found. Weird libtool installation!"
exit 1
fi
Daniel Stenberg
committed
#--------------------------------------------------------------------------
# m4 check
#
Daniel Stenberg
committed
m4=`${M4:-m4} --version 2>/dev/null|head -n 1`;
Daniel Stenberg
committed
m4_version=`echo $m4 | sed -e 's/^.* \([0-9]\)/\1/' -e 's/[a-z]* *$//'`
if { echo $m4 | grep "GNU" >/dev/null 2>&1; } then
echo "buildconf: GNU m4 version $m4_version (ok)"
else
echo "buildconf: m4 version $m4 found. You need a GNU m4 installed!"
exit 1
fi
#--------------------------------------------------------------------------
# perl check
#
Daniel Stenberg
committed
PERL=`findtool ${PERL:-perl}`
Daniel Stenberg
committed
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
#--------------------------------------------------------------------------
# Remove files generated on previous buildconf/configure run.
#
for fname in aclocal.m4 \
aclocal.m4.bak \
config.guess \
config.log \
config.status \
config.sub \
configure \
depcomp \
libtool \
ltmain.sh \
Makefile \
Makefile.in ; do
if test -f "$fname" ; then
rm -f "$fname"
fi
done
if test -d autom4te.cache; then
rm -f -r autom4te.cache
fi
if test -d docs/examples/.deps; then
rm -f -r docs/examples/.deps
fi
if test -d lib/.deps; then
rm -f -r lib/.deps
fi
if test -d src/.deps; then
rm -f -r src/.deps
fi
if test -d tests/libtest/.deps; then
rm -f -r tests/libtest/.deps
fi
if test -d tests/server/.deps; then
rm -f -r tests/server/.deps
fi
#--------------------------------------------------------------------------
# Remove files generated in c-ares subdir on previous buildconf/configure run.
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
#
if test -d ares; then
cd ares
for fname in aclocal.m4 \
aclocal.m4.bak \
compile \
config.h \
config.h.in \
config.guess \
config.log \
config.status \
config.sub \
configure \
depcomp \
libtool \
ltmain.sh \
missing \
Makefile \
Makefile.in ; do
if test -f "$fname" ; then
rm -f "$fname"
fi
done
if test -d autom4te.cache; then
rm -f -r autom4te.cache
fi
if test -d .deps; then
rm -f -r .deps
fi
cd ..
fi
#--------------------------------------------------------------------------
tmp_host_type=`uname -a | sed '/SunOS/s/.*\(SunOS\).*/\1/'`
if test "x$tmp_host_type" = "xSunOS"; then
ACLOCAL_FLAGS="$ACLOCAL_FLAGS --verbose"
echo "buildconf: PATH: $PATH"
# show all available sed's in PATH order
old_IFS=$IFS; IFS=':'
for path in $PATH
do
IFS=$old_IFS
if test -f "$path/sed"; then
echo "buildconf: sed: $path/sed"
fi
done
IFS=$old_IFS
echo "buildconf: SED: $SED"
echo "buildconf: running libtoolize"
Daniel Stenberg
committed
$libtoolize --copy --automake --force || die "The libtoolize command failed"
Daniel Stenberg
committed
echo "buildconf: running aclocal"
${ACLOCAL:-aclocal} $ACLOCAL_FLAGS || die "The aclocal command line failed"
if test -n "$PERL"; then
echo "buildconf: running aclocal hack to convert all mv to mv -f"
$PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4
else
echo "buildconf: perl not found"
exit 1
fi
Daniel Stenberg
committed
echo "buildconf: running autoheader"
${AUTOHEADER:-autoheader} || die "The autoheader command failed"
echo "buildconf: cp lib/config.h.in src/config.h.in"
cp lib/config.h.in src/config.h.in
Daniel Stenberg
committed
echo "buildconf: running autoconf"
${AUTOCONF:-autoconf} || die "The autoconf command failed"
if test -d ares; then
cd ares
Daniel Stenberg
committed
echo "buildconf: running in ares"
./buildconf
cd ..
fi
Daniel Stenberg
committed
echo "buildconf: running automake"
${AUTOMAKE:-automake} -a -c || die "The automake command failed"