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