• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Configure paths for FreeType2
2# Marcelo Magallon 2001-10-26, based on `gtk.m4` by Owen Taylor
3#
4# Copyright (C) 2001-2023 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 7
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# To make this code work with older autoconf versions, `AS_HELP_STRING` is
26# not quoted.
27#
28AC_DEFUN([AC_CHECK_FT2],
29  [# Get the cflags and libraries from the freetype-config script
30   #
31   AC_ARG_WITH([ft-prefix],
32     AS_HELP_STRING([--with-ft-prefix=PREFIX],
33                    [Prefix where FreeType is installed (optional)]),
34     [ft_config_prefix="$withval"],
35     [ft_config_prefix=""])
36
37   AC_ARG_WITH([ft-exec-prefix],
38     AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
39                    [Exec prefix where FreeType is installed (optional)]),
40     [ft_config_exec_prefix="$withval"],
41     [ft_config_exec_prefix=""])
42
43   AC_ARG_ENABLE([freetypetest],
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 <freetype/freetype.h>
120#include <stdio.h>
121#include <stdlib.h>
122
123int
124main(void)
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