]> Pileus Git - ~andy/gtk/blob - configure.in
fix preprocessor conditional confusion. (G_OS_UNIX/G_OS_WIN32 stuff)
[~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], [1])
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], [301])
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.0])
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 AC_MSG_CHECKING(whether make is GNU Make)
384 STRIP_BEGIN=
385 STRIP_END=
386 if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
387         STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
388         STRIP_END=')'
389         AC_MSG_RESULT(yes)
390 else
391         AC_MSG_RESULT(no)
392 fi
393 STRIP_DUMMY=
394 AC_SUBST(STRIP_DUMMY)
395 AC_SUBST(STRIP_BEGIN)
396 AC_SUBST(STRIP_END)
397
398 # i18n stuff
399 ALL_LINGUAS="am ar az be bg ca cs cy da de el en_GB es et eu fa fi fr ga gl he hi hr hu ia id it ja ko li lt lv 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@Cyrl vi wa yi zh_CN zh_TW"
400 AM_GLIB_GNU_GETTEXT
401 LIBS="$LIBS $INTLLIBS"
402
403 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
404
405 dnl The DU4 header files don't provide library prototypes unless 
406 dnl -std1 is given to the native cc.
407 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
408
409 gtk_save_LIBS=$LIBS
410 LIBS="$LIBS -lm"
411 AC_TRY_RUN([#include <math.h>
412              int main (void) { return (log(1) != log(1.)); }],
413      AC_MSG_RESULT(none needed),
414      gtk_save_CFLAGS="$CFLAGS"
415      CFLAGS="$CFLAGS -std1"
416      AC_TRY_RUN([#include <math.h>
417                  int main (void) { return (log(1) != log(1.)); }],
418          AC_MSG_RESULT(-std1),
419          AC_MSG_RESULT()
420          CFLAGS="$gtk_save_CFLAGS"
421          AC_MSG_WARN(
422                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
423          true
424      ),
425      AC_MSG_RESULT(none needed)
426 )
427 LIBS=$gtk_save_LIBS
428
429 AC_MSG_CHECKING(for the BeOS)
430 case $host in
431   *-*-beos*)
432     AC_MSG_RESULT(yes)
433     MATH_LIB=
434   ;;
435   *)
436     AC_MSG_RESULT(no)
437   ;;
438 esac
439
440 dnl NeXTStep cc seems to need this
441 AC_MSG_CHECKING([for extra flags for POSIX compliance])
442 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
443   AC_MSG_RESULT(none needed),
444   gtk_save_CFLAGS="$CFLAGS"
445   CFLAGS="$CFLAGS -posix"
446   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
447     AC_MSG_RESULT(-posix),
448     AC_MSG_RESULT()
449     CFLAGS="$gtk_save_CFLAGS"
450     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
451
452 #
453 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
454
455
456 GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
457
458 AM_PATH_GLIB_2_0(glib_required_version, :,
459   AC_MSG_ERROR([
460 *** GLIB glib_required_version or better is required. The latest version of 
461 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
462   gobject gmodule gthread)
463
464 dnl
465 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
466 dnl
467 gtk_save_LIBS=$LIBS
468 LIBS="$LIBS $GLIB_LIBS"
469 AC_CHECK_FUNCS(bind_textdomain_codeset)
470 LIBS=$gtk_save_LIBS
471
472 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
473 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
474 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
475
476 if test "${with_ie55+set}" = set && test $with_ie55 != no; then
477   AC_MSG_CHECKING([for dimm.h])
478   saved_CFLAGS="$CFLAGS"
479   CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
480   AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
481 #ifdef __GNUC__
482 #define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
483 #define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
484 #endif
485 #include <windows.h>
486 #include <objbase.h>
487 #include <imm.h>
488 #ifdef __GNUC__
489 #undef IMEMENUITEMINFOA
490 #undef IMEMENUITEMINFOW
491 #endif
492 #include <dimm.h>
493 ],
494    [],
495    [AC_MSG_RESULT(yes)
496     AC_MSG_CHECKING([for IE55 uuid.lib])
497     if test -f $with_ie55/Lib/uuid.lib ; then
498       AC_MSG_RESULT(yes)
499       have_ie55=yes
500       AC_DEFINE(HAVE_DIMM_H)
501       IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
502       AC_SUBST(IE55_UUID_LIB)
503     else
504       AC_MSG_RESULT(no)
505       CFLAGS="$saved_CFLAGS"
506       have_ie55=no
507     fi
508     ],
509    [AC_MSG_RESULT(no)
510     CFLAGS="$saved_CFLAGS"
511     have_ie55=no])
512 fi
513 AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
514
515 if test "${with_wintab+set}" = set && test $with_wintab != no; then
516   AC_MSG_CHECKING([for wintab.h])
517   saved_CFLAGS="$CFLAGS"
518   CFLAGS="$CFLAGS -I$with_wintab/include"
519   AC_TRY_COMPILE([#include <windows.h>
520 #include <wintab.h>], 
521    [],
522    [AC_MSG_RESULT(yes)
523     AC_MSG_CHECKING([for wntab32x.lib])
524     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
525       AC_MSG_RESULT(yes)
526       have_wintab=yes
527       AC_DEFINE(HAVE_WINTAB)
528       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
529       AC_SUBST(WINTAB_LIB)
530     else
531       AC_MSG_RESULT(no)
532       CFLAGS="$saved_cflags"
533       have_wintab=no
534     fi
535     ],
536    [AC_MSG_RESULT(no)
537     CFLAGS="$saved_cflags"
538     have_wintab=no])
539 fi
540 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
541
542 saved_cflags="$CFLAGS"
543 saved_ldflags="$LDFLAGS"
544
545
546 # Checks for header files.
547 AC_HEADER_STDC
548
549 # Checks for typedefs, structures, and compiler characteristics.
550 AC_C_CONST
551
552 # Checks for library functions.
553 AC_TYPE_SIGNAL
554 AC_FUNC_MMAP
555
556 AC_CHECK_FUNCS(getresuid)
557 AC_TYPE_UID_T
558
559 # Check if <sys/select.h> needs to be included for fd_set
560 AC_MSG_CHECKING([for fd_set])
561 AC_TRY_COMPILE([#include <sys/types.h>],
562         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
563 if test $gtk_ok = yes; then
564     AC_MSG_RESULT([yes, found in sys/types.h])
565 else
566     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
567     if test $gtk_ok = yes; then
568         AC_DEFINE(HAVE_SYS_SELECT_H)
569         AC_MSG_RESULT([yes, found in sys/select.h])
570     else
571         AC_DEFINE(NO_FD_SET)
572         AC_MSG_RESULT(no)
573     fi
574 fi
575
576 # `widechar' tests for gdki18n.h
577 AC_MSG_CHECKING(for wchar.h)
578 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
579 if test $gdk_wchar_h = yes; then
580    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
581 fi
582 AC_MSG_RESULT($gdk_wchar_h)
583
584 # Check for wctype.h (for iswalnum)
585 AC_MSG_CHECKING(for wctype.h)
586 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
587 if test $gdk_wctype_h = yes; then
588    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
589 fi
590 AC_MSG_RESULT($gdk_wctype_h)
591
592 # in Solaris 2.5, `iswalnum' is in -lw
593 GDK_WLIBS=
594 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
595
596 oLIBS="$LIBS"
597 LIBS="$LIBS $GDK_WLIBS"
598 # The following is necessary for Linux libc-5.4.38
599 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
600 AC_TRY_LINK([#include <stdlib.h>],[
601 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
602 #  ifdef HAVE_WCTYPE_H
603 #    include <wctype.h>
604 #  else
605 #    ifdef HAVE_WCHAR_H
606 #      include <wchar.h>
607 #    endif
608 #  endif
609 #else
610 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
611 #endif
612 iswalnum((wchar_t) 0);
613 ], gdk_working_wctype=yes, gdk_working_wctype=no)
614 LIBS="$oLIBS"
615
616 if test $gdk_working_wctype = no; then
617    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
618    GDK_WLIBS=
619 fi
620 AC_MSG_RESULT($gdk_working_wctype)
621 AC_SUBST(GDK_WLIBS)
622
623
624 ##################################################
625 # Checks for gdk-pixbuf
626 ##################################################
627
628 dnl ********************************************************
629 dnl * See whether we need to load our modules as .la files *
630 dnl ********************************************************
631
632 use_la_modules=false
633 case $host in
634   *-aix*) use_la_modules=true
635 esac
636
637 if $use_la_modules ; then
638    AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
639 fi
640
641
642 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
643
644 AC_ARG_ENABLE(modules,
645               [AC_HELP_STRING([--disable-modules],
646                               [disable dynamic module loading])])
647
648 dynworks=false
649 deps=
650 if test x$enable_modules = xno; then
651     AC_MSG_RESULT(no)
652 else
653     AC_MSG_RESULT(yes)
654     AC_MSG_CHECKING(whether dynamic modules work)
655     ## for loop is to strip newline 
656     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-2.0`
657     for I in $tmp; do
658         dynworks=$I
659     done
660
661     dnl Now we check to see if our libtool supports shared lib deps
662     dnl (in a rather ugly way even)
663     if $dynworks; then
664         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
665         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
666             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
667             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
668         if test "x$pixbuf_deplibs_check" = "xnone" || \
669            test "x$pixbuf_deplibs_check" = "xunknown" || \
670            test "x$pixbuf_deplibs_check" = "x"; then
671             dynworks=false
672         fi
673     fi
674
675     if $dynworks; then
676         AC_DEFINE(USE_GMODULE)
677         AC_MSG_RESULT(yes)
678     else
679         AC_MSG_RESULT(no)
680     fi
681 fi
682
683 dnl We allow people to disable image loaders explicitely, but if they don't we error
684 dnl out so that people don't accidentally build without them.
685
686 AC_ARG_WITH(libpng,
687             [AC_HELP_STRING([--without-libpng],
688                             [disable PNG loader for gdk-pixbuf])])
689 AC_ARG_WITH(libjpeg,
690             [AC_HELP_STRING([--without-libjpeg],
691                             [disable JPEG loader for gdk-pixbuf])])
692 AC_ARG_WITH(libtiff,
693             [AC_HELP_STRING([--without-libtiff],
694                             [disable TIFF loader for gdk-pixbuf])])
695
696 dnl Test for libtiff
697   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
698     AC_CHECK_LIB(tiff, TIFFReadScanline,
699       [AC_CHECK_HEADER(tiffio.h,
700         TIFF='tiff'; LIBTIFF='-ltiff',
701         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
702       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
703         [AC_CHECK_HEADER(tiffio.h,
704           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
705           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
706         [AC_CHECK_LIB(tiff34, TIFFFlushData,
707           [AC_CHECK_HEADER(tiffio.h,
708             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
709             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
710         AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
711   fi
712
713   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
714      AC_MSG_ERROR([
715 *** Checks for TIFF loader failed. You can build without it by passing 
716 *** --without-libtiff to configure but some programs using GTK+ may
717 *** not work properly])
718   fi
719
720 dnl Test for libjpeg
721   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
722     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
723       jpeg_ok=yes,
724       jpeg_ok=no
725       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
726     if test "$jpeg_ok" = yes; then
727       AC_MSG_CHECKING([for jpeglib.h])
728       AC_TRY_CPP(
729 [#include <stdio.h>
730 #undef PACKAGE
731 #undef VERSION
732 #undef HAVE_STDLIB_H
733 #include <jpeglib.h>],
734         jpeg_ok=yes,
735         jpeg_ok=no)
736       AC_MSG_RESULT($jpeg_ok)
737       if test "$jpeg_ok" = yes; then
738         LIBJPEG='-ljpeg'
739         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
740           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
741           AC_MSG_WARN(JPEG library does not support progressive saving.))
742       else
743           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
744       fi
745     fi
746   fi
747
748   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
749      AC_MSG_ERROR([
750 *** Checks for JPEG loader failed. You can build without it by passing 
751 *** --without-libjpeg to configure but some programs using GTK+ may
752 *** not work properly])
753   fi
754
755 dnl Test for libpng
756   if test x$with_libpng != xno && test -z "$LIBPNG"; then
757     AC_MSG_CHECKING(for libpng12)
758     if $PKG_CONFIG --exists libpng12 ; then
759         AC_MSG_RESULT(yes)
760         PNG='png'
761         PNG_DEP_CFLAGS_PACKAGES=libpng12
762         LIBPNG=`$PKG_CONFIG --libs libpng12`
763     else
764       AC_MSG_RESULT(no)
765       AC_CHECK_LIB(png, png_read_info,
766         [AC_CHECK_HEADER(png.h,
767           png_ok=yes,
768           png_ok=no)],
769         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
770       if test "$png_ok" = yes; then
771         AC_MSG_CHECKING([for png_structp in png.h])
772         AC_TRY_COMPILE([#include <png.h>],
773           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
774           png_ok=yes,
775           png_ok=no)
776         AC_MSG_RESULT($png_ok)
777         if test "$png_ok" = yes; then
778           PNG='png'; LIBPNG='-lpng -lz'
779         else
780           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
781         fi
782       else
783        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
784       fi
785     fi
786   fi
787
788   if test x$with_libpng != xno && test -z "$LIBPNG"; then
789      AC_MSG_ERROR([
790 *** Checks for PNG loader failed. You can build without it by passing 
791 *** --without-libpng to configure but many programs using GTK+ will
792 *** not work properly. The PNG loader is also needed if you are compiling
793 *** from CVS.])
794   fi
795
796 AC_SUBST(LIBTIFF)
797 AC_SUBST(LIBJPEG)
798 AC_SUBST(LIBPNG)
799
800 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
801
802 #
803 # Allow building some or all gdk-pixbuf loaders included
804 #
805 AC_MSG_CHECKING(pixbuf loaders to build)
806
807 dnl due to an autoconf bug, commas in the first arg to
808 dnl AC_HELP_STRING cause problems.
809 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
810 dnl                [build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
811 AC_ARG_WITH(included_loaders,
812 [  --with-included-loaders=LOADER1,LOADER2,...
813                           build the specified loaders into gdk-pixbuf (only
814                           used if module loading disabled)])
815
816 if $dynworks; then 
817         :
818 else
819    ## if the option was specified, leave it; otherwise disable included loaders
820    if test x$with_included_loaders = xno; then
821            with_included_loaders=yes
822    fi
823 fi
824
825 all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
826 included_loaders=""
827 # If no loaders specified, include all
828 if test "x$with_included_loaders" = xyes ; then
829   included_loaders="$all_loaders"
830 else
831   included_loaders="$with_included_loaders"
832 fi
833
834 AC_MSG_RESULT($included_loaders)
835
836 INCLUDED_LOADER_OBJ=
837 INCLUDED_LOADER_DEFINE=
838
839 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
840 for loader in $included_loaders; do
841  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
842    :
843  else
844    AC_MSG_ERROR([the specified loader $loader does not exist])
845  fi
846
847  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
848  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
849 done
850 IFS="$gtk_save_ifs"
851 AC_SUBST(INCLUDED_LOADER_OBJ)
852 AC_SUBST(INCLUDED_LOADER_DEFINE)
853
854 AC_HEADER_SYS_WAIT
855
856 AC_TYPE_SIGNAL
857
858 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
859 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
860 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
861
862 if $dynworks ; then
863   STATIC_LIB_DEPS=
864   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
865     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
866   fi
867   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
868     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
869   fi
870   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
871     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
872   fi
873 else
874   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
875 fi
876
877 # Checks to see if we should compile in MMX support (there will be
878 # a runtime test when the code is actually run to see if it should
879 # be used - this just checks if we can compile it.)
880 #
881 # This code is partially taken from Mesa
882 #
883 AC_MSG_CHECKING(for x86 platform)
884 case $host_cpu in
885   i386|i486|i586|i686|i786|k6|k7)
886         use_x86_asm=yes
887         ;;
888    *)
889         use_x86_asm=no
890 esac
891 AC_MSG_RESULT($use_x86_asm)
892
893 use_mmx_asm=no
894 if test $use_x86_asm = yes; then
895     save_ac_ext=$ac_ext
896     ac_ext=S
897     
898     AC_MSG_CHECKING(compiler support for MMX)
899     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
900     if AC_TRY_EVAL(ac_compile); then
901         use_mmx_asm=yes
902     fi
903
904     rm -rf conftest*
905
906     ac_ext=$save_ac_ext
907     if test $use_mmx_asm = yes; then
908       AC_DEFINE(USE_MMX)
909       AC_MSG_RESULT(yes)
910     else
911       AC_MSG_RESULT(no)
912     fi
913 fi
914
915 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
916
917 REBUILD_PNGS=
918 if test -z "$LIBPNG"; then
919   REBUILD_PNGS=#
920 fi
921
922 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
923
924 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
925
926 if test $cross_compiling = yes; then
927   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
928   if test x$GDK_PIXBUF_CSOURCE = xno; then
929     REBUILD_PNGS=#
930   fi
931 fi
932
933 if test ! -f $srcdir/gtk/stock-icons/gtkstockpixbufs.h && 
934    test "x$REBUILD_PNGS" = "x#" ; then
935      AC_MSG_ERROR([
936 *** gtkstockpixbufs.h is not in the tree, and cannot be built
937 *** because you don't have libpng, or (when cross-compiling) you 
938 *** don't have a prebuilt gdk-pixbuf-csource on the host system.])
939 fi
940
941 AC_SUBST(REBUILD_PNGS)
942
943 GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
944 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
945 GDK_PIXBUF_EXTRA_CFLAGS= 
946 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
947 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
948
949 AC_SUBST(GDK_PIXBUF_PACKAGES)
950 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
951 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
952 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
953 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
954
955
956 ########################################
957 # Windowing system checks
958 ########################################
959
960 GDK_EXTRA_LIBS=$GDK_WLIBS
961 GDK_EXTRA_CFLAGS= 
962 GTK_DEP_LIBS_FOR_X=
963
964 FREETYPE_LIBS=
965 FREETYPE_CFLAGS=
966 if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
967   #
968   # Checks for FreeType
969   #
970   have_freetype=false
971   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
972   if test "x$FREETYPE_CONFIG" != "xno" ; then
973     FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
974     FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
975
976     gtk_save_LIBS="$LIBS"
977     LIBS="$FREETYPE_LIBS $LIBS"
978     AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
979     LIBS="$gtk_save_LIBS"
980
981     if $have_freetype ; then
982       gtk_save_cppflags="$CPPFLAGS"
983       CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
984
985       AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
986       AC_TRY_COMPILE([
987 #include <ft2build.h>
988 #include FT_FREETYPE_H
989 #include FT_ERRORS_H
990     ],
991                      [(void)1;],:,have_freetype=false)
992       if $have_freetype ; then
993         AC_MSG_RESULT(yes)
994       else
995         AC_MSG_RESULT(no)
996       fi
997
998       CPPFLAGS="$gtk_save_cppflags"
999     fi
1000   fi
1001   AC_SUBST(FREETYPE_LIBS)
1002   AC_SUBST(FREETYPE_CFLAGS)
1003 fi
1004
1005 if test "x$gdktarget" = "xx11"; then
1006   # We start off with the libraries from Pango
1007
1008   ## be sure we also have Pango built with Xft2 support
1009   if $PKG_CONFIG --exists 'pangoxft >= 1.2.0' ; then
1010     if $have_freetype ; then
1011       :
1012     else
1013       AC_MSG_ERROR([Xft Pango backend found but did not find freetype libraries])
1014     fi
1015   else
1016     AC_MSG_ERROR([Pango 1.2.0 and Xft backend is required for x11 target])
1017   fi
1018
1019   if $PKG_CONFIG --exists xft ; then : ; else
1020     AC_MSG_ERROR([Xft version 2 is required for x11 target])
1021   fi
1022
1023   #
1024   # If Pango included the shared library dependencies from X11 in
1025   # the pkg-config output, then we use that (to avoid duplicates).
1026   # but if they were omitted to avoid binary compatibility problems,
1027   # then we need to repeat the checks.
1028   #
1029   x_libs="`$PKG_CONFIG --libs pangoxft`"
1030   case "$x_libs" in
1031     *-lX11*) pango_omitted_x_deps=no ;;
1032     *)       pango_omitted_x_deps=yes ;;
1033   esac
1034
1035   x_cflags="`$PKG_CONFIG --cflags pangoxft`"
1036   x_extra_libs=
1037
1038   AC_PATH_XTRA
1039   if test x$no_x = xyes ; then
1040     AC_MSG_ERROR([X development libraries not found])
1041   fi
1042   
1043   if test $pango_omitted_x_deps = yes ; then
1044     # Old versions of Xft didn't necessarily include -lX11 in the output
1045     x_libs="`pkg-config --libs xft` -lX11 $X_EXTRA_LIBS"
1046   fi            
1047
1048   ## Strip the .la files
1049  
1050   x_libs_for_checks=""
1051   for I in $x_libs ; do
1052     case $I in 
1053       *.la) ;;
1054       *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1055     esac
1056   done
1057
1058   # Sanity check for the X11 library
1059   AC_CHECK_LIB(X11, XOpenDisplay, :,
1060             AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
1061             $x_libs_for_checks)
1062
1063   if test "x$enable_shm" = "xyes"; then
1064     # Check for the Xext library (needed for XShm extention)
1065     AC_CHECK_LIB(Xext, XShmAttach,
1066         [GTK_ADD_LIB(x_extra_libs,Xext)],
1067         # On AIX, it is in XextSam instead, but we still need -lXext
1068         [AC_CHECK_LIB(XextSam, XShmAttach, 
1069             [GTK_ADD_LIB(x_extra_libs,Xext)
1070              GTK_ADD_LIB(x_extra_libs,XextSam)
1071             ], , -lXext $x_libs_for_checks)],
1072         $x_libs_for_checks)
1073   fi
1074
1075   GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1076   # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1077   GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $x_extra_libs $X_EXTRA_LIBS"
1078
1079   # GTK+ uses some X calls, so needs to link against X directly
1080   if test $enable_explicit_deps != yes ; then
1081     GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
1082   fi
1083
1084   # Check for Xinerama extension (Solaris impl or Xfree impl)
1085
1086   gtk_save_cppflags="$CPPFLAGS"
1087   CPPFLAGS="$CPPFLAGS $x_cflags"
1088
1089   case "$host" in
1090       *-*-solaris*)
1091           # Check for solaris
1092           use_solaris_xinerama=yes
1093           AC_CHECK_LIB(Xext, XineramaGetInfo,
1094                         use_solaris_xinerama=yes, use_solaris_xinerama=no)
1095           if test "x$use_solaris_xinerama" = "xyes"; then
1096               AC_CHECK_HEADER(X11/extensions/xinerama.h,
1097                 [GTK_ADD_LIB(x_extra_libs,Xext)
1098                 AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1099                 AC_DEFINE(HAVE_XINERAMA)], use_solaris_xinerama=no, -lXext $x_libs_for_checks)
1100           fi    
1101           AC_MSG_CHECKING(for Xinerama support on Solaris)
1102           AC_MSG_RESULT($use_solaris_xinerama);
1103           ;;
1104       *)
1105           # Check for XFree
1106           use_xfree_xinerama=yes
1107           AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1108               [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1109                   [GTK_ADD_LIB(x_extra_libs,Xext)
1110                   GTK_ADD_LIB(x_extra_libs,Xinerama)
1111                   AC_DEFINE(HAVE_XFREE_XINERAMA)
1112                   AC_DEFINE(HAVE_XINERAMA)], 
1113                   use_xfree_xinerama=no,
1114                   [#include <X11/Xlib.h>])],
1115               use_xfree_xinerama=no, -lXext $x_libs_for_checks)
1116           AC_MSG_CHECKING(for Xinerama support on XFree86)
1117           AC_MSG_RESULT($use_xfree_xinerama);       
1118           ;;
1119   esac
1120
1121   CPPFLAGS="$gtk_save_cppflags"
1122
1123   # Check for shaped window extension
1124
1125   AC_CHECK_LIB(Xext, XShapeCombineMask,
1126       [GTK_ADD_LIB(x_extra_libs,Xext)
1127        AC_DEFINE(HAVE_SHAPE_EXT)],
1128       ,
1129       $x_libs_for_checks)
1130
1131   # Check for XConvertCase (X11R6 specific)
1132
1133   AC_CHECK_LIB(X11, XConvertCase,
1134       AC_DEFINE(HAVE_XCONVERTCASE),
1135       ,
1136       $x_libs_for_checks)
1137
1138   # Generic X11R6 check needed for XIM support; we could
1139   # probably use this to replace the above, but we'll
1140   # leave the separate XConvertCase check for clarity
1141
1142   have_x11r6=false
1143   AC_CHECK_LIB(X11, XAddConnectionWatch,
1144       have_x11r6=true,
1145       ,
1146       $x_libs_for_checks)
1147
1148   if $have_x11r6; then
1149     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1150   fi
1151   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1152
1153   # Check for XKB support.
1154
1155   if test "x$enable_xkb" = "xyes"; then
1156         AC_MSG_WARN(XKB support explicitly enabled)
1157         AC_DEFINE(HAVE_XKB)
1158   elif test "x$enable_xkb" = "xmaybe"; then
1159         AC_CHECK_LIB(X11, XkbQueryExtension,
1160                      AC_DEFINE(HAVE_XKB),
1161                      ,
1162                      $x_libs_for_checks)
1163   else
1164         AC_MSG_WARN(XKB support explicitly disabled)
1165   fi
1166
1167   x_cflags="$X_CFLAGS"
1168   x_ldflags="$X_LDFLAGS"
1169
1170   # set up things for XInput
1171
1172   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1173     AC_DEFINE(XINPUT_XFREE)
1174     GTK_ADD_LIB(x_extra_libs, Xi)
1175   else
1176     AC_DEFINE(XINPUT_NONE)
1177   fi
1178
1179   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1180
1181   # Check for the RANDR extension
1182
1183   AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1184       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1185           # RANDR requires RENDER
1186           [GTK_ADD_LIB(x_extra_libs, Xrender)
1187           GTK_ADD_LIB(x_extra_libs, Xrandr)
1188           AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)],
1189           :, [#include <X11/Xlib.h>])], : ,
1190        $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
1191
1192   # Checks for Xcursor library
1193   
1194   have_xcursor=false
1195   PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)
1196
1197   if $have_xcursor ; then
1198     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1199     XCURSOR_PACKAGES="xcursor"
1200   else
1201     XCURSOR_PACKAGES=
1202   fi
1203     
1204   # Xshm checks
1205
1206   if test "x$enable_shm" = "xyes"; then
1207     # Check for shared memory
1208     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1209     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1210
1211     # Check for the X shared memory extension header file
1212     have_xshm=no 
1213     AC_MSG_CHECKING(X11/extensions/XShm.h)
1214     if test "x$no_xext_lib" = "xyes"; then
1215       :
1216     else
1217       gtk_save_CFLAGS="$CFLAGS"
1218       CFLAGS="$CFLAGS $x_cflags"
1219       AC_TRY_COMPILE([
1220 #include <stdlib.h>
1221 #include <sys/types.h>
1222 #include <sys/ipc.h>
1223 #include <sys/shm.h>
1224 #include <X11/Xlib.h>
1225 #include <X11/Xutil.h>
1226 #include <X11/extensions/XShm.h>
1227 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1228       CFLAGS="$gtk_save_CFLAGS"
1229     fi
1230     AC_MSG_RESULT($have_xshm)
1231     if test $have_xshm = yes ; then
1232       AC_DEFINE(HAVE_XSHM_H)
1233     fi
1234   fi
1235
1236   GDK_EXTRA_CFLAGS=
1237   if test $pango_omitted_x_deps = yes ; then
1238     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1239   else
1240     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $GDK_EXTRA_LIBS"
1241   fi
1242
1243   AM_CONDITIONAL(USE_X11, true)
1244 else
1245   AM_CONDITIONAL(XINPUT_XFREE, false)
1246   AM_CONDITIONAL(USE_X11, false)
1247   AM_CONDITIONAL(HAVE_X11R6, false)
1248 fi
1249
1250 if test "x$gdktarget" = "xwin32"; then
1251   # We start off with the libraries from Pango
1252
1253   if test x$have_wintab = xyes; then
1254     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1255     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1256   fi
1257
1258   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1259   AM_CONDITIONAL(USE_WIN32, true)
1260 else
1261   AM_CONDITIONAL(USE_WIN32, false)
1262 fi
1263
1264 GDK_PIXBUF_XLIB_PACKAGES=
1265 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1266 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"
1267
1268 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1269 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1270 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1271 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1272 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1273
1274 if test "x$gdktarget" = "xlinux-fb"; then
1275   if $have_freetype ; then
1276     :
1277   else
1278     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1279   fi
1280
1281   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1282   case "$ft2_libs" in
1283     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1284     *)            pango_omitted_ft2_deps=yes ;;
1285   esac
1286
1287   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1288
1289   if test x$enable_shadowfb = xyes ; then
1290     AC_DEFINE(ENABLE_SHADOW_FB)
1291   fi
1292
1293   if test x$enable_fbmanager = xyes ; then
1294     AC_DEFINE(ENABLE_FB_MANAGER)
1295     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1296   else
1297     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1298   fi
1299   
1300   GDK_EXTRA_CFLAGS=""
1301   if test $pango_omitted_ft2_deps = yes ; then
1302     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1303   fi
1304
1305   AM_CONDITIONAL(USE_LINUX_FB, true)
1306 else
1307   AM_CONDITIONAL(USE_LINUX_FB, false)
1308   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1309 fi
1310
1311 #
1312 # Pick correct Pango packages to use
1313 #
1314
1315 if test "x$gdktarget" = "xx11"; then
1316         PANGO_PACKAGES=pangoxft
1317         
1318         # We no longer use pangox, but if we find it, we link to it 
1319         # for binary compatibility.
1320         if $PKG_CONFIG --exists pangox ; then
1321                 PANGO_PACKAGES="$PANGO_PACKAGES pangox"
1322         fi
1323 elif test "x$gdktarget" = "xwin32"; then
1324         PANGO_PACKAGES=pangowin32
1325 elif test "x$gdktarget" = "xlinux-fb"; then
1326         PANGO_PACKAGES=pangoft2
1327 else
1328         PANGO_PACKAGES=pango
1329 fi
1330
1331 # Check for Pango flags
1332
1333 AC_MSG_CHECKING(Pango flags)
1334 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1335         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1336         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1337
1338         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1339 else
1340         AC_MSG_ERROR([
1341 *** Pango not found. Pango is required to build GTK+.
1342 *** See http://www.pango.org for Pango information.
1343 *** For the framebuffer target, you will need to build 
1344 *** Pango with freetype support.
1345 ])
1346 fi
1347
1348 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1349
1350 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1351         :
1352 else
1353         gtk_save_LIBS="$LIBS"
1354         LIBS="$PANGO_LIBS $LIBS"
1355         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1356 *** Can't link to Pango. Pango is required to build
1357 *** GTK+. For more information see http://www.pango.org]))
1358         LIBS="$gtk_save_LIBS"
1359 fi
1360
1361 CFLAGS="$saved_cflags"
1362 LDFLAGS="$saved_ldflags"
1363
1364 GDK_PACKAGES="$XCURSOR_PACKAGES $PANGO_PACKAGES"
1365 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1366 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1367
1368 #
1369 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1370 # into the pkg-config files
1371 #
1372 if test $enable_explicit_deps != yes ; then
1373   GDK_EXTRA_LIBS=
1374 fi
1375
1376 AC_SUBST(GDK_PACKAGES)
1377 AC_SUBST(GDK_EXTRA_LIBS)
1378 AC_SUBST(GDK_EXTRA_CFLAGS)
1379 AC_SUBST(GDK_DEP_LIBS)
1380 AC_SUBST(GDK_DEP_CFLAGS)
1381
1382
1383 ########################################
1384 # Check for Accessibility Toolkit flags
1385 ########################################
1386
1387 ATK_PACKAGES=atk
1388 AC_MSG_CHECKING(ATK flags)
1389 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1390         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1391         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1392
1393         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1394 else
1395         AC_MSG_ERROR([
1396 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1397 *** to build GTK+.
1398 ])
1399 fi
1400
1401 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1402         :
1403 else
1404         gtk_save_LIBS="$LIBS"
1405         LIBS="$ATK_LIBS $LIBS"
1406         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1407                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1408                 *** to build GTK+]))
1409         LIBS="$gtk_save_LIBS"
1410 fi
1411
1412 GTK_PACKAGES=atk
1413 GTK_EXTRA_LIBS=
1414 GTK_EXTRA_CFLAGS= 
1415 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"
1416 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"
1417
1418 AC_SUBST(GTK_PACKAGES)
1419 AC_SUBST(GTK_EXTRA_LIBS)
1420 AC_SUBST(GTK_EXTRA_CFLAGS)
1421 AC_SUBST(GTK_DEP_LIBS)
1422 AC_SUBST(GTK_DEP_CFLAGS)
1423
1424
1425 AC_SUBST(GTK_DEBUG_FLAGS)
1426 AC_SUBST(GTK_XIM_FLAGS)
1427
1428 ##################################################
1429 # Checks for gtk-doc and docbook-tools
1430 ##################################################
1431
1432 GTK_DOC_CHECK([1.0])
1433
1434 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1435 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1436
1437 AC_ARG_ENABLE(man,
1438               [AC_HELP_STRING([--enable-man],
1439                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1440               enable_man=no)
1441
1442 dnl
1443 dnl Check for xsltproc
1444 dnl
1445 AC_PATH_PROG([XSLTPROC], [xsltproc])
1446 if test -z "$XSLTPROC"; then
1447   enable_man=no
1448 fi
1449
1450 dnl check for DocBook DTD and stylesheets in the local catalog.
1451 JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1452    [DocBook XML DTD V4.1.2],,enable_man=no)
1453 JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1454    [DocBook XSL Stylesheets],,enable_man=no)
1455 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1456
1457 ##################################################
1458 # Output commands
1459 ##################################################
1460
1461 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1462         outfile=gdkconfig.h-tmp
1463         cat > $outfile <<\_______EOF
1464 /* gdkconfig.h
1465  *
1466  * This is a generated file.  Please modify `configure.in'
1467  */
1468
1469 #ifndef GDKCONFIG_H
1470 #define GDKCONFIG_H
1471
1472 #ifdef __cplusplus
1473 extern "C" {
1474 #endif /* __cplusplus */
1475
1476 _______EOF
1477
1478         cat >>$outfile <<_______EOF
1479 $gdk_windowing
1480 $gdk_wc
1481 _______EOF
1482
1483         cat >>$outfile <<_______EOF
1484
1485 #ifdef __cplusplus
1486 }
1487 #endif /* __cplusplus */
1488
1489 #endif /* GDKCONFIG_H */
1490 _______EOF
1491
1492
1493         if cmp -s $outfile gdk/gdkconfig.h; then
1494           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1495           rm -f $outfile
1496         else
1497           mv $outfile gdk/gdkconfig.h
1498         fi
1499 ],[
1500 if test "x$gdktarget" = "xx11" ; then
1501   gdk_windowing='
1502 #define GDK_WINDOWING_X11'
1503 elif test "x$gdktarget" = "xwin32" ; then
1504   gdk_windowing='
1505 #define GDK_WINDOWING_WIN32'
1506 elif test "x$gdktarget" = "xlinux-fb" ; then
1507   gdk_windowing='
1508 #define GDK_WINDOWING_FB
1509 #define GDK_NATIVE_WINDOW_POINTER'
1510 fi
1511
1512 if test x$gdk_wchar_h = xyes; then
1513   gdk_wc='
1514 #define GDK_HAVE_WCHAR_H 1'
1515 fi
1516 if test x$gdk_wctype_h = xyes; then
1517   gdk_wc="\$gdk_wc
1518 #define GDK_HAVE_WCTYPE_H 1"
1519 fi
1520 if test x$gdk_working_wctype = xno; then
1521   gdk_wc="\$gdk_wc
1522 #define GDK_HAVE_BROKEN_WCTYPE 1"
1523 fi
1524
1525
1526 ])
1527
1528 AC_PATH_PROG(SGML2HTML, sgml2html, no)
1529 AM_CONDITIONAL(HAVE_SGML2HTML, test x$SGML2HTML != xno)
1530
1531 AC_CONFIG_FILES([
1532 config.h.win32
1533 gtk-zip.sh
1534 Makefile
1535 gdk-pixbuf-2.0.pc
1536 gdk-2.0.pc
1537 gtk+-2.0.pc
1538 gdk-pixbuf-2.0-uninstalled.pc
1539 gdk-2.0-uninstalled.pc
1540 gtk+-2.0-uninstalled.pc
1541 m4macros/Makefile
1542 po/Makefile.in
1543 build/Makefile
1544 build/win32/Makefile
1545 build/win32/dirent/Makefile
1546 demos/Makefile
1547 demos/gtk-demo/Makefile
1548 demos/gtk-demo/geninclude.pl
1549 tests/Makefile
1550 docs/Makefile
1551 docs/reference/Makefile
1552 docs/reference/gdk-pixbuf/Makefile
1553 docs/reference/gdk-pixbuf/version.xml
1554 docs/reference/gdk/Makefile
1555 docs/reference/gdk/version.xml
1556 docs/reference/gtk/Makefile
1557 docs/reference/gtk/version.xml
1558 docs/faq/Makefile
1559 docs/tutorial/Makefile
1560 gdk-pixbuf/Makefile
1561 gdk-pixbuf/gdk_pixbuf.rc
1562 gdk-pixbuf/gdk-pixbuf-features.h
1563 gdk-pixbuf/pixops/Makefile
1564 gdk/Makefile
1565 gdk/x11/Makefile
1566 gdk/win32/Makefile
1567 gdk/win32/rc/Makefile
1568 gdk/win32/rc/gdk.rc
1569 gdk/linux-fb/Makefile
1570 gtk/Makefile
1571 gtk/makefile.msc
1572 gtk/gtkversion.h
1573 gtk/gtk-win32.rc
1574 gtk/stock-icons/Makefile
1575 gtk/theme-bits/Makefile
1576 gtk/xdgmime/Makefile
1577 modules/Makefile
1578 modules/input/Makefile
1579 contrib/Makefile
1580 contrib/gdk-pixbuf-xlib/Makefile
1581 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1582 ])
1583
1584 AC_OUTPUT