http://www.archive.org/download/tucows_10294_XScreenSaver/xscreensaver-4.10.tar.gz
[xscreensaver] / configure.in
index e5579217d24fd979cc15e28275dd41752365ba5d..a2337930bf8e0668a97638a65bcb402ab766d9e0 100644 (file)
@@ -1,4 +1,4 @@
-# configure.in --- xscreensaver, Copyright (c) 1997-2002 Jamie Zawinski.
+# configure.in --- xscreensaver, Copyright (c) 1997-2003 Jamie Zawinski.
 #
 
 AC_PREREQ(2.52)
 #
 
 AC_PREREQ(2.52)
@@ -140,6 +140,38 @@ AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE,
 ])
 
 
 ])
 
 
+###############################################################################
+#
+#       Function to figure out how to turn off Objective C on MacOS X.
+#       (We have to do this to work around an Apple-specific gcc bug.)
+#
+###############################################################################
+
+AC_DEFUN(AC_GCC_ACCEPTS_NO_CPP_PRECOMP,
+ [if test -n "$GCC"; then
+   AC_CACHE_CHECK([whether gcc accepts -no-cpp-precomp],
+     ac_cv_gcc_accepts_no_cpp_precomp,
+    [if ( ( gcc -E -no-cpp-precomp - </dev/null >/dev/null ) 2>&1 | \
+          grep unrecognized >/dev/null ); then
+       ac_cv_gcc_accepts_no_cpp_precomp=no
+     else
+       ac_cv_gcc_accepts_no_cpp_precomp=yes
+     fi])
+   ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
+  fi
+])
+
+AC_DEFUN(AC_NO_OBJECTIVE_C,
+ [if test -n "$GCC"; then
+   AC_GCC_ACCEPTS_NO_CPP_PRECOMP
+   if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
+     AC_MSG_RESULT(Disabling Objective C extensions in ANSI C code.)
+     CC="$CC -no-cpp-precomp"
+   fi
+  fi
+])
+
+
 ###############################################################################
 #
 #       Function to figure out how to create directory trees.
 ###############################################################################
 #
 #       Function to figure out how to create directory trees.
@@ -590,6 +622,16 @@ AC_DEFUN(AC_X_RANDOM_PATHS,
         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
         AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
       fi
         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
         AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"])
       fi
+
+    ;;
+    *-darwin*)
+
+      # On MacOS X (10.x with "fink"), many things are under /sw/.
+      #
+      if test -d /sw/include ; then
+        X_CFLAGS="-I/sw/include $X_CFLAGS"
+        X_LIBS="-L/sw/lib $X_LIBS"
+      fi
     ;;
   esac])
 
     ;;
   esac])
 
@@ -743,6 +785,7 @@ AC_DEFUN(HANDLE_X_PATH_ARG, [
 AC_CANONICAL_HOST
 AC_PROG_CC_ANSI
 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
 AC_CANONICAL_HOST
 AC_PROG_CC_ANSI
 AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
+AC_NO_OBJECTIVE_C
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
@@ -1315,15 +1358,37 @@ elif test "$with_xf86gamma" != no; then
 fi
 
 
 fi
 
 
+###############################################################################
+#
+#       Check for XF86MiscSetGrabKeysState (but only bother if we are already
+#      using other XF86 stuff.)
+#
+###############################################################################
+
+have_xf86miscsetgrabkeysstate=no
+if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
+  AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState,
+                [have_xf86miscsetgrabkeysstate=yes],
+                [true], -lXext -lX11)
+  if test "$have_xf86miscsetgrabkeysstate" = yes ; then
+    SAVER_LIBS="$SAVER_LIBS -lXxf86misc"
+    AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE)
+  fi
+fi
+
+
 ###############################################################################
 #
 #       Check for HP XHPDisableReset and XHPEnableReset.
 #
 ###############################################################################
 
 ###############################################################################
 #
 #       Check for HP XHPDisableReset and XHPEnableReset.
 #
 ###############################################################################
 
+AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h])
 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
                   [AC_DEFINE(HAVE_XHPDISABLERESET)
 AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h,
                   [AC_DEFINE(HAVE_XHPDISABLERESET)
-                   SAVER_LIBS="-lXhp11 $SAVER_LIBS"])
+                   SAVER_LIBS="-lXhp11 $SAVER_LIBS"
+                   AC_MSG_RESULT(yes)],
+                  [AC_MSG_RESULT(no)])
 
 
 ###############################################################################
 
 
 ###############################################################################
@@ -1535,7 +1600,12 @@ if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
   if test "$have_kerberos5" = yes ; then
     # from Matt Knopp <mhat@infocalypse.netlag.com>
     # (who got it from amu@mit.edu)
   if test "$have_kerberos5" = yes ; then
     # from Matt Knopp <mhat@infocalypse.netlag.com>
     # (who got it from amu@mit.edu)
-    PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
+
+    PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
+
+    # jwz: MacOS X uses -lkrb5, but not -lcrypt
+    AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"])
+
   elif test "$have_kerberos" = yes ; then
     # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
   elif test "$have_kerberos" = yes ; then
     # from Tim Showalter <tjs@psaux.com> for FreeBSD 4.2
     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err"
@@ -2023,15 +2093,16 @@ if test "$with_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
       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
+      parse_gtk_version_string
     fi
 
     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
+    if test "$have_gtk" = yes; then
+      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
     fi
 
     if test "$have_gtk" = yes; then
@@ -2054,7 +2125,7 @@ if test "$with_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,
       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 | \
+        [if ( $gnome_config --cflags $gnome_config_libs 2>&1 | \
               grep Unknown >/dev/null ) ; then
            ac_cv_gnome_config_cflags=''
          else
               grep Unknown >/dev/null ) ; then
            ac_cv_gnome_config_cflags=''
          else
@@ -2072,7 +2143,7 @@ if test "$with_gtk" = yes; then
     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 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 |
+        [if ( $gnome_config --libs $gnome_config_libs 2>&1 |
               grep Unknown >/dev/null ) ; then
            ac_cv_gnome_config_libs=''
          else
               grep Unknown >/dev/null ) ; then
            ac_cv_gnome_config_libs=''
          else
@@ -2565,8 +2636,29 @@ if test "$with_gl" = yes; then
 #include <GL/gl.h>
 #ifndef MESA_MAJOR_VERSION
 # include <GL/xmesa.h>
 #include <GL/gl.h>
 #ifndef MESA_MAJOR_VERSION
 # include <GL/xmesa.h>
-# define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
-# define MESA_MINOR_VERSION XMESA_MINOR_VERSION
+# ifdef XMESA_MAJOR_VERSION
+   /* Around Mesa 3.2, they took out the Mesa version number, so instead,
+      we have to check the XMesa version number (the number of the X protocol
+      support, which seems to be the same as the Mesa version number.)
+    */
+#  define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION
+#  define MESA_MINOR_VERSION XMESA_MINOR_VERSION
+# else
+   /* Oh great.  Some time after 3.4, they took out the xmesa.h header file,
+      so we have no way of telling what version of Mesa this is at all.
+      So, we'll guess that the osmesa version (the "offscreen protocol")
+      is less than or equal to the real mesa version number.  Except that
+      if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in
+      Mesa 3.4.  And Mesa 3.3 had xmesa.h.  What a complete load of shit!
+    */
+# include <GL/osmesa.h>
+#  define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION
+#  define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably?
+#  if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3
+#   undef MESA_MINOR_VERSION
+#   define MESA_MINOR_VERSION 4 or newer, probably?
+#  endif
+# endif
 #endif
 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
 EOF
 #endif
 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
 EOF
@@ -2582,7 +2674,7 @@ EOF
          # M4 sucks!!
          changequote(X,Y)
           mglv=`echo "$mglv" | sed -n \
          # M4 sucks!!
          changequote(X,Y)
           mglv=`echo "$mglv" | sed -n \
-             's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'`
+             's/^configure: *\([0-9][0-9]*\)  *\([0-9].*\)$/\1.\2/p'`
          changequote([,])
 
          rm -f conftest.$ac_ext
          changequote([,])
 
          rm -f conftest.$ac_ext
@@ -2593,9 +2685,12 @@ EOF
            ac_mesagl_version=unknown
            ac_mesagl_version_string=unknown
          else
            ac_mesagl_version=unknown
            ac_mesagl_version_string=unknown
          else
-           ac_mesagl_version_string=$mglv
-           maj=`echo $mglv | sed -n 's/\..*//p'`
-           min=`echo $mglv | sed -n 's/.*\.//p'`
+           ac_mesagl_version_string="$mglv"
+           # M4 sucks!!
+           changequote(X,Y)
+           maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'`
+           min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'`
+           changequote([,])
            ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
            if test -z "$ac_mesagl_version"; then
              ac_mesagl_version=unknown
            ac_mesagl_version=`echo "$maj * 1000 + $min" | bc`
            if test -z "$ac_mesagl_version"; then
              ac_mesagl_version=unknown
@@ -2744,7 +2839,6 @@ if test "$have_motif" = yes -a "$have_xpm" = yes ; then
   fi
 fi
 
   fi
 fi
 
-
 ###############################################################################
 #
 #       Check for -lgdk_pixbuf.
 ###############################################################################
 #
 #       Check for -lgdk_pixbuf.
@@ -2953,9 +3047,7 @@ 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.
-                          (If this library is available, webcollage will be a
-                        . lot faster.)],
+[  --with-jpeg             Include support for the JPEG library.],
   [with_jpeg="$withval"; with_jpeg_req="$withval"],
   [with_jpeg=yes])
 
   [with_jpeg="$withval"; with_jpeg_req="$withval"],
   [with_jpeg=yes])
 
@@ -3300,7 +3392,6 @@ fi
 
 if test "$have_gle" = yes; then
   GLE_EXES='$(GLE_EXES)'
 
 if test "$have_gle" = yes; then
   GLE_EXES='$(GLE_EXES)'
-  GLE_MEN='$(GLE_MEN)'
   GLE_KLUDGE="${tab}   "
 else
   GLE_KLUDGE="-${tab}   "
   GLE_KLUDGE="${tab}   "
 else
   GLE_KLUDGE="-${tab}   "
@@ -3454,7 +3545,6 @@ AC_SUBST(GL_UTIL_EXES)
 AC_SUBST(GL_MEN)
 AC_SUBST(GL_KLUDGE)
 AC_SUBST(GLE_EXES)
 AC_SUBST(GL_MEN)
 AC_SUBST(GL_KLUDGE)
 AC_SUBST(GLE_EXES)
-AC_SUBST(GLE_MEN)
 AC_SUBST(GLE_KLUDGE)
 AC_SUBST(GNOMEHELP_Y)
 AC_SUBST(GNOMEHELP_N)
 AC_SUBST(GLE_KLUDGE)
 AC_SUBST(GNOMEHELP_Y)
 AC_SUBST(GNOMEHELP_N)
@@ -3620,7 +3710,10 @@ if test "$gtk2_halfassed" != no ; then
 fi
 
 
 fi
 
 
-if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
+if test "$with_gnome_req" = yes -a "$have_gnome" = no \
+        -a "$have_gtk2" = no; then
+  # don't issue this warning if we have GTK2 -- in that case, the
+  # Gnome-specific code isn't needed.
   warn  'Use of the Gnome Control Panel was requested, but the necessary'
   warn2 'headers and/or libraries were not found.'
 fi
   warn  'Use of the Gnome Control Panel was requested, but the necessary'
   warn2 'headers and/or libraries were not found.'
 fi
@@ -3731,8 +3824,7 @@ if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no || \
   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'
-  warn2 'XPM and re-running configure.  (Remember to delete'
-  warn2 'the config.cache file first.)  The Pixbuf library is'
+  warn2 'XPM and re-running configure.  The Pixbuf library is'
   warn2 'a part of GNOME.  The XPM library comes with most'
   warn2 'X11 installations; you can also find it at the X11'
   warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
   warn2 'a part of GNOME.  The XPM library comes with most'
   warn2 'X11 installations; you can also find it at the X11'
   warn2 'archive sites, such as <http://sunsite.unc.edu/>.'
@@ -3760,7 +3852,13 @@ if test "$have_jpeg" = no ; then
     echo ''
   fi
 
     echo ''
   fi
 
-  warn2 "This means the \`webcollage' program will be much slower."
+  if test "$have_gdk_pixbuf" = no ; then
+    warn2 "This means that it won't be possible for the image-manipulating"
+    warn2 "display modes to load files from disk; and it also means that"
+    warn2 "the \`webcollage' program will be much slower."
+  else
+    warn2 "This means the \`webcollage' program will be much slower."
+  fi
 fi
 
 
 fi
 
 
@@ -3774,13 +3872,14 @@ if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
     warn2 "Make sure you are using version $preferred_mesagl or newer."
 
   elif test \! "$ac_mesagl_version" -gt 2006; then
     warn2 "Make sure you are using version $preferred_mesagl or newer."
 
   elif test \! "$ac_mesagl_version" -gt 2006; then
-    warnL "MesaGL version $mgv is being used.  MesaGL 2.6 and earlier"
-    warn2 "have a security bug.  It is strongly recommended that you"
-    warn2 "upgrade to at least version $preferred_mesagl."
+    warnL "MesaGL version number is $mgv --"
+    warn2 "MesaGL 2.6 and earlier have a security bug.  It is strongly"
+    warn2 "recommended that you upgrade to at least version $preferred_mesagl."
 
   elif test \! "$ac_mesagl_version" -gt 3003; then
 
   elif test \! "$ac_mesagl_version" -gt 3003; then
-    warnL "MesaGL version $mgv is being used.  That version has some"
-    warn2 "bugs; it is recommended that you upgrade to $pgl or newer."
+    warnL "MesaGL version number is $mgv --"
+    warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended"
+    warn2 "that you upgrade to $pgl or newer."
   fi
 fi
 
   fi
 fi
 
@@ -3804,8 +3903,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.  (Remember to delete the'
-  warn2 "config.cache file first.)  If your vendor doesn't ship"
+  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 '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/>.'
@@ -3814,6 +3912,11 @@ fi
 
 
 if test "$have_gl" = yes -a "$have_gle" = no ; then
 
 
 if test "$have_gl" = yes -a "$have_gle" = no ; then
+
+ # nobody cares about this; don't print the warning unless it was
+ # requested and not found, or halfway-found.
+ if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then
+
   if test "$with_gle_req" = yes ; then
     noteL 'Use of the GLE (GL Extrusion) library was requested, but'
     warn2 'it was not found (though the OpenGL library was found, and'
   if test "$with_gle_req" = yes ; then
     noteL 'Use of the GLE (GL Extrusion) library was requested, but'
     warn2 'it was not found (though the OpenGL library was found, and'
@@ -3837,11 +3940,11 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then
   echo ''
   warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)'
   warn2 'will not be built or installed.  You might want to consider'
   echo ''
   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.  (Remember to delete'
-  warn2 'the config.cache file first.)  You can find the GLE library'
-  warn2 'at <http://www.linas.org/gle/>.  For general OpenGL info,'
-  warn2 'see <http://www.opengl.org/>.'
+  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/>.'
 
 
+ fi
 fi
 
 
 fi
 
 
@@ -3957,7 +4060,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 (140+ different executables) will"
+  echo "      The various graphics demos (150+ 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,"