# LOL_CHECK_OPENGL() # ------------------ AC_DEFUN([LOL_CHECK_OPENGL], [ dnl Find which version of OpenGL to use ac_cv_my_have_gl="no" ac_cv_my_stop_looking_for_gl="no" if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then LIBS_save="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,OpenGL" AC_MSG_CHECKING(for -framework OpenGL) AC_TRY_LINK([], [], [AC_MSG_RESULT(yes) ac_cv_my_have_gl="yes" GL_LIBS="${GL_LIBS} -framework OpenGL" LOL_TRY_CXXFLAGS(-ObjC++, [CXXFLAGS="${CXXFLAGS} -ObjC++"]) AC_DEFINE(HAVE_GL_2X, 1, Define to 1 if GL 2.x is available)], [AC_MSG_RESULT(no)]) LIBS="$LIBS_save" fi if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then LIBS_save="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,OpenGLES" AC_MSG_CHECKING(for -framework OpenGLES) AC_TRY_LINK([], [], [AC_MSG_RESULT(yes) ac_cv_my_have_gl="yes" GL_LIBS="${GL_LIBS} -framework OpenGLES" LOL_TRY_CXXFLAGS(-ObjC++, [CXXFLAGS="${CXXFLAGS} -ObjC++"]) AC_DEFINE(HAVE_GLES_2X, 1, Define to 1 if GLES 2.x is available)], [AC_MSG_RESULT(no)]) LIBS="$LIBS_save" fi dnl Use the Raspberry Pi libraries? if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then AC_CHECK_HEADERS(bcm_host.h, [AC_CHECK_LIB(vcos, main, [ac_cv_my_have_gl="yes" ac_cv_my_stop_looking_for_gl="yes" AC_DEFINE(HAVE_GLES_2X, 1, Define to 1 if GLES 2.x is available) dnl FIXME: -lEGL does not belong here but the configure test fails dnl when cross-compiling, so we add it manually here. GL_LIBS="${GL_LIBS} -lGLESv2 -lEGL -lvcos -lvchiq_arm -lbcm_host"])]) fi dnl Use the PS3 PSGL? if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then AC_CHECK_HEADERS(PSGL/psgl.h, [ac_cv_my_have_gl="yes" ac_cv_my_stop_looking_for_gl="yes"]) fi if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then PKG_CHECK_MODULES(GLES2, glesv2, [ac_cv_my_have_gl="yes" AC_DEFINE(HAVE_GLES_2X, 1, Define to 1 if GLES 2.x is available) GL_CFLAGS="${GL_CFLAGS} ${GLES2_CFLAGS}" GL_LIBS="${GL_LIBS} ${GLES2_LIBS}"], [:]) fi if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then AC_CHECK_HEADER(GLES2/gl2.h, [ac_cv_my_have_gl="yes" AC_DEFINE(HAVE_GLES_2X, 1, Define to 1 if GLES 2.x is available) AC_CHECK_LIB(GLESv2, glEnable, [GL_LIBS="${GL_LIBS} -lGLESv2"])]) fi if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then PKG_CHECK_MODULES(GL, gl, [ac_cv_my_have_gl="yes" AC_DEFINE(HAVE_GL_2X, 1, Define to 1 if GL 2.x is available)], [:]) fi if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then AC_CHECK_LIB(GL, glEnable, [ac_cv_my_have_gl="yes" AC_DEFINE(HAVE_GL_2X, 1, Define to 1 if GL 2.x is available) # FIXME: hackish GL_LIBS="-lGL"]) fi if test "x${ac_cv_my_stop_looking_for_gl}" = "xno"; then AC_CHECK_HEADER(GL/gl.h, [LIBS_save="$LIBS" LIBS="$LIBS -lopengl32" AC_MSG_CHECKING(for glLoadIdentity in -lopengl32) AC_TRY_LINK([#include ], [glLoadIdentity();], [ac_cv_my_have_gl="yes" AC_DEFINE(HAVE_GL_2X, 1, Define to 1 if GL 2.x is available) # FIXME: hack AC_MSG_RESULT(yes) GL_LIBS="-lopengl32"], [AC_MSG_RESULT(no)]) LIBS="$LIBS_save"]) fi if test "${ac_cv_my_have_gl}" = "no"; then AC_MSG_ERROR([[No OpenGL or OpenGL ES implementation found]]) fi dnl Use Glew? ac_cv_my_have_glew="no" PKG_CHECK_MODULES(GLEW, glew, [ac_cv_my_have_glew="yes" GL_CFLAGS="${GLEW_CFLAGS} ${GL_CFLAGS}" GL_LIBS="${GLEW_LIBS} ${GL_LIBS}"], [:]) AC_CHECK_HEADER(glew.h, [LIBS_save="${LIBS}" LIBS="${LIBS} -lglew32s ${GL_LIBS}" AC_MSG_CHECKING(for glewInit in -lglew32s) AC_TRY_LINK( [#include ], [glewInit();], [ac_cv_my_have_glew="yes" GL_LIBS="-lglew32s ${GL_LIBS}" AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)]) LIBS="${LIBS_save}"]) if test "${ac_cv_my_have_glew}" != "no"; then AC_DEFINE(HAVE_GLES_2X, 1, Define to 1 if GLES 2.x is available) AC_DEFINE(USE_GLEW, 1, Define to 1 to use libglew) fi AM_CONDITIONAL(USE_GLEW, test "${ac_cv_my_have_glew}" != "no") dnl Poor man's GL feature detection if all else failed. save_LIBS="${LIBS}" LIBS="${LIBS} ${GL_LIBS} ${GLES2_LIBS}" AC_CHECK_FUNCS(glBegin) LIBS="${save_LIBS}" ])# LOL_CHECK_OPENGL