misc/libfreetype/autogen.sh
changeset 5172 88f2e05288ba
equal deleted inserted replaced
5171:f9283dc4860d 5172:88f2e05288ba
       
     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 LIBTOOLIZE=libtoolize
       
   122 if test "$HOSTOS"x = Darwinx; then
       
   123   LIBTOOLIZE=glibtoolize
       
   124 fi
       
   125 
       
   126 if test "$ACLOCAL"x = x; then
       
   127   ACLOCAL=aclocal
       
   128 fi
       
   129 
       
   130 if test "$AUTOCONF"x = x; then
       
   131   AUTOCONF=autoconf
       
   132 fi
       
   133 
       
   134 check_tool_version $ACLOCAL    aclocal    ACLOCAL    1.10.1
       
   135 check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
       
   136 check_tool_version $AUTOCONF   autoconf   AUTOCONF   2.62
       
   137 
       
   138 # This sets freetype_major, freetype_minor, and freetype_patch.
       
   139 eval `sed -nf version.sed include/freetype/freetype.h`
       
   140 
       
   141 # We set freetype-patch to an empty value if it is zero.
       
   142 if test "$freetype_patch" = ".0"; then
       
   143   freetype_patch=
       
   144 fi
       
   145 
       
   146 cd builds/unix
       
   147 
       
   148 echo "generating \`configure.ac'"
       
   149 sed -e "s;@VERSION@;$freetype_major$freetype_minor$freetype_patch;" \
       
   150   < configure.raw > configure.ac
       
   151 
       
   152 run aclocal -I . --force
       
   153 run $LIBTOOLIZE --force --copy --install
       
   154 run autoconf --force
       
   155 
       
   156 chmod +x mkinstalldirs
       
   157 chmod +x install-sh
       
   158 
       
   159 cd ../..
       
   160 
       
   161 chmod +x ./configure
       
   162 
       
   163 # EOF