#!/bin/sh | |
# Copyright 2005, 2006, 2007, 2008, 2009 by | |
# David Turner, Robert Wilhelm, and Werner Lemberg. | |
# | |
# This file is part of the FreeType project, and may only be used, modified, | |
# and distributed under the terms of the FreeType project license, | |
# LICENSE.TXT. By continuing to use, modify, or distribute this file you | |
# indicate that you have read the license and understand and accept it | |
# fully. | |
run () | |
{ | |
echo "running \`$*'" | |
eval $* | |
if test $? != 0 ; then | |
echo "error while running \`$*'" | |
exit 1 | |
fi | |
} | |
get_major_version () | |
{ | |
echo $1 | sed -e 's/\([0-9][0-9]*\)\..*/\1/g' | |
} | |
get_minor_version () | |
{ | |
echo $1 | sed -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g' | |
} | |
get_patch_version () | |
{ | |
# tricky: some version numbers don't include a patch | |
# separated with a point, but something like 1.4-p6 | |
patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g'` | |
if test "$patch" = "$1"; then | |
patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\-p\([0-9][0-9]*\).*/\1/g'` | |
# if there isn't any patch number, default to 0 | |
if test "$patch" = "$1"; then | |
patch=0 | |
fi | |
fi | |
echo $patch | |
} | |
# $1: version to check | |
# $2: minimum version | |
compare_to_minimum_version () | |
{ | |
MAJOR1=`get_major_version $1` | |
MAJOR2=`get_major_version $2` | |
if test $MAJOR1 -lt $MAJOR2; then | |
echo 0 | |
return | |
else | |
if test $MAJOR1 -gt $MAJOR2; then | |
echo 1 | |
return | |
fi | |
fi | |
MINOR1=`get_minor_version $1` | |
MINOR2=`get_minor_version $2` | |
if test $MINOR1 -lt $MINOR2; then | |
echo 0 | |
return | |
else | |
if test $MINOR1 -gt $MINOR2; then | |
echo 1 | |
return | |
fi | |
fi | |
PATCH1=`get_patch_version $1` | |
PATCH2=`get_patch_version $2` | |
if test $PATCH1 -lt $PATCH2; then | |
echo 0 | |
else | |
echo 1 | |
fi | |
} | |
# check the version of a given tool against a minimum version number | |
# | |
# $1: tool path | |
# $2: tool usual name (e.g. `aclocal') | |
# $3: tool variable (e.g. `ACLOCAL') | |
# $4: minimum version to check against | |
# $5: option field index used to extract the tool version from the | |
# output of --version | |
check_tool_version () | |
{ | |
field=$5 | |
if test "$field"x = x; then | |
field=4 # default to 4 for all GNU autotools | |
fi | |
version=`$1 --version | head -1 | cut -d ' ' -f $field` | |
version_check=`compare_to_minimum_version $version $4` | |
if test "$version_check"x = 0x; then | |
echo "ERROR: Your version of the \`$2' tool is too old." | |
echo " Minimum version $4 is required (yours is version $version)." | |
echo " Please upgrade or use the $3 variable to point to a more recent one." | |
echo "" | |
exit 1 | |
fi | |
} | |
if test ! -f ./builds/unix/configure.raw; then | |
echo "You must be in the same directory as \`autogen.sh'." | |
echo "Bootstrapping doesn't work if srcdir != builddir." | |
exit 1 | |
fi | |
# On MacOS X, the GNU libtool is named `glibtool'. | |
HOSTOS=`uname` | |
LIBTOOLIZE=libtoolize | |
if test "$HOSTOS"x = Darwinx; then | |
LIBTOOLIZE=glibtoolize | |
fi | |
if test "$ACLOCAL"x = x; then | |
ACLOCAL=aclocal | |
fi | |
if test "$AUTOCONF"x = x; then | |
AUTOCONF=autoconf | |
fi | |
check_tool_version $ACLOCAL aclocal ACLOCAL 1.10.1 | |
check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4 | |
check_tool_version $AUTOCONF autoconf AUTOCONF 2.62 | |
# This sets freetype_major, freetype_minor, and freetype_patch. | |
eval `sed -nf version.sed include/freetype/freetype.h` | |
# We set freetype-patch to an empty value if it is zero. | |
if test "$freetype_patch" = ".0"; then | |
freetype_patch= | |
fi | |
cd builds/unix | |
echo "generating \`configure.ac'" | |
sed -e "s;@VERSION@;$freetype_major$freetype_minor$freetype_patch;" \ | |
< configure.raw > configure.ac | |
run aclocal -I . --force | |
run $LIBTOOLIZE --force --copy --install | |
run autoconf --force | |
chmod +x mkinstalldirs | |
chmod +x install-sh | |
cd ../.. | |
chmod +x ./configure | |
# EOF |