Add powerbox hook
[gtk-with-powerbox.git] / configure.in
blob667efb63ef386519c051bfb64b5b677645699fb3
1 # Process this file with autoconf to produce a configure script.
2 # require autoconf 2.54
3 AC_PREREQ(2.54)
5 # Making releases:
6 #   GTK_MICRO_VERSION += 1;
7 #   GTK_INTERFACE_AGE += 1;
8 #   GTK_BINARY_AGE += 1;
9 # if any functions have been added, set GTK_INTERFACE_AGE to 0.
10 # if backwards compatibility has been broken,
11 # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
13 m4_define([gtk_major_version], [2])
14 m4_define([gtk_minor_version], [13])
15 m4_define([gtk_micro_version], [5])
16 m4_define([gtk_interface_age], [0])
17 m4_define([gtk_binary_age],
18           [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
19 m4_define([gtk_version],
20           [gtk_major_version.gtk_minor_version.gtk_micro_version])
21 # This is the X.Y used in -lgtk-FOO-X.Y
22 m4_define([gtk_api_version], [2.0])
24 # Define a string for the earliest version that this release has
25 # backwards binary compatibility with for all interfaces a module
26 # might. Unless we add module-only API with lower stability
27 # guarantees, this should be unchanged until we break binary compat
28 # for GTK+.
30 #GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
31 m4_define([gtk_binary_version], [2.10.0])
33 # required versions of other packages
34 m4_define([glib_required_version], [2.17.3])
35 m4_define([pango_required_version], [1.20])
36 m4_define([atk_required_version], [1.13.0])
37 m4_define([cairo_required_version], [1.6])
40 AC_INIT([gtk+], [gtk_version],
41         [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
42         [gtk+])
44 AC_CONFIG_SRCDIR([gdk/gdktypes.h])
46 # Save this value here, since automake will set cflags later
47 cflags_set=${CFLAGS+set}
49 AM_INIT_AUTOMAKE(no-define)
50 AM_CONFIG_HEADER(config.h)
53 # For each of the libraries we build, we define the following
55 # substituted variables:
57 # foo_PACKAGES:     pkg-config packages this library requires
58 # foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
59 # foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
60 # foo_DEP_LIBS:     All libraries this module requires
61 # foo_DEP_CFLAGS:   All cflags this module requires
64 GTK_MAJOR_VERSION=gtk_major_version
65 GTK_MINOR_VERSION=gtk_minor_version
66 GTK_MICRO_VERSION=gtk_micro_version
67 GTK_INTERFACE_AGE=gtk_interface_age
68 GTK_BINARY_AGE=gtk_binary_age
69 GTK_VERSION=gtk_version
70 GTK_API_VERSION=gtk_api_version
71 GTK_BINARY_VERSION=gtk_binary_version
72 AC_SUBST(GTK_MAJOR_VERSION)
73 AC_SUBST(GTK_MINOR_VERSION)
74 AC_SUBST(GTK_MICRO_VERSION)
75 AC_SUBST(GTK_INTERFACE_AGE)
76 AC_SUBST(GTK_BINARY_AGE)
77 AC_SUBST(GTK_API_VERSION)
78 AC_SUBST(GTK_VERSION)
79 AC_SUBST(GTK_BINARY_VERSION)
81 # libtool versioning
82 #LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
83 #LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
84 #LT_REVISION=$GTK_INTERFACE_AGE
85 #LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
86 #LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
88 m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)])
89 m4_define([lt_revision], [gtk_interface_age])
90 m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_interface_age)])
91 LT_VERSION_INFO="lt_current:lt_revision:lt_age"
92 LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
93 AC_SUBST(LT_VERSION_INFO)
94 AC_SUBST(LT_CURRENT_MINUS_AGE)
96 m4_define([gail_lt_current],[18])
97 m4_define([gail_lt_revision],[1])
98 m4_define([gail_lt_age],[0])
99 m4_define([gail_lt_version_info],[gail_lt_current:gail_lt_revision:gail_lt_age])
100 m4_define([gail_lt_current_minus_age],[m4_eval(gail_lt_current - gail_lt_age)])
101 AC_SUBST([GAIL_LT_VERSION_INFO],[gail_lt_version_info])
102 AC_SUBST([GAIL_LT_CURRENT_MINUS_AGE],[gail_lt_current_minus_age])
105 # gdk-pixbuf gets versioned separately, and for now, using standard
106 # libtool versioning, not GTK+-style versioning
108 GDK_PIXBUF_MAJOR=gtk_major_version
109 GDK_PIXBUF_MINOR=gtk_minor_version
110 GDK_PIXBUF_MICRO=gtk_micro_version
111 GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
112 AC_SUBST(GDK_PIXBUF_MAJOR)
113 AC_SUBST(GDK_PIXBUF_MINOR)
114 AC_SUBST(GDK_PIXBUF_MICRO)
115 AC_SUBST(GDK_PIXBUF_VERSION)
117 GETTEXT_PACKAGE=gtk20
118 AC_SUBST(GETTEXT_PACKAGE)
119 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
120                    [The prefix for our gettext translation domains.])
122 AC_CANONICAL_HOST
124 MATH_LIB=-lm
125 AC_MSG_CHECKING([for native Win32])
126 case "$host" in
127   *-*-mingw*)
128     os_win32=yes
129     MATH_LIB=
130     ;;
131   *)
132     os_win32=no
133     ;;
134 esac
135 AC_MSG_RESULT([$os_win32])
137 case $host in
138   *-*-linux*)
139     os_linux=yes
140     ;;
141 esac
142 dnl Initialize libtool
143 AC_PROG_CC
144 AM_DISABLE_STATIC
146 dnl 
147 dnl Check for a working C++ compiler, but do not bail out, if none is found.
148 dnl We use this for an automated test for C++ header correctness.
149 dnl 
150 AC_CHECK_TOOLS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc)
151 AC_LANG_SAVE
152 AC_LANG_CPLUSPLUS
154 AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=)
155 AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "")
157 gtk_save_cxxflags="$CXXFLAGS"
158 CXXFLAGS="$CXXFLAGS -x objective-c++"
159 AC_TRY_COMPILE([@interface Foo @end],,OBJC=yes,OBJC=no)
160 AM_CONDITIONAL(HAVE_OBJC, test "$OBJC" = "yes")
161 CXXFLAGS="$gtk_save_cxxflags"
162 AC_LANG_RESTORE
164 if test "$os_win32" = "yes"; then
165   if test x$enable_static = xyes -o x$enable_static = x; then
166     AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
167     enable_static=no
168   fi
169   if test x$enable_shared = xno; then
170     AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
171   fi
172   enable_shared=yes
175 AC_LIBTOOL_WIN32_DLL
176 AM_PROG_LIBTOOL
178 # Make sure we use 64-bit versions of various file stuff.
179 AC_SYS_LARGEFILE
181 AM_PROG_AS
182 AC_PATH_PROG(NM, nm, nm)
184 dnl Initialize maintainer mode
185 AM_MAINTAINER_MODE
187 AC_MSG_CHECKING([for some Win32 platform])
188 case "$host" in
189   *-*-mingw*|*-*-cygwin*)
190     platform_win32=yes
191     ;;
192   *)
193     platform_win32=no
194     ;;
195 esac
196 AC_MSG_RESULT([$platform_win32])
197 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
199 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
200 AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
201 AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
203 if test "$os_win32" = "yes"; then
204   AC_CHECK_TOOL(WINDRES, windres, no)
205   if test "$WINDRES" = no; then
206     AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
207   fi
208   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
210 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
212 m4_define([debug_default],
213           m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
215 dnl declare --enable-* args and collect ac_help strings
216 AC_ARG_ENABLE(debug,
217               AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
218                              [turn on debugging @<:@default=debug_default@:>@]),,
219               enable_debug=debug_default)
220 AC_ARG_ENABLE(shm,
221               [AC_HELP_STRING([--enable-shm],
222                               [support shared memory if available [default=yes]])],,
223               [enable_shm="yes"])
224 AC_ARG_ENABLE(xkb,
225               [AC_HELP_STRING([--enable-xkb],
226                               [support XKB [default=maybe]])],,
227               [enable_xkb="maybe"])
228 AC_ARG_ENABLE(xinerama,
229               [AC_HELP_STRING([--enable-xinerama],
230                               [support xinerama extension if available [default=yes]])],,
231               [enable_xinerama="no"])
232 AC_ARG_ENABLE(rebuilds,
233               [AC_HELP_STRING([--disable-rebuilds],
234                               [disable all source autogeneration rules])],,
235               [enable_rebuilds=yes])
236 AC_ARG_ENABLE(visibility,
237               [AC_HELP_STRING([--disable-visibility],
238                               [don't use ELF visibility attributes])],,
239               [enable_visibility=yes])
241 AC_ARG_WITH(xinput,
242             [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
244 if test "$platform_win32" = yes; then
245   gdktarget=win32
246 else
247   gdktarget=x11
250 AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
251         gdktarget=$with_gdktarget)
253 AC_SUBST(gdktarget)
254 case $gdktarget in
255   x11|win32|quartz|directfb) ;;
256   *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
257 esac
259 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
260 gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
262 AC_SUBST(gdktargetlib)
263 AC_SUBST(gtktargetlib)
265 if test "x$enable_debug" = "xyes"; then
266   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
267   GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES" 
268 else
269   if test "x$enable_debug" = "xno"; then
270     GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
271   else
272     GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
273   fi
277 if test "x$enable_visibility" = "xno"; then
278   GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
282 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}",
283                    [Define if debugging is enabled])
285                         
286 # Build time sanity check...
287 AM_SANITY_CHECK
289 # Checks for programs.
290 AC_ISC_POSIX
291 AM_PROG_CC_STDC
292 AC_PROG_INSTALL
293 AC_PROG_MAKE_SET
295 changequote(,)dnl
296 if test "x$GCC" = "xyes"; then
297   case " $CFLAGS " in
298   *[\ \ ]-Wall[\ \      ]*) ;;
299   *) CFLAGS="$CFLAGS -Wall" ;;
300   esac
302   if test "x$enable_ansi" = "xyes"; then
303     case " $CFLAGS " in
304     *[\ \       ]-ansi[\ \      ]*) ;;
305     *) CFLAGS="$CFLAGS -ansi" ;;
306     esac
308     case " $CFLAGS " in
309     *[\ \       ]-pedantic[\ \  ]*) ;;
310     *) CFLAGS="$CFLAGS -pedantic" ;;
311     esac
312   fi
314 changequote([,])dnl
316 CPPFLAGS="$CPPFLAGS -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DPANGO_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
318 # Ensure MSVC-compatible struct packing convention is used when
319 # compiling for Win32 with gcc.
320 # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
321 # gcc2 uses "-fnative-struct".
322 if test x"$os_win32" = xyes; then
323   if test x"$GCC" = xyes; then
324     msnative_struct=''
325     AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
326     if test -z "$ac_cv_prog_CC"; then
327       our_gcc="$CC"
328     else
329       our_gcc="$ac_cv_prog_CC"
330     fi
331     case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
332       2.)
333         if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
334           msnative_struct='-fnative-struct'
335         fi
336         ;;
337       *)
338         if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
339           msnative_struct='-mms-bitfields'
340         fi
341         ;;
342     esac
343     if test x"$msnative_struct" = x ; then
344       AC_MSG_RESULT([no way])
345       AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
346     else
347       CFLAGS="$CFLAGS $msnative_struct"
348       AC_MSG_RESULT([${msnative_struct}])
349     fi
350   fi
353 # Honor aclocal flags
354 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
356 ## Initial sanity check, done here so that users get told they 
357 ## have the wrong dependencies as early in the process as possible.
358 ## Later on we actually use the cflags/libs from separate pkg-config
359 ## calls. Oh, also the later pkg-config calls don't include 
360 ## the version requirements since those make the module lists 
361 ## annoying to construct
362 PKG_CHECK_MODULES(BASE_DEPENDENCIES,
363   [glib-2.0 >= glib_required_version dnl
364    atk >= atk_required_version dnl
365    pango >= pango_required_version dnl
366    cairo >= cairo_required_version])
368 if test "$os_win32" != yes; then
369     # libtool option to control which symbols are exported
370     # right now, symbols starting with _ are not exported
371     LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
372 else
373     # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
374     LIBTOOL_EXPORT_OPTIONS=
376 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
378 dnl ******************************************************
379 dnl * See whether to include shared library dependencies *
380 dnl ******************************************************
382 AC_ARG_ENABLE(explicit-deps, 
383               [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
384                               [use explicit dependencies in .pc files [default=auto]])],,
385               [enable_explicit_deps=auto])
387 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
388 case $enable_explicit_deps in
389   auto)
390     export SED
391     deplibs_check_method=`(./libtool --config; echo 'eval echo $deplibs_check_method') | sh`
392     if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
393       enable_explicit_deps=yes  
394     else
395       enable_explicit_deps=no  
396     fi
397   ;;
398   yes|no) 
399   ;;
400   *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
401   ;;
402 esac
403 AC_MSG_RESULT($enable_explicit_deps)
405 AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
407 # define a MAINT-like variable REBUILD which is set if Perl
408 # and awk are found, so autogenerated sources can be rebuilt
410 AC_PATH_PROGS(PERL, perl5 perl)
412 # We would like indent, but don't require it.
413 AC_CHECK_PROG(INDENT, indent, indent)
415 REBUILD=\#
416 if test "x$enable_rebuilds" = "xyes" && \
417      test -n "$PERL" && \
418      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
419   REBUILD=
421 AC_SUBST(REBUILD)
423 AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
424 AC_CHECK_FUNCS(localtime_r)
426 # _NL_TIME_FIRST_WEEKDAY is an enum and not a define
427 AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
428 AC_TRY_LINK([#include <langinfo.h>], [
429 char c;
430 c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
431 ], gtk_ok=yes, gtk_ok=no)
432 AC_MSG_RESULT($gtk_ok)
433 if test "$gtk_ok" = "yes"; then
434   AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
435             [Define if _NL_TIME_FIRST_WEEKDAY is available])
438 # _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
439 AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
440 AC_TRY_LINK([#include <langinfo.h>], [
441 char c;
442 c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
443 ], gtk_ok=yes, gtk_ok=no)
444 AC_MSG_RESULT($gtk_ok)
445 if test "$gtk_ok" = "yes"; then
446   AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1],
447             [Define if _NL_MEASUREMENT_MEASUREMENT is available])
450 # _NL_PAPER_HEIGHT is an enum and not a define
451 AC_MSG_CHECKING([for _NL_PAPER_HEIGHT])
452 AC_TRY_LINK([#include <langinfo.h>], [
453 char c;
454 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_HEIGHT));
455 ], gtk_ok=yes, gtk_ok=no)
456 AC_MSG_RESULT($gtk_ok)
457 if test "$gtk_ok" = "yes"; then
458   AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1],
459             [Define if _NL_PAPER_HEIGHT is available])
462 # _NL_PAPER_WIDTH is an enum and not a define
463 AC_MSG_CHECKING([for _NL_PAPER_WIDTH])
464 AC_TRY_LINK([#include <langinfo.h>], [
465 char c;
466 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_WIDTH));
467 ], gtk_ok=yes, gtk_ok=no)
468 AC_MSG_RESULT($gtk_ok)
469 if test "$gtk_ok" = "yes"; then
470   AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1],
471             [Define if _NL_PAPER_WIDTH is available])
473         
474 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
475 AC_MSG_CHECKING(for sigsetjmp)
476 AC_TRY_LINK([#include <setjmp.h>], [
477 sigjmp_buf env;
478 sigsetjmp(env, 0);
479 ], gtk_ok=yes, gtk_ok=no)
480 AC_MSG_RESULT($gtk_ok)
481 if test "$gtk_ok" = "yes"; then
482   AC_DEFINE(HAVE_SIGSETJMP, 1,
483             [Define to 1 if sigsetjmp is available])
486 # i18n stuff
487 # TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
488 # directories.  If you add a new language to ALL_LINGUAS, please make
489 # sure that both po/ and po-properties/ have .po files that correspond
490 # to your language.  If you only add one to po/, the build will break
491 # in po-properties/.
492 ALL_LINGUAS="af am ang ar as az az_IR be be@latin bg bn bn_IN br bs ca ca@valencia cs cy da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy ia id io is it ja ka kn ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso oc or pa pl pt pt_BR ro ru rw si sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@cyrillic vi wa xh yi zh_CN zh_HK zh_TW"
493 AM_GLIB_GNU_GETTEXT
494 LIBS="$LIBS $INTLLIBS"
495 AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
496         sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
497       esac])
499 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
501 dnl The DU4 header files don't provide library prototypes unless 
502 dnl -std1 is given to the native cc.
503 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
505 gtk_save_LIBS=$LIBS
506 LIBS="$LIBS -lm"
507 AC_TRY_RUN([#include <math.h>
508              int main (void) { return (log(1) != log(1.)); }],
509      AC_MSG_RESULT(none needed),
510      gtk_save_CFLAGS="$CFLAGS"
511      CFLAGS="$CFLAGS -std1"
512      AC_TRY_RUN([#include <math.h>
513                  int main (void) { return (log(1) != log(1.)); }],
514          AC_MSG_RESULT(-std1),
515          AC_MSG_RESULT()
516          CFLAGS="$gtk_save_CFLAGS"
517          AC_MSG_WARN(
518                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
519          true
520      ),
521      AC_MSG_RESULT(none needed)
523 LIBS=$gtk_save_LIBS
525 AC_MSG_CHECKING(for the BeOS)
526 case $host in
527   *-*-beos*)
528     AC_MSG_RESULT(yes)
529     MATH_LIB=
530   ;;
531   *)
532     AC_MSG_RESULT(no)
533   ;;
534 esac
537 # see bug 162979
539 AC_MSG_CHECKING(for HP-UX)
540 case $host_os in
541   hpux9* | hpux10* | hpux11*)
542     AC_MSG_RESULT(yes)
543     CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
544   ;;
545   *)
546     AC_MSG_RESULT(no)
547   ;;
548 esac
550 dnl NeXTStep cc seems to need this
551 AC_MSG_CHECKING([for extra flags for POSIX compliance])
552 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
553   AC_MSG_RESULT(none needed),
554   gtk_save_CFLAGS="$CFLAGS"
555   CFLAGS="$CFLAGS -posix"
556   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
557     AC_MSG_RESULT(-posix),
558     AC_MSG_RESULT()
559     CFLAGS="$gtk_save_CFLAGS"
560     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
563 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
566 GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
568 AM_PATH_GLIB_2_0(glib_required_version, :,
569   AC_MSG_ERROR([
570 *** GLIB glib_required_version or better is required. The latest version of 
571 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
572   gobject gmodule-no-export gthread)
574 # See if it's safe to turn G_DISABLE_DEPRECATED on.
575 GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
576 GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
577 if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
578   CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
583 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
585 gtk_save_LIBS=$LIBS
586 LIBS="$LIBS $GLIB_LIBS"
587 AC_CHECK_FUNCS(bind_textdomain_codeset)
588 LIBS=$gtk_save_LIBS
590 AC_CHECK_HEADERS(pwd.h,
591                  AC_DEFINE(HAVE_PWD_H, 1,
592                            [Define to 1 if pwd.h is available]))
593 AC_CHECK_HEADERS(sys/time.h,
594                  AC_DEFINE(HAVE_SYS_TIME_H, 1,
595                            [Define to 1 if time.h is available]))
596 AC_CHECK_HEADERS(unistd.h,
597                  AC_DEFINE(HAVE_UNISTD_H, 1,
598                            [Define to 1 if unistd.h is available]))
599 AC_CHECK_HEADERS(ftw.h,
600                  AC_DEFINE(HAVE_FTW_H, 1,
601                            [Define to 1 if ftw.h is available]))
603 AC_MSG_CHECKING([for GNU ftw extensions])
604 AC_TRY_COMPILE([#define _XOPEN_SOURCE 500
605 #define _GNU_SOURCE
606 #include <ftw.h>], [int flags = FTW_ACTIONRETVAL;], gtk_ok=yes, gtk_ok=no)
607 if test $gtk_ok = yes; then
608     AC_MSG_RESULT([yes])
609     AC_DEFINE(HAVE_GNU_FTW, 1, [Have GNU ftw])
610 else
611     AC_MSG_RESULT([no])
614 saved_cflags="$CFLAGS"
615 saved_ldflags="$LDFLAGS"
618 # Checks for header files.
619 AC_HEADER_STDC
621 # Checks for typedefs, structures, and compiler characteristics.
622 AC_C_CONST
624 # Checks for library functions.
625 AC_TYPE_SIGNAL
626 AC_FUNC_MMAP
628 AC_CHECK_FUNCS(mallinfo)
629 AC_CHECK_FUNCS(getresuid)
630 AC_TYPE_UID_T
632 # Check if <sys/select.h> needs to be included for fd_set
633 AC_MSG_CHECKING([for fd_set])
634 AC_TRY_COMPILE([#include <sys/types.h>],
635         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
636 if test $gtk_ok = yes; then
637     AC_MSG_RESULT([yes, found in sys/types.h])
638 else
639     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
640     if test $gtk_ok = yes; then
641         AC_DEFINE(HAVE_SYS_SELECT_H, 1,
642                   [Define to 1 if sys/select.h is available])
643         AC_MSG_RESULT([yes, found in sys/select.h])
644     else
645         AC_DEFINE(NO_FD_SET, 1,
646                   [Define to 1 if fd_set is not available])
647         AC_MSG_RESULT(no)
648     fi
651 # `widechar' tests for gdki18n.h
652 AC_MSG_CHECKING(for wchar.h)
653 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
654 if test $gdk_wchar_h = yes; then
655    AC_DEFINE(HAVE_WCHAR_H, 1, [Have wchar.h include file])
657 AC_MSG_RESULT($gdk_wchar_h)
659 # Check for wctype.h (for iswalnum)
660 AC_MSG_CHECKING(for wctype.h)
661 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
662 if test $gdk_wctype_h = yes; then
663    AC_DEFINE(HAVE_WCTYPE_H, 1, [Have wctype.h include file])
665 AC_MSG_RESULT($gdk_wctype_h)
667 # in Solaris 2.5, `iswalnum' is in -lw
668 GDK_WLIBS=
669 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
671 oLIBS="$LIBS"
672 LIBS="$LIBS $GDK_WLIBS"
673 # The following is necessary for Linux libc-5.4.38
674 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
675 AC_TRY_LINK([#include <stdlib.h>],[
676 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
677 #  ifdef HAVE_WCTYPE_H
678 #    include <wctype.h>
679 #  else
680 #    ifdef HAVE_WCHAR_H
681 #      include <wchar.h>
682 #    endif
683 #  endif
684 #else
685 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
686 #endif
687 iswalnum((wchar_t) 0);
688 ], gdk_working_wctype=yes, gdk_working_wctype=no)
689 LIBS="$oLIBS"
691 if test $gdk_working_wctype = no; then
692    AC_DEFINE(HAVE_BROKEN_WCTYPE, 1, [Is the wctype implementation broken])
693    GDK_WLIBS=
695 AC_MSG_RESULT($gdk_working_wctype)
696 AC_SUBST(GDK_WLIBS)
698 # Check for uxtheme.h (for MS-Windows Engine)
699 AC_MSG_CHECKING(for uxtheme.h)
700 AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
701 if test $gtk_uxtheme_h = yes; then
702    AC_DEFINE(HAVE_UXTHEME_H, 1, [Have uxtheme.h include file])
704 AC_MSG_RESULT($gtk_uxtheme_h)
706 # Checks for gdkspawn
707 AC_CHECK_HEADERS(crt_externs.h)
708 AC_CHECK_FUNCS(_NSGetEnviron)
711 ##################################################
712 # Checks for gdk-pixbuf
713 ##################################################
715 dnl ********************************************************
716 dnl * See whether we need to load our modules as .la files *
717 dnl ********************************************************
719 use_la_modules=false
720 case $host in
721   *-aix*) use_la_modules=true
722 esac
724 if $use_la_modules ; then
725    AC_DEFINE(USE_LA_MODULES, 1,
726              [Whether to load modules via .la files rather than directly])
730 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
732 AC_ARG_ENABLE(modules,
733               [AC_HELP_STRING([--disable-modules],
734                               [disable dynamic module loading])])
736 dynworks=false
737 deps=
738 if test x$enable_modules = xno; then
739     AC_MSG_RESULT(no)
740 else
741     AC_MSG_RESULT(yes)
742     AC_MSG_CHECKING(whether dynamic modules work)
743     ## for loop is to strip newline 
744     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
745     for I in $tmp; do
746         dynworks=$I
747     done
749     dnl Now we check to see if our libtool supports shared lib deps
750     dnl (in a rather ugly way even)
751     if $dynworks; then
752         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
753         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
754             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
755             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
756         if test "x$pixbuf_deplibs_check" = "xnone" || \
757            test "x$pixbuf_deplibs_check" = "xunknown" || \
758            test "x$pixbuf_deplibs_check" = "x"; then
759             dynworks=false
760         fi
761     fi
763     if $dynworks; then
764         AC_DEFINE(USE_GMODULE, 1,
765                   [Define to 1 if gmodule works and should be used])
766         AC_MSG_RESULT(yes)
767     else
768         AC_MSG_RESULT(no)
769     fi
772 dnl We allow people to disable image loaders explicitely, but if they don't we error
773 dnl out so that people don't accidentally build without them.
775 AC_ARG_WITH(libpng,
776             [AC_HELP_STRING([--without-libpng],
777                             [disable PNG loader for gdk-pixbuf])])
778 AC_ARG_WITH(libjpeg,
779             [AC_HELP_STRING([--without-libjpeg],
780                             [disable JPEG loader for gdk-pixbuf])])
781 AC_ARG_WITH(libtiff,
782             [AC_HELP_STRING([--without-libtiff],
783                             [disable TIFF loader for gdk-pixbuf])])
784 AC_ARG_WITH(libjasper,
785             [AC_HELP_STRING([--without-libjasper],
786                             [disable JPEG2000 loader for gdk-pixbuf])])
788 AC_ARG_ENABLE(gdiplus,
789             [AC_HELP_STRING([--disable-gdiplus-loaders],
790                             [disable GDI+ loaders for gdk-pixbuf])])
792 AM_CONDITIONAL(BUILD_GDIPLUS_LOADERS, [ test x$os_win32 = xyes && test x$enable_gdiplus != xno ])
794 dnl Test for libtiff
795 if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
796   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
797     AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
798       [AC_CHECK_HEADER(tiffio.h,
799         TIFF='tiff'; LIBTIFF='-ltiff',
800         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
801       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
802         [AC_CHECK_HEADER(tiffio.h,
803           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
804           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
805         [AC_CHECK_LIB(tiff34, TIFFFlushData,
806           [AC_CHECK_HEADER(tiffio.h,
807             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
808             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
809         AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
810   fi
812   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
813      AC_MSG_ERROR([
814 *** Checks for TIFF loader failed. You can build without it by passing 
815 *** --without-libtiff to configure but some programs using GTK+ may
816 *** not work properly])
817   fi
820 dnl Test for libjpeg
821 if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
822   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
823     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
824       jpeg_ok=yes,
825       jpeg_ok=no
826       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
827     if test "$jpeg_ok" = yes; then
828       AC_MSG_CHECKING([for jpeglib.h])
829       AC_TRY_CPP(
830 [#include <stdio.h>
831 #undef PACKAGE
832 #undef VERSION
833 #undef HAVE_STDLIB_H
834 #include <jpeglib.h>],
835         jpeg_ok=yes,
836         jpeg_ok=no)
837       AC_MSG_RESULT($jpeg_ok)
838       if test "$jpeg_ok" = yes; then
839         LIBJPEG='-ljpeg'
840         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
841           AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
842                     [Define to 1 is libjpeg supports progressive JPEG]),
843           AC_MSG_WARN(JPEG library does not support progressive saving.))
844       else
845           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
846       fi
847     fi
848   fi
850   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
851      AC_MSG_ERROR([
852 *** Checks for JPEG loader failed. You can build without it by passing 
853 *** --without-libjpeg to configure but some programs using GTK+ may
854 *** not work properly])
855   fi
858 dnl Test for libpng
859   if test x$with_libpng != xno && test -z "$LIBPNG"; then
860     AC_MSG_CHECKING(for libpng12)
861     if $PKG_CONFIG --exists libpng12 ; then
862         AC_MSG_RESULT(yes)
863         PNG='png'
864         PNG_DEP_CFLAGS_PACKAGES=libpng12
865         LIBPNG=`$PKG_CONFIG --libs libpng12`
866     else
867       AC_MSG_RESULT(no)
868       AC_CHECK_LIB(png, png_read_info,
869         [AC_CHECK_HEADER(png.h,
870           png_ok=yes,
871           png_ok=no)],
872         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
873       if test "$png_ok" = yes; then
874         AC_MSG_CHECKING([for png_structp in png.h])
875         AC_TRY_COMPILE([#include <png.h>],
876           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
877           png_ok=yes,
878           png_ok=no)
879         AC_MSG_RESULT($png_ok)
880         if test "$png_ok" = yes; then
881           PNG='png'; LIBPNG='-lpng -lz'
882         else
883           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
884         fi
885       else
886        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
887       fi
888     fi
889   fi
891   if test x$with_libpng != xno && test -z "$LIBPNG"; then
892      AC_MSG_ERROR([
893 *** Checks for PNG loader failed. You can build without it by passing 
894 *** --without-libpng to configure but many programs using GTK+ will
895 *** not work properly. The PNG loader is also needed if you are compiling
896 *** from CVS.])
897   fi
899 dnl Test for libjasper
900   if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
901     AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [])
902   fi
904   if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
905      AC_MSG_ERROR([
906 *** Checks for JPEG2000 loader failed. You can build without it by passing 
907 *** --without-libjasper to configure])
908   fi
910 AC_SUBST(LIBTIFF)
911 AC_SUBST(LIBJPEG)
912 AC_SUBST(LIBPNG)
913 AC_SUBST(LIBJASPER)
915 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
918 # Allow building some or all gdk-pixbuf loaders included
920 AC_MSG_CHECKING(pixbuf loaders to build)
922 dnl due to an autoconf bug, commas in the first arg to
923 dnl AC_HELP_STRING cause problems.
924 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
925 dnl                [build the specified loaders into gdk-pixbuf])
926 AC_ARG_WITH(included_loaders,
927 [  --with-included-loaders=LOADER1,LOADER2,...
928                           build the specified loaders into gdk-pixbuf])
930 if $dynworks; then 
931    :
932 else
933    ## if the option was specified, leave it; otherwise disable included loaders
934    if test x$with_included_loaders = xno; then
935            with_included_loaders=yes
936    fi
939 # Use the traditional png loader instead of the GDI+ one on Windows,
940 # because some important apps like GIMP need to read and write
941 # arbitrary tEXt chunks which doesn't seem to be possible through GDI+
943 all_loaders="ani,icns,pcx,ras,tga,png,pnm,wbmp,xbm,xpm"
944 if test x$with_libjasper != xno; then
945   all_loaders="$all_loaders,jasper"
947 if test x$os_win32 = xyes && test x$enable_gdiplus != xno; then
948   # Skip PNG, see comment above
949   gdip_formats="bmp emf gif ico jpeg tiff wmf"
950   for f in $gdip_formats; do
951     all_loaders="$all_loaders,gdip-$f"
952   done
953 else
954   all_loaders="$all_loaders,bmp,gif,ico,jpeg,tiff"
956 included_loaders=""
957 # If no loaders specified, include all
958 if test "x$with_included_loaders" = xyes ; then
959   included_loaders="$all_loaders"
960 else
961   included_loaders="$with_included_loaders"
964 AC_MSG_RESULT($included_loaders)
966 INCLUDED_LOADER_OBJ=
967 INCLUDED_LOADER_DEFINE=
969 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
970 for loader in $included_loaders; do
971  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
972    :
973  else
974    AC_MSG_ERROR([the specified loader $loader does not exist])
975  fi
977  loader_underscores=`echo $loader | sed -e 's/-/_/g'`
978  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
980  # Don't bother defining separate -DINCLUDE_gdip_foo for each gdip-foo loader
981  case $loader in
982    gdip-*) ;;
983    *) INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader_underscores";;
984  esac
985  eval INCLUDE_$loader_underscores=yes
986 done
988 # Just define one -DINCLUDE_gdiplus for all the gdip-foo loaders
989 # (except gdip-png, which isn't built at all)
990 if test x"$INCLUDE_gdip_ico" = xyes; then
991   INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_gdiplus"
994 IFS="$gtk_save_ifs"
995 AC_SUBST(INCLUDED_LOADER_OBJ)
996 AC_SUBST(INCLUDED_LOADER_DEFINE)
998 AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
999 AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
1000 AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes])
1001 AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
1002 AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
1003 AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
1004 AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
1005 AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
1006 AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes])
1007 AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
1008 AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
1009 AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
1010 AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
1011 AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes])
1012 AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
1013 AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
1014 # As all GDI+ loaders are either built-in or not, arbitrarily just
1015 # check one of the variables here
1016 AM_CONDITIONAL(INCLUDE_GDIPLUS, [test x"$INCLUDE_gdip_ico" = xyes])
1019 # Allow building some or all immodules included
1021 AC_MSG_CHECKING(immodules to build)
1023 dnl due to an autoconf bug, commas in the first arg to
1024 dnl AC_HELP_STRING cause problems.
1025 dnl AC_HELP_STRING([--with-included-immodules=MODULE1 MODULE2 ...],
1026 dnl                [build the specified input method modules into gtk])
1027 AC_ARG_WITH(included_immodules,
1028 [  --with-included-immodules=MODULE1,MODULE2,...
1029                           build the specified input methods into gtk])
1031 if $dynworks; then 
1032    :
1033 else
1034    ## if the option was specified, leave it; otherwise disable included immodules
1035    if test x$with_included_immodules = xno; then
1036            with_included_immodules=yes
1037    fi
1040 all_immodules="am-et,cedilla,cyrillic-translit"
1041 if test "$gdktarget" = "win32"; then
1042    all_immodules="${all_immodules},ime"
1044 all_immodules="${all_immodules},inuktitut,ipa,multipress,thai,ti-er,ti-et,viqr"
1045 if test "$gdktarget" = "x11"; then
1046    all_immodules="${all_immodules},xim"
1049 included_immodules=""
1050 # If the switch specified without listing any specific ones, include all
1051 if test "x$with_included_immodules" = xyes ; then
1052   included_immodules="$all_immodules"
1053 else
1054   included_immodules="$with_included_immodules"
1057 AC_MSG_RESULT($included_immodules)
1058 AM_CONDITIONAL(HAVE_INCLUDED_IMMMODULES, test "x$included_immodules" != x)
1060 INCLUDED_IMMODULE_OBJ=
1061 INCLUDED_IMMODULE_DEFINE=
1063 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
1064 for immodule in $included_immodules; do
1065  immodule_underscores=`echo $immodule | sed -e 's/-/_/g'`
1066  if echo "$all_immodules" | egrep "(^|,)$immodule(\$|,)" > /dev/null; then
1067    :
1068  else
1069    AC_MSG_ERROR([the specified input method $immodule does not exist])
1070  fi
1072  INCLUDED_IMMODULE_OBJ="$INCLUDED_IMMODULE_OBJ ../modules/input/libstatic-im-$immodule.la"
1073  INCLUDED_IMMODULE_DEFINE="$INCLUDED_IMMODULE_DEFINE -DINCLUDE_IM_$immodule_underscores"
1074  eval INCLUDE_$immodule_underscores=yes
1075 done
1076 IFS="$gtk_save_ifs"
1077 AC_SUBST(INCLUDED_IMMODULE_OBJ)
1078 AC_SUBST(INCLUDED_IMMODULE_DEFINE)
1080 AM_CONDITIONAL(INCLUDE_IM_AM_ET, [test x"$INCLUDE_am_et" = xyes])
1081 AM_CONDITIONAL(INCLUDE_IM_CEDILLA, [test x"$INCLUDE_cedilla" = xyes])
1082 AM_CONDITIONAL(INCLUDE_IM_CYRILLIC_TRANSLIT, [test x"$INCLUDE_cyrillic_translit" = xyes])
1083 AM_CONDITIONAL(INCLUDE_IM_IME, [test x"$INCLUDE_ime" = xyes])
1084 AM_CONDITIONAL(INCLUDE_IM_INUKTITUT, [test x"$INCLUDE_inuktitut" = xyes])
1085 AM_CONDITIONAL(INCLUDE_IM_IPA, [test x"$INCLUDE_ipa" = xyes])
1086 AM_CONDITIONAL(INCLUDE_IM_MULTIPRESS, [test x"$INCLUDE_multipress" = xyes])
1087 AM_CONDITIONAL(INCLUDE_IM_THAI, [test x"$INCLUDE_thai" = xyes])
1088 AM_CONDITIONAL(INCLUDE_IM_TI_ER, [test x"$INCLUDE_ti_er" = xyes])
1089 AM_CONDITIONAL(INCLUDE_IM_TI_ET, [test x"$INCLUDE_ti_et" = xyes])
1090 AM_CONDITIONAL(INCLUDE_IM_VIQR, [test x"$INCLUDE_viqr" = xyes])
1091 AM_CONDITIONAL(INCLUDE_IM_XIM, [test x"$INCLUDE_xim" = xyes])
1093 AC_HEADER_SYS_WAIT
1095 AC_TYPE_SIGNAL
1097 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
1098 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
1099 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
1100 AM_CONDITIONAL(HAVE_JASPER, test "x$LIBJASPER" != x)
1102 if $dynworks ; then
1103   STATIC_LIB_DEPS=
1104   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
1105     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
1106   fi
1107   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
1108     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
1109   fi
1110   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
1111     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
1112   fi
1113 else
1114   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
1117 # Checks to see whether we should include mediaLib
1118 # support.
1120 AC_CHECK_HEADER(sys/systeminfo.h,
1121                 AC_DEFINE(HAVE_SYS_SYSTEMINFO_H, 1, 
1122                           [Define to 1 if sys/systeminfo.h is available]))
1123 AC_CHECK_HEADER(sys/sysinfo.h,
1124                 AC_DEFINE(HAVE_SYS_SYSINFO_H, 1,
1125                           [Define to 1 if sys/sysinfo.h is available]))
1127 AC_MSG_CHECKING(for mediaLib 2.3)
1128 use_mlib25=no
1129 # Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib
1130 # patch requires.
1131 AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no)
1132 if test $use_mlib = yes; then
1133     AC_DEFINE(USE_MEDIALIB, 1,
1134               [Define to 1 if medialib is available and should be used])
1135     MEDIA_LIB=-lmlib
1137     AC_MSG_CHECKING(for mediaLib 2.5)
1138     # Check for a mediaLib 2.5 function since that is what is needed for
1139     # gdk_rgb_convert integration.
1140     AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no)
1141     if test $use_mlib25 = yes; then
1142         AC_DEFINE(USE_MEDIALIB25, 1,
1143                   [Define to 1 if medialib 2.5 is available])
1144     fi
1146 AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
1147 AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)
1149 # Checks to see if we should compile in MMX support (there will be
1150 # a runtime test when the code is actually run to see if it should
1151 # be used - this just checks if we can compile it.)
1153 # This code is partially taken from Mesa
1155 AC_MSG_CHECKING(for x86 platform)
1156 case $host_cpu in
1157   i386|i486|i586|i686|i786|k6|k7)
1158         use_x86_asm=yes
1159         ;;
1160    *)
1161         use_x86_asm=no
1162 esac
1163 AC_MSG_RESULT($use_x86_asm)
1165 use_mmx_asm=no
1166 if test $use_x86_asm = yes; then
1167     save_ac_ext=$ac_ext
1168     ac_ext=S
1169     
1170     AC_MSG_CHECKING(compiler support for MMX)
1171     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
1172     if AC_TRY_EVAL(ac_compile); then
1173         use_mmx_asm=yes
1174     fi
1176     rm -rf conftest*
1178     ac_ext=$save_ac_ext
1179     if test $use_mmx_asm = yes; then
1180       AC_DEFINE(USE_MMX, 1,
1181                 [Define to 1 if XXM is available and should be used])
1182       AC_MSG_RESULT(yes)
1183     else
1184       AC_MSG_RESULT(no)
1185     fi
1188 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1190 REBUILD_PNGS=
1191 if test -z "$LIBPNG" && test x"$os_win32" = xno -o x$enable_gdiplus = xno; then
1192   REBUILD_PNGS=#
1195 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
1197 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1199 if test $cross_compiling = yes; then
1200   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1201   AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
1202   if test x$GTK_UPDATE_ICON_CACHE = xno; then
1203     REBUILD_PNGS=#
1204   fi
1207 if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1208    test "x$REBUILD_PNGS" = "x#" ; then
1209      AC_MSG_ERROR([
1210 *** gtkbuiltincache.h is not in the tree, and cannot be built
1211 *** because you don't have libpng, or (when cross-compiling) you 
1212 *** don't have a prebuilt gtk-update-icon-cache on the build system.])
1215 AC_SUBST(REBUILD_PNGS)
1217 GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0 gio-2.0"
1218 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB"
1219 GDK_PIXBUF_EXTRA_CFLAGS= 
1220 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1221 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1223 ########################################
1224 # Windowing system checks
1225 ########################################
1227 GDK_PIXBUF_XLIB_PACKAGES=
1228 GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
1229 GDK_PIXBUF_XLIB_EXTRA_LIBS=
1230         
1231 X_PACKAGES=fontconfig
1232 GDK_EXTRA_LIBS="$GDK_WLIBS"
1233 GDK_EXTRA_CFLAGS=
1234         
1235 # GTK+ uses some X calls, so needs to link against X directly
1236 GTK_DEP_PACKAGES_FOR_X=
1237 GTK_DEP_LIBS_FOR_X=
1239 if test "x$gdktarget" = "xx11"; then
1240   #
1241   # We use fontconfig very peripherally when decoding the default
1242   # settings.
1243   #
1244   if $PKG_CONFIG --exists fontconfig; then : ; else
1245     AC_MSG_ERROR([
1246 *** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
1247   fi
1249   #
1250   # Check for basic X packages; we use pkg-config if available
1251   #
1252   if $PKG_CONFIG --exists x11 xext xrender; then
1253     have_base_x_pc=true
1254     X_PACKAGES="$X_PACKAGES x11 xext xrender"
1255     x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
1256     X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1257     
1258     # Strip out any .la files that pkg-config might give us (this happens
1259     # with -uninstalled.pc files)
1260     x_libs_for_checks=
1261     for I in $x_libs ; do
1262       case $I in 
1263         *.la) ;;
1264         *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1265       esac
1266     done
1267     
1268     GDK_PIXBUF_XLIB_PACKAGES="x11"
1269     GTK_PACKAGES_FOR_X="x11"
1270   else
1271     have_base_x_pc=false
1272     AC_PATH_XTRA
1273     if test x$no_x = xyes ; then
1274       AC_MSG_ERROR([X development libraries not found])
1275     fi
1276     
1277     x_cflags="$X_CFLAGS"
1278     x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
1280     GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1281     GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1282     GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1283   fi
1285   # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
1286   x_extra_libs=
1288   gtk_save_cppflags="$CPPFLAGS"
1289   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1291   gtk_save_LIBS=$LIBS
1292   LIBS="$x_libs_for_checks $LIBS"
1293   
1294   # Sanity check for the X11 and Xext libraries. While everything we need from
1295   # Xext is optional, the chances a system has *none* of these things is so
1296   # small that we just unconditionally require it.
1297   AC_CHECK_FUNC(XOpenDisplay, :,
1298                 AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
1299   AC_CHECK_FUNC(XextFindDisplay, :,
1300                 AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1301   AC_CHECK_FUNC(XRenderQueryExtension, :,
1302                 AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1304   # Check for xReply
1306   AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
1307   AC_TRY_COMPILE([#include <X11/Xlibint.h>],
1308       [xReply *rep;],
1309       [AC_MSG_RESULT([no])],
1310       [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
1311 #include <X11/Xlibint.h>],
1312            [xReply *rep;],
1313            [AC_MSG_RESULT([yes])
1314             AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
1315                       [Define if <X11/extensions/XIproto.h> needed for xReply])],
1316            [AC_MSG_RESULT([unknown])
1317             AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
1319   # Check for XConvertCase, XInternAtoms (X11R6 specific)
1321   AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1323   # Generic X11R6 check needed for XIM support; we could
1324   # probably use this to replace the above, but we'll
1325   # leave the separate checks for XConvertCase and XInternAtoms 
1326   # for clarity
1327   
1328   have_x11r6=false
1329   AC_CHECK_FUNC(XAddConnectionWatch,
1330       have_x11r6=true)
1332   if $have_x11r6; then
1333     AC_DEFINE(HAVE_X11R6, 1, [Define if we have X11R6])
1334   fi
1335   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1337   # Check for XKB support.
1339   if test "x$enable_xkb" = "xyes"; then
1340         AC_MSG_WARN(XKB support explicitly enabled)
1341         AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
1342   elif test "x$enable_xkb" = "xmaybe"; then
1343         AC_CHECK_FUNC(XkbQueryExtension,
1344                       AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension]))
1345   else
1346         AC_MSG_WARN(XKB support explicitly disabled)
1347   fi
1349   # Check for shaped window extension
1351   AC_CHECK_FUNC(XShapeCombineMask,
1352       AC_DEFINE(HAVE_SHAPE_EXT, 1,
1353                 [Define to 1 if the XShape extension is available]))
1355   # X SYNC check
1356   gtk_save_CFLAGS="$CFLAGS"
1357   CFLAGS="$CFLAGS $x_cflags"
1358   
1359   AC_CHECK_FUNC(XSyncQueryExtension,
1360       [AC_CHECK_HEADER(X11/extensions/sync.h,
1361           AC_DEFINE(HAVE_XSYNC, 1, [Have the SYNC extension library]),
1362           :, [#include <X11/Xlib.h>])])
1364   CFLAGS="$gtk_save_CFLAGS"
1366   # Xshm checks
1368   if test "x$enable_shm" = "xyes"; then
1369      # Check for the XShm extension, normally in Xext
1370      AC_CHECK_FUNC(XShmAttach,
1371         :,
1372         # On AIX, it is in XextSam instead
1373         [AC_CHECK_LIB(XextSam, XShmAttach, 
1374             [GTK_ADD_LIB(x_extra_libs,XextSam)])])
1375   fi    
1377   if test "x$enable_shm" = "xyes"; then
1378     # Check for shared memory
1379     AC_CHECK_HEADER(sys/ipc.h,
1380                     AC_DEFINE(HAVE_IPC_H, 1,
1381                               [Define to 1 if ipc.h is available]),
1382                     no_sys_ipc=yes)
1383     AC_CHECK_HEADER(sys/shm.h,
1384                     AC_DEFINE(HAVE_SHM_H, 1,
1385                               [Define to 1 if shm.h is available]),
1386                     no_sys_shm=yes)
1388     # Check for the X shared memory extension header file
1389     have_xshm=no 
1390     AC_MSG_CHECKING(X11/extensions/XShm.h)
1391     if test "x$no_xext_lib" = "xyes"; then
1392       :
1393     else
1394       gtk_save_CFLAGS="$CFLAGS"
1395       CFLAGS="$CFLAGS $x_cflags"
1396       AC_TRY_COMPILE([
1397 #include <stdlib.h>
1398 #include <sys/types.h>
1399 #include <sys/ipc.h>
1400 #include <sys/shm.h>
1401 #include <X11/Xlib.h>
1402 #include <X11/Xutil.h>
1403 #include <X11/extensions/XShm.h>
1404 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1405       CFLAGS="$gtk_save_CFLAGS"
1406     fi
1407     AC_MSG_RESULT($have_xshm)
1408     if test $have_xshm = yes ; then
1409       AC_DEFINE(HAVE_XSHM_H, 1,
1410                 [Define to 1 if xshm.h is available])
1411     fi
1412   fi
1414   if test "x$enable_xinerama" = "xyes"; then
1415     # Check for Xinerama extension (Solaris impl or Xfree impl)
1416     gtk_save_cppflags="$CPPFLAGS"
1417     CPPFLAGS="$CPPFLAGS $x_cflags"
1418   
1419     case "$host" in
1420       *-*-solaris*)
1421           # Check for solaris
1422           AC_MSG_CHECKING(for Xinerama support on Solaris)
1423           
1424           have_solaris_xinerama=false
1425           AC_CHECK_FUNC(XineramaGetInfo,
1426               [AC_CHECK_HEADER(X11/extensions/xinerama.h,
1427                   [have_solaris_xinerama=true], :,
1428                   [#include <X11/Xlib.h>])])
1429                 
1430           if $have_solaris_xinerama ; then
1431             AC_DEFINE(HAVE_SOLARIS_XINERAMA, 1,
1432                       [Define to 1 if solaris xinerama is available])
1433             AC_DEFINE(HAVE_XINERAMA, 1,
1434                       [Define to 1 if xinerama is available])
1435             AC_MSG_RESULT(yes)
1436           else
1437             AC_MSG_RESULT(no)
1438           fi
1439           ;;
1440       *)
1441           # Check for XFree
1442           AC_MSG_CHECKING(for Xinerama support on XFree86)
1443           
1444           have_xfree_xinerama=false
1445           if $PKG_CONFIG --exists xinerama ; then
1446              have_xfree_xinerama=true
1447              X_PACKAGES="$X_PACKAGES xinerama"
1448           else    
1449               AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1450                   [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1451                       [GTK_ADD_LIB(x_extra_libs,Xinerama)
1452                       have_xfree_xinerama=true], :,
1453                       [#include <X11/Xlib.h>])])
1454           fi
1456           if $have_xfree_xinerama ; then
1457             AC_DEFINE(HAVE_XFREE_XINERAMA, 1,
1458                       [Define to 1 if XFree Xinerama is available])
1459             AC_DEFINE(HAVE_XINERAMA, 1,
1460                       [Define to 1 is Xinerama is available])
1461             AC_MSG_RESULT(yes)
1462          else
1463             AC_MSG_RESULT(no)
1464          fi
1465          ;;
1466     esac
1467   fi
1468   
1469   # set up things for XInput
1471   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1472     AC_DEFINE(XINPUT_XFREE, 1,
1473               [Define to 1 if XFree XInput should be used])
1474     
1475     if $PKG_CONFIG --exists xi ; then
1476       X_PACKAGES="$X_PACKAGES xi"
1477     else
1478       GTK_ADD_LIB(x_extra_libs, Xi)
1479     fi
1480   else
1481     AC_DEFINE(XINPUT_NONE, 1,
1482               [Define to 1 if no XInput should be used])
1483   fi
1485   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1487   # Check for the RANDR extension
1488   if $PKG_CONFIG --exists "xrandr >= 1.2" ; then
1489      AC_DEFINE(HAVE_RANDR, 1, [Have the Xrandr extension library])
1491      X_PACKAGES="$X_PACKAGES xrandr"
1492   fi
1493        
1494   # Checks for Xcursor library
1495   
1496   if $PKG_CONFIG --exists xcursor ; then
1497     AC_DEFINE(HAVE_XCURSOR, 1, [Have the Xcursor library])
1498     
1499     X_PACKAGES="$X_PACKAGES xcursor"
1500   fi
1502   # Checks for XFixes extension
1503   
1504   if $PKG_CONFIG --exists xfixes ; then
1505     AC_DEFINE(HAVE_XFIXES, 1, [Have the XFIXES X extension])
1506     
1507     X_PACKAGES="$X_PACKAGES xfixes"
1508     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xfixes"
1509   fi
1511   # Checks for Xcomposite extension
1513   if $PKG_CONFIG --exists xcomposite ; then
1514     AC_DEFINE(HAVE_XCOMPOSITE, 1, [Have the XCOMPOSITE X extension])
1516     X_PACKAGES="$X_PACKAGES xcomposite"
1517     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xcomposite"
1518   fi
1520   # Checks for Xdamage extension
1522   if $PKG_CONFIG --exists xdamage ; then
1523     AC_DEFINE(HAVE_XDAMAGE, 1, [Have the XDAMAGE X extension])
1525     X_PACKAGES="$X_PACKAGES xdamage"
1526     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xdamage"
1527   fi
1529   if $have_base_x_pc ; then
1530     GDK_EXTRA_LIBS="$x_extra_libs"
1531   else
1532     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
1533   fi
1535   CPPFLAGS="$gtk_save_cppflags"
1536   LIBS="$gtk_save_libs"
1538   PKG_CHECK_MODULES(LIBPLASH, libplash)
1540   AM_CONDITIONAL(USE_X11, true)
1541 else
1542   AM_CONDITIONAL(XINPUT_XFREE, false)
1543   AM_CONDITIONAL(USE_X11, false)
1544   AM_CONDITIONAL(HAVE_X11R6, false)
1547 if test "x$gdktarget" = "xwin32"; then
1548   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid"
1549   AM_CONDITIONAL(USE_WIN32, true)
1550 else
1551   AM_CONDITIONAL(USE_WIN32, false)
1554 if test "x$gdktarget" = "xquartz"; then
1555   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
1556   AM_CONDITIONAL(USE_QUARTZ, true)
1557 else
1558   AM_CONDITIONAL(USE_QUARTZ, false)
1561 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1562 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"
1564 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1565 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1566 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1567 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1568 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1570 if test "x$gdktarget" = "xdirectfb"; then
1571   DIRECTFB_REQUIRED_VERSION=0.9.24
1572   AC_MSG_CHECKING(for DirectFB)
1574   if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then
1575       AC_MSG_RESULT(found)
1576       GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb` $GDK_EXTRA_CFLAGS"
1577       GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb` $GDK_EXTRA_LIBS"
1578   else
1579       AC_MSG_ERROR([
1580 *** DirectFB $DIRECTFB_REQUIRED_VERSION or newer and the cairo backend 
1581 *** are required. The latest version of DirectFB is always available 
1582 *** from http://www.directfb.org/.
1583   ])
1584   fi
1586   AM_CONDITIONAL(USE_DIRECTFB, true)
1587 else
1588   AM_CONDITIONAL(USE_DIRECTFB, false)
1592 # Check for Pango flags
1594 if test "x$gdktarget" = "xwin32"; then
1595         PANGO_PACKAGES="pangowin32 pangocairo"
1596 else
1597         PANGO_PACKAGES="pango pangocairo"
1600 AC_MSG_CHECKING(Pango flags)
1601 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1602         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1603         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1605         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1606 else
1607         AC_MSG_ERROR([
1608 *** Pango not found. Pango built with Cairo support is required
1609 *** to build GTK+. See http://www.pango.org for Pango information.
1613 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1615 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1616         :
1617 else
1618         gtk_save_LIBS="$LIBS"
1619         LIBS="$PANGO_LIBS $LIBS"
1620         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1621 *** Can't link to Pango. Pango is required to build
1622 *** GTK+. For more information see http://www.pango.org]))
1623         LIBS="$gtk_save_LIBS"
1626 CFLAGS="$saved_cflags"
1627 LDFLAGS="$saved_ldflags"
1629 GDK_PACKAGES="$PANGO_PACKAGES gio-2.0"
1630 if test "x$gdktarget" = "xx11"; then
1631   GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
1633 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1634 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1637 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1638 # into the pkg-config files
1640 if test $enable_explicit_deps != yes ; then
1641   GDK_PACKAGES="$PANGO_PACKAGES"
1642   GDK_EXTRA_LIBS=
1645 AC_SUBST(GDK_PACKAGES)
1646 AC_SUBST(GDK_EXTRA_LIBS)
1647 AC_SUBST(GDK_EXTRA_CFLAGS)
1648 AC_SUBST(GDK_DEP_LIBS)
1649 AC_SUBST(GDK_DEP_CFLAGS)
1652 ########################################
1653 # Check for Accessibility Toolkit flags
1654 ########################################
1656 ATK_PACKAGES=atk
1657 AC_MSG_CHECKING(ATK flags)
1658 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1659         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1660         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1662         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1663 else
1664         AC_MSG_ERROR([
1665 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1666 *** to build GTK+.
1670 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1671         :
1672 else
1673         gtk_save_LIBS="$LIBS"
1674         LIBS="$ATK_LIBS $LIBS"
1675         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1676                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1677                 *** to build GTK+]))
1678         LIBS="$gtk_save_LIBS"
1681 GTK_PACKAGES="atk cairo gio-2.0 libplash"
1682 if test "x$gdktarget" = "xx11"; then
1683   GTK_PACKAGES="$GTK_PACKAGES pangoft2"
1685 GTK_EXTRA_LIBS=
1686 GTK_EXTRA_CFLAGS= 
1687 GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1688 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"
1690 if test x"$os_win32" = xyes; then
1691   GTK_EXTRA_CFLAGS="$msnative_struct"
1694 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
1695 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
1696 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
1697 CAIRO_PREFIX="`pkg-config --variable=prefix cairo`"
1699 if test $enable_explicit_deps != yes ; then
1700   GDK_PIXBUF_EXTRA_LIBS=
1703 AC_SUBST(GDK_PIXBUF_PACKAGES)
1704 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
1705 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
1706 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
1707 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
1709 AC_SUBST(GTK_PACKAGES)
1710 AC_SUBST(GTK_EXTRA_LIBS)
1711 AC_SUBST(GTK_EXTRA_CFLAGS)
1712 AC_SUBST(GTK_DEP_LIBS)
1713 AC_SUBST(GTK_DEP_CFLAGS)
1715 AC_SUBST(GLIB_PREFIX)
1716 AC_SUBST(ATK_PREFIX)
1717 AC_SUBST(PANGO_PREFIX)
1718 AC_SUBST(CAIRO_PREFIX)
1720 AC_SUBST(GTK_DEBUG_FLAGS)
1721 AC_SUBST(GTK_XIM_FLAGS)
1723 ########################
1724 # Checks needed for gail
1725 ########################
1727 old_LIBS="$LIBS"
1728 dnl Checks for inet libraries:
1729 AC_SEARCH_LIBS(gethostent, nsl)
1730 AC_SEARCH_LIBS(setsockopt, socket)
1731 AC_SEARCH_LIBS(connect, inet)
1733 dnl check for the sockaddr_un.sun_len member
1734 AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
1735                 [struct_sockaddr_un_sun_len=true],
1736                 [struct_sockaddr_un_suin_len=false],
1737                 [#include <sys/types.h>
1738                  #include <sys/un.h>]
1739                 )
1740 case $struct_sockaddr_un_sun_len in 
1741         true)
1742                 AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_UN_SUN_LEN, 1,
1743                                    [Have the sockaddr_un.sun_len member])
1744                 ;;
1745         *)
1746                 ;;
1747 esac
1749 GAIL_INET_LIBS="$LIBS"
1750 AC_SUBST([GAIL_INET_LIBS])
1752 LIBS="$old_LIBS"
1754 ################################################################
1755 # Printing system checks
1756 ################################################################
1758 AC_ARG_ENABLE(cups,
1759               [AC_HELP_STRING([--disable-cups]
1760                               [disable cups print backend])],,
1761               [enable_cups=auto])
1763 if test "x$enable_cups" = "xauto"
1764 then
1765   AC_PATH_PROG(CUPS_CONFIG, cups-config, no)
1766   if test "x$CUPS_CONFIG" != "xno"; then
1767     CUPS_CFLAGS=`$CUPS_CONFIG --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
1768     CUPS_LIBS=`$CUPS_CONFIG --libs`
1770     CUPS_API_VERSION=`$CUPS_CONFIG --api-version`
1771     CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $1}'`
1772     CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'`
1774     if test $CUPS_API_MAJOR -gt 1 -o \
1775             $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then
1776       AC_DEFINE(HAVE_CUPS_API_1_2, 1, 
1777                 [Define to 1 if CUPS 1.2 API is available])
1778     fi
1780     AC_SUBST(CUPS_API_MAJOR)
1781     AC_SUBST(CUPS_API_MINOR)
1782     AC_SUBST(CUPS_CFLAGS)
1783     AC_SUBST(CUPS_LIBS)
1785     AC_CHECK_HEADER(cups/cups.h,,AC_MSG_ERROR([[*** Sorry, cups-config present but cups/cups.h missing.]]))
1786   fi
1787   AM_CONDITIONAL(HAVE_CUPS, test "x$CUPS_CONFIG" != "xno")
1789   gtk_save_cflags="$CFLAGS"
1790   CFLAGS="$CUPS_CFLAGS"
1791   AC_TRY_COMPILE([#include <cups/http.h>],
1792                  [http_t http; char *s = http.authstring;],
1793                  [AC_DEFINE(HAVE_HTTP_AUTHSTRING, [],
1794                             [Define if cups http_t authstring field is accessible])],)
1795   CFLAGS="$gtk_save_cflags"
1797   AC_SUBST(HAVE_HTTP_AUTHSTRING)
1799   gtk_save_libs="$LIBS"
1800   LIBS="$CUPS_LIBS"
1801   AC_CHECK_FUNCS(httpGetAuthString)
1802   LIBS="$gtk_save_libs"
1804 else
1805   AM_CONDITIONAL(HAVE_CUPS, false)
1808 gtk_save_cppflags="$CPPFLAGS"
1809 CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS"
1810                           
1811 AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
1812 *** Can't find cairo-pdf.h. You must build Cairo with the pdf
1813 *** backend enabled.]))
1815 if test "$os_win32" != "yes"; then
1816   AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([
1817 *** Can't find cairo-ps.h. You must build Cairo with the 
1818 *** postscript backend enabled.]))
1819 fi   
1821 CPPFLAGS="$gtk_save_cppflags"
1822      
1823                                 
1824 AC_ARG_ENABLE(test-print-backend,
1825               [AC_HELP_STRING([--enable-test-print-backend],
1826                               [build test print backend])],,
1827               [enable_test_print_backend=no])
1828 AM_CONDITIONAL(TEST_PRINT_BACKEND, test "x$enable_test_print_backend" != "xno")
1831 ################################################################
1832 # Strip -export-dynamic from the link lines of various libraries
1833 ################################################################
1836 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1837 #  but this flag is only meaningful for executables. For libraries
1838 #  the effect is undefined; what it causes on Linux is that the
1839 #  export list from -export-symbols-regex is ignored and everything
1840 #  is exported
1842 # We are using gmodule-no-export now, but I'm leaving the stripping
1843 # code in place for now, since pango and atk still require gmodule.
1844 export SED
1845 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1846 if test -n "$export_dynamic"; then
1847   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1848   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1849   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1850   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1854 ##################################################
1855 # Checks for gtk-doc and docbook-tools
1856 ##################################################
1858 GTK_DOC_CHECK([1.8])
1860 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1861 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1863 AC_ARG_ENABLE(man,
1864               [AC_HELP_STRING([--enable-man],
1865                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1866               enable_man=no)
1868 if test "${enable_man}" != no; then
1869   dnl
1870   dnl Check for xsltproc
1871   dnl
1872   AC_PATH_PROG([XSLTPROC], [xsltproc])
1873   if test -z "$XSLTPROC"; then
1874     enable_man=no
1875   fi
1877   dnl check for DocBook DTD and stylesheets in the local catalog.
1878   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1879      [DocBook XML DTD V4.1.2],,enable_man=no)
1880   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1881      [DocBook XSL Stylesheets],,enable_man=no)
1884 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1887 ##################################################
1888 # Output commands
1889 ##################################################
1891 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1892         outfile=gdkconfig.h-tmp
1893         cat > $outfile <<\_______EOF
1894 /* gdkconfig.h
1896  * This is a generated file.  Please modify `configure.in'
1897  */
1899 #ifndef GDKCONFIG_H
1900 #define GDKCONFIG_H
1902 #ifdef __cplusplus
1903 extern "C" {
1904 #endif /* __cplusplus */
1906 #ifndef GSEAL
1907 /* introduce GSEAL() here for all of Gdk and Gtk+ without the need to modify GLib */
1908 #  ifdef GSEAL_ENABLE
1909 #    define GSEAL(ident)      _g_sealed__ ## ident
1910 #  else
1911 #    define GSEAL(ident)      ident
1912 #  endif
1913 #endif /* !GSEAL */
1915 _______EOF
1917         cat >>$outfile <<_______EOF
1918 $gdk_windowing
1919 $gdk_wc
1920 _______EOF
1922         cat >>$outfile <<_______EOF
1924 #ifdef __cplusplus
1926 #endif /* __cplusplus */
1928 #endif /* GDKCONFIG_H */
1929 _______EOF
1932         if cmp -s $outfile gdk/gdkconfig.h; then
1933           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1934           rm -f $outfile
1935         else
1936           mv $outfile gdk/gdkconfig.h
1937         fi
1939 if test "x$gdktarget" = "xx11" ; then
1940   gdk_windowing='
1941 #define GDK_WINDOWING_X11'
1942 elif test "x$gdktarget" = "xwin32" ; then
1943   gdk_windowing='
1944 #define GDK_WINDOWING_WIN32'
1945 elif test "x$gdktarget" = "xquartz" ; then
1946   gdk_windowing='
1947 #define GDK_WINDOWING_QUARTZ'
1948 elif test "x$gdktarget" = "xdirectfb" ; then
1949   gdk_windowing='
1950 #define GDK_WINDOWING_DIRECTFB'
1953 if test x$gdk_wchar_h = xyes; then
1954   gdk_wc='
1955 #define GDK_HAVE_WCHAR_H 1'
1957 if test x$gdk_wctype_h = xyes; then
1958   gdk_wc="\$gdk_wc
1959 #define GDK_HAVE_WCTYPE_H 1"
1961 if test x$gdk_working_wctype = xno; then
1962   gdk_wc="\$gdk_wc
1963 #define GDK_HAVE_BROKEN_WCTYPE 1"
1969 AC_CONFIG_FILES([
1970 config.h.win32
1971 gtk-zip.sh
1972 Makefile
1973 gdk-pixbuf-2.0.pc
1974 gdk-2.0.pc
1975 gtk+-2.0.pc
1976 gtk+-unix-print-2.0.pc
1977 gail.pc
1978 gdk-pixbuf-2.0-uninstalled.pc
1979 gdk-2.0-uninstalled.pc
1980 gtk+-2.0-uninstalled.pc
1981 gail-uninstalled.pc
1982 m4macros/Makefile
1983 po/Makefile.in
1984 po-properties/Makefile.in
1985 demos/Makefile
1986 demos/gtk-demo/Makefile
1987 demos/gtk-demo/geninclude.pl
1988 tests/Makefile
1989 docs/Makefile
1990 docs/reference/Makefile
1991 docs/reference/gdk-pixbuf/Makefile
1992 docs/reference/gdk-pixbuf/version.xml
1993 docs/reference/gdk/Makefile
1994 docs/reference/gdk/version.xml
1995 docs/reference/gtk/Makefile
1996 docs/reference/gtk/version.xml
1997 docs/reference/libgail-util/Makefile
1998 docs/faq/Makefile
1999 docs/tools/Makefile
2000 docs/tutorial/Makefile
2001 gdk-pixbuf/Makefile
2002 gdk-pixbuf/gdk_pixbuf.rc
2003 gdk-pixbuf/gdk-pixbuf-features.h
2004 gdk-pixbuf/pixops/Makefile
2005 gdk/Makefile
2006 gdk/x11/Makefile
2007 gdk/win32/Makefile
2008 gdk/win32/rc/Makefile
2009 gdk/win32/rc/gdk.rc
2010 gdk/quartz/Makefile
2011 gdk/directfb/Makefile
2012 gtk/Makefile
2013 gtk/makefile.msc
2014 gtk/gtkversion.h
2015 gtk/gtk-win32.rc
2016 gtk/theme-bits/Makefile
2017 gtk/tests/Makefile
2018 modules/Makefile
2019 modules/other/Makefile
2020 modules/other/gail/Makefile
2021 modules/other/gail/libgail-util/Makefile
2022 modules/other/gail/tests/Makefile
2023 modules/engines/Makefile
2024 modules/engines/pixbuf/Makefile
2025 modules/engines/ms-windows/Makefile
2026 modules/engines/ms-windows/Theme/Makefile
2027 modules/engines/ms-windows/Theme/gtk-2.0/Makefile
2028 modules/input/Makefile
2029 modules/printbackends/Makefile
2030 modules/printbackends/cups/Makefile
2031 modules/printbackends/lpr/Makefile
2032 modules/printbackends/file/Makefile
2033 modules/printbackends/test/Makefile
2034 perf/Makefile
2035 contrib/Makefile
2036 contrib/gdk-pixbuf-xlib/Makefile
2037 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
2040 AC_OUTPUT
2042 echo "configuration:
2043         target: $gdktarget"