]> Pileus Git - ~andy/gtk/blob - configure.in
Add a check for a new enough fontconfig, since we picked up a direct
[~andy/gtk] / configure.in
1 # Process this file with autoconf to produce a configure script.
2 # require autoconf 2.54
3 AC_PREREQ(2.54)
4
5 # Making releases:
6 #   GTK_MICRO_VERSION += 1;
7 #   GTK_INTERFACE_AGE += 1;
8 #   GTK_BINARY_AGE += 1;
9 # if any functions have been added, set GTK_INTERFACE_AGE to 0.
10 # if backwards compatibility has been broken,
11 # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
12
13 m4_define([gtk_major_version], [2])
14 m4_define([gtk_minor_version], [3])
15 m4_define([gtk_micro_version], [2])
16 m4_define([gtk_version],
17           [gtk_major_version.gtk_minor_version.gtk_micro_version])
18 m4_define([gtk_interface_age], [0])
19 m4_define([gtk_binary_age], [302])
20 # This is the X.Y used in -lgtk-FOO-X.Y
21 m4_define([gtk_api_version], [2.0])
22
23 # Define a string for the earliest version that this release has
24 # forward/backwards binary compatibility with. This is used for module
25 # locations. (Should this be backwards-compat instead?)
26 #
27 #GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
28 m4_define([gtk_binary_version], [2.2.0])
29
30 # required versions of other packages
31 m4_define([glib_required_version], [2.3.2])
32 m4_define([pango_required_version], [1.2.0])
33 m4_define([atk_required_version], [1.0.1])
34
35
36 AC_INIT([gtk+], [gtk_version],
37         [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk+],
38         [gtk+])
39
40 AC_CONFIG_SRCDIR([gdk/gdktypes.h])
41
42 # Save this value here, since automake will set cflags later
43 cflags_set=${CFLAGS+set}
44
45 AM_INIT_AUTOMAKE(no-define)
46 AM_CONFIG_HEADER(config.h)
47
48 #
49 # For each of the libraries we build, we define the following
50 # substituted variables:
51 #
52 # foo_PACKAGES:     pkg-config packages this library requires
53 # foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
54 # foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
55 # foo_DEP_LIBS:     All libraries this module requires
56 # foo_DEP_CFLAGS:   All cflags this module requires
57
58
59 GTK_MAJOR_VERSION=gtk_major_version
60 GTK_MINOR_VERSION=gtk_minor_version
61 GTK_MICRO_VERSION=gtk_micro_version
62 GTK_INTERFACE_AGE=gtk_interface_age
63 GTK_BINARY_AGE=gtk_binary_age
64 GTK_VERSION=gtk_version
65 GTK_API_VERSION=gtk_api_version
66 GTK_BINARY_VERSION=gtk_binary_version
67 AC_SUBST(GTK_MAJOR_VERSION)
68 AC_SUBST(GTK_MINOR_VERSION)
69 AC_SUBST(GTK_MICRO_VERSION)
70 AC_SUBST(GTK_INTERFACE_AGE)
71 AC_SUBST(GTK_BINARY_AGE)
72 AC_SUBST(GTK_API_VERSION)
73 AC_SUBST(GTK_VERSION)
74 AC_SUBST(GTK_BINARY_VERSION)
75
76 # libtool versioning
77 #LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
78 #LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
79 #LT_REVISION=$GTK_INTERFACE_AGE
80 #LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
81 #LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
82
83 m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)])
84 m4_define([lt_revision], [gtk_interface_age])
85 m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_interface_age)])
86 LT_VERSION_INFO="lt_current:lt_revision:lt_age"
87 LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
88 AC_SUBST(LT_VERSION_INFO)
89 AC_SUBST(LT_CURRENT_MINUS_AGE)
90
91
92 #
93 # gdk-pixbuf gets versioned separately, and for now, using standard
94 # libtool versioning, not GTK+-style versioning
95 #
96 GDK_PIXBUF_MAJOR=gtk_major_version
97 GDK_PIXBUF_MINOR=gtk_minor_version
98 GDK_PIXBUF_MICRO=gtk_micro_version
99 GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
100 AC_SUBST(GDK_PIXBUF_MAJOR)
101 AC_SUBST(GDK_PIXBUF_MINOR)
102 AC_SUBST(GDK_PIXBUF_MICRO)
103 AC_SUBST(GDK_PIXBUF_VERSION)
104
105 GETTEXT_PACKAGE=gtk20
106 AC_SUBST(GETTEXT_PACKAGE)
107 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
108
109
110 dnl Initialize libtool
111 AC_PROG_CC
112 AM_DISABLE_STATIC
113 AC_LIBTOOL_WIN32_DLL
114 AM_PROG_LIBTOOL
115
116 AM_PROG_AS
117
118 dnl Initialize maintainer mode
119 AM_MAINTAINER_MODE
120
121 AC_CANONICAL_HOST
122
123 AC_MSG_CHECKING([for some Win32 platform])
124 case "$host" in
125   *-*-mingw*|*-*-cygwin*)
126     platform_win32=yes
127     ;;
128   *)
129     platform_win32=no
130     ;;
131 esac
132 AC_MSG_RESULT([$platform_win32])
133 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
134
135 MATH_LIB=-lm
136 AC_MSG_CHECKING([for native Win32])
137 case "$host" in
138   *-*-mingw*)
139     os_win32=yes
140     MATH_LIB=
141     ;;
142   *)
143     os_win32=no
144     ;;
145 esac
146 AC_MSG_RESULT([$os_win32])
147 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
148 AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
149
150 if test "$os_win32" = "yes"; then
151   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
152 fi
153 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
154
155 m4_define([debug_default],
156           m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
157
158 dnl declare --enable-* args and collect ac_help strings
159 AC_ARG_ENABLE(debug,
160               AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
161                              [turn on debugging @<:@default=debug_default@:>@]),,
162               enable_debug=debug_default)
163 AC_ARG_ENABLE(shm,
164               [AC_HELP_STRING([--enable-shm],
165                               [support shared memory if available [default=yes]])],,
166               [enable_shm="yes"])
167 AC_ARG_ENABLE(ansi,
168               [AC_HELP_STRING([--enable-ansi],
169                               [turn on strict ansi [default=no]])],,
170               [enable_ansi=no])
171 AC_ARG_ENABLE(xkb,
172               [AC_HELP_STRING([--enable-xkb],
173                               [support XKB [default=maybe]])],,
174               [enable_xkb="maybe"])
175 AC_ARG_ENABLE(rebuilds,
176               [AC_HELP_STRING([--disable-rebuilds],
177                               [disable all source autogeneration rules])],,
178               [enable_rebuilds=yes])
179
180 AC_ARG_WITH(xinput,
181             [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
182
183 AC_ARG_WITH(wintab,
184             [AC_HELP_STRING([--with-wintab=DIRECTORY],
185                             [use Wintab API with win32 backend])])
186 AC_ARG_WITH(ie55,
187             [AC_HELP_STRING([--with-ie55=DIRECTORY],
188                             [IE5.5 libs and headers (for Active IMM)])])
189
190 GLIB_AC_DIVERT_BEFORE_HELP([
191 if test "$platform_win32" = yes; then
192   gdktarget=win32
193 else
194   gdktarget=x11
195 fi
196 ])
197
198 AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
199         gdktarget=$with_gdktarget)
200
201 AC_SUBST(gdktarget)
202 case $gdktarget in
203   x11|linux-fb|win32) ;;
204   *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);;
205 esac
206
207 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
208 gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
209
210 AC_SUBST(gdktargetlib)
211 AC_SUBST(gtktargetlib)
212
213 AC_ARG_ENABLE(shadowfb,
214               [AC_HELP_STRING([--disable-shadowfb],
215                               [disable shadowfb support for linux-fb])],,
216               [enable_shadowfb=yes])
217
218 AC_ARG_ENABLE(fbmanager,
219               [AC_HELP_STRING([--enable-fbmanager],
220                               [enable framebuffer manager support (GtkFB)])],,
221               enable_fbmanager=no)
222         
223 if test "x$enable_debug" = "xyes"; then
224   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
225   GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
226 else
227   if test "x$enable_debug" = "xno"; then
228     GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
229   else
230     GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
231   fi
232 fi
233
234 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
235
236                         
237 # Build time sanity check...
238 AM_SANITY_CHECK
239
240 # Checks for programs.
241 AC_ISC_POSIX
242 AM_PROG_CC_STDC
243 AC_PROG_INSTALL
244 AC_PROG_MAKE_SET
245
246 changequote(,)dnl
247 if test "x$GCC" = "xyes"; then
248   case " $CFLAGS " in
249   *[\ \ ]-Wall[\ \      ]*) ;;
250   *) CFLAGS="$CFLAGS -Wall" ;;
251   esac
252
253   if test "x$enable_ansi" = "xyes"; then
254     case " $CFLAGS " in
255     *[\ \       ]-ansi[\ \      ]*) ;;
256     *) CFLAGS="$CFLAGS -ansi" ;;
257     esac
258
259     case " $CFLAGS " in
260     *[\ \       ]-pedantic[\ \  ]*) ;;
261     *) CFLAGS="$CFLAGS -pedantic" ;;
262     esac
263   fi
264 fi
265 changequote([,])dnl
266
267 # Ensure MSVC-compatible struct packing convention is used when
268 # compiling for Win32 with gcc.
269 # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
270 # gcc2 uses "-fnative-struct".
271 if test x"$os_win32" = xyes; then
272   if test x"$GCC" = xyes; then
273     msnative_struct=''
274     AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
275     if test -z "$ac_cv_prog_CC"; then
276       our_gcc="$CC"
277     else
278       our_gcc="$ac_cv_prog_CC"
279     fi
280     case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
281       2.)
282         if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
283           msnative_struct='-fnative-struct'
284         fi
285         ;;
286       *)
287         if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
288           msnative_struct='-mms-bitfields'
289         fi
290         ;;
291     esac
292     if test x"$msnative_struct" = x ; then
293       AC_MSG_RESULT([no way])
294       AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
295     else
296       CFLAGS="$CFLAGS $msnative_struct"
297       AC_MSG_RESULT([${msnative_struct}])
298     fi
299   fi
300 fi
301
302 # Honor aclocal flags
303 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
304
305 ## Initial sanity check, done here so that users get told they 
306 ## have the wrong dependencies as early in the process as possible.
307 ## Later on we actually use the cflags/libs from separate pkg-config
308 ## calls. Oh, also the later pkg-config calls don't include 
309 ## the version requirements since those make the module lists 
310 ## annoying to construct
311 PKG_CHECK_MODULES(BASE_DEPENDENCIES,
312   [glib-2.0 >= glib_required_version dnl
313    atk >= atk_required_version dnl
314    pango >= pango_required_version])
315
316 if test "$os_win32" != yes; then
317     # libtool option to control which symbols are exported
318     # right now, symbols starting with _ are not exported
319     LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
320 else
321     # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
322     LIBTOOL_EXPORT_OPTIONS=
323 fi
324 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
325
326 dnl ******************************************************
327 dnl * See whether to include shared library dependencies *
328 dnl ******************************************************
329
330 AC_ARG_ENABLE(explicit-deps, 
331               [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
332                               [use explicit dependencies in .pc files [default=auto]])],,
333               [enable_explicit_deps=auto])
334
335 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
336 case $enable_explicit_deps in
337   auto)
338     deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
339     if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then
340       enable_explicit_deps=yes  
341     else
342       enable_explicit_deps=no  
343     fi
344   ;;
345   yes|no) 
346   ;;
347   *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
348   ;;
349 esac
350 AC_MSG_RESULT($enable_explicit_deps)
351
352 AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
353
354 # define a MAINT-like variable REBUILD which is set if Perl
355 # and awk are found, so autogenerated sources can be rebuilt
356
357 AC_PATH_PROGS(PERL, perl5 perl)
358
359 # We would like indent, but don't require it.
360 AC_CHECK_PROG(INDENT, indent, indent)
361
362 REBUILD=\#
363 if test "x$enable_rebuilds" = "xyes" && \
364      test -n "$PERL" && \
365      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
366   REBUILD=
367 fi
368 AC_SUBST(REBUILD)
369
370 AC_CHECK_FUNCS(lstat mkstemp flockfile)
371
372 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
373 AC_MSG_CHECKING(for sigsetjmp)
374 AC_TRY_LINK([#include <setjmp.h>], [
375 sigjmp_buf env;
376 sigsetjmp(env, 0);
377 ], gtk_ok=yes, gtk_ok=no)
378 AC_MSG_RESULT($gtk_ok)
379 if test "$gtk_ok" = "yes"; then
380   AC_DEFINE(HAVE_SIGSETJMP)
381 fi
382
383 # i18n stuff
384 ALL_LINGUAS="af am ar az be bg bn br ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl he hi hr hu ia id it ja ko li lt lv mi mk ml mn ms ne nl nn no pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta th tr uk uz uz@Latn vi wa yi zh_CN zh_TW"
385 AM_GLIB_GNU_GETTEXT
386 LIBS="$LIBS $INTLLIBS"
387 AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
388         sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
389       esac])
390
391 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
392
393 dnl The DU4 header files don't provide library prototypes unless 
394 dnl -std1 is given to the native cc.
395 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
396
397 gtk_save_LIBS=$LIBS
398 LIBS="$LIBS -lm"
399 AC_TRY_RUN([#include <math.h>
400              int main (void) { return (log(1) != log(1.)); }],
401      AC_MSG_RESULT(none needed),
402      gtk_save_CFLAGS="$CFLAGS"
403      CFLAGS="$CFLAGS -std1"
404      AC_TRY_RUN([#include <math.h>
405                  int main (void) { return (log(1) != log(1.)); }],
406          AC_MSG_RESULT(-std1),
407          AC_MSG_RESULT()
408          CFLAGS="$gtk_save_CFLAGS"
409          AC_MSG_WARN(
410                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
411          true
412      ),
413      AC_MSG_RESULT(none needed)
414 )
415 LIBS=$gtk_save_LIBS
416
417 AC_MSG_CHECKING(for the BeOS)
418 case $host in
419   *-*-beos*)
420     AC_MSG_RESULT(yes)
421     MATH_LIB=
422   ;;
423   *)
424     AC_MSG_RESULT(no)
425   ;;
426 esac
427
428 dnl NeXTStep cc seems to need this
429 AC_MSG_CHECKING([for extra flags for POSIX compliance])
430 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
431   AC_MSG_RESULT(none needed),
432   gtk_save_CFLAGS="$CFLAGS"
433   CFLAGS="$CFLAGS -posix"
434   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
435     AC_MSG_RESULT(-posix),
436     AC_MSG_RESULT()
437     CFLAGS="$gtk_save_CFLAGS"
438     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
439
440 #
441 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
442
443
444 GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
445
446 AM_PATH_GLIB_2_0(glib_required_version, :,
447   AC_MSG_ERROR([
448 *** GLIB glib_required_version or better is required. The latest version of 
449 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
450   gobject gmodule gthread)
451
452 dnl
453 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
454 dnl
455 gtk_save_LIBS=$LIBS
456 LIBS="$LIBS $GLIB_LIBS"
457 AC_CHECK_FUNCS(bind_textdomain_codeset)
458 LIBS=$gtk_save_LIBS
459
460 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
461 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
462 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
463
464 if test "${with_ie55+set}" = set && test $with_ie55 != no; then
465   AC_MSG_CHECKING([for dimm.h])
466   saved_CFLAGS="$CFLAGS"
467   CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
468   AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
469 #ifdef __GNUC__
470 #define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
471 #define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
472 #endif
473 #include <windows.h>
474 #include <objbase.h>
475 #include <imm.h>
476 #ifdef __GNUC__
477 #undef IMEMENUITEMINFOA
478 #undef IMEMENUITEMINFOW
479 #endif
480 #include <dimm.h>
481 ],
482    [],
483    [AC_MSG_RESULT(yes)
484     AC_MSG_CHECKING([for IE55 uuid.lib])
485     if test -f $with_ie55/Lib/uuid.lib ; then
486       AC_MSG_RESULT(yes)
487       have_ie55=yes
488       AC_DEFINE(HAVE_DIMM_H)
489       IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
490       AC_SUBST(IE55_UUID_LIB)
491     else
492       AC_MSG_RESULT(no)
493       CFLAGS="$saved_CFLAGS"
494       have_ie55=no
495     fi
496     ],
497    [AC_MSG_RESULT(no)
498     CFLAGS="$saved_CFLAGS"
499     have_ie55=no])
500 fi
501 AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
502
503 if test "${with_wintab+set}" = set && test $with_wintab != no; then
504   AC_MSG_CHECKING([for wintab.h])
505   saved_CFLAGS="$CFLAGS"
506   CFLAGS="$CFLAGS -I$with_wintab/include"
507   AC_TRY_COMPILE([#include <windows.h>
508 #include <wintab.h>], 
509    [],
510    [AC_MSG_RESULT(yes)
511     AC_MSG_CHECKING([for wntab32x.lib])
512     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
513       AC_MSG_RESULT(yes)
514       have_wintab=yes
515       AC_DEFINE(HAVE_WINTAB)
516       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
517       AC_SUBST(WINTAB_LIB)
518     else
519       AC_MSG_RESULT(no)
520       CFLAGS="$saved_cflags"
521       have_wintab=no
522     fi
523     ],
524    [AC_MSG_RESULT(no)
525     CFLAGS="$saved_cflags"
526     have_wintab=no])
527 fi
528 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
529
530 saved_cflags="$CFLAGS"
531 saved_ldflags="$LDFLAGS"
532
533
534 # Checks for header files.
535 AC_HEADER_STDC
536
537 # Checks for typedefs, structures, and compiler characteristics.
538 AC_C_CONST
539
540 # Checks for library functions.
541 AC_TYPE_SIGNAL
542 AC_FUNC_MMAP
543
544 AC_CHECK_FUNCS(getresuid)
545 AC_TYPE_UID_T
546
547 # Check if <sys/select.h> needs to be included for fd_set
548 AC_MSG_CHECKING([for fd_set])
549 AC_TRY_COMPILE([#include <sys/types.h>],
550         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
551 if test $gtk_ok = yes; then
552     AC_MSG_RESULT([yes, found in sys/types.h])
553 else
554     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
555     if test $gtk_ok = yes; then
556         AC_DEFINE(HAVE_SYS_SELECT_H)
557         AC_MSG_RESULT([yes, found in sys/select.h])
558     else
559         AC_DEFINE(NO_FD_SET)
560         AC_MSG_RESULT(no)
561     fi
562 fi
563
564 # `widechar' tests for gdki18n.h
565 AC_MSG_CHECKING(for wchar.h)
566 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
567 if test $gdk_wchar_h = yes; then
568    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
569 fi
570 AC_MSG_RESULT($gdk_wchar_h)
571
572 # Check for wctype.h (for iswalnum)
573 AC_MSG_CHECKING(for wctype.h)
574 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
575 if test $gdk_wctype_h = yes; then
576    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
577 fi
578 AC_MSG_RESULT($gdk_wctype_h)
579
580 # in Solaris 2.5, `iswalnum' is in -lw
581 GDK_WLIBS=
582 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
583
584 oLIBS="$LIBS"
585 LIBS="$LIBS $GDK_WLIBS"
586 # The following is necessary for Linux libc-5.4.38
587 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
588 AC_TRY_LINK([#include <stdlib.h>],[
589 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
590 #  ifdef HAVE_WCTYPE_H
591 #    include <wctype.h>
592 #  else
593 #    ifdef HAVE_WCHAR_H
594 #      include <wchar.h>
595 #    endif
596 #  endif
597 #else
598 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
599 #endif
600 iswalnum((wchar_t) 0);
601 ], gdk_working_wctype=yes, gdk_working_wctype=no)
602 LIBS="$oLIBS"
603
604 if test $gdk_working_wctype = no; then
605    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
606    GDK_WLIBS=
607 fi
608 AC_MSG_RESULT($gdk_working_wctype)
609 AC_SUBST(GDK_WLIBS)
610
611
612 ##################################################
613 # Checks for gdk-pixbuf
614 ##################################################
615
616 dnl ********************************************************
617 dnl * See whether we need to load our modules as .la files *
618 dnl ********************************************************
619
620 use_la_modules=false
621 case $host in
622   *-aix*) use_la_modules=true
623 esac
624
625 if $use_la_modules ; then
626    AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
627 fi
628
629
630 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
631
632 AC_ARG_ENABLE(modules,
633               [AC_HELP_STRING([--disable-modules],
634                               [disable dynamic module loading])])
635
636 dynworks=false
637 deps=
638 if test x$enable_modules = xno; then
639     AC_MSG_RESULT(no)
640 else
641     AC_MSG_RESULT(yes)
642     AC_MSG_CHECKING(whether dynamic modules work)
643     ## for loop is to strip newline 
644     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-2.0`
645     for I in $tmp; do
646         dynworks=$I
647     done
648
649     dnl Now we check to see if our libtool supports shared lib deps
650     dnl (in a rather ugly way even)
651     if $dynworks; then
652         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
653         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
654             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
655             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
656         if test "x$pixbuf_deplibs_check" = "xnone" || \
657            test "x$pixbuf_deplibs_check" = "xunknown" || \
658            test "x$pixbuf_deplibs_check" = "x"; then
659             dynworks=false
660         fi
661     fi
662
663     if $dynworks; then
664         AC_DEFINE(USE_GMODULE)
665         AC_MSG_RESULT(yes)
666     else
667         AC_MSG_RESULT(no)
668     fi
669 fi
670
671 dnl We allow people to disable image loaders explicitely, but if they don't we error
672 dnl out so that people don't accidentally build without them.
673
674 AC_ARG_WITH(libpng,
675             [AC_HELP_STRING([--without-libpng],
676                             [disable PNG loader for gdk-pixbuf])])
677 AC_ARG_WITH(libjpeg,
678             [AC_HELP_STRING([--without-libjpeg],
679                             [disable JPEG loader for gdk-pixbuf])])
680 AC_ARG_WITH(libtiff,
681             [AC_HELP_STRING([--without-libtiff],
682                             [disable TIFF loader for gdk-pixbuf])])
683
684 dnl Test for libtiff
685   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
686     AC_CHECK_LIB(tiff, TIFFReadScanline,
687       [AC_CHECK_HEADER(tiffio.h,
688         TIFF='tiff'; LIBTIFF='-ltiff',
689         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
690       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
691         [AC_CHECK_HEADER(tiffio.h,
692           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
693           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
694         [AC_CHECK_LIB(tiff34, TIFFFlushData,
695           [AC_CHECK_HEADER(tiffio.h,
696             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
697             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
698         AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
699   fi
700
701   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
702      AC_MSG_ERROR([
703 *** Checks for TIFF loader failed. You can build without it by passing 
704 *** --without-libtiff to configure but some programs using GTK+ may
705 *** not work properly])
706   fi
707
708 dnl Test for libjpeg
709   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
710     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
711       jpeg_ok=yes,
712       jpeg_ok=no
713       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
714     if test "$jpeg_ok" = yes; then
715       AC_MSG_CHECKING([for jpeglib.h])
716       AC_TRY_CPP(
717 [#include <stdio.h>
718 #undef PACKAGE
719 #undef VERSION
720 #undef HAVE_STDLIB_H
721 #include <jpeglib.h>],
722         jpeg_ok=yes,
723         jpeg_ok=no)
724       AC_MSG_RESULT($jpeg_ok)
725       if test "$jpeg_ok" = yes; then
726         LIBJPEG='-ljpeg'
727         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
728           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
729           AC_MSG_WARN(JPEG library does not support progressive saving.))
730       else
731           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
732       fi
733     fi
734   fi
735
736   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
737      AC_MSG_ERROR([
738 *** Checks for JPEG loader failed. You can build without it by passing 
739 *** --without-libjpeg to configure but some programs using GTK+ may
740 *** not work properly])
741   fi
742
743 dnl Test for libpng
744   if test x$with_libpng != xno && test -z "$LIBPNG"; then
745     AC_MSG_CHECKING(for libpng12)
746     if $PKG_CONFIG --exists libpng12 ; then
747         AC_MSG_RESULT(yes)
748         PNG='png'
749         PNG_DEP_CFLAGS_PACKAGES=libpng12
750         LIBPNG=`$PKG_CONFIG --libs libpng12`
751     else
752       AC_MSG_RESULT(no)
753       AC_CHECK_LIB(png, png_read_info,
754         [AC_CHECK_HEADER(png.h,
755           png_ok=yes,
756           png_ok=no)],
757         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
758       if test "$png_ok" = yes; then
759         AC_MSG_CHECKING([for png_structp in png.h])
760         AC_TRY_COMPILE([#include <png.h>],
761           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
762           png_ok=yes,
763           png_ok=no)
764         AC_MSG_RESULT($png_ok)
765         if test "$png_ok" = yes; then
766           PNG='png'; LIBPNG='-lpng -lz'
767         else
768           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
769         fi
770       else
771        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
772       fi
773     fi
774   fi
775
776   if test x$with_libpng != xno && test -z "$LIBPNG"; then
777      AC_MSG_ERROR([
778 *** Checks for PNG loader failed. You can build without it by passing 
779 *** --without-libpng to configure but many programs using GTK+ will
780 *** not work properly. The PNG loader is also needed if you are compiling
781 *** from CVS.])
782   fi
783
784 AC_SUBST(LIBTIFF)
785 AC_SUBST(LIBJPEG)
786 AC_SUBST(LIBPNG)
787
788 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
789
790 #
791 # Allow building some or all gdk-pixbuf loaders included
792 #
793 AC_MSG_CHECKING(pixbuf loaders to build)
794
795 dnl due to an autoconf bug, commas in the first arg to
796 dnl AC_HELP_STRING cause problems.
797 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
798 dnl                [build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
799 AC_ARG_WITH(included_loaders,
800 [  --with-included-loaders=LOADER1,LOADER2,...
801                           build the specified loaders into gdk-pixbuf (only
802                           used if module loading disabled)])
803
804 if $dynworks; then 
805         :
806 else
807    ## if the option was specified, leave it; otherwise disable included loaders
808    if test x$with_included_loaders = xno; then
809            with_included_loaders=yes
810    fi
811 fi
812
813 all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
814 included_loaders=""
815 # If no loaders specified, include all
816 if test "x$with_included_loaders" = xyes ; then
817   included_loaders="$all_loaders"
818 else
819   included_loaders="$with_included_loaders"
820 fi
821
822 AC_MSG_RESULT($included_loaders)
823
824 INCLUDED_LOADER_OBJ=
825 INCLUDED_LOADER_DEFINE=
826
827 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
828 for loader in $included_loaders; do
829  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
830    :
831  else
832    AC_MSG_ERROR([the specified loader $loader does not exist])
833  fi
834
835  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
836  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
837 done
838 IFS="$gtk_save_ifs"
839 AC_SUBST(INCLUDED_LOADER_OBJ)
840 AC_SUBST(INCLUDED_LOADER_DEFINE)
841
842 AC_HEADER_SYS_WAIT
843
844 AC_TYPE_SIGNAL
845
846 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
847 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
848 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
849
850 if $dynworks ; then
851   STATIC_LIB_DEPS=
852   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
853     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
854   fi
855   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
856     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
857   fi
858   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
859     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
860   fi
861 else
862   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
863 fi
864
865 # Checks to see if we should compile in MMX support (there will be
866 # a runtime test when the code is actually run to see if it should
867 # be used - this just checks if we can compile it.)
868 #
869 # This code is partially taken from Mesa
870 #
871 AC_MSG_CHECKING(for x86 platform)
872 case $host_cpu in
873   i386|i486|i586|i686|i786|k6|k7)
874         use_x86_asm=yes
875         ;;
876    *)
877         use_x86_asm=no
878 esac
879 AC_MSG_RESULT($use_x86_asm)
880
881 use_mmx_asm=no
882 if test $use_x86_asm = yes; then
883     save_ac_ext=$ac_ext
884     ac_ext=S
885     
886     AC_MSG_CHECKING(compiler support for MMX)
887     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
888     if AC_TRY_EVAL(ac_compile); then
889         use_mmx_asm=yes
890     fi
891
892     rm -rf conftest*
893
894     ac_ext=$save_ac_ext
895     if test $use_mmx_asm = yes; then
896       AC_DEFINE(USE_MMX)
897       AC_MSG_RESULT(yes)
898     else
899       AC_MSG_RESULT(no)
900     fi
901 fi
902
903 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
904
905 REBUILD_PNGS=
906 if test -z "$LIBPNG"; then
907   REBUILD_PNGS=#
908 fi
909
910 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
911
912 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
913
914 if test $cross_compiling = yes; then
915   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
916   if test x$GDK_PIXBUF_CSOURCE = xno; then
917     REBUILD_PNGS=#
918   fi
919 fi
920
921 if test ! -f $srcdir/gtk/stock-icons/gtkstockpixbufs.h && 
922    test "x$REBUILD_PNGS" = "x#" ; then
923      AC_MSG_ERROR([
924 *** gtkstockpixbufs.h is not in the tree, and cannot be built
925 *** because you don't have libpng, or (when cross-compiling) you 
926 *** don't have a prebuilt gdk-pixbuf-csource on the host system.])
927 fi
928
929 AC_SUBST(REBUILD_PNGS)
930
931 GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
932 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
933 GDK_PIXBUF_EXTRA_CFLAGS= 
934 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
935 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
936
937 AC_SUBST(GDK_PIXBUF_PACKAGES)
938 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
939 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
940 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
941 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
942
943
944 ########################################
945 # Windowing system checks
946 ########################################
947
948 GDK_EXTRA_LIBS=$GDK_WLIBS
949 GDK_EXTRA_CFLAGS= 
950 GTK_DEP_LIBS_FOR_X=
951
952 FREETYPE_LIBS=
953 FREETYPE_CFLAGS=
954 if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
955   #
956   # Checks for FreeType
957   #
958   have_freetype=false
959   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
960   if test "x$FREETYPE_CONFIG" != "xno" ; then
961     FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
962     FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
963
964     gtk_save_LIBS="$LIBS"
965     LIBS="$FREETYPE_LIBS $LIBS"
966     AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
967     LIBS="$gtk_save_LIBS"
968
969     if $have_freetype ; then
970       gtk_save_cppflags="$CPPFLAGS"
971       CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
972
973       AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
974       AC_TRY_COMPILE([
975 #include <ft2build.h>
976 #include FT_FREETYPE_H
977 #include FT_ERRORS_H
978     ],
979                      [(void)1;],:,have_freetype=false)
980       if $have_freetype ; then
981         AC_MSG_RESULT(yes)
982       else
983         AC_MSG_RESULT(no)
984       fi
985
986       CPPFLAGS="$gtk_save_cppflags"
987     fi
988   fi
989   AC_SUBST(FREETYPE_LIBS)
990   AC_SUBST(FREETYPE_CFLAGS)
991 fi
992
993 if test "x$gdktarget" = "xx11"; then
994   #
995   # Check for fontconfig 
996   #
997   if $PKG_CONFIG --exists 'fontconfig >= 2.2.91' ; then : ; else
998     AC_MSG_ERROR([fontconfig 2.2.91 is required for x11 target])
999   fi
1000
1001   # We start off with the libraries from Pango
1002
1003   ## be sure we also have Pango built with Xft2 support
1004   if $PKG_CONFIG --exists 'pangoxft >= 1.2.0' ; then
1005     if $have_freetype ; then
1006       :
1007     else
1008       AC_MSG_ERROR([Xft Pango backend found but did not find freetype libraries])
1009     fi
1010   else
1011     AC_MSG_ERROR([Pango 1.2.0 and Xft backend is required for x11 target])
1012   fi
1013
1014   if $PKG_CONFIG --exists xft ; then : ; else
1015     AC_MSG_ERROR([Xft version 2 is required for x11 target])
1016   fi
1017
1018   #
1019   # If Pango included the shared library dependencies from X11 in
1020   # the pkg-config output, then we use that (to avoid duplicates).
1021   # but if they were omitted to avoid binary compatibility problems,
1022   # then we need to repeat the checks.
1023   #
1024   x_libs="`$PKG_CONFIG --libs pangoxft`"
1025   case "$x_libs" in
1026     *-lX11*) pango_omitted_x_deps=no ;;
1027     *)       pango_omitted_x_deps=yes ;;
1028   esac
1029
1030   x_cflags="`$PKG_CONFIG --cflags pangoxft`"
1031   x_extra_libs=
1032
1033   AC_PATH_XTRA
1034   if test x$no_x = xyes ; then
1035     AC_MSG_ERROR([X development libraries not found])
1036   fi
1037   
1038   if test $pango_omitted_x_deps = yes ; then
1039     # Old versions of Xft didn't necessarily include -lX11 in the output
1040     x_libs="`pkg-config --libs xft` -lX11 $X_EXTRA_LIBS"
1041   fi            
1042
1043   ## Strip the .la files
1044  
1045   x_libs_for_checks=""
1046   for I in $x_libs ; do
1047     case $I in 
1048       *.la) ;;
1049       *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1050     esac
1051   done
1052
1053   # Sanity check for the X11 library
1054   AC_CHECK_LIB(X11, XOpenDisplay, :,
1055             AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
1056             $x_libs_for_checks)
1057
1058   if test "x$enable_shm" = "xyes"; then
1059     # Check for the Xext library (needed for XShm extention)
1060     AC_CHECK_LIB(Xext, XShmAttach,
1061         [GTK_ADD_LIB(x_extra_libs,Xext)],
1062         # On AIX, it is in XextSam instead, but we still need -lXext
1063         [AC_CHECK_LIB(XextSam, XShmAttach, 
1064             [GTK_ADD_LIB(x_extra_libs,Xext)
1065              GTK_ADD_LIB(x_extra_libs,XextSam)
1066             ], , -lXext $x_libs_for_checks)],
1067         $x_libs_for_checks)
1068   fi
1069
1070   GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1071   # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1072   GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $x_extra_libs $X_EXTRA_LIBS"
1073
1074   # GTK+ uses some X calls, so needs to link against X directly
1075   if test $enable_explicit_deps != yes ; then
1076     GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
1077   fi
1078
1079   # Check for Xinerama extension (Solaris impl or Xfree impl)
1080
1081   gtk_save_cppflags="$CPPFLAGS"
1082   CPPFLAGS="$CPPFLAGS $x_cflags"
1083
1084   case "$host" in
1085       *-*-solaris*)
1086           # Check for solaris
1087           use_solaris_xinerama=yes
1088           AC_CHECK_LIB(Xext, XineramaGetInfo,
1089                         use_solaris_xinerama=yes, use_solaris_xinerama=no)
1090           if test "x$use_solaris_xinerama" = "xyes"; then
1091               AC_CHECK_HEADER(X11/extensions/xinerama.h,
1092                 [GTK_ADD_LIB(x_extra_libs,Xext)
1093                 AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1094                 AC_DEFINE(HAVE_XINERAMA)], use_solaris_xinerama=no, -lXext $x_libs_for_checks)
1095           fi    
1096           AC_MSG_CHECKING(for Xinerama support on Solaris)
1097           AC_MSG_RESULT($use_solaris_xinerama);
1098           ;;
1099       *)
1100           # Check for XFree
1101           use_xfree_xinerama=yes
1102           AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1103               [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1104                   [GTK_ADD_LIB(x_extra_libs,Xext)
1105                   GTK_ADD_LIB(x_extra_libs,Xinerama)
1106                   AC_DEFINE(HAVE_XFREE_XINERAMA)
1107                   AC_DEFINE(HAVE_XINERAMA)], 
1108                   use_xfree_xinerama=no,
1109                   [#include <X11/Xlib.h>])],
1110               use_xfree_xinerama=no, -lXext $x_libs_for_checks)
1111           AC_MSG_CHECKING(for Xinerama support on XFree86)
1112           AC_MSG_RESULT($use_xfree_xinerama);       
1113           ;;
1114   esac
1115
1116   CPPFLAGS="$gtk_save_cppflags"
1117
1118   # Check for shaped window extension
1119
1120   AC_CHECK_LIB(Xext, XShapeCombineMask,
1121       [GTK_ADD_LIB(x_extra_libs,Xext)
1122        AC_DEFINE(HAVE_SHAPE_EXT)],
1123       ,
1124       $x_libs_for_checks)
1125
1126   # Check for XConvertCase (X11R6 specific)
1127
1128   AC_CHECK_LIB(X11, XConvertCase,
1129       AC_DEFINE(HAVE_XCONVERTCASE),
1130       ,
1131       $x_libs_for_checks)
1132
1133   # Generic X11R6 check needed for XIM support; we could
1134   # probably use this to replace the above, but we'll
1135   # leave the separate XConvertCase check for clarity
1136
1137   have_x11r6=false
1138   AC_CHECK_LIB(X11, XAddConnectionWatch,
1139       have_x11r6=true,
1140       ,
1141       $x_libs_for_checks)
1142
1143   if $have_x11r6; then
1144     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1145   fi
1146   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1147
1148   # Check for XKB support.
1149
1150   if test "x$enable_xkb" = "xyes"; then
1151         AC_MSG_WARN(XKB support explicitly enabled)
1152         AC_DEFINE(HAVE_XKB)
1153   elif test "x$enable_xkb" = "xmaybe"; then
1154         AC_CHECK_LIB(X11, XkbQueryExtension,
1155                      AC_DEFINE(HAVE_XKB),
1156                      ,
1157                      $x_libs_for_checks)
1158   else
1159         AC_MSG_WARN(XKB support explicitly disabled)
1160   fi
1161
1162   x_cflags="$X_CFLAGS"
1163   x_ldflags="$X_LDFLAGS"
1164
1165   # set up things for XInput
1166
1167   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1168     AC_DEFINE(XINPUT_XFREE)
1169     GTK_ADD_LIB(x_extra_libs, Xi)
1170   else
1171     AC_DEFINE(XINPUT_NONE)
1172   fi
1173
1174   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1175
1176   # Check for the RANDR extension
1177
1178   AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1179       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1180           # RANDR requires RENDER
1181           [GTK_ADD_LIB(x_extra_libs, Xrender)
1182           GTK_ADD_LIB(x_extra_libs, Xrandr)
1183           AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)],
1184           :, [#include <X11/Xlib.h>])], : ,
1185        $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
1186
1187   # Checks for Xcursor library
1188   
1189   have_xcursor=false
1190   PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)
1191
1192   if $have_xcursor ; then
1193     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1194     XCURSOR_PACKAGES="xcursor"
1195   else
1196     XCURSOR_PACKAGES=
1197   fi
1198     
1199   # Xshm checks
1200
1201   if test "x$enable_shm" = "xyes"; then
1202     # Check for shared memory
1203     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1204     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1205
1206     # Check for the X shared memory extension header file
1207     have_xshm=no 
1208     AC_MSG_CHECKING(X11/extensions/XShm.h)
1209     if test "x$no_xext_lib" = "xyes"; then
1210       :
1211     else
1212       gtk_save_CFLAGS="$CFLAGS"
1213       CFLAGS="$CFLAGS $x_cflags"
1214       AC_TRY_COMPILE([
1215 #include <stdlib.h>
1216 #include <sys/types.h>
1217 #include <sys/ipc.h>
1218 #include <sys/shm.h>
1219 #include <X11/Xlib.h>
1220 #include <X11/Xutil.h>
1221 #include <X11/extensions/XShm.h>
1222 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1223       CFLAGS="$gtk_save_CFLAGS"
1224     fi
1225     AC_MSG_RESULT($have_xshm)
1226     if test $have_xshm = yes ; then
1227       AC_DEFINE(HAVE_XSHM_H)
1228     fi
1229   fi
1230
1231   GDK_EXTRA_CFLAGS=
1232   if test $pango_omitted_x_deps = yes ; then
1233     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1234   else
1235     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $GDK_EXTRA_LIBS"
1236   fi
1237
1238   AM_CONDITIONAL(USE_X11, true)
1239 else
1240   AM_CONDITIONAL(XINPUT_XFREE, false)
1241   AM_CONDITIONAL(USE_X11, false)
1242   AM_CONDITIONAL(HAVE_X11R6, false)
1243 fi
1244
1245 if test "x$gdktarget" = "xwin32"; then
1246   # We start off with the libraries from Pango
1247
1248   if test x$have_wintab = xyes; then
1249     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1250     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1251   fi
1252
1253   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1254   AM_CONDITIONAL(USE_WIN32, true)
1255 else
1256   AM_CONDITIONAL(USE_WIN32, false)
1257 fi
1258
1259 GDK_PIXBUF_XLIB_PACKAGES=
1260 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1261 GDK_PIXBUF_XLIB_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_PIXBUF_XLIB_EXTRA_CFLAGS"
1262
1263 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1264 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1265 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1266 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1267 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1268
1269 if test "x$gdktarget" = "xlinux-fb"; then
1270   if $have_freetype ; then
1271     :
1272   else
1273     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1274   fi
1275
1276   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1277   case "$ft2_libs" in
1278     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1279     *)            pango_omitted_ft2_deps=yes ;;
1280   esac
1281
1282   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1283
1284   if test x$enable_shadowfb = xyes ; then
1285     AC_DEFINE(ENABLE_SHADOW_FB)
1286   fi
1287
1288   if test x$enable_fbmanager = xyes ; then
1289     AC_DEFINE(ENABLE_FB_MANAGER)
1290     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1291   else
1292     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1293   fi
1294   
1295   GDK_EXTRA_CFLAGS=""
1296   if test $pango_omitted_ft2_deps = yes ; then
1297     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1298   fi
1299
1300   AM_CONDITIONAL(USE_LINUX_FB, true)
1301 else
1302   AM_CONDITIONAL(USE_LINUX_FB, false)
1303   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1304 fi
1305
1306 #
1307 # Pick correct Pango packages to use
1308 #
1309
1310 if test "x$gdktarget" = "xx11"; then
1311         PANGO_PACKAGES=pangoxft
1312         
1313         # We no longer use pangox, but if we find it, we link to it 
1314         # for binary compatibility.
1315         if $PKG_CONFIG --exists pangox ; then
1316                 PANGO_PACKAGES="$PANGO_PACKAGES pangox"
1317         fi
1318 elif test "x$gdktarget" = "xwin32"; then
1319         PANGO_PACKAGES=pangowin32
1320 elif test "x$gdktarget" = "xlinux-fb"; then
1321         PANGO_PACKAGES=pangoft2
1322 else
1323         PANGO_PACKAGES=pango
1324 fi
1325
1326 # Check for Pango flags
1327
1328 AC_MSG_CHECKING(Pango flags)
1329 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1330         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1331         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1332
1333         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1334 else
1335         AC_MSG_ERROR([
1336 *** Pango not found. Pango is required to build GTK+.
1337 *** See http://www.pango.org for Pango information.
1338 *** For the framebuffer target, you will need to build 
1339 *** Pango with freetype support.
1340 ])
1341 fi
1342
1343 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1344
1345 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1346         :
1347 else
1348         gtk_save_LIBS="$LIBS"
1349         LIBS="$PANGO_LIBS $LIBS"
1350         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1351 *** Can't link to Pango. Pango is required to build
1352 *** GTK+. For more information see http://www.pango.org]))
1353         LIBS="$gtk_save_LIBS"
1354 fi
1355
1356 CFLAGS="$saved_cflags"
1357 LDFLAGS="$saved_ldflags"
1358
1359 GDK_PACKAGES="$XCURSOR_PACKAGES $PANGO_PACKAGES"
1360 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1361 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1362
1363 #
1364 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1365 # into the pkg-config files
1366 #
1367 if test $enable_explicit_deps != yes ; then
1368   GDK_EXTRA_LIBS=
1369 fi
1370
1371 AC_SUBST(GDK_PACKAGES)
1372 AC_SUBST(GDK_EXTRA_LIBS)
1373 AC_SUBST(GDK_EXTRA_CFLAGS)
1374 AC_SUBST(GDK_DEP_LIBS)
1375 AC_SUBST(GDK_DEP_CFLAGS)
1376
1377
1378 ########################################
1379 # Check for Accessibility Toolkit flags
1380 ########################################
1381
1382 ATK_PACKAGES=atk
1383 AC_MSG_CHECKING(ATK flags)
1384 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1385         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1386         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1387
1388         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1389 else
1390         AC_MSG_ERROR([
1391 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1392 *** to build GTK+.
1393 ])
1394 fi
1395
1396 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1397         :
1398 else
1399         gtk_save_LIBS="$LIBS"
1400         LIBS="$ATK_LIBS $LIBS"
1401         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1402                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1403                 *** to build GTK+]))
1404         LIBS="$gtk_save_LIBS"
1405 fi
1406
1407 GTK_PACKAGES=atk
1408 GTK_EXTRA_LIBS=
1409 GTK_EXTRA_CFLAGS= 
1410 GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1411 GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
1412
1413 AC_SUBST(GTK_PACKAGES)
1414 AC_SUBST(GTK_EXTRA_LIBS)
1415 AC_SUBST(GTK_EXTRA_CFLAGS)
1416 AC_SUBST(GTK_DEP_LIBS)
1417 AC_SUBST(GTK_DEP_CFLAGS)
1418
1419
1420 AC_SUBST(GTK_DEBUG_FLAGS)
1421 AC_SUBST(GTK_XIM_FLAGS)
1422
1423 ##################################################
1424 # Checks for gtk-doc and docbook-tools
1425 ##################################################
1426
1427 GTK_DOC_CHECK([1.0])
1428
1429 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1430 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1431
1432 AC_ARG_ENABLE(man,
1433               [AC_HELP_STRING([--enable-man],
1434                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1435               enable_man=no)
1436
1437 if test "${enable_man}" != no; then
1438   dnl
1439   dnl Check for xsltproc
1440   dnl
1441   AC_PATH_PROG([XSLTPROC], [xsltproc])
1442   if test -z "$XSLTPROC"; then
1443     enable_man=no
1444   fi
1445
1446   dnl check for DocBook DTD and stylesheets in the local catalog.
1447   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1448      [DocBook XML DTD V4.1.2],,enable_man=no)
1449   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1450      [DocBook XSL Stylesheets],,enable_man=no)
1451 fi
1452
1453 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1454
1455 ##################################################
1456 # Output commands
1457 ##################################################
1458
1459 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1460         outfile=gdkconfig.h-tmp
1461         cat > $outfile <<\_______EOF
1462 /* gdkconfig.h
1463  *
1464  * This is a generated file.  Please modify `configure.in'
1465  */
1466
1467 #ifndef GDKCONFIG_H
1468 #define GDKCONFIG_H
1469
1470 #ifdef __cplusplus
1471 extern "C" {
1472 #endif /* __cplusplus */
1473
1474 _______EOF
1475
1476         cat >>$outfile <<_______EOF
1477 $gdk_windowing
1478 $gdk_wc
1479 _______EOF
1480
1481         cat >>$outfile <<_______EOF
1482
1483 #ifdef __cplusplus
1484 }
1485 #endif /* __cplusplus */
1486
1487 #endif /* GDKCONFIG_H */
1488 _______EOF
1489
1490
1491         if cmp -s $outfile gdk/gdkconfig.h; then
1492           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1493           rm -f $outfile
1494         else
1495           mv $outfile gdk/gdkconfig.h
1496         fi
1497 ],[
1498 if test "x$gdktarget" = "xx11" ; then
1499   gdk_windowing='
1500 #define GDK_WINDOWING_X11'
1501 elif test "x$gdktarget" = "xwin32" ; then
1502   gdk_windowing='
1503 #define GDK_WINDOWING_WIN32'
1504 elif test "x$gdktarget" = "xlinux-fb" ; then
1505   gdk_windowing='
1506 #define GDK_WINDOWING_FB
1507 #define GDK_NATIVE_WINDOW_POINTER'
1508 fi
1509
1510 if test x$gdk_wchar_h = xyes; then
1511   gdk_wc='
1512 #define GDK_HAVE_WCHAR_H 1'
1513 fi
1514 if test x$gdk_wctype_h = xyes; then
1515   gdk_wc="\$gdk_wc
1516 #define GDK_HAVE_WCTYPE_H 1"
1517 fi
1518 if test x$gdk_working_wctype = xno; then
1519   gdk_wc="\$gdk_wc
1520 #define GDK_HAVE_BROKEN_WCTYPE 1"
1521 fi
1522
1523
1524 ])
1525
1526 AC_CONFIG_FILES([
1527 config.h.win32
1528 gtk-zip.sh
1529 Makefile
1530 gdk-pixbuf-2.0.pc
1531 gdk-2.0.pc
1532 gtk+-2.0.pc
1533 gdk-pixbuf-2.0-uninstalled.pc
1534 gdk-2.0-uninstalled.pc
1535 gtk+-2.0-uninstalled.pc
1536 m4macros/Makefile
1537 po/Makefile.in
1538 po-properties/Makefile.in
1539 build/Makefile
1540 build/win32/Makefile
1541 build/win32/dirent/Makefile
1542 demos/Makefile
1543 demos/gtk-demo/Makefile
1544 demos/gtk-demo/geninclude.pl
1545 tests/Makefile
1546 docs/Makefile
1547 docs/reference/Makefile
1548 docs/reference/gdk-pixbuf/Makefile
1549 docs/reference/gdk-pixbuf/version.xml
1550 docs/reference/gdk/Makefile
1551 docs/reference/gdk/version.xml
1552 docs/reference/gtk/Makefile
1553 docs/reference/gtk/version.xml
1554 docs/faq/Makefile
1555 docs/tutorial/Makefile
1556 gdk-pixbuf/Makefile
1557 gdk-pixbuf/gdk_pixbuf.rc
1558 gdk-pixbuf/gdk-pixbuf-features.h
1559 gdk-pixbuf/pixops/Makefile
1560 gdk/Makefile
1561 gdk/x11/Makefile
1562 gdk/win32/Makefile
1563 gdk/win32/rc/Makefile
1564 gdk/win32/rc/gdk.rc
1565 gdk/linux-fb/Makefile
1566 gtk/Makefile
1567 gtk/makefile.msc
1568 gtk/gtkversion.h
1569 gtk/gtk-win32.rc
1570 gtk/stock-icons/Makefile
1571 gtk/theme-bits/Makefile
1572 gtk/xdgmime/Makefile
1573 modules/Makefile
1574 modules/input/Makefile
1575 contrib/Makefile
1576 contrib/gdk-pixbuf-xlib/Makefile
1577 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1578 ])
1579
1580 AC_OUTPUT