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