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