Home | History | Annotate | Download | only in unix
      1 # Configure paths for FreeType2
      2 # Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
      3 #
      4 # Copyright 2001-2018 by
      5 # David Turner, Robert Wilhelm, and Werner Lemberg.
      6 #
      7 # This file is part of the FreeType project, and may only be used, modified,
      8 # and distributed under the terms of the FreeType project license,
      9 # LICENSE.TXT.  By continuing to use, modify, or distribute this file you
     10 # indicate that you have read the license and understand and accept it
     11 # fully.
     12 #
     13 # As a special exception to the FreeType project license, this file may be
     14 # distributed as part of a program that contains a configuration script
     15 # generated by Autoconf, under the same distribution terms as the rest of
     16 # that program.
     17 #
     18 # serial 4
     19 
     20 # AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
     21 # Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
     22 # MINIMUM-VERSION is what libtool reports; the default is `7.0.1' (this is
     23 # FreeType 2.0.4).
     24 #
     25 AC_DEFUN([AC_CHECK_FT2],
     26   [# Get the cflags and libraries from the freetype-config script
     27    #
     28    AC_ARG_WITH([ft-prefix],
     29      dnl don't quote AS_HELP_STRING!
     30      AS_HELP_STRING([--with-ft-prefix=PREFIX],
     31                     [Prefix where FreeType is installed (optional)]),
     32      [ft_config_prefix="$withval"],
     33      [ft_config_prefix=""])
     34 
     35    AC_ARG_WITH([ft-exec-prefix],
     36      dnl don't quote AS_HELP_STRING!
     37      AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
     38                     [Exec prefix where FreeType is installed (optional)]),
     39      [ft_config_exec_prefix="$withval"],
     40      [ft_config_exec_prefix=""])
     41 
     42    AC_ARG_ENABLE([freetypetest],
     43      dnl don't quote AS_HELP_STRING!
     44      AS_HELP_STRING([--disable-freetypetest],
     45                     [Do not try to compile and run a test FreeType program]),
     46      [],
     47      [enable_fttest=yes])
     48 
     49    if test x$ft_config_exec_prefix != x ; then
     50      ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix"
     51      if test x${FT2_CONFIG+set} != xset ; then
     52        FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config
     53      fi
     54    fi
     55 
     56    if test x$ft_config_prefix != x ; then
     57      ft_config_args="$ft_config_args --prefix=$ft_config_prefix"
     58      if test x${FT2_CONFIG+set} != xset ; then
     59        FT2_CONFIG=$ft_config_prefix/bin/freetype-config
     60      fi
     61    fi
     62 
     63    if test "x$FT2_CONFIG" = x ; then
     64      AC_PATH_TOOL([FT2_CONFIG], [freetype-config], [no])
     65    fi
     66 
     67    min_ft_version=m4_if([$1], [], [7.0.1], [$1])
     68    AC_MSG_CHECKING([for FreeType -- version >= $min_ft_version])
     69    no_ft=""
     70    if test "$FT2_CONFIG" = "no" ; then
     71      no_ft=yes
     72    else
     73      FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags`
     74      FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs`
     75      ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \
     76        sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
     77      ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \
     78        sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
     79      ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \
     80        sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
     81      ft_min_major_version=`echo $min_ft_version | \
     82        sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
     83      ft_min_minor_version=`echo $min_ft_version | \
     84        sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
     85      ft_min_micro_version=`echo $min_ft_version | \
     86        sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
     87      if test x$enable_fttest = xyes ; then
     88        ft_config_is_lt=""
     89        if test $ft_config_major_version -lt $ft_min_major_version ; then
     90          ft_config_is_lt=yes
     91        else
     92          if test $ft_config_major_version -eq $ft_min_major_version ; then
     93            if test $ft_config_minor_version -lt $ft_min_minor_version ; then
     94              ft_config_is_lt=yes
     95            else
     96              if test $ft_config_minor_version -eq $ft_min_minor_version ; then
     97                if test $ft_config_micro_version -lt $ft_min_micro_version ; then
     98                  ft_config_is_lt=yes
     99                fi
    100              fi
    101            fi
    102          fi
    103        fi
    104        if test x$ft_config_is_lt = xyes ; then
    105          no_ft=yes
    106        else
    107          ac_save_CFLAGS="$CFLAGS"
    108          ac_save_LIBS="$LIBS"
    109          CFLAGS="$CFLAGS $FT2_CFLAGS"
    110          LIBS="$FT2_LIBS $LIBS"
    111 
    112          #
    113          # Sanity checks for the results of freetype-config to some extent.
    114          #
    115          AC_RUN_IFELSE([
    116              AC_LANG_SOURCE([[
    117 
    118 #include <ft2build.h>
    119 #include FT_FREETYPE_H
    120 #include <stdio.h>
    121 #include <stdlib.h>
    122 
    123 int
    124 main()
    125 {
    126   FT_Library library;
    127   FT_Error  error;
    128 
    129   error = FT_Init_FreeType(&library);
    130 
    131   if (error)
    132     return 1;
    133   else
    134   {
    135     FT_Done_FreeType(library);
    136     return 0;
    137   }
    138 }
    139 
    140              ]])
    141            ],
    142            [],
    143            [no_ft=yes],
    144            [echo $ECHO_N "cross compiling; assuming OK... $ECHO_C"])
    145 
    146          CFLAGS="$ac_save_CFLAGS"
    147          LIBS="$ac_save_LIBS"
    148        fi             # test $ft_config_version -lt $ft_min_version
    149      fi               # test x$enable_fttest = xyes
    150    fi                 # test "$FT2_CONFIG" = "no"
    151 
    152    if test x$no_ft = x ; then
    153      AC_MSG_RESULT([yes])
    154      m4_if([$2], [], [:], [$2])
    155    else
    156      AC_MSG_RESULT([no])
    157      if test "$FT2_CONFIG" = "no" ; then
    158        AC_MSG_WARN([
    159 
    160   The freetype-config script installed by FreeType 2 could not be found.
    161   If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in
    162   your path, or set the FT2_CONFIG environment variable to the
    163   full path to freetype-config.
    164        ])
    165      else
    166        if test x$ft_config_is_lt = xyes ; then
    167          AC_MSG_WARN([
    168 
    169   Your installed version of the FreeType 2 library is too old.
    170   If you have different versions of FreeType 2, make sure that
    171   correct values for --with-ft-prefix or --with-ft-exec-prefix
    172   are used, or set the FT2_CONFIG environment variable to the
    173   full path to freetype-config.
    174          ])
    175        else
    176          AC_MSG_WARN([
    177 
    178   The FreeType test program failed to run.  If your system uses
    179   shared libraries and they are installed outside the normal
    180   system library path, make sure the variable LD_LIBRARY_PATH
    181   (or whatever is appropriate for your system) is correctly set.
    182          ])
    183        fi
    184      fi
    185 
    186      FT2_CFLAGS=""
    187      FT2_LIBS=""
    188      m4_if([$3], [], [:], [$3])
    189    fi
    190 
    191    AC_SUBST([FT2_CFLAGS])
    192    AC_SUBST([FT2_LIBS])])
    193 
    194 # end of freetype2.m4
    195