201 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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
 | 
