Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 171 lines (137 sloc) 4.983 kB
#! /bin/bash
# $Id$
#
# bootstrap: Utility to easy autoconf/automake toolchain setup on
# checkout from revision control.
#
# Copyright (c) 2002 Daniel Elstner <daniel.elstner@gmx.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License VERSION 2 as
# published by the Free Software Foundation. You are not allowed to
# use any other version of the license; unless you got the explicit
# permission from the author to do so.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
dir=`echo "$0" | sed 's,[^/]*$,,'`
test "x${dir}" = "x" && dir='.'
if (test "x`cd "${dir}" 2>/dev/null && pwd`" != "x`pwd`"); then
echo "This script must be executed directly from the source directory."
exit 1
fi
#########################################################################################
function check_autotool_prerequisites ()
{
# prerequisite versions
automake_major=1
automake_minor=11
autoconf_major=2
autoconf_minor=61
build_autotools=0
autoreconf=`which autoreconf 2>/dev/null`
if (test "x$autoreconf" != "x"); then
if (test -x $autoreconf); then
autoconf_version=`$autoreconf --version | grep " $autoconf_major\." | cut -d"." -f2`
if (test $autoconf_version -lt $autoconf_minor); then
echo "Autoconf Version $autoconf_major.$autoconf_version too old, building a new one..."
build_autotools=1
else
version_id=`$autoreconf --version 2>&1 | grep "(GNU Autoconf)"`
echo "Using autoconf ($version_id)"
fi
else
build_autotools=1
fi
else
build_autotools=1
fi
libtool=`which glibtool 2>/dev/null`
if (test "x$libtool" = "x"); then
libtool=`which libtool 2>/dev/null`
fi
if (test "x$libtool" != "x"); then
if (test -x $libtool); then
libtool_version=`$libtool --version 2>&1 | grep "(GNU libtool)"`
case "$libtool_version" in
*2.4* | *2.2*)
echo "Using libtool ($libtool_version)"
;;
*)
echo "Indaequate Libtool ($libtool_version), building a new one..."
build_autotools=1
esac
else
build_autotools=1
fi
else
build_autotools=1
fi
automake=`which automake 2>/dev/null`
if (test "x$automake" != "x"); then
if (test -x $automake); then
automake_version=`$automake --version | grep " $automake_major\." | cut -d"." -f2`
if (test $automake_version -lt $automake_minor); then
echo "Automake Version $automake_major.$automake_version too old, building a new one..."
build_autotools=1
else
version_id=`$automake --version 2>&1 | grep "(GNU automake)"`
echo "Using automake ($version_id)"
fi
else
build_autotools=1
fi
else
build_autotools=1
fi
return $build_autotools
}
#########################################################################################
check_autotool_prerequisites
build_autotools=$?
#########################################################################################
if (test "x$build_autotools" = "x1"); then
# when there is no autoreconf try to actually build one.
echo "Inadequate autotools in your path, I'll build new ones..."
top_srcdir=`pwd`
autotools_distdir=$top_srcdir/contrib/autotools
if (test -d $autotools_distdir); then
# set the path to use the new tools as they are installed.
# for example, the new autoconf is needed to build automake.
PATH=$autotools_distdir/bin:$PATH
for tool in autoconf-2.69 automake-1.12.5 libtool-2.4.2 ; do
cd $autotools_distdir
echo " building $tool in $autotools_distdir"
tar zxf $tool.tar.gz
cd $tool && ./configure --prefix=$autotools_distdir >/dev/null && make install >/dev/null
cd .. && rm -rf $tool
done
cd $top_srcdir
if (test -x $autotools_distdir/bin/autoreconf -a -x $autotools_distdir/bin/automake -a -x $autotools_distdir/bin/libtool); then
echo " "
echo " --> successfully installed autoreconf in $autotools_distdir/bin - please update your PATH and try again!"
echo " "
PATH=$autotools_distdir/bin:$PATH ./$0
exit 0
fi
fi
fi
#########################################################################################
autoreconf=`which autoreconf 2>/dev/null`
# prefer autoreconf when it is available
if (test "x$autoreconf" != "x"); then
if (test -x $autoreconf); then
$autoreconf -iv --force
exit 0
fi
fi
# # now recursively call bootstrap with the autotools in our path
# export PATH=$autotools_distdir/bin:$PATH
# which autoreconf
# $0
Jump to Line
Something went wrong with that request. Please try again.