]> Pileus Git - ~andy/gtk/blob - configure.in
Add rule to regenerate man pages from Docbook. (man_MANS): Add
[~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], [3])
15 m4_define([gtk_micro_version], [0])
16 m4_define([gtk_version],
17           [gtk_major_version.gtk_minor_version.gtk_micro_version])
18 m4_define([gtk_interface_age], [0])
19 m4_define([gtk_binary_age], [300])
20 # This is the X.Y used in -lgtk-FOO-X.Y
21 m4_define([gtk_api_version], [2.0])
22
23 # Define a string for the earliest version that this release has
24 # forward/backwards binary compatibility with. This is used for module
25 # locations. (Should this be backwards-compat instead?)
26 #
27 #GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
28 m4_define([gtk_binary_version], [2.2.0])
29
30 # required versions of other packages
31 m4_define([glib_required_version], [2.1.4])
32 m4_define([pango_required_version], [1.0.1])
33 m4_define([atk_required_version], [1.0.1])
34
35
36 AC_INIT([gtk+], [gtk_version],
37         [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk+],
38         [gtk+])
39
40 AC_CONFIG_SRCDIR([gdk/gdktypes.h])
41
42 # Save this value here, since automake will set cflags later
43 cflags_set=${CFLAGS+set}
44
45 AM_INIT_AUTOMAKE(no-define)
46 AM_CONFIG_HEADER(config.h)
47
48 #
49 # For each of the libraries we build, we define the following
50 # substituted variables:
51 #
52 # foo_PACKAGES:     pkg-config packages this library requires
53 # foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
54 # foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
55 # foo_DEP_LIBS:     All libraries this module requires
56 # foo_DEP_CFLAGS:   All cflags this module requires
57
58
59 GTK_MAJOR_VERSION=gtk_major_version
60 GTK_MINOR_VERSION=gtk_minor_version
61 GTK_MICRO_VERSION=gtk_micro_version
62 GTK_INTERFACE_AGE=gtk_interface_age
63 GTK_BINARY_AGE=gtk_binary_age
64 GTK_VERSION=gtk_version
65 GTK_API_VERSION=gtk_api_version
66 GTK_BINARY_VERSION=gtk_binary_version
67 AC_SUBST(GTK_MAJOR_VERSION)
68 AC_SUBST(GTK_MINOR_VERSION)
69 AC_SUBST(GTK_MICRO_VERSION)
70 AC_SUBST(GTK_INTERFACE_AGE)
71 AC_SUBST(GTK_BINARY_AGE)
72 AC_SUBST(GTK_API_VERSION)
73 AC_SUBST(GTK_VERSION)
74 AC_SUBST(GTK_BINARY_VERSION)
75
76 # libtool versioning
77 #LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
78 #LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
79 #LT_REVISION=$GTK_INTERFACE_AGE
80 #LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
81 #LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
82
83 m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)])
84 m4_define([lt_revision], [gtk_interface_age])
85 m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_interface_age)])
86 LT_VERSION_INFO="lt_current:lt_revision:lt_age"
87 LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
88 AC_SUBST(LT_VERSION_INFO)
89 AC_SUBST(LT_CURRENT_MINUS_AGE)
90
91
92 #
93 # gdk-pixbuf gets versioned separately, and for now, using standard
94 # libtool versioning, not GTK+-style versioning
95 #
96 GDK_PIXBUF_MAJOR=gtk_major_version
97 GDK_PIXBUF_MINOR=gtk_minor_version
98 GDK_PIXBUF_MICRO=gtk_micro_version
99 GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
100 AC_SUBST(GDK_PIXBUF_MAJOR)
101 AC_SUBST(GDK_PIXBUF_MINOR)
102 AC_SUBST(GDK_PIXBUF_MICRO)
103 AC_SUBST(GDK_PIXBUF_VERSION)
104
105 GETTEXT_PACKAGE=gtk20
106 AC_SUBST(GETTEXT_PACKAGE)
107 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
108
109
110 dnl Initialize libtool
111 AC_PROG_CC
112 AM_DISABLE_STATIC
113 AC_LIBTOOL_WIN32_DLL
114 AM_PROG_LIBTOOL
115
116 AM_PROG_AS
117
118 dnl Initialize maintainer mode
119 AM_MAINTAINER_MODE
120
121 AC_CANONICAL_HOST
122
123 AC_MSG_CHECKING([for some Win32 platform])
124 case "$host" in
125   *-*-mingw*|*-*-cygwin*)
126     platform_win32=yes
127     ;;
128   *)
129     platform_win32=no
130     ;;
131 esac
132 AC_MSG_RESULT([$platform_win32])
133 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
134
135 MATH_LIB=-lm
136 AC_MSG_CHECKING([for native Win32])
137 case "$host" in
138   *-*-mingw*)
139     os_win32=yes
140     MATH_LIB=
141     ;;
142   *)
143     os_win32=no
144     ;;
145 esac
146 AC_MSG_RESULT([$os_win32])
147 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
148
149 if test "$os_win32" = "yes"; then
150   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
151 fi
152 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
153
154 m4_define([debug_default],
155           m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
156
157 dnl declare --enable-* args and collect ac_help strings
158 AC_ARG_ENABLE(debug,
159               AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
160                              [turn on debugging @<:@default=debug_default@:>@]),,
161               enable_debug=debug_default)
162 AC_ARG_ENABLE(shm,
163               [AC_HELP_STRING([--enable-shm],
164                               [support shared memory if available [default=yes]])],
165               [echo $enable_shm, enable_shm="yes"])
166 AC_ARG_ENABLE(ansi,
167               [AC_HELP_STRING([--enable-ansi],
168                               [turn on strict ansi [default=no]])],,
169               [enable_ansi=no])
170 AC_ARG_ENABLE(xkb,
171               [AC_HELP_STRING([--enable-xkb],
172                               [support XKB [default=maybe]])],,
173               [enable_xkb="maybe"])
174 AC_ARG_ENABLE(rebuilds,
175               [AC_HELP_STRING([--disable-rebuilds],
176                               [disable all source autogeneration rules])],,
177               [enable_rebuilds=yes])
178
179 AC_ARG_WITH(xinput,
180             [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
181
182 AC_ARG_WITH(wintab,
183             [AC_HELP_STRING([--with-wintab=DIRECTORY],
184                             [use Wintab API with win32 backend])])
185 AC_ARG_WITH(ie55,
186             [AC_HELP_STRING([--with-ie55=DIRECTORY],
187                             [IE5.5 libs and headers (for Active IMM)])])
188
189 GLIB_AC_DIVERT_BEFORE_HELP([
190 if test "$platform_win32" = yes; then
191   gdktarget=win32
192 else
193   gdktarget=x11
194 fi
195 ])
196
197 AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
198         gdktarget=$with_gdktarget)
199
200 AC_SUBST(gdktarget)
201 case $gdktarget in
202   x11|linux-fb|win32) ;;
203   *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);;
204 esac
205
206 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
207 gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
208
209 AC_SUBST(gdktargetlib)
210 AC_SUBST(gtktargetlib)
211
212 AC_ARG_ENABLE(shadowfb,
213               [AC_HELP_STRING([--disable-shadowfb],
214                               [disable shadowfb support for linux-fb])],,
215               [enable_shadowfb=yes])
216
217 AC_ARG_ENABLE(fbmanager,
218               [AC_HELP_STRING([--enable-fbmanager],
219                               [enable framebuffer manager support (GtkFB)])],,
220               enable_fbmanager=no)
221         
222 if test "x$enable_debug" = "xyes"; then
223   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
224   GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
225 else
226   if test "x$enable_debug" = "xno"; then
227     GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
228   else
229     GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
230   fi
231 fi
232
233 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
234
235                         
236 # Build time sanity check...
237 AM_SANITY_CHECK
238
239 # Checks for programs.
240 AC_ISC_POSIX
241 AM_PROG_CC_STDC
242 AC_PROG_INSTALL
243 AC_PROG_MAKE_SET
244
245 changequote(,)dnl
246 if test "x$GCC" = "xyes"; then
247   case " $CFLAGS " in
248   *[\ \ ]-Wall[\ \      ]*) ;;
249   *) CFLAGS="$CFLAGS -Wall" ;;
250   esac
251
252   if test "x$enable_ansi" = "xyes"; then
253     case " $CFLAGS " in
254     *[\ \       ]-ansi[\ \      ]*) ;;
255     *) CFLAGS="$CFLAGS -ansi" ;;
256     esac
257
258     case " $CFLAGS " in
259     *[\ \       ]-pedantic[\ \  ]*) ;;
260     *) CFLAGS="$CFLAGS -pedantic" ;;
261     esac
262   fi
263 fi
264 changequote([,])dnl
265
266 # Ensure MSVC-compatible struct packing convention is used when
267 # compiling for Win32 with gcc.
268 # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
269 # gcc2 uses "-fnative-struct".
270 if test x"$os_win32" = xyes; then
271   if test x"$GCC" = xyes; then
272     msnative_struct=''
273     AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
274     if test -z "$ac_cv_prog_CC"; then
275       our_gcc="$CC"
276     else
277       our_gcc="$ac_cv_prog_CC"
278     fi
279     case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
280       2.)
281         if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
282           msnative_struct='-fnative-struct'
283         fi
284         ;;
285       *)
286         if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
287           msnative_struct='-mms-bitfields'
288         fi
289         ;;
290     esac
291     if test x"$msnative_struct" = x ; then
292       AC_MSG_RESULT([no way])
293       AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
294     else
295       CFLAGS="$CFLAGS $msnative_struct"
296       AC_MSG_RESULT([${msnative_struct}])
297     fi
298   fi
299 fi
300
301 # Honor aclocal flags
302 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
303
304 ## Initial sanity check, done here so that users get told they 
305 ## have the wrong dependencies as early in the process as possible.
306 ## Later on we actually use the cflags/libs from separate pkg-config
307 ## calls. Oh, also the later pkg-config calls don't include 
308 ## the version requirements since those make the module lists 
309 ## annoying to construct
310 PKG_CHECK_MODULES(BASE_DEPENDENCIES,
311   [glib-2.0 >= glib_required_version dnl
312    atk >= atk_required_version dnl
313    pango >= pango_required_version])
314
315 if test "$os_win32" != yes; then
316     # libtool option to control which symbols are exported
317     # right now, symbols starting with _ are not exported
318     LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
319 else
320     # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
321     LIBTOOL_EXPORT_OPTIONS=
322 fi
323 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
324
325 dnl ******************************************************
326 dnl * See whether to include shared library dependencies *
327 dnl ******************************************************
328
329 AC_ARG_ENABLE(explicit-deps, 
330               [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
331                               [use explicit dependencies in .pc files [default=auto]])],,
332               [enable_explicit_deps=auto])
333
334 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
335 case $enable_explicit_deps in
336   auto)
337     deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
338     if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then
339       enable_explicit_deps=yes  
340     else
341       enable_explicit_deps=no  
342     fi
343   ;;
344   yes|no) 
345   ;;
346   *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
347   ;;
348 esac
349 AC_MSG_RESULT($enable_explicit_deps)
350
351 AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
352
353 # define a MAINT-like variable REBUILD which is set if Perl
354 # and awk are found, so autogenerated sources can be rebuilt
355
356 AC_PATH_PROGS(PERL, perl5 perl)
357
358 # We would like indent, but don't require it.
359 AC_CHECK_PROG(INDENT, indent, indent)
360
361 REBUILD=\#
362 if test "x$enable_rebuilds" = "xyes" && \
363      test -n "$PERL" && \
364      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
365   REBUILD=
366 fi
367 AC_SUBST(REBUILD)
368
369 AC_CHECK_FUNCS(lstat mkstemp flockfile)
370
371 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
372 AC_MSG_CHECKING(for sigsetjmp)
373 AC_TRY_LINK([#include <setjmp.h>], [
374 sigjmp_buf env;
375 sigsetjmp(env, 0);
376 ], gtk_ok=yes, gtk_ok=no)
377 AC_MSG_RESULT($gtk_ok)
378 if test "$gtk_ok" = "yes"; then
379   AC_DEFINE(HAVE_SIGSETJMP)
380 fi
381
382 AC_MSG_CHECKING(whether make is GNU Make)
383 STRIP_BEGIN=
384 STRIP_END=
385 if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
386         STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
387         STRIP_END=')'
388         AC_MSG_RESULT(yes)
389 else
390         AC_MSG_RESULT(no)
391 fi
392 STRIP_DUMMY=
393 AC_SUBST(STRIP_DUMMY)
394 AC_SUBST(STRIP_BEGIN)
395 AC_SUBST(STRIP_END)
396
397 # i18n stuff
398 ALL_LINGUAS="am ar az be bg ca cs cy da de el en_GB es et eu fa fi fr ga gl he hi hr hu ia id it ja ko li lt lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sr sr@Latn sv ta tr uk vi wa yi zh_CN zh_TW"
399 AM_GLIB_GNU_GETTEXT
400 LIBS="$LIBS $INTLLIBS"
401
402 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
403
404 dnl The DU4 header files don't provide library prototypes unless 
405 dnl -std1 is given to the native cc.
406 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
407
408 gtk_save_LIBS=$LIBS
409 LIBS="$LIBS -lm"
410 AC_TRY_RUN([#include <math.h>
411              int main (void) { return (log(1) != log(1.)); }],
412      AC_MSG_RESULT(none needed),
413      gtk_save_CFLAGS="$CFLAGS"
414      CFLAGS="$CFLAGS -std1"
415      AC_TRY_RUN([#include <math.h>
416                  int main (void) { return (log(1) != log(1.)); }],
417          AC_MSG_RESULT(-std1),
418          AC_MSG_RESULT()
419          CFLAGS="$gtk_save_CFLAGS"
420          AC_MSG_WARN(
421                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
422          true
423      ),
424      AC_MSG_RESULT(none needed)
425 )
426 LIBS=$gtk_save_LIBS
427
428 AC_MSG_CHECKING(for the BeOS)
429 case $host in
430   *-*-beos*)
431     AC_MSG_RESULT(yes)
432     MATH_LIB=
433   ;;
434   *)
435     AC_MSG_RESULT(no)
436   ;;
437 esac
438
439 dnl NeXTStep cc seems to need this
440 AC_MSG_CHECKING([for extra flags for POSIX compliance])
441 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
442   AC_MSG_RESULT(none needed),
443   gtk_save_CFLAGS="$CFLAGS"
444   CFLAGS="$CFLAGS -posix"
445   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
446     AC_MSG_RESULT(-posix),
447     AC_MSG_RESULT()
448     CFLAGS="$gtk_save_CFLAGS"
449     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
450
451 #
452 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
453
454
455 GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
456
457 AM_PATH_GLIB_2_0(glib_required_version, :,
458   AC_MSG_ERROR([
459 *** GLIB glib_required_version or better is required. The latest version of 
460 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
461   gobject gmodule gthread)
462
463 dnl
464 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
465 dnl
466 gtk_save_LIBS=$LIBS
467 LIBS="$LIBS $GLIB_LIBS"
468 AC_CHECK_FUNCS(bind_textdomain_codeset)
469 LIBS=$gtk_save_LIBS
470
471 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
472 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
473 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
474
475 if test "${with_ie55+set}" = set && test $with_ie55 != no; then
476   AC_MSG_CHECKING([for dimm.h])
477   saved_CFLAGS="$CFLAGS"
478   CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
479   AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
480 #ifdef __GNUC__
481 #define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
482 #define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
483 #endif
484 #include <windows.h>
485 #include <objbase.h>
486 #include <imm.h>
487 #ifdef __GNUC__
488 #undef IMEMENUITEMINFOA
489 #undef IMEMENUITEMINFOW
490 #endif
491 #include <dimm.h>
492 ],
493    [],
494    [AC_MSG_RESULT(yes)
495     AC_MSG_CHECKING([for IE55 uuid.lib])
496     if test -f $with_ie55/Lib/uuid.lib ; then
497       AC_MSG_RESULT(yes)
498       have_ie55=yes
499       AC_DEFINE(HAVE_DIMM_H)
500       IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
501       AC_SUBST(IE55_UUID_LIB)
502     else
503       AC_MSG_RESULT(no)
504       CFLAGS="$saved_CFLAGS"
505       have_ie55=no
506     fi
507     ],
508    [AC_MSG_RESULT(no)
509     CFLAGS="$saved_CFLAGS"
510     have_ie55=no])
511 fi
512 AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
513
514 if test "${with_wintab+set}" = set && test $with_wintab != no; then
515   AC_MSG_CHECKING([for wintab.h])
516   saved_CFLAGS="$CFLAGS"
517   CFLAGS="$CFLAGS -I$with_wintab/include"
518   AC_TRY_COMPILE([#include <windows.h>
519 #include <wintab.h>], 
520    [],
521    [AC_MSG_RESULT(yes)
522     AC_MSG_CHECKING([for wntab32x.lib])
523     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
524       AC_MSG_RESULT(yes)
525       have_wintab=yes
526       AC_DEFINE(HAVE_WINTAB)
527       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
528       AC_SUBST(WINTAB_LIB)
529     else
530       AC_MSG_RESULT(no)
531       CFLAGS="$saved_cflags"
532       have_wintab=no
533     fi
534     ],
535    [AC_MSG_RESULT(no)
536     CFLAGS="$saved_cflags"
537     have_wintab=no])
538 fi
539 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
540
541 saved_cflags="$CFLAGS"
542 saved_ldflags="$LDFLAGS"
543
544
545 # Checks for header files.
546 AC_HEADER_STDC
547
548 # Checks for typedefs, structures, and compiler characteristics.
549 AC_C_CONST
550
551 # Checks for library functions.
552 AC_TYPE_SIGNAL
553 AC_FUNC_MMAP
554
555 AC_CHECK_FUNCS(getresuid)
556 AC_TYPE_UID_T
557
558 # Check if <sys/select.h> needs to be included for fd_set
559 AC_MSG_CHECKING([for fd_set])
560 AC_TRY_COMPILE([#include <sys/types.h>],
561         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
562 if test $gtk_ok = yes; then
563     AC_MSG_RESULT([yes, found in sys/types.h])
564 else
565     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
566     if test $gtk_ok = yes; then
567         AC_DEFINE(HAVE_SYS_SELECT_H)
568         AC_MSG_RESULT([yes, found in sys/select.h])
569     else
570         AC_DEFINE(NO_FD_SET)
571         AC_MSG_RESULT(no)
572     fi
573 fi
574
575 # `widechar' tests for gdki18n.h
576 AC_MSG_CHECKING(for wchar.h)
577 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
578 if test $gdk_wchar_h = yes; then
579    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
580 fi
581 AC_MSG_RESULT($gdk_wchar_h)
582
583 # Check for wctype.h (for iswalnum)
584 AC_MSG_CHECKING(for wctype.h)
585 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
586 if test $gdk_wctype_h = yes; then
587    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
588 fi
589 AC_MSG_RESULT($gdk_wctype_h)
590
591 # in Solaris 2.5, `iswalnum' is in -lw
592 GDK_WLIBS=
593 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
594
595 oLIBS="$LIBS"
596 LIBS="$LIBS $GDK_WLIBS"
597 # The following is necessary for Linux libc-5.4.38
598 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
599 AC_TRY_LINK([#include <stdlib.h>],[
600 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
601 #  ifdef HAVE_WCTYPE_H
602 #    include <wctype.h>
603 #  else
604 #    ifdef HAVE_WCHAR_H
605 #      include <wchar.h>
606 #    endif
607 #  endif
608 #else
609 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
610 #endif
611 iswalnum((wchar_t) 0);
612 ], gdk_working_wctype=yes, gdk_working_wctype=no)
613 LIBS="$oLIBS"
614
615 if test $gdk_working_wctype = no; then
616    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
617    GDK_WLIBS=
618 fi
619 AC_MSG_RESULT($gdk_working_wctype)
620 AC_SUBST(GDK_WLIBS)
621
622
623 ##################################################
624 # Checks for gdk-pixbuf
625 ##################################################
626
627 dnl ********************************************************
628 dnl * See whether we need to load our modules as .la files *
629 dnl ********************************************************
630
631 use_la_modules=false
632 case $host in
633   *-aix*) use_la_modules=true
634 esac
635
636 if $use_la_modules ; then
637    AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
638 fi
639
640
641 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
642
643 AC_ARG_ENABLE(modules,
644               [AC_HELP_STRING([--disable-modules],
645                               [disable dynamic module loading])])
646
647 dynworks=false
648 deps=
649 if test x$enable_modules = xno; then
650     AC_MSG_RESULT(no)
651 else
652     AC_MSG_RESULT(yes)
653     AC_MSG_CHECKING(whether dynamic modules work)
654     ## for loop is to strip newline 
655     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-2.0`
656     for I in $tmp; do
657         dynworks=$I
658     done
659
660     dnl Now we check to see if our libtool supports shared lib deps
661     dnl (in a rather ugly way even)
662     if $dynworks; then
663         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
664         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
665             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
666             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
667         if test "x$pixbuf_deplibs_check" = "xnone" || \
668            test "x$pixbuf_deplibs_check" = "xunknown" || \
669            test "x$pixbuf_deplibs_check" = "x"; then
670             dynworks=false
671         fi
672     fi
673
674     if $dynworks; then
675         AC_DEFINE(USE_GMODULE)
676         AC_MSG_RESULT(yes)
677     else
678         AC_MSG_RESULT(no)
679     fi
680 fi
681
682 dnl We allow people to disable image loaders explicitely, but if they don't we error
683 dnl out so that people don't accidentally build without them.
684
685 AC_ARG_WITH(libpng,
686             [AC_HELP_STRING([--without-libpng],
687                             [disable PNG loader for gdk-pixbuf])])
688 AC_ARG_WITH(libjpeg,
689             [AC_HELP_STRING([--without-libjpeg],
690                             [disable JPEG loader for gdk-pixbuf])])
691 AC_ARG_WITH(libtiff,
692             [AC_HELP_STRING([--without-libtiff],
693                             [disable TIFF loader for gdk-pixbuf])])
694
695 dnl Test for libtiff
696   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
697     AC_CHECK_LIB(tiff, TIFFReadScanline,
698       [AC_CHECK_HEADER(tiffio.h,
699         TIFF='tiff'; LIBTIFF='-ltiff',
700         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
701       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
702         [AC_CHECK_HEADER(tiffio.h,
703           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
704           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
705         [AC_CHECK_LIB(tiff34, TIFFFlushData,
706           [AC_CHECK_HEADER(tiffio.h,
707             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
708             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
709         AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
710   fi
711
712   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
713      AC_MSG_ERROR([
714 *** Checks for TIFF loader failed. You can build without it by passing 
715 *** --without-libtiff to configure but some programs using GTK+ may
716 *** not work properly])
717   fi
718
719 dnl Test for libjpeg
720   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
721     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
722       jpeg_ok=yes,
723       jpeg_ok=no
724       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
725     if test "$jpeg_ok" = yes; then
726       AC_MSG_CHECKING([for jpeglib.h])
727       AC_TRY_CPP(
728 [#include <stdio.h>
729 #undef PACKAGE
730 #undef VERSION
731 #undef HAVE_STDLIB_H
732 #include <jpeglib.h>],
733         jpeg_ok=yes,
734         jpeg_ok=no)
735       AC_MSG_RESULT($jpeg_ok)
736       if test "$jpeg_ok" = yes; then
737         LIBJPEG='-ljpeg'
738         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
739           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
740           AC_MSG_WARN(JPEG library does not support progressive saving.))
741       else
742           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
743       fi
744     fi
745   fi
746
747   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
748      AC_MSG_ERROR([
749 *** Checks for JPEG loader failed. You can build without it by passing 
750 *** --without-libjpeg to configure but some programs using GTK+ may
751 *** not work properly])
752   fi
753
754 dnl Test for libpng
755   if test x$with_libpng != xno && test -z "$LIBPNG"; then
756     AC_MSG_CHECKING(for libpng12)
757     if $PKG_CONFIG --exists libpng12 ; then
758         AC_MSG_RESULT(yes)
759         PNG='png'
760         PNG_DEP_CFLAGS_PACKAGES=libpng12
761         LIBPNG=`$PKG_CONFIG --libs libpng12`
762     else
763       AC_MSG_RESULT(no)
764       AC_CHECK_LIB(png, png_read_info,
765         [AC_CHECK_HEADER(png.h,
766           png_ok=yes,
767           png_ok=no)],
768         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
769       if test "$png_ok" = yes; then
770         AC_MSG_CHECKING([for png_structp in png.h])
771         AC_TRY_COMPILE([#include <png.h>],
772           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
773           png_ok=yes,
774           png_ok=no)
775         AC_MSG_RESULT($png_ok)
776         if test "$png_ok" = yes; then
777           PNG='png'; LIBPNG='-lpng -lz'
778         else
779           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
780         fi
781       else
782        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
783       fi
784     fi
785   fi
786
787   if test x$with_libpng != xno && test -z "$LIBPNG"; then
788      AC_MSG_ERROR([
789 *** Checks for PNG loader failed. You can build without it by passing 
790 *** --without-libpng to configure but many programs using GTK+ will
791 *** not work properly. The PNG loader is also needed if you are compiling
792 *** from CVS.])
793   fi
794
795   REBUILD_PNGS=\#
796   if test -z "$LIBPNG"; then
797      REBUILD_PNGS=
798   fi
799   AC_SUBST(REBUILD_PNGS)
800
801 AC_SUBST(LIBTIFF)
802 AC_SUBST(LIBJPEG)
803 AC_SUBST(LIBPNG)
804
805 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
806
807 #
808 # Allow building some or all gdk-pixbuf loaders included
809 #
810 AC_MSG_CHECKING(pixbuf loaders to build)
811
812 dnl due to an autoconf bug, commas in the first arg to
813 dnl AC_HELP_STRING cause problems.
814 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
815 dnl                [build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
816 AC_ARG_WITH(included_loaders,
817 [  --with-included-loaders=LOADER1,LOADER2,...
818                           build the specified loaders into gdk-pixbuf (only
819                           used if module loading disabled)])
820
821 if $dynworks; then 
822         :
823 else
824    ## if the option was specified, leave it; otherwise disable included loaders
825    if test x$with_included_loaders = xno; then
826            with_included_loaders=yes
827    fi
828 fi
829
830 all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
831 included_loaders=""
832 # If no loaders specified, include all
833 if test "x$with_included_loaders" = xyes ; then
834   included_loaders="$all_loaders"
835 else
836   included_loaders="$with_included_loaders"
837 fi
838
839 AC_MSG_RESULT($included_loaders)
840
841 INCLUDED_LOADER_OBJ=
842 INCLUDED_LOADER_DEFINE=
843
844 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
845 for loader in $included_loaders; do
846  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
847    :
848  else
849    AC_MSG_ERROR([the specified loader $loader does not exist])
850  fi
851
852  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
853  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
854 done
855 IFS="$gtk_save_ifs"
856 AC_SUBST(INCLUDED_LOADER_OBJ)
857 AC_SUBST(INCLUDED_LOADER_DEFINE)
858
859 AC_HEADER_SYS_WAIT
860
861 AC_TYPE_SIGNAL
862
863 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
864 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
865 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
866
867 if $dynworks ; then
868   STATIC_LIB_DEPS=
869   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
870     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
871   fi
872   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
873     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
874   fi
875   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
876     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
877   fi
878 else
879   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
880 fi
881
882 # Checks to see if we should compile in MMX support (there will be
883 # a runtime test when the code is actually run to see if it should
884 # be used - this just checks if we can compile it.)
885 #
886 # This code is partially taken from Mesa
887 #
888 AC_MSG_CHECKING(for x86 platform)
889 case $host_cpu in
890   i386|i486|i586|i686|i786|k6|k7)
891         use_x86_asm=yes
892         ;;
893    *)
894         use_x86_asm=no
895 esac
896 AC_MSG_RESULT($use_x86_asm)
897
898 use_mmx_asm=no
899 if test $use_x86_asm = yes; then
900     save_ac_ext=$ac_ext
901     ac_ext=S
902     
903     AC_MSG_CHECKING(compiler support for MMX)
904     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
905     if AC_TRY_EVAL(ac_compile); then
906         use_mmx_asm=yes
907     fi
908
909     rm -rf conftest*
910
911     ac_ext=$save_ac_ext
912     if test $use_mmx_asm = yes; then
913       AC_DEFINE(USE_MMX)
914       AC_MSG_RESULT(yes)
915     else
916       AC_MSG_RESULT(no)
917     fi
918 fi
919
920 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
921
922 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
923
924 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
925
926 if test $cross_compiling = yes; then
927   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
928   if test x$GDK_PIXBUF_CSOURCE = xno; then
929     AC_MSG_ERROR(Could not find a gdk-pixbuf-csource in your PATH)
930   fi
931 fi
932
933 GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
934 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
935 GDK_PIXBUF_EXTRA_CFLAGS= 
936 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
937 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
938
939 AC_SUBST(GDK_PIXBUF_PACKAGES)
940 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
941 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
942 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
943 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
944
945
946 ########################################
947 # Windowing system checks
948 ########################################
949
950 GDK_EXTRA_LIBS=$GDK_WLIBS
951 GDK_EXTRA_CFLAGS= 
952
953 FREETYPE_LIBS=
954 FREETYPE_CFLAGS=
955 if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
956   #
957   # Checks for FreeType
958   #
959   have_freetype=false
960   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
961   if test "x$FREETYPE_CONFIG" != "xno" ; then
962     FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
963     FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
964
965     gtk_save_LIBS="$LIBS"
966     LIBS="$FREETYPE_LIBS $LIBS"
967     AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
968     LIBS="$gtk_save_LIBS"
969
970     if $have_freetype ; then
971       gtk_save_cppflags="$CPPFLAGS"
972       CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
973
974       AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
975       AC_TRY_COMPILE([
976 #include <freetype/freetype.h>
977 #include FT_ERRORS_H
978     ],
979                      [(void)1;],:,have_freetype=false)
980       if $have_freetype ; then
981         AC_MSG_RESULT(yes)
982       else
983         AC_MSG_RESULT(no)
984       fi
985
986       CPPFLAGS="$gtk_save_cppflags"
987     fi
988   fi
989   AC_SUBST(FREETYPE_LIBS)
990   AC_SUBST(FREETYPE_CFLAGS)
991 fi
992
993 if test "x$gdktarget" = "xx11"; then
994   # We start off with the libraries from Pango
995
996   if $PKG_CONFIG --exists pangox ; then : ; else
997     AC_MSG_ERROR([pangox Pango backend is required for x11 target])
998   fi
999     
1000   ## be sure we also have Pango built with xft support
1001   if $PKG_CONFIG --exists pangoxft ; then
1002     PANGO_PACKAGES="pangoxft pangox"
1003     have_xft=true
1004     AC_DEFINE(HAVE_XFT)
1005     if $have_freetype ; then
1006       :
1007     else
1008       AC_MSG_ERROR([pangoxft Pango backend found but did not find freetype libraries])
1009     fi
1010   else
1011     PANGO_PACKAGES="pangox"
1012     have_xft=false
1013   fi
1014
1015   AM_CONDITIONAL(HAVE_XFT, $have_xft)
1016
1017   if $have_xft; then
1018     if $PKG_CONFIG --exists xft ; then
1019       AC_DEFINE(HAVE_XFT2, 1, [Define if we have Xft, version 2])
1020     fi
1021   fi
1022
1023   #
1024   # If Pango included the shared library dependencies from X11 in
1025   # the pkg-config output, then we use that (to avoid duplicates).
1026   # but if they were omitted to avoid binary compatibility problems
1027   # then we need to repeat the checks.
1028   #
1029   x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
1030   case "$x_libs" in
1031     *-lX11*) pango_omitted_x_deps=no ;;
1032     *)       pango_omitted_x_deps=yes ;;
1033   esac
1034
1035   x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`"
1036   x_extra_libs=
1037
1038   if test $pango_omitted_x_deps = yes ; then
1039     AC_PATH_XTRA
1040
1041     if test x$no_x = xyes ; then
1042       AC_MSG_ERROR([X development libraries not found])
1043     fi
1044
1045     x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS"
1046
1047     #
1048     # Checks for Xft/XRender
1049     #
1050     if test $have_xft = true ; then
1051       have_xft=false
1052
1053       if pkg-config --exists pangoxft '>=' 1.1.0 ; then
1054         x_libs="`pkg-config --libs xft` -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
1055         have_xft=true
1056       else
1057         gtk_save_cppflags="$CPPFLAGS"
1058         CPPFLAGS="$CPPFLAGS $x_cflags"
1059       
1060         AC_CHECK_LIB(Xrender, XRenderFindFormat, 
1061           [AC_CHECK_LIB(Xft, XftFontOpen,
1062             [AC_CHECK_HEADER(X11/Xft/XftFreetype.h,
1063               have_xft=true,:)],
1064             :,-lXrender -lXext $x_libs $FREETYPE_LIBS)]
1065           ,:,-lXext $x_libs)
1066           
1067         if $have_xft ; then
1068           x_libs="$X_LIBS -lXft -lXrender -lXext -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
1069         fi
1070
1071         CPPFLAGS="$gtk_save_cppflags"
1072       fi
1073
1074       if $have_xft ; then
1075         :
1076       else
1077         AC_MSG_ERROR([pangoxft Pango backend found, but Xft not found])
1078       fi
1079     fi
1080   fi            
1081
1082   ## Strip the .la files
1083  
1084   x_libs_for_checks=""
1085   for I in $x_libs ; do
1086     case $I in 
1087       *.la) ;;
1088       *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1089     esac
1090   done
1091
1092   # Sanity check for the X11 library
1093   AC_CHECK_LIB(X11, XOpenDisplay, :,
1094             AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
1095             $x_libs_for_checks)
1096
1097   if test "x$enable_shm" = "xyes"; then
1098     # Check for the Xext library (needed for XShm extention)
1099     AC_CHECK_LIB(Xext, XShmAttach,
1100         if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
1101           x_extra_libs="-lXext"
1102         fi,
1103         # On AIX, it is in XextSam instead, but we still need -lXext
1104         AC_CHECK_LIB(XextSam, XShmAttach, 
1105             if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
1106                x_extra_libs="-lXextSam -lXext"
1107             else
1108                x_extra_libs="-lXextSam"
1109             fi, , $x_libs_for_checks),
1110         $x_libs_for_checks)
1111   fi
1112
1113   GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1114   # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1115   GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs $x_libs"
1116
1117   # Check for Xinerama extension (Solaris impl or Xfree impl)
1118
1119   gtk_save_cppflags="$CPPFLAGS"
1120   CPPFLAGS="$CPPFLAGS $x_cflags"
1121
1122   case "$host" in
1123       *-*-solaris*)
1124           # Check for solaris
1125           use_solaris_xinerama=yes
1126           AC_CHECK_LIB(Xext, XineramaGetInfo,
1127                         use_solaris_xinerama=yes, use_solaris_xinerama=no)
1128           if test "x$use_solaris_xinerama" = "xyes"; then
1129               AC_CHECK_HEADER(X11/extensions/xinerama.h,
1130                 if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1131                     x_extra_libs="-lXext $x_extra_libs"
1132                 fi
1133                 AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1134                 AC_DEFINE(HAVE_XINERAMA), use_solaris_xinerama=no, -lXext $x_libs_for_checks)
1135           fi    
1136           AC_MSG_CHECKING(for Xinerama support on Solaris)
1137           AC_MSG_RESULT($use_solaris_xinerama);
1138           ;;
1139       *)
1140           # Check for XFree
1141           use_xfree_xinerama=yes
1142           AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1143               [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1144                   x_extra_libs="-lXinerama $x_extra_libs"   
1145                   if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1146                       x_extra_libs="-lXext $x_extra_libs"
1147                   fi
1148                   AC_DEFINE(HAVE_XFREE_XINERAMA)
1149                   AC_DEFINE(HAVE_XINERAMA), 
1150                   use_xfree_xinerama=no,
1151                   [#include <X11/Xlib.h>])],
1152               use_xfree_xinerama=no, -lXext $x_libs_for_checks)
1153           AC_MSG_CHECKING(for Xinerama support on XFree86)
1154           AC_MSG_RESULT($use_xfree_xinerama);       
1155           ;;
1156   esac
1157
1158   CPPFLAGS="$gtk_save_cppflags"
1159
1160   # Check for shaped window extension
1161
1162   AC_CHECK_LIB(Xext, XShapeCombineMask,
1163       if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1164            x_extra_libs="-lXext $x_extra_libs"
1165       fi
1166       AC_DEFINE(HAVE_SHAPE_EXT),
1167       ,
1168       $x_libs_for_checks)
1169
1170   # Check for XConvertCase (X11R6 specific)
1171
1172   AC_CHECK_LIB(X11, XConvertCase,
1173       AC_DEFINE(HAVE_XCONVERTCASE),
1174       ,
1175       $x_libs_for_checks)
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 XConvertCase check for clarity
1180
1181   have_x11r6=false
1182   AC_CHECK_LIB(X11, XAddConnectionWatch,
1183       have_x11r6=true,
1184       ,
1185       $x_libs_for_checks)
1186
1187   if $have_x11r6; then
1188     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1189   fi
1190   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1191
1192   # Check for XKB support.
1193
1194   if test "x$enable_xkb" = "xyes"; then
1195         AC_MSG_WARN(XKB support explicitly enabled)
1196         AC_DEFINE(HAVE_XKB)
1197   elif test "x$enable_xkb" = "xmaybe"; then
1198         AC_CHECK_LIB(X11, XkbQueryExtension,
1199                      AC_DEFINE(HAVE_XKB),
1200                      ,
1201                      $x_libs_for_checks)
1202   else
1203         AC_MSG_WARN(XKB support explicitly disabled)
1204   fi
1205
1206   x_cflags="$X_CFLAGS"
1207   x_ldflags="$X_LDFLAGS"
1208
1209   # set up things for XInput
1210
1211   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1212     AC_DEFINE(XINPUT_XFREE)
1213     x_extra_libs="-lXi $x_extra_libs"
1214   else
1215     AC_DEFINE(XINPUT_NONE)
1216   fi
1217
1218   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1219
1220   # Check for the RANDR extension
1221
1222   AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1223       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1224           # RANDR requires RENDER
1225           if test -z "`echo $x_extra_libs $x_libs | grep "\-lXrender" 2> /dev/null`"; then
1226               x_extra_libs="-lXrender $x_extra_libs"
1227           fi
1228           x_extra_libs="-lXrandr $x_extra_libs"
1229           AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library),
1230           :, [#include <X11/Xlib.h>])], : ,
1231        $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
1232
1233   # Xshm checks
1234
1235   if test "x$enable_shm" = "xyes"; then
1236     # Check for shared memory
1237     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1238     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1239
1240     # Check for the X shared memory extension header file
1241     have_xshm=no 
1242     AC_MSG_CHECKING(X11/extensions/XShm.h)
1243     if test "x$no_xext_lib" = "xyes"; then
1244       :
1245     else
1246       gtk_save_CFLAGS="$CFLAGS"
1247       CFLAGS="$CFLAGS $x_cflags"
1248       AC_TRY_COMPILE([
1249 #include <stdlib.h>
1250 #include <sys/types.h>
1251 #include <sys/ipc.h>
1252 #include <sys/shm.h>
1253 #include <X11/Xlib.h>
1254 #include <X11/Xutil.h>
1255 #include <X11/extensions/XShm.h>
1256 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1257       CFLAGS="$gtk_save_CFLAGS"
1258     fi
1259     AC_MSG_RESULT($have_xshm)
1260     if test $have_xshm = yes ; then
1261       AC_DEFINE(HAVE_XSHM_H)
1262     fi
1263   fi
1264
1265   GDK_EXTRA_CFLAGS=
1266   if test $pango_omitted_x_deps = yes ; then
1267     GDK_EXTRA_LIBS="$x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1268   else
1269     GDK_EXTRA_LIBS="$x_extra_libs $GDK_EXTRA_LIBS"
1270   fi
1271
1272   AM_CONDITIONAL(USE_X11, true)
1273 else
1274   AM_CONDITIONAL(HAVE_XFT, false)
1275   AM_CONDITIONAL(XINPUT_XFREE, false)
1276   AM_CONDITIONAL(USE_X11, false)
1277   AM_CONDITIONAL(HAVE_X11R6, false)
1278 fi
1279
1280 if test "x$gdktarget" = "xwin32"; then
1281   # We start off with the libraries from Pango
1282
1283   ## be sure we also have Pango built with win32 support
1284   PANGO_PACKAGES="pangowin32"
1285
1286   if test x$have_wintab = xyes; then
1287     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1288     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1289   fi
1290
1291   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1292   AM_CONDITIONAL(USE_WIN32, true)
1293 else
1294   AM_CONDITIONAL(USE_WIN32, false)
1295 fi
1296
1297 AC_SUBST(xinput_progs)
1298
1299 GDK_PIXBUF_XLIB_PACKAGES=
1300 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1301 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"
1302
1303 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1304 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1305 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1306 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1307 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1308
1309 if test "x$gdktarget" = "xlinux-fb"; then
1310   if $have_freetype ; then
1311     :
1312   else
1313     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1314   fi
1315
1316   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1317   case "$ft2_libs" in
1318     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1319     *)            pango_omitted_ft2_deps=yes ;;
1320   esac
1321
1322   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1323
1324   if test x$enable_shadowfb = xyes ; then
1325     AC_DEFINE(ENABLE_SHADOW_FB)
1326   fi
1327
1328   if test x$enable_fbmanager = xyes ; then
1329     AC_DEFINE(ENABLE_FB_MANAGER)
1330     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1331   else
1332     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1333   fi
1334   
1335   GDK_EXTRA_CFLAGS=""
1336   if test $pango_omitted_ft2_deps = yes ; then
1337     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1338   fi
1339
1340   AM_CONDITIONAL(USE_LINUX_FB, true)
1341 else
1342   AM_CONDITIONAL(USE_LINUX_FB, false)
1343   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1344 fi
1345
1346 #
1347 # Pick correct Pango packages to use
1348 #
1349
1350 if test "x$gdktarget" = "xx11"; then
1351         if $have_xft = true ; then
1352             PANGO_PACKAGES="pangoxft pangox"
1353         else
1354             PANGO_PACKAGES=pangox
1355         fi
1356 elif test "x$gdktarget" = "xwin32"; then
1357         PANGO_PACKAGES=pangowin32
1358 elif test "x$gdktarget" = "xlinux-fb"; then
1359         PANGO_PACKAGES=pangoft2
1360 else
1361         PANGO_PACKAGES=pango
1362 fi
1363
1364 # Check for Pango flags
1365
1366 AC_MSG_CHECKING(Pango flags)
1367 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1368         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1369         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1370
1371         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1372 else
1373         AC_MSG_ERROR([
1374 *** Pango not found. Pango is required to build GTK+.
1375 *** See http://www.pango.org for Pango information.
1376 *** For the framebuffer target, you will need to build 
1377 *** Pango with freetype support.
1378 ])
1379 fi
1380
1381 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1382
1383 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1384         :
1385 else
1386         gtk_save_LIBS="$LIBS"
1387         LIBS="$PANGO_LIBS $LIBS"
1388         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1389 *** Can't link to Pango. Pango is required to build
1390 *** GTK+. For more information see http://www.pango.org]))
1391         LIBS="$gtk_save_LIBS"
1392 fi
1393
1394 CFLAGS="$saved_cflags"
1395 LDFLAGS="$saved_ldflags"
1396
1397 GDK_PACKAGES=$PANGO_PACKAGES
1398 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1399 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1400
1401 #
1402 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1403 # into the pkg-config files
1404 #
1405 if test $enable_explicit_deps != yes ; then
1406   GDK_EXTRA_LIBS=
1407 fi
1408
1409 AC_SUBST(GDK_PACKAGES)
1410 AC_SUBST(GDK_EXTRA_LIBS)
1411 AC_SUBST(GDK_EXTRA_CFLAGS)
1412 AC_SUBST(GDK_DEP_LIBS)
1413 AC_SUBST(GDK_DEP_CFLAGS)
1414
1415
1416 ########################################
1417 # Check for Accessibility Toolkit flags
1418 ########################################
1419
1420 ATK_PACKAGES=atk
1421 AC_MSG_CHECKING(ATK flags)
1422 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1423         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1424         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1425
1426         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1427 else
1428         AC_MSG_ERROR([
1429 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1430 *** to build GTK+.
1431 ])
1432 fi
1433
1434 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1435         :
1436 else
1437         gtk_save_LIBS="$LIBS"
1438         LIBS="$ATK_LIBS $LIBS"
1439         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1440                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1441                 *** to build GTK+]))
1442         LIBS="$gtk_save_LIBS"
1443 fi
1444
1445 GTK_PACKAGES=atk
1446 GTK_EXTRA_LIBS=
1447 GTK_EXTRA_CFLAGS= 
1448 GTK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1449 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"
1450
1451 AC_SUBST(GTK_PACKAGES)
1452 AC_SUBST(GTK_EXTRA_LIBS)
1453 AC_SUBST(GTK_EXTRA_CFLAGS)
1454 AC_SUBST(GTK_DEP_LIBS)
1455 AC_SUBST(GTK_DEP_CFLAGS)
1456
1457
1458 AC_SUBST(GTK_DEBUG_FLAGS)
1459 AC_SUBST(GTK_XIM_FLAGS)
1460
1461 ##################################################
1462 # Checks for gtk-doc and docbook-tools
1463 ##################################################
1464
1465 GTK_DOC_CHECK([1.0])
1466
1467 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1468 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1469
1470 AC_ARG_ENABLE(man,
1471               [AC_HELP_STRING([--enable-man],
1472                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1473               enable_man=no)
1474
1475 dnl
1476 dnl Check for xsltproc
1477 dnl
1478 AC_PATH_PROG([XSLTPROC], [xsltproc])
1479 if test -z "$XSLTPROC"; then
1480   enable_man=no
1481 fi
1482
1483 dnl check for DocBook DTD and stylesheets in the local catalog.
1484 JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1485    [DocBook XML DTD V4.1.2],,enable_man=no)
1486 JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1487    [DocBook XSL Stylesheets],,enable_man=no)
1488 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1489
1490 ##################################################
1491 # Output commands
1492 ##################################################
1493
1494 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1495         outfile=gdkconfig.h-tmp
1496         cat > $outfile <<\_______EOF
1497 /* gdkconfig.h
1498  *
1499  * This is a generated file.  Please modify `configure.in'
1500  */
1501
1502 #ifndef GDKCONFIG_H
1503 #define GDKCONFIG_H
1504
1505 #ifdef __cplusplus
1506 extern "C" {
1507 #endif /* __cplusplus */
1508
1509 _______EOF
1510
1511         cat >>$outfile <<_______EOF
1512 $gdk_windowing
1513 $gdk_wc
1514 _______EOF
1515
1516         cat >>$outfile <<_______EOF
1517
1518 #ifdef __cplusplus
1519 }
1520 #endif /* __cplusplus */
1521
1522 #endif /* GDKCONFIG_H */
1523 _______EOF
1524
1525
1526         if cmp -s $outfile gdk/gdkconfig.h; then
1527           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1528           rm -f $outfile
1529         else
1530           mv $outfile gdk/gdkconfig.h
1531         fi
1532 ],[
1533 if test "x$gdktarget" = "xx11" ; then
1534   gdk_windowing='
1535 #define GDK_WINDOWING_X11'
1536 elif test "x$gdktarget" = "xwin32" ; then
1537   gdk_windowing='
1538 #define GDK_WINDOWING_WIN32'
1539 elif test "x$gdktarget" = "xlinux-fb" ; then
1540   gdk_windowing='
1541 #define GDK_WINDOWING_FB
1542 #define GDK_NATIVE_WINDOW_POINTER'
1543 fi
1544
1545 if test x$gdk_wchar_h = xyes; then
1546   gdk_wc='
1547 #define GDK_HAVE_WCHAR_H 1'
1548 fi
1549 if test x$gdk_wctype_h = xyes; then
1550   gdk_wc="\$gdk_wc
1551 #define GDK_HAVE_WCTYPE_H 1"
1552 fi
1553 if test x$gdk_working_wctype = xno; then
1554   gdk_wc="\$gdk_wc
1555 #define GDK_HAVE_BROKEN_WCTYPE 1"
1556 fi
1557
1558
1559 ])
1560
1561 AC_PATH_PROG(SGML2HTML, sgml2html, no)
1562 AM_CONDITIONAL(HAVE_SGML2HTML, test x$SGML2HTML != xno)
1563
1564 AC_CONFIG_FILES([
1565 config.h.win32
1566 gtk-zip.sh
1567 Makefile
1568 gdk-pixbuf-2.0.pc
1569 gdk-2.0.pc
1570 gtk+-2.0.pc
1571 gdk-pixbuf-2.0-uninstalled.pc
1572 gdk-2.0-uninstalled.pc
1573 gtk+-2.0-uninstalled.pc
1574 m4macros/Makefile
1575 po/Makefile.in
1576 build/Makefile
1577 build/win32/Makefile
1578 build/win32/dirent/Makefile
1579 demos/Makefile
1580 demos/gtk-demo/Makefile
1581 demos/gtk-demo/geninclude.pl
1582 tests/Makefile
1583 docs/Makefile
1584 docs/reference/Makefile
1585 docs/reference/gdk-pixbuf/Makefile
1586 docs/reference/gdk-pixbuf/version.xml
1587 docs/reference/gdk/Makefile
1588 docs/reference/gdk/version.xml
1589 docs/reference/gtk/Makefile
1590 docs/reference/gtk/version.xml
1591 docs/faq/Makefile
1592 docs/tutorial/Makefile
1593 gdk-pixbuf/Makefile
1594 gdk-pixbuf/gdk_pixbuf.rc
1595 gdk-pixbuf/gdk-pixbuf-features.h
1596 gdk-pixbuf/pixops/Makefile
1597 gdk/Makefile
1598 gdk/x11/Makefile
1599 gdk/win32/Makefile
1600 gdk/win32/rc/Makefile
1601 gdk/win32/rc/gdk.rc
1602 gdk/linux-fb/Makefile
1603 gtk/Makefile
1604 gtk/makefile.msc
1605 gtk/gtkversion.h
1606 gtk/gtk-win32.rc
1607 gtk/stock-icons/Makefile
1608 gtk/theme-bits/Makefile
1609 modules/Makefile
1610 modules/input/Makefile
1611 contrib/Makefile
1612 contrib/gdk-pixbuf-xlib/Makefile
1613 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1614 ])
1615
1616 AC_OUTPUT