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