909c5a28b31ef2a11871b5b91650e432131acd37
[vte.git] / acinclude.m4
1 dnl From msw.
2 dnl
3 dnl a macro to check for ability to create python extensions
4 dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
5 dnl function also defines PYTHON_INCLUDES
6 AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
7 [AC_REQUIRE([AM_PATH_PYTHON])
8 AC_MSG_CHECKING(for headers required to compile python extensions)
9 dnl deduce PYTHON_INCLUDES
10 py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
11 py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
12 if test -x "$PYTHON-config"; then
13     PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null`
14 else
15     PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
16     if test "$py_prefix" != "$py_exec_prefix"; then
17       PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
18     fi
19 fi
20 PYTHON_LIBS="-L${py_prefix}/libs -lpython${PYTHON_VERSION}"
21 AC_SUBST(PYTHON_INCLUDES)
22 AC_SUBST(PYTHON_LIBS)
23 dnl check if the headers exist:
24 save_CPPFLAGS="$CPPFLAGS"
25 CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
26 AC_TRY_CPP([#include <Python.h>],dnl
27 [AC_MSG_RESULT(found)
28 $1],dnl
29 [AC_MSG_RESULT(not found)
30 $2])
31 CPPFLAGS="$save_CPPFLAGS"
32 ])
33
34 dnl From ac-archive.
35 dnl
36 dnl @synopsis AC_CHECK_CC_OPT(flag, cachevarname)
37 dnl 
38 dnl AC_CHECK_CC_OPT(-fvomit-frame,vomitframe)
39 dnl would show a message as like 
40 dnl "checking wether gcc accepts -fvomit-frame ... no"
41 dnl and sets the shell-variable $vomitframe to either "-fvomit-frame"
42 dnl or (in this case) just a simple "". In many cases you would then call 
43 dnl AC_SUBST(_fvomit_frame_,$vomitframe) to create a substitution that
44 dnl could be fed as "CFLAGS = @_funsigned_char_@ @_fvomit_frame_@
45 dnl
46 dnl in consequence this function is much more general than their 
47 dnl specific counterparts like ac_cxx_rtti.m4 that will test for
48 dnl -fno-rtti -fno-exceptions
49 dnl 
50 dnl @version $Id$
51 dml @author  Guido Draheim <guidod@gmx.de>
52
53 AC_DEFUN([AC_CHECK_CC_OPT],
54 [AC_CACHE_CHECK(whether ${CC-cc} accepts [$1], [$2],
55 [AC_SUBST($2)
56 echo 'void f(){}' > conftest.c
57 if test -z "`${CC-cc} -c $1 conftest.c 2>&1`"; then
58   $2="$1"
59 else
60   $2=""
61 fi
62 rm -f conftest*
63 ])])
64
65 # Configure paths for FreeType2
66 # Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
67 # Renamed to VTE_CHECK_FT2 so that it doesn't get dropped, otherwise identical.
68
69 dnl VTE_CHECK_FT2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
70 dnl Test for FreeType2, and define FT2_CFLAGS and FT2_LIBS
71 dnl
72 AC_DEFUN([VTE_CHECK_FT2],
73 [dnl
74 dnl Get the cflags and libraries from the freetype-config script
75 dnl
76 AC_ARG_WITH(ft-prefix,
77 [  --with-ft-prefix=PREFIX
78                           Prefix where FreeType is installed (optional)],
79             ft_config_prefix="$withval", ft_config_prefix="")
80 AC_ARG_WITH(ft-exec-prefix,
81 [  --with-ft-exec-prefix=PREFIX
82                           Exec prefix where FreeType is installed (optional)],
83             ft_config_exec_prefix="$withval", ft_config_exec_prefix="")
84 AC_ARG_ENABLE(freetypetest,
85 [  --disable-freetypetest  Do not try to compile and run
86                           a test FreeType program],
87               [], enable_fttest=yes)
88
89 if test x$ft_config_exec_prefix != x ; then
90   ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix"
91   if test x${FT2_CONFIG+set} != xset ; then
92     FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config
93   fi
94 fi
95 if test x$ft_config_prefix != x ; then
96   ft_config_args="$ft_config_args --prefix=$ft_config_prefix"
97   if test x${FT2_CONFIG+set} != xset ; then
98     FT2_CONFIG=$ft_config_prefix/bin/freetype-config
99   fi
100 fi
101 AC_PATH_PROG(FT2_CONFIG, freetype-config, no)
102
103 min_ft_version=ifelse([$1], ,6.1.0,$1)
104 AC_MSG_CHECKING(for FreeType - version >= $min_ft_version)
105 no_ft=""
106 if test "$FT2_CONFIG" = "no" ; then
107   no_ft=yes
108 else
109   FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags`
110   FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs`
111   ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \
112          sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
113   ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \
114          sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
115   ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \
116          sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
117   ft_min_major_version=`echo $min_ft_version | \
118          sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
119   ft_min_minor_version=`echo $min_ft_version | \
120          sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
121   ft_min_micro_version=`echo $min_ft_version | \
122          sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
123   if test x$enable_fttest = xyes ; then
124     ft_config_is_lt=""
125     if test $ft_config_major_version -lt $ft_min_major_version ; then
126       ft_config_is_lt=yes
127     else
128       if test $ft_config_major_version -eq $ft_min_major_version ; then
129         if test $ft_config_minor_version -lt $ft_min_minor_version ; then
130           ft_config_is_lt=yes
131         else
132           if test $ft_config_minor_version -eq $ft_min_minor_version ; then
133             if test $ft_config_micro_version -lt $ft_min_micro_version ; then
134               ft_config_is_lt=yes
135             fi
136           fi
137         fi
138       fi
139     fi
140     if test x$ft_config_is_lt = xyes ; then
141       no_ft=yes
142     else
143       ac_save_CFLAGS="$CFLAGS"
144       ac_save_LIBS="$LIBS"
145       CFLAGS="$CFLAGS $FT2_CFLAGS"
146       LIBS="$FT2_LIBS $LIBS"
147 dnl
148 dnl Sanity checks for the results of freetype-config to some extent
149 dnl
150       AC_TRY_RUN([
151 #include <ft2build.h>
152 #include FT_FREETYPE_H
153 #include <stdio.h>
154 #include <stdlib.h>
155
156 int
157 main()
158 {
159   FT_Library library;
160   FT_Error error;
161
162   error = FT_Init_FreeType(&library);
163
164   if (error)
165     return 1;
166   else
167   {
168     FT_Done_FreeType(library);
169     return 0;
170   }
171 }
172 ],, no_ft=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
173       CFLAGS="$ac_save_CFLAGS"
174       LIBS="$ac_save_LIBS"
175     fi             # test $ft_config_version -lt $ft_min_version
176   fi               # test x$enable_fttest = xyes
177 fi                 # test "$FT2_CONFIG" = "no"
178 if test x$no_ft = x ; then
179    AC_MSG_RESULT(yes)
180    ifelse([$2], , :, [$2])
181 else
182    AC_MSG_RESULT(no)
183    if test "$FT2_CONFIG" = "no" ; then
184      echo "*** The freetype-config script installed by FreeType 2 could not be found."
185      echo "*** If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in"
186      echo "*** your path, or set the FT2_CONFIG environment variable to the"
187      echo "*** full path to freetype-config."
188    else
189      if test x$ft_config_is_lt = xyes ; then
190        echo "*** Your installed version of the FreeType 2 library is too old."
191        echo "*** If you have different versions of FreeType 2, make sure that"
192        echo "*** correct values for --with-ft-prefix or --with-ft-exec-prefix"
193        echo "*** are used, or set the FT2_CONFIG environment variable to the"
194        echo "*** full path to freetype-config."
195      else
196        echo "*** The FreeType test program failed to run.  If your system uses"
197        echo "*** shared libraries and they are installed outside the normal"
198        echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
199        echo "*** (or whatever is appropiate for your system) is correctly set."
200      fi
201    fi
202    FT2_CFLAGS=""
203    FT2_LIBS=""
204    ifelse([$3], , :, [$3])
205 fi
206 AC_SUBST(FT2_CFLAGS)
207 AC_SUBST(FT2_LIBS)
208 ])