]> Pileus Git - ~andy/gtk/blob - configure.in
d91766db09b02a634c9d470e1dd56f062c029c55
[~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], [11])
15 m4_define([gtk_micro_version], [1])
16 m4_define([gtk_version],
17           [gtk_major_version.gtk_minor_version.gtk_micro_version])
18 m4_define([gtk_interface_age], [1])
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.10.0])
32
33 # required versions of other packages
34 m4_define([glib_required_version], [2.13.1])
35 m4_define([pango_required_version], [1.15.3])
36 m4_define([atk_required_version], [1.9.0])
37 m4_define([cairo_required_version], [1.2.0])
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(xinerama,
203               [AC_HELP_STRING([--enable-xinerama],
204                               [support xinerama extension if available [default=yes]])],,
205               [enable_xinerama="yes"])
206 AC_ARG_ENABLE(rebuilds,
207               [AC_HELP_STRING([--disable-rebuilds],
208                               [disable all source autogeneration rules])],,
209               [enable_rebuilds=yes])
210 AC_ARG_ENABLE(visibility,
211               [AC_HELP_STRING([--disable-visibility],
212                               [don't use ELF visibility attributes])],,
213               [enable_visibility=yes])
214
215 AC_ARG_WITH(xinput,
216             [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
217
218 if test "$platform_win32" = yes; then
219   gdktarget=win32
220 else
221   gdktarget=x11
222 fi
223
224 AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32/quartz/directfb]] select non-default GDK target],
225         gdktarget=$with_gdktarget)
226
227 AC_SUBST(gdktarget)
228 case $gdktarget in
229   x11|linux-fb|win32|quartz|directfb) ;;
230   *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb, quartz, directfb or win32.]);;
231 esac
232
233 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
234 gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
235
236 AC_SUBST(gdktargetlib)
237 AC_SUBST(gtktargetlib)
238
239 AC_ARG_ENABLE(shadowfb,
240               [AC_HELP_STRING([--disable-shadowfb],
241                               [disable shadowfb support for linux-fb])],,
242               [enable_shadowfb=yes])
243
244 AC_ARG_ENABLE(fbmanager,
245               [AC_HELP_STRING([--enable-fbmanager],
246                               [enable framebuffer manager support (GtkFB)])],,
247               enable_fbmanager=no)
248         
249 if test "x$enable_debug" = "xyes"; then
250   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
251   GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
252 else
253   if test "x$enable_debug" = "xno"; then
254     GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
255   else
256     GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
257   fi
258 fi
259
260
261 if test "x$enable_visibility" = "xno"; then
262   GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
263 fi
264
265
266 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
267
268                         
269 # Build time sanity check...
270 AM_SANITY_CHECK
271
272 # Checks for programs.
273 AC_ISC_POSIX
274 AM_PROG_CC_STDC
275 AC_PROG_INSTALL
276 AC_PROG_MAKE_SET
277
278 changequote(,)dnl
279 if test "x$GCC" = "xyes"; then
280   case " $CFLAGS " in
281   *[\ \ ]-Wall[\ \      ]*) ;;
282   *) CFLAGS="$CFLAGS -Wall" ;;
283   esac
284
285   if test "x$enable_ansi" = "xyes"; then
286     case " $CFLAGS " in
287     *[\ \       ]-ansi[\ \      ]*) ;;
288     *) CFLAGS="$CFLAGS -ansi" ;;
289     esac
290
291     case " $CFLAGS " in
292     *[\ \       ]-pedantic[\ \  ]*) ;;
293     *) CFLAGS="$CFLAGS -pedantic" ;;
294     esac
295   fi
296 fi
297 changequote([,])dnl
298
299 # Ensure MSVC-compatible struct packing convention is used when
300 # compiling for Win32 with gcc.
301 # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
302 # gcc2 uses "-fnative-struct".
303 if test x"$os_win32" = xyes; then
304   if test x"$GCC" = xyes; then
305     msnative_struct=''
306     AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
307     if test -z "$ac_cv_prog_CC"; then
308       our_gcc="$CC"
309     else
310       our_gcc="$ac_cv_prog_CC"
311     fi
312     case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
313       2.)
314         if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
315           msnative_struct='-fnative-struct'
316         fi
317         ;;
318       *)
319         if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
320           msnative_struct='-mms-bitfields'
321         fi
322         ;;
323     esac
324     if test x"$msnative_struct" = x ; then
325       AC_MSG_RESULT([no way])
326       AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
327     else
328       CFLAGS="$CFLAGS $msnative_struct"
329       AC_MSG_RESULT([${msnative_struct}])
330     fi
331   fi
332 fi
333
334 # Honor aclocal flags
335 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
336
337 ## Initial sanity check, done here so that users get told they 
338 ## have the wrong dependencies as early in the process as possible.
339 ## Later on we actually use the cflags/libs from separate pkg-config
340 ## calls. Oh, also the later pkg-config calls don't include 
341 ## the version requirements since those make the module lists 
342 ## annoying to construct
343 PKG_CHECK_MODULES(BASE_DEPENDENCIES,
344   [glib-2.0 >= glib_required_version dnl
345    atk >= atk_required_version dnl
346    pango >= pango_required_version dnl
347    cairo >= cairo_required_version])
348
349 if test "$os_win32" != yes; then
350     # libtool option to control which symbols are exported
351     # right now, symbols starting with _ are not exported
352     LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
353 else
354     # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
355     LIBTOOL_EXPORT_OPTIONS=
356 fi
357 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
358
359 dnl ******************************************************
360 dnl * See whether to include shared library dependencies *
361 dnl ******************************************************
362
363 AC_ARG_ENABLE(explicit-deps, 
364               [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
365                               [use explicit dependencies in .pc files [default=auto]])],,
366               [enable_explicit_deps=auto])
367
368 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
369 case $enable_explicit_deps in
370   auto)
371     export SED
372     deplibs_check_method=`(./libtool --config; echo 'eval echo $deplibs_check_method') | sh`
373     if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
374       enable_explicit_deps=yes  
375     else
376       enable_explicit_deps=no  
377     fi
378   ;;
379   yes|no) 
380   ;;
381   *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
382   ;;
383 esac
384 AC_MSG_RESULT($enable_explicit_deps)
385
386 AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
387
388 # define a MAINT-like variable REBUILD which is set if Perl
389 # and awk are found, so autogenerated sources can be rebuilt
390
391 AC_PATH_PROGS(PERL, perl5 perl)
392
393 # We would like indent, but don't require it.
394 AC_CHECK_PROG(INDENT, indent, indent)
395
396 REBUILD=\#
397 if test "x$enable_rebuilds" = "xyes" && \
398      test -n "$PERL" && \
399      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
400   REBUILD=
401 fi
402 AC_SUBST(REBUILD)
403
404 AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
405
406 # _NL_TIME_FIRST_WEEKDAY is an enum and not a define
407 AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
408 AC_TRY_LINK([#include <langinfo.h>], [
409 char c;
410 c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
411 ], gtk_ok=yes, gtk_ok=no)
412 AC_MSG_RESULT($gtk_ok)
413 if test "$gtk_ok" = "yes"; then
414   AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
415             [Define if _NL_TIME_FIRST_WEEKDAY is available])
416 fi
417
418 # _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
419 AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
420 AC_TRY_LINK([#include <langinfo.h>], [
421 char c;
422 c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
423 ], gtk_ok=yes, gtk_ok=no)
424 AC_MSG_RESULT($gtk_ok)
425 if test "$gtk_ok" = "yes"; then
426   AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1],
427             [Define if _NL_MEASUREMENT_MEASUREMENT is available])
428 fi
429
430 # _NL_PAPER_HEIGHT is an enum and not a define
431 AC_MSG_CHECKING([for _NL_PAPER_HEIGHT])
432 AC_TRY_LINK([#include <langinfo.h>], [
433 char c;
434 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_HEIGHT));
435 ], gtk_ok=yes, gtk_ok=no)
436 AC_MSG_RESULT($gtk_ok)
437 if test "$gtk_ok" = "yes"; then
438   AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1],
439             [Define if _NL_PAPER_HEIGHT is available])
440 fi
441
442 # _NL_PAPER_WIDTH is an enum and not a define
443 AC_MSG_CHECKING([for _NL_PAPER_WIDTH])
444 AC_TRY_LINK([#include <langinfo.h>], [
445 char c;
446 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_WIDTH));
447 ], gtk_ok=yes, gtk_ok=no)
448 AC_MSG_RESULT($gtk_ok)
449 if test "$gtk_ok" = "yes"; then
450   AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1],
451             [Define if _NL_PAPER_WIDTH is available])
452 fi
453         
454 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
455 AC_MSG_CHECKING(for sigsetjmp)
456 AC_TRY_LINK([#include <setjmp.h>], [
457 sigjmp_buf env;
458 sigsetjmp(env, 0);
459 ], gtk_ok=yes, gtk_ok=no)
460 AC_MSG_RESULT($gtk_ok)
461 if test "$gtk_ok" = "yes"; then
462   AC_DEFINE(HAVE_SIGSETJMP)
463 fi
464
465 # i18n stuff
466 # TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
467 # directories.  If you add a new language to ALL_LINGUAS, please make
468 # sure that both po/ and po-properties/ have .po files that correspond
469 # to your language.  If you only add one to po/, the build will break
470 # in po-properties/.
471 ALL_LINGUAS="af am ang ar az az_IR be be@latin bg bn bn_IN br bs ca cs cy da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ka ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@Latn vi wa xh yi zh_CN zh_HK zh_TW"
472 AM_GLIB_GNU_GETTEXT
473 LIBS="$LIBS $INTLLIBS"
474 AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
475         sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
476       esac])
477
478 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
479
480 dnl The DU4 header files don't provide library prototypes unless 
481 dnl -std1 is given to the native cc.
482 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
483
484 gtk_save_LIBS=$LIBS
485 LIBS="$LIBS -lm"
486 AC_TRY_RUN([#include <math.h>
487              int main (void) { return (log(1) != log(1.)); }],
488      AC_MSG_RESULT(none needed),
489      gtk_save_CFLAGS="$CFLAGS"
490      CFLAGS="$CFLAGS -std1"
491      AC_TRY_RUN([#include <math.h>
492                  int main (void) { return (log(1) != log(1.)); }],
493          AC_MSG_RESULT(-std1),
494          AC_MSG_RESULT()
495          CFLAGS="$gtk_save_CFLAGS"
496          AC_MSG_WARN(
497                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
498          true
499      ),
500      AC_MSG_RESULT(none needed)
501 )
502 LIBS=$gtk_save_LIBS
503
504 AC_MSG_CHECKING(for the BeOS)
505 case $host in
506   *-*-beos*)
507     AC_MSG_RESULT(yes)
508     MATH_LIB=
509   ;;
510   *)
511     AC_MSG_RESULT(no)
512   ;;
513 esac
514
515 #
516 # see bug 162979
517 #
518 AC_MSG_CHECKING(for HP-UX)
519 case $host_os in
520   hpux9* | hpux10* | hpux11*)
521     AC_MSG_RESULT(yes)
522     CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
523   ;;
524   *)
525     AC_MSG_RESULT(no)
526   ;;
527 esac
528
529 dnl NeXTStep cc seems to need this
530 AC_MSG_CHECKING([for extra flags for POSIX compliance])
531 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
532   AC_MSG_RESULT(none needed),
533   gtk_save_CFLAGS="$CFLAGS"
534   CFLAGS="$CFLAGS -posix"
535   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
536     AC_MSG_RESULT(-posix),
537     AC_MSG_RESULT()
538     CFLAGS="$gtk_save_CFLAGS"
539     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
540
541 #
542 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
543
544
545 GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
546
547 AM_PATH_GLIB_2_0(glib_required_version, :,
548   AC_MSG_ERROR([
549 *** GLIB glib_required_version or better is required. The latest version of 
550 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
551   gobject gmodule-no-export gthread)
552
553 # See if it's safe to turn G_DISABLE_DEPRECATED on.
554 GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
555 GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
556 if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
557   CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
558 fi
559
560
561 dnl
562 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
563 dnl
564 gtk_save_LIBS=$LIBS
565 LIBS="$LIBS $GLIB_LIBS"
566 AC_CHECK_FUNCS(bind_textdomain_codeset)
567 LIBS=$gtk_save_LIBS
568
569 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
570 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
571 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
572 AC_CHECK_HEADERS(ftw.h, AC_DEFINE(HAVE_FTW_H))
573
574 AC_MSG_CHECKING([for GNU ftw extensions])
575 AC_TRY_COMPILE([#define _XOPEN_SOURCE 500
576 #define _GNU_SOURCE
577 #include <ftw.h>], [int flags = FTW_ACTIONRETVAL;], gtk_ok=yes, gtk_ok=no)
578 if test $gtk_ok = yes; then
579     AC_MSG_RESULT([yes])
580     AC_DEFINE(HAVE_GNU_FTW,1,[Have GNU ftw])
581 else
582     AC_MSG_RESULT([no])
583 fi
584
585 saved_cflags="$CFLAGS"
586 saved_ldflags="$LDFLAGS"
587
588
589 # Checks for header files.
590 AC_HEADER_STDC
591
592 # Checks for typedefs, structures, and compiler characteristics.
593 AC_C_CONST
594
595 # Checks for library functions.
596 AC_TYPE_SIGNAL
597 AC_FUNC_MMAP
598
599 AC_CHECK_FUNCS(mallinfo)
600 AC_CHECK_FUNCS(getresuid)
601 AC_TYPE_UID_T
602
603 # Check if <sys/select.h> needs to be included for fd_set
604 AC_MSG_CHECKING([for fd_set])
605 AC_TRY_COMPILE([#include <sys/types.h>],
606         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
607 if test $gtk_ok = yes; then
608     AC_MSG_RESULT([yes, found in sys/types.h])
609 else
610     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
611     if test $gtk_ok = yes; then
612         AC_DEFINE(HAVE_SYS_SELECT_H)
613         AC_MSG_RESULT([yes, found in sys/select.h])
614     else
615         AC_DEFINE(NO_FD_SET)
616         AC_MSG_RESULT(no)
617     fi
618 fi
619
620 # `widechar' tests for gdki18n.h
621 AC_MSG_CHECKING(for wchar.h)
622 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
623 if test $gdk_wchar_h = yes; then
624    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
625 fi
626 AC_MSG_RESULT($gdk_wchar_h)
627
628 # Check for wctype.h (for iswalnum)
629 AC_MSG_CHECKING(for wctype.h)
630 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
631 if test $gdk_wctype_h = yes; then
632    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
633 fi
634 AC_MSG_RESULT($gdk_wctype_h)
635
636 # in Solaris 2.5, `iswalnum' is in -lw
637 GDK_WLIBS=
638 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
639
640 oLIBS="$LIBS"
641 LIBS="$LIBS $GDK_WLIBS"
642 # The following is necessary for Linux libc-5.4.38
643 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
644 AC_TRY_LINK([#include <stdlib.h>],[
645 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
646 #  ifdef HAVE_WCTYPE_H
647 #    include <wctype.h>
648 #  else
649 #    ifdef HAVE_WCHAR_H
650 #      include <wchar.h>
651 #    endif
652 #  endif
653 #else
654 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
655 #endif
656 iswalnum((wchar_t) 0);
657 ], gdk_working_wctype=yes, gdk_working_wctype=no)
658 LIBS="$oLIBS"
659
660 if test $gdk_working_wctype = no; then
661    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
662    GDK_WLIBS=
663 fi
664 AC_MSG_RESULT($gdk_working_wctype)
665 AC_SUBST(GDK_WLIBS)
666
667 # Check for uxtheme.h (for MS-Windows Engine)
668 AC_MSG_CHECKING(for uxtheme.h)
669 AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
670 if test $gtk_uxtheme_h = yes; then
671    AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
672 fi
673 AC_MSG_RESULT($gtk_uxtheme_h)
674
675 # Checks for gdkspawn
676 AC_CHECK_HEADERS(crt_externs.h)
677 AC_CHECK_FUNCS(_NSGetEnviron)
678
679
680 ##################################################
681 # Checks for gdk-pixbuf
682 ##################################################
683
684 dnl ********************************************************
685 dnl * See whether we need to load our modules as .la files *
686 dnl ********************************************************
687
688 use_la_modules=false
689 case $host in
690   *-aix*) use_la_modules=true
691 esac
692
693 if $use_la_modules ; then
694    AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
695 fi
696
697
698 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
699
700 AC_ARG_ENABLE(modules,
701               [AC_HELP_STRING([--disable-modules],
702                               [disable dynamic module loading])])
703
704 dynworks=false
705 deps=
706 if test x$enable_modules = xno; then
707     AC_MSG_RESULT(no)
708 else
709     AC_MSG_RESULT(yes)
710     AC_MSG_CHECKING(whether dynamic modules work)
711     ## for loop is to strip newline 
712     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
713     for I in $tmp; do
714         dynworks=$I
715     done
716
717     dnl Now we check to see if our libtool supports shared lib deps
718     dnl (in a rather ugly way even)
719     if $dynworks; then
720         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
721         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
722             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
723             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
724         if test "x$pixbuf_deplibs_check" = "xnone" || \
725            test "x$pixbuf_deplibs_check" = "xunknown" || \
726            test "x$pixbuf_deplibs_check" = "x"; then
727             dynworks=false
728         fi
729     fi
730
731     if $dynworks; then
732         AC_DEFINE(USE_GMODULE)
733         AC_MSG_RESULT(yes)
734     else
735         AC_MSG_RESULT(no)
736     fi
737 fi
738
739 dnl We allow people to disable image loaders explicitely, but if they don't we error
740 dnl out so that people don't accidentally build without them.
741
742 AC_ARG_WITH(libpng,
743             [AC_HELP_STRING([--without-libpng],
744                             [disable PNG loader for gdk-pixbuf])])
745 AC_ARG_WITH(libjpeg,
746             [AC_HELP_STRING([--without-libjpeg],
747                             [disable JPEG loader for gdk-pixbuf])])
748 AC_ARG_WITH(libtiff,
749             [AC_HELP_STRING([--without-libtiff],
750                             [disable TIFF loader for gdk-pixbuf])])
751
752 dnl Test for libtiff
753   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
754     AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
755       [AC_CHECK_HEADER(tiffio.h,
756         TIFF='tiff'; LIBTIFF='-ltiff',
757         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
758       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
759         [AC_CHECK_HEADER(tiffio.h,
760           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
761           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
762         [AC_CHECK_LIB(tiff34, TIFFFlushData,
763           [AC_CHECK_HEADER(tiffio.h,
764             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
765             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
766         AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
767   fi
768
769   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
770      AC_MSG_ERROR([
771 *** Checks for TIFF loader failed. You can build without it by passing 
772 *** --without-libtiff to configure but some programs using GTK+ may
773 *** not work properly])
774   fi
775
776 dnl Test for libjpeg
777   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
778     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
779       jpeg_ok=yes,
780       jpeg_ok=no
781       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
782     if test "$jpeg_ok" = yes; then
783       AC_MSG_CHECKING([for jpeglib.h])
784       AC_TRY_CPP(
785 [#include <stdio.h>
786 #undef PACKAGE
787 #undef VERSION
788 #undef HAVE_STDLIB_H
789 #include <jpeglib.h>],
790         jpeg_ok=yes,
791         jpeg_ok=no)
792       AC_MSG_RESULT($jpeg_ok)
793       if test "$jpeg_ok" = yes; then
794         LIBJPEG='-ljpeg'
795         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
796           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
797           AC_MSG_WARN(JPEG library does not support progressive saving.))
798       else
799           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
800       fi
801     fi
802   fi
803
804   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
805      AC_MSG_ERROR([
806 *** Checks for JPEG loader failed. You can build without it by passing 
807 *** --without-libjpeg to configure but some programs using GTK+ may
808 *** not work properly])
809   fi
810
811 dnl Test for libpng
812   if test x$with_libpng != xno && test -z "$LIBPNG"; then
813     AC_MSG_CHECKING(for libpng12)
814     if $PKG_CONFIG --exists libpng12 ; then
815         AC_MSG_RESULT(yes)
816         PNG='png'
817         PNG_DEP_CFLAGS_PACKAGES=libpng12
818         LIBPNG=`$PKG_CONFIG --libs libpng12`
819     else
820       AC_MSG_RESULT(no)
821       AC_CHECK_LIB(png, png_read_info,
822         [AC_CHECK_HEADER(png.h,
823           png_ok=yes,
824           png_ok=no)],
825         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
826       if test "$png_ok" = yes; then
827         AC_MSG_CHECKING([for png_structp in png.h])
828         AC_TRY_COMPILE([#include <png.h>],
829           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
830           png_ok=yes,
831           png_ok=no)
832         AC_MSG_RESULT($png_ok)
833         if test "$png_ok" = yes; then
834           PNG='png'; LIBPNG='-lpng -lz'
835         else
836           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
837         fi
838       else
839        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
840       fi
841     fi
842   fi
843
844   if test x$with_libpng != xno && test -z "$LIBPNG"; then
845      AC_MSG_ERROR([
846 *** Checks for PNG loader failed. You can build without it by passing 
847 *** --without-libpng to configure but many programs using GTK+ will
848 *** not work properly. The PNG loader is also needed if you are compiling
849 *** from CVS.])
850   fi
851
852 AC_SUBST(LIBTIFF)
853 AC_SUBST(LIBJPEG)
854 AC_SUBST(LIBPNG)
855
856 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
857
858 #
859 # Allow building some or all gdk-pixbuf loaders included
860 #
861 AC_MSG_CHECKING(pixbuf loaders to build)
862
863 dnl due to an autoconf bug, commas in the first arg to
864 dnl AC_HELP_STRING cause problems.
865 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
866 dnl                [build the specified loaders into gdk-pixbuf])
867 AC_ARG_WITH(included_loaders,
868 [  --with-included-loaders=LOADER1,LOADER2,...
869                           build the specified loaders into gdk-pixbuf])
870
871 if $dynworks; then 
872    :
873 else
874    ## if the option was specified, leave it; otherwise disable included loaders
875    if test x$with_included_loaders = xno; then
876            with_included_loaders=yes
877    fi
878 fi
879
880 all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,xbm,tga,pcx"
881 included_loaders=""
882 # If no loaders specified, include all
883 if test "x$with_included_loaders" = xyes ; then
884   included_loaders="$all_loaders"
885 else
886   included_loaders="$with_included_loaders"
887 fi
888
889 AC_MSG_RESULT($included_loaders)
890
891 INCLUDED_LOADER_OBJ=
892 INCLUDED_LOADER_DEFINE=
893
894 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
895 for loader in $included_loaders; do
896  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
897    :
898  else
899    AC_MSG_ERROR([the specified loader $loader does not exist])
900  fi
901
902  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
903  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
904  eval INCLUDE_$loader=yes
905 done
906 IFS="$gtk_save_ifs"
907 AC_SUBST(INCLUDED_LOADER_OBJ)
908 AC_SUBST(INCLUDED_LOADER_DEFINE)
909
910 AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
911 AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
912 AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes])
913 AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
914 AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
915 AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
916 AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
917 AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
918 AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes])
919 AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
920 AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
921 AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
922 AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
923 AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes])
924
925 AC_HEADER_SYS_WAIT
926
927 AC_TYPE_SIGNAL
928
929 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
930 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
931 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
932
933 if $dynworks ; then
934   STATIC_LIB_DEPS=
935   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
936     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
937   fi
938   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
939     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
940   fi
941   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
942     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
943   fi
944 else
945   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
946 fi
947
948 # Checks to see whether we should include mediaLib
949 # support.
950 #
951 AC_CHECK_HEADER(sys/systeminfo.h, AC_DEFINE(HAVE_SYS_SYSTEMINFO_H))
952 AC_CHECK_HEADER(sys/sysinfo.h, AC_DEFINE(HAVE_SYS_SYSINFO_H))
953
954 AC_MSG_CHECKING(for mediaLib 2.3)
955 use_mlib25=no
956 # Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib
957 # patch requires.
958 AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no)
959 if test $use_mlib = yes; then
960     AC_DEFINE(USE_MEDIALIB)
961     MEDIA_LIB=-lmlib
962
963     AC_MSG_CHECKING(for mediaLib 2.5)
964     # Check for a mediaLib 2.5 function since that is what is needed for
965     # gdk_rgb_convert integration.
966     AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no)
967     if test $use_mlib25 = yes; then
968         AC_DEFINE(USE_MEDIALIB25)
969     fi
970 fi
971 AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
972 AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)
973
974 # Checks to see if we should compile in MMX support (there will be
975 # a runtime test when the code is actually run to see if it should
976 # be used - this just checks if we can compile it.)
977 #
978 # This code is partially taken from Mesa
979 #
980 AC_MSG_CHECKING(for x86 platform)
981 case $host_cpu in
982   i386|i486|i586|i686|i786|k6|k7)
983         use_x86_asm=yes
984         ;;
985    *)
986         use_x86_asm=no
987 esac
988 AC_MSG_RESULT($use_x86_asm)
989
990 use_mmx_asm=no
991 if test $use_x86_asm = yes; then
992     save_ac_ext=$ac_ext
993     ac_ext=S
994     
995     AC_MSG_CHECKING(compiler support for MMX)
996     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
997     if AC_TRY_EVAL(ac_compile); then
998         use_mmx_asm=yes
999     fi
1000
1001     rm -rf conftest*
1002
1003     ac_ext=$save_ac_ext
1004     if test $use_mmx_asm = yes; then
1005       AC_DEFINE(USE_MMX)
1006       AC_MSG_RESULT(yes)
1007     else
1008       AC_MSG_RESULT(no)
1009     fi
1010 fi
1011
1012 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1013
1014 REBUILD_PNGS=
1015 if test -z "$LIBPNG"; then
1016   REBUILD_PNGS=#
1017 fi
1018
1019 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
1020
1021 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1022
1023 if test $cross_compiling = yes; then
1024   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1025   AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
1026   if test x$GTK_UPDATE_ICON_CACHE = xno; then
1027     REBUILD_PNGS=#
1028   fi
1029 fi
1030
1031 if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1032    test "x$REBUILD_PNGS" = "x#" ; then
1033      AC_MSG_ERROR([
1034 *** gtkbuiltincache.h is not in the tree, and cannot be built
1035 *** because you don't have libpng, or (when cross-compiling) you 
1036 *** don't have a prebuilt gtk-update-icon-cache on the build system.])
1037 fi
1038
1039 AC_SUBST(REBUILD_PNGS)
1040
1041 GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
1042 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB"
1043 GDK_PIXBUF_EXTRA_CFLAGS= 
1044 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1045 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1046
1047 AC_SUBST(GDK_PIXBUF_PACKAGES)
1048 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
1049 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
1050 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
1051 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
1052
1053
1054 ########################################
1055 # Windowing system checks
1056 ########################################
1057
1058 GDK_PIXBUF_XLIB_PACKAGES=
1059 GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
1060 GDK_PIXBUF_XLIB_EXTRA_LIBS=
1061         
1062 X_PACKAGES=fontconfig
1063 GDK_EXTRA_LIBS="$GDK_WLIBS"
1064 GDK_EXTRA_CFLAGS=
1065         
1066 # GTK+ uses some X calls, so needs to link against X directly
1067 GTK_DEP_PACKAGES_FOR_X=
1068 GTK_DEP_LIBS_FOR_X=
1069
1070 if test "x$gdktarget" = "xx11"; then
1071   #
1072   # We use fontconfig very peripherally when decoding the default
1073   # settings.
1074   #
1075   if $PKG_CONFIG --exists fontconfig; then : ; else
1076     AC_MSG_ERROR([
1077 *** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
1078   fi
1079
1080   #
1081   # Check for basic X packages; we use pkg-config if available
1082   #
1083   if $PKG_CONFIG --exists x11 xext xrender; then
1084     have_base_x_pc=true
1085     X_PACKAGES="$X_PACKAGES x11 xext xrender"
1086     x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
1087     X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1088     
1089     # Strip out any .la files that pkg-config might give us (this happens
1090     # with -uninstalled.pc files)
1091     x_libs_for_checks=
1092     for I in $x_libs ; do
1093       case $I in 
1094         *.la) ;;
1095         *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1096       esac
1097     done
1098     
1099     GDK_PIXBUF_XLIB_PACKAGES="x11"
1100     GTK_PACKAGES_FOR_X="x11"
1101   else
1102     have_base_x_pc=false
1103     AC_PATH_XTRA
1104     if test x$no_x = xyes ; then
1105       AC_MSG_ERROR([X development libraries not found])
1106     fi
1107     
1108     x_cflags="$X_CFLAGS"
1109     x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
1110
1111     GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1112     GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1113     GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1114   fi
1115
1116   # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
1117   x_extra_libs=
1118
1119   gtk_save_cppflags="$CPPFLAGS"
1120   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1121
1122   gtk_save_LIBS=$LIBS
1123   LIBS="$x_libs_for_checks $LIBS"
1124   
1125   # Sanity check for the X11 and Xext libraries. While everything we need from
1126   # Xext is optional, the chances a system has *none* of these things is so
1127   # small that we just unconditionally require it.
1128   AC_CHECK_FUNC(XOpenDisplay, :,
1129                 AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
1130   AC_CHECK_FUNC(XextFindDisplay, :,
1131                 AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1132   AC_CHECK_FUNC(XRenderQueryExtension, :,
1133                 AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1134
1135   # Check for xReply
1136
1137   AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
1138   AC_TRY_COMPILE([#include <X11/Xlibint.h>],
1139       [xReply *rep;],
1140       [AC_MSG_RESULT([no])],
1141       [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
1142 #include <X11/Xlibint.h>],
1143            [xReply *rep;],
1144            [AC_MSG_RESULT([yes])
1145             AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
1146                 [Define if <X11/extensions/XIproto.h> needed for xReply])],
1147            [AC_MSG_RESULT([unknown])
1148             AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
1149
1150   # Check for XConvertCase, XInternAtoms (X11R6 specific)
1151
1152   AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1153
1154   # Generic X11R6 check needed for XIM support; we could
1155   # probably use this to replace the above, but we'll
1156   # leave the separate checks for XConvertCase and XInternAtoms 
1157   # for clarity
1158   
1159   have_x11r6=false
1160   AC_CHECK_FUNC(XAddConnectionWatch,
1161       have_x11r6=true)
1162
1163   if $have_x11r6; then
1164     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1165   fi
1166   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1167
1168   # Check for XKB support.
1169
1170   if test "x$enable_xkb" = "xyes"; then
1171         AC_MSG_WARN(XKB support explicitly enabled)
1172         AC_DEFINE(HAVE_XKB)
1173   elif test "x$enable_xkb" = "xmaybe"; then
1174         AC_CHECK_FUNC(XkbQueryExtension,
1175                       AC_DEFINE(HAVE_XKB))
1176   else
1177         AC_MSG_WARN(XKB support explicitly disabled)
1178   fi
1179
1180   # Check for shaped window extension
1181
1182   AC_CHECK_FUNC(XShapeCombineMask,
1183       AC_DEFINE(HAVE_SHAPE_EXT))
1184
1185   # X SYNC check
1186   gtk_save_CFLAGS="$CFLAGS"
1187   CFLAGS="$CFLAGS $x_cflags"
1188   
1189   AC_CHECK_FUNC(XSyncQueryExtension,
1190       [AC_CHECK_HEADER(X11/extensions/sync.h,
1191           AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
1192           :, [#include <X11/Xlib.h>])])
1193
1194   CFLAGS="$gtk_save_CFLAGS"
1195
1196   # Xshm checks
1197
1198   if test "x$enable_shm" = "xyes"; then
1199      # Check for the XShm extension, normally in Xext
1200      AC_CHECK_FUNC(XShmAttach,
1201         :,
1202         # On AIX, it is in XextSam instead
1203         [AC_CHECK_LIB(XextSam, XShmAttach, 
1204             [GTK_ADD_LIB(x_extra_libs,XextSam)])])
1205   fi    
1206
1207   if test "x$enable_shm" = "xyes"; then
1208     # Check for shared memory
1209     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1210     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1211
1212     # Check for the X shared memory extension header file
1213     have_xshm=no 
1214     AC_MSG_CHECKING(X11/extensions/XShm.h)
1215     if test "x$no_xext_lib" = "xyes"; then
1216       :
1217     else
1218       gtk_save_CFLAGS="$CFLAGS"
1219       CFLAGS="$CFLAGS $x_cflags"
1220       AC_TRY_COMPILE([
1221 #include <stdlib.h>
1222 #include <sys/types.h>
1223 #include <sys/ipc.h>
1224 #include <sys/shm.h>
1225 #include <X11/Xlib.h>
1226 #include <X11/Xutil.h>
1227 #include <X11/extensions/XShm.h>
1228 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1229       CFLAGS="$gtk_save_CFLAGS"
1230     fi
1231     AC_MSG_RESULT($have_xshm)
1232     if test $have_xshm = yes ; then
1233       AC_DEFINE(HAVE_XSHM_H)
1234     fi
1235   fi
1236
1237   if test "x$enable_xinerama" = "xyes"; then
1238     # Check for Xinerama extension (Solaris impl or Xfree impl)
1239     gtk_save_cppflags="$CPPFLAGS"
1240     CPPFLAGS="$CPPFLAGS $x_cflags"
1241   
1242     case "$host" in
1243       *-*-solaris*)
1244           # Check for solaris
1245           AC_MSG_CHECKING(for Xinerama support on Solaris)
1246           
1247           have_solaris_xinerama=false
1248           AC_CHECK_FUNC(XineramaGetInfo,
1249               [AC_CHECK_HEADER(X11/extensions/xinerama.h,
1250                   [have_solaris_xinerama=true], :,
1251                   [#include <X11/Xlib.h>])])
1252                 
1253           if $have_solaris_xinerama ; then
1254             AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1255             AC_DEFINE(HAVE_XINERAMA) 
1256             AC_MSG_RESULT(yes)
1257           else
1258             AC_MSG_RESULT(no)
1259           fi
1260           ;;
1261       *)
1262           # Check for XFree
1263           AC_MSG_CHECKING(for Xinerama support on XFree86)
1264           
1265           have_xfree_xinerama=false
1266           if $PKG_CONFIG --exists xinerama ; then
1267              have_xfree_xinerama=true
1268              X_PACKAGES="$X_PACKAGES xinerama"
1269           else    
1270               AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1271                   [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1272                       [GTK_ADD_LIB(x_extra_libs,Xinerama)
1273                       have_xfree_xinerama=true], :,
1274                       [#include <X11/Xlib.h>])])
1275           fi
1276
1277           if $have_xfree_xinerama ; then
1278             AC_DEFINE(HAVE_XFREE_XINERAMA)
1279             AC_DEFINE(HAVE_XINERAMA) 
1280             AC_MSG_RESULT(yes)
1281          else
1282             AC_MSG_RESULT(no)
1283          fi
1284          ;;
1285     esac
1286   fi
1287   
1288   # set up things for XInput
1289
1290   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1291     AC_DEFINE(XINPUT_XFREE)
1292     
1293     if $PKG_CONFIG --exists xi ; then
1294       X_PACKAGES="$X_PACKAGES xi"
1295     else
1296       GTK_ADD_LIB(x_extra_libs, Xi)
1297     fi
1298   else
1299     AC_DEFINE(XINPUT_NONE)
1300   fi
1301
1302   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1303
1304   # Check for the RANDR extension
1305
1306   have_randr=false
1307   if $PKG_CONFIG --exists xrandr ; then
1308     have_randr=true
1309     X_PACKAGES="$X_PACKAGES xrandr"
1310   else    
1311     AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1312        [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1313           # RANDR requires RENDER
1314           [have_randr=true
1315           GTK_ADD_LIB(x_extra_libs, Xrender)
1316           GTK_ADD_LIB(x_extra_libs, Xrandr)],
1317           :, [#include <X11/Xlib.h>])])
1318   fi
1319
1320   if $have_randr ; then
1321      AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
1322   fi
1323        
1324   # Checks for Xcursor library
1325   
1326   if $PKG_CONFIG --exists xcursor ; then
1327     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1328     
1329     X_PACKAGES="$X_PACKAGES xcursor"
1330   fi
1331
1332   # Checks for XFixes extension
1333   
1334   if $PKG_CONFIG --exists xfixes ; then
1335     AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
1336     
1337     X_PACKAGES="$X_PACKAGES xfixes"
1338     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xfixes"
1339   fi
1340
1341   # Checks for Xcomposite extension
1342
1343   if $PKG_CONFIG --exists xcomposite ; then
1344     AC_DEFINE(HAVE_XCOMPOSITE, 1, Have the XCOMPOSITE X extension)
1345
1346     X_PACKAGES="$X_PACKAGES xcomposite"
1347     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xcomposite"
1348   fi
1349
1350   # Checks for Xdamage extension
1351
1352   if $PKG_CONFIG --exists xdamage ; then
1353     AC_DEFINE(HAVE_XDAMAGE, 1, Have the XDAMAGE X extension)
1354
1355     X_PACKAGES="$X_PACKAGES xdamage"
1356     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xdamage"
1357   fi
1358
1359   if $have_base_x_pc ; then
1360     GDK_EXTRA_LIBS="$x_extra_libs"
1361   else
1362     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
1363   fi
1364
1365   CPPFLAGS="$gtk_save_cppflags"
1366   LIBS="$gtk_save_libs"
1367
1368   AM_CONDITIONAL(USE_X11, true)
1369 else
1370   AM_CONDITIONAL(XINPUT_XFREE, false)
1371   AM_CONDITIONAL(USE_X11, false)
1372   AM_CONDITIONAL(HAVE_X11R6, false)
1373 fi
1374
1375 if test "x$gdktarget" = "xwin32"; then
1376   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid"
1377   AM_CONDITIONAL(USE_WIN32, true)
1378 else
1379   AM_CONDITIONAL(USE_WIN32, false)
1380 fi
1381
1382 if test "x$gdktarget" = "xquartz"; then
1383   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
1384   AM_CONDITIONAL(USE_QUARTZ, true)
1385 else
1386   AM_CONDITIONAL(USE_QUARTZ, false)
1387 fi
1388
1389 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1390 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"
1391
1392 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1393 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1394 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1395 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1396 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1397
1398 if test "x$gdktarget" = "xlinux-fb"; then
1399   if test x$enable_shadowfb = xyes ; then
1400     AC_DEFINE(ENABLE_SHADOW_FB)
1401   fi
1402
1403   if test x$enable_fbmanager = xyes ; then
1404     AC_DEFINE(ENABLE_FB_MANAGER)
1405     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1406   else
1407     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1408   fi
1409   
1410   AM_CONDITIONAL(USE_LINUX_FB, true)
1411 else
1412   AM_CONDITIONAL(USE_LINUX_FB, false)
1413   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1414 fi
1415
1416 if test "x$gdktarget" = "xdirectfb"; then
1417   DIRECTFB_REQUIRED_VERSION=0.9.24
1418   AC_MSG_CHECKING(for DirectFB)
1419
1420   if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then
1421       AC_MSG_RESULT(found)
1422       GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb` $GDK_EXTRA_CFLAGS"
1423       GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb` $GDK_EXTRA_LIBS"
1424   else
1425       AC_MSG_ERROR([
1426 *** DirectFB $DIRECTFB_REQUIRED_VERSION or newer and the cairo backend 
1427 *** are required. The latest version of DirectFB is always available 
1428 *** from http://www.directfb.org/.
1429   ])
1430   fi
1431
1432   AM_CONDITIONAL(USE_DIRECTFB, true)
1433 else
1434   AM_CONDITIONAL(USE_DIRECTFB, false)
1435 fi
1436
1437
1438 # Check for Pango flags
1439
1440 if test "x$gdktarget" = "xwin32"; then
1441         PANGO_PACKAGES="pangowin32 pangocairo"
1442 else
1443         PANGO_PACKAGES="pango pangocairo"
1444 fi
1445
1446 AC_MSG_CHECKING(Pango flags)
1447 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1448         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1449         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1450
1451         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1452 else
1453         AC_MSG_ERROR([
1454 *** Pango not found. Pango built with Cairo support is required
1455 *** to build GTK+. See http://www.pango.org for Pango information.
1456 ])
1457 fi
1458
1459 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1460
1461 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1462         :
1463 else
1464         gtk_save_LIBS="$LIBS"
1465         LIBS="$PANGO_LIBS $LIBS"
1466         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1467 *** Can't link to Pango. Pango is required to build
1468 *** GTK+. For more information see http://www.pango.org]))
1469         LIBS="$gtk_save_LIBS"
1470 fi
1471
1472 CFLAGS="$saved_cflags"
1473 LDFLAGS="$saved_ldflags"
1474
1475 GDK_PACKAGES="$PANGO_PACKAGES"
1476 if test "x$gdktarget" = "xx11"; then
1477   GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
1478 fi
1479 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1480 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1481
1482 #
1483 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1484 # into the pkg-config files
1485 #
1486 if test $enable_explicit_deps != yes ; then
1487   GDK_PACKAGES="$PANGO_PACKAGES"
1488   GDK_EXTRA_LIBS=
1489 fi
1490
1491 AC_SUBST(GDK_PACKAGES)
1492 AC_SUBST(GDK_EXTRA_LIBS)
1493 AC_SUBST(GDK_EXTRA_CFLAGS)
1494 AC_SUBST(GDK_DEP_LIBS)
1495 AC_SUBST(GDK_DEP_CFLAGS)
1496
1497
1498 ########################################
1499 # Check for Accessibility Toolkit flags
1500 ########################################
1501
1502 ATK_PACKAGES=atk
1503 AC_MSG_CHECKING(ATK flags)
1504 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1505         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1506         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1507
1508         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1509 else
1510         AC_MSG_ERROR([
1511 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1512 *** to build GTK+.
1513 ])
1514 fi
1515
1516 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1517         :
1518 else
1519         gtk_save_LIBS="$LIBS"
1520         LIBS="$ATK_LIBS $LIBS"
1521         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1522                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1523                 *** to build GTK+]))
1524         LIBS="$gtk_save_LIBS"
1525 fi
1526
1527 GTK_PACKAGES="atk cairo"
1528 GTK_EXTRA_LIBS=
1529 GTK_EXTRA_CFLAGS= 
1530 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"
1531 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"
1532
1533 if test x"$os_win32" = xyes; then
1534   GTK_EXTRA_CFLAGS="$msnative_struct"
1535 fi
1536
1537 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
1538 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
1539 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
1540 CAIRO_PREFIX="`pkg-config --variable=prefix cairo`"
1541
1542 AC_SUBST(GTK_PACKAGES)
1543 AC_SUBST(GTK_EXTRA_LIBS)
1544 AC_SUBST(GTK_EXTRA_CFLAGS)
1545 AC_SUBST(GTK_DEP_LIBS)
1546 AC_SUBST(GTK_DEP_CFLAGS)
1547
1548 AC_SUBST(GLIB_PREFIX)
1549 AC_SUBST(ATK_PREFIX)
1550 AC_SUBST(PANGO_PREFIX)
1551 AC_SUBST(CAIRO_PREFIX)
1552
1553 AC_SUBST(GTK_DEBUG_FLAGS)
1554 AC_SUBST(GTK_XIM_FLAGS)
1555
1556 ################################################################
1557 # Printing system checks
1558 ################################################################
1559
1560 AC_PATH_PROG(CUPS_CONFIG, cups-config, no)
1561 if test "x$CUPS_CONFIG" != "xno"; then
1562   CUPS_CFLAGS=`cups-config --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
1563   CUPS_LIBS=`cups-config --libs`
1564
1565   CUPS_API_VERSION=`cups-config --api-version`
1566   CUPS_API_MAJOR=`echo -n $CUPS_API_VERSION | awk -F. '{print $1}'`
1567   CUPS_API_MINOR=`echo -n $CUPS_API_VERSION | awk -F. '{print $2}'`
1568
1569   if test $CUPS_API_MAJOR -gt 1 -o \
1570           $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then
1571     AC_DEFINE(HAVE_CUPS_API_1_2)
1572   fi
1573
1574   AC_SUBST(CUPS_API_MAJOR)
1575   AC_SUBST(CUPS_API_MINOR)
1576   AC_SUBST(CUPS_CFLAGS)
1577   AC_SUBST(CUPS_LIBS)
1578 fi
1579 AM_CONDITIONAL(HAVE_CUPS, test "x$CUPS_CONFIG" != "xno")
1580
1581 gtk_save_cppflags="$CPPFLAGS"
1582 CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS"
1583                           
1584 AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
1585 *** Can't find cairo-pdf.h. You must build Cairo with the pdf
1586 *** backend enabled.]))
1587
1588 if test "$os_win32" != "yes"; then
1589   AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([
1590 *** Can't find cairo-ps.h. You must build Cairo with the 
1591 *** postscript backend enabled.]))
1592 fi   
1593
1594 CPPFLAGS="$gtk_save_cppflags"
1595      
1596                                 
1597 AC_ARG_ENABLE(test-print-backend,
1598               [AC_HELP_STRING([--enable-test-print-backend],
1599                               [build test print backend])],,
1600               [enable_test_print_backend=no])
1601 AM_CONDITIONAL(TEST_PRINT_BACKEND, test "x$enable_test_print_backend" != "xno")
1602
1603
1604 ################################################################
1605 # Strip -export-dynamic from the link lines of various libraries
1606 ################################################################
1607
1608 #
1609 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1610 #  but this flag is only meaningful for executables. For libraries
1611 #  the effect is undefined; what it causes on Linux is that the
1612 #  export list from -export-symbols-regex is ignored and everything
1613 #  is exported
1614 #
1615 # We are using gmodule-no-export now, but I'm leaving the stripping
1616 # code in place for now, since pango and atk still require gmodule.
1617 export SED
1618 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1619 if test -n "$export_dynamic"; then
1620   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1621   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1622   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1623   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1624 fi
1625
1626
1627 ##################################################
1628 # Checks for gtk-doc and docbook-tools
1629 ##################################################
1630
1631 GTK_DOC_CHECK([1.6])
1632
1633 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1634 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1635
1636 AC_ARG_ENABLE(man,
1637               [AC_HELP_STRING([--enable-man],
1638                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1639               enable_man=no)
1640
1641 if test "${enable_man}" != no; then
1642   dnl
1643   dnl Check for xsltproc
1644   dnl
1645   AC_PATH_PROG([XSLTPROC], [xsltproc])
1646   if test -z "$XSLTPROC"; then
1647     enable_man=no
1648   fi
1649
1650   dnl check for DocBook DTD and stylesheets in the local catalog.
1651   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1652      [DocBook XML DTD V4.1.2],,enable_man=no)
1653   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1654      [DocBook XSL Stylesheets],,enable_man=no)
1655 fi
1656
1657 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1658
1659
1660 ##################################################
1661 # Output commands
1662 ##################################################
1663
1664 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1665         outfile=gdkconfig.h-tmp
1666         cat > $outfile <<\_______EOF
1667 /* gdkconfig.h
1668  *
1669  * This is a generated file.  Please modify `configure.in'
1670  */
1671
1672 #ifndef GDKCONFIG_H
1673 #define GDKCONFIG_H
1674
1675 #ifdef __cplusplus
1676 extern "C" {
1677 #endif /* __cplusplus */
1678
1679 _______EOF
1680
1681         cat >>$outfile <<_______EOF
1682 $gdk_windowing
1683 $gdk_wc
1684 _______EOF
1685
1686         cat >>$outfile <<_______EOF
1687
1688 #ifdef __cplusplus
1689 }
1690 #endif /* __cplusplus */
1691
1692 #endif /* GDKCONFIG_H */
1693 _______EOF
1694
1695
1696         if cmp -s $outfile gdk/gdkconfig.h; then
1697           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1698           rm -f $outfile
1699         else
1700           mv $outfile gdk/gdkconfig.h
1701         fi
1702 ],[
1703 if test "x$gdktarget" = "xx11" ; then
1704   gdk_windowing='
1705 #define GDK_WINDOWING_X11'
1706 elif test "x$gdktarget" = "xwin32" ; then
1707   gdk_windowing='
1708 #define GDK_WINDOWING_WIN32'
1709 elif test "x$gdktarget" = "xlinux-fb" ; then
1710   gdk_windowing='
1711 #define GDK_WINDOWING_FB
1712 #define GDK_NATIVE_WINDOW_POINTER'
1713 elif test "x$gdktarget" = "xquartz" ; then
1714   gdk_windowing='
1715 #define GDK_WINDOWING_QUARTZ'
1716 elif test "x$gdktarget" = "xdirectfb" ; then
1717   gdk_windowing='
1718 #define GDK_WINDOWING_DIRECTFB'
1719 fi
1720
1721 if test x$gdk_wchar_h = xyes; then
1722   gdk_wc='
1723 #define GDK_HAVE_WCHAR_H 1'
1724 fi
1725 if test x$gdk_wctype_h = xyes; then
1726   gdk_wc="\$gdk_wc
1727 #define GDK_HAVE_WCTYPE_H 1"
1728 fi
1729 if test x$gdk_working_wctype = xno; then
1730   gdk_wc="\$gdk_wc
1731 #define GDK_HAVE_BROKEN_WCTYPE 1"
1732 fi
1733
1734
1735 ])
1736
1737 AC_CONFIG_FILES([
1738 config.h.win32
1739 gtk-zip.sh
1740 Makefile
1741 gdk-pixbuf-2.0.pc
1742 gdk-2.0.pc
1743 gtk+-2.0.pc
1744 gtk+-unix-print-2.0.pc
1745 gdk-pixbuf-2.0-uninstalled.pc
1746 gdk-2.0-uninstalled.pc
1747 gtk+-2.0-uninstalled.pc
1748 m4macros/Makefile
1749 po/Makefile.in
1750 po-properties/Makefile.in
1751 demos/Makefile
1752 demos/gtk-demo/Makefile
1753 demos/gtk-demo/geninclude.pl
1754 tests/Makefile
1755 docs/Makefile
1756 docs/reference/Makefile
1757 docs/reference/gdk-pixbuf/Makefile
1758 docs/reference/gdk-pixbuf/version.xml
1759 docs/reference/gdk/Makefile
1760 docs/reference/gdk/version.xml
1761 docs/reference/gtk/Makefile
1762 docs/reference/gtk/version.xml
1763 docs/faq/Makefile
1764 docs/tools/Makefile
1765 docs/tutorial/Makefile
1766 gdk-pixbuf/Makefile
1767 gdk-pixbuf/gdk_pixbuf.rc
1768 gdk-pixbuf/gdk-pixbuf-features.h
1769 gdk-pixbuf/pixops/Makefile
1770 gdk/Makefile
1771 gdk/x11/Makefile
1772 gdk/win32/Makefile
1773 gdk/win32/rc/Makefile
1774 gdk/win32/rc/gdk.rc
1775 gdk/linux-fb/Makefile
1776 gdk/quartz/Makefile
1777 gdk/directfb/Makefile
1778 gtk/Makefile
1779 gtk/makefile.msc
1780 gtk/gtkversion.h
1781 gtk/gtk-win32.rc
1782 gtk/theme-bits/Makefile
1783 gtk/xdgmime/Makefile
1784 modules/Makefile
1785 modules/input/Makefile
1786 modules/engines/Makefile
1787 modules/engines/pixbuf/Makefile
1788 modules/engines/ms-windows/Makefile
1789 modules/engines/ms-windows/Theme/Makefile
1790 modules/engines/ms-windows/Theme/gtk-2.0/Makefile
1791 modules/printbackends/Makefile
1792 modules/printbackends/cups/Makefile
1793 modules/printbackends/lpr/Makefile
1794 modules/printbackends/file/Makefile
1795 modules/printbackends/test/Makefile
1796 perf/Makefile
1797 contrib/Makefile
1798 contrib/gdk-pixbuf-xlib/Makefile
1799 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1800 ])
1801
1802 AC_OUTPUT
1803
1804 echo "configuration:
1805         target: $gdktarget"
1806
1807 if test "x$gdktarget" = "xlinux-fb"; then
1808   echo "Warning: The linux-fb GDK target is unmaintained"
1809   echo "         and may not work or even compile"
1810 fi
1811