8502c98b15
We no longer `pollute' the namespace of possible header file names; instead we move `ft2build.h' up by one level so that it gets installed in the default include directory (e.g., /usr/local/include). After this commit, only `ft2build.h' stays in the compiler's include path. No visible changes for the user who follows the standard FreeType header inclusion rules. * include/*: Move to ... * include/freetype2/*: This directory, except `ft2build.h'. * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS, PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated. * builds/amiga/include/config/ftconfig.h, builds/freetype.mk (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work), builds/unix/install.mk (install, uninstall), builds/unix/freetype2.in: Updated. * builds/unix/freetype-config.in: Updated. Emit -I directory only if it is not `/usr/include'. * builds/wince/*, builds/windows/*: Updated. * devel/ft2build.h, include/ft2build.h: Updated. * include/freetype2/config/ftheader.h, include/freetype2/internal/ftserv.h, include/freetype2/internal/internal.h: Update all header file macros. * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated. * docs/*: Updated.
167 lines
3.9 KiB
Bash
Executable File
167 lines
3.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Copyright 2005-2015 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
|
|
# assume the output of "[TOOL] --version" is "toolname (GNU toolname foo bar) version"
|
|
if test "$field"x = x; then
|
|
field=3 # default to 3 for all GNU autotools, after filtering enclosed string
|
|
fi
|
|
version=`$1 --version | head -1 | sed 's/([^)]*)/()/g' | 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`
|
|
if test "$LIBTOOLIZE"x != x; then
|
|
:
|
|
elif test "$HOSTOS"x = Darwinx; then
|
|
LIBTOOLIZE=glibtoolize
|
|
else
|
|
LIBTOOLIZE=libtoolize
|
|
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/freetype2/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
|