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