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