diff options
Diffstat (limited to 'modules/freetype2/autogen.sh')
-rwxr-xr-x | modules/freetype2/autogen.sh | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/modules/freetype2/autogen.sh b/modules/freetype2/autogen.sh new file mode 100755 index 0000000000..ff5e46f0d2 --- /dev/null +++ b/modules/freetype2/autogen.sh @@ -0,0 +1,200 @@ +#!/bin/sh + +# Copyright (C) 2005-2023 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 +} + +# Solaris 10's shell doesn't like the `!` operator to negate the exit status. +if test -f ./builds/unix/configure.raw; then + : +else + 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 version. +eval `sed -n \ +-e 's/^#define *\(FREETYPE_MAJOR\) *\([0-9][0-9]*\).*/\1=\2/p' \ +-e 's/^#define *\(FREETYPE_MINOR\) *\([0-9][0-9]*\).*/\1=\2/p' \ +-e 's/^#define *\(FREETYPE_PATCH\) *\([0-9][0-9]*\).*/\1=\2/p' \ +include/freetype/freetype.h` + +if test "$FREETYPE_PATCH" = "0"; then + FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR +else + FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH +fi + +echo "FreeType $FREETYPE:" + +cd builds/unix + +echo "generating \`configure.ac'" +sed -e "s;@VERSION@;$FREETYPE;" \ + < configure.raw > configure.ac + +run aclocal -I . --force +run $LIBTOOLIZE --force --copy --install +run autoconf --force + +chmod +x install-sh + +cd ../.. + +chmod +x ./configure + +# Copy all necessary 'dlg' files. +copy_submodule_files () +{ + echo "Copying files from \`subprojects/dlg' to \`src/dlg' and \`include/dlg'" + mkdir include/dlg 2> /dev/null + cp $DLG_INC_DIR/output.h include/dlg + cp $DLG_INC_DIR/dlg.h include/dlg + cp $DLG_SRC_DIR/* src/dlg +} + +if test -e ".git"; then + DLG_INC_DIR=subprojects/dlg/include/dlg + DLG_SRC_DIR=subprojects/dlg/src/dlg + + if test -d "$DLG_INC_DIR"; then + : + else + echo "Checking out submodule in \`subprojects/dlg':" + git submodule init + git submodule update + fi + + copy_submodule_files +fi + +# EOF |