dnl Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License, or (at your option) any later version. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_OPENGL],[ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CPP])dnl AC_REQUIRE([AC_LINKER_OPTIONS])dnl AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_ARG_WITH(opengl, [AC_HELP_STRING([--with-opengl=DIR],[root directory path of OpenGL installation])], [opengl_dir="$withval"], [dirs="/usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/graphics/OpenGL/lib64 /opt/graphics/OpenGL/lib /usr/openwin/lib64 /usr/openwin/lib /usr/X11R6/lib64 /usr/X11R6/lib"])dnl AC_CHECKING(for OpenGL) AC_CHECKING(for OpenGL headers) OGL_INCLUDES="" OGL_LIBS="" GL_LIB_PATH="" GLU_LIB_PATH="" OpenGL_ok=no OpenGL_libs_ok=no OpenGL_headers_ok=no dnl openGL headers # by default if test "x${opengl_dir}" != "x" ; then AC_MSG_RESULT(for opengl_dir: $opengl_dir) AC_CHECK_HEADER([${opengl_dir}/include/GL/gl.h], [OpenGL_headers_ok=yes; OGL_INCLUDES="-I${opengl_dir}/include"], [OpenGL_headers_ok=no]) if test "x${OpenGL_headers_ok}" = "xyes" ; then AC_CHECKING(for default OpenGL library) if test "x${opengl_dir}" = "x/usr" ; then OGL_LIBS="" else OGL_LIBS="-L${opengl_dir}/lib" fi LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $OGL_LIBS" AC_CHECK_LIB([GL], [glBegin], [OpenGL_libs_ok=yes], [OpenGL_libs_ok=no]) if test "x${OpenGL_libs_ok}" = "xyes" ; then AC_TRY_LINK([], [], [OpenGL_libs_ok=yes ; OpenGL_ok=yes; OGL_LIBS="$OGL_LIBS -lGL"], [OpenGL_libs_ok=no]) fi LDFLAGS="$LDFLAGS_old" fi fi if test "x${OpenGL_headers_ok}" = "xno" ; then AC_CHECK_HEADER(GL/gl.h, [OpenGL_headers_ok=yes], [OpenGL_headers_ok=no]) fi # under SunOS ? if test "x${OpenGL_headers_ok}" = "xno" ; then AC_CHECK_HEADERS(/usr/openwin/share/include/GL/glxmd.h, [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/openwin/share/include/"], [OpenGL_headers_ok=no]) fi # under IRIX ? if test "x${OpenGL_headers_ok}" = "xno" ; then AC_CHECK_HEADERS(/opt/graphics/OpenGL/include/GL/glxmd.h, [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/opt/graphics/OpenGL/include"], [OpenGL_headers_ok=no]) fi # some linux OpenGL servers hide the includes in /usr/X11R6/include/GL if test "x${OpenGL_headers_ok}" = "xno" ; then AC_CHECK_HEADERS(/usr/X11R6/include/GL/gl.h, [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/X11R6/include"], [OpenGL_headers_ok=no]) fi if test "x${OpenGL_headers_ok}" = "xyes" ; then AC_CHECKING(for OpenGL library) for idir in $dirs; do if test -r "${idir}/libGL.so"; then AC_MSG_RESULT(in ${idir}) if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then GL_LIB_PATH="" else GL_LIB_PATH="-L${idir}" fi break fi # under IRIX ? if test -r "${idir}/libGL.sl"; then AC_MSG_RESULT(in ${idir}) if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then GL_LIB_PATH="" else GL_LIB_PATH="-L${idir}" fi break fi done LDFLAGS_old="${LDFLAGS}" LDFLAGS="${LDFLAGS} ${GL_LIB_PATH}" AC_CHECK_LIB([GL], [glBegin], [OpenGL_libs_ok=yes], [OpenGL_libs_ok=no]) if test "x${OpenGL_libs_ok}" = "xyes" ; then AC_TRY_LINK([], [], [OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GL_LIB_PATH} -lGL"], [OpenGL_libs_ok=no]) fi LDFLAGS="$LDFLAGS_old" fi if test "x${OpenGL_libs_ok}" = "xyes" ; then for idir in $dirs; do if test -r "${idir}/libGLU.so"; then AC_MSG_RESULT(in ${idir}) if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then GLU_LIB_PATH="" else GLU_LIB_PATH="-L${idir}" fi break fi # under IRIX ? if test -r "${idir}/libGLU.sl"; then AC_MSG_RESULT(in ${idir}) if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then GLU_LIB_PATH="" else GLU_LIB_PATH="-L${idir}" fi break fi done # workaround a problem with libGL library location for idir in $dirs; do if test -r "${idir}/libGLU.la"; then GLU_LA_PATH="${idir}/libGLU.la" GL_LA_PATH_TO_CHECK=`cat ${GLU_LA_PATH} | awk '{ for(i=1;i0) print $i } }'` if test -z ${GL_LA_PATH_TO_CHECK} || test -r ${GL_LA_PATH_TO_CHECK}; then # nothing to do break fi for jdir in $dirs; do if test -r "${jdir}/libGL.la"; then GL_LA_PATH="${jdir}/libGL.la" # copy the libGLU.la file and set correct libGL.la path in it NEW_GLU_LA_PATH=${ROOT_BUILDDIR} NEW_GLU_LA_FILE="${NEW_GLU_LA_PATH}/libGLU.la" sed -e "s%${GL_LA_PATH_TO_CHECK}%${GL_LA_PATH}%" ${GLU_LA_PATH} > "${NEW_GLU_LA_FILE}" chmod -f --reference=${GLU_LA_PATH} "${NEW_GLU_LA_FILE}" # set a new libGLU.la path GLU_LIB_PATH="-L${NEW_GLU_LA_PATH}" # create a simbolic link to libGLU.so for kdir in $dirs; do if test -r "${kdir}/libGLU.so"; then cp -fs "${kdir}/libGLU.so" "${NEW_GLU_LA_PATH}/libGLU.so" break fi done break fi done break fi done LDFLAGS_old="${LDFLAGS}" LDFLAGS="${LDFLAGS} ${OGL_LIBS} ${GLU_LIB_PATH}" AC_CHECK_LIB([GLU], [gluBeginSurface], [OpenGL_libs_ok=yes], [OpenGL_libs_ok=no]) if test "x${OpenGL_libs_ok}" = "xyes" ; then AC_TRY_LINK([], [], [OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GLU_LIB_PATH} -lGLU"], [OpenGL_libs_ok=no]) fi LDFLAGS="$LDFLAGS_old" fi if test "x${OpenGL_headers_ok}" = "xyes" ; then if test "x${OpenGL_libs_ok}" = "xyes" ; then OpenGL_ok=yes fi fi AC_MSG_RESULT(for OpenGL_headers_ok: $OpenGL_headers_ok) AC_MSG_RESULT(for OpenGL_libs_ok: $OpenGL_libs_ok) AC_MSG_RESULT(for OpenGL_ok: $OpenGL_ok) AC_SUBST(OGL_INCLUDES) AC_SUBST(OGL_LIBS) AC_LANG_RESTORE ])dnl