changeset 34634:d72e56ced110

build: Run configure tests for glBlendFuncSeparate in C++. * m4/acinclude.m4 (OCTAVE_CHECK_LIB_OPENGL): Run tests for glBlendFuncSeparate in C++. Split that test into two separate cached checks. See: https://octave.discourse.group/t/6588
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 12 Jun 2025 10:23:48 +0200
parents e84e51c6d8c2
children 56cb7356bb63
files m4/acinclude.m4
diffstat 1 files changed, 20 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/m4/acinclude.m4
+++ b/m4/acinclude.m4
@@ -1587,8 +1587,9 @@
     save_LIBS="$LIBS"
     LIBS="$LIBS $OPENGL_LIBS"
     AC_CACHE_CHECK([for glBlendFuncSeparate],
-      [octave_cv_func_glblendfuncseparate],
-      [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+      [octave_cv_func_glblendfuncseparate],[
+      AC_LANG_PUSH(C++)
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #if defined (HAVE_WINDOWS_H)
 # include <windows.h>
 #endif
@@ -1610,7 +1611,16 @@
         glBlendFuncSeparate (sfactor, dfactor, salpha, dalpha);
         ]])],
         octave_cv_func_glblendfuncseparate=yes,
-        [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+        octave_cv_func_glblendfuncseparate=no)
+      AC_LANG_POP(C++)
+      ])
+    if test $octave_cv_func_glblendfuncseparate = yes; then
+      AC_DEFINE(HAVE_GLBLENDFUNCSEPARATE, 1, [Define to 1 if glBlendFuncSeparate can be used directly.])
+    else
+      AC_CACHE_CHECK([for glBlendFuncSeparate with GL_GLEXT_PROTOTYPES],
+        [octave_cv_func_glblendfuncseparate_as_ext],[
+        AC_LANG_PUSH(C++)
+        AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #define GL_GLEXT_PROTOTYPES 1
 #if defined (HAVE_WINDOWS_H)
 # include <windows.h>
@@ -1632,15 +1642,15 @@
           GLenum dalpha=0;
           glBlendFuncSeparate (sfactor, dfactor, salpha, dalpha);
           ]])],
-          [AC_DEFINE(GL_GLEXT_PROTOTYPES, 1, [Define to 1 to enable OpenGL extensions in headers.])
-          octave_cv_func_glblendfuncseparate=yes],
-          octave_cv_func_glblendfuncseparate=no)
+          octave_cv_func_glblendfuncseparate_as_ext=yes,
+          octave_cv_func_glblendfuncseparate_as_ext=no)
         ])
-      ])
+      if test $octave_cv_func_glblendfuncseparate_as_ext = yes; then
+        AC_DEFINE(HAVE_GLBLENDFUNCSEPARATE, 1, [Define to 1 if glBlendFuncSeparate can be used directly.])
+        AC_DEFINE(GL_GLEXT_PROTOTYPES, 1, [Define to 1 to enable OpenGL extensions in headers.])
+      fi
+    fi
     LIBS="$save_LIBS"
-    if test $octave_cv_func_glblendfuncseparate = yes; then
-      AC_DEFINE(HAVE_GLBLENDFUNCSEPARATE, 1, [Define to 1 if glBlendFuncSeparate can be used directly.])
-    fi
   fi
 ])
 dnl