]> Pileus Git - ~andy/gtk/blob - configure.in
Add --disable-cups option. (#513826, Alberto Ruiz)
[~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], [13])
15 m4_define([gtk_micro_version], [1])
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.19.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 kn 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 gio-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   # Checks for Xcursor library
1342   
1343   if $PKG_CONFIG --exists xcursor ; then
1344     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1345     
1346     X_PACKAGES="$X_PACKAGES xcursor"
1347   fi
1348
1349   # Checks for XFixes extension
1350   
1351   if $PKG_CONFIG --exists xfixes ; then
1352     AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
1353     
1354     X_PACKAGES="$X_PACKAGES xfixes"
1355     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xfixes"
1356   fi
1357
1358   # Checks for Xcomposite extension
1359
1360   if $PKG_CONFIG --exists xcomposite ; then
1361     AC_DEFINE(HAVE_XCOMPOSITE, 1, Have the XCOMPOSITE X extension)
1362
1363     X_PACKAGES="$X_PACKAGES xcomposite"
1364     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xcomposite"
1365   fi
1366
1367   # Checks for Xdamage extension
1368
1369   if $PKG_CONFIG --exists xdamage ; then
1370     AC_DEFINE(HAVE_XDAMAGE, 1, Have the XDAMAGE X extension)
1371
1372     X_PACKAGES="$X_PACKAGES xdamage"
1373     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xdamage"
1374   fi
1375
1376   if $have_base_x_pc ; then
1377     GDK_EXTRA_LIBS="$x_extra_libs"
1378   else
1379     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
1380   fi
1381
1382   CPPFLAGS="$gtk_save_cppflags"
1383   LIBS="$gtk_save_libs"
1384
1385   AM_CONDITIONAL(USE_X11, true)
1386 else
1387   AM_CONDITIONAL(XINPUT_XFREE, false)
1388   AM_CONDITIONAL(USE_X11, false)
1389   AM_CONDITIONAL(HAVE_X11R6, false)
1390 fi
1391
1392 if test "x$gdktarget" = "xwin32"; then
1393   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid"
1394   AM_CONDITIONAL(USE_WIN32, true)
1395 else
1396   AM_CONDITIONAL(USE_WIN32, false)
1397 fi
1398
1399 if test "x$gdktarget" = "xquartz"; then
1400   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
1401   AM_CONDITIONAL(USE_QUARTZ, true)
1402 else
1403   AM_CONDITIONAL(USE_QUARTZ, false)
1404 fi
1405
1406 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1407 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"
1408
1409 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1410 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1411 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1412 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1413 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1414
1415 if test "x$gdktarget" = "xdirectfb"; then
1416   DIRECTFB_REQUIRED_VERSION=0.9.24
1417   AC_MSG_CHECKING(for DirectFB)
1418
1419   if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then
1420       AC_MSG_RESULT(found)
1421       GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb` $GDK_EXTRA_CFLAGS"
1422       GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb` $GDK_EXTRA_LIBS"
1423   else
1424       AC_MSG_ERROR([
1425 *** DirectFB $DIRECTFB_REQUIRED_VERSION or newer and the cairo backend 
1426 *** are required. The latest version of DirectFB is always available 
1427 *** from http://www.directfb.org/.
1428   ])
1429   fi
1430
1431   AM_CONDITIONAL(USE_DIRECTFB, true)
1432 else
1433   AM_CONDITIONAL(USE_DIRECTFB, false)
1434 fi
1435
1436
1437 # Check for Pango flags
1438
1439 if test "x$gdktarget" = "xwin32"; then
1440         PANGO_PACKAGES="pangowin32 pangocairo"
1441 else
1442         PANGO_PACKAGES="pango pangocairo"
1443 fi
1444
1445 AC_MSG_CHECKING(Pango flags)
1446 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1447         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1448         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1449
1450         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1451 else
1452         AC_MSG_ERROR([
1453 *** Pango not found. Pango built with Cairo support is required
1454 *** to build GTK+. See http://www.pango.org for Pango information.
1455 ])
1456 fi
1457
1458 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1459
1460 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1461         :
1462 else
1463         gtk_save_LIBS="$LIBS"
1464         LIBS="$PANGO_LIBS $LIBS"
1465         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1466 *** Can't link to Pango. Pango is required to build
1467 *** GTK+. For more information see http://www.pango.org]))
1468         LIBS="$gtk_save_LIBS"
1469 fi
1470
1471 CFLAGS="$saved_cflags"
1472 LDFLAGS="$saved_ldflags"
1473
1474 GDK_PACKAGES="$PANGO_PACKAGES gio-2.0"
1475 if test "x$gdktarget" = "xx11"; then
1476   GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
1477 fi
1478 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1479 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1480
1481 #
1482 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1483 # into the pkg-config files
1484 #
1485 if test $enable_explicit_deps != yes ; then
1486   GDK_PACKAGES="$PANGO_PACKAGES"
1487   GDK_EXTRA_LIBS=
1488 fi
1489
1490 AC_SUBST(GDK_PACKAGES)
1491 AC_SUBST(GDK_EXTRA_LIBS)
1492 AC_SUBST(GDK_EXTRA_CFLAGS)
1493 AC_SUBST(GDK_DEP_LIBS)
1494 AC_SUBST(GDK_DEP_CFLAGS)
1495
1496
1497 ########################################
1498 # Check for Accessibility Toolkit flags
1499 ########################################
1500
1501 ATK_PACKAGES=atk
1502 AC_MSG_CHECKING(ATK flags)
1503 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1504         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1505         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1506
1507         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1508 else
1509         AC_MSG_ERROR([
1510 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1511 *** to build GTK+.
1512 ])
1513 fi
1514
1515 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1516         :
1517 else
1518         gtk_save_LIBS="$LIBS"
1519         LIBS="$ATK_LIBS $LIBS"
1520         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1521                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1522                 *** to build GTK+]))
1523         LIBS="$gtk_save_LIBS"
1524 fi
1525
1526 GTK_PACKAGES="atk cairo"
1527 GTK_EXTRA_LIBS=
1528 GTK_EXTRA_CFLAGS= 
1529 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"
1530 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"
1531
1532 if test x"$os_win32" = xyes; then
1533   GTK_EXTRA_CFLAGS="$msnative_struct"
1534 fi
1535
1536 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
1537 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
1538 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
1539 CAIRO_PREFIX="`pkg-config --variable=prefix cairo`"
1540
1541 if test $enable_explicit_deps != yes ; then
1542   GDK_PIXBUF_EXTRA_LIBS=
1543 fi
1544
1545 AC_SUBST(GDK_PIXBUF_PACKAGES)
1546 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
1547 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
1548 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
1549 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
1550
1551 AC_SUBST(GTK_PACKAGES)
1552 AC_SUBST(GTK_EXTRA_LIBS)
1553 AC_SUBST(GTK_EXTRA_CFLAGS)
1554 AC_SUBST(GTK_DEP_LIBS)
1555 AC_SUBST(GTK_DEP_CFLAGS)
1556
1557 AC_SUBST(GLIB_PREFIX)
1558 AC_SUBST(ATK_PREFIX)
1559 AC_SUBST(PANGO_PREFIX)
1560 AC_SUBST(CAIRO_PREFIX)
1561
1562 AC_SUBST(GTK_DEBUG_FLAGS)
1563 AC_SUBST(GTK_XIM_FLAGS)
1564
1565 ########################
1566 # Checks needed for gail
1567 ########################
1568
1569 old_LIBS="$LIBS"
1570 dnl Checks for inet libraries:
1571 AC_SEARCH_LIBS(gethostent, nsl)
1572 AC_SEARCH_LIBS(setsockopt, socket)
1573 AC_SEARCH_LIBS(connect, inet)
1574
1575 dnl check for the sockaddr_un.sun_len member
1576 AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
1577                 [struct_sockaddr_un_sun_len=true],
1578                 [struct_sockaddr_un_suin_len=false],
1579                 [#include <sys/types.h>
1580                  #include <sys/un.h>]
1581                 )
1582 case $struct_sockaddr_un_sun_len in 
1583         true)
1584                 AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_UN_SUN_LEN, 1, Have the sockaddr_un.sun_len member.)
1585                 ;;
1586         *)
1587                 ;;
1588 esac
1589
1590 GAIL_INET_LIBS="$LIBS"
1591 AC_SUBST([GAIL_INET_LIBS])
1592
1593 LIBS="$old_LIBS"
1594
1595 ################################################################
1596 # Printing system checks
1597 ################################################################
1598
1599 AC_ARG_ENABLE(cups,
1600               [AC_HELP_STRING([--disable-cups]
1601                               [disable cups print backend])],,
1602               [enable_cups=auto])
1603
1604 if test "x$enable_cups" = "xauto"
1605 then
1606   AC_PATH_PROG(CUPS_CONFIG, cups-config, no)
1607   if test "x$CUPS_CONFIG" != "xno"; then
1608     CUPS_CFLAGS=`$CUPS_CONFIG --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
1609     CUPS_LIBS=`$CUPS_CONFIG --libs`
1610
1611     CUPS_API_VERSION=`$CUPS_CONFIG --api-version`
1612     CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $1}'`
1613     CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'`
1614
1615     if test $CUPS_API_MAJOR -gt 1 -o \
1616             $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then
1617       AC_DEFINE(HAVE_CUPS_API_1_2)
1618     fi
1619
1620     AC_SUBST(CUPS_API_MAJOR)
1621     AC_SUBST(CUPS_API_MINOR)
1622     AC_SUBST(CUPS_CFLAGS)
1623     AC_SUBST(CUPS_LIBS)
1624
1625     AC_CHECK_HEADER(cups/cups.h,,AC_MSG_ERROR([[*** Sorry, cups-config present but cups/cups.h missing.]]))
1626   fi
1627   AM_CONDITIONAL(HAVE_CUPS, test "x$CUPS_CONFIG" != "xno")
1628
1629   gtk_save_cflags="$CFLAGS"
1630   CFLAGS="$CUPS_CFLAGS"
1631   AC_TRY_COMPILE([#include <cups/http.h>],
1632                  [http_t http; char *s = http.authstring;],
1633                  [AC_DEFINE(HAVE_HTTP_AUTHSTRING,[],[Define if cups http_t authstring field is accessible])],)
1634   CFLAGS="$gtk_save_cflags"
1635
1636   AC_SUBST(HAVE_HTTP_AUTHSTRING)
1637
1638   gtk_save_libs="$LIBS"
1639   LIBS="$CUPS_LIBS"
1640   AC_CHECK_FUNCS(httpGetAuthString)
1641   LIBS="$gtk_save_libs"
1642
1643 else
1644   AM_CONDITIONAL(HAVE_CUPS, false)
1645 fi
1646
1647 gtk_save_cppflags="$CPPFLAGS"
1648 CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS"
1649                           
1650 AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
1651 *** Can't find cairo-pdf.h. You must build Cairo with the pdf
1652 *** backend enabled.]))
1653
1654 if test "$os_win32" != "yes"; then
1655   AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([
1656 *** Can't find cairo-ps.h. You must build Cairo with the 
1657 *** postscript backend enabled.]))
1658 fi   
1659
1660 CPPFLAGS="$gtk_save_cppflags"
1661      
1662                                 
1663 AC_ARG_ENABLE(test-print-backend,
1664               [AC_HELP_STRING([--enable-test-print-backend],
1665                               [build test print backend])],,
1666               [enable_test_print_backend=no])
1667 AM_CONDITIONAL(TEST_PRINT_BACKEND, test "x$enable_test_print_backend" != "xno")
1668
1669
1670 ################################################################
1671 # Strip -export-dynamic from the link lines of various libraries
1672 ################################################################
1673
1674 #
1675 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1676 #  but this flag is only meaningful for executables. For libraries
1677 #  the effect is undefined; what it causes on Linux is that the
1678 #  export list from -export-symbols-regex is ignored and everything
1679 #  is exported
1680 #
1681 # We are using gmodule-no-export now, but I'm leaving the stripping
1682 # code in place for now, since pango and atk still require gmodule.
1683 export SED
1684 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1685 if test -n "$export_dynamic"; then
1686   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1687   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1688   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1689   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1690 fi
1691
1692
1693 ##################################################
1694 # Checks for gtk-doc and docbook-tools
1695 ##################################################
1696
1697 GTK_DOC_CHECK([1.8])
1698
1699 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1700 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1701
1702 AC_ARG_ENABLE(man,
1703               [AC_HELP_STRING([--enable-man],
1704                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1705               enable_man=no)
1706
1707 if test "${enable_man}" != no; then
1708   dnl
1709   dnl Check for xsltproc
1710   dnl
1711   AC_PATH_PROG([XSLTPROC], [xsltproc])
1712   if test -z "$XSLTPROC"; then
1713     enable_man=no
1714   fi
1715
1716   dnl check for DocBook DTD and stylesheets in the local catalog.
1717   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1718      [DocBook XML DTD V4.1.2],,enable_man=no)
1719   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1720      [DocBook XSL Stylesheets],,enable_man=no)
1721 fi
1722
1723 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1724
1725
1726 ##################################################
1727 # Output commands
1728 ##################################################
1729
1730 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1731         outfile=gdkconfig.h-tmp
1732         cat > $outfile <<\_______EOF
1733 /* gdkconfig.h
1734  *
1735  * This is a generated file.  Please modify `configure.in'
1736  */
1737
1738 #ifndef GDKCONFIG_H
1739 #define GDKCONFIG_H
1740
1741 #ifdef __cplusplus
1742 extern "C" {
1743 #endif /* __cplusplus */
1744
1745 _______EOF
1746
1747         cat >>$outfile <<_______EOF
1748 $gdk_windowing
1749 $gdk_wc
1750 _______EOF
1751
1752         cat >>$outfile <<_______EOF
1753
1754 #ifdef __cplusplus
1755 }
1756 #endif /* __cplusplus */
1757
1758 #endif /* GDKCONFIG_H */
1759 _______EOF
1760
1761
1762         if cmp -s $outfile gdk/gdkconfig.h; then
1763           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1764           rm -f $outfile
1765         else
1766           mv $outfile gdk/gdkconfig.h
1767         fi
1768 ],[
1769 if test "x$gdktarget" = "xx11" ; then
1770   gdk_windowing='
1771 #define GDK_WINDOWING_X11'
1772 elif test "x$gdktarget" = "xwin32" ; then
1773   gdk_windowing='
1774 #define GDK_WINDOWING_WIN32'
1775 elif test "x$gdktarget" = "xquartz" ; then
1776   gdk_windowing='
1777 #define GDK_WINDOWING_QUARTZ'
1778 elif test "x$gdktarget" = "xdirectfb" ; then
1779   gdk_windowing='
1780 #define GDK_WINDOWING_DIRECTFB'
1781 fi
1782
1783 if test x$gdk_wchar_h = xyes; then
1784   gdk_wc='
1785 #define GDK_HAVE_WCHAR_H 1'
1786 fi
1787 if test x$gdk_wctype_h = xyes; then
1788   gdk_wc="\$gdk_wc
1789 #define GDK_HAVE_WCTYPE_H 1"
1790 fi
1791 if test x$gdk_working_wctype = xno; then
1792   gdk_wc="\$gdk_wc
1793 #define GDK_HAVE_BROKEN_WCTYPE 1"
1794 fi
1795
1796
1797 ])
1798
1799 AC_CONFIG_FILES([
1800 config.h.win32
1801 gtk-zip.sh
1802 Makefile
1803 gdk-pixbuf-2.0.pc
1804 gdk-2.0.pc
1805 gtk+-2.0.pc
1806 gtk+-unix-print-2.0.pc
1807 gail.pc
1808 gdk-pixbuf-2.0-uninstalled.pc
1809 gdk-2.0-uninstalled.pc
1810 gtk+-2.0-uninstalled.pc
1811 gail-uninstalled.pc
1812 m4macros/Makefile
1813 po/Makefile.in
1814 po-properties/Makefile.in
1815 demos/Makefile
1816 demos/gtk-demo/Makefile
1817 demos/gtk-demo/geninclude.pl
1818 tests/Makefile
1819 docs/Makefile
1820 docs/reference/Makefile
1821 docs/reference/gdk-pixbuf/Makefile
1822 docs/reference/gdk-pixbuf/version.xml
1823 docs/reference/gdk/Makefile
1824 docs/reference/gdk/version.xml
1825 docs/reference/gtk/Makefile
1826 docs/reference/gtk/version.xml
1827 docs/reference/libgail-util/Makefile
1828 docs/faq/Makefile
1829 docs/tools/Makefile
1830 docs/tutorial/Makefile
1831 gdk-pixbuf/Makefile
1832 gdk-pixbuf/gdk_pixbuf.rc
1833 gdk-pixbuf/gdk-pixbuf-features.h
1834 gdk-pixbuf/pixops/Makefile
1835 gdk/Makefile
1836 gdk/x11/Makefile
1837 gdk/win32/Makefile
1838 gdk/win32/rc/Makefile
1839 gdk/win32/rc/gdk.rc
1840 gdk/quartz/Makefile
1841 gdk/directfb/Makefile
1842 gtk/Makefile
1843 gtk/makefile.msc
1844 gtk/gtkversion.h
1845 gtk/gtk-win32.rc
1846 gtk/theme-bits/Makefile
1847 gtk/tests/Makefile
1848 gtk/xdgmime/Makefile
1849 modules/Makefile
1850 modules/other/Makefile
1851 modules/other/gail/Makefile
1852 modules/other/gail/libgail-util/Makefile
1853 modules/other/gail/tests/Makefile
1854 modules/engines/Makefile
1855 modules/engines/pixbuf/Makefile
1856 modules/engines/ms-windows/Makefile
1857 modules/engines/ms-windows/Theme/Makefile
1858 modules/engines/ms-windows/Theme/gtk-2.0/Makefile
1859 modules/input/Makefile
1860 modules/printbackends/Makefile
1861 modules/printbackends/cups/Makefile
1862 modules/printbackends/lpr/Makefile
1863 modules/printbackends/file/Makefile
1864 modules/printbackends/test/Makefile
1865 perf/Makefile
1866 contrib/Makefile
1867 contrib/gdk-pixbuf-xlib/Makefile
1868 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1869 ])
1870
1871 AC_OUTPUT
1872
1873 echo "configuration:
1874         target: $gdktarget"