http://packetstormsecurity.org/UNIX/admin/xscreensaver-3.28.tar.gz
[xscreensaver] / configure.in
index 164e6d8e739ff73cc043ea779894e1a0aeb4b9ff..8dae53f587149f56cf2d4f86ca746c7bb564b881 100644 (file)
@@ -66,8 +66,6 @@ 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]* )
@@ -87,31 +85,47 @@ AC_DEFUN(AC_PROG_CC_ANSI,
 
 ###############################################################################
 #
-#       Function to work around the fucked up gcc 2.96 included in Red Hat 7.0
+#       Functions to figure out how to disable // comments in ANSI C code.
+#
+#       (With recent gcc, this is done with "-std=c89".  With older gcc, this
+#       is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to
+#       gcc.  Old gcc doesn't support -std, and new gcc doesn't support -lang.
+#       so much for compatibility!)
 #
 ###############################################################################
 
-AC_DEFUN(AC_ESCHEW_REDHAT_GCC_LOSSAGE,
+AC_DEFUN(AC_GCC_ACCEPTS_STD,
  [if test -n "$GCC"; then
-   AC_MSG_CHECKING(for Red Hat GCC lossage)
-   AC_CACHE_VAL(ac_cv_red_hat_gcc_lossage,
-    [ac_cv_red_hat_gcc_lossage=no
-      AC_EGREP_CPP(lossage,
-     [#include <stdlib.h>
-      #if !defined(__USE_POSIX) || !defined(__USE_SVID) || !defined(__USE_BSD)
-        lossage
-      #endif
-     ], ac_cv_red_hat_gcc_lossage=yes)
-    ])
+   AC_CACHE_CHECK([whether gcc accepts -std],
+     ac_cv_gcc_accepts_std,
+    [if ( gcc -E -std=c89 - </dev/null 2>&1 >/dev/null | \
+          grep unrecognized >/dev/null ); then
+       ac_cv_gcc_accepts_std=no
+     else
+       ac_cv_gcc_accepts_std=yes
+     fi])
+   ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
+  fi
+])
 
-    ac_red_hat_gcc_lossage=$ac_cv_red_hat_gcc_lossage
-    if test "$ac_cv_red_hat_gcc_lossage" = yes ; then
-      rh_defines="-D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE";
-      CC="$CC $rh_defines"
-      AC_MSG_RESULT(yes: need $rh_defines)
-    else
-      AC_MSG_RESULT(no)
-    fi
+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 "$ac_gcc_accepts_std" = yes ; then
+     #
+     # -std=c89 defines __STRICT_ANSI__, which we don't want.
+     # (That appears to be the only additional preprocessor symbol
+     # it defines, in addition to the syntax changes it makes.)
+     #
+     # -std=gnu89 is no good, because // comments were a GNU
+     # extension before they were in the ANSI C 99 spec...
+     #
+     CC="$CC -std=c89 -U__STRICT_ANSI__"
+   else
+     # The old way:
+     CC="$CC -Wp,-lang-c89"
+   fi
   fi
 ])
 
@@ -705,7 +719,7 @@ AC_DEFUN(HANDLE_X_PATH_ARG, [
 # random compiler setup
 AC_CANONICAL_HOST
 AC_PROG_CC_ANSI
-AC_ESCHEW_REDHAT_GCC_LOSSAGE
+AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
@@ -1039,7 +1053,7 @@ if test "$with_dpms" = yes; then
     # if that failed, look in -lXdpms (this is where it was in XFree86 3.x)
     if test "$have_dpms" = no; then
       AC_CHECK_X_LIB(Xdpms, DPMSInfo,
-                    [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [true],
+                    [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true],
                     -lXext -lX11)
     fi
   fi
@@ -1946,7 +1960,7 @@ if test "$with_gl" = yes; then
     #
     AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl,
       [ac_cv_have_mesa_gl=no
-       AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes])
+       AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes])
       ])
     ac_have_mesa_gl=$ac_cv_have_mesa_gl
  
@@ -2012,6 +2026,11 @@ if test "$with_gl" = yes; then
 #line __oline__ "configure"
 #include "confdefs.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
+#endif
 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
 EOF
 
@@ -2582,6 +2601,7 @@ AC_SUBST(HACK_LIBS)
 AC_SUBST(XPM_LIBS)
 AC_SUBST(GL_LIBS)
 AC_SUBST(GLE_LIBS)
+AC_SUBST(XDPMS_LIBS)
 AC_SUBST(PASSWD_LIBS)
 AC_SUBST(INSTALL_SETUID)
 AC_SUBST(INSTALL_DIRS)