]> Pileus Git - ~andy/gtk/blob - configure.in
Added "en_CA" to ALL_LINGUAS. Added Canadian English translation by Adam
[~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   # We start off with the libraries from Pango
995
996   ## be sure we also have Pango built with Xft2 support
997   if $PKG_CONFIG --exists 'pangoxft >= 1.2.0' ; then
998     if $have_freetype ; then
999       :
1000     else
1001       AC_MSG_ERROR([Xft Pango backend found but did not find freetype libraries])
1002     fi
1003   else
1004     AC_MSG_ERROR([Pango 1.2.0 and Xft backend is required for x11 target])
1005   fi
1006
1007   if $PKG_CONFIG --exists xft ; then : ; else
1008     AC_MSG_ERROR([Xft version 2 is required for x11 target])
1009   fi
1010
1011   #
1012   # If Pango included the shared library dependencies from X11 in
1013   # the pkg-config output, then we use that (to avoid duplicates).
1014   # but if they were omitted to avoid binary compatibility problems,
1015   # then we need to repeat the checks.
1016   #
1017   x_libs="`$PKG_CONFIG --libs pangoxft`"
1018   case "$x_libs" in
1019     *-lX11*) pango_omitted_x_deps=no ;;
1020     *)       pango_omitted_x_deps=yes ;;
1021   esac
1022
1023   x_cflags="`$PKG_CONFIG --cflags pangoxft`"
1024   x_extra_libs=
1025
1026   AC_PATH_XTRA
1027   if test x$no_x = xyes ; then
1028     AC_MSG_ERROR([X development libraries not found])
1029   fi
1030   
1031   if test $pango_omitted_x_deps = yes ; then
1032     # Old versions of Xft didn't necessarily include -lX11 in the output
1033     x_libs="`pkg-config --libs xft` -lX11 $X_EXTRA_LIBS"
1034   fi            
1035
1036   ## Strip the .la files
1037  
1038   x_libs_for_checks=""
1039   for I in $x_libs ; do
1040     case $I in 
1041       *.la) ;;
1042       *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1043     esac
1044   done
1045
1046   # Sanity check for the X11 library
1047   AC_CHECK_LIB(X11, XOpenDisplay, :,
1048             AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
1049             $x_libs_for_checks)
1050
1051   if test "x$enable_shm" = "xyes"; then
1052     # Check for the Xext library (needed for XShm extention)
1053     AC_CHECK_LIB(Xext, XShmAttach,
1054         [GTK_ADD_LIB(x_extra_libs,Xext)],
1055         # On AIX, it is in XextSam instead, but we still need -lXext
1056         [AC_CHECK_LIB(XextSam, XShmAttach, 
1057             [GTK_ADD_LIB(x_extra_libs,Xext)
1058              GTK_ADD_LIB(x_extra_libs,XextSam)
1059             ], , -lXext $x_libs_for_checks)],
1060         $x_libs_for_checks)
1061   fi
1062
1063   GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1064   # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1065   GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $x_extra_libs $X_EXTRA_LIBS"
1066
1067   # GTK+ uses some X calls, so needs to link against X directly
1068   if test $enable_explicit_deps != yes ; then
1069     GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
1070   fi
1071
1072   # Check for Xinerama extension (Solaris impl or Xfree impl)
1073
1074   gtk_save_cppflags="$CPPFLAGS"
1075   CPPFLAGS="$CPPFLAGS $x_cflags"
1076
1077   case "$host" in
1078       *-*-solaris*)
1079           # Check for solaris
1080           use_solaris_xinerama=yes
1081           AC_CHECK_LIB(Xext, XineramaGetInfo,
1082                         use_solaris_xinerama=yes, use_solaris_xinerama=no)
1083           if test "x$use_solaris_xinerama" = "xyes"; then
1084               AC_CHECK_HEADER(X11/extensions/xinerama.h,
1085                 [GTK_ADD_LIB(x_extra_libs,Xext)
1086                 AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1087                 AC_DEFINE(HAVE_XINERAMA)], use_solaris_xinerama=no, -lXext $x_libs_for_checks)
1088           fi    
1089           AC_MSG_CHECKING(for Xinerama support on Solaris)
1090           AC_MSG_RESULT($use_solaris_xinerama);
1091           ;;
1092       *)
1093           # Check for XFree
1094           use_xfree_xinerama=yes
1095           AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1096               [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1097                   [GTK_ADD_LIB(x_extra_libs,Xext)
1098                   GTK_ADD_LIB(x_extra_libs,Xinerama)
1099                   AC_DEFINE(HAVE_XFREE_XINERAMA)
1100                   AC_DEFINE(HAVE_XINERAMA)], 
1101                   use_xfree_xinerama=no,
1102                   [#include <X11/Xlib.h>])],
1103               use_xfree_xinerama=no, -lXext $x_libs_for_checks)
1104           AC_MSG_CHECKING(for Xinerama support on XFree86)
1105           AC_MSG_RESULT($use_xfree_xinerama);       
1106           ;;
1107   esac
1108
1109   CPPFLAGS="$gtk_save_cppflags"
1110
1111   # Check for shaped window extension
1112
1113   AC_CHECK_LIB(Xext, XShapeCombineMask,
1114       [GTK_ADD_LIB(x_extra_libs,Xext)
1115        AC_DEFINE(HAVE_SHAPE_EXT)],
1116       ,
1117       $x_libs_for_checks)
1118
1119   # Check for XConvertCase (X11R6 specific)
1120
1121   AC_CHECK_LIB(X11, XConvertCase,
1122       AC_DEFINE(HAVE_XCONVERTCASE),
1123       ,
1124       $x_libs_for_checks)
1125
1126   # Generic X11R6 check needed for XIM support; we could
1127   # probably use this to replace the above, but we'll
1128   # leave the separate XConvertCase check for clarity
1129
1130   have_x11r6=false
1131   AC_CHECK_LIB(X11, XAddConnectionWatch,
1132       have_x11r6=true,
1133       ,
1134       $x_libs_for_checks)
1135
1136   if $have_x11r6; then
1137     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1138   fi
1139   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1140
1141   # Check for XKB support.
1142
1143   if test "x$enable_xkb" = "xyes"; then
1144         AC_MSG_WARN(XKB support explicitly enabled)
1145         AC_DEFINE(HAVE_XKB)
1146   elif test "x$enable_xkb" = "xmaybe"; then
1147         AC_CHECK_LIB(X11, XkbQueryExtension,
1148                      AC_DEFINE(HAVE_XKB),
1149                      ,
1150                      $x_libs_for_checks)
1151   else
1152         AC_MSG_WARN(XKB support explicitly disabled)
1153   fi
1154
1155   x_cflags="$X_CFLAGS"
1156   x_ldflags="$X_LDFLAGS"
1157
1158   # set up things for XInput
1159
1160   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1161     AC_DEFINE(XINPUT_XFREE)
1162     GTK_ADD_LIB(x_extra_libs, Xi)
1163   else
1164     AC_DEFINE(XINPUT_NONE)
1165   fi
1166
1167   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1168
1169   # Check for the RANDR extension
1170
1171   AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1172       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1173           # RANDR requires RENDER
1174           [GTK_ADD_LIB(x_extra_libs, Xrender)
1175           GTK_ADD_LIB(x_extra_libs, Xrandr)
1176           AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)],
1177           :, [#include <X11/Xlib.h>])], : ,
1178        $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
1179
1180   # Checks for Xcursor library
1181   
1182   have_xcursor=false
1183   PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)
1184
1185   if $have_xcursor ; then
1186     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1187     XCURSOR_PACKAGES="xcursor"
1188   else
1189     XCURSOR_PACKAGES=
1190   fi
1191     
1192   # Xshm checks
1193
1194   if test "x$enable_shm" = "xyes"; then
1195     # Check for shared memory
1196     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1197     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1198
1199     # Check for the X shared memory extension header file
1200     have_xshm=no 
1201     AC_MSG_CHECKING(X11/extensions/XShm.h)
1202     if test "x$no_xext_lib" = "xyes"; then
1203       :
1204     else
1205       gtk_save_CFLAGS="$CFLAGS"
1206       CFLAGS="$CFLAGS $x_cflags"
1207       AC_TRY_COMPILE([
1208 #include <stdlib.h>
1209 #include <sys/types.h>
1210 #include <sys/ipc.h>
1211 #include <sys/shm.h>
1212 #include <X11/Xlib.h>
1213 #include <X11/Xutil.h>
1214 #include <X11/extensions/XShm.h>
1215 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1216       CFLAGS="$gtk_save_CFLAGS"
1217     fi
1218     AC_MSG_RESULT($have_xshm)
1219     if test $have_xshm = yes ; then
1220       AC_DEFINE(HAVE_XSHM_H)
1221     fi
1222   fi
1223
1224   GDK_EXTRA_CFLAGS=
1225   if test $pango_omitted_x_deps = yes ; then
1226     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1227   else
1228     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $GDK_EXTRA_LIBS"
1229   fi
1230
1231   AM_CONDITIONAL(USE_X11, true)
1232 else
1233   AM_CONDITIONAL(XINPUT_XFREE, false)
1234   AM_CONDITIONAL(USE_X11, false)
1235   AM_CONDITIONAL(HAVE_X11R6, false)
1236 fi
1237
1238 if test "x$gdktarget" = "xwin32"; then
1239   # We start off with the libraries from Pango
1240
1241   if test x$have_wintab = xyes; then
1242     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1243     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1244   fi
1245
1246   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1247   AM_CONDITIONAL(USE_WIN32, true)
1248 else
1249   AM_CONDITIONAL(USE_WIN32, false)
1250 fi
1251
1252 GDK_PIXBUF_XLIB_PACKAGES=
1253 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1254 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"
1255
1256 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1257 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1258 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1259 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1260 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1261
1262 if test "x$gdktarget" = "xlinux-fb"; then
1263   if $have_freetype ; then
1264     :
1265   else
1266     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1267   fi
1268
1269   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1270   case "$ft2_libs" in
1271     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1272     *)            pango_omitted_ft2_deps=yes ;;
1273   esac
1274
1275   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1276
1277   if test x$enable_shadowfb = xyes ; then
1278     AC_DEFINE(ENABLE_SHADOW_FB)
1279   fi
1280
1281   if test x$enable_fbmanager = xyes ; then
1282     AC_DEFINE(ENABLE_FB_MANAGER)
1283     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1284   else
1285     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1286   fi
1287   
1288   GDK_EXTRA_CFLAGS=""
1289   if test $pango_omitted_ft2_deps = yes ; then
1290     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1291   fi
1292
1293   AM_CONDITIONAL(USE_LINUX_FB, true)
1294 else
1295   AM_CONDITIONAL(USE_LINUX_FB, false)
1296   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1297 fi
1298
1299 #
1300 # Pick correct Pango packages to use
1301 #
1302
1303 if test "x$gdktarget" = "xx11"; then
1304         PANGO_PACKAGES=pangoxft
1305         
1306         # We no longer use pangox, but if we find it, we link to it 
1307         # for binary compatibility.
1308         if $PKG_CONFIG --exists pangox ; then
1309                 PANGO_PACKAGES="$PANGO_PACKAGES pangox"
1310         fi
1311 elif test "x$gdktarget" = "xwin32"; then
1312         PANGO_PACKAGES=pangowin32
1313 elif test "x$gdktarget" = "xlinux-fb"; then
1314         PANGO_PACKAGES=pangoft2
1315 else
1316         PANGO_PACKAGES=pango
1317 fi
1318
1319 # Check for Pango flags
1320
1321 AC_MSG_CHECKING(Pango flags)
1322 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1323         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1324         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1325
1326         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1327 else
1328         AC_MSG_ERROR([
1329 *** Pango not found. Pango is required to build GTK+.
1330 *** See http://www.pango.org for Pango information.
1331 *** For the framebuffer target, you will need to build 
1332 *** Pango with freetype support.
1333 ])
1334 fi
1335
1336 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1337
1338 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1339         :
1340 else
1341         gtk_save_LIBS="$LIBS"
1342         LIBS="$PANGO_LIBS $LIBS"
1343         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1344 *** Can't link to Pango. Pango is required to build
1345 *** GTK+. For more information see http://www.pango.org]))
1346         LIBS="$gtk_save_LIBS"
1347 fi
1348
1349 CFLAGS="$saved_cflags"
1350 LDFLAGS="$saved_ldflags"
1351
1352 GDK_PACKAGES="$XCURSOR_PACKAGES $PANGO_PACKAGES"
1353 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1354 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1355
1356 #
1357 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1358 # into the pkg-config files
1359 #
1360 if test $enable_explicit_deps != yes ; then
1361   GDK_EXTRA_LIBS=
1362 fi
1363
1364 AC_SUBST(GDK_PACKAGES)
1365 AC_SUBST(GDK_EXTRA_LIBS)
1366 AC_SUBST(GDK_EXTRA_CFLAGS)
1367 AC_SUBST(GDK_DEP_LIBS)
1368 AC_SUBST(GDK_DEP_CFLAGS)
1369
1370
1371 ########################################
1372 # Check for Accessibility Toolkit flags
1373 ########################################
1374
1375 ATK_PACKAGES=atk
1376 AC_MSG_CHECKING(ATK flags)
1377 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1378         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1379         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1380
1381         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1382 else
1383         AC_MSG_ERROR([
1384 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1385 *** to build GTK+.
1386 ])
1387 fi
1388
1389 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1390         :
1391 else
1392         gtk_save_LIBS="$LIBS"
1393         LIBS="$ATK_LIBS $LIBS"
1394         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1395                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1396                 *** to build GTK+]))
1397         LIBS="$gtk_save_LIBS"
1398 fi
1399
1400 GTK_PACKAGES=atk
1401 GTK_EXTRA_LIBS=
1402 GTK_EXTRA_CFLAGS= 
1403 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"
1404 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"
1405
1406 AC_SUBST(GTK_PACKAGES)
1407 AC_SUBST(GTK_EXTRA_LIBS)
1408 AC_SUBST(GTK_EXTRA_CFLAGS)
1409 AC_SUBST(GTK_DEP_LIBS)
1410 AC_SUBST(GTK_DEP_CFLAGS)
1411
1412
1413 AC_SUBST(GTK_DEBUG_FLAGS)
1414 AC_SUBST(GTK_XIM_FLAGS)
1415
1416 ##################################################
1417 # Checks for gtk-doc and docbook-tools
1418 ##################################################
1419
1420 GTK_DOC_CHECK([1.0])
1421
1422 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1423 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1424
1425 AC_ARG_ENABLE(man,
1426               [AC_HELP_STRING([--enable-man],
1427                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1428               enable_man=no)
1429
1430 if test "${enable_man}" != no; then
1431   dnl
1432   dnl Check for xsltproc
1433   dnl
1434   AC_PATH_PROG([XSLTPROC], [xsltproc])
1435   if test -z "$XSLTPROC"; then
1436     enable_man=no
1437   fi
1438
1439   dnl check for DocBook DTD and stylesheets in the local catalog.
1440   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1441      [DocBook XML DTD V4.1.2],,enable_man=no)
1442   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1443      [DocBook XSL Stylesheets],,enable_man=no)
1444 fi
1445
1446 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1447
1448 ##################################################
1449 # Output commands
1450 ##################################################
1451
1452 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1453         outfile=gdkconfig.h-tmp
1454         cat > $outfile <<\_______EOF
1455 /* gdkconfig.h
1456  *
1457  * This is a generated file.  Please modify `configure.in'
1458  */
1459
1460 #ifndef GDKCONFIG_H
1461 #define GDKCONFIG_H
1462
1463 #ifdef __cplusplus
1464 extern "C" {
1465 #endif /* __cplusplus */
1466
1467 _______EOF
1468
1469         cat >>$outfile <<_______EOF
1470 $gdk_windowing
1471 $gdk_wc
1472 _______EOF
1473
1474         cat >>$outfile <<_______EOF
1475
1476 #ifdef __cplusplus
1477 }
1478 #endif /* __cplusplus */
1479
1480 #endif /* GDKCONFIG_H */
1481 _______EOF
1482
1483
1484         if cmp -s $outfile gdk/gdkconfig.h; then
1485           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1486           rm -f $outfile
1487         else
1488           mv $outfile gdk/gdkconfig.h
1489         fi
1490 ],[
1491 if test "x$gdktarget" = "xx11" ; then
1492   gdk_windowing='
1493 #define GDK_WINDOWING_X11'
1494 elif test "x$gdktarget" = "xwin32" ; then
1495   gdk_windowing='
1496 #define GDK_WINDOWING_WIN32'
1497 elif test "x$gdktarget" = "xlinux-fb" ; then
1498   gdk_windowing='
1499 #define GDK_WINDOWING_FB
1500 #define GDK_NATIVE_WINDOW_POINTER'
1501 fi
1502
1503 if test x$gdk_wchar_h = xyes; then
1504   gdk_wc='
1505 #define GDK_HAVE_WCHAR_H 1'
1506 fi
1507 if test x$gdk_wctype_h = xyes; then
1508   gdk_wc="\$gdk_wc
1509 #define GDK_HAVE_WCTYPE_H 1"
1510 fi
1511 if test x$gdk_working_wctype = xno; then
1512   gdk_wc="\$gdk_wc
1513 #define GDK_HAVE_BROKEN_WCTYPE 1"
1514 fi
1515
1516
1517 ])
1518
1519 AC_CONFIG_FILES([
1520 config.h.win32
1521 gtk-zip.sh
1522 Makefile
1523 gdk-pixbuf-2.0.pc
1524 gdk-2.0.pc
1525 gtk+-2.0.pc
1526 gdk-pixbuf-2.0-uninstalled.pc
1527 gdk-2.0-uninstalled.pc
1528 gtk+-2.0-uninstalled.pc
1529 m4macros/Makefile
1530 po/Makefile.in
1531 po-properties/Makefile.in
1532 build/Makefile
1533 build/win32/Makefile
1534 build/win32/dirent/Makefile
1535 demos/Makefile
1536 demos/gtk-demo/Makefile
1537 demos/gtk-demo/geninclude.pl
1538 tests/Makefile
1539 docs/Makefile
1540 docs/reference/Makefile
1541 docs/reference/gdk-pixbuf/Makefile
1542 docs/reference/gdk-pixbuf/version.xml
1543 docs/reference/gdk/Makefile
1544 docs/reference/gdk/version.xml
1545 docs/reference/gtk/Makefile
1546 docs/reference/gtk/version.xml
1547 docs/faq/Makefile
1548 docs/tutorial/Makefile
1549 gdk-pixbuf/Makefile
1550 gdk-pixbuf/gdk_pixbuf.rc
1551 gdk-pixbuf/gdk-pixbuf-features.h
1552 gdk-pixbuf/pixops/Makefile
1553 gdk/Makefile
1554 gdk/x11/Makefile
1555 gdk/win32/Makefile
1556 gdk/win32/rc/Makefile
1557 gdk/win32/rc/gdk.rc
1558 gdk/linux-fb/Makefile
1559 gtk/Makefile
1560 gtk/makefile.msc
1561 gtk/gtkversion.h
1562 gtk/gtk-win32.rc
1563 gtk/stock-icons/Makefile
1564 gtk/theme-bits/Makefile
1565 gtk/xdgmime/Makefile
1566 modules/Makefile
1567 modules/input/Makefile
1568 contrib/Makefile
1569 contrib/gdk-pixbuf-xlib/Makefile
1570 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1571 ])
1572
1573 AC_OUTPUT