From http://www.jwz.org/xscreensaver/xscreensaver-5.30.tar.gz
[xscreensaver] / configure.in
index 7c3e8b4e1546d14a9b837675e8c42c64a4ae7fbd..25b827c5b425f4743d7fbee2b31cc93df21d51c0 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 
@@ -190,6 +190,9 @@ AH_TEMPLATE([HAVE_GLE],
 
 AH_TEMPLATE([HAVE_GLE3],[Define this if you have the -lgle from GLE version 3])
 
 
 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_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.])
 
@@ -245,6 +248,11 @@ AH_TEMPLATE([HAVE_PAM_FAIL_DELAY],
            [Define this if you have pam_fail_delay function.
            see driver/passwd-pam.c.])
 
            [Define this if you have pam_fail_delay function.
            see driver/passwd-pam.c.])
 
+AH_TEMPLATE([PAM_CHECK_ACCOUNT_TYPE],
+            [Whether PAM should check the result of account modules
+           when authenticating.  Only do this if you have account
+           configured properly on your system.])
+
 AH_TEMPLATE([PAM_STRERROR_TWO_ARGS],
            [Define if you have PAM and pam_strerror() requires two
            arguments.])
 AH_TEMPLATE([PAM_STRERROR_TWO_ARGS],
            [Define if you have PAM and pam_strerror() requires two
            arguments.])
@@ -289,6 +297,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
@@ -303,6 +314,9 @@ 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.])
+
 # 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.
@@ -318,14 +332,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
@@ -395,7 +448,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],
@@ -412,16 +465,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)])
 
 ###############################################################################
@@ -444,7 +497,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
@@ -456,7 +509,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.)
@@ -495,7 +548,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
@@ -546,7 +599,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>
@@ -585,7 +638,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
@@ -603,7 +656,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
@@ -623,7 +676,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>
@@ -666,7 +719,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>
@@ -714,7 +767,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
@@ -742,7 +795,7 @@ 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                                 \
@@ -801,7 +854,7 @@ 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_PATH_X_APP_DEFAULTS_XMKMF
   [AC_REQUIRE_CPP()
     AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults,
      [AC_PATH_X_APP_DEFAULTS_XMKMF
@@ -817,7 +870,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;],
@@ -831,7 +884,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*)
 
@@ -963,6 +1016,21 @@ 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])
 
 
 ###############################################################################
 
 
 ###############################################################################
@@ -973,7 +1041,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"
@@ -985,7 +1053,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"
@@ -997,7 +1065,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"
@@ -1011,7 +1079,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"
@@ -1039,7 +1107,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"
@@ -1066,7 +1134,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)  ;;
@@ -1122,6 +1190,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
@@ -1156,11 +1229,13 @@ 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(setlocale)
 AC_CHECK_ICMP
 AC_CHECK_ICMPHDR
 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_ICMP
 AC_CHECK_ICMPHDR
+AC_CHECK_GETIFADDRS
 AC_CHECK_HEADERS(crypt.h sys/select.h)
 AC_PROG_PERL
 
 AC_CHECK_HEADERS(crypt.h sys/select.h)
 AC_PROG_PERL
 
@@ -1195,7 +1270,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.])
@@ -1925,6 +2000,20 @@ AC_ARG_WITH([pam_service_name],
                           xscreensaver will authenticate as.]),
            [pam_service_name="$withval"],[pam_service_name="xscreensaver"])
 
                           xscreensaver will authenticate as.]),
            [pam_service_name="$withval"],[pam_service_name="xscreensaver"])
 
+AC_ARG_ENABLE(pam-check-account-type,
+  [AC_HELP_STRING([--enable-pam-check-account-type],
+                          [Whether PAM should check the result of account
+                          modules when authenticating.  Only do this if you
+                          have account configured properly on your system.])],
+  [enable_pam_check_account_type="$enableval"],[enable_pam_check_account_type=no])
+if test "$enable_pam_check_account_type" = yes ; then
+  AC_DEFINE(PAM_CHECK_ACCOUNT_TYPE)
+  true
+elif test "$enable_pam_check_account_type" != no ; then
+  echo "error: must be yes or no: --enable-pam-check-account-type=$enable_pam_check_account_type"
+  exit 1
+fi
+
 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
 
 if test "$enable_locking" = yes -a "$with_pam" = yes; then
 HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM)
 
 if test "$enable_locking" = yes -a "$with_pam" = yes; then
@@ -2520,6 +2609,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
@@ -2570,6 +2662,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
 
 
@@ -2845,6 +2946,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
@@ -3067,6 +3171,29 @@ elif test "$with_gle" != no; then
 fi
 
 
 fi
 
 
+###############################################################################
+#
+#       Handle --with-gles
+#
+###############################################################################
+
+with_gles_req=unspecified
+AC_ARG_WITH(gles,
+[  --with-gles             Target OpenGL ES 1.x API instead of OpenGL 1.3.],
+  [with_gles="$withval"; with_gles_req="$withval"],[with_gles=no])
+
+HANDLE_X_PATH_ARG(with_gles, --with-gles, JWZGLES)
+
+if test "$with_gles" = yes; then
+  have_gles=yes
+  AC_DEFINE(HAVE_JWZGLES)
+  JWZGLES_OBJS="jwzgles.o"
+  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"
+  exit 1
+fi
+
 ###############################################################################
 #
 #       Check for -lgdk_pixbuf.
 ###############################################################################
 #
 #       Check for -lgdk_pixbuf.
@@ -3652,6 +3779,11 @@ if test "$have_pam" = yes; then
   PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
   INSTALL_PAM="install-pam"
 fi
   PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)"
   INSTALL_PAM="install-pam"
 fi
+if test "$enable_pam_check_account_type" = yes; then
+  COMMENT_PAM_CHECK_ACCOUNT=""
+else
+  COMMENT_PAM_CHECK_ACCOUNT="#"
+fi
 if test "$have_passwd_helper" = yes; then
   PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
   PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
 if test "$have_passwd_helper" = yes; then
   PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)"
   PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)"
@@ -3800,12 +3932,16 @@ AC_SUBST(INSTALL_DIRS)
 AC_SUBST(NEED_SETUID)
 AC_SUBST(INSTALL_PAM)
 AC_SUBST(HAVE_PAM_FAIL_DELAY)
 AC_SUBST(NEED_SETUID)
 AC_SUBST(INSTALL_PAM)
 AC_SUBST(HAVE_PAM_FAIL_DELAY)
+AC_SUBST(COMMENT_PAM_CHECK_ACCOUNT)
 AC_SUBST(NEW_LOGIN_COMMAND)
 AC_SUBST(NEW_LOGIN_COMMAND_P)
 AC_SUBST(DEFAULT_IMAGES_P)
 AC_SUBST(DEFAULT_IMAGE_DIRECTORY)
 AC_SUBST(DEFAULT_TEXT_FILE)
 AC_SUBST(WITH_BROWSER)
 AC_SUBST(NEW_LOGIN_COMMAND)
 AC_SUBST(NEW_LOGIN_COMMAND_P)
 AC_SUBST(DEFAULT_IMAGES_P)
 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)
@@ -3831,6 +3967,7 @@ AC_SUBST(GL_MEN)
 AC_SUBST(GL_KLUDGE)
 AC_SUBST(GLE_EXES)
 AC_SUBST(GLE_KLUDGE)
 AC_SUBST(GL_KLUDGE)
 AC_SUBST(GLE_EXES)
 AC_SUBST(GLE_KLUDGE)
+AC_SUBST(JWZGLES_OBJS)
 AC_SUBST(GNOME24)
 AC_SUBST(GNOME22)
 AC_SUBST(NOGNOME)
 AC_SUBST(GNOME24)
 AC_SUBST(GNOME22)
 AC_SUBST(NOGNOME)
@@ -3852,6 +3989,8 @@ AC_SUBST(PERL)
 AC_OUTPUT(Makefile
           utils/Makefile
           driver/Makefile
 AC_OUTPUT(Makefile
           utils/Makefile
           driver/Makefile
+          driver/xscreensaver.pam
+          driver/xscreensaver-demo.glade2
           hacks/Makefile
           hacks/glx/Makefile
           po/Makefile.in
           hacks/Makefile
           hacks/glx/Makefile
           po/Makefile.in
@@ -3913,6 +4052,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
@@ -4177,10 +4328,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
 
@@ -4200,7 +4348,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
@@ -4215,8 +4363,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
@@ -4351,7 +4498,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,"