http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.04.2.tar.gz
[xscreensaver] / configure.in
index 335afa2f57b60e219ed7c881b64b63c61febaa7b..901b5a23a02063a67ae8120877436c3e947df445 100644 (file)
@@ -1,6 +1,7 @@
 # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
 #
 
 # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
 #
 
+AC_PREREQ(2.52)
 AC_INIT(driver/subprocs.c)
 AC_CONFIG_HEADER(config.h)
 
 AC_INIT(driver/subprocs.c)
 AC_CONFIG_HEADER(config.h)
 
@@ -23,7 +24,6 @@ for d in driver utils hacks hacks/glx ; do
   fi
 done
 
   fi
 done
 
-
 ###############################################################################
 #
 #       Function to figure out how to run the compiler.
 ###############################################################################
 #
 #       Function to figure out how to run the compiler.
@@ -98,7 +98,7 @@ AC_DEFUN(AC_GCC_ACCEPTS_STD,
  [if test -n "$GCC"; then
    AC_CACHE_CHECK([whether gcc accepts -std],
      ac_cv_gcc_accepts_std,
  [if test -n "$GCC"; then
    AC_CACHE_CHECK([whether gcc accepts -std],
      ac_cv_gcc_accepts_std,
-    [if ( gcc -E -std=c89 - </dev/null 2>&1 >/dev/null | \
+    [if ( ( gcc -E -std=c89 - </dev/null >/dev/null ) 2>&1 | \
           grep unrecognized >/dev/null ); then
        ac_cv_gcc_accepts_std=no
      else
           grep unrecognized >/dev/null ); then
        ac_cv_gcc_accepts_std=no
      else
@@ -152,12 +152,12 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS,
     [ac_cv_install_d_creates_dirs=no
      rm -rf conftestdir
      if mkdir conftestdir; then
     [ac_cv_install_d_creates_dirs=no
      rm -rf conftestdir
      if mkdir conftestdir; then
-       cd conftestdir >&-
-       ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&-
+       cd conftestdir 2>/dev/null
+       ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1
        if test -d dir1/dir2/. ; then
          ac_cv_install_d_creates_dirs=yes
        fi
        if test -d dir1/dir2/. ; then
          ac_cv_install_d_creates_dirs=yes
        fi
-       cd .. >&-
+       cd .. 2>/dev/null
        rm -rf conftestdir
      fi
     ])
        rm -rf conftestdir
      fi
     ])
@@ -168,12 +168,12 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS,
       [ac_cv_mkdir_p_creates_dirs=no
        rm -rf conftestdir
        if mkdir conftestdir; then
       [ac_cv_mkdir_p_creates_dirs=no
        rm -rf conftestdir
        if mkdir conftestdir; then
-         cd conftestdir >&-
-         mkdir -p dir1/dir2 >&- 2>&-
+         cd conftestdir 2>/dev/null
+         mkdir -p dir1/dir2 >/dev/null 2>&1
          if test -d dir1/dir2/. ; then
            ac_cv_mkdir_p_creates_dirs=yes
          fi
          if test -d dir1/dir2/. ; then
            ac_cv_mkdir_p_creates_dirs=yes
          fi
-         cd .. >&-
+         cd .. 2>/dev/null
          rm -rf conftestdir
        fi
       ])
          rm -rf conftestdir
        fi
       ])
@@ -368,17 +368,17 @@ AC_DEFUN(AC_CHECK_ICMPHDR,
 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
   rm -fr conftestdir
   if mkdir conftestdir; then
 AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
   rm -fr conftestdir
   if mkdir conftestdir; then
-    cd conftestdir >&-
+    cd conftestdir 2>/dev/null
     # Make sure to not put "make" in the Imakefile rules, since we grep it out.
     cat > Imakefile <<'EOF'
 acfindx:
        @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
 EOF
     # Make sure to not put "make" in the Imakefile rules, since we grep it out.
     cat > Imakefile <<'EOF'
 acfindx:
        @echo 'ac_x_app_defaults="${XAPPLOADDIR}"'
 EOF
-    if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+    if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
       # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
       eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
     fi
       # GNU make sometimes prints "make[1]: Entering...", which'd confuse us.
       eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
     fi
-    cd .. >&-
+    cd .. 2>/dev/null
     rm -fr conftestdir
   fi])
 
     rm -fr conftestdir
   fi])
 
@@ -609,7 +609,7 @@ AC_DEFUN(AC_CHECK_X_HEADER, [
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  AC_CHECK_HEADER([$1], [$2])
+  AC_CHECK_HEADER([$1],[$2],[$3],[$4])
   CPPFLAGS="$ac_save_CPPFLAGS"])
 
 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
   CPPFLAGS="$ac_save_CPPFLAGS"])
 
 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
@@ -746,6 +746,7 @@ AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
+AC_EXEEXT
 AC_DEMAND_BC
 
 # stuff for Makefiles
 AC_DEMAND_BC
 
 # stuff for Makefiles
@@ -771,7 +772,7 @@ AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_GETTIMEOFDAY_ARGS
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_GETTIMEOFDAY_ARGS
-AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
+AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
 
 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
 AC_CHECK_ICMP
 
 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
 AC_CHECK_ICMP
@@ -795,6 +796,23 @@ AC_X_RANDOM_PATHS
 AC_XPOINTER
 
 
 AC_XPOINTER
 
 
+###############################################################################
+#
+#       Gettext support
+#
+###############################################################################
+
+AC_PROG_INTLTOOL
+GETTEXT_PACKAGE=xscreensaver
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
+AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE")
+AC_SUBST(GETTEXT_PACKAGE)
+
+# #### no sign of  en_GB
+#ALL_LINGUAS="ca de en_GB et fr it ko pl sv da es fi hu ja no pt pt_BR ru wa"
+ALL_LINGUAS="ca de et fr it ko pl sv da es fi hu ja no pt pt_BR ru wa"
+AM_GLIB_GNU_GETTEXT
+
 
 ###############################################################################
 #
 
 ###############################################################################
 #
@@ -803,7 +821,10 @@ AC_XPOINTER
 ###############################################################################
 
 have_xmu=no
 ###############################################################################
 
 have_xmu=no
-AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes])
+AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],,
+                  [#include <stdlib.h>
+                   #include <stdio.h>
+                   #include <X11/Intrinsic.h>])
 if test "$have_xmu" = no ; then
   XMU_SRCS='$(UTILS_SRC)/xmu.c'
   XMU_OBJS='$(UTILS_BIN)/xmu.o'
 if test "$have_xmu" = no ; then
   XMU_SRCS='$(UTILS_SRC)/xmu.c'
   XMU_OBJS='$(UTILS_BIN)/xmu.o'
@@ -871,8 +892,7 @@ AC_ARG_WITH(hackdir,[
 Installation options:
 
   --with-hackdir=DIR      Where to install the hundreds of demo executables.
 Installation options:
 
   --with-hackdir=DIR      Where to install the hundreds of demo executables.
-                          Default: \`PREFIX/lib/xscreensaver/'
-],
+                          Default: \`PREFIX/lib/xscreensaver/'],
   [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
 
 if test x"$with_hackdir" = xyes; then
   [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
 
 if test x"$with_hackdir" = xyes; then
@@ -974,7 +994,8 @@ HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER)
 if test "$with_sgi" = yes; then
   AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
                     [have_sgi=yes
 if test "$with_sgi" = yes; then
   AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h,
                     [have_sgi=yes
-                     AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)])
+                     AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],,
+                    [#include <X11/Xlib.h>])
 
 elif test "$with_sgi" != no; then
   echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
 
 elif test "$with_sgi" != no; then
   echo "error: must be yes or no: --with-sgi-ext=$with_sgi"
@@ -997,7 +1018,8 @@ AC_ARG_WITH(mit-ext,
 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
 
 if test "$with_mit" = yes; then
 HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER)
 
 if test "$with_mit" = yes; then
-  AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes])
+  AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],,
+                    [#include <X11/Xlib.h>])
 
   # Now check to see if it's really in the library; XF86Free-3.3 ships
   # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
 
   # Now check to see if it's really in the library; XF86Free-3.3 ships
   # scrnsaver.h, but doesn't include the code in libXext.a, the idiots!
@@ -1052,7 +1074,8 @@ HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE)
 if test "$with_xidle" = yes; then
   AC_CHECK_X_HEADER(X11/extensions/xidle.h,
                     [have_xidle=yes
 if test "$with_xidle" = yes; then
   AC_CHECK_X_HEADER(X11/extensions/xidle.h,
                     [have_xidle=yes
-                     AC_DEFINE(HAVE_XIDLE_EXTENSION)])
+                     AC_DEFINE(HAVE_XIDLE_EXTENSION)],,
+                    [#include <X11/Xlib.h>])
 elif test "$with_xidle" != no; then
   echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
   exit 1
 elif test "$with_xidle" != no; then
   echo "error: must be yes or no: --with-xidle-ext=$with_xidle"
   exit 1
@@ -1076,7 +1099,8 @@ HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL)
 if test "$with_sgivc" = yes; then
 
   # first check for XSGIvc.h
 if test "$with_sgivc" = yes; then
 
   # first check for XSGIvc.h
-  AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes])
+  AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],,
+                    [#include <X11/Xlib.h>])
 
   # if that succeeded, then check for the -lXsgivc
   if test "$have_sgivc" = yes; then
 
   # if that succeeded, then check for the -lXsgivc
   if test "$have_sgivc" = yes; then
@@ -1114,7 +1138,8 @@ HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS)
 if test "$with_dpms" = yes; then
 
   # first check for dpms.h
 if test "$with_dpms" = yes; then
 
   # first check for dpms.h
-  AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes])
+  AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],,
+                    [#include <X11/Xlib.h>])
 
   # if that succeeded, then check for the DPMS code in the libraries
   if test "$have_dpms" = yes; then
 
   # if that succeeded, then check for the DPMS code in the libraries
   if test "$have_dpms" = yes; then
@@ -1160,7 +1185,8 @@ HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA)
 if test "$with_xinerama" = yes; then
 
   # first check for Xinerama.h
 if test "$with_xinerama" = yes; then
 
   # first check for Xinerama.h
-  AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes])
+  AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],,
+                    [#include <X11/Xlib.h>])
 
   # if that succeeded, then check for the XINERAMA code in the libraries
   if test "$have_xinerama" = yes; then
 
   # if that succeeded, then check for the XINERAMA code in the libraries
   if test "$have_xinerama" = yes; then
@@ -1207,7 +1233,8 @@ HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
 if test "$with_xf86vmode" = yes; then
 
   # first check for xf86vmode.h
 if test "$with_xf86vmode" = yes; then
 
   # first check for xf86vmode.h
-  AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes])
+  AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],,
+                    [#include <X11/Xlib.h>])
 
   # if that succeeded, then check for the -lXxf86vm
   if test "$have_xf86vmode" = yes; then
 
   # if that succeeded, then check for the -lXxf86vm
   if test "$have_xf86vmode" = yes; then
@@ -1250,7 +1277,8 @@ if test "$with_xf86gamma" = yes; then
   if test "$have_xf86vmode" = yes; then
     have_xf86gamma=yes
   else
   if test "$have_xf86vmode" = yes; then
     have_xf86gamma=yes
   else
-    AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes])
+    AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],,
+                      [#include <X11/Xlib.h>])
   fi
 
   # if that succeeded, then check for the -lXxf86vm
   fi
 
   # if that succeeded, then check for the -lXxf86vm
@@ -1345,8 +1373,7 @@ AC_ARG_ENABLE(locking,[
 Screen locking options:
 
   --enable-locking        Compile in support for locking the display.
 Screen locking options:
 
   --enable-locking        Compile in support for locking the display.
-  --disable-locking       Do not allow locking at all.
-],
+  --disable-locking       Do not allow locking at all.],
   [enable_locking="$enableval"],[enable_locking=yes])
 if test "$enable_locking" = yes; then
   true
   [enable_locking="$enableval"],[enable_locking=yes])
 if test "$enable_locking" = yes; then
   true
@@ -1399,7 +1426,6 @@ fi
 #fi
 
 
 #fi
 
 
-
 ###############################################################################
 #
 #       Check for PAM.
 ###############################################################################
 #
 #       Check for PAM.
@@ -1753,7 +1779,8 @@ with_motif_req=unspecified
 AC_ARG_WITH(motif,[
 User interface options:
 
 AC_ARG_WITH(motif,[
 User interface options:
 
-  --with-motif            Use the Motif toolkit for the user interface.],
+  --with-motif            Use the Motif toolkit for the user interface
+                          (not recommended.)],
   [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
 
 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
   [with_motif="$withval"; with_motif_req="$withval"],[with_motif=yes])
 
 HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif)
@@ -1768,12 +1795,18 @@ if test "$with_motif" = yes; then
   AC_CHECK_X_HEADER(Xm/Xm.h,
                     [have_motif=yes
                      AC_DEFINE(HAVE_MOTIF)
   AC_CHECK_X_HEADER(Xm/Xm.h,
                     [have_motif=yes
                      AC_DEFINE(HAVE_MOTIF)
-                     MOTIF_LIBS="$MOTIF_LIBS -lXm"])
+                     MOTIF_LIBS="$MOTIF_LIBS -lXm"],,
+                    [#include <stdlib.h>
+                     #include <stdio.h>
+                     #include <X11/Intrinsic.h>])
 fi
 
 
 if test "$have_motif" = yes; then
 fi
 
 
 if test "$have_motif" = yes; then
-  AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)])
+  AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],,
+                    [#include <stdlib.h>
+                     #include <stdio.h>
+                     #include <X11/Intrinsic.h>])
 fi
 
 
 fi
 
 
@@ -1784,6 +1817,7 @@ fi
 ###############################################################################
 
 have_gtk=no
 ###############################################################################
 
 have_gtk=no
+have_gtk2=no
 with_gtk_req=unspecified
 AC_ARG_WITH(gtk,
 [  --with-gtk              Use the Gtk toolkit for the user interface.],
 with_gtk_req=unspecified
 AC_ARG_WITH(gtk,
 [  --with-gtk              Use the Gtk toolkit for the user interface.],
@@ -1810,7 +1844,9 @@ fi
 have_gnome=no
 with_gnome_req=unspecified
 AC_ARG_WITH(gnome,
 have_gnome=no
 with_gnome_req=unspecified
 AC_ARG_WITH(gnome,
-[  --with-gnome            Include support for the Gnome Control Center.],
+[  --with-gnome            Include support for the Gnome 1.x Control Center.
+                          (This option is not needed with GTK 2.x / Gnome 2.x.)
+],
   [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
 
 # if --with-gnome=/directory/ was specified, remember that directory so that
   [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
 
 # if --with-gnome=/directory/ was specified, remember that directory so that
@@ -1831,126 +1867,228 @@ if test "$with_gnome" != yes -a "$with_gnome" != no ; then
   exit 1
 fi
 
   exit 1
 fi
 
+parse_gtk_version_string() {
+  # M4 sucks!!
+  changequote(X,Y)
+  maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
+  min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
+  changequote([,])
+  ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
+  if test -z "$ac_gtk_version"; then
+    ac_gtk_version=unknown
+    ac_gtk_version_string=unknown
+  fi
+}
+
 
 jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
   
 
 jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
   
-  # if the user specified --with-gtk=/foo/ then look in /foo/bin/
-  # for glib-config and gtk-config.
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
   #
   gtk_path="$PATH"
 
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
   #
   gtk_path="$PATH"
 
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
-    gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gtk_dir:$gtk_path"
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$foo:$gtk_path"
   fi
 
   fi
 
-  if test ! -z "gnome_dir"; then
+  if test ! -z "$gnome_dir"; then
     # canonicalize slashes.
     # canonicalize slashes.
-    gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gnome_dir:$gtk_path"
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$foo:$gtk_path"
   fi
 
   fi
 
-  AC_PATH_PROGS(glib_config,  glib12-config glib-config,,  $gtk_path)
-  AC_PATH_PROGS(gtk_config,   gtk12-config  gtk-config,,   $gtk_path)
+  AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
 
 
-  if test "$with_gnome" = yes; then
-    AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
-  fi
+  if test -n "$pkg_config" ; then
+    #
+    # the new way...
+    # run pkg-config based tests.
+    #
 
 
-  if test -n "$glib_config" -a  -n "gtk_config" ; then
-    have_gtk=yes
-    if test "$with_gnome" = yes -a -n "$gnome_config" ; then
-      have_gnome=yes
+    pkgs=''
+    pkg_check_version() {
+      if test "$ok" = yes ; then
+        req="$1"
+        min="$2"
+        AC_MSG_CHECKING(for $req)
+        if $pkg_config --exists "$req" ; then
+          vers=`$pkg_config --modversion "$req"`
+          if $pkg_config --exists "$req >= $min" ; then
+            AC_MSG_RESULT($vers)
+            pkgs="$pkgs $req"
+            return 1
+          else
+            AC_MSG_RESULT($vers (wanted >= $min))
+            ok=no
+            return 0
+          fi
+        else
+          AC_MSG_RESULT(no)
+          ok=no
+          return 0
+        fi
+      fi
+    }
+
+    ok="yes"
+    pkg_check_version     gtk+-2.0  2.0.1  ; ac_gtk_version_string="$vers"
+    pkg_check_version  gmodule-2.0  2.0.0
+    pkg_check_version   libxml-2.0  2.4.6
+    pkg_check_version libglade-2.0  1.99.0
+    have_gtk="$ok"
+
+    if test "$have_gtk" = yes; then
+      have_gtk2=yes
+      AC_DEFINE(HAVE_GTK2)
     fi
     fi
-  fi
 
 
-  if test "$have_gtk" = yes; then
-    AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
-                   [ac_cv_gtk_version_string=`$gtk_config --version`])
-    ac_gtk_version_string=$ac_cv_gtk_version_string
-    # M4 sucks!!
-    changequote(X,Y)
-    maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'`
-    min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'`
-    changequote([,])
-    ac_gtk_version=`echo "$maj * 1000 + $min" | bc`
-    if test -z "$ac_gtk_version"; then
-      ac_gtk_version=unknown
-      ac_gtk_version_string=unknown
+    if test "$have_gtk" = no; then
+      #
+      # we don't have GTK 2.  Let's look for GTK 1.
+      #
+      pkgs=''
+      ok="yes"
+      pkg_check_version gtk+ 1.2           ; ac_gtk_version_string="$vers"
+      pkg_check_version glib 1.0
+      have_gtk="$ok"
+
+      # Now check for Gnome...
+      #
+      if test "$have_gtk" = yes; then
+        old_pkgs="$pkgs"
+        ok=yes
+        pkg_check_version capplet    1.0
+        pkg_check_version gnomeui    1.0
+        pkg_check_version gdk_pixbuf 0.1
+        have_gnome="$ok"
+
+        if test "$have_gnome" = no; then
+          pkgs="$old_pkgs"
+        else
+          AC_DEFINE(HAVE_CRAPPLET)
+        fi
+      fi
+    fi
+
+    if test "$have_gtk" = yes; then
+      parse_gtk_version_string
+      jurassic_gtk=no
+    else
+      have_gnome=no
+    fi
+
+    if test "$have_gtk" = yes; then
+      AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
+                     [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
+      AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
+                     [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`])
+    fi
+    ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
+    ac_gtk_config_libs=$ac_cv_gtk_config_libs
+
+    ac_gnome_config_cflags=$ac_gtk_config_cflags
+    ac_gnome_config_libs=$ac_gtk_config_libs
+
+  else
+    #
+    # the old way...
+    # run {gnome,gtk}-config based tests.
+    #
+
+    AC_PATH_PROGS(glib_config,  glib12-config glib-config,,  $gtk_path)
+    AC_PATH_PROGS(gtk_config,   gtk12-config  gtk-config,,   $gtk_path)
+
+    if test "$with_gnome" = yes; then
+      AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
+    fi
+
+    if test -n "$glib_config" -a  -n "$gtk_config" ; then
+      have_gtk=yes
+      if test "$with_gnome" = yes -a -n "$gnome_config" ; then
+        have_gnome=yes
+      fi
     fi
     fi
+
+    if test "$have_gtk" = yes; then
+      AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
+                     [ac_cv_gtk_version_string=`$gtk_config --version`])
+      ac_gtk_version_string=$ac_cv_gtk_version_string
+    fi
+
+    parse_gtk_version_string
+
     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
     then
       have_gtk=no
       have_gnome=no
       jurassic_gtk=yes
     fi
     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
     then
       have_gtk=no
       have_gnome=no
       jurassic_gtk=yes
     fi
-  fi
-
-  if test "$have_gtk" = yes; then
-    AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
-                   [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
-    AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
-                   [ac_cv_gtk_config_libs=`$gtk_config --libs`])
-  fi
-  ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
-  ac_gtk_config_libs=$ac_cv_gtk_config_libs
 
 
-  # Check for Gnome Capplet support.
-  #
-  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
-    gnome_config_libs="gtk capplet gnomeui xml gdk_pixbuf"
-    AC_MSG_CHECKING(for Gnome capplet includes)
-    AC_CACHE_VAL(ac_cv_gnome_config_cflags,
-      [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
-            grep Unknown >/dev/null ) ; then
-         ac_cv_gnome_config_cflags=''
-       else
-         ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
-       fi])
-    ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
-    if test "$ac_gnome_config_cflags" = "" ; then
-      have_gnome=no
-      AC_MSG_RESULT(no)
-    else
-      AC_MSG_RESULT($ac_gnome_config_cflags)
+    if test "$have_gtk" = yes; then
+      AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
+                     [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
+      AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
+                     [ac_cv_gtk_config_libs=`$gtk_config --libs`])
     fi
     fi
-  fi
+    ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
+    ac_gtk_config_libs=$ac_cv_gtk_config_libs
 
 
-  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
-    AC_MSG_CHECKING(for Gnome capplet libs)
-    AC_CACHE_VAL(ac_cv_gnome_config_libs,
-      [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null |
-            grep Unknown >/dev/null ) ; then
-         ac_cv_gnome_config_libs=''
-       else
-         ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
-       fi])
-    ac_gnome_config_libs=$ac_cv_gnome_config_libs
-    if test "$ac_gnome_config_libs" = "" ; then
-      have_gnome=no
-      AC_MSG_RESULT(no)
-    else
-      AC_MSG_RESULT($ac_gnome_config_libs)
+    # Check for Gnome Capplet support.
+    #
+    if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+      gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
+      AC_MSG_CHECKING(for Gnome capplet includes)
+      AC_CACHE_VAL(ac_cv_gnome_config_cflags,
+        [if ( $gnome_config --cflags $gnome_config_libs >/dev/null 2>&1 | \
+              grep Unknown >/dev/null ) ; then
+           ac_cv_gnome_config_cflags=''
+         else
+          ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
+         fi])
+      ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
+      if test "$ac_gnome_config_cflags" = "" ; then
+        have_gnome=no
+        AC_MSG_RESULT(no)
+      else
+        AC_MSG_RESULT($ac_gnome_config_cflags)
+      fi
     fi
     fi
-  fi
 
 
-  GNOME_DATADIR=""
-  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
-    GNOME_DATADIR=`$gnome_config --datadir`
-  fi
+    if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+      AC_MSG_CHECKING(for Gnome capplet libs)
+      AC_CACHE_VAL(ac_cv_gnome_config_libs,
+        [if ( $gnome_config --libs $gnome_config_libs >/dev/null 2>&1 |
+              grep Unknown >/dev/null ) ; then
+           ac_cv_gnome_config_libs=''
+         else
+           ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
+         fi])
+      ac_gnome_config_libs=$ac_cv_gnome_config_libs
+      if test "$ac_gnome_config_libs" = "" ; then
+        have_gnome=no
+        AC_MSG_RESULT(no)
+      else
+        AC_MSG_RESULT($ac_gnome_config_libs)
+      fi
+    fi
 
 
+    # If we have Gnome, then override the gtk-config values with 
+    # the gnome-config values.
+    #
+    if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+      ac_gtk_config_cflags=$ac_gnome_config_cflags
+      ac_gtk_config_libs=$ac_gnome_config_libs
+      AC_DEFINE(HAVE_CRAPPLET)
+    fi
 
 
-  # If we have Gnome, then override the gtk-config values with 
-  # the gnome-config values.
-  #
-  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
-    ac_gtk_config_cflags=$ac_gnome_config_cflags
-    ac_gtk_config_libs=$ac_gnome_config_libs
-    AC_DEFINE(HAVE_CRAPPLET)
+  fi   # end of {gnome,gtk}-config based tests
 
 
+  if test "$have_gtk" = yes -a "$have_gtk2" = no; then
     # check for this function that was not in libcapplet 1.2.
     AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
                    [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
     # check for this function that was not in libcapplet 1.2.
     AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate,
                    [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true],
@@ -1958,10 +2096,35 @@ if test "$with_gtk" = yes; then
   fi
 
 
   fi
 
 
+  GNOME_DATADIR=""
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    if test -n "$gnome_config"; then
+      GNOME_DATADIR=`$gnome_config --datadir`
+    else
+      #### is this right?
+      GNOME_DATADIR=`$pkg_config --variable=prefix gtk+`
+      GNOME_DATADIR="$GNOME_DATADIR/share"
+    fi
+  fi
+
+  # .desktop files go in different places in Gnome 1.x and Gnome 2.x...
+  if test "$have_gtk2" = yes; then
+    GNOME_PANELDIR='$(GNOME_PANELDIR2)'
+  else
+    GNOME_PANELDIR='$(GNOME_PANELDIR1)'
+  fi
+
+
   if test "$have_gtk" = yes; then
     INCLUDES="$INCLUDES $ac_gtk_config_cflags"
     GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
     AC_DEFINE(HAVE_GTK)
   if test "$have_gtk" = yes; then
     INCLUDES="$INCLUDES $ac_gtk_config_cflags"
     GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
     AC_DEFINE(HAVE_GTK)
+
+    if test "$have_gtk2" = yes; then
+      GTK_EXTRA_OBJS=""
+    else
+      GTK_EXTRA_OBJS="\$(GTK_EXTRA_OBJS)"
+    fi
   fi
 
 fi
   fi
 
 fi
@@ -1978,7 +2141,7 @@ fi
 
 ###############################################################################
 #
 
 ###############################################################################
 #
-#       Check for -lxml (if we have Gtk)
+#       Check for -lxml
 #
 ###############################################################################
 
 #
 ###############################################################################
 
@@ -1987,9 +2150,21 @@ with_xml_req=unspecified
 xml_halfassed=no
 AC_ARG_WITH(xml,
 [  --with-xml              The XML toolkit is needed for some parts of
 xml_halfassed=no
 AC_ARG_WITH(xml,
 [  --with-xml              The XML toolkit is needed for some parts of
-                          the Gtk interface.],
+                          the Gtk interface.  Without it, the configuration
+                          interface will be much less featureful.],
 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
 
 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
 
+# if --with-xml=/directory/ was specified, remember that directory so that
+# we can also look for the `xml-config' program in that directory.
+case "$with_xml" in
+  /*)
+    xml_dir="$with_xml"
+    ;;
+  *)
+    xml_dir=""
+    ;;
+esac
+
 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
 
 if test "$with_xml" != yes -a "$with_xml" != no ; then
 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
 
 if test "$with_xml" != yes -a "$with_xml" != no ; then
@@ -1997,21 +2172,101 @@ if test "$with_xml" != yes -a "$with_xml" != no ; then
   exit 1
 fi
 
   exit 1
 fi
 
-if test "$have_gtk" != yes; then
-  # don't bother if no GTK
-  with_xml=no
-fi
-
 if test "$with_xml" = yes; then
   have_xml=no
 if test "$with_xml" = yes; then
   have_xml=no
+  have_old_xml=no
+
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for for xml-config.
+  #
+  xml_path="$PATH"
+
+  if test ! -z "$gtk_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    xml_path="$foo:$xml_path"
+  fi
+
+  if test ! -z "$gnome_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    xml_path="$foo:$xml_path"
+  fi
+
+  if test -n "$pkg_config" ; then
+    #
+    # the new way...
+    # run pkg-config based tests.
+    #
+    pkgs=""
+    ok="yes"
+    pkg_check_version xml2 1.0
+
+    if test "$ok" = no; then
+      ok=yes
+      pkg_check_version xml 1.0
+    fi
+
+    have_xml="$ok"
+
+    if test "$have_xml" = yes; then
+      AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
+                     [ac_cv_xml_config_cflags=`$pkg_config --cflags $pkgs`])
+      AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
+                     [ac_cv_xml_config_libs=`$pkg_config --libs $pkgs`])
+      ac_xml_config_cflags=$ac_cv_xml_config_cflags
+      ac_xml_config_libs=$ac_cv_xml_config_libs
+    fi
+
+  else
+    #
+    # the old way...
+    # run {gnome,gtk}-config based tests.
+    #
+
+    AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
+
+    # If we found the xml-config program, run it to get flags.
+    #
+    if test -n "$xml_config" ; then
+      AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
+                     [ac_cv_xml_config_cflags=`$xml_config --cflags`])
+      AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
+                     [ac_cv_xml_config_libs=`$xml_config --libs`])
+      ac_xml_config_cflags=$ac_cv_xml_config_cflags
+      ac_xml_config_libs=$ac_cv_xml_config_libs
+    fi
+
+    ac_save_xml_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
+
+    # first try <libxml/parser.h> which is the new way...
+    #
+    AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],,
+                      [#include <libxml/parser.h>])
+
+    # if that didn't work, then try just <parser.h> which is the old way...
+    #
+    if test "$have_xml" = no; then
+      AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],,
+                        [#include <parser.h>])
+    fi
+
+    CPPFLAGS="$ac_save_xml_CPPFLAGS"
+  fi
 
 
-  # the XML stuff is likely to be in GTK paths.
-  ac_save_X_CFLAGS="$X_CFLAGS"
-  ac_save_X_LIBS="$X_LIBS"
-  X_CFLAGS="$X_CFLAGS $ac_gtk_config_cflags"
-  X_LIBS="$X_LIBS $ac_gtk_config_libs"
 
 
-  AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes])
+  have_zlib=no
+  if test "$have_xml" = yes; then
+    # we have the XML headers; now make sure zlib is around.
+    # yes, it's stupid we have to do this too, but there is
+    # dependency screwage in Gnome.
+    AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes])
+    if test "$have_zlib" = no; then
+      xml_halfassed=yes
+      have_xml=no
+    fi
+  fi
 
   if test "$have_xml" = yes; then
     # we have the header, now check for the library
 
   if test "$have_xml" = yes; then
     # we have the header, now check for the library
@@ -2020,12 +2275,20 @@ if test "$with_xml" = yes; then
     AC_CHECK_X_LIB(xml, xmlParseChunk,
                    [have_xml=yes
                     xml_halfassed=no
     AC_CHECK_X_LIB(xml, xmlParseChunk,
                    [have_xml=yes
                     xml_halfassed=no
-                    XML_LIBS="-lxml"
-                    AC_DEFINE(HAVE_XML)])
+                    XML_LIBS="$ac_xml_config_libs"
+                    AC_DEFINE(HAVE_XML)],
+                   [true],
+                   $ac_xml_config_libs)
   fi
 
   fi
 
-  X_CFLAGS="$ac_save_X_CFLAGS"
-  X_LIBS="$ac_save_X_LIBS"
+  if test "$have_xml" = yes; then
+    INCLUDES="$INCLUDES $ac_xml_config_cflags"
+    GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
+    AC_DEFINE(HAVE_XML)
+    if test "$have_old_xml" = yes; then
+      AC_DEFINE(HAVE_OLD_XML_HEADERS)
+    fi
+  fi
 
 fi
 
 
 fi
 
@@ -2196,7 +2459,8 @@ ac_mesagl_version_string=unknown
 if test "$with_gl" = yes; then
   AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
   if test "$have_gl" = yes ; then
 if test "$with_gl" = yes; then
   AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no)
   if test "$have_gl" = yes ; then
-    AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no)
+    AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no,
+                      [#include <GL/gl.h>])
   fi
 
   # If we have the headers, try and figure out which vendor it's from.
   fi
 
   # If we have the headers, try and figure out which vendor it's from.
@@ -2288,10 +2552,12 @@ EOF
          fi
          CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 
          fi
          CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 
-          # M4 sucks!!
+         mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:`
+
+         # M4 sucks!!
          changequote(X,Y)
          changequote(X,Y)
-         mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \
-              's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
+          mglv=`echo "$mglv" | sed -n \
+             's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
          changequote([,])
 
          rm -f conftest.$ac_ext
          changequote([,])
 
          rm -f conftest.$ac_ext
@@ -2351,13 +2617,16 @@ GLE_LIBS=""
 
 if test "$with_gle" = yes; then
 
 
 if test "$with_gle" = yes; then
 
-  AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no)
+  AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no,
+                    [#include <GL/gl.h>])
   if test "$have_gle3" = yes ; then
     have_gle=yes;
   else
   if test "$have_gle3" = yes ; then
     have_gle=yes;
   else
-    AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
+    AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no,
+                    [#include <GL/gl.h>])
     if test "$have_gle" = yes ; then
     if test "$have_gle" = yes ; then
-      AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
+      AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no,
+                        [#include <GL/gl.h>])
     fi
   fi
 
     fi
   fi
 
@@ -2422,7 +2691,8 @@ fi
 have_xpm=no
 with_xpm_req=unspecified
 AC_ARG_WITH(xpm,
 have_xpm=no
 with_xpm_req=unspecified
 AC_ARG_WITH(xpm,
-[  --with-xpm              Include support for XPM files in some demos.],
+[  --with-xpm              Include support for XPM files in some demos.
+                          (Not needed if Pixbuf is used.)],
   [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
 
 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
   [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes])
 
 HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM)
@@ -2431,7 +2701,8 @@ if test "$with_xpm" = yes; then
   AC_CHECK_X_HEADER(X11/xpm.h,
                    [have_xpm=yes
                     AC_DEFINE(HAVE_XPM)
   AC_CHECK_X_HEADER(X11/xpm.h,
                    [have_xpm=yes
                     AC_DEFINE(HAVE_XPM)
-                    XPM_LIBS="-lXpm"])
+                    XPM_LIBS="-lXpm"],,
+                    [#include <X11/Xlib.h>])
 elif test "$with_xpm" != no; then
   echo "error: must be yes or no: --with-xpm=$with_xpm"
   exit 1
 elif test "$with_xpm" != no; then
   echo "error: must be yes or no: --with-xpm=$with_xpm"
   exit 1
@@ -2458,37 +2729,176 @@ with_gdk_pixbuf_req=unspecified
 AC_ARG_WITH(pixbuf,
 [  --with-pixbuf           Include support for the GDK-Pixbuf library in some
                           demos, which will make it possible for them to read
 AC_ARG_WITH(pixbuf,
 [  --with-pixbuf           Include support for the GDK-Pixbuf library in some
                           demos, which will make it possible for them to read
-                          GIF, JPEG, and PNG files as well.],
+                          GIF, JPEG, and PNG files as well.  (The path here is
+                         ignored if GTK 2.x is being used.)],
   [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
   [with_gdk_pixbuf=yes])
 
   [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
   [with_gdk_pixbuf=yes])
 
+# if --with-pixbuf=/directory/ was specified, remember that directory so that
+# we can also look for the `gdk-pixbuf-config' program in that directory.
+case "$with_gdk_pixbuf" in
+  /*)
+    gdk_pixbuf_dir="$with_gdk_pixbuf"
+    ;;
+  *)
+    gdk_pixbuf_dir=""
+    ;;
+esac
+
 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
 
 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
 
+if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
+  echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
+  exit 1
+fi
+
 if test "$with_gdk_pixbuf" = yes; then
 if test "$with_gdk_pixbuf" = yes; then
+  have_gdk_pixbuf=no
+  have_gdk_pixbuf2=no
 
 
-  if test "$have_gtk" = yes; then
+  if test -n "$pkg_config" ; then
+    #
+    # the new way...
+    # run pkg-config based tests.
+    #
+    pkgs=''
+    ok="yes"
+    pkg_check_version gdk-pixbuf-2.0      2.0.0
+    pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
+    have_gdk_pixbuf="$ok"
+    have_gdk_pixbuf2="$ok"
+
+    if test "$have_gdk_pixbuf2" = no; then
+      #
+      # We don't have pixbuf 2.x; check for 1.x.
+      #
+      pkgs=''
+      ok="yes"
+      pkg_check_version gdk-pixbuf      0.0
+      pkg_check_version gdk-pixbuf-xlib 0.0
+      have_gdk_pixbuf="$ok"
+    fi
+
+    if test "$have_gdk_pixbuf" = yes; then
+      AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
+                 [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`])
+      AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
+                 [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`])
+    fi
+    ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
+    ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
+  fi
+
+  if test "$have_gdk_pixbuf" = no; then
+    #
+    # the old way...
+    # run gdk-pixbuf-config based tests.
+    # note that we can't assume that the existence of "pkg-config" means
+    # that we don't have to look for gdk-pixbuf-config -- in Gnome 1.4,
+    # pkg-config exists, but doesn't know about pixbuf.
+    #
+
+    # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+    # look in /foo/bin/ for for gdk-pixbuf-config.
+    #
+    gdk_pixbuf_path="$PATH"
+
+    if test ! -z "$gtk_dir"; then
+      # canonicalize slashes.
+      foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+      gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+    fi
+
+    if test ! -z "$gnome_dir"; then
+      # canonicalize slashes.
+      foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+      gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+    fi
 
 
-    ac_save_gdk_CPPFLAGS="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS $ac_gtk_config_cflags"
+    AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
+
+    # If we found the gdk-pixbuf-config program, run it to get flags.
+    #
+    if test -n "$gdk_pixbuf_config" ; then
+      AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
+                [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
+      AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
+                [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
+
+      # note that "gdk-pixbuf-config --libs" produces a link line including
+      # -lgdk_pixbuf, but there's no way to get it to produce one that also
+      # includes -lgdk_pixbuf_xlib.  Since we don't know *exactly* what the
+      # name of the library will be, construct it with sed...
+      # M4 sucks!!
+      changequote(X,Y)
+      ac_cv_gdk_pixbuf_config_libs=`echo $ac_cv_gdk_pixbuf_config_libs | \
+       sed 's@ \(-lgdk_pixbuf\([-_a-zA-Z0-9.]*\)\) @ \1 -lgdk_pixbuf_xlib\2 @'`
+      changequote([,])
+
+      ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
+      ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
+    fi
+  fi
+
+  ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
+
+  if test "$have_gdk_pixbuf" = no; then
+    #
+    # we appear to have pixbuf; check for headers/libs to be sure.
+    #
 
     have_gdk_pixbuf=no
 
     have_gdk_pixbuf=no
+
+    # check for header 1...
     AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
     AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
+
+    # if that worked, check for header 2...
     if test "$have_gdk_pixbuf" = yes; then
       have_gdk_pixbuf=no
     if test "$have_gdk_pixbuf" = yes; then
       have_gdk_pixbuf=no
-      AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, [have_gdk_pixbuf=yes])
+      gdk_pixbuf_halfassed=yes
+      AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h,
+                        [have_gdk_pixbuf=yes
+                         gdk_pixbuf_halfassed=no])
+
+      # yay, it has a new name in GTK2...
+      if test "$have_gdk_pixbuf" = no; then
+        have_gdk_pixbuf=no
+        gdk_pixbuf_halfassed=yes
+        AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h,
+                          [have_gdk_pixbuf=yes
+                           gdk_pixbuf_halfassed=no])
+      fi
     fi
     fi
+  fi
 
 
-    CPPFLAGS="$ac_save_gdk_CPPFLAGS"
+  CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
 
 
+  if test "$have_gdk_pixbuf" = yes; then
+    # we have the headers, now check for the libraries
+    have_gdk_pixbuf=no
+    gdk_pixbuf_halfassed=yes
+
+    # library 1...
+    AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],,
+                   $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
+    # library 2...
     if test "$have_gdk_pixbuf" = yes; then
     if test "$have_gdk_pixbuf" = yes; then
-      AC_DEFINE(HAVE_GDK_PIXBUF)
-      XPM_LIBS="-lgdk_pixbuf -lgdk_pixbuf_xlib"
+      have_gdk_pixbuf=no
+      AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init,
+                     [have_gdk_pixbuf=yes
+                      gdk_pixbuf_halfassed=no],,
+                     $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm)
     fi
   fi
 
     fi
   fi
 
-elif test "$with_gdk_pixbuf" != no; then
-  echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
-  exit 1
+  if test "$have_gdk_pixbuf" = yes; then
+    INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
+    XPM_LIBS="$ac_gdk_pixbuf_config_libs"
+    AC_DEFINE(HAVE_GDK_PIXBUF)
+  else
+    have_gdk_pixbuf2=no
+  fi
 fi
 
 
 fi
 
 
@@ -2502,9 +2912,9 @@ have_jpeg=no
 with_jpeg_req=unspecified
 jpeg_halfassed=no
 AC_ARG_WITH(jpeg,
 with_jpeg_req=unspecified
 jpeg_halfassed=no
 AC_ARG_WITH(jpeg,
-[  --with-jpeg             Include support for the JPEG library in some demos,
-                          which will make it possible for them to read JPEG
-                          files as well.],
+[  --with-jpeg             Include support for the JPEG library in some demos.
+                          (If this library is available, webcollage will be a
+                        . lot faster.)],
   [with_jpeg="$withval"; with_jpeg_req="$withval"],
   [with_jpeg=yes])
 
   [with_jpeg="$withval"; with_jpeg_req="$withval"],
   [with_jpeg=yes])
 
@@ -2550,7 +2960,8 @@ HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM)
 if test "$with_xshm" = yes; then
 
   # first check for Xshm.h.
 if test "$with_xshm" = yes; then
 
   # first check for Xshm.h.
-  AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes])
+  AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],,
+                    [#include <X11/Xlib.h>])
 
   # if that succeeded, then check for sys/ipc.h.
   if test "$have_xshm" = yes; then
 
   # if that succeeded, then check for sys/ipc.h.
   if test "$have_xshm" = yes; then
@@ -2608,7 +3019,8 @@ HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER)
 
 if test "$with_xdbe" = yes; then
 
 
 if test "$with_xdbe" = yes; then
 
-  AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes])
+  AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],,
+                    [#include <X11/Xlib.h>])
   if test "$have_xdbe" = yes; then
     AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)    
   fi
   if test "$have_xdbe" = yes; then
     AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION)    
   fi
@@ -2640,7 +3052,8 @@ HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay)
 
 if test "$with_readdisplay" = yes; then
   AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
 
 if test "$with_readdisplay" = yes; then
   AC_CHECK_X_HEADER(X11/extensions/readdisplay.h,
-                    AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION))
+                    AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),,
+                    [#include <X11/Xlib.h>])
 elif test "$with_readdisplay" != no; then
   echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
   exit 1
 elif test "$with_readdisplay" != no; then
   echo "error: must be yes or no: --with-readdisplay=$with_readdisplay"
   exit 1
@@ -2870,6 +3283,7 @@ fi
 
 # Now that we know whether we have Gnome, we can decide where the XML
 # config files get installed.
 
 # Now that we know whether we have Gnome, we can decide where the XML
 # config files get installed.
+#
 if test -z "$HACK_CONF_DIR" ; then
   if test -n "$GNOME_DATADIR" ; then
     HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
 if test -z "$HACK_CONF_DIR" ; then
   if test -n "$GNOME_DATADIR" ; then
     HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
@@ -2878,6 +3292,21 @@ if test -z "$HACK_CONF_DIR" ; then
   fi
 fi
 
   fi
 fi
 
+
+
+# After computing $HACK_CONF_DIR, make sure $GLADE_DATADIR has a value
+# so that we know where to install the Gtk pixmaps.
+#
+if test -n "$GNOME_DATADIR" ; then
+  GLADE_DATADIR='$(GNOME_DATADIR)/xscreensaver'
+elif test "$have_gtk" = yes; then
+  # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong...
+  GLADE_DATADIR='/usr/share/xscreensaver'
+else
+  GLADE_DATADIR=''
+fi
+
+
 # canonicalize slashes.
 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
 
 # canonicalize slashes.
 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
 
@@ -2932,7 +3361,10 @@ AC_SUBST(GNOMEHELP_Y)
 AC_SUBST(GNOMEHELP_N)
 AC_SUBST(HACKDIR)
 AC_SUBST(GNOME_DATADIR)
 AC_SUBST(GNOMEHELP_N)
 AC_SUBST(HACKDIR)
 AC_SUBST(GNOME_DATADIR)
+AC_SUBST(GLADE_DATADIR)
+AC_SUBST(GNOME_PANELDIR)
 AC_SUBST(HACK_CONF_DIR)
 AC_SUBST(HACK_CONF_DIR)
+AC_SUBST(GTK_EXTRA_OBJS)
 
 APPDEFAULTS=$ac_x_app_defaults
 AC_SUBST(APPDEFAULTS)
 
 APPDEFAULTS=$ac_x_app_defaults
 AC_SUBST(APPDEFAULTS)
@@ -2947,6 +3379,7 @@ AC_OUTPUT(Makefile
           driver/Makefile
           hacks/Makefile
           hacks/glx/Makefile
           driver/Makefile
           hacks/Makefile
           hacks/glx/Makefile
+          po/Makefile.in
           driver/XScreenSaver.ad)
 
 ###############################################################################
           driver/XScreenSaver.ad)
 
 ###############################################################################
@@ -3072,7 +3505,6 @@ elif test "$jurassic_gtk" = yes ; then
 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
   warnL "Use of Gtk was requested, but it wasn't found;"
   warn2 "Motif will be used instead."
 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
   warnL "Use of Gtk was requested, but it wasn't found;"
   warn2 "Motif will be used instead."
-
 fi
 
 
 fi
 
 
@@ -3091,9 +3523,16 @@ if test "$have_gtk" = yes ; then
     fi
 
     if test "$xml_halfassed" = yes ; then
     fi
 
     if test "$xml_halfassed" = yes ; then
+
+      if test "$have_zlib" = yes ; then
+        which="XML libraries"
+      else
+        which="\`zlib' library"
+      fi
+
       echo ''
       warn2 'More specifically, we found the headers, but not the'
       echo ''
       warn2 'More specifically, we found the headers, but not the'
-      warn2 'libraries; so either XML is half-installed on this'
+      warn2 "$which; so either XML is half-installed on this"
       warn2 "system, or something else went wrong.  The \`config.log'"
       warn2 'file might contain some clues.'
     fi
       warn2 "system, or something else went wrong.  The \`config.log'"
       warn2 'file might contain some clues.'
     fi
@@ -3136,17 +3575,18 @@ if test "$have_motif" = yes -a "$have_gtk" = no ; then
 fi
 
 
 fi
 
 
-if test "$with_xpm_req" = yes ; then
+if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
   warnL 'Use of XPM was requested, but it was not found.'
 fi
 
   warnL 'Use of XPM was requested, but it was not found.'
 fi
 
-if test "$with_gdk_pixbuf_req" = yes ; then
+if test "$with_gdk_pixbuf_req" = yes  -a "$have_gdk_pixbuf" = no; then
   warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
 fi
 
   warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
 fi
 
-if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then
+if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
+   test "$gdk_pixbuf_halfassed" = yes; then
 
 
-  if test "$with_xpm_req" = yes ; then
+  if test "$with_xpm_req" = yes -o "$have_xpm" = yes ; then
     true
   elif test "$with_xpm_req" = no ; then
     warnL 'The XPM library is not being used.'
     true
   elif test "$with_xpm_req" = no ; then
     warnL 'The XPM library is not being used.'
@@ -3162,6 +3602,14 @@ if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then
     warnL 'The GDK-Pixbuf library was not found.'
   fi
 
     warnL 'The GDK-Pixbuf library was not found.'
   fi
 
+  if test "$gdk_pixbuf_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+  fi
+
   echo ''
   warn2 'Some of the demos will not be as colorful as they'
   warn2 'could be.  You should consider installing Pixbuf or'
   echo ''
   warn2 'Some of the demos will not be as colorful as they'
   warn2 'could be.  You should consider installing Pixbuf or'
@@ -3349,7 +3797,7 @@ do_dir_warning=no
 
 # M4 sucks!!
 changequote(X,Y)
 
 # M4 sucks!!
 changequote(X,Y)
-rpmv=`(rpm -qv xscreensaver) 2>&- | \
+rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \
       sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
 changequote([,])
 
       sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'`
 changequote([,])
 
@@ -3392,12 +3840,11 @@ if test "$do_dir_warning" = yes; then
   echo "      will be installed in ${bindir}/."
   echo ""
   echo "      The various graphics demos (140+ different executables) will"
   echo "      will be installed in ${bindir}/."
   echo ""
   echo "      The various graphics demos (140+ different executables) will"
-  echo "      also be installed in ${HACKDIR}/."
+  echo "      be installed in ${HACKDIR}/."
   echo ""
   echo ""
-  echo "      If you would prefer the demos to be installed elsewhere"
-  echo "      (for example, in a dedicated directory) you should re-run"
-  echo "      configure with the --with-hackdir=DIR option.  For more"
-  echo "      information, run $0 --help."
+  echo "      If you would prefer the demos to be installed elsewhere,"
+  echo "      you should re-run configure with the --with-hackdir=DIR"
+  echo "      option.  For more information, run \`./configure --help'."
   warning=yes
 fi
 
   warning=yes
 fi