Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #!/bin/sh
  2.  
  3. # Copyright 2005, 2006, 2007, 2008, 2009, 2010 by
  4. # David Turner, Robert Wilhelm, and Werner Lemberg.
  5. #
  6. # This file is part of the FreeType project, and may only be used, modified,
  7. # and distributed under the terms of the FreeType project license,
  8. # LICENSE.TXT.  By continuing to use, modify, or distribute this file you
  9. # indicate that you have read the license and understand and accept it
  10. # fully.
  11.  
  12. run ()
  13. {
  14.   echo "running \`$*'"
  15.  eval $*
  16.  
  17.  if test $? != 0 ; then
  18.    echo "error while running \`$*'"
  19.     exit 1
  20.   fi
  21. }
  22.  
  23. get_major_version ()
  24. {
  25.   echo $1 | sed -e 's/\([0-9][0-9]*\)\..*/\1/g'
  26. }
  27.  
  28. get_minor_version ()
  29. {
  30.   echo $1 | sed -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g'
  31. }
  32.  
  33. get_patch_version ()
  34. {
  35.   # tricky: some version numbers don't include a patch
  36.   # separated with a point, but something like 1.4-p6
  37.   patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g'`
  38.   if test "$patch" = "$1"; then
  39.     patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\-p\([0-9][0-9]*\).*/\1/g'`
  40.     # if there isn't any patch number, default to 0
  41.     if test "$patch" = "$1"; then
  42.       patch=0
  43.     fi
  44.   fi
  45.   echo $patch
  46. }
  47.  
  48. # $1: version to check
  49. # $2: minimum version
  50.  
  51. compare_to_minimum_version ()
  52. {
  53.   MAJOR1=`get_major_version $1`
  54.   MAJOR2=`get_major_version $2`
  55.   if test $MAJOR1 -lt $MAJOR2; then
  56.     echo 0
  57.     return
  58.   else
  59.     if test $MAJOR1 -gt $MAJOR2; then
  60.       echo 1
  61.       return
  62.     fi
  63.   fi
  64.  
  65.   MINOR1=`get_minor_version $1`
  66.   MINOR2=`get_minor_version $2`
  67.   if test $MINOR1 -lt $MINOR2; then
  68.     echo 0
  69.     return
  70.   else
  71.     if test $MINOR1 -gt $MINOR2; then
  72.       echo 1
  73.       return
  74.     fi
  75.   fi
  76.  
  77.   PATCH1=`get_patch_version $1`
  78.   PATCH2=`get_patch_version $2`
  79.   if test $PATCH1 -lt $PATCH2; then
  80.     echo 0
  81.   else
  82.     echo 1
  83.   fi
  84. }
  85.  
  86. # check the version of a given tool against a minimum version number
  87. #
  88. # $1: tool path
  89. # $2: tool usual name (e.g. `aclocal')
  90. # $3: tool variable  (e.g. `ACLOCAL')
  91. # $4: minimum version to check against
  92. # $5: option field index used to extract the tool version from the
  93. #     output of --version
  94.  
  95. check_tool_version ()
  96. {
  97.   field=$5
  98.   # assume the output of "[TOOL] --version" is "toolname (GNU toolname foo bar) version"
  99.   if test "$field"x = x; then
  100.     field=3  # default to 3 for all GNU autotools, after filtering enclosed string
  101.   fi
  102.   version=`$1 --version | head -1 | sed 's/([^)]*)/()/g' | cut -d ' ' -f $field`
  103.   version_check=`compare_to_minimum_version $version $4`
  104.   if test "$version_check"x = 0x; then
  105.     echo "ERROR: Your version of the \`$2' tool is too old."
  106.    echo "       Minimum version $4 is required (yours is version $version)."
  107.    echo "       Please upgrade or use the $3 variable to point to a more recent one."
  108.    echo ""
  109.    exit 1
  110.  fi
  111. }
  112.  
  113. if test ! -f ./builds/unix/configure.raw; then
  114.  echo "You must be in the same directory as \`autogen.sh'."
  115.   echo "Bootstrapping doesn't work if srcdir != builddir."
  116.   exit 1
  117. fi
  118.  
  119. # On MacOS X, the GNU libtool is named `glibtool'.
  120. HOSTOS=`uname`
  121. if test "$LIBTOOLIZE"x != x; then
  122.   :
  123. elif test "$HOSTOS"x = Darwinx; then
  124.   LIBTOOLIZE=glibtoolize
  125. else
  126.   LIBTOOLIZE=libtoolize
  127. fi
  128.  
  129. if test "$ACLOCAL"x = x; then
  130.   ACLOCAL=aclocal
  131. fi
  132.  
  133. if test "$AUTOCONF"x = x; then
  134.   AUTOCONF=autoconf
  135. fi
  136.  
  137. check_tool_version $ACLOCAL    aclocal    ACLOCAL    1.10.1
  138. check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
  139. check_tool_version $AUTOCONF   autoconf   AUTOCONF   2.62
  140.  
  141. # This sets freetype_major, freetype_minor, and freetype_patch.
  142. eval `sed -nf version.sed include/freetype/freetype.h`
  143.  
  144. # We set freetype-patch to an empty value if it is zero.
  145. if test "$freetype_patch" = ".0"; then
  146.   freetype_patch=
  147. fi
  148.  
  149. cd builds/unix
  150.  
  151. echo "generating \`configure.ac'"
  152. sed -e "s;@VERSION@;$freetype_major$freetype_minor$freetype_patch;" \
  153.   < configure.raw > configure.ac
  154.  
  155. run aclocal -I . --force
  156. run $LIBTOOLIZE --force --copy --install
  157. run autoconf --force
  158.  
  159. chmod +x mkinstalldirs
  160. chmod +x install-sh
  161.  
  162. cd ../..
  163.  
  164. chmod +x ./configure
  165.  
  166. # EOF
  167.