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