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