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