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