]> Pileus Git - ~andy/gtk/blob - configure.in
Added "tk" to ALL_LINGUAS. Added Turkmen translation by Gurban Mühemmet
[~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], [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],
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.4.0])
33 m4_define([pango_required_version], [1.4.0])
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 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, use_solaris_xinerama=no)
1103           if test "x$use_solaris_xinerama" = "xyes"; then
1104               AC_CHECK_HEADER(X11/extensions/xinerama.h,
1105                 [GTK_ADD_LIB(x_extra_libs,Xext)
1106                 AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1107                 AC_DEFINE(HAVE_XINERAMA)], use_solaris_xinerama=no, -lXext $x_libs_for_checks)
1108           fi    
1109           AC_MSG_CHECKING(for Xinerama support on Solaris)
1110           AC_MSG_RESULT($use_solaris_xinerama);
1111           ;;
1112       *)
1113           # Check for XFree
1114           use_xfree_xinerama=yes
1115           AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1116               [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1117                   [GTK_ADD_LIB(x_extra_libs,Xext)
1118                   GTK_ADD_LIB(x_extra_libs,Xinerama)
1119                   AC_DEFINE(HAVE_XFREE_XINERAMA)
1120                   AC_DEFINE(HAVE_XINERAMA)], 
1121                   use_xfree_xinerama=no,
1122                   [#include <X11/Xlib.h>])],
1123               use_xfree_xinerama=no, -lXext $x_libs_for_checks)
1124           AC_MSG_CHECKING(for Xinerama support on XFree86)
1125           AC_MSG_RESULT($use_xfree_xinerama);       
1126           ;;
1127   esac
1128
1129   CPPFLAGS="$gtk_save_cppflags"
1130
1131   # Check for shaped window extension
1132
1133   AC_CHECK_LIB(Xext, XShapeCombineMask,
1134       [GTK_ADD_LIB(x_extra_libs,Xext)
1135        AC_DEFINE(HAVE_SHAPE_EXT)],
1136       ,
1137       $x_libs_for_checks)
1138
1139   # Check for XConvertCase (X11R6 specific)
1140
1141   AC_CHECK_LIB(X11, XConvertCase,
1142       AC_DEFINE(HAVE_XCONVERTCASE),
1143       ,
1144       $x_libs_for_checks)
1145
1146   # Generic X11R6 check needed for XIM support; we could
1147   # probably use this to replace the above, but we'll
1148   # leave the separate XConvertCase check for clarity
1149
1150   have_x11r6=false
1151   AC_CHECK_LIB(X11, XAddConnectionWatch,
1152       have_x11r6=true,
1153       ,
1154       $x_libs_for_checks)
1155
1156   if $have_x11r6; then
1157     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1158   fi
1159   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1160
1161   # Check for XKB support.
1162
1163   if test "x$enable_xkb" = "xyes"; then
1164         AC_MSG_WARN(XKB support explicitly enabled)
1165         AC_DEFINE(HAVE_XKB)
1166   elif test "x$enable_xkb" = "xmaybe"; then
1167         AC_CHECK_LIB(X11, XkbQueryExtension,
1168                      AC_DEFINE(HAVE_XKB),
1169                      ,
1170                      $x_libs_for_checks)
1171   else
1172         AC_MSG_WARN(XKB support explicitly disabled)
1173   fi
1174
1175   x_cflags="$X_CFLAGS"
1176   x_ldflags="$X_LDFLAGS"
1177
1178   # set up things for XInput
1179
1180   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1181     AC_DEFINE(XINPUT_XFREE)
1182     GTK_ADD_LIB(x_extra_libs, Xi)
1183   else
1184     AC_DEFINE(XINPUT_NONE)
1185   fi
1186
1187   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1188
1189   # Check for the RANDR extension
1190
1191   AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1192       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1193           # RANDR requires RENDER
1194           [GTK_ADD_LIB(x_extra_libs, Xrender)
1195           GTK_ADD_LIB(x_extra_libs, Xrandr)
1196           AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)],
1197           :, [#include <X11/Xlib.h>])], : ,
1198        $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
1199
1200   # Checks for Xcursor library
1201   
1202   have_xcursor=false
1203   PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)
1204
1205   if $have_xcursor ; then
1206     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1207     GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags xcursor` $GDK_EXTRA_CFLAGS"
1208     GDK_EXTRA_LIBS="`$PKG_CONFIG --libs xcursor` $GDK_EXTRA_LIBS"
1209   fi
1210
1211   # Checks for XFixes extension
1212   
1213   have_xfixes=false
1214   PKG_CHECK_MODULES(XFIXES, xfixes, have_xfixes=true, :)
1215
1216   if $have_xfixes ; then
1217     AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
1218     GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags xfixes` $GDK_EXTRA_CFLAGS"
1219     GDK_EXTRA_LIBS="`$PKG_CONFIG --libs xfixes` $GDK_EXTRA_LIBS"
1220   fi
1221     
1222   # Xshm checks
1223
1224   if test "x$enable_shm" = "xyes"; then
1225     # Check for shared memory
1226     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1227     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1228
1229     # Check for the X shared memory extension header file
1230     have_xshm=no 
1231     AC_MSG_CHECKING(X11/extensions/XShm.h)
1232     if test "x$no_xext_lib" = "xyes"; then
1233       :
1234     else
1235       gtk_save_CFLAGS="$CFLAGS"
1236       CFLAGS="$CFLAGS $x_cflags"
1237       AC_TRY_COMPILE([
1238 #include <stdlib.h>
1239 #include <sys/types.h>
1240 #include <sys/ipc.h>
1241 #include <sys/shm.h>
1242 #include <X11/Xlib.h>
1243 #include <X11/Xutil.h>
1244 #include <X11/extensions/XShm.h>
1245 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1246       CFLAGS="$gtk_save_CFLAGS"
1247     fi
1248     AC_MSG_RESULT($have_xshm)
1249     if test $have_xshm = yes ; then
1250       AC_DEFINE(HAVE_XSHM_H)
1251     fi
1252   fi
1253
1254   if test $pango_omitted_x_deps = yes ; then
1255     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1256   else
1257     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $GDK_EXTRA_LIBS"
1258   fi
1259
1260   AM_CONDITIONAL(USE_X11, true)
1261 else
1262   AM_CONDITIONAL(XINPUT_XFREE, false)
1263   AM_CONDITIONAL(USE_X11, false)
1264   AM_CONDITIONAL(HAVE_X11R6, false)
1265 fi
1266
1267 if test "x$gdktarget" = "xwin32"; then
1268   # We start off with the libraries from Pango
1269
1270   if test x$have_wintab = xyes; then
1271     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1272     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1273   fi
1274
1275   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1276   AM_CONDITIONAL(USE_WIN32, true)
1277 else
1278   AM_CONDITIONAL(USE_WIN32, false)
1279 fi
1280
1281 GDK_PIXBUF_XLIB_PACKAGES=
1282 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1283 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"
1284
1285 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1286 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1287 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1288 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1289 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1290
1291 if test "x$gdktarget" = "xlinux-fb"; then
1292   if $have_freetype ; then
1293     :
1294   else
1295     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1296   fi
1297
1298   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1299   case "$ft2_libs" in
1300     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1301     *)            pango_omitted_ft2_deps=yes ;;
1302   esac
1303
1304   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1305
1306   if test x$enable_shadowfb = xyes ; then
1307     AC_DEFINE(ENABLE_SHADOW_FB)
1308   fi
1309
1310   if test x$enable_fbmanager = xyes ; then
1311     AC_DEFINE(ENABLE_FB_MANAGER)
1312     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1313   else
1314     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1315   fi
1316   
1317   if test $pango_omitted_ft2_deps = yes ; then
1318     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1319   fi
1320
1321   AM_CONDITIONAL(USE_LINUX_FB, true)
1322 else
1323   AM_CONDITIONAL(USE_LINUX_FB, false)
1324   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1325 fi
1326
1327 #
1328 # Pick correct Pango packages to use
1329 #
1330
1331 if test "x$gdktarget" = "xx11"; then
1332         PANGO_PACKAGES=pangoxft
1333         
1334         # We no longer use pangox, but if we find it, we link to it 
1335         # for binary compatibility.
1336         if $PKG_CONFIG --exists pangox ; then
1337                 PANGO_PACKAGES="$PANGO_PACKAGES pangox"
1338         fi
1339 elif test "x$gdktarget" = "xwin32"; then
1340         PANGO_PACKAGES=pangowin32
1341 elif test "x$gdktarget" = "xlinux-fb"; then
1342         PANGO_PACKAGES=pangoft2
1343 else
1344         PANGO_PACKAGES=pango
1345 fi
1346
1347 # Check for Pango flags
1348
1349 AC_MSG_CHECKING(Pango flags)
1350 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1351         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1352         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1353
1354         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1355 else
1356         AC_MSG_ERROR([
1357 *** Pango not found. Pango is required to build GTK+.
1358 *** See http://www.pango.org for Pango information.
1359 *** For the framebuffer target, you will need to build 
1360 *** Pango with freetype support.
1361 ])
1362 fi
1363
1364 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1365
1366 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1367         :
1368 else
1369         gtk_save_LIBS="$LIBS"
1370         LIBS="$PANGO_LIBS $LIBS"
1371         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1372 *** Can't link to Pango. Pango is required to build
1373 *** GTK+. For more information see http://www.pango.org]))
1374         LIBS="$gtk_save_LIBS"
1375 fi
1376
1377 CFLAGS="$saved_cflags"
1378 LDFLAGS="$saved_ldflags"
1379
1380 GDK_PACKAGES="$PANGO_PACKAGES"
1381 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1382 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1383
1384 #
1385 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1386 # into the pkg-config files
1387 #
1388 if test $enable_explicit_deps != yes ; then
1389   GDK_EXTRA_LIBS=
1390 fi
1391
1392 AC_SUBST(GDK_PACKAGES)
1393 AC_SUBST(GDK_EXTRA_LIBS)
1394 AC_SUBST(GDK_EXTRA_CFLAGS)
1395 AC_SUBST(GDK_DEP_LIBS)
1396 AC_SUBST(GDK_DEP_CFLAGS)
1397
1398
1399 ########################################
1400 # Check for Accessibility Toolkit flags
1401 ########################################
1402
1403 ATK_PACKAGES=atk
1404 AC_MSG_CHECKING(ATK flags)
1405 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1406         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1407         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1408
1409         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1410 else
1411         AC_MSG_ERROR([
1412 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1413 *** to build GTK+.
1414 ])
1415 fi
1416
1417 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1418         :
1419 else
1420         gtk_save_LIBS="$LIBS"
1421         LIBS="$ATK_LIBS $LIBS"
1422         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1423                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1424                 *** to build GTK+]))
1425         LIBS="$gtk_save_LIBS"
1426 fi
1427
1428 GTK_PACKAGES=atk
1429 GTK_EXTRA_LIBS=
1430 GTK_EXTRA_CFLAGS= 
1431 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"
1432 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"
1433
1434 AC_SUBST(GTK_PACKAGES)
1435 AC_SUBST(GTK_EXTRA_LIBS)
1436 AC_SUBST(GTK_EXTRA_CFLAGS)
1437 AC_SUBST(GTK_DEP_LIBS)
1438 AC_SUBST(GTK_DEP_CFLAGS)
1439
1440
1441 AC_SUBST(GTK_DEBUG_FLAGS)
1442 AC_SUBST(GTK_XIM_FLAGS)
1443
1444 ################################################################
1445 # Strip -export-dynamic from the link lines of various libraries
1446 ################################################################
1447
1448 #
1449 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1450 #  but this flag is only meaningful for executables. For libraries
1451 #  the effect is undefined; what it causes on Linux is that the
1452 #  export list from -export-symbols-regex is ignored and everything
1453 #  is exported
1454 #       
1455 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1456 if test -n "$export_dynamic"; then
1457   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1458   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1459   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1460   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1461 fi
1462
1463
1464 ##################################################
1465 # Checks for gtk-doc and docbook-tools
1466 ##################################################
1467
1468 GTK_DOC_CHECK([1.0])
1469
1470 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1471 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1472
1473 AC_ARG_ENABLE(man,
1474               [AC_HELP_STRING([--enable-man],
1475                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1476               enable_man=no)
1477
1478 if test "${enable_man}" != no; then
1479   dnl
1480   dnl Check for xsltproc
1481   dnl
1482   AC_PATH_PROG([XSLTPROC], [xsltproc])
1483   if test -z "$XSLTPROC"; then
1484     enable_man=no
1485   fi
1486
1487   dnl check for DocBook DTD and stylesheets in the local catalog.
1488   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1489      [DocBook XML DTD V4.1.2],,enable_man=no)
1490   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1491      [DocBook XSL Stylesheets],,enable_man=no)
1492 fi
1493
1494 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1495
1496 ##################################################
1497 # Output commands
1498 ##################################################
1499
1500 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1501         outfile=gdkconfig.h-tmp
1502         cat > $outfile <<\_______EOF
1503 /* gdkconfig.h
1504  *
1505  * This is a generated file.  Please modify `configure.in'
1506  */
1507
1508 #ifndef GDKCONFIG_H
1509 #define GDKCONFIG_H
1510
1511 #ifdef __cplusplus
1512 extern "C" {
1513 #endif /* __cplusplus */
1514
1515 _______EOF
1516
1517         cat >>$outfile <<_______EOF
1518 $gdk_windowing
1519 $gdk_wc
1520 _______EOF
1521
1522         cat >>$outfile <<_______EOF
1523
1524 #ifdef __cplusplus
1525 }
1526 #endif /* __cplusplus */
1527
1528 #endif /* GDKCONFIG_H */
1529 _______EOF
1530
1531
1532         if cmp -s $outfile gdk/gdkconfig.h; then
1533           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1534           rm -f $outfile
1535         else
1536           mv $outfile gdk/gdkconfig.h
1537         fi
1538 ],[
1539 if test "x$gdktarget" = "xx11" ; then
1540   gdk_windowing='
1541 #define GDK_WINDOWING_X11'
1542 elif test "x$gdktarget" = "xwin32" ; then
1543   gdk_windowing='
1544 #define GDK_WINDOWING_WIN32'
1545 elif test "x$gdktarget" = "xlinux-fb" ; then
1546   gdk_windowing='
1547 #define GDK_WINDOWING_FB
1548 #define GDK_NATIVE_WINDOW_POINTER'
1549 fi
1550
1551 if test x$gdk_wchar_h = xyes; then
1552   gdk_wc='
1553 #define GDK_HAVE_WCHAR_H 1'
1554 fi
1555 if test x$gdk_wctype_h = xyes; then
1556   gdk_wc="\$gdk_wc
1557 #define GDK_HAVE_WCTYPE_H 1"
1558 fi
1559 if test x$gdk_working_wctype = xno; then
1560   gdk_wc="\$gdk_wc
1561 #define GDK_HAVE_BROKEN_WCTYPE 1"
1562 fi
1563
1564
1565 ])
1566
1567 AC_CONFIG_FILES([
1568 config.h.win32
1569 gtk-zip.sh
1570 Makefile
1571 gdk-pixbuf-2.0.pc
1572 gdk-2.0.pc
1573 gtk+-2.0.pc
1574 gdk-pixbuf-2.0-uninstalled.pc
1575 gdk-2.0-uninstalled.pc
1576 gtk+-2.0-uninstalled.pc
1577 m4macros/Makefile
1578 po/Makefile.in
1579 po-properties/Makefile.in
1580 build/Makefile
1581 build/win32/Makefile
1582 build/win32/dirent/Makefile
1583 demos/Makefile
1584 demos/gtk-demo/Makefile
1585 demos/gtk-demo/geninclude.pl
1586 tests/Makefile
1587 docs/Makefile
1588 docs/reference/Makefile
1589 docs/reference/gdk-pixbuf/Makefile
1590 docs/reference/gdk-pixbuf/version.xml
1591 docs/reference/gdk/Makefile
1592 docs/reference/gdk/version.xml
1593 docs/reference/gtk/Makefile
1594 docs/reference/gtk/version.xml
1595 docs/faq/Makefile
1596 docs/tutorial/Makefile
1597 gdk-pixbuf/Makefile
1598 gdk-pixbuf/gdk_pixbuf.rc
1599 gdk-pixbuf/gdk-pixbuf-features.h
1600 gdk-pixbuf/pixops/Makefile
1601 gdk/Makefile
1602 gdk/x11/Makefile
1603 gdk/win32/Makefile
1604 gdk/win32/rc/Makefile
1605 gdk/win32/rc/gdk.rc
1606 gdk/linux-fb/Makefile
1607 gtk/Makefile
1608 gtk/makefile.msc
1609 gtk/gtkversion.h
1610 gtk/gtk-win32.rc
1611 gtk/stock-icons/Makefile
1612 gtk/theme-bits/Makefile
1613 gtk/xdgmime/Makefile
1614 modules/Makefile
1615 modules/input/Makefile
1616 contrib/Makefile
1617 contrib/gdk-pixbuf-xlib/Makefile
1618 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1619 ])
1620
1621 AC_OUTPUT