From http://www.jwz.org/xscreensaver/xscreensaver-5.39.tar.gz
[xscreensaver] / configure.in
index 85703d44c58b8a817cdce1ad5d0b48343ea8deb4..68928a098b9d8e9dd03a82a409e918fffb05b09e 100644 (file)
@@ -1,9 +1,9 @@
-# configure.in --- xscreensaver, Copyright (c) 1997-2005 Jamie Zawinski.
+# configure.in --- xscreensaver, Copyright (c) 1997-2014 Jamie Zawinski.
 #
 
 AC_PREREQ(2.52)
 AC_INIT(driver/subprocs.c)
 #
 
 AC_PREREQ(2.52)
 AC_INIT(driver/subprocs.c)
-AC_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
 
 echo "current directory: `pwd`"
 echo "command line was: $0 $@"
 
 echo "current directory: `pwd`"
 echo "command line was: $0 $@"
@@ -15,7 +15,7 @@ echo "command line was: $0 $@"
 ###############################################################################
 
 AH_TOP([
 ###############################################################################
 
 AH_TOP([
-/* config.h.in --- xscreensaver, Copyright (c) 1998-2000 Jamie Zawinski.
+/* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski.
  *
  *  The best way to set these parameters is by running the included `configure'
  *  script.  That examines your system, and generates `config.h' from 
  *
  *  The best way to set these parameters is by running the included `configure'
  *  script.  That examines your system, and generates `config.h' from 
@@ -147,10 +147,6 @@ AH_TEMPLATE([HAVE_OLD_XML_HEADERS],
            [Define this if you have the XML library headers in their old,
            non-namespaced location (you lack the gnome-xml/libxml symlink)])
 
            [Define this if you have the XML library headers in their old,
            non-namespaced location (you lack the gnome-xml/libxml symlink)])
 
-AH_TEMPLATE([HAVE_XPM],
-           [Define this if you have the XPM library installed.  Some of the
-           demos can make use of this if it is available.])
-
 AH_TEMPLATE([HAVE_GDK_PIXBUF],
            [Define this if you have the GDK_Pixbuf library installed.  Some
            of the demos can make use of this if it is available.])
 AH_TEMPLATE([HAVE_GDK_PIXBUF],
            [Define this if you have the GDK_Pixbuf library installed.  Some
            of the demos can make use of this if it is available.])
@@ -164,11 +160,22 @@ AH_TEMPLATE([HAVE_JPEGLIB],
            library installed.  Some of the demos can make use of this if it
            is available.])
 
            library installed.  Some of the demos can make use of this if it
            is available.])
 
+AH_TEMPLATE([HAVE_LIBPNG],
+           [Define this if the Portable Network Graphics library is installed.
+           It is basically required, but many things will more-or-less limp
+           along without it.])
+
 AH_TEMPLATE([HAVE_XMU],
            [Define this if you have the Xmu library.  This is standard part
            of X, and if your vendor doesn't ship it, you should report that
            as a bug.])
 
 AH_TEMPLATE([HAVE_XMU],
            [Define this if you have the Xmu library.  This is standard part
            of X, and if your vendor doesn't ship it, you should report that
            as a bug.])
 
+AH_TEMPLATE([HAVE_XUTF8DRAWSTRING],
+           [Define this if you have the function Xutf8DrawString().])
+
+AH_TEMPLATE([HAVE_XFT],
+           [Define this if you have libXft2.])
+
 AH_TEMPLATE([HAVE_GL],
            [Define this if you have OpenGL.  Some of the demos require it,
            so if you don't have it, then those particular demos won't be
 AH_TEMPLATE([HAVE_GL],
            [Define this if you have OpenGL.  Some of the demos require it,
            so if you don't have it, then those particular demos won't be
@@ -193,8 +200,6 @@ AH_TEMPLATE([HAVE_GLE3],[Define this if you have the -lgle from GLE version 3])
 AH_TEMPLATE([HAVE_JWZGLES],[Define this to target the OpenGL ES 1.x API
            instead of OpenGL 1.3.])
 
 AH_TEMPLATE([HAVE_JWZGLES],[Define this to target the OpenGL ES 1.x API
            instead of OpenGL 1.3.])
 
-AH_TEMPLATE([HAVE_GLBITMAP],[Define this if glBitmap exists.])
-
 AH_TEMPLATE([HAVE_XSHM_EXTENSION],
            [Define this if you have the X Shared Memory Extension.])
 
 AH_TEMPLATE([HAVE_XSHM_EXTENSION],
            [Define this if you have the X Shared Memory Extension.])
 
@@ -299,6 +304,9 @@ AH_TEMPLATE([HAVE_ICMPHDR],
            [Define this if you do pings with a `struct icmphdr' and an
             `un.echo.id' slot.])
 
            [Define this if you do pings with a `struct icmphdr' and an
             `un.echo.id' slot.])
 
+AH_TEMPLATE([HAVE_GETIFADDRS],
+           [Define this if you have the getifaddrs() function.])
+
 AH_TEMPLATE([HAVE_FORKPTY],
            [Define this if you have the 'forkpty' function:
             This allows 'phosphor' and 'apple2' to run curses-based
 AH_TEMPLATE([HAVE_FORKPTY],
            [Define this if you have the 'forkpty' function:
             This allows 'phosphor' and 'apple2' to run curses-based
@@ -313,11 +321,17 @@ AH_TEMPLATE([GETTIMEOFDAY_TWO_ARGS],
 AH_TEMPLATE([XPointer],
            [Define this to void* if you're using X11R4 or earlier.])
 
 AH_TEMPLATE([XPointer],
            [Define this to void* if you're using X11R4 or earlier.])
 
+AH_TEMPLATE([HAVE_PTHREAD],
+           [Define this if your system supports POSIX threads.])
+
+AH_TEMPLATE([HAVE_RECORD_ANIM],
+           [Define this to enable recording of videos.])
+
 # After checking to see that --srcdir is correct (which AC_INIT does)
 # check for some random other files that come later in the tar file,
 # to make sure everything is here.
 #
 # After checking to see that --srcdir is correct (which AC_INIT does)
 # check for some random other files that come later in the tar file,
 # to make sure everything is here.
 #
-for d in driver utils hacks hacks/glx ; do
+for d in utils jwxyz hacks hacks/glx driver ; do
   f=$srcdir/$d/Makefile.in
   if test \! -r $f ; then
     echo ""
   f=$srcdir/$d/Makefile.in
   if test \! -r $f ; then
     echo ""
@@ -328,14 +342,53 @@ for d in driver utils hacks hacks/glx ; do
   fi
 done
 
   fi
 done
 
+###############################################################################
+#
+#       Query AX_PTHREAD, and figure out which compiler gets used.
+#
+###############################################################################
+
+AC_DEFUN([AC_PROG_CC_PTHREAD],
+ [have_pthread=no
+  with_pthread_req=unspecified
+
+  # AX_PTHREAD is from the GNU Autoconf Archive.
+  # https://savannah.gnu.org/projects/autoconf-archive/
+  m4_include(ax_pthread.m4)
+
+  # This affects CC, LIBS, and CFLAGS, instead of defining new variables.
+
+  AC_ARG_WITH([pthread],
+    [  --with-pthread          Enables POSIX threads, for SMP support.],
+    [with_pthread="$withval"; with_pthread_req="$withval"],
+    [with_pthread=yes])
+
+  if test "$with_pthread" = yes; then
+    # AX_PTHREAD might want a different compiler.
+    AX_PTHREAD(
+     [if test "$CC" = "$PTHREAD_CC" -o -z "$ac_original_cc"; then
+        have_pthread=yes
+      else
+        ac_prog_cc_no_pthread=yes
+      fi
+    ])
+
+    if test "$have_pthread" = yes; then
+      AC_DEFINE([HAVE_PTHREAD])
+      CC=$PTHREAD_CC
+    fi
+  fi
+])
+
+
 ###############################################################################
 #
 #       Function to figure out how to run the compiler.
 #
 ###############################################################################
 
 ###############################################################################
 #
 #       Function to figure out how to run the compiler.
 #
 ###############################################################################
 
-AC_DEFUN(AC_PROG_CC_ANSI,
- [AC_PROG_CC
+AC_DEFUN([AC_PROG_CC_ANSI],
+ [AC_REQUIRE([AC_PROG_CC])
 
   if test -z "$GCC"; then
     # not using GCC
 
   if test -z "$GCC"; then
     # not using GCC
@@ -405,7 +458,7 @@ AC_DEFUN(AC_PROG_CC_ANSI,
 #
 ###############################################################################
 
 #
 ###############################################################################
 
-AC_DEFUN(AC_CHECK_GCC_ARG,
+AC_DEFUN([AC_CHECK_GCC_ARG],
  [if test -n "$GCC"; then
    AC_CACHE_CHECK([whether gcc accepts [$2]],
      ac_cv_gcc_accepts_[$1],
  [if test -n "$GCC"; then
    AC_CACHE_CHECK([whether gcc accepts [$2]],
      ac_cv_gcc_accepts_[$1],
@@ -422,16 +475,16 @@ AC_DEFUN(AC_CHECK_GCC_ARG,
   fi
 ])
 
   fi
 ])
 
-AC_DEFUN(AC_NO_LONG_STRING_WARNINGS,
+AC_DEFUN([AC_NO_LONG_STRING_WARNINGS],
          [AC_CHECK_GCC_ARG(no_overlength, -Wno-overlength-strings)])
 
          [AC_CHECK_GCC_ARG(no_overlength, -Wno-overlength-strings)])
 
-AC_DEFUN(AC_NO_MISPLACED_DECLARATIONS,
+AC_DEFUN([AC_NO_MISPLACED_DECLARATIONS],
          [AC_CHECK_GCC_ARG(no_decl_after, -Wdeclaration-after-statement)])
 
 # Need to disable Objective C extensions in ANSI C on MacOS X to work
 # around an Apple-specific gcc bug.
 #
          [AC_CHECK_GCC_ARG(no_decl_after, -Wdeclaration-after-statement)])
 
 # Need to disable Objective C extensions in ANSI C on MacOS X to work
 # around an Apple-specific gcc bug.
 #
-AC_DEFUN(AC_NO_OBJECTIVE_C,
+AC_DEFUN([AC_NO_OBJECTIVE_C],
          [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)])
 
 ###############################################################################
          [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)])
 
 ###############################################################################
@@ -454,7 +507,7 @@ AC_DEFUN(AC_NO_OBJECTIVE_C,
 #
 ###############################################################################
 
 #
 ###############################################################################
 
-AC_DEFUN(AC_GCC_ACCEPTS_STD, [
+AC_DEFUN([AC_GCC_ACCEPTS_STD], [
   case "$host" in
     *-darwin* )
       # Fucking Apple let // comments sneak into OpenGL headers, so
   case "$host" in
     *-darwin* )
       # Fucking Apple let // comments sneak into OpenGL headers, so
@@ -466,7 +519,7 @@ AC_DEFUN(AC_GCC_ACCEPTS_STD, [
   esac
 ])
 
   esac
 ])
 
-AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
+AC_DEFUN([AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE],
  [if test -n "$GCC"; then
    AC_GCC_ACCEPTS_STD
    AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
  [if test -n "$GCC"; then
    AC_GCC_ACCEPTS_STD
    AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
@@ -505,7 +558,7 @@ AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
 #
 ###############################################################################
 
 #
 ###############################################################################
 
-AC_DEFUN(AC_PROG_INSTALL_DIRS,
+AC_DEFUN([AC_PROG_INSTALL_DIRS],
  [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories],
     ac_cv_install_d_creates_dirs,
     [ac_cv_install_d_creates_dirs=no
  [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories],
     ac_cv_install_d_creates_dirs,
     [ac_cv_install_d_creates_dirs=no
@@ -556,7 +609,7 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS,
 #
 ###############################################################################
 
 #
 ###############################################################################
 
-AC_DEFUN(AC_GETTIMEOFDAY_ARGS,
+AC_DEFUN([AC_GETTIMEOFDAY_ARGS],
  [AC_MSG_CHECKING(how to call gettimeofday)
   AC_CACHE_VAL(ac_cv_gettimeofday_args,
    [AC_TRY_COMPILE([#include <stdlib.h>
  [AC_MSG_CHECKING(how to call gettimeofday)
   AC_CACHE_VAL(ac_cv_gettimeofday_args,
    [AC_TRY_COMPILE([#include <stdlib.h>
@@ -595,7 +648,7 @@ changequote(X,Y)
 perl_version_cmd='print $]'
 changequote([,])
 
 perl_version_cmd='print $]'
 changequote([,])
 
-AC_DEFUN(AC_PROG_PERL,
+AC_DEFUN([AC_PROG_PERL],
  [AC_PATH_PROGS(PERL, [perl5 perl],,)
   if test -z "$PERL" ; then
     PERL_VERSION=0
  [AC_PATH_PROGS(PERL, [perl5 perl],,)
   if test -z "$PERL" ; then
     PERL_VERSION=0
@@ -613,7 +666,7 @@ AC_DEFUN(AC_PROG_PERL,
 #
 ###############################################################################
 
 #
 ###############################################################################
 
-AC_DEFUN(AC_DEMAND_BC,
+AC_DEFUN([AC_DEMAND_BC],
  [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
   AC_MSG_CHECKING([for bc])
   if test "$ac_bc_result" = "15" ; then
  [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
   AC_MSG_CHECKING([for bc])
   if test "$ac_bc_result" = "15" ; then
@@ -633,7 +686,7 @@ AC_DEFUN(AC_DEMAND_BC,
 #
 ###############################################################################
 
 #
 ###############################################################################
 
-AC_DEFUN(AC_CHECK_ICMP,
+AC_DEFUN([AC_CHECK_ICMP],
  [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
   [AC_TRY_COMPILE([#include <stdlib.h>
                    #include <stdio.h>
  [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp,
   [AC_TRY_COMPILE([#include <stdlib.h>
                    #include <stdio.h>
@@ -676,7 +729,7 @@ AC_DEFUN(AC_CHECK_ICMP,
    AC_DEFINE(HAVE_ICMP)
  fi])
 
    AC_DEFINE(HAVE_ICMP)
  fi])
 
-AC_DEFUN(AC_CHECK_ICMPHDR,
+AC_DEFUN([AC_CHECK_ICMPHDR],
  [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
   [AC_TRY_COMPILE([#include <stdlib.h>
                    #include <stdio.h>
  [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr,
   [AC_TRY_COMPILE([#include <stdlib.h>
                    #include <stdio.h>
@@ -724,7 +777,7 @@ AC_DEFUN(AC_CHECK_ICMPHDR,
 # Try and find the app-defaults directory.
 # It sucks that autoconf doesn't do this already...
 #
 # Try and find the app-defaults directory.
 # It sucks that autoconf doesn't do this already...
 #
-AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[
+AC_DEFUN([AC_PATH_X_APP_DEFAULTS_XMKMF],[
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir 2>/dev/null
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir 2>/dev/null
@@ -752,10 +805,13 @@ AC_ARG_WITH(x-app-defaults,[],
        [eval ac_x_app_defaults="$withval"])
 
 
        [eval ac_x_app_defaults="$withval"])
 
 
-AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
+AC_DEFUN([AC_PATH_X_APP_DEFAULTS_DIRECT],[
   # Look for the directory under a standard set of common directories.
   # Check X11 before X11Rn because it's often a symlink to the current release.
   for ac_dir in                                 \
   # Look for the directory under a standard set of common directories.
   # Check X11 before X11Rn because it's often a symlink to the current release.
   for ac_dir in                                 \
+                                                \
+    /usr/share/X11/app-defaults                 \
+                                                \
     /usr/X11/lib/app-defaults                   \
     /usr/X11R6/lib/app-defaults                 \
     /usr/X11R6/lib/X11/app-defaults             \
     /usr/X11/lib/app-defaults                   \
     /usr/X11R6/lib/app-defaults                 \
     /usr/X11R6/lib/X11/app-defaults             \
@@ -769,6 +825,8 @@ AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
     /usr/lib/X11R5/app-defaults                 \
     /usr/lib/X11R4/app-defaults                 \
                                                 \
     /usr/lib/X11R5/app-defaults                 \
     /usr/lib/X11R4/app-defaults                 \
                                                 \
+    /etc/X11/app-defaults                       \
+                                                \
     /usr/local/X11/lib/app-defaults             \
     /usr/local/X11R6/lib/app-defaults           \
     /usr/local/X11R5/lib/app-defaults           \
     /usr/local/X11/lib/app-defaults             \
     /usr/local/X11R6/lib/app-defaults           \
     /usr/local/X11R5/lib/app-defaults           \
@@ -811,14 +869,16 @@ AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[
   done
 ])
 
   done
 ])
 
-AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
+AC_DEFUN([AC_PATH_X_APP_DEFAULTS],
   [AC_REQUIRE_CPP()
     AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
   [AC_REQUIRE_CPP()
     AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
-     [AC_PATH_X_APP_DEFAULTS_XMKMF
+     [# skip this, it's always wrong these days.
+      #  AC_PATH_X_APP_DEFAULTS_XMKMF
       if test x"$ac_x_app_defaults" = x; then
       if test x"$ac_x_app_defaults" = x; then
-        AC_PATH_X_APP_DEFAULTS_DIRECT
+        true AC_PATH_X_APP_DEFAULTS_DIRECT
       fi
       if test x"$ac_x_app_defaults" = x; then
       fi
       if test x"$ac_x_app_defaults" = x; then
+        /bin/echo -n 'fallback: '
         ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
       else
         # Record where we found app-defaults for the cache.
         ac_cv_x_app_defaults="/usr/lib/X11/app-defaults"
       else
         # Record where we found app-defaults for the cache.
@@ -827,7 +887,7 @@ AC_DEFUN(AC_PATH_X_APP_DEFAULTS,
     eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
 
 
     eval ac_x_app_defaults="$ac_cv_x_app_defaults"])
 
 
-AC_DEFUN(AC_XPOINTER,
+AC_DEFUN([AC_XPOINTER],
  [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
                  [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
                                    [XPointer foo = (XPointer) 0;],
  [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer,
                  [AC_TRY_X_COMPILE([#include <X11/Xlib.h>],
                                    [XPointer foo = (XPointer) 0;],
@@ -841,7 +901,7 @@ AC_DEFUN(AC_XPOINTER,
 # Random special-cases for X on certain pathological OSes.
 # You know who you are.
 #
 # Random special-cases for X on certain pathological OSes.
 # You know who you are.
 #
-AC_DEFUN(AC_X_RANDOM_PATHS,
+AC_DEFUN([AC_X_RANDOM_PATHS],
  [case "$host" in
     *-hpux*)
 
  [case "$host" in
     *-hpux*)
 
@@ -917,7 +977,7 @@ AC_DEFUN(AC_X_RANDOM_PATHS,
         X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
       fi
 
         X_LIBS="$X_LIBS -L/usr/lib/Motif1.1"
       fi
 
-      # Now let's check for the pseudo-standard locations for OpenGL and XPM.
+      # Now let's check for the pseudo-standard locations for OpenGL.
       #
       if test -d /opt/graphics/OpenGL/include ; then
         # HP-UX 10.20 puts it here
       #
       if test -d /opt/graphics/OpenGL/include ; then
         # HP-UX 10.20 puts it here
@@ -929,11 +989,6 @@ AC_DEFUN(AC_X_RANDOM_PATHS,
       fi
 
 
       fi
 
 
-      if test -d /opt/xpm/lib/X11 ; then
-        X_CFLAGS="-I/opt/xpm/include $X_CFLAGS"
-        X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS"
-      fi
-
       # On HPUX, default to installing in /opt/xscreensaver/ instead of
       # in /usr/local/, unless there is already an xscreensaver in
       # /usr/local/bin/.  This can be overridden with the --prefix arg
       # On HPUX, default to installing in /opt/xscreensaver/ instead of
       # in /usr/local/, unless there is already an xscreensaver in
       # /usr/local/bin/.  This can be overridden with the --prefix arg
@@ -973,7 +1028,33 @@ AC_DEFUN(AC_X_RANDOM_PATHS,
     ;;
   esac])
 
     ;;
   esac])
 
+AC_DEFUN([AC_CHECK_GETIFADDRS],
+ [AC_CACHE_CHECK([for getifaddrs], ac_cv_have_getifaddrs,
+  [AC_TRY_COMPILE([#include <stdlib.h>
+                   #include <unistd.h>
+                   #include <arpa/inet.h>
+                   #include <ifaddrs.h>],
+                  [struct ifaddrs *ifa;
+                   getifaddrs (&ifa);
+                   ifa->ifa_next = 0;
+                   ifa->ifa_addr->sa_family = 0;],
+                  [ac_cv_have_getifaddrs=yes],
+                  [ac_cv_have_getifaddrs=no])])
+ if test "$ac_cv_have_getifaddrs" = yes ; then
+   AC_DEFINE(HAVE_GETIFADDRS)
+ fi])
 
 
+AC_DEFUN([AC_TYPE_SOCKLEN_T],
+ [AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
+  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+   #include <sys/types.h>
+   #include <sys/socket.h>]], [[
+   socklen_t socklen;
+   ]])],[ac_cv_type_socklen_t=yes],[ac_cv_type_socklen_t=no])])
+  if test "$ac_cv_type_socklen_t" != yes; then
+    AC_DEFINE(socklen_t, int,
+  [Define to `int' if <sys/types.h> or <sys/socket.h> does not define.])
+  fi])
 
 ###############################################################################
 #
 
 ###############################################################################
 #
@@ -983,7 +1064,7 @@ AC_DEFUN(AC_X_RANDOM_PATHS,
 
 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
 #
 
 # Like AC_CHECK_HEADER, but it uses the already-computed -I directories.
 #
-AC_DEFUN(AC_CHECK_X_HEADER, [
+AC_DEFUN([AC_CHECK_X_HEADER], [
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
@@ -995,7 +1076,7 @@ AC_DEFUN(AC_CHECK_X_HEADER, [
 
 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
 #
 
 # Like AC_EGREP_HEADER, but it uses the already-computed -I directories.
 #
-AC_DEFUN(AC_EGREP_X_HEADER, [
+AC_DEFUN([AC_EGREP_X_HEADER], [
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
@@ -1007,7 +1088,7 @@ AC_DEFUN(AC_EGREP_X_HEADER, [
 
 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
 #
 
 # Like AC_TRY_COMPILE, but it uses the already-computed -I directories.
 #
-AC_DEFUN(AC_TRY_X_COMPILE, [
+AC_DEFUN([AC_TRY_X_COMPILE], [
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
@@ -1021,7 +1102,7 @@ AC_DEFUN(AC_TRY_X_COMPILE, [
 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
 # Use this sparingly; it probably doesn't work very well on X programs.
 #
 # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories.
 # Use this sparingly; it probably doesn't work very well on X programs.
 #
-AC_DEFUN(AC_CHECK_X_LIB, [
+AC_DEFUN([AC_CHECK_X_LIB], [
   ac_save_CPPFLAGS="$CPPFLAGS"
   ac_save_LDFLAGS="$LDFLAGS"
 #  ac_save_LIBS="$LIBS"
   ac_save_CPPFLAGS="$CPPFLAGS"
   ac_save_LDFLAGS="$LDFLAGS"
 #  ac_save_LIBS="$LIBS"
@@ -1049,7 +1130,7 @@ AC_DEFUN(AC_CHECK_X_LIB, [
 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
 # (But not the -L directories!)
 #
 # Like AC_TRY_RUN, but it uses the already-computed -I directories.
 # (But not the -L directories!)
 #
-AC_DEFUN(AC_TRY_X_RUN, [
+AC_DEFUN([AC_TRY_X_RUN], [
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
@@ -1076,7 +1157,7 @@ AC_DEFUN(AC_TRY_X_RUN, [
 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
 # as appropriate.
 #
 # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS
 # as appropriate.
 #
-AC_DEFUN(HANDLE_X_PATH_ARG, [
+AC_DEFUN([HANDLE_X_PATH_ARG], [
    case "$[$1]" in
     yes) ;;
     no)  ;;
    case "$[$1]" in
     yes) ;;
     no)  ;;
@@ -1132,6 +1213,11 @@ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
 # random compiler setup
 AC_CANONICAL_HOST
 
 # random compiler setup
 AC_CANONICAL_HOST
+
+ac_original_cc=$CC
+AC_PROG_CC
+AC_PROG_CC_PTHREAD # Needs ac_original_cc.
+
 AC_PROG_CC_ANSI
 AC_NO_LONG_STRING_WARNINGS
 AC_NO_MISPLACED_DECLARATIONS
 AC_PROG_CC_ANSI
 AC_NO_LONG_STRING_WARNINGS
 AC_NO_MISPLACED_DECLARATIONS
@@ -1157,7 +1243,7 @@ INSTALL_SCRIPT='${INSTALL}'
 
 # random libc stuff
 AC_HEADER_STDC
 
 # random libc stuff
 AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS(unistd.h inttypes.h)
 AC_TYPE_MODE_T
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 AC_TYPE_MODE_T
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
@@ -1166,11 +1252,16 @@ AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_GETTIMEOFDAY_ARGS
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_GETTIMEOFDAY_ARGS
+AC_SYS_LARGEFILE
 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
 AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
-AC_CHECK_FUNCS(setlocale)
+AC_CHECK_FUNCS(setlocale sqrtf)
+AC_CHECK_FUNCS(getaddrinfo)
+AC_CHECK_MEMBERS([struct sockaddr.sa_len],,, [[#include <sys/socket.h>]])
 AC_CHECK_ICMP
 AC_CHECK_ICMPHDR
 AC_CHECK_ICMP
 AC_CHECK_ICMPHDR
+AC_CHECK_GETIFADDRS
+AC_TYPE_SOCKLEN_T
 AC_CHECK_HEADERS(crypt.h sys/select.h)
 AC_PROG_PERL
 
 AC_CHECK_HEADERS(crypt.h sys/select.h)
 AC_PROG_PERL
 
@@ -1205,7 +1296,7 @@ AC_MSG_RESULT($ac_macosx)
 #
 ###############################################################################
 
 #
 ###############################################################################
 
-AC_PROG_INTLTOOL
+IT_PROG_INTLTOOL
 GETTEXT_PACKAGE=xscreensaver
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [This is the name of the gettext package to use.])
 GETTEXT_PACKAGE=xscreensaver
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [This is the name of the gettext package to use.])
@@ -1214,7 +1305,7 @@ AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE",
                   generated code.])
 AC_SUBST(GETTEXT_PACKAGE)
 
                   generated code.])
 AC_SUBST(GETTEXT_PACKAGE)
 
-ALL_LINGUAS="ca da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
+ALL_LINGUAS="da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW"
 AM_GLIB_GNU_GETTEXT
 MKINSTALLDIRS="$INSTALL_DIRS"
 
 AM_GLIB_GNU_GETTEXT
 MKINSTALLDIRS="$INSTALL_DIRS"
 
@@ -2373,6 +2464,8 @@ esac
 with_login_manager_req=unspecified
 default_login_manager_1='gdmflexiserver -ls'
 default_login_manager_2='kdmctl reserve'
 with_login_manager_req=unspecified
 default_login_manager_1='gdmflexiserver -ls'
 default_login_manager_2='kdmctl reserve'
+default_login_manager_3='lxdm -c USER_SWITCH'
+default_login_manager_4='dm-tool switch-to-greeter'
 
 AC_ARG_WITH(login-manager,
 [  --with-login-manager    Put a "New Login" button on the unlock dialog that
 
 AC_ARG_WITH(login-manager,
 [  --with-login-manager    Put a "New Login" button on the unlock dialog that
@@ -2392,23 +2485,46 @@ case "$with_login_manager_req" in
   ;;
 
   yes|unspecified)
   ;;
 
   yes|unspecified)
-    # Try both defaults, use the one that exists.
+    # Try various defaults, use the first one that exists.
 
 
-    set dummy $default_login_manager_1 ; login_manager_tmp=$2
-    unset ac_cv_path_login_manager_tmp  # don't cache
-    AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
-    if test ! -z "$login_manager_tmp" ; then
-      with_login_manager="$default_login_manager_1"
-    else
+    with_login_manager=""
+
+    if test -z "$with_login_manager" ; then
+      set dummy $default_login_manager_1 ; login_manager_tmp=$2
+      unset ac_cv_path_login_manager_tmp  # don't cache
+      AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
+      if test ! -z "$login_manager_tmp" ; then
+        with_login_manager="$default_login_manager_1"
+      fi
+    fi
+
+    if test -z "$with_login_manager" ; then
       set dummy $default_login_manager_2 ; login_manager_tmp=$2
       unset ac_cv_path_login_manager_tmp  # don't cache
       AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
       if test ! -z "$login_manager_tmp" ; then
         with_login_manager="$default_login_manager_2"
       set dummy $default_login_manager_2 ; login_manager_tmp=$2
       unset ac_cv_path_login_manager_tmp  # don't cache
       AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
       if test ! -z "$login_manager_tmp" ; then
         with_login_manager="$default_login_manager_2"
-      else
-        with_login_manager=""
       fi
     fi
       fi
     fi
+
+    if test -z "$with_login_manager" ; then
+      set dummy $default_login_manager_3 ; login_manager_tmp=$2
+      unset ac_cv_path_login_manager_tmp  # don't cache
+      AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
+      if test ! -z "$login_manager_tmp" ; then
+        with_login_manager="$default_login_manager_3"
+      fi
+    fi
+
+    if test -z "$with_login_manager" ; then
+      set dummy $default_login_manager_4 ; login_manager_tmp=$2
+      unset ac_cv_path_login_manager_tmp  # don't cache
+      AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, [])
+      if test ! -z "$login_manager_tmp" ; then
+        with_login_manager="$default_login_manager_4"
+      fi
+    fi
+
   ;;
 
   /*)
   ;;
 
   /*)
@@ -2544,6 +2660,9 @@ pkg_check_version() {
 
 jurassic_gtk=no
 gtk_halfassed=no
 
 jurassic_gtk=no
 gtk_halfassed=no
+have_gtk_2_22_or_higher=no
+COMMENT_DEMO_GLADE2_GTK_2_22_HEAD=""
+COMMENT_DEMO_GLADE2_GTK_2_22_TAIL=""
 
 if test "$with_gtk" = yes; then
   have_gtk=no
 
 if test "$with_gtk" = yes; then
   have_gtk=no
@@ -2594,6 +2713,15 @@ if test "$with_gtk" = yes; then
     AC_DEFINE(HAVE_XML)
   fi
 
     AC_DEFINE(HAVE_XML)
   fi
 
+  if test "$have_gtk" = yes; then
+    ok="yes"
+    pkg_check_version gtk+-2.0 2.22
+    have_gtk_2_22_or_higher="$ok"
+    if test "$have_gtk_2_22_or_higher" = yes; then
+      COMMENT_DEMO_GLADE2_GTK_2_22_HEAD="<!-- comment>"
+      COMMENT_DEMO_GLADE2_GTK_2_22_TAIL="</comment -->"
+    fi
+  fi
 fi
 
 
 fi
 
 
@@ -2724,34 +2852,6 @@ if test "$have_motif" = yes ; then
 fi
 
 
 fi
 
 
-###############################################################################
-#
-#       Checking whether Motif requires -lXpm.
-#
-#       If this is Motif 2.x, and we have XPM, then link against XPM as well.
-#       The deal is, Motif 2.x requires XPM -- but it's a compilation option
-#       of the library whether to build the XPM code into libXm, or whether
-#       to rely on an external libXm.  So the only way to tell whether XPM is
-#       a link-time requirement is to examine libXm.a, which is very
-#       difficult to do in an autoconf script.  So... if it's Motif 2.x, we
-#       always link against XPM if the XPM lib exists (and this will be a
-#       no-op if libXm happens to already have the XPM code in it.)
-#
-###############################################################################
-
-motif_requires_xpm=no
-if test "$have_motif" = yes ; then
-   AC_MSG_CHECKING(whether Motif requires XPM)
-   if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
-   then
-     motif_requires_xpm=yes
-     AC_MSG_RESULT(maybe)
-   else
-     AC_MSG_RESULT(no)
-   fi
-fi
-
-
 ###############################################################################
 #
 #       Checking whether Motif requires -lXp.
 ###############################################################################
 #
 #       Checking whether Motif requires -lXp.
@@ -2862,6 +2962,9 @@ if test "$with_gl" = yes; then
       AC_MSG_RESULT(omitting "$libdir" from LDFLAGS)
       libdir=''
 
       AC_MSG_RESULT(omitting "$libdir" from LDFLAGS)
       libdir=''
 
+      # Looks like as of OSX 10.12, gcc can't do ObjC.
+      OBJCC="clang -Wall"
+
     fi
 
 
     fi
 
 
@@ -2869,6 +2972,9 @@ if test "$with_gl" = yes; then
     # So if the Mesa headers exist, and -lpthread exists, then always
     # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
     #
     # So if the Mesa headers exist, and -lpthread exists, then always
     # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
     #
+    # Oftentimes, AX_PTHREAD will bring in -lpthread as well; but that ends
+    # up before -l(Mesa)GL, instead of after where it would belong.
+    #
     if test "$ac_have_mesa_gl" = yes; then
       AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
     fi
     if test "$ac_have_mesa_gl" = yes; then
       AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
     fi
@@ -3107,22 +3213,49 @@ HANDLE_X_PATH_ARG(with_gles, --with-gles, JWZGLES)
 if test "$with_gles" = yes; then
   have_gles=yes
   AC_DEFINE(HAVE_JWZGLES)
 if test "$with_gles" = yes; then
   have_gles=yes
   AC_DEFINE(HAVE_JWZGLES)
-  JWZGLES_OBJS="jwzgles.o"
+  JWZGLES_OBJS='$(JWXYZ_BIN)/jwzgles.o'
   AC_MSG_RESULT(using OpenGL ES compatiblity shim)
 elif test "$with_gles" != no; then
   AC_MSG_RESULT(using OpenGL ES compatiblity shim)
 elif test "$with_gles" != no; then
-  echo "error: must be yes or no: --with-gles=$with_xpm"
+  echo "error: must be yes or no: --with-gles=$with_gles"
   exit 1
 fi
 
   exit 1
 fi
 
-# May want to phase out glBitmap even in a non-GLES world.
+###############################################################################
 #
 #
-if test "$have_gles" = yes; then
-  GLFPS_OBJS="fps-gl.o glxfonts.o texfont.o"
-  GLFONT_OBJS=""
-else
-  AC_DEFINE(HAVE_GLBITMAP)
-  GLFPS_OBJS="fps-gl.o glxfonts.o"
-  GLFONT_OBJS="texfont.o"
+#       Check for -lpng
+#
+###############################################################################
+
+have_png=no
+with_png_req=unspecified
+png_halfassed=no
+AC_ARG_WITH(png,
+[  --with-png             Include support for the PNG library.],
+  [with_png="$withval"; with_png_req="$withval"],
+  [with_png=yes])
+
+HANDLE_X_PATH_ARG(with_png, --with-png, PNG)
+
+if test "$with_png" != yes -a "$with_png" != no ; then
+  echo "error: must be yes or no: --with-png=$with_png"
+  exit 1
+fi
+
+if test "$with_png" = yes; then
+
+  have_png=no
+  AC_CHECK_X_HEADER(png.h, [have_png=yes])
+
+  if test "$have_png" = yes; then
+    # we have the header, now check for the library
+    have_png=no
+    png_halfassed=yes
+    AC_CHECK_X_LIB(png, png_create_read_struct,
+                   [have_png=yes
+                    png_halfassed=no
+                    PNG_LIBS="-lpng"
+                    AC_DEFINE(HAVE_LIBPNG)])
+  fi
 fi
 
 
 fi
 
 
@@ -3171,6 +3304,7 @@ if test "$with_gdk_pixbuf" = yes; then
 
   pkg_check_version gdk-pixbuf-2.0      2.0.0
   pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
 
   pkg_check_version gdk-pixbuf-2.0      2.0.0
   pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0
+  pkg_check_version gio-2.0             2.0.0
   have_gdk_pixbuf="$ok"
 
   if test "$have_gdk_pixbuf" = yes; then
   have_gdk_pixbuf="$ok"
 
   if test "$have_gdk_pixbuf" = yes; then
@@ -3238,7 +3372,7 @@ if test "$with_gdk_pixbuf" = yes; then
 
   if test "$have_gdk_pixbuf" = yes; then
     INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
 
   if test "$have_gdk_pixbuf" = yes; then
     INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
-    XPM_LIBS="$ac_gdk_pixbuf_config_libs"
+    PNG_LIBS="$ac_gdk_pixbuf_config_libs"
     AC_DEFINE(HAVE_GDK_PIXBUF)
   else
     AC_MSG_RESULT(checking for gdk_pixbuf usability... no)
     AC_DEFINE(HAVE_GDK_PIXBUF)
   else
     AC_MSG_RESULT(checking for gdk_pixbuf usability... no)
@@ -3252,46 +3386,6 @@ if test "$with_gdk_pixbuf" = yes; then
 fi
 
 
 fi
 
 
-###############################################################################
-#
-#       Check for -lXpm.
-#
-###############################################################################
-
-have_xpm=no
-with_xpm_req=unspecified
-AC_ARG_WITH(xpm,
-[  --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)
-
-if test "$with_xpm" = yes; then
-  AC_CHECK_X_HEADER(X11/xpm.h,
-                   [have_xpm=yes
-                    AC_DEFINE(HAVE_XPM)
-                    XPM_LIBS="-lXpm $XPM_LIBS"],,
-                    [#include <X11/Xlib.h>])
-elif test "$with_xpm" != no; then
-  echo "error: must be yes or no: --with-xpm=$with_xpm"
-  exit 1
-fi
-
-# See comment near $motif_requires_xpm, above.
-# Need to do this here, after both Motif and XPM have been checked for.
-#
-if test "$have_motif" = yes -a "$have_xpm" = yes ; then
-  if test "$motif_requires_xpm" = yes ; then
-    MOTIF_LIBS="$MOTIF_LIBS $XPM_LIBS"
-  fi
-fi
-
-if test "$XPM_LIBS" = "" ; then
-  XPM_LIBS=$(MINIXPM)
-fi
-
-
 ###############################################################################
 #
 #       Check for -ljpeg
 ###############################################################################
 #
 #       Check for -ljpeg
@@ -3331,6 +3425,94 @@ if test "$with_jpeg" = yes; then
 fi
 
 
 fi
 
 
+###############################################################################
+#
+#       Check for -lXft
+#
+###############################################################################
+
+have_xutf8drawstring=no
+AC_CHECK_X_LIB(X11, Xutf8DrawString,
+               [have_xutf8drawstring=yes],
+               [true], -lX11 -lXext -lm)
+if test "$have_xutf8drawstring" = yes ; then
+  AC_DEFINE(HAVE_XUTF8DRAWSTRING)
+fi
+
+
+have_xft=no
+with_xft_req=unspecified
+xft_halfassed=no
+AC_ARG_WITH(xft,
+[  --with-xft              Include support for the X Freetype library.],
+  [with_xft="$withval"; with_xft_req="$withval"],
+  [with_xft=yes])
+
+HANDLE_X_PATH_ARG(with_xft, --with-xft, Xft)
+
+if test "$with_xft" != yes -a "$with_xft" != no ; then
+  echo "error: must be yes or no: --with-xft=$with_xft"
+  exit 1
+fi
+
+if test "$with_xft" = yes; then
+
+  pkgs=''
+  ok="yes"
+  pkg_check_version xft 2.1.0
+  have_xft="$ok"
+
+  if test "$have_xft" = yes; then
+    AC_CACHE_CHECK([for Xft includes], ac_cv_xft_config_cflags,
+               [ac_cv_xft_config_cflags=`$pkg_config --cflags $pkgs`])
+    AC_CACHE_CHECK([for Xft libs], ac_cv_xft_config_libs,
+               [ac_cv_xft_config_libs=`$pkg_config --libs $pkgs`])
+  fi
+
+  ac_xft_config_cflags=$ac_cv_xft_config_cflags
+  ac_xft_config_libs=$ac_cv_xft_config_libs
+
+  if test "$have_xft" = yes; then
+    #
+    # we appear to have Xft; check for headers/libs to be sure.
+    #
+    ac_save_xft_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $ac_xft_config_cflags"
+
+    have_xft=no
+    AC_CHECK_X_HEADER(X11/Xft/Xft.h, [have_xft=yes])
+
+    CPPFLAGS="$ac_save_xft_CPPFLAGS"
+  fi
+
+  if test "$have_xft" = yes; then
+    # we have the headers, now check for the libraries
+    have_xft=no
+    xft_halfassed=yes
+
+    AC_MSG_RESULT(checking for Xft usability...)
+    AC_CHECK_X_LIB(c, XftDrawStringUtf8, [have_xft=yes],,
+                   $ac_xft_config_libs -lX11 -lXext -lm)
+  fi
+
+  if test "$have_xft" = no; then
+    AC_MSG_RESULT(checking for Xft usability... no)
+  fi
+fi
+
+if test "$have_xft" = yes; then
+  INCLUDES="$INCLUDES $ac_xft_config_cflags"
+  XFT_LIBS="$ac_xft_config_libs"
+  XFT_SRCS=''
+  XFT_OBJS=''
+  AC_DEFINE(HAVE_XFT)
+else
+  XFT_LIBS=''
+  XFT_SRCS='$(UTILS_SRC)/xft.c'
+  XFT_OBJS='$(UTILS_BIN)/xft.o'
+fi
+
+
 ###############################################################################
 #
 #       Check for pty support: this allows 'phosphor' and 'apple2'
 ###############################################################################
 #
 #       Check for pty support: this allows 'phosphor' and 'apple2'
@@ -3339,7 +3521,7 @@ fi
 ###############################################################################
 
 PTY_LIBS=
 ###############################################################################
 
 PTY_LIBS=
-AC_CHECK_HEADERS(pty.h util.h)
+AC_CHECK_HEADERS(pty.h util.h sys/termios.h)
 AC_CHECK_X_LIB(util, forkpty,
                [PTY_LIBS="-lutil"
                 ac_have_forkpty=yes
 AC_CHECK_X_LIB(util, forkpty,
                [PTY_LIBS="-lutil"
                 ac_have_forkpty=yes
@@ -3669,6 +3851,39 @@ elif test "$setuid_hacks" != no; then
 fi
 
 
 fi
 
 
+###############################################################################
+#
+#       Check for --with-record-animation
+#
+###############################################################################
+
+record_anim_default=no
+record_anim="$record_anim_default"
+AC_ARG_WITH(record-animation,
+[  --with-record-animation Include code for generating MP4 videos.
+],
+  [record_anim="$withval"], [record_anim="$record_anim_default"])
+
+HANDLE_X_PATH_ARG(record_anim, --with-record-animation, record animation)
+
+if test "$record_anim" = yes; then
+  true
+elif test "$record_anim" != no; then
+  echo "error: must be yes or no: --with-record-animation=$record_anim"
+  exit 1
+fi
+
+if test "$record_anim" = yes; then
+  if test "$have_gdk_pixbuf" != yes; then
+    AC_MSG_ERROR(--with-record-animation requires GDK-Pixbuf)
+  else
+    AC_MSG_RESULT(enabling --with-record-animation)
+    AC_DEFINE(HAVE_RECORD_ANIM)
+    ANIM_OBJS='$(ANIM_OBJS)'
+    ANIM_LIBS='$(ANIM_LIBS)'
+  fi
+fi
+
 ###############################################################################
 #
 #       Done testing.  Now, set up the various -I and -L variables,
 ###############################################################################
 #
 #       Done testing.  Now, set up the various -I and -L variables,
@@ -3849,9 +4064,9 @@ AC_SUBST(SAVER_LIBS)
 AC_SUBST(MOTIF_LIBS)
 AC_SUBST(GTK_LIBS)
 AC_SUBST(XML_LIBS)
 AC_SUBST(MOTIF_LIBS)
 AC_SUBST(GTK_LIBS)
 AC_SUBST(XML_LIBS)
+AC_SUBST(PNG_LIBS)
 AC_SUBST(JPEG_LIBS)
 AC_SUBST(HACK_LIBS)
 AC_SUBST(JPEG_LIBS)
 AC_SUBST(HACK_LIBS)
-AC_SUBST(XPM_LIBS)
 AC_SUBST(PTY_LIBS)
 AC_SUBST(GL_LIBS)
 AC_SUBST(GLE_LIBS)
 AC_SUBST(PTY_LIBS)
 AC_SUBST(GL_LIBS)
 AC_SUBST(GLE_LIBS)
@@ -3871,6 +4086,9 @@ AC_SUBST(DEFAULT_IMAGES_P)
 AC_SUBST(DEFAULT_IMAGE_DIRECTORY)
 AC_SUBST(DEFAULT_TEXT_FILE)
 AC_SUBST(WITH_BROWSER)
 AC_SUBST(DEFAULT_IMAGE_DIRECTORY)
 AC_SUBST(DEFAULT_TEXT_FILE)
 AC_SUBST(WITH_BROWSER)
+AC_SUBST(COMMENT_DEMO_GLADE2_GTK_2_22_HEAD)
+AC_SUBST(COMMENT_DEMO_GLADE2_GTK_2_22_TAIL)
+
 
 AC_SUBST(OBJCC)
 AC_SUBST(EXES_OSX)
 
 AC_SUBST(OBJCC)
 AC_SUBST(EXES_OSX)
@@ -3882,6 +4100,9 @@ AC_SUBST(PASSWD_OBJS)
 AC_SUBST(XMU_SRCS)
 AC_SUBST(XMU_OBJS)
 AC_SUBST(XMU_LIBS)
 AC_SUBST(XMU_SRCS)
 AC_SUBST(XMU_OBJS)
 AC_SUBST(XMU_LIBS)
+AC_SUBST(XFT_SRCS)
+AC_SUBST(XFT_OBJS)
+AC_SUBST(XFT_LIBS)
 AC_SUBST(SAVER_GL_SRCS)
 AC_SUBST(SAVER_GL_OBJS)
 AC_SUBST(SAVER_GL_LIBS)
 AC_SUBST(SAVER_GL_SRCS)
 AC_SUBST(SAVER_GL_OBJS)
 AC_SUBST(SAVER_GL_LIBS)
@@ -3897,8 +4118,6 @@ AC_SUBST(GL_KLUDGE)
 AC_SUBST(GLE_EXES)
 AC_SUBST(GLE_KLUDGE)
 AC_SUBST(JWZGLES_OBJS)
 AC_SUBST(GLE_EXES)
 AC_SUBST(GLE_KLUDGE)
 AC_SUBST(JWZGLES_OBJS)
-AC_SUBST(GLFPS_OBJS)
-AC_SUBST(GLFONT_OBJS)
 AC_SUBST(GNOME24)
 AC_SUBST(GNOME22)
 AC_SUBST(NOGNOME)
 AC_SUBST(GNOME24)
 AC_SUBST(GNOME22)
 AC_SUBST(NOGNOME)
@@ -3908,6 +4127,8 @@ AC_SUBST(GTK_DATADIR)
 AC_SUBST(PO_DATADIR)
 AC_SUBST(HACK_CONF_DIR)
 AC_SUBST(GTK_EXTRA_OBJS)
 AC_SUBST(PO_DATADIR)
 AC_SUBST(HACK_CONF_DIR)
 AC_SUBST(GTK_EXTRA_OBJS)
+AC_SUBST(ANIM_OBJS)
+AC_SUBST(ANIM_LIBS)
 
 APPDEFAULTS=$ac_x_app_defaults
 AC_SUBST(APPDEFAULTS)
 
 APPDEFAULTS=$ac_x_app_defaults
 AC_SUBST(APPDEFAULTS)
@@ -3919,11 +4140,13 @@ AC_SUBST(PERL)
 
 AC_OUTPUT(Makefile
           utils/Makefile
 
 AC_OUTPUT(Makefile
           utils/Makefile
-          driver/Makefile
-          driver/xscreensaver.pam
+          jwxyz/Makefile
           hacks/Makefile
           hacks/glx/Makefile
           po/Makefile.in
           hacks/Makefile
           hacks/glx/Makefile
           po/Makefile.in
+          driver/Makefile
+          driver/xscreensaver.pam
+          driver/xscreensaver-demo.glade2
           driver/XScreenSaver.ad)
 
 ###############################################################################
           driver/XScreenSaver.ad)
 
 ###############################################################################
@@ -3982,6 +4205,18 @@ noteL() {
 }
 
 
 }
 
 
+# ac_prog_cc_no_pthread normally only happens on AIX, because according
+# to AX_PTHREAD, AIX needs CC=xlc_r or CC=cc_r to do threads.
+# If CC is specified, it takes precedence over --with-pthread.
+if test "$ac_prog_cc_no_pthread" ; then
+  warnL "You requested $ac_original_cc for the C compiler, but it doesn't"
+  warn2 "support POSIX threads."
+  echo ""
+  warn2 "If you have multiple CPU cores, try CC=$PTHREAD_CC."
+elif test "$with_pthread_req" = yes -a "$have_pthread" = no ; then
+  warn 'POSIX threads were requested, but were not found.'
+fi
+
 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
   warn 'The SGI saver extension was requested, but was not found.'
 fi
 if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then
   warn 'The SGI saver extension was requested, but was not found.'
 fi
@@ -4129,16 +4364,12 @@ if test "$have_motif" = yes -a "$have_gtk" = no ; then
 fi
 
 
 fi
 
 
-if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
-  warnL 'Use of XPM was requested, but it was not found.'
-fi
-
 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
 
 if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
 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
 
 if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
-   test "$have_gdk_pixbuf" = no -a "$have_xpm" = no ; then
+   test "$have_gdk_pixbuf" = no ; then
 
   if test "$with_gdk_pixbuf_req" = yes ; then
     true
 
   if test "$with_gdk_pixbuf_req" = yes ; then
     true
@@ -4148,18 +4379,6 @@ if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
     warnL 'The GDK-Pixbuf library was not found.'
   fi
 
     warnL 'The GDK-Pixbuf library was not found.'
   fi
 
-  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.'
-  else
-    warnL 'The XPM library was not found.'
-  fi
-
-  if test "$have_gdk_pixbuf" = no -a "$have_xpm" = yes ; then
-    warn2 'The XPM library is being used instead.'
-  fi
-
   if test "$gdk_pixbuf_halfassed" = yes ; then
     echo ''
     warn2 'More specifically, we found the headers, but not the'
   if test "$gdk_pixbuf_halfassed" = yes ; then
     echo ''
     warn2 'More specifically, we found the headers, but not the'
@@ -4168,11 +4387,15 @@ if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \
     warn2 'file might contain some clues.'
   fi
 
     warn2 'file might contain some clues.'
   fi
 
+  if test "$have_png" = yes ; then
+    echo ''
+    warn2 'The PNG library is being used instead.'
+  fi
+
   echo ''
   warn2 'Some of the demos will not use images as much as they could.'
   warn2 'You should consider installing GDK-Pixbuf and re-running'
   echo ''
   warn2 'Some of the demos will not use images as much as they could.'
   warn2 'You should consider installing GDK-Pixbuf and re-running'
-  warn2 'configure.  (GDK-Pixbuf is recommended over XPM, as it'
-  warn2 'provides support for more image formats.)'
+  warn2 'configure.'
 fi
 
 
 fi
 
 
@@ -4204,6 +4427,50 @@ if test "$have_jpeg" = no ; then
 fi
 
 
 fi
 
 
+if test "$have_png" = no ; then
+  if test "$with_png_req" = yes ; then
+    warnL 'Use of libpng was requested, but it was not found.'
+  elif test "$with_png_req" = no ; then
+    noteL 'The PNG library is not being used.'
+  else
+    noteL 'The PNG library was not found.'
+  fi
+
+  if test "$png_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'library; so either PNG is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+    echo ''
+  fi
+
+  warn2 "Many things aren't going to work right."
+fi
+
+
+if test "$have_xft" = no ; then
+  if test "$with_xft_req" = yes ; then
+    warnL "Use of libXft was requested, but it was not found."
+  elif test "$with_xft_req" = no ; then
+    noteL 'The Xft library is not being used.'
+  else
+    noteL "The Xft library was not found."
+  fi
+
+  if test "$xft_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either Xft is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+    echo ''
+  fi
+
+  warn2 "This means that fonts won't be anti-aliased."
+fi
+
+
 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
   preferred_mesagl=3.4
   mgv="$ac_mesagl_version_string"
 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
   preferred_mesagl=3.4
   mgv="$ac_mesagl_version_string"
@@ -4246,10 +4513,7 @@ if test "$have_gl" = no ; then
   echo ''
   warn2 'Those demos which use 3D will not be built or installed.'
   warn2 'You might want to consider installing OpenGL and'
   echo ''
   warn2 'Those demos which use 3D will not be built or installed.'
   warn2 'You might want to consider installing OpenGL and'
-  warn2 "re-running configure.  If your vendor doesn't ship"
-  warn2 'their own implementation of OpenGL, you can get a free'
-  warn2 'version at <http://www.mesa3d.org/>.  For general OpenGL'
-  warn2 'info, see <http://www.opengl.org/>.'
+  warn2 're-running configure.'
 
 fi
 
 
 fi
 
@@ -4269,7 +4533,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then
     warn2 'library is not.'
   else
     noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
     warn2 'library is not.'
   else
     noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
-    warn2 'was not.'
+    warn2 'library was not.'
   fi
 
   if test "$gle_halfassed" = yes ; then
   fi
 
   if test "$gle_halfassed" = yes ; then
@@ -4284,8 +4548,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then
   warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
   warn2 'will not be built or installed.  You might want to consider'
   warn2 'installing GLE and re-running configure.  You can find the'
   warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
   warn2 'will not be built or installed.  You might want to consider'
   warn2 'installing GLE and re-running configure.  You can find the'
-  warn2 'GLE library at <http://www.linas.org/gle/>.  For general'
-  warn2 'OpenGL info, see <http://www.opengl.org/>.'
+  warn2 'GLE library at <http://www.linas.org/gle/>'
 
  fi
 fi
 
  fi
 fi
@@ -4420,7 +4683,7 @@ if test "$do_dir_warning" = yes; then
   echo '      "xscreensaver-demo", and "xscreensaver-command" executables'
   echo "      will be installed in ${bindir}/."
   echo ""
   echo '      "xscreensaver-demo", and "xscreensaver-command" executables'
   echo "      will be installed in ${bindir}/."
   echo ""
-  echo "      The various graphics demos (190+ different executables) will"
+  echo "      The various graphics demos (200+ different executables) will"
   echo "      be installed in ${HACKDIR}/."
   echo ""
   echo "      If you would prefer the demos to be installed elsewhere,"
   echo "      be installed in ${HACKDIR}/."
   echo ""
   echo "      If you would prefer the demos to be installed elsewhere,"