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