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