http://ftp.x.org/contrib/applications/xscreensaver-3.22.tar.gz
[xscreensaver] / configure.in
index ed3a8193ef71517050cad4eaa218a3f7ed1c5705..878757cb6c70a0c87da043c6f6e8d3fdf853fff9 100644 (file)
@@ -66,6 +66,8 @@ AC_DEFUN(AC_PROG_CC_ANSI,
   if test -n "$GCC"; then
     AC_MSG_RESULT(Turning on gcc compiler warnings.)
     CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format"
+    AC_MSG_RESULT(Disabling C++ comments in ANSI C code.)
+    CC="$CC -Wp,-lang-c89"
   else
     case "$host" in
       *-irix5* |*-irix6.[0-3]* )
@@ -563,7 +565,7 @@ AC_DEFUN(AC_CHECK_X_LIB, [
     LDFLAGS="$LDFLAGS -L$libdir"
   fi
   # note: $X_LIBS includes $x_libraries
-  LDFLAGS="$LDFLAGS $X_LIBS"
+  LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5])
   CPPFLAGS="$ac_save_CPPFLAGS"
@@ -715,8 +717,6 @@ else
   HACK_LIBS="-lXmu $HACK_LIBS"
   MOTIF_LIBS="-lXmu $MOTIF_LIBS"
   GTK_LIBS="-lXmu $GTK_LIBS"
-  ATHENA_LIBS="-lXmu $ATHENA_LIBS"
-  ATHENA3D_LIBS="-lXmu $ATHENA3D_LIBS"
   AC_DEFINE(HAVE_XMU)
 fi
 
@@ -1496,6 +1496,11 @@ if test "$with_motif" = yes; then
 fi
 
 
+if test "$have_motif" = yes; then
+  AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)])
+fi
+
+
 ###############################################################################
 #
 #       Check for -lgtk.
@@ -1579,63 +1584,6 @@ if test "$with_gtk" = yes; then
 fi
 
 
-###############################################################################
-#
-#       Check for -lXaw and -lXaw3d.
-#
-###############################################################################
-
-have_athena=no
-have_athena3d=no
-with_athena_req=unspecified
-AC_ARG_WITH(athena,
-[  --with-athena           Use the Athena toolkit for the user interface.],
-  [with_athena="$withval"; with_athena_req="$withval"],[with_athena=yes])
-
-HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena)
-
-
-if test "$with_athena" != yes -a "$with_athena" != no ; then
-  echo "error: must be yes or no: --with-athena=$with_athena"
-  exit 1
-fi
-
-
-if test "$with_athena" = yes; then
-  have_athena=no
-  AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes])
-  if test "$have_athena" = yes; then
-    AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB,
-                  [have_athena=yes; have_athena3d=yes], [true],
-                  -lXt -lXmu -lXext -lX11)
-  fi
-fi
-
-if test "$have_athena" = yes; then
-  AC_DEFINE(HAVE_ATHENA)
-  ATHENA_LIBS="-lXaw $ATHENA_LIBS"
-fi
-
-if test "$have_athena3d" = yes; then
-  ATHENA3D_LIBS="-lXaw3d $ATHENA3D_LIBS"
-fi
-
-
-# If we have Athena, check whether it's a version that includes
-# XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
-if test "$have_athena" = yes ; then
-  AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h], 
-                 ac_cv_have_XawViewportSetCoordinates,
-                 [ac_cv_have_XawViewportSetCoordinates=no
-                  AC_EGREP_X_HEADER(XawViewportSetCoordinates, 
-                                    X11/Xaw/Viewport.h,
-                                    ac_cv_have_XawViewportSetCoordinates=yes)])
-  if test "$ac_cv_have_XawViewportSetCoordinates" = yes ; then
-    AC_DEFINE(HAVE_XawViewportSetCoordinates)
-  fi
-fi
-
-
 ###############################################################################
 #
 #       Checking whether Motif is really Lesstif.
@@ -1787,6 +1735,7 @@ fi
 have_gl=no
 ac_have_mesa_gl=no
 with_gl_req=unspecified
+gl_halfassed=no
 AC_ARG_WITH(gl,[
 Graphics options:
 
@@ -1818,31 +1767,43 @@ if test "$with_gl" = yes; then
     ac_have_mesa_gl=$ac_cv_have_mesa_gl
  
 
+    gl_lib_1=""
+    GL_LIBS=""
+
+
+    # Some versions of MesaGL are compiled to require -lpthread.
+    # So if the Mesa headers exist, and -lpthread exists, then always
+    # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
+    #
+    if test "$ac_have_mesa_gl" = yes; then
+      AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],)
+    fi
+
+
     # If we have Mesa headers, check to see if we can link against -lMesaGL.
     # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL.
     # Else, warn that GL is busted.  (We have the headers, but no libs.)
     #
-    gl_lib_1=""
-    GL_LIBS=""
 
     if test "$ac_have_mesa_gl" = yes ; then
       AC_CHECK_X_LIB(MesaGL, glXCreateContext, 
                      [gl_lib_1="MesaGL"
-                      GL_LIBS="-lMesaGL -lMesaGLU"],
-                     [], -lMesaGLU -lX11 -lXext -lm)
+                      GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
+                     [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
     fi
 
     if test "$gl_lib_1" = "" ; then
       AC_CHECK_X_LIB(GL, glXCreateContext, 
                      [gl_lib_1="GL"
-                      GL_LIBS="-lGL -lGLU"],
-                     [], -lGLU -lX11 -lXext -lm)
+                      GL_LIBS="-lGL -lGLU $GL_LIBS"],
+                     [], -lGLU $GL_LIBS -lX11 -lXext -lm)
     fi
 
     if test "$gl_lib_1" = "" ; then
       # we have headers, but no libs -- bail.
       have_gl=no
       ac_have_mesa_gl=no
+      gl_halfassed=yes
     else
       # linking works -- we can build the GL hacks.
       AC_DEFINE(HAVE_GL)
@@ -1907,24 +1868,6 @@ EOF
     fi
 
 
-    # If it's MesaGL, check to see if it requires -lpthread.
-    #
-    have_pthread=no
-    mesa_requires_pthread=no
-    if test "$ac_have_mesa_gl" = yes; then
-
-      AC_CHECK_LIB(pthread, pthread_create, [have_pthread=yes], [],)
-      if test "$have_pthread" = yes; then
-        AC_CHECK_X_LIB($gl_lib_1, gl_get_thread_context,
-                       [mesa_requires_pthread=yes], [true],
-                       $GL_LIBS -lpthread -lX11 -lXext -lm)
-      fi
-
-      if test "$mesa_requires_pthread" = yes; then
-        GL_LIBS="$GL_LIBS -lpthread"
-      fi
-    fi
-
     # Check for OpenGL 1.1 features.
     #
     AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)],
@@ -1967,6 +1910,7 @@ fi
 
 have_gle=no
 with_gle_req=unspecified
+gle_halfassed=no
 AC_ARG_WITH(gle,
 [  --with-gle              Build those demos which depend on GLE
                           (the OpenGL "extrusion" library.)],
@@ -1983,20 +1927,34 @@ if test "$with_gle" = yes; then
     AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
   fi
 
-#          /usr/local/lib/GL/libgle.a
-#          /usr/local/lib/GL/libmatrix.a
-
   if test "$have_gle" = yes ; then
     have_gle=no
+    gle_halfassed=yes
     AC_CHECK_X_LIB(gle, gleCreateGC, 
-                   [have_gle=yes; GLE_LIBS="-lgle"],
+                   [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"],
                    [], $GL_LIBS -lX11 -lXext -lm)
   fi
   if test "$have_gle" = yes ; then
     have_gle=no
-    AC_CHECK_X_LIB(matrix, uview_direction_d, 
-                   [have_gle=yes; GLE_LIBS="$GLE_LIBS -lmatrix"],
-                   [], $GL_LIBS -lX11 -lXext -lm)
+    gle_halfassed=yes
+
+    # sometimes the libmatrix stuff is included in libgle.  look there first.
+#
+# I don't get it.  For some reason, this test passes on SGI, as if
+# uview_direction_d() was in libgle -- but it's not, it's in libmatrix.
+# Yet the link is succeeding.  Why???
+#
+#    AC_CHECK_X_LIB(gle, uview_direction_d, 
+#                   [have_gle=yes; gle_halfassed=no],
+#                   [], $GL_LIBS -lX11 -lXext -lm)
+
+    # if it wasn't in libgle, then look in libmatrix.
+    if test "$have_gle" = no ; then
+      AC_CHECK_X_LIB(matrix, uview_direction_d, 
+                     [have_gle=yes; gle_halfassed=no;
+                      GLE_LIBS="$GLE_LIBS -lmatrix"],
+                    [], $GL_LIBS -lX11 -lXext -lm)
+    fi
   fi
 
   if test "$have_gle" = yes ; then
@@ -2084,10 +2042,12 @@ if test "$with_xshm" = yes; then
   #
   case "$host" in
     *-aix*)
-      have_xshm=no
-      AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
-                     [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
-                     [true], -lX11 -lXext -lm)
+      if [ `uname -v` -eq 3 ]; then
+        have_xshm=no
+        AC_CHECK_X_LIB(XextSam, XShmQueryExtension,
+                       [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"],
+                       [true], -lX11 -lXext -lm)
+      fi
     ;;
   esac
 
@@ -2370,22 +2330,14 @@ fi
 
 
 ALL_DEMO_PROGRAMS=
-if test "$have_athena3d" = yes; then
-  PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw3d
-  ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
-fi
-if test "$have_athena" = yes; then
-  PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xaw
+if test "$have_motif" = yes; then
+  PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
 fi
 if test "$have_gtk" = yes; then
   PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk
   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
 fi
-if test "$have_motif" = yes; then
-  PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm
-  ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
-fi
 
 
 if test "$have_kerberos" = yes; then
@@ -2406,7 +2358,7 @@ if test "$enable_locking" = yes; then
   LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
 else
   LOCK_SRCS='$(NOLOCK_SRCS_1)'
-  LOCK_OBJS='$(NOLOCK_SRCS_1)'
+  LOCK_OBJS='$(NOLOCK_OBJS_1)'
 fi
 
 if test "$need_setuid" = yes; then
@@ -2423,15 +2375,15 @@ if test "$have_gl" = yes; then
   GL_MEN='$(GL_MEN)'
   GL_KLUDGE="${tab}  "
 else
-  GL_KLUDGE="  -${tab}  "
+  GL_KLUDGE="-${tab}  "
 fi
 
 if test "$have_gle" = yes; then
   GLE_EXES='$(GLE_EXES)'
   GLE_MEN='$(GLE_MEN)'
-  GLE_KLUDGE="${tab}  "
+  GLE_KLUDGE="${tab}   "
 else
-  GLE_KLUDGE="  -${tab}  "
+  GLE_KLUDGE="-${tab}   "
 fi
 
 
@@ -2448,8 +2400,6 @@ AC_SUBST(ALL_DEMO_PROGRAMS)
 AC_SUBST(SAVER_LIBS)
 AC_SUBST(MOTIF_LIBS)
 AC_SUBST(GTK_LIBS)
-AC_SUBST(ATHENA_LIBS)
-AC_SUBST(ATHENA3D_LIBS)
 AC_SUBST(HACK_LIBS)
 AC_SUBST(XPM_LIBS)
 AC_SUBST(GL_LIBS)
@@ -2584,17 +2534,13 @@ if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then
 fi
 
 
-if test "$have_motif" = no -a "$have_gtk" = no -a "$have_athena" = no ; then
-  warnL "None of Motif, Gtk, or Athena widgets seem to be available;"
+if test "$have_motif" = no -a "$have_gtk" = no; then
+  warnL "Neither Motif nor Gtk seem to be available;"
   warn2 "the \`xscreensaver-demo' program requires one of these."
 
 elif test "$with_motif_req" = yes -a "$have_motif" = no ; then
   warnL "Use of Motif was requested, but it wasn't found;"
-  if test "$have_gtk" = yes; then
-    warn2 "Gtk will be used instead."
-  else
-    warn2 "Athena will be used instead."
-  fi
+  warn2 "Gtk will be used instead."
 
 elif test "$jurassic_gtk" = yes ; then
 
@@ -2609,29 +2555,12 @@ elif test "$jurassic_gtk" = yes ; then
     warnL "Gtk was found on this system, but it is version $v;"
   fi
 
-  if test "$have_motif" = yes; then
-    which="Motif"
-  else
-    which="Athena"
-  fi
-
-  warn2 "Gtk $pref_gtk or newer is required.  $which will be used instead."
+  warn2 "Gtk $pref_gtk or newer is required.  Motif will be used instead."
 
 elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
   warnL "Use of Gtk was requested, but it wasn't found;"
-  if test "$have_motif" = yes; then
-    warn2 "Motif will be used instead."
-  else
-    warn2 "Athena will be used instead."
-  fi
+  warn2 "Motif will be used instead."
 
-elif test "$with_athena_req" = yes -a "$have_athena" = no ; then
-  warnL "Use of Athena was requested, but it wasn't found;"
-  if test "$have_gtk" = yes; then
-    warn2 "Gtk will be used instead."
-  else
-    warn2 "Motif will be used instead."
-  fi
 fi
 
 
@@ -2653,15 +2582,6 @@ if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
   fi
 fi
 
-if test "$have_athena" = yes -a "$have_motif" = no -a "$have_gtk" = no; then
-    warnL "Athena widgets are being used instead of Motif or Gtk."
-    warn2 "The \`xscreensaver-demo' program looks much better"
-    warn2 "with Motif or Gtk.  Wouldn't you rather be using Motif?"
-    warn2 "Motif is shipped by every commercial Unix vendor,"
-    warn2 "and there is a free implementation available as"
-    warn2 "well: see <http://www.lesstif.org/>.  Gtk is shipped"
-    warn2 "with most Linux and BSD distributions."
-fi
 
 
 if test "$have_xpm" = no ; then
@@ -2697,7 +2617,6 @@ if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
   fi
 fi
 
-
 if test "$have_gl" = no ; then
   if test "$with_gl_req" = yes ; then
     warnL 'Use of GL was requested, but it was not found.'
@@ -2707,6 +2626,14 @@ if test "$have_gl" = no ; then
     noteL 'The OpenGL 3D library was not found.'
   fi
 
+  if test "$gl_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either GL is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+  fi
+
   echo ''
   warn2 'Those demos which use 3D will not be built or installed.'
   warn2 'You might want to consider installing OpenGL and'
@@ -2721,19 +2648,32 @@ fi
 
 if test "$have_gl" = yes -a "$have_gle" = no ; then
   if test "$with_gle_req" = yes ; then
-    warnL 'Use of GLE was requested, but it was not found.'
+    noteL 'Use of the GLE (GL Extrusion) library was requested, but'
+    warn2 'it was not found (though the OpenGL library was found, and'
+    warn2 'is being used.)'
   elif test "$with_gle_req" = no ; then
-    noteL 'The GLE (GL Extrusion) library is not being used.'
+    noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)'
+    warn2 'library is not.'
   else
-    noteL 'The GLE (GL Extrusion) library was not found.'
+    noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)'
+    warn2 'was not.'
+  fi
+
+  if test "$gle_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either GLE is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
   fi
 
   echo ''
-  warn2 'Some of the OpenGL (3D) demos will not be built or installed.'
-  warn2 'You might want to consider installing GLE and re-running'
-  warn2 'configure.  (Remember to delete the config.cache file first.)'
-  warn2 'You can find the GLE library at <http://www.linas.org/gle/>.'
-  warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
+  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/>.'
 
 fi