buildconf: minor tweaks

This commit is contained in:
Yang Tse 2011-12-21 16:21:37 +01:00
parent 1afbccc676
commit 430527a1d7
1 changed files with 63 additions and 59 deletions

122
buildconf
View File

@ -21,9 +21,12 @@
# #
########################################################################### ###########################################################################
#--------------------------------------------------------------------------
# die prints argument string to stdout and exits this shell script.
#
die(){ die(){
echo "$@" echo "buildconf: $@"
exit exit 1
} }
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
@ -33,11 +36,8 @@ die(){
findtool(){ findtool(){
file="$1" file="$1"
if { echo $file | grep "/" >/dev/null 2>&1; } then if { echo "$file" | grep "/" >/dev/null 2>&1; } then
# we only check for the explicit file name if the file is given # when file is given with a path check it first
# including a slash. Use ./ for current dir. Previously this would
# otherwise always cause findtool to search the local dir first, which
# is wrong.
if test -f "$file"; then if test -f "$file"; then
echo "$file" echo "$file"
return return
@ -82,7 +82,8 @@ removethis(){
if test ! -f configure.ac || if test ! -f configure.ac ||
test ! -f src/tool_main.c || test ! -f src/tool_main.c ||
test ! -f lib/urldata.h || test ! -f lib/urldata.h ||
test ! -f include/curl/curl.h; then test ! -f include/curl/curl.h ||
test ! -f m4/curl-functions.m4; then
echo "Can not run buildconf from outside of curl's source subdirectory!" echo "Can not run buildconf from outside of curl's source subdirectory!"
echo "Change to the subdirectory where buildconf is found, and try again." echo "Change to the subdirectory where buildconf is found, and try again."
exit 1 exit 1
@ -188,27 +189,24 @@ else
fi fi
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# libtool check # GNU libtool preliminary check
# #
LIBTOOL_WANTED_MAJOR=1 want_lt_major=1
LIBTOOL_WANTED_MINOR=4 want_lt_minor=4
LIBTOOL_WANTED_PATCH=2 want_lt_patch=2
LIBTOOL_WANTED_VERSION=1.4.2 want_lt_version=1.4.2
# This approach that tries 'glibtool' first is intended for systems that
# have GNU libtool named as 'glibtool' and libtool not being GNU's.
# 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` libtool=`findtool glibtool 2>/dev/null`
if test ! -x "$libtool"; then if test ! -x "$libtool"; then
libtool=`findtool ${LIBTOOL:-libtool}` libtool=`findtool ${LIBTOOL:-libtool}`
fi fi
if test -z "$libtool"; then
if test -z "$LIBTOOLIZE"; then echo "buildconf: libtool not found."
# set the LIBTOOLIZE here so that glibtoolize is used if glibtool was found echo " You need GNU libtool $want_lt_version or newer installed."
# $libtool is already the full path exit 1
libtoolize="${libtool}ize"
else
libtoolize=`findtool $LIBTOOLIZE`
fi fi
lt_pver=`$libtool --version 2>/dev/null|head -n 1` lt_pver=`$libtool --version 2>/dev/null|head -n 1`
@ -216,42 +214,53 @@ lt_qver=`echo $lt_pver|sed -e "s/([^)]*)//g" -e "s/^[^0-9]*//g"`
lt_version=`echo $lt_qver|sed -e "s/[- ].*//" -e "s/\([a-z]*\)$//"` lt_version=`echo $lt_qver|sed -e "s/[- ].*//" -e "s/\([a-z]*\)$//"`
if test -z "$lt_version"; then if test -z "$lt_version"; then
echo "buildconf: libtool not found." echo "buildconf: libtool not found."
echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed" echo " You need GNU libtool $want_lt_version or newer installed."
exit 1 exit 1
fi fi
old_IFS=$IFS; IFS='.'; set $lt_version; IFS=$old_IFS old_IFS=$IFS; IFS='.'; set $lt_version; IFS=$old_IFS
lt_major=$1 lt_major=$1
lt_minor=$2 lt_minor=$2
lt_patch=$3 lt_patch=$3
lt_status="good"
if test "$lt_major" = "$LIBTOOL_WANTED_MAJOR"; then if test -z "$lt_major"; then
if test "$lt_minor" -lt "$LIBTOOL_WANTED_MINOR"; then lt_status="bad"
lt_status="bad" elif test "$lt_major" -gt "$want_lt_major"; then
elif test -n "$LIBTOOL_WANTED_PATCH"; then lt_status="good"
if test "$lt_minor" -gt "$LIBTOOL_WANTED_MINOR"; then elif test "$lt_major" -lt "$want_lt_major"; then
lt_status="good" lt_status="bad"
elif test -n "$lt_patch"; then elif test -z "$lt_minor"; then
if test "$lt_patch" -lt "$LIBTOOL_WANTED_PATCH"; then lt_status="bad"
lt_status="bad" elif test "$lt_minor" -gt "$want_lt_minor"; then
fi lt_status="good"
else elif test "$lt_minor" -lt "$want_lt_minor"; then
lt_status="bad" lt_status="bad"
fi elif test -z "$lt_patch"; then
fi lt_status="bad"
elif test "$lt_patch" -gt "$want_lt_patch"; then
lt_status="good"
elif test "$lt_patch" -lt "$want_lt_patch"; then
lt_status="bad"
else
lt_status="good"
fi fi
if test $lt_status != "good"; then if test "$lt_status" != "good"; then
echo "buildconf: libtool version $lt_version found." echo "buildconf: libtool version $lt_version found."
echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed" echo " You need GNU libtool $want_lt_version or newer installed."
exit 1 exit 1
fi fi
echo "buildconf: libtool version $lt_version (ok)" #--------------------------------------------------------------------------
# GNU libtoolize check
if test -f "$libtoolize"; then #
echo "buildconf: libtoolize found" if test -z "$LIBTOOLIZE"; then
# use (g)libtoolize from same location as (g)libtool
libtoolize="${libtool}ize"
else else
echo "buildconf: libtoolize not found. Weird libtool installation!" libtoolize=`findtool $LIBTOOLIZE`
fi
if test ! -f "$libtoolize"; then
echo "buildconf: libtoolize not found."
echo " You need GNU libtoolize $want_lt_version or newer installed."
exit 1 exit 1
fi fi
@ -331,13 +340,8 @@ done
# run the correct scripts now # run the correct scripts now
# #
if test ! -f m4/curl-functions.m4; then
echo "buildconf: cURL m4 macros not found"
exit 1
fi
echo "buildconf: running libtoolize" echo "buildconf: running libtoolize"
$libtoolize --copy --automake --force || die "The libtoolize command failed" ${libtoolize} --copy --automake --force || die "libtoolize command failed"
# When using libtool 1.5.X (X < 26) we copy libtool.m4 to our local m4 # When using libtool 1.5.X (X < 26) we copy libtool.m4 to our local m4
# subdirectory and this local copy is patched to fix some warnings that # subdirectory and this local copy is patched to fix some warnings that
@ -370,19 +374,19 @@ if test -f m4/libtool.m4; then
fi fi
echo "buildconf: running aclocal" echo "buildconf: running aclocal"
${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS || die "The aclocal command line failed" ${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS || die "aclocal command failed"
echo "buildconf: converting all mv to mv -f in local aclocal.m4" echo "buildconf: converting all mv to mv -f in local aclocal.m4"
$PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4 $PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4
echo "buildconf: running autoheader" echo "buildconf: running autoheader"
${AUTOHEADER:-autoheader} || die "The autoheader command failed" ${AUTOHEADER:-autoheader} || die "autoheader command failed"
echo "buildconf: cp lib/curl_config.h.in src/curl_config.h.in" echo "buildconf: cp lib/curl_config.h.in src/curl_config.h.in"
cp lib/curl_config.h.in src/curl_config.h.in cp lib/curl_config.h.in src/curl_config.h.in
echo "buildconf: running autoconf" echo "buildconf: running autoconf"
${AUTOCONF:-autoconf} || die "The autoconf command failed" ${AUTOCONF:-autoconf} || die "autoconf command failed"
if test -d ares; then if test -d ares; then
cd ares cd ares
@ -392,14 +396,15 @@ if test -d ares; then
fi fi
echo "buildconf: running automake" echo "buildconf: running automake"
${AUTOMAKE:-automake} -a -c || die "The automake command failed" ${AUTOMAKE:-automake} --add-missing --copy || die "automake command failed"
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# GNU libtool complementary check
#
# Depending on the libtool and automake versions being used, config.guess # Depending on the libtool and automake versions being used, config.guess
# might not be installed in the subdirectory until automake has finished. # might not be installed in the subdirectory until automake has finished.
# So we can not attempt to use it until this very last buildconf stage. # So we can not attempt to use it until this very last buildconf stage.
# #
if test ! -f ./config.guess; then if test ! -f ./config.guess; then
echo "buildconf: config.guess not found" echo "buildconf: config.guess not found"
else else
@ -443,7 +448,7 @@ else
if test "$lt_status" != "good"; then if test "$lt_status" != "good"; then
need_lt_version="$need_lt_major.$need_lt_minor.$need_lt_patch" need_lt_version="$need_lt_major.$need_lt_minor.$need_lt_patch"
echo "buildconf: libtool version $lt_version found." echo "buildconf: libtool version $lt_version found."
echo " $buildhost requires libtool $need_lt_version or newer installed." echo " $buildhost requires GNU libtool $need_lt_version or newer installed."
rm -f configure rm -f configure
exit 1 exit 1
fi fi
@ -453,6 +458,5 @@ fi
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# Finished successfully. # Finished successfully.
# #
echo "buildconf: OK" echo "buildconf: OK"
exit 0 exit 0