diff options
Diffstat (limited to 'm4')
-rw-r--r-- | m4/opengl.m4 | 72 |
1 files changed, 42 insertions, 30 deletions
diff --git a/m4/opengl.m4 b/m4/opengl.m4 index fdc30751e..82534be91 100644 --- a/m4/opengl.m4 +++ b/m4/opengl.m4 @@ -1,5 +1,5 @@ dnl -dnl Check for OpenGL & [Glut | GLU] +dnl Check for OpenGL & GLU dnl dnl AM_PATH_OPENGL([ACTION IF FOUND [, ACTION IF NOT FOUND]]) dnl @@ -10,46 +10,58 @@ AC_DEFUN([AM_PATH_OPENGL], [ [enableopengl=$enableval], [enableopengl="yes"] ) + AC_ARG_ENABLE(glu, AC_HELP_STRING([--disable-glu], [build OpenGL plugin without GLU (no verbose errors)]), + [enableglu=$enableval], + [enableglu="yes"] + ) if test x$enableopengl = "xyes"; then AC_CHECK_LIB(GL, glBegin, - [AC_CHECK_HEADER(GL/gl.h, - [ac_have_opengl="yes" - OPENGL_LIBS="-lGL" - dnl check for glut - AC_CHECK_LIB(glut, glutInit, - [ac_have_glut="yes" - GLUT_LIBS="-lglut" - AC_DEFINE(HAVE_GLUT,1,[Define this if you have GLut support available]) - AC_DEFINE(HAVE_OPENGL,1,[Define this if you have OpenGL support available]) - ], - [ac_have_glut="no" - dnl fallback, check for GLU - AC_CHECK_LIB(GLU, gluPerspective, - [ac_have_glu="yes" - GLU_LIBS="-lGLU -lm" - AC_DEFINE(HAVE_GLU,1,[Define this if you have GLU support available]) + [AC_CHECK_LIB(m, tan, + [AC_CHECK_HEADER(GL/gl.h, + [ac_have_opengl="yes" + OPENGL_LIBS="-lGL -lm" AC_DEFINE(HAVE_OPENGL,1,[Define this if you have OpenGL support available]) - ], - [ac_have_glu="no"], - [$X_LIBS $X_PRE_LIBS $OPENGL_LIBS -lGLU -lm $X_EXTRA_LIBS] - ) - ], - [$X_LIBS $X_PRE_LIBS -lglut $X_EXTRA_LIBS] - ) - ] - )], - [], - [$X_LIBS $X_PRE_LIBS -lGL $X_EXTRA_LIBS] + dnl + dnl need to check with some test if this linking with -lGLU actually works... + dnl check for GLU + dnl + if test x$enableglu = "xyes"; then + AC_CHECK_LIB(GLU, gluPerspective, + [AC_CHECK_HEADER(GL/glu.h, + [AC_MSG_CHECKING([if GLU is sane]) + ac_save_LIBS="$LIBS" + LIBS="$X_LIBS $XPRE_LIBS $OPENGL_LIBS -lGLU $X_EXTRA_LIBS" + AC_TRY_LINK([#include <GL/gl.h> +#include <GL/glu.h>], + [ gluPerspective(45.0f,1.33f,1.0f,1000.0f); glBegin(GL_POINTS); glEnd(); return 0 ], + [ ac_have_glu="yes" + GLU_LIBS="-lGLU" + AC_DEFINE(HAVE_GLU,1,[Define this if you have GLU support available]) + AC_MSG_RESULT(yes)], + [ AC_MSG_RESULT(no) + echo "*** GLU doesn't link with GL; GLU is disabled ***"]) + LIBS="$ac_save_LIBS"] + )], + [], + [$X_LIBS $X_PRE_LIBS $OPENGL_LIBS -lGLU $X_EXTRA_LIBS] + ) + fi + ] + )], + [], + [$X_LIBS $X_PRE_LIBS -lGL -lm $X_EXTRA_LIBS] + )], + [], + [$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS] ) - if test x$ac_have_opengl = "xyes" -a x$ac_have_glut = "xyes" -o x$ac_have_opengl = "xyes" -a x$ac_have_glu = "xyes"; then + if test x$ac_have_opengl = "xyes"; then ac_use_opengl=yes fi fi AC_SUBST(OPENGL_CFLAGS) AC_SUBST(OPENGL_LIBS) - AC_SUBST(GLUT_LIBS) AC_SUBST(GLU_LIBS) AM_CONDITIONAL(HAVE_OPENGL, [test x$ac_use_opengl = "xyes"]) |