c3fe29c34cbe38bf3c80b5903c814496965a0b15
[vte.git] / configure.in
1 AC_PREREQ(2.56)
2 AC_INIT(vte, [0.13.2],
3         [http://bugzilla.gnome.org/enter_bug.cgi?product=vte])
4 AC_CONFIG_SRCDIR([src/vte.c])
5 AM_INIT_AUTOMAKE(1.6)
6 AM_CONFIG_HEADER([config.h])
7
8 AC_ISC_POSIX
9 AC_PROG_CC
10 AC_STDC_HEADERS
11 AM_PROG_CC_STDC
12 AM_MAINTAINER_MODE
13
14 AM_PROG_LIBTOOL
15 IT_PROG_INTLTOOL([0.35.0])
16
17 GETTEXT_PACKAGE=vte
18 AC_SUBST(GETTEXT_PACKAGE)
19 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",
20                    [Package translatable messages domain name.])
21 AM_GLIB_GNU_GETTEXT
22 AC_CHECK_DECLS(bind_textdomain_codeset,,,[#include "libintl.h"])
23
24 # On some OSs, AC_PATH_XTRA doesn't work right(?), so let the user specify
25 # X_PRE_LIBS and X_EXTRA_LIBS to add even more libraries, and add -lX11 to
26 # the list of libraries for grins.
27 AC_PATH_XTRA
28 X_CFLAGS=
29 X_LIBS=
30 if test "$have_x" = yes ; then
31         if test -d "$ac_x_includes" ; then
32                 X_CFLAGS="-I$ac_x_includes $X_CFLAGS"
33         fi
34         X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
35         if test -d "$ac_x_libraries" ; then
36                 X_LIBS="-L$ac_x_libraries $X_LIBS"
37         fi
38 fi
39 AC_SUBST(X_CFLAGS)
40 AC_SUBST(X_LIBS)
41
42 AC_DEFINE(GDK_MULTIHEAD_SAFE,1,[Force use of GDK's multihead-safe APIs.])
43 PKG_CHECK_MODULES(GLIB,glib-2.0 > 2.9.0)
44 PKG_CHECK_MODULES(GOBJECT,[glib-2.0 gobject-2.0])
45 PKG_CHECK_MODULES(GTK,[glib-2.0 gobject-2.0 gtk+-2.0 >= 2.6.0])
46
47 wantedmodules="glib-2.0 gobject-2.0 gtk+-2.0 fontconfig"
48
49 # Let the user specify the default terminal emulation.
50 AC_ARG_WITH(default-emulation,
51 AS_HELP_STRING(--with-default-emulation=xterm,default terminal type to be emulated),
52 emulation=$withval,emulation=xterm)
53 AC_DEFINE_UNQUOTED(VTE_DEFAULT_EMULATION,"$emulation",[The default terminal type to be emulated.])
54 VTE_DEFAULT_EMULATION=$emulation
55 AC_SUBST(VTE_DEFAULT_EMULATION)
56
57 # Use Xft2 if Pango has Xft2 support and it isn't disabled.
58 if test "$have_x" = yes ; then
59         AC_ARG_WITH(xft2,[AS_HELP_STRING(--with-xft2,enable drawing using Xft2)],with_xft2=$withval,with_xft2=yes)
60         if test $with_xft2 = yes ; then
61                 if pkg-config --exists pangoxft '>=' 1.1.0 ; then
62                         AC_DEFINE(HAVE_XFT2,1,[Whether we have Xft2])
63                         wantedmodules="$wantedmodules pangoxft >= 1.1.0"
64                         wantedmodules="xft >= 2.0 $wantedmodules"
65                 else
66                         AC_MSG_WARN([Xft2 not detected])
67                 fi
68         fi
69 fi
70
71 # Use PangoX if we have it and it isn't disabled.
72 if test "$have_x" = yes ; then
73         AC_ARG_WITH(pangox,[AS_HELP_STRING(--with-pangox,enable drawing using PangoX)],with_pangox=$withval,with_pangox=yes)
74         if test $with_pangox = yes ; then
75                 if pkg-config --exists pangox ; then
76                         AC_DEFINE(HAVE_PANGOX,1,[Whether we have PangoX])
77                         wantedmodules="$wantedmodules pangox"
78                 else
79                         AC_MSG_WARN([PangoX not detected])
80                 fi
81         fi
82 fi
83
84 # Use glX if we have it and it isn't disabled.
85 if test "$have_x" = yes ; then
86         AC_ARG_WITH(glX,[AS_HELP_STRING(--with-glX,enable drawing using glX)],with_glx=$withval,with_glx=no)
87         if test $with_glx = yes ; then
88                 have_gl=0
89                 have_libgl=0
90                 AC_CHECK_HEADERS(GL/glx.h)
91                 if test $ac_cv_header_GL_glx_h = yes ; then
92                         AC_CHECK_FUNC(glXQueryExtension,[have_gl=1],AC_CHECK_LIB(GL,glXQueryExtension,[have_gl=1;have_libgl=1]))
93                 fi
94                 if test $have_gl = 1 ; then
95                         AC_DEFINE(HAVE_GL,1,[Whether we have GL and glX.])
96                 fi
97                 if test $have_libgl = 1 ; then
98                         LIBS="-lGLU -lGL $LIBS"
99                 fi
100         fi
101 fi
102
103 # Search for the required modules.
104 PKG_CHECK_MODULES(VTE,[$wantedmodules])
105 NEEDEDPACKAGES="$wantedmodules"
106 AC_SUBST(NEEDEDPACKAGES)
107
108 # Require Freetype2.  We use our local copy of the macro because packages of
109 # freetype's development files don't always include the proper macro.
110 VTE_CHECK_FT2(6.1.0,,[AC_MSG_ERROR([You must have freetype 2.0.2 or later to build vte.])])
111
112 # Temporarily pull in the Freetype cflags and libs for checking what's
113 # available in this version.
114 savecflags="$CFLAGS"
115 CFLAGS="$CFLAGS $FT2_CFLAGS"
116 savecppflags="$CPPFLAGS"
117 CPPFLAGS="$CPPFLAGS $FT2_CFLAGS"
118 if test -d "$ac_x_includes" ; then
119         CFLAGS="$CFLAGS -I$ac_x_includes"
120         CPPFLAGS="$CPPFLAGS -I$ac_x_includes"
121 fi
122 AC_CHECK_HEADERS(ft2build.h)
123 if test x$ac_cv_header_ft2build_h != xyes ; then
124         AC_MSG_ERROR([You must have freetype 2.0.2 or later to build vte.])
125 fi
126
127 AC_CHECK_DECL(ft_render_mode_mono,[AC_DEFINE(HAVE_DECL_ft_render_mode_mono,1,Define if your freetype2 installation defines ft_render_mode_mono.)],,[
128 #ifdef HAVE_FT2BUILD_H
129 #include <ft2build.h>
130 #include FT_FREETYPE_H
131 #endif
132 ])
133
134 AC_CHECK_DECL(FT_RENDER_MODE_MONO,[AC_DEFINE(HAVE_DECL_FT_RENDER_MODE_MONO,1,Define if your freetype2 installation defines FT_RENDER_MODE_MONO.)],,[
135 #ifdef HAVE_FT2BUILD_H
136 #include <ft2build.h>
137 #include FT_FREETYPE_H
138 #endif
139 ])
140
141 AC_CHECK_DECLS(FT_LOAD_NO_HINTING,,,[
142 #ifdef HAVE_FT2BUILD_H
143 #include <ft2build.h>
144 #include FT_FREETYPE_H
145 #endif
146 ])
147
148 AC_CHECK_DECLS(FT_RENDER_MODE_LIGHT,,,[
149 #ifdef HAVE_FT2BUILD_H
150 #include <ft2build.h>
151 #include FT_FREETYPE_H
152 #endif
153 ])
154
155 AC_CHECK_DECLS(FT_RENDER_MODE_NORMAL,,,[
156 #ifdef HAVE_FT2BUILD_H
157 #include <ft2build.h>
158 #include FT_FREETYPE_H
159 #endif
160 ])
161
162 AC_CHECK_DECL(FT_PIXEL_MODE_MONO,[AC_DEFINE(HAVE_DECL_FT_PIXEL_MODE_MONO,1,Define if your freetype2 build declares FT_PIXEL_MODE_MONO.)],,[
163 #ifdef HAVE_FT2BUILD_H
164 #include <ft2build.h>
165 #include FT_FREETYPE_H
166 #endif
167 ])
168 AC_CHECK_DECL(ft_pixel_mode_mono,[AC_DEFINE(HAVE_DECL_ft_pixel_mode_mono,1,Define if your freetype2 build declares ft_pixel_mode_mono.)],,[
169 #ifdef HAVE_FT2BUILD_H
170 #include <ft2build.h>
171 #include FT_FREETYPE_H
172 #endif
173 ])
174
175 AC_CHECK_DECLS(FT_PIXEL_MODE_GRAY2,,,[
176 #ifdef HAVE_FT2BUILD_H
177 #include <ft2build.h>
178 #include FT_FREETYPE_H
179 #endif
180 ])
181 AC_CHECK_DECLS(FT_PIXEL_MODE_GRAY4,,,[
182 #ifdef HAVE_FT2BUILD_H
183 #include <ft2build.h>
184 #include FT_FREETYPE_H
185 #endif
186 ])
187
188 AC_CHECK_DECL(FT_PIXEL_MODE_GRAY,[AC_DEFINE(HAVE_DECL_FT_PIXEL_MODE_GRAY,1,Define if your freetype2 build declares FT_PIXEL_MODE_GRAY.)],,[
189 #ifdef HAVE_FT2BUILD_H
190 #include <ft2build.h>
191 #include FT_FREETYPE_H
192 #endif
193 ])
194 AC_CHECK_DECL(ft_pixel_mode_grays,[AC_DEFINE(HAVE_DECL_ft_pixel_mode_grays,1,Define if your freetype2 build declares ft_pixel_mode_grays.)],,[
195 #ifdef HAVE_FT2BUILD_H
196 #include <ft2build.h>
197 #include FT_FREETYPE_H
198 #endif
199 ])
200
201 AC_CHECK_DECLS(FT_PIXEL_MODE_LCD,,,[
202 #ifdef HAVE_FT2BUILD_H
203 #include <ft2build.h>
204 #include FT_FREETYPE_H
205 #endif
206 ])
207
208 CFLAGS="$savecflags"
209 CPPFLAGS="$savecppflags"
210
211 # Use all available features under glibc, and disable accidental use of
212 # deprecated functionality.
213 AC_EGREP_CPP(glibc,
214                 [
215                  #include <stdio.h>
216                  #ifdef __GLIBC__
217                  glibc
218                  #endif
219                 ],
220                 AC_DEFINE(_GNU_SOURCE,1,[Use all glibc features.]))
221
222 AC_CANONICAL_HOST
223 case $host in
224 *-*-solaris*)
225         AC_DEFINE(_XOPEN_SOURCE_EXTENDED,1,[Needed to get declarations for msg_control and msg_controllen on Solaris])
226         AC_DEFINE(_XOPEN_SOURCE,1,[Needed to get declarations for msg_control and msg_controllen on Solaris])
227         AC_DEFINE(__EXTENSIONS__,1,[Needed to get declarations for msg_control and msg_controllen on Solaris])
228         ;;
229 esac
230
231 AC_ARG_ENABLE(deprecation,[AS_HELP_STRING(--enable-deprecation,prohibit VTE from using deprecated GLib/Pango/GDK/GTK+ features)],usedeprecation=$enableval,usedeprecation=no)
232 if test "$usedeprecation" = yes ; then
233 AC_DEFINE(G_DISABLE_DEPRECATED,1,[Disable deprecated GLib features.])
234 AC_DEFINE(GDK_DISABLE_DEPRECATED,1,[Disable deprecated GDK features.])
235 AC_DEFINE(GDK_PIXBUF_DISABLE_DEPRECATED,1,[Disable deprecated gdk-pixbuf features.])
236 AC_DEFINE(GTK_DISABLE_DEPRECATED,1,[Disable deprecated GTK+ features.])
237 AC_DEFINE(PANGO_DISABLE_DEPRECATED,1,[Disable deprecated Pango features.])
238 fi
239
240 # Miscellaneous definitions.
241 AC_DEFINE(VTE_UTF8_BPC,6,[Maximum number of bytes used per UTF-8 character.])
242 AC_DEFINE(VTE_INVALID_SOURCE,-1,[A number which can never be a valid source ID.])
243 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE",[Package name.])
244
245 # Check for headers.
246 AC_CHECK_HEADERS(sys/select.h sys/syslimits.h sys/termios.h sys/un.h stropts.h termios.h wchar.h)
247 AC_HEADER_TIOCGWINSZ
248
249 # Check for PTY handling functions.
250 AC_CHECK_FUNCS(cfmakeraw getpgid getpt grantpt unlockpt ptsname ptsname_r)
251
252 # Pull in the right libraries for various functions which might not be
253 # bundled into an exploded libc.
254 AC_CHECK_FUNC(socket,[have_socket=1],AC_CHECK_LIB(socket,socket,[have_socket=1; LIBS="$LIBS -lsocket"]))
255 AC_CHECK_FUNC(socketpair,[have_socketpair=1],AC_CHECK_LIB(socket,socketpair,[have_socketpair=1; LIBS="$LIBS -lsocket"]))
256 AC_CHECK_FUNC(recvmsg,[have_recvmsg=1],AC_CHECK_LIB(socket,recvmsg,[have_recvmsg=1; LIBS="$LIBS -lsocket -lnsl"]))
257 if test x$have_socket = x1 ; then
258         AC_DEFINE(HAVE_SOCKET,1,[Define if you have the socket function.])
259 fi
260 if test x$have_socketpair = x1 ; then
261         AC_DEFINE(HAVE_SOCKETPAIR,1,[Define if you have the socketpair function.])
262 fi
263 if test x$have_recvmsg = x1 ; then
264         AC_DEFINE(HAVE_RECVMSG,1,[Define if you have the recvmsg function.])
265 fi
266 AC_CHECK_FUNC(floor,,AC_CHECK_LIB(m,floor,LIBS=["$LIBS -lm"]))
267
268 # Look for ncurses or curses or termcap.
269 AC_CHECK_HEADER(ncurses.h,[AC_CHECK_HEADER(term.h,[AC_CHECK_LIB(ncurses,tgetent,[LIBS="-lncurses $LIBS";AC_DEFINE(HAVE_NCURSES,1,[Define if you have ncurses.h and libncurses])])])])
270 if test x$ac_cv_lib_ncurses_tgetent != xyes ; then
271         AC_CHECK_HEADER(ncurses/curses.h,[AC_CHECK_HEADER(ncurses/term.h,[AC_CHECK_LIB(ncurses,tgetent,[LIBS="-lncurses $LIBS";AC_DEFINE(HAVE_NCURSES_CURSES,1,[Define if you have ncurses/curses.h and libncurses])])])])
272         if test x$ac_cv_lib_ncurses_tgetent != xyes ; then
273                 AC_CHECK_HEADER(curses.h,[AC_CHECK_HEADER(term.h,[AC_CHECK_LIB(curses,tgetent,[LIBS="-lcurses $LIBS";AC_DEFINE(HAVE_CURSES,1,[Define if you have curses.h and libcurses])])])])
274                 if test x$ac_cv_lib_curses_tgetent != xyes ; then
275                         AC_CHECK_HEADER(termcap.h,[AC_CHECK_LIB(termcap,tgetent,[LIBS="-ltermcap $LIBS";AC_DEFINE(HAVE_TERMCAP,1,[Define if you have termcap.h and libtermcap])])])
276                         if test x$ac_cv_header_termcap_h != xyes ; then
277                                 AC_MSG_ERROR([You must have at least one of ncurses, curses, or libtermcap installed to build vte.])
278                         fi
279                 fi
280         fi
281 fi
282
283 # Save the names of these other libraries.
284 OTHERCFLAGS="$X_CFLAGS"
285 AC_SUBST(OTHERCFLAGS)
286 OTHERLIBS="$LIBS"
287 AC_SUBST(OTHERLIBS)
288
289 # Enable debugging messages and additional run-time checks.
290 AC_ARG_ENABLE(debugging,[AS_HELP_STRING(--enable-debugging,enable extra debugging checks and logging messages)],DEBUG=$enableval,DEBUG=no)
291 if test x$DEBUG != x ; then
292         if test x$DEBUG != xno ; then
293                 if test x$GCC = xyes ; then
294                         AC_CHECK_CC_OPT(-std=c99,vte_std_c99)
295                         CFLAGS="${CFLAGS} $vte_std_c99"
296                         CFLAGS="${CFLAGS} -Wall"
297                         CFLAGS="${CFLAGS} -Waggregate-return"
298                         CFLAGS="${CFLAGS} -Wcast-align"
299                         CFLAGS="${CFLAGS} -Wimplicit"
300                         CFLAGS="${CFLAGS} -Wmissing-declarations"
301                         CFLAGS="${CFLAGS} -Wmissing-prototypes"
302                         CFLAGS="${CFLAGS} -Wpointer-arith"
303                         CFLAGS="${CFLAGS} -Wstrict-prototypes"
304                         CFLAGS="${CFLAGS} -Wuninitialized"
305                         #CFLAGS="${CFLAGS} -Wsign-compare"
306                         #CFLAGS="${CFLAGS} -Wunused-value"
307                 fi
308                 VTE_DEBUG=1
309         fi
310 fi
311 if test x$VTE_DEBUG = x1 ; then
312         AC_MSG_RESULT([enabling debug checks and messages])
313         AC_DEFINE(VTE_DEBUG,1,[Enable debugging messages.])
314 fi
315
316 wcs_funcs_includes="
317 #ifdef HAVE_STRING_H
318 # if !STDC_HEADERS && HAVE_MEMORY_H
319 #  include <memory.h>
320 # endif
321 # include <string.h>
322 #else
323 # ifdef HAVE_STRINGS_H
324 #  include <strings.h>
325 # endif
326 #endif
327 #ifdef HAVE_WCHAR_H
328 # include <wchar.h>
329 #endif
330 "
331
332 AC_CHECK_TYPES(wint_t, AC_DEFINE(HAVE_WINT_T, , [Defined when the wint_t type is supported]), ,$wcs_funcs_includes)
333
334 # Search for Python.
335 BUILD_PYTHON=true
336 AC_ARG_ENABLE(python, [AS_HELP_STRING(--enable-python,Build python bindings [default=yes])],[
337 if test x"$enableval" != xno ; then
338         BUILD_PYTHON=true
339 else
340         BUILD_PYTHON=false
341 fi],BUILD_PYTHON=true)
342
343 if $BUILD_PYTHON ; then
344         AM_PATH_PYTHON
345         if test -z "$PYTHON" ; then
346                 BUILD_PYTHON=false
347         fi
348 fi
349
350 if $BUILD_PYTHON ; then
351         AC_MSG_CHECKING(for python >= 2.2)
352         prog="
353 import sys, string
354 minver = (2,2,0,'final',0)
355 if sys.version_info < minver:
356         sys.exit(1)
357 sys.exit(0)
358 "
359         if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
360         then
361                 AC_MSG_RESULT([okay])
362         else
363                 BUILD_PYTHON=false
364                 AC_MSG_RESULT([too old])
365         fi
366 fi
367
368 if $BUILD_PYTHON ; then
369         AM_CHECK_PYTHON_HEADERS(,BUILD_PYTHON=false)
370 fi
371
372 if $BUILD_PYTHON ; then
373         AC_MSG_CHECKING([for pygtk-2.0])
374         if pkg-config --exists pygtk-2.0 ; then
375                 AC_MSG_RESULT([found])
376                 PKG_CHECK_MODULES(PYGTK,[pygtk-2.0])
377
378                 AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
379                 if test "x$PYGTK_CODEGEN" = xno; then
380                   AC_MSG_ERROR(could not find pygtk-codegen-2.0 script)
381                 fi
382
383                 AC_MSG_CHECKING(for pygtk defs)
384                 PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
385                 AC_SUBST(PYGTK_DEFSDIR)
386                 AC_MSG_RESULT($PYGTK_DEFSDIR)
387         else
388                 AC_MSG_RESULT([not found])
389                 BUILD_PYTHON=false
390         fi
391 fi
392
393 if ! $BUILD_PYTHON ; then
394         AC_MSG_RESULT([Python bindings disabled.])
395 fi
396
397 AC_SUBST(PYTHONREV)
398 AC_SUBST(PYTHONMODULES)
399 AM_CONDITIONAL(BUILD_PYTHON_MODULES, $BUILD_PYTHON)
400
401 mylibdir=`eval echo $libdir`
402 mylibexecdir=`eval echo $libexecdir`
403 mydatadir=`eval echo $datadir`
404 if test x$exec_prefix = xNONE ; then
405         if test x$prefix = xNONE ; then
406                 mylibdir=` echo $mylibdir  | sed s,NONE,$ac_default_prefix,g`
407                 mylibexecdir=` echo $mylibexecdir  | sed s,NONE,$ac_default_prefix,g`
408         else
409                 mylibdir=` echo $mylibdir  | sed s,NONE,$prefix,g`
410                 mylibexecdir=` echo $mylibexecdir  | sed s,NONE,$prefix,g`
411         fi
412 fi
413 if test x$prefix = xNONE ; then
414         mydatadir=`echo $mydatadir | sed s,NONE,$ac_default_prefix,g`
415 fi
416 AC_DEFINE_UNQUOTED(PKGLIBDIR,"$mylibdir/$PACKAGE",
417                    [The location where package-specific helpers can be found.])
418 AC_DEFINE_UNQUOTED(LIBEXECDIR,"$mylibexecdir",
419                    [The location where package-specific helpers can be found.])
420 AC_DEFINE_UNQUOTED(DATADIR,"$mydatadir",
421                    [The location where arch-independent package-specific data can be found.])
422 AC_DEFINE_UNQUOTED(LOCALEDIR,"$mydatadir/locale",
423                    [The location where locale data can be found.])
424
425 AC_ARG_ENABLE(gnome-pty-helper, [AS_HELP_STRING(--enable-gnome-pty-helper,Build a setuid helper for opening ptys [default=yes])], enable_gnome_pty_helper="$enableval", enable_gnome_pty_helper=yes)
426 if test "$enable_gnome_pty_helper" != no; then
427         AC_DEFINE(VTE_USE_GNOME_PTY_HELPER,1,[Define if you intend to use gnome-pty-helper.])
428         AC_CONFIG_SUBDIRS(gnome-pty-helper)
429 fi
430 AM_CONDITIONAL(BUILD_GNOME_PTY_HELPER,[test "$enable_gnome_pty_helper" != no])
431
432 ################################################################################
433
434 GTK_DOC_CHECK([1.0])
435
436 ################################################################################
437
438 AC_CONFIG_FILES([
439 Makefile
440 src/Makefile
441 termcaps/Makefile
442 python/Makefile
443 po/Makefile.in
444 doc/Makefile
445 doc/openi18n/Makefile
446 doc/reference/Makefile
447 vte.pc
448 vte-uninstalled.pc
449 vte.spec
450 ])
451 AC_OUTPUT