]> Pileus Git - ~andy/gtk/blobdiff - configure.in
Translation updated by Ivar Smolin.
[~andy/gtk] / configure.in
index d4c2f72ae292b98b58aa7599e2ee430d010af6f6..d1402a5699c85146b3024b3f584e0b5f4e517467 100644 (file)
@@ -11,30 +11,34 @@ AC_PREREQ(2.54)
 # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
 
 m4_define([gtk_major_version], [2])
-m4_define([gtk_minor_version], [3])
+m4_define([gtk_minor_version], [9])
 m4_define([gtk_micro_version], [0])
 m4_define([gtk_version],
           [gtk_major_version.gtk_minor_version.gtk_micro_version])
 m4_define([gtk_interface_age], [0])
-m4_define([gtk_binary_age], [300])
+m4_define([gtk_binary_age],
+          [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
 # This is the X.Y used in -lgtk-FOO-X.Y
 m4_define([gtk_api_version], [2.0])
 
 # Define a string for the earliest version that this release has
-# forward/backwards binary compatibility with. This is used for module
-# locations. (Should this be backwards-compat instead?)
+# backwards binary compatibility with for all interfaces a module
+# might. Unless we add module-only API with lower stability
+# guarantees, this should be unchanged until we break binary compat
+# for GTK+.
 #
 #GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
-m4_define([gtk_binary_version], [2.2.0])
+m4_define([gtk_binary_version], [2.4.0])
 
 # required versions of other packages
-m4_define([glib_required_version], [2.1.4])
-m4_define([pango_required_version], [1.0.1])
+m4_define([glib_required_version], [2.9.2])
+m4_define([pango_required_version], [1.9.0])
 m4_define([atk_required_version], [1.0.1])
+m4_define([cairo_required_version], [0.9.2])
 
 
 AC_INIT([gtk+], [gtk_version],
-        [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk+],
+        [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
        [gtk+])
 
 AC_CONFIG_SRCDIR([gdk/gdktypes.h])
@@ -47,6 +51,7 @@ AM_CONFIG_HEADER(config.h)
 
 #
 # For each of the libraries we build, we define the following
 # substituted variables:
 #
 # foo_PACKAGES:     pkg-config packages this library requires
@@ -106,20 +111,53 @@ GETTEXT_PACKAGE=gtk20
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
 
+AC_CANONICAL_HOST
 
+MATH_LIB=-lm
+AC_MSG_CHECKING([for native Win32])
+case "$host" in
+  *-*-mingw*)
+    os_win32=yes
+    MATH_LIB=
+    ;;
+  *)
+    os_win32=no
+    ;;
+esac
+AC_MSG_RESULT([$os_win32])
+
+case $host in
+  *-*-linux*)
+    os_linux=yes
+    ;;
+esac
 dnl Initialize libtool
 AC_PROG_CC
 AM_DISABLE_STATIC
+
+if test "$os_win32" = "yes"; then
+  if test x$enable_static = xyes -o x$enable_static = x; then
+    AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
+    enable_static=no
+  fi
+  if test x$enable_shared = xno; then
+    AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
+  fi
+  enable_shared=yes
+fi
+
 AC_LIBTOOL_WIN32_DLL
 AM_PROG_LIBTOOL
 
+# Make sure we use 64-bit versions of various file stuff.
+AC_SYS_LARGEFILE
+
 AM_PROG_AS
+AC_PATH_PROG(NM, nm, nm)
 
 dnl Initialize maintainer mode
 AM_MAINTAINER_MODE
 
-AC_CANONICAL_HOST
-
 AC_MSG_CHECKING([for some Win32 platform])
 case "$host" in
   *-*-mingw*|*-*-cygwin*)
@@ -132,21 +170,15 @@ esac
 AC_MSG_RESULT([$platform_win32])
 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
 
-MATH_LIB=-lm
-AC_MSG_CHECKING([for native Win32])
-case "$host" in
-  *-*-mingw*)
-    os_win32=yes
-    MATH_LIB=
-    ;;
-  *)
-    os_win32=no
-    ;;
-esac
-AC_MSG_RESULT([$os_win32])
 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
+AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
+AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
 
 if test "$os_win32" = "yes"; then
+  AC_CHECK_TOOL(WINDRES, windres, no)
+  if test "$WINDRES" = no; then
+    AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
+  fi
   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
 fi
 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
@@ -161,12 +193,8 @@ AC_ARG_ENABLE(debug,
               enable_debug=debug_default)
 AC_ARG_ENABLE(shm,
               [AC_HELP_STRING([--enable-shm],
-                              [support shared memory if available [default=yes]])],
-              [echo $enable_shm, enable_shm="yes"])
-AC_ARG_ENABLE(ansi,
-              [AC_HELP_STRING([--enable-ansi],
-                              [turn on strict ansi [default=no]])],,
-              [enable_ansi=no])
+                              [support shared memory if available [default=yes]])],,
+              [enable_shm="yes"])
 AC_ARG_ENABLE(xkb,
               [AC_HELP_STRING([--enable-xkb],
                               [support XKB [default=maybe]])],,
@@ -175,6 +203,10 @@ AC_ARG_ENABLE(rebuilds,
               [AC_HELP_STRING([--disable-rebuilds],
                               [disable all source autogeneration rules])],,
               [enable_rebuilds=yes])
+AC_ARG_ENABLE(visibility,
+              [AC_HELP_STRING([--disable-visibility],
+                              [don't use ELF visibility attributes])],,
+              [enable_visibility=yes])
 
 AC_ARG_WITH(xinput,
             [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
@@ -186,21 +218,19 @@ AC_ARG_WITH(ie55,
             [AC_HELP_STRING([--with-ie55=DIRECTORY],
                             [IE5.5 libs and headers (for Active IMM)])])
 
-GLIB_AC_DIVERT_BEFORE_HELP([
 if test "$platform_win32" = yes; then
   gdktarget=win32
 else
   gdktarget=x11
 fi
-])
 
-AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
+AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32/quartz/directfb]] select non-default GDK target],
        gdktarget=$with_gdktarget)
 
 AC_SUBST(gdktarget)
 case $gdktarget in
-  x11|linux-fb|win32) ;;
-  *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);;
+  x11|linux-fb|win32|quartz|directfb) ;;
+  *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb, quartz, directfb or win32.]);;
 esac
 
 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
@@ -230,6 +260,11 @@ else
   fi
 fi
 
+if test "x$enable_visibility" = "xno"; then
+  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
+fi
+
+
 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
 
                        
@@ -310,7 +345,8 @@ ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
 PKG_CHECK_MODULES(BASE_DEPENDENCIES,
   [glib-2.0 >= glib_required_version dnl
    atk >= atk_required_version dnl
-   pango >= pango_required_version])
+   pango >= pango_required_version dnl
+   cairo >= cairo_required_version])
 
 if test "$os_win32" != yes; then
     # libtool option to control which symbols are exported
@@ -334,8 +370,8 @@ AC_ARG_ENABLE(explicit-deps,
 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
 case $enable_explicit_deps in
   auto)
-    deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
-    if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then
+    deplibs_check_method=`(./libtool --config; echo eval echo \\$deplibs_check_method) | sh`
+    if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
       enable_explicit_deps=yes  
     else
       enable_explicit_deps=no  
@@ -368,6 +404,18 @@ AC_SUBST(REBUILD)
 
 AC_CHECK_FUNCS(lstat mkstemp flockfile)
 
+# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
+AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
+AC_TRY_LINK([#include <langinfo.h>], [
+char c;
+c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
+], gtk_ok=yes, gtk_ok=no)
+AC_MSG_RESULT($gtk_ok)
+if test "$gtk_ok" = "yes"; then
+  AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
+           [Define if _NL_TIME_FIRST_WEEKDAY is available])
+fi
+
 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
 AC_MSG_CHECKING(for sigsetjmp)
 AC_TRY_LINK([#include <setjmp.h>], [
@@ -379,25 +427,18 @@ if test "$gtk_ok" = "yes"; then
   AC_DEFINE(HAVE_SIGSETJMP)
 fi
 
-AC_MSG_CHECKING(whether make is GNU Make)
-STRIP_BEGIN=
-STRIP_END=
-if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
-       STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
-       STRIP_END=')'
-       AC_MSG_RESULT(yes)
-else
-       AC_MSG_RESULT(no)
-fi
-STRIP_DUMMY=
-AC_SUBST(STRIP_DUMMY)
-AC_SUBST(STRIP_BEGIN)
-AC_SUBST(STRIP_END)
-
 # i18n stuff
-ALL_LINGUAS="am az be bg ca cs cy da de el en_GB es et eu fa fi fr ga gl he hi hr hu ia id it ja ko lt lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sr sr@Latn sv ta tr uk vi wa yi zh_CN zh_TW"
+# TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
+# directories.  If you add a new language to ALL_LINGUAS, please make
+# sure that both po/ and po-properties/ have .po files that correspond
+# to your language.  If you only add one to po/, the build will break
+# in po-properties/.
+ALL_LINGUAS="af am ar az az_IR be bg bn br bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ko ku li lt lv mi mk ml mn mr ms nb ne nl nn no nso pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk uz uz@Latn vi wa xh yi zh_CN zh_HK zh_TW"
 AM_GLIB_GNU_GETTEXT
 LIBS="$LIBS $INTLLIBS"
+AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
+        sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
+      esac])
 
 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
 
@@ -436,6 +477,20 @@ case $host in
   ;;
 esac
 
+#
+# see bug 162979
+#
+AC_MSG_CHECKING(for HP-UX)
+case $host_os in
+  hpux9* | hpux10* | hpux11*)
+    AC_MSG_RESULT(yes)
+    CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
+  ;;
+  *)
+    AC_MSG_RESULT(no)
+  ;;
+esac
+
 dnl NeXTStep cc seems to need this
 AC_MSG_CHECKING([for extra flags for POSIX compliance])
 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
@@ -452,13 +507,21 @@ AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
 # 
 
-GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
+GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
 
 AM_PATH_GLIB_2_0(glib_required_version, :,
   AC_MSG_ERROR([
 *** GLIB glib_required_version or better is required. The latest version of 
 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
-  gobject gmodule gthread)
+  gobject gmodule-no-export gthread)
+
+# See if it's safe to turn G_DISABLE_DEPRECATED on.
+GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
+GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
+if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
+  CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
+fi
+
 
 dnl
 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
@@ -552,6 +615,7 @@ AC_C_CONST
 AC_TYPE_SIGNAL
 AC_FUNC_MMAP
 
+AC_CHECK_FUNCS(mallinfo)
 AC_CHECK_FUNCS(getresuid)
 AC_TYPE_UID_T
 
@@ -619,6 +683,14 @@ fi
 AC_MSG_RESULT($gdk_working_wctype)
 AC_SUBST(GDK_WLIBS)
 
+# Check for uxtheme.h (for MS-Windows Engine)
+AC_MSG_CHECKING(for uxtheme.h)
+AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
+if test $gtk_uxtheme_h = yes; then
+   AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
+fi
+AC_MSG_RESULT($gtk_uxtheme_h)
+
 
 ##################################################
 # Checks for gdk-pixbuf
@@ -652,7 +724,7 @@ else
     AC_MSG_RESULT(yes)
     AC_MSG_CHECKING(whether dynamic modules work)
     ## for loop is to strip newline 
-    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-2.0`
+    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
     for I in $tmp; do
         dynworks=$I
     done
@@ -706,7 +778,7 @@ dnl Test for libtiff
           [AC_CHECK_HEADER(tiffio.h,
             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
-        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
+        AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
   fi
 
   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
@@ -792,12 +864,6 @@ dnl Test for libpng
 *** from CVS.])
   fi
 
-  REBUILD_PNGS=\#
-  if test -z "$LIBPNG"; then
-     REBUILD_PNGS=
-  fi
-  AC_SUBST(REBUILD_PNGS)
-
 AC_SUBST(LIBTIFF)
 AC_SUBST(LIBJPEG)
 AC_SUBST(LIBPNG)
@@ -827,7 +893,7 @@ else
    fi
 fi
 
-all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga"
+all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
 included_loaders=""
 # If no loaders specified, include all
 if test "x$with_included_loaders" = xyes ; then
@@ -919,6 +985,11 @@ fi
 
 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
 
+REBUILD_PNGS=
+if test -z "$LIBPNG"; then
+  REBUILD_PNGS=#
+fi
+
 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
 
 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
@@ -926,11 +997,21 @@ AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
 if test $cross_compiling = yes; then
   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
   if test x$GDK_PIXBUF_CSOURCE = xno; then
-    AC_MSG_ERROR(Could not find a gdk-pixbuf-csource in your PATH)
+    REBUILD_PNGS=#
   fi
 fi
 
-GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
+if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
+   test "x$REBUILD_PNGS" = "x#" ; then
+     AC_MSG_ERROR([
+*** gtkbuiltincache.h is not in the tree, and cannot be built
+*** because you don't have libpng, or (when cross-compiling) you 
+*** don't have a prebuilt gdk-pixbuf-csource on the host system.])
+fi
+
+AC_SUBST(REBUILD_PNGS)
+
+GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
 GDK_PIXBUF_EXTRA_CFLAGS= 
 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
@@ -947,242 +1028,110 @@ AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
 # Windowing system checks
 ########################################
 
-GDK_EXTRA_LIBS=$GDK_WLIBS
-GDK_EXTRA_CFLAGS= 
+GDK_PIXBUF_XLIB_PACKAGES=
+GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
+GDK_PIXBUF_XLIB_EXTRA_LIBS=
+       
+X_PACKAGES=fontconfig
+GDK_EXTRA_LIBS="$GDK_WLIBS"
+GDK_EXTRA_CFLAGS=
+       
+# GTK+ uses some X calls, so needs to link against X directly
+GTK_DEP_PACKAGES_FOR_X=
+GTK_DEP_LIBS_FOR_X=
 
-FREETYPE_LIBS=
-FREETYPE_CFLAGS=
-if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
+if test "x$gdktarget" = "xx11"; then
   #
-  # Checks for FreeType
+  # We use fontconfig very peripherally when decoding the default
+  # settings.
   #
-  have_freetype=false
-  AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
-  if test "x$FREETYPE_CONFIG" != "xno" ; then
-    FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
-    FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
-
-    gtk_save_LIBS="$LIBS"
-    LIBS="$FREETYPE_LIBS $LIBS"
-    AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
-    LIBS="$gtk_save_LIBS"
-
-    if $have_freetype ; then
-      gtk_save_cppflags="$CPPFLAGS"
-      CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
-
-      AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
-      AC_TRY_COMPILE([
-#include <freetype/freetype.h>
-#include FT_ERRORS_H
-    ],
-                    [(void)1;],:,have_freetype=false)
-      if $have_freetype ; then
-        AC_MSG_RESULT(yes)
-      else
-        AC_MSG_RESULT(no)
-      fi
-
-      CPPFLAGS="$gtk_save_cppflags"
-    fi
-  fi
-  AC_SUBST(FREETYPE_LIBS)
-  AC_SUBST(FREETYPE_CFLAGS)
-fi
-
-if test "x$gdktarget" = "xx11"; then
-  # We start off with the libraries from Pango
-
-  if $PKG_CONFIG --exists pangox ; then : ; else
-    AC_MSG_ERROR([pangox Pango backend is required for x11 target])
-  fi
-    
-  ## be sure we also have Pango built with xft support
-  if $PKG_CONFIG --exists pangoxft ; then
-    PANGO_PACKAGES="pangoxft pangox"
-    have_xft=true
-    AC_DEFINE(HAVE_XFT)
-    if $have_freetype ; then
-      :
-    else
-      AC_MSG_ERROR([pangoxft Pango backend found but did not find freetype libraries])
-    fi
-  else
-    PANGO_PACKAGES="pangox"
-    have_xft=false
-  fi
-
-  AM_CONDITIONAL(HAVE_XFT, $have_xft)
-
-  if $have_xft; then
-    if $PKG_CONFIG --exists xft ; then
-      AC_DEFINE(HAVE_XFT2, 1, [Define if we have Xft, version 2])
-    fi
+  if $PKG_CONFIG --exists fontconfig; then : ; else
+    AC_MSG_ERROR([
+*** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
   fi
 
   #
-  # If Pango included the shared library dependencies from X11 in
-  # the pkg-config output, then we use that (to avoid duplicates).
-  # but if they were omitted to avoid binary compatibility problems
-  # then we need to repeat the checks.
+  # Check for basic X packages; we use pkg-config if available
   #
-  x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
-  case "$x_libs" in
-    *-lX11*) pango_omitted_x_deps=no ;;
-    *)       pango_omitted_x_deps=yes ;;
-  esac
-
-  x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`"
-  x_extra_libs=
-
-  if test $pango_omitted_x_deps = yes ; then
+  if $PKG_CONFIG --exists x11 xext xrender; then
+    have_base_x_pc=true
+    X_PACKAGES="$X_PACKAGES x11 xext xrender"
+    x_libs="`pkg-config --libs x11 xext xrender`"
+    X_CFLAGS="`pkg-config --cflags x11 xext xrender`"
+    
+    # Strip out any .la files that pkg-config might give us (this happens
+    # with -uninstalled.pc files)
+    x_libs_for_checks=
+    for I in $x_libs ; do
+      case $I in 
+        *.la) ;;
+        *) x_libs_for_checks="$x_libs_for_checks $I" ;;
+      esac
+    done
+    
+    GDK_PIXBUF_XLIB_PACKAGES="x11"
+    GTK_PACKAGES_FOR_X="x11"
+  else
+    have_base_x_pc=false
     AC_PATH_XTRA
-
     if test x$no_x = xyes ; then
       AC_MSG_ERROR([X development libraries not found])
     fi
+    
+    x_cflags="$X_CFLAGS"
+    x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
 
-    x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS"
-
-    #
-    # Checks for Xft/XRender
-    #
-    if test $have_xft = true ; then
-      have_xft=false
-
-      if pkg-config --exists pangoxft '>=' 1.1.0 ; then
-        x_libs="`pkg-config --libs xft` -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
-        have_xft=true
-      else
-        gtk_save_cppflags="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS $x_cflags"
-      
-        AC_CHECK_LIB(Xrender, XRenderFindFormat, 
-         [AC_CHECK_LIB(Xft, XftFontOpen,
-           [AC_CHECK_HEADER(X11/Xft/XftFreetype.h,
-             have_xft=true,:)],
-           :,-lXrender -lXext $x_libs $FREETYPE_LIBS)]
-         ,:,-lXext $x_libs)
-         
-        if $have_xft ; then
-         x_libs="$X_LIBS -lXft -lXrender -lXext -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
-        fi
-
-        CPPFLAGS="$gtk_save_cppflags"
-      fi
-
-      if $have_xft ; then
-        :
-      else
-        AC_MSG_ERROR([pangoxft Pango backend found, but Xft not found])
-      fi
-    fi
-  fi           
-
-  ## Strip the .la files
-  x_libs_for_checks=""
-  for I in $x_libs ; do
-    case $I in 
-      *.la) ;;
-      *) x_libs_for_checks="$x_libs_for_checks $I" ;;
-    esac
-  done
-
-  # Sanity check for the X11 library
-  AC_CHECK_LIB(X11, XOpenDisplay, :,
-            AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
-            $x_libs_for_checks)
-
-  if test "x$enable_shm" = "xyes"; then
-    # Check for the Xext library (needed for XShm extention)
-    AC_CHECK_LIB(Xext, XShmAttach,
-        if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
-          x_extra_libs="-lXext"
-        fi,
-        # On AIX, it is in XextSam instead, but we still need -lXext
-        AC_CHECK_LIB(XextSam, XShmAttach, 
-            if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
-               x_extra_libs="-lXextSam -lXext"
-            else
-               x_extra_libs="-lXextSam"
-            fi, , $x_libs_for_checks),
-        $x_libs_for_checks)
+    GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
+    GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
+    GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
   fi
 
-  GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
-  # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
-  GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs $x_libs"
-
-  # Check for Xinerama extension (Solaris impl or Xfree impl)
+  # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
+  x_extra_libs=
 
   gtk_save_cppflags="$CPPFLAGS"
-  CPPFLAGS="$CPPFLAGS $x_cflags"
-
-  case "$host" in
-      *-*-solaris*)
-          # Check for solaris
-         use_solaris_xinerama=yes
-         AC_CHECK_LIB(Xext, XineramaGetInfo,
-                       use_solaris_xinerama=yes, use_solaris_xinerama=no)
-         if test "x$use_solaris_xinerama" = "xyes"; then
-             AC_CHECK_HEADER(X11/extensions/xinerama.h,
-               if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
-                   x_extra_libs="-lXext $x_extra_libs"
-               fi
-               AC_DEFINE(HAVE_SOLARIS_XINERAMA)
-               AC_DEFINE(HAVE_XINERAMA), use_solaris_xinerama=no, -lXext $x_libs_for_checks)
-         fi    
-         AC_MSG_CHECKING(for Xinerama support on Solaris)
-         AC_MSG_RESULT($use_solaris_xinerama);
-         ;;
-      *)
-         # Check for XFree
-         use_xfree_xinerama=yes
-         AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
-             [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
-                 x_extra_libs="-lXinerama $x_extra_libs"   
-                 if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
-                     x_extra_libs="-lXext $x_extra_libs"
-                 fi
-                 AC_DEFINE(HAVE_XFREE_XINERAMA)
-                 AC_DEFINE(HAVE_XINERAMA), 
-                 use_xfree_xinerama=no,
-                  [#include <X11/Xlib.h>])],
-             use_xfree_xinerama=no, -lXext $x_libs_for_checks)
-         AC_MSG_CHECKING(for Xinerama support on XFree86)
-         AC_MSG_RESULT($use_xfree_xinerama);       
-          ;;
-  esac
-
-  CPPFLAGS="$gtk_save_cppflags"
-
-  # Check for shaped window extension
-
-  AC_CHECK_LIB(Xext, XShapeCombineMask,
-      if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
-           x_extra_libs="-lXext $x_extra_libs"
-      fi
-      AC_DEFINE(HAVE_SHAPE_EXT),
-      ,
-      $x_libs_for_checks)
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 
-  # Check for XConvertCase (X11R6 specific)
-
-  AC_CHECK_LIB(X11, XConvertCase,
-      AC_DEFINE(HAVE_XCONVERTCASE),
-      ,
-      $x_libs_for_checks)
+  gtk_save_LIBS=$LIBS
+  LIBS="$x_libs_for_checks $LIBS"
+  
+  # Sanity check for the X11 and Xext libraries. While everything we need from
+  # Xext is optional, the chances a system has *none* of these things is so
+  # small that we just unconditionally require it.
+  AC_CHECK_FUNC(XOpenDisplay, :,
+                AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
+  AC_CHECK_FUNC(XextFindDisplay, :,
+                AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
+  AC_CHECK_FUNC(XRenderQueryExtension, :,
+                AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
+
+  # Check for xReply
+
+  AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
+  AC_TRY_COMPILE([#include <X11/Xlibint.h>],
+      [xReply *rep;],
+      [AC_MSG_RESULT([no])],
+      [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
+#include <X11/Xlibint.h>],
+           [xReply *rep;],
+           [AC_MSG_RESULT([yes])
+            AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
+                [Define if <X11/extensions/XIproto.h> needed for xReply])],
+           [AC_MSG_RESULT([unknown])
+            AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
+
+  # Check for XConvertCase, XInternAtoms (X11R6 specific)
+
+  AC_CHECK_FUNCS(XConvertCase XInternAtoms)
 
   # Generic X11R6 check needed for XIM support; we could
   # probably use this to replace the above, but we'll
-  # leave the separate XConvertCase check for clarity
-
+  # leave the separate checks for XConvertCase and XInternAtoms 
+  # for clarity
+  
   have_x11r6=false
-  AC_CHECK_LIB(X11, XAddConnectionWatch,
-      have_x11r6=true,
-      ,
-      $x_libs_for_checks)
+  AC_CHECK_FUNC(XAddConnectionWatch,
+      have_x11r6=true)
 
   if $have_x11r6; then
     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
@@ -1195,43 +1144,35 @@ if test "x$gdktarget" = "xx11"; then
         AC_MSG_WARN(XKB support explicitly enabled)
         AC_DEFINE(HAVE_XKB)
   elif test "x$enable_xkb" = "xmaybe"; then
-        AC_CHECK_LIB(X11, XkbQueryExtension,
-                     AC_DEFINE(HAVE_XKB),
-                    ,
-                    $x_libs_for_checks)
+        AC_CHECK_FUNC(XkbQueryExtension,
+                      AC_DEFINE(HAVE_XKB))
   else
         AC_MSG_WARN(XKB support explicitly disabled)
   fi
 
-  x_cflags="$X_CFLAGS"
-  x_ldflags="$X_LDFLAGS"
-
-  # set up things for XInput
-
-  if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
-    AC_DEFINE(XINPUT_XFREE)
-    x_extra_libs="-lXi $x_extra_libs"
-  else
-    AC_DEFINE(XINPUT_NONE)
-  fi
-
-  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
+  # Check for shaped window extension
 
-  # Check for the RANDR extension
+  AC_CHECK_FUNC(XShapeCombineMask,
+      AC_DEFINE(HAVE_SHAPE_EXT))
 
-  AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
-      [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
-          # RANDR requires RENDER
-         if test -z "`echo $x_extra_libs $x_libs | grep "\-lXrender" 2> /dev/null`"; then
-             x_extra_libs="-lXrender $x_extra_libs"
-         fi
-         x_extra_libs="-lXrandr $x_extra_libs"
-         AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library),
-         :, [#include <X11/Xlib.h>])], : ,
-       $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
+  # X SYNC check
+  
+  AC_CHECK_FUNC(XSyncQueryExtension,
+      [AC_CHECK_HEADER(X11/extensions/sync.h,
+         AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
+         :, [#include <X11/Xlib.h>])])
 
   # Xshm checks
 
+  if test "x$enable_shm" = "xyes"; then
+     # Check for the XShm extension, normally in Xext
+     AC_CHECK_FUNC(XShmAttach,
+       :,
+       # On AIX, it is in XextSam instead
+       [AC_CHECK_LIB(XextSam, XShmAttach, 
+           [GTK_ADD_LIB(x_extra_libs,XextSam)])])
+  fi    
+
   if test "x$enable_shm" = "xyes"; then
     # Check for shared memory
     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
@@ -1262,16 +1203,119 @@ if test "x$gdktarget" = "xx11"; then
     fi
   fi
 
-  GDK_EXTRA_CFLAGS=
-  if test $pango_omitted_x_deps = yes ; then
-    GDK_EXTRA_LIBS="$x_extra_libs $x_libs $GDK_EXTRA_LIBS"
+  # Check for Xinerama extension (Solaris impl or Xfree impl)
+
+  gtk_save_cppflags="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $x_cflags"
+  
+  case "$host" in
+      *-*-solaris*)
+          # Check for solaris
+         AC_MSG_CHECKING(for Xinerama support on Solaris)
+         
+         have_solaris_xinerama=false
+         AC_CHECK_FUNC(XineramaGetInfo,
+             [AC_CHECK_HEADER(X11/extensions/xinerama.h,
+                 [have_solaris_xinerama=true], :,
+                 [#include <X11/Xlib.h>])])
+               
+          if $have_solaris_xinerama ; then
+            AC_DEFINE(HAVE_SOLARIS_XINERAMA)
+           AC_DEFINE(HAVE_XINERAMA) 
+            AC_MSG_RESULT(yes)
+          else
+            AC_MSG_RESULT(no)
+          fi
+          ;;
+      *)
+         # Check for XFree
+          AC_MSG_CHECKING(for Xinerama support on XFree86)
+         
+          have_xfree_xinerama=false
+          if $PKG_CONFIG --exists xinerama ; then
+             have_xfree_xinerama=true
+             X_PACKAGES="$X_PACKAGES xinerama"
+          else    
+             AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
+                 [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
+                     [GTK_ADD_LIB(x_extra_libs,Xinerama)
+                     have_xfree_xinerama=true], :
+                      [#include <X11/Xlib.h>])])
+          fi
+
+          if $have_xfree_xinerama ; then
+            AC_DEFINE(HAVE_XFREE_XINERAMA)
+           AC_DEFINE(HAVE_XINERAMA) 
+            AC_MSG_RESULT(yes)
+         else
+            AC_MSG_RESULT(no)
+         fi
+         ;;
+  esac
+
+  # set up things for XInput
+
+  if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
+    AC_DEFINE(XINPUT_XFREE)
+    
+    if $PKG_CONFIG --exists xi ; then
+      X_PACKAGES="$X_PACKAGES xi"
+    else
+      GTK_ADD_LIB(x_extra_libs, Xi)
+    fi
+  else
+    AC_DEFINE(XINPUT_NONE)
+  fi
+
+  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
+
+  # Check for the RANDR extension
+
+  have_randr=false
+  if $PKG_CONFIG --exists xrandr ; then
+    have_randr=true
+    X_PACKAGES="$X_PACKAGES xrandr"
+  else    
+    AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
+       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
+          # RANDR requires RENDER
+          [have_randr=true
+          GTK_ADD_LIB(x_extra_libs, Xrender)
+          GTK_ADD_LIB(x_extra_libs, Xrandr)],
+         :, [#include <X11/Xlib.h>])])
+  fi
+
+  if $have_randr ; then
+     AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
+  fi
+       
+  # Checks for Xcursor library
+  
+  if $PKG_CONFIG --exists xcursor ; then
+    AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
+    
+    X_PACKAGES="$X_PACKAGES xcursor"
+  fi
+
+  # Checks for XFixes extension
+  
+  if $PKG_CONFIG --exists xfixes ; then
+    AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
+    
+    X_PACKAGES="$X_PACKAGES xfixes"
+  fi
+
+  if $have_base_x_pc ; then
+    GDK_EXTRA_LIBS="$x_extra_libs"
   else
-    GDK_EXTRA_LIBS="$x_extra_libs $GDK_EXTRA_LIBS"
+    GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
   fi
 
+  CPPFLAGS="$gtk_save_cppflags"
+  LIBS="$gtk_save_libs"
+
   AM_CONDITIONAL(USE_X11, true)
 else
-  AM_CONDITIONAL(HAVE_XFT, false)
   AM_CONDITIONAL(XINPUT_XFREE, false)
   AM_CONDITIONAL(USE_X11, false)
   AM_CONDITIONAL(HAVE_X11R6, false)
@@ -1280,23 +1324,24 @@ fi
 if test "x$gdktarget" = "xwin32"; then
   # We start off with the libraries from Pango
 
-  ## be sure we also have Pango built with win32 support
-  PANGO_PACKAGES="pangowin32"
-
   if test x$have_wintab = xyes; then
     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
   fi
 
-  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
+  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -Wl,-luuid"
   AM_CONDITIONAL(USE_WIN32, true)
 else
   AM_CONDITIONAL(USE_WIN32, false)
 fi
 
-AC_SUBST(xinput_progs)
+if test "x$gdktarget" = "xquartz"; then
+  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
+  AM_CONDITIONAL(USE_QUARTZ, true)
+else
+  AM_CONDITIONAL(USE_QUARTZ, false)
+fi
 
-GDK_PIXBUF_XLIB_PACKAGES=
 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
 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"
 
@@ -1307,20 +1352,6 @@ AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
 
 if test "x$gdktarget" = "xlinux-fb"; then
-  if $have_freetype ; then
-    :
-  else
-    AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
-  fi
-
-  ft2_libs="`$PKG_CONFIG --libs pangoft2`"
-  case "$ft2_libs" in
-    *-lfreetype*) pango_omitted_ft2_deps=no ;;
-    *)            pango_omitted_ft2_deps=yes ;;
-  esac
-
-  CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
-
   if test x$enable_shadowfb = xyes ; then
     AC_DEFINE(ENABLE_SHADOW_FB)
   fi
@@ -1332,37 +1363,41 @@ if test "x$gdktarget" = "xlinux-fb"; then
     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
   fi
   
-  GDK_EXTRA_CFLAGS=""
-  if test $pango_omitted_ft2_deps = yes ; then
-    GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
-  fi
-
   AM_CONDITIONAL(USE_LINUX_FB, true)
 else
   AM_CONDITIONAL(USE_LINUX_FB, false)
   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
 fi
 
-#
-# Pick correct Pango packages to use
-#
+if test "x$gdktarget" = "xdirectfb"; then
+  DIRECTFB_REQUIRED_VERSION=0.9.21
+  AC_MSG_CHECKING(for DirectFB)
 
-if test "x$gdktarget" = "xx11"; then
-       if $have_xft = true ; then
-            PANGO_PACKAGES="pangoxft pangox"
-        else
-            PANGO_PACKAGES=pangox
-        fi
-elif test "x$gdktarget" = "xwin32"; then
-        PANGO_PACKAGES=pangowin32
-elif test "x$gdktarget" = "xlinux-fb"; then
-        PANGO_PACKAGES=pangoft2
+  if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb ; then
+      AC_MSG_RESULT(found)
+      GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags directfb` $GDK_EXTRA_CFLAGS"
+      GDK_EXTRA_LIBS="`$PKG_CONFIG --libs directfb` $GDK_EXTRA_LIBS"
+  else
+      AC_MSG_ERROR([
+*** DirectFB $DIRECTFB_REQUIRED_VERSION or newer is required. The latest
+*** version of DirectFB is always available from http://www.directfb.org/.
+  ])
+  fi
+
+  AM_CONDITIONAL(USE_DIRECTFB, true)
 else
-        PANGO_PACKAGES=pango
+  AM_CONDITIONAL(USE_DIRECTFB, false)
 fi
 
+
 # Check for Pango flags
 
+if test "x$gdktarget" = "xwin32"; then
+       PANGO_PACKAGES="pangowin32 pangocairo"
+else
+       PANGO_PACKAGES="pango pangocairo"
+fi
+
 AC_MSG_CHECKING(Pango flags)
 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
@@ -1371,10 +1406,8 @@ if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
 else
         AC_MSG_ERROR([
-*** Pango not found. Pango is required to build GTK+.
-*** See http://www.pango.org for Pango information.
-*** For the framebuffer target, you will need to build 
-*** Pango with freetype support.
+*** Pango not found. Pango built with Cairo support is required
+*** to build GTK+. See http://www.pango.org for Pango information.
 ])
 fi
 
@@ -1394,7 +1427,10 @@ fi
 CFLAGS="$saved_cflags"
 LDFLAGS="$saved_ldflags"
 
-GDK_PACKAGES=$PANGO_PACKAGES
+GDK_PACKAGES="$PANGO_PACKAGES"
+if test "x$gdktarget" = "xx11"; then
+  GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
+fi
 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
 
@@ -1403,6 +1439,7 @@ GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PAC
 # into the pkg-config files
 #
 if test $enable_explicit_deps != yes ; then
+  GDK_PACKAGES="$PANGO_PACKAGES"
   GDK_EXTRA_LIBS=
 fi
 
@@ -1442,12 +1479,16 @@ else
         LIBS="$gtk_save_LIBS"
 fi
 
-GTK_PACKAGES=atk
+GTK_PACKAGES="atk cairo"
 GTK_EXTRA_LIBS=
 GTK_EXTRA_CFLAGS= 
-GTK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
+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"
 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"
 
+if test x"$os_win32" = xyes; then
+  GTK_EXTRA_CFLAGS="$msnative_struct"
+fi
+
 AC_SUBST(GTK_PACKAGES)
 AC_SUBST(GTK_EXTRA_LIBS)
 AC_SUBST(GTK_EXTRA_CFLAGS)
@@ -1458,15 +1499,61 @@ AC_SUBST(GTK_DEP_CFLAGS)
 AC_SUBST(GTK_DEBUG_FLAGS)
 AC_SUBST(GTK_XIM_FLAGS)
 
+################################################################
+# Strip -export-dynamic from the link lines of various libraries
+################################################################
+
+#
+# pkg-config --libs gmodule includes the "export_dynamic" flag,
+#  but this flag is only meaningful for executables. For libraries
+#  the effect is undefined; what it causes on Linux is that the
+#  export list from -export-symbols-regex is ignored and everything
+#  is exported
+#
+# We are using gmodule-no-export now, but I'm leaving the stripping
+# code in place for now, since pango and atk still require gmodule.
+export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+if test -n "$export_dynamic"; then
+  GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
+  GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
+  GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
+  GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
+fi
+
+
 ##################################################
 # Checks for gtk-doc and docbook-tools
 ##################################################
 
-GTK_DOC_CHECK([1.0])
+GTK_DOC_CHECK([1.4])
 
 AC_CHECK_PROG(DB2HTML, db2html, true, false)
 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
 
+AC_ARG_ENABLE(man,
+              [AC_HELP_STRING([--enable-man],
+                              [regenerate man pages from Docbook [default=no]])],enable_man=yes,
+              enable_man=no)
+
+if test "${enable_man}" != no; then
+  dnl
+  dnl Check for xsltproc
+  dnl
+  AC_PATH_PROG([XSLTPROC], [xsltproc])
+  if test -z "$XSLTPROC"; then
+    enable_man=no
+  fi
+
+  dnl check for DocBook DTD and stylesheets in the local catalog.
+  JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
+     [DocBook XML DTD V4.1.2],,enable_man=no)
+  JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
+     [DocBook XSL Stylesheets],,enable_man=no)
+fi
+
+AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
+
+
 ##################################################
 # Output commands
 ##################################################
@@ -1520,6 +1607,12 @@ elif test "x$gdktarget" = "xlinux-fb" ; then
   gdk_windowing='
 #define GDK_WINDOWING_FB
 #define GDK_NATIVE_WINDOW_POINTER'
+elif test "x$gdktarget" = "xquartz" ; then
+  gdk_windowing='
+#define GDK_WINDOWING_QUARTZ'
+elif test "x$gdktarget" = "xdirectfb" ; then
+  gdk_windowing='
+#define GDK_WINDOWING_DIRECTFB'
 fi
 
 if test x$gdk_wchar_h = xyes; then
@@ -1538,9 +1631,6 @@ fi
 
 ])
 
-AC_PATH_PROG(SGML2HTML, sgml2html, no)
-AM_CONDITIONAL(HAVE_SGML2HTML, test x$SGML2HTML != xno)
-
 AC_CONFIG_FILES([
 config.h.win32
 gtk-zip.sh
@@ -1553,9 +1643,7 @@ gdk-2.0-uninstalled.pc
 gtk+-2.0-uninstalled.pc
 m4macros/Makefile
 po/Makefile.in
-build/Makefile
-build/win32/Makefile
-build/win32/dirent/Makefile
+po-properties/Makefile.in
 demos/Makefile
 demos/gtk-demo/Makefile
 demos/gtk-demo/geninclude.pl
@@ -1569,6 +1657,7 @@ docs/reference/gdk/version.xml
 docs/reference/gtk/Makefile
 docs/reference/gtk/version.xml
 docs/faq/Makefile
+docs/tools/Makefile
 docs/tutorial/Makefile
 gdk-pixbuf/Makefile
 gdk-pixbuf/gdk_pixbuf.rc
@@ -1580,17 +1669,34 @@ gdk/win32/Makefile
 gdk/win32/rc/Makefile
 gdk/win32/rc/gdk.rc
 gdk/linux-fb/Makefile
+gdk/quartz/Makefile
+gdk/directfb/Makefile
 gtk/Makefile
 gtk/makefile.msc
 gtk/gtkversion.h
 gtk/gtk-win32.rc
-gtk/stock-icons/Makefile
 gtk/theme-bits/Makefile
+gtk/xdgmime/Makefile
 modules/Makefile
 modules/input/Makefile
+modules/engines/Makefile
+modules/engines/pixbuf/Makefile
+modules/engines/ms-windows/Makefile
+modules/engines/ms-windows/Theme/Makefile
+modules/engines/ms-windows/Theme/gtk-2.0/Makefile
+perf/Makefile
 contrib/Makefile
 contrib/gdk-pixbuf-xlib/Makefile
 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
 ])
 
 AC_OUTPUT
+
+echo "configuration:
+        target: $gdktarget"
+
+if test "x$gdktarget" = "xlinux-fb"; then
+  echo "Warning: The linux-fb GDK target is unmaintained"
+  echo "         and may not work or even compile"
+fi
+