]> Pileus Git - ~andy/gtk/blob - configure.in
6afe33f9008f3d8fdda2f4e35d5236f392a01730
[~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=2
35 GTK_MICRO_VERSION=0
36 GTK_INTERFACE_AGE=0
37 GTK_BINARY_AGE=200
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=2.2.0
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.4
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 lv mn 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_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
397
398 dnl The DU4 header files don't provide library prototypes unless 
399 dnl -std1 is given to the native cc.
400 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
401
402 gtk_save_LIBS=$LIBS
403 LIBS="$LIBS -lm"
404 AC_TRY_RUN([#include <math.h>
405              int main (void) { return (log(1) != log(1.)); }],
406      AC_MSG_RESULT(none needed),
407      gtk_save_CFLAGS="$CFLAGS"
408      CFLAGS="$CFLAGS -std1"
409      AC_TRY_RUN([#include <math.h>
410                  int main (void) { return (log(1) != log(1.)); }],
411          AC_MSG_RESULT(-std1),
412          AC_MSG_RESULT()
413          CFLAGS="$gtk_save_CFLAGS"
414          AC_MSG_WARN(
415                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
416          true
417      ),
418      AC_MSG_RESULT(none needed)
419 )
420 LIBS=$gtk_save_LIBS
421
422 AC_MSG_CHECKING(for the BeOS)
423 case $host in
424   *-*-beos*)
425     AC_MSG_RESULT(yes)
426     MATH_LIB=
427   ;;
428   *)
429     AC_MSG_RESULT(no)
430   ;;
431 esac
432
433 dnl NeXTStep cc seems to need this
434 AC_MSG_CHECKING([for extra flags for POSIX compliance])
435 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
436   AC_MSG_RESULT(none needed),
437   gtk_save_CFLAGS="$CFLAGS"
438   CFLAGS="$CFLAGS -posix"
439   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
440     AC_MSG_RESULT(-posix),
441     AC_MSG_RESULT()
442     CFLAGS="$gtk_save_CFLAGS"
443     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
444
445 #
446 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
447
448
449 GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
450
451 AM_PATH_GLIB_2_0($GLIB_REQUIRED_VERSION, :,
452   AC_MSG_ERROR([
453 *** GLIB $GLIB_REQUIRED_VERSION or better is required. The latest version of 
454 *** GLIB is always available from ftp://ftp.gtk.org/.]),
455   gobject gmodule gthread)
456
457 dnl
458 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
459 dnl
460 gtk_save_LIBS=$LIBS
461 LIBS="$LIBS $GLIB_LIBS"
462 AC_CHECK_FUNCS(bind_textdomain_codeset)
463 LIBS=$gtk_save_LIBS
464
465 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
466 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
467 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
468
469 if test "${with_ie55+set}" = set && test $with_ie55 != no; then
470   AC_MSG_CHECKING([for dimm.h])
471   saved_CFLAGS="$CFLAGS"
472   CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
473   AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
474 #ifdef __GNUC__
475 #define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
476 #define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
477 #endif
478 #include <windows.h>
479 #include <objbase.h>
480 #include <imm.h>
481 #ifdef __GNUC__
482 #undef IMEMENUITEMINFOA
483 #undef IMEMENUITEMINFOW
484 #endif
485 #include <dimm.h>
486 ],
487    [],
488    [AC_MSG_RESULT(yes)
489     AC_MSG_CHECKING([for IE55 uuid.lib])
490     if test -f $with_ie55/Lib/uuid.lib ; then
491       AC_MSG_RESULT(yes)
492       have_ie55=yes
493       AC_DEFINE(HAVE_DIMM_H)
494       IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
495       AC_SUBST(IE55_UUID_LIB)
496     else
497       AC_MSG_RESULT(no)
498       CFLAGS="$saved_CFLAGS"
499       have_ie55=no
500     fi
501     ],
502    [AC_MSG_RESULT(no)
503     CFLAGS="$saved_CFLAGS"
504     have_ie55=no])
505 fi
506 AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
507
508 if test "${with_wintab+set}" = set && test $with_wintab != no; then
509   AC_MSG_CHECKING([for wintab.h])
510   saved_CFLAGS="$CFLAGS"
511   CFLAGS="$CFLAGS -I$with_wintab/include"
512   AC_TRY_COMPILE([#include <windows.h>
513 #include <wintab.h>], 
514    [],
515    [AC_MSG_RESULT(yes)
516     AC_MSG_CHECKING([for wntab32x.lib])
517     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
518       AC_MSG_RESULT(yes)
519       have_wintab=yes
520       AC_DEFINE(HAVE_WINTAB)
521       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
522       AC_SUBST(WINTAB_LIB)
523     else
524       AC_MSG_RESULT(no)
525       CFLAGS="$saved_cflags"
526       have_wintab=no
527     fi
528     ],
529    [AC_MSG_RESULT(no)
530     CFLAGS="$saved_cflags"
531     have_wintab=no])
532 fi
533 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
534
535 saved_cflags="$CFLAGS"
536 saved_ldflags="$LDFLAGS"
537
538
539 # Checks for header files.
540 AC_HEADER_STDC
541
542 # Checks for typedefs, structures, and compiler characteristics.
543 AC_C_CONST
544
545 # Checks for library functions.
546 AC_TYPE_SIGNAL
547 AC_FUNC_MMAP
548
549 AC_CHECK_FUNCS(getresuid)
550 AC_TYPE_UID_T
551
552 # Check if <sys/select.h> needs to be included for fd_set
553 AC_MSG_CHECKING([for fd_set])
554 AC_TRY_COMPILE([#include <sys/types.h>],
555         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
556 if test $gtk_ok = yes; then
557     AC_MSG_RESULT([yes, found in sys/types.h])
558 else
559     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
560     if test $gtk_ok = yes; then
561         AC_DEFINE(HAVE_SYS_SELECT_H)
562         AC_MSG_RESULT([yes, found in sys/select.h])
563     else
564         AC_DEFINE(NO_FD_SET)
565         AC_MSG_RESULT(no)
566     fi
567 fi
568
569 # `widechar' tests for gdki18n.h
570 AC_MSG_CHECKING(for wchar.h)
571 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
572 if test $gdk_wchar_h = yes; then
573    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
574 fi
575 AC_MSG_RESULT($gdk_wchar_h)
576
577 # Check for wctype.h (for iswalnum)
578 AC_MSG_CHECKING(for wctype.h)
579 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
580 if test $gdk_wctype_h = yes; then
581    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
582 fi
583 AC_MSG_RESULT($gdk_wctype_h)
584
585 # in Solaris 2.5, `iswalnum' is in -lw
586 GDK_WLIBS=
587 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
588
589 oLIBS="$LIBS"
590 LIBS="$LIBS $GDK_WLIBS"
591 # The following is necessary for Linux libc-5.4.38
592 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
593 AC_TRY_LINK([#include <stdlib.h>],[
594 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
595 #  ifdef HAVE_WCTYPE_H
596 #    include <wctype.h>
597 #  else
598 #    ifdef HAVE_WCHAR_H
599 #      include <wchar.h>
600 #    endif
601 #  endif
602 #else
603 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
604 #endif
605 iswalnum((wchar_t) 0);
606 ], gdk_working_wctype=yes, gdk_working_wctype=no)
607 LIBS="$oLIBS"
608
609 if test $gdk_working_wctype = no; then
610    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
611    GDK_WLIBS=
612 fi
613 AC_MSG_RESULT($gdk_working_wctype)
614 AC_SUBST(GDK_WLIBS)
615
616
617 ##################################################
618 # Checks for gdk-pixbuf
619 ##################################################
620
621 dnl ********************************************************
622 dnl * See whether we need to load our modules as .la files *
623 dnl ********************************************************
624
625 use_la_modules=false
626 case $host in
627   *-aix*) use_la_modules=true
628 esac
629
630 if $use_la_modules ; then
631    AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
632 fi
633
634
635 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
636
637 AC_ARG_ENABLE(modules, [  --disable-modules       disable dynamic module loading])
638
639 dynworks=false
640 deps=
641 if test x$enable_modules = xno; then
642     AC_MSG_RESULT(no)
643 else
644     AC_MSG_RESULT(yes)
645     AC_MSG_CHECKING(whether dynamic modules work)
646     ## for loop is to strip newline 
647     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-2.0`
648     for I in $tmp; do
649         dynworks=$I
650     done
651
652     dnl Now we check to see if our libtool supports shared lib deps
653     dnl (in a rather ugly way even)
654     if $dynworks; then
655         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
656         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
657             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
658             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
659         if test "x$pixbuf_deplibs_check" = "xnone" || \
660            test "x$pixbuf_deplibs_check" = "xunknown" || \
661            test "x$pixbuf_deplibs_check" = "x"; then
662             dynworks=false
663         fi
664     fi
665
666     if $dynworks; then
667         AC_DEFINE(USE_GMODULE)
668         AC_MSG_RESULT(yes)
669     else
670         AC_MSG_RESULT(no)
671     fi
672 fi
673
674 dnl We allow people to disable image loaders explicitely, but if they don't we error
675 dnl out so that people don't accidentally build without them.
676
677 AC_ARG_WITH(libpng,  [  --without-libpng          disable PNG loader for gdk-pixbuf])
678 AC_ARG_WITH(libjpeg, [  --without-libjpeg         disable JPEG loader for gdk-pixbuf])
679 AC_ARG_WITH(libtiff, [  --without-libtiff         disable TIFF loader for gdk-pixbuf])
680
681 dnl Test for libtiff
682   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
683     AC_CHECK_LIB(tiff, TIFFReadScanline,
684       [AC_CHECK_HEADER(tiffio.h,
685         TIFF='tiff'; LIBTIFF='-ltiff',
686         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
687       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
688         [AC_CHECK_HEADER(tiffio.h,
689           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
690           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
691         [AC_CHECK_LIB(tiff34, TIFFFlushData,
692           [AC_CHECK_HEADER(tiffio.h,
693             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
694             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
695         AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
696   fi
697
698   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
699      AC_MSG_ERROR([
700 *** Checks for TIFF loader failed. You can build without it by passing 
701 *** --without-libtiff to configure but some programs using GTK+ may
702 *** not work properly])
703   fi
704
705 dnl Test for libjpeg
706   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
707     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
708       jpeg_ok=yes,
709       jpeg_ok=no
710       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
711     if test "$jpeg_ok" = yes; then
712       AC_MSG_CHECKING([for jpeglib.h])
713       AC_TRY_CPP(
714 [#include <stdio.h>
715 #undef PACKAGE
716 #undef VERSION
717 #undef HAVE_STDLIB_H
718 #include <jpeglib.h>],
719         jpeg_ok=yes,
720         jpeg_ok=no)
721       AC_MSG_RESULT($jpeg_ok)
722       if test "$jpeg_ok" = yes; then
723         LIBJPEG='-ljpeg'
724         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
725           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
726           AC_MSG_WARN(JPEG library does not support progressive saving.))
727       else
728           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
729       fi
730     fi
731   fi
732
733   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
734      AC_MSG_ERROR([
735 *** Checks for JPEG loader failed. You can build without it by passing 
736 *** --without-libjpeg to configure but some programs using GTK+ may
737 *** not work properly])
738   fi
739
740 dnl Test for libpng
741   if test x$with_libpng != xno && test -z "$LIBPNG"; then
742     AC_MSG_CHECKING(for libpng12)
743     if $PKG_CONFIG --exists libpng12 ; then
744         AC_MSG_RESULT(yes)
745         PNG='png'
746         PNG_DEP_CFLAGS_PACKAGES=libpng12
747         LIBPNG=`$PKG_CONFIG --libs libpng12`
748     else
749       AC_MSG_RESULT(no)
750       AC_CHECK_LIB(png, png_read_info,
751         [AC_CHECK_HEADER(png.h,
752           png_ok=yes,
753           png_ok=no)],
754         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
755       if test "$png_ok" = yes; then
756         AC_MSG_CHECKING([for png_structp in png.h])
757         AC_TRY_COMPILE([#include <png.h>],
758           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
759           png_ok=yes,
760           png_ok=no)
761         AC_MSG_RESULT($png_ok)
762         if test "$png_ok" = yes; then
763           PNG='png'; LIBPNG='-lpng -lz'
764         else
765           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
766         fi
767       else
768        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
769       fi
770     fi
771   fi
772
773   if test x$with_libpng != xno && test -z "$LIBPNG"; then
774      AC_MSG_ERROR([
775 *** Checks for PNG loader failed. You can build without it by passing 
776 *** --without-libpng to configure but many programs using GTK+ will
777 *** not work properly. The PNG loader is also needed if you are compiling
778 *** from CVS.])
779   fi
780
781   REBUILD_PNGS=\#
782   if test -z "$LIBPNG"; then
783      REBUILD_PNGS=
784   fi
785   AC_SUBST(REBUILD_PNGS)
786
787 AC_SUBST(LIBTIFF)
788 AC_SUBST(LIBJPEG)
789 AC_SUBST(LIBPNG)
790
791 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
792
793 #
794 # Allow building some or all gdk-pixbuf loaders included
795 #
796 AC_MSG_CHECKING(pixbuf loaders to build)
797
798 AC_ARG_WITH(included_loaders, [  --with-included-loaders=LOADER1,LOADER2,...  build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
799
800 if $dynworks; then 
801         :
802 else
803    ## if the option was specified, leave it; otherwise disable included loaders
804    if test x$with_included_loaders = xno; then
805            with_included_loaders=yes
806    fi
807 fi
808
809 all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga"
810 included_loaders=""
811 # If no loaders specified, include all
812 if test "x$with_included_loaders" = xyes ; then
813   included_loaders="$all_loaders"
814 else
815   included_loaders="$with_included_loaders"
816 fi
817
818 AC_MSG_RESULT($included_loaders)
819
820 INCLUDED_LOADER_OBJ=
821 INCLUDED_LOADER_DEFINE=
822
823 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
824 for loader in $included_loaders; do
825  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
826    :
827  else
828    AC_MSG_ERROR([the specified loader $loader does not exist])
829  fi
830
831  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
832  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
833 done
834 IFS="$gtk_save_ifs"
835 AC_SUBST(INCLUDED_LOADER_OBJ)
836 AC_SUBST(INCLUDED_LOADER_DEFINE)
837
838 AC_HEADER_SYS_WAIT
839
840 AC_TYPE_SIGNAL
841
842 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
843 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
844 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
845
846 if $dynworks ; then
847   STATIC_LIB_DEPS=
848   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
849     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
850   fi
851   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
852     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
853   fi
854   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
855     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
856   fi
857 else
858   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
859 fi
860
861 # Checks to see if we should compile in MMX support (there will be
862 # a runtime test when the code is actually run to see if it should
863 # be used - this just checks if we can compile it.)
864 #
865 # This code is partially taken from Mesa
866 #
867 AC_MSG_CHECKING(for x86 platform)
868 case $host_cpu in
869   i386|i486|i586|i686|i786|k6|k7)
870         use_x86_asm=yes
871         ;;
872    *)
873         use_x86_asm=no
874 esac
875 AC_MSG_RESULT($use_x86_asm)
876
877 use_mmx_asm=no
878 if test $use_x86_asm = yes; then
879     save_ac_ext=$ac_ext
880     ac_ext=S
881     
882     AC_MSG_CHECKING(compiler support for MMX)
883     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
884     if AC_TRY_EVAL(ac_compile); then
885         use_mmx_asm=yes
886     fi
887
888     rm -rf conftest*
889
890     ac_ext=$save_ac_ext
891     if test $use_mmx_asm = yes; then
892       AC_DEFINE(USE_MMX)
893       AC_MSG_RESULT(yes)
894     else
895       AC_MSG_RESULT(no)
896     fi
897 fi
898
899 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
900
901 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
902
903 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
904
905 if test $cross_compiling = yes; then
906   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
907   if test x$GDK_PIXBUF_CSOURCE = xno; then
908     AC_MSG_ERROR(Could not find a gdk-pixbuf-csource in your PATH)
909   fi
910 fi
911
912 GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
913 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
914 GDK_PIXBUF_EXTRA_CFLAGS= 
915 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
916 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
917
918 AC_SUBST(GDK_PIXBUF_PACKAGES)
919 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
920 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
921 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
922 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
923
924
925 ########################################
926 # Windowing system checks
927 ########################################
928
929 GDK_EXTRA_LIBS=$GDK_WLIBS
930 GDK_EXTRA_CFLAGS= 
931
932 FREETYPE_LIBS=
933 FREETYPE_CFLAGS=
934 if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
935   #
936   # Checks for FreeType
937   #
938   have_freetype=false
939   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
940   if test "x$FREETYPE_CONFIG" != "xno" ; then
941     FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
942     FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
943
944     gtk_save_LIBS="$LIBS"
945     LIBS="$FREETYPE_LIBS $LIBS"
946     AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
947     LIBS="$gtk_save_LIBS"
948
949     if $have_freetype ; then
950       gtk_save_cppflags="$CPPFLAGS"
951       CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
952
953       AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
954       AC_TRY_COMPILE([
955 #include <freetype/freetype.h>
956 #include FT_ERRORS_H
957     ],
958                      [(void)1;],:,have_freetype=false)
959       if $have_freetype ; then
960         AC_MSG_RESULT(yes)
961       else
962         AC_MSG_RESULT(no)
963       fi
964
965       CPPFLAGS="$gtk_save_cppflags"
966     fi
967   fi
968   AC_SUBST(FREETYPE_LIBS)
969   AC_SUBST(FREETYPE_CFLAGS)
970 fi
971
972 if test "x$gdktarget" = "xx11"; then
973   # We start off with the libraries from Pango
974
975   if $PKG_CONFIG --exists pangox ; then : ; else
976     AC_MSG_ERROR([pangox Pango backend is required for x11 target])
977   fi
978     
979   ## be sure we also have Pango built with xft support
980   if $PKG_CONFIG --exists pangoxft ; then
981     PANGO_PACKAGES="pangoxft pangox"
982     have_xft=true
983     AC_DEFINE(HAVE_XFT)
984     if $have_freetype ; then
985       :
986     else
987       AC_MSG_ERROR([pangoxft Pango backend found but did not find freetype libraries])
988     fi
989   else
990     PANGO_PACKAGES="pangox"
991     have_xft=false
992   fi
993
994   AM_CONDITIONAL(HAVE_XFT, $have_xft)
995
996   if $PKG_CONFIG --exists xft ; then
997     AC_DEFINE(HAVE_XFT2, 1, [Define if we have Xft, version 2])
998   fi
999
1000   #
1001   # If Pango included the shared library dependencies from X11 in
1002   # the pkg-config output, then we use that (to avoid duplicates).
1003   # but if they were omitted to avoid binary compatibility problems
1004   # then we need to repeat the checks.
1005   #
1006   x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
1007   case "$x_libs" in
1008     *-lX11*) pango_omitted_x_deps=no ;;
1009     *)       pango_omitted_x_deps=yes ;;
1010   esac
1011
1012   x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`"
1013   x_extra_libs=
1014
1015   if test $pango_omitted_x_deps = yes ; then
1016     AC_PATH_XTRA
1017
1018     if test x$no_x = xyes ; then
1019       AC_MSG_ERROR([X development libraries not found])
1020     fi
1021
1022     x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS"
1023
1024     #
1025     # Checks for Xft/XRender
1026     #
1027     if test $have_xft = true ; then
1028       have_xft=false
1029
1030       if pkg-config --exists pangoxft '>=' 1.1.0 ; then
1031         x_libs="`pkg-config --libs xft` -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
1032         have_xft=true
1033       else
1034         gtk_save_cppflags="$CPPFLAGS"
1035         CPPFLAGS="$CPPFLAGS $x_cflags"
1036       
1037         AC_CHECK_LIB(Xrender, XRenderFindFormat, 
1038           [AC_CHECK_LIB(Xft, XftFontOpen,
1039             [AC_CHECK_HEADER(X11/Xft/XftFreetype.h,
1040               have_xft=true,:)],
1041             :,-lXrender -lXext $x_libs $FREETYPE_LIBS)]
1042           ,:,-lXext $x_libs)
1043           
1044         if $have_xft ; then
1045           x_libs="$X_LIBS -lXft -lXrender -lXext -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
1046         fi
1047
1048         CPPFLAGS="$gtk_save_cppflags"
1049       fi
1050
1051       if $have_xft ; then
1052         :
1053       else
1054         AC_MSG_ERROR([pangoxft Pango backend found, but Xft not found])
1055       fi
1056     fi
1057   fi            
1058
1059   ## Strip the .la files
1060  
1061   x_libs_for_checks=""
1062   for I in $x_libs ; do
1063     case $I in 
1064       *.la) ;;
1065       *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1066     esac
1067   done
1068
1069   # Sanity check for the X11 library
1070   AC_CHECK_LIB(X11, XOpenDisplay, :,
1071             AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
1072             $x_libs_for_checks)
1073
1074   if test "x$enable_shm" = "xyes"; then
1075     # Check for the Xext library (needed for XShm extention)
1076     AC_CHECK_LIB(Xext, XShmAttach,
1077         if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
1078           x_extra_libs="-lXext"
1079         fi,
1080         # On AIX, it is in XextSam instead, but we still need -lXext
1081         AC_CHECK_LIB(XextSam, XShmAttach, 
1082             if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
1083                x_extra_libs="-lXextSam -lXext"
1084             else
1085                x_extra_libs="-lXextSam"
1086             fi, , $x_libs_for_checks),
1087         $x_libs_for_checks)
1088   fi
1089
1090   GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1091   # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1092   GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs $x_libs"
1093
1094   # Check for Xinerama extension (Solaris impl or Xfree impl)
1095
1096   gtk_save_cppflags="$CPPFLAGS"
1097   CPPFLAGS="$CPPFLAGS $x_cflags"
1098
1099   case "$host" in
1100       *-*-solaris*)
1101           # Check for solaris
1102           use_solaris_xinerama=yes
1103           AC_CHECK_LIB(Xext, XineramaGetInfo,
1104                         use_solaris_xinerama=yes, use_solaris_xinerama=no)
1105           if test "x$use_solaris_xinerama" = "xyes"; then
1106               AC_CHECK_HEADER(X11/extensions/xinerama.h,
1107                 if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1108                     x_extra_libs="-lXext $x_extra_libs"
1109                 fi
1110                 AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1111                 AC_DEFINE(HAVE_XINERAMA), use_solaris_xinerama=no, -lXext $x_libs_for_checks)
1112           fi    
1113           AC_MSG_CHECKING(for Xinerama support on Solaris)
1114           AC_MSG_RESULT($use_solaris_xinerama);
1115           ;;
1116       *)
1117           # Check for XFree
1118           use_xfree_xinerama=yes
1119           AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1120               [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1121                   x_extra_libs="-lXinerama $x_extra_libs"   
1122                   if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1123                       x_extra_libs="-lXext $x_extra_libs"
1124                   fi
1125                   AC_DEFINE(HAVE_XFREE_XINERAMA)
1126                   AC_DEFINE(HAVE_XINERAMA), 
1127                   use_xfree_xinerama=no,
1128                   [#include <X11/Xlib.h>])],
1129               use_xfree_xinerama=no, -lXext $x_libs_for_checks)
1130           AC_MSG_CHECKING(for Xinerama support on XFree86)
1131           AC_MSG_RESULT($use_xfree_xinerama);       
1132           ;;
1133   esac
1134
1135   CPPFLAGS="$gtk_save_cppflags"
1136
1137   # Check for shaped window extension
1138
1139   AC_CHECK_LIB(Xext, XShapeCombineMask,
1140       if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1141            x_extra_libs="-lXext $x_extra_libs"
1142       fi
1143       AC_DEFINE(HAVE_SHAPE_EXT),
1144       ,
1145       $x_libs_for_checks)
1146
1147   # Check for XConvertCase (X11R6 specific)
1148
1149   AC_CHECK_LIB(X11, XConvertCase,
1150       AC_DEFINE(HAVE_XCONVERTCASE),
1151       ,
1152       $x_libs_for_checks)
1153
1154   # Check for XIM support.
1155
1156   if test "x$enable_xim" = "xyes"; then
1157     GTK_XIM_FLAGS="-DUSE_XIM"
1158   fi
1159
1160   # Check for XKB support.
1161
1162   if test "x$enable_xkb" = "xyes"; then
1163         AC_MSG_WARN(XKB support explicitly enabled)
1164         AC_DEFINE(HAVE_XKB)
1165   elif test "x$enable_xkb" = "xmaybe"; then
1166         AC_CHECK_LIB(X11, XkbQueryExtension,
1167                      AC_DEFINE(HAVE_XKB),
1168                      ,
1169                      $x_libs_for_checks)
1170   else
1171         AC_MSG_WARN(XKB support explicitly disabled)
1172   fi
1173
1174   x_cflags="$X_CFLAGS"
1175   x_ldflags="$X_LDFLAGS"
1176
1177   # set up things for XInput
1178
1179   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1180     AC_DEFINE(XINPUT_XFREE)
1181     x_extra_libs="-lXi $x_extra_libs"
1182   else
1183     AC_DEFINE(XINPUT_NONE)
1184   fi
1185
1186   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1187
1188   # Check for the RANDR extension
1189
1190   AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1191       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1192           # RANDR requires RENDER
1193           if test -z "`echo $x_extra_libs $x_libs | grep "\-lXrender" 2> /dev/null`"; then
1194               x_extra_libs="-lXrender $x_extra_libs"
1195           fi
1196           x_extra_libs="-lXrandr $x_extra_libs"
1197           AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library),
1198           :, [#include <X11/Xlib.h>])], : ,
1199        $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
1200
1201   # Xshm checks
1202
1203   if test "x$enable_shm" = "xyes"; then
1204     # Check for shared memory
1205     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1206     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1207
1208     # Check for the X shared memory extension header file
1209     have_xshm=no 
1210     AC_MSG_CHECKING(X11/extensions/XShm.h)
1211     if test "x$no_xext_lib" = "xyes"; then
1212       :
1213     else
1214       gtk_save_CFLAGS="$CFLAGS"
1215       CFLAGS="$CFLAGS $x_cflags"
1216       AC_TRY_COMPILE([
1217 #include <stdlib.h>
1218 #include <sys/types.h>
1219 #include <sys/ipc.h>
1220 #include <sys/shm.h>
1221 #include <X11/Xlib.h>
1222 #include <X11/Xutil.h>
1223 #include <X11/extensions/XShm.h>
1224 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1225       CFLAGS="$gtk_save_CFLAGS"
1226     fi
1227     AC_MSG_RESULT($have_xshm)
1228     if test $have_xshm = yes ; then
1229       AC_DEFINE(HAVE_XSHM_H)
1230     fi
1231   fi
1232
1233   GDK_EXTRA_CFLAGS=
1234   if test $pango_omitted_x_deps = yes ; then
1235     GDK_EXTRA_LIBS="$x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1236   else
1237     GDK_EXTRA_LIBS="$x_extra_libs $GDK_EXTRA_LIBS"
1238   fi
1239
1240   AM_CONDITIONAL(USE_X11, true)
1241 else
1242   AM_CONDITIONAL(HAVE_XFT, false)
1243   AM_CONDITIONAL(XINPUT_XFREE, false)
1244   AM_CONDITIONAL(USE_X11, false)
1245 fi
1246
1247 if test "x$gdktarget" = "xwin32"; then
1248   # We start off with the libraries from Pango
1249
1250   ## be sure we also have Pango built with win32 support
1251   PANGO_PACKAGES="pangowin32"
1252
1253   if test x$have_wintab = xyes; then
1254     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1255     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1256   fi
1257
1258   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1259   AM_CONDITIONAL(USE_WIN32, true)
1260 else
1261   AM_CONDITIONAL(USE_WIN32, false)
1262 fi
1263
1264 AC_SUBST(xinput_progs)
1265
1266 GDK_PIXBUF_XLIB_PACKAGES=
1267 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1268 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"
1269
1270 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1271 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1272 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1273 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1274 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1275
1276 if test "x$gdktarget" = "xlinux-fb"; then
1277   if $have_freetype ; then
1278     :
1279   else
1280     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1281   fi
1282
1283   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1284   case "$ft2_libs" in
1285     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1286     *)            pango_omitted_ft2_deps=yes ;;
1287   esac
1288
1289   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1290
1291   if test x$enable_shadowfb = xyes ; then
1292     AC_DEFINE(ENABLE_SHADOW_FB)
1293   fi
1294
1295   if test x$enable_fbmanager = xyes ; then
1296     AC_DEFINE(ENABLE_FB_MANAGER)
1297     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1298   else
1299     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1300   fi
1301   
1302   GDK_EXTRA_CFLAGS=""
1303   if test $pango_omitted_ft2_deps = yes ; then
1304     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1305   fi
1306
1307   AM_CONDITIONAL(USE_LINUX_FB, true)
1308 else
1309   AM_CONDITIONAL(USE_LINUX_FB, false)
1310   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1311 fi
1312
1313 #
1314 # Pick correct Pango packages to use
1315 #
1316
1317 if test "x$gdktarget" = "xx11"; then
1318         if $have_xft = true ; then
1319             PANGO_PACKAGES="pangoxft pangox"
1320         else
1321             PANGO_PACKAGES=pangox
1322         fi
1323 elif test "x$gdktarget" = "xwin32"; then
1324         PANGO_PACKAGES=pangowin32
1325 elif test "x$gdktarget" = "xlinux-fb"; then
1326         PANGO_PACKAGES=pangoft2
1327 else
1328         PANGO_PACKAGES=pango
1329 fi
1330
1331 # Check for Pango flags
1332
1333 AC_MSG_CHECKING(Pango flags)
1334 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1335         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1336         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1337
1338         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1339 else
1340         AC_MSG_ERROR([
1341 *** Pango not found. Pango is required to build GTK+.
1342 *** See http://www.pango.org for Pango information.
1343 *** For the framebuffer target, you will need to build 
1344 *** Pango with freetype support.
1345 ])
1346 fi
1347
1348 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1349
1350 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1351         :
1352 else
1353         gtk_save_LIBS="$LIBS"
1354         LIBS="$PANGO_LIBS $LIBS"
1355         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1356 *** Can't link to Pango. Pango is required to build
1357 *** GTK+. For more information see http://www.pango.org]))
1358         LIBS="$gtk_save_LIBS"
1359 fi
1360
1361 CFLAGS="$saved_cflags"
1362 LDFLAGS="$saved_ldflags"
1363
1364 GDK_PACKAGES=$PANGO_PACKAGES
1365 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1366 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1367
1368 #
1369 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1370 # into the pkg-config files
1371 #
1372 if test $enable_explicit_deps != yes ; then
1373   GDK_EXTRA_LIBS=
1374 fi
1375
1376 AC_SUBST(GDK_PACKAGES)
1377 AC_SUBST(GDK_EXTRA_LIBS)
1378 AC_SUBST(GDK_EXTRA_CFLAGS)
1379 AC_SUBST(GDK_DEP_LIBS)
1380 AC_SUBST(GDK_DEP_CFLAGS)
1381
1382
1383 ########################################
1384 # Check for Accessibility Toolkit flags
1385 ########################################
1386
1387 ATK_PACKAGES=atk
1388 AC_MSG_CHECKING(ATK flags)
1389 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1390         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1391         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1392
1393         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1394 else
1395         AC_MSG_ERROR([
1396 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1397 *** to build GTK+.
1398 ])
1399 fi
1400
1401 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1402         :
1403 else
1404         gtk_save_LIBS="$LIBS"
1405         LIBS="$ATK_LIBS $LIBS"
1406         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1407                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1408                 *** to build GTK+]))
1409         LIBS="$gtk_save_LIBS"
1410 fi
1411
1412 GTK_PACKAGES=atk
1413 GTK_EXTRA_LIBS=
1414 GTK_EXTRA_CFLAGS= 
1415 GTK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1416 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"
1417
1418 AC_SUBST(GTK_PACKAGES)
1419 AC_SUBST(GTK_EXTRA_LIBS)
1420 AC_SUBST(GTK_EXTRA_CFLAGS)
1421 AC_SUBST(GTK_DEP_LIBS)
1422 AC_SUBST(GTK_DEP_CFLAGS)
1423
1424
1425 AC_SUBST(GTK_DEBUG_FLAGS)
1426 AC_SUBST(GTK_XIM_FLAGS)
1427
1428 ##################################################
1429 # Checks for gtk-doc and docbook-tools
1430 ##################################################
1431
1432 AC_ARG_WITH(html-dir, [  --with-html-dir=PATH    path to installed docs ])
1433
1434 if test "x$with_html_dir" = "x" ; then
1435   HTML_DIR='${datadir}/gtk-doc/html'
1436 else
1437   HTML_DIR=$with_html_dir
1438 fi
1439
1440 AC_SUBST(HTML_DIR)
1441
1442 AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
1443
1444 gtk_doc_min_version=0.10
1445 if $GTKDOC ; then
1446     gtk_doc_version=`gtkdoc-mkdb --version`
1447     AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
1448
1449     IFS="${IFS=         }"; gtk_save_IFS="$IFS"; IFS="."
1450     set $gtk_doc_version
1451     for min in $gtk_doc_min_version ; do
1452         cur=$1; shift
1453         if test -z $min ; then break; fi
1454         if test -z $cur ; then GTKDOC=false; break; fi
1455         if test $cur -gt $min ; then break ; fi
1456         if test $cur -lt $min ; then GTKDOC=false; break ; fi
1457     done
1458     IFS="$gtk_save_IFS"
1459
1460     if $GTKDOC ; then
1461       AC_MSG_RESULT(yes)
1462     else
1463       AC_MSG_RESULT(no)
1464     fi
1465 fi
1466
1467 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1468 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1469
1470 dnl Make people enable the gtk-doc stuff explicitely.
1471 AC_ARG_ENABLE(gtk-doc, [  --enable-gtk-doc        use gtk-doc to build documentation [default=no]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)
1472
1473 if test x$enable_gtk_doc = xyes ; then
1474   if test x$GTKDOC != xtrue ; then
1475     enable_gtk_doc=no 
1476   fi
1477 fi
1478
1479 dnl NOTE: We need to use a separate automake conditional for this
1480 dnl       to make this work with the tarballs.
1481 AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
1482
1483
1484 ##################################################
1485 # Output commands
1486 ##################################################
1487
1488 AC_OUTPUT_COMMANDS([
1489
1490 ## Generate `gdk/gdkconfig.h' in two cases
1491 ## 1. `config.status' is run either explicitly, or via configure.
1492 ##     Esp. not when it is run in `Makefile' to generate makefiles and
1493 ##     config.h
1494 ## 2. CONFIG_OTHER is set explicitly
1495 ##
1496 ## Case 1 is difficult.  We know that `automake' sets one of
1497 ## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
1498 ## only when AM_CONFIG_HEADER is set, however.
1499
1500 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
1501   # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
1502   CONFIG_OTHER=${CONFIG_OTHER:-gdk/gdkconfig.h}
1503 fi
1504 case "$CONFIG_OTHER" in
1505 *gdk/gdkconfig.h*)
1506         echo creating gdk/gdkconfig.h
1507         outfile=gdkconfig.h-tmp
1508         cat > $outfile <<\_______EOF
1509 /* gdkconfig.h
1510  *
1511  * This is a generated file.  Please modify `configure.in'
1512  */
1513
1514 #ifndef GDKCONFIG_H
1515 #define GDKCONFIG_H
1516
1517 #ifdef __cplusplus
1518 extern "C" {
1519 #endif /* __cplusplus */
1520
1521 _______EOF
1522
1523         cat >>$outfile <<_______EOF
1524 $gdk_windowing
1525 $gdk_wc
1526 _______EOF
1527
1528         cat >>$outfile <<_______EOF
1529
1530 #ifdef __cplusplus
1531 }
1532 #endif /* __cplusplus */
1533
1534 #endif /* GDKCONFIG_H */
1535 _______EOF
1536
1537
1538         if cmp -s $outfile gdk/gdkconfig.h; then
1539           echo gdk/gdkconfig.h is unchanged
1540           rm -f $outfile
1541         else
1542           mv $outfile gdk/gdkconfig.h
1543         fi ;;
1544 esac
1545 ],[
1546 if test "x$gdktarget" = "xx11" ; then
1547   gdk_windowing='
1548 #define GDK_WINDOWING_X11'
1549 elif test "x$gdktarget" = "xwin32" ; then
1550   gdk_windowing='
1551 #define GDK_WINDOWING_WIN32'
1552 elif test "x$gdktarget" = "xlinux-fb" ; then
1553   gdk_windowing='
1554 #define GDK_WINDOWING_FB
1555 #define GDK_NATIVE_WINDOW_POINTER'
1556 fi
1557
1558 if test x$gdk_wchar_h = xyes; then
1559   gdk_wc='
1560 #define GDK_HAVE_WCHAR_H 1'
1561 fi
1562 if test x$gdk_wctype_h = xyes; then
1563   gdk_wc="\$gdk_wc
1564 #define GDK_HAVE_WCTYPE_H 1"
1565 fi
1566 if test x$gdk_working_wctype = xno; then
1567   gdk_wc="\$gdk_wc
1568 #define GDK_HAVE_BROKEN_WCTYPE 1"
1569 fi
1570
1571
1572 ])
1573
1574 AC_PATH_PROG(SGML2HTML, sgml2html, no)
1575 AM_CONDITIONAL(HAVE_SGML2HTML, test x$SGML2HTML != xno)
1576
1577 AC_OUTPUT([
1578 config.h.win32
1579 gtk-zip.sh
1580 gtk+.spec
1581 Makefile
1582 gdk-pixbuf-2.0.pc
1583 gdk-2.0.pc
1584 gtk+-2.0.pc
1585 gdk-pixbuf-2.0-uninstalled.pc
1586 gdk-2.0-uninstalled.pc
1587 gtk+-2.0-uninstalled.pc
1588 m4macros/Makefile
1589 po/Makefile.in
1590 build/Makefile
1591 build/win32/Makefile
1592 build/win32/dirent/Makefile
1593 demos/Makefile
1594 demos/gtk-demo/Makefile
1595 demos/gtk-demo/geninclude.pl
1596 tests/Makefile
1597 docs/Makefile
1598 docs/reference/Makefile
1599 docs/reference/gdk-pixbuf/Makefile
1600 docs/reference/gdk-pixbuf/version.xml
1601 docs/reference/gdk/Makefile
1602 docs/reference/gdk/version.xml
1603 docs/reference/gtk/Makefile
1604 docs/reference/gtk/version.xml
1605 docs/faq/Makefile
1606 docs/tutorial/Makefile
1607 gdk-pixbuf/Makefile
1608 gdk-pixbuf/gdk_pixbuf.rc
1609 gdk-pixbuf/gdk-pixbuf-features.h
1610 gdk-pixbuf/pixops/Makefile
1611 gdk/Makefile
1612 gdk/x11/Makefile
1613 gdk/win32/Makefile
1614 gdk/win32/rc/Makefile
1615 gdk/win32/rc/gdk.rc
1616 gdk/linux-fb/Makefile
1617 gtk/Makefile
1618 gtk/makefile.msc
1619 gtk/gtkversion.h
1620 gtk/gtk-win32.rc
1621 gtk/stock-icons/Makefile
1622 gtk/theme-bits/Makefile
1623 modules/Makefile
1624 modules/input/Makefile
1625 contrib/Makefile
1626 contrib/gdk-pixbuf-xlib/Makefile
1627 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1628 ])