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