Revision 593cc5bc9fd0908b5fedf4e4195e648c237b758c authored by roystgnr on 28 November 2023, 14:06:32 UTC, committed by GitHub on 28 November 2023, 14:06:32 UTC
FEInterface::is_hierarchic()
bootstrap
#! /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=16
automake_subminor=5
autoconf_major=2
autoconf_minor=71
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_minor_version=`$automake --version | grep " $automake_major\." | cut -d"." -f2`
if (test $automake_minor_version -lt $automake_minor); then
echo "Automake Version $automake_major.$automake_minor_version too old, building a new one..."
build_autotools=1
else
automake_subminor_version=`$automake --version | grep " $automake_major\." | cut -d"." -f3`
version_id=`$automake --version 2>&1 | grep "(GNU automake)"`
if (test $automake_subminor_version -lt $automake_subminor); then
echo "Automake Version $version_id too old, building a new one..."
build_autotools=1
else
echo "Using automake ($version_id)"
fi
fi
else
build_autotools=1
fi
else
build_autotools=1
fi
return $build_autotools
}
#########################################################################################
check_autotool_prerequisites
build_autotools=$?
#########################################################################################
for arg in $@; do
if (test "x$arg" = "x--build-autotools"); then
echo "building autotools at user request"
build_autotools=1
fi
done
#########################################################################################
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.71 automake-1.16.5 libtool-2.4.7 ; 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
patch -p1 <build-aux/compile.patch
exit 0
fi
fi
# # now recursively call bootstrap with the autotools in our path
# export PATH=$autotools_distdir/bin:$PATH
# which autoreconf
# $0
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...