Hash :
1e872ad5
Author :
Date :
2010-05-23T19:20:26
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
dnl FTGL_CHECK_GL()
dnl Check for OpenGL development environment and GLU >= 1.2
dnl
AC_DEFUN([FTGL_CHECK_GL],
[dnl
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PATH_X])
AC_REQUIRE([AC_PATH_XTRA])
AC_ARG_WITH([--with-gl-inc],
AC_HELP_STRING([--with-gl-inc=DIR],[Directory where GL/gl.h is installed]))
AC_ARG_WITH([--with-gl-lib],
AC_HELP_STRING([--with-gl-lib=DIR],[Directory where OpenGL libraries are installed]))
AC_ARG_WITH([--with-glu-lib],
AC_HELP_STRING([--with-glu-lib=DIR],[Directory where OpenGL GLU library is installed]))
AC_LANG_SAVE
AC_LANG_C
GL_SAVE_CPPFLAGS="$CPPFLAGS"
GL_SAVE_LIBS="$LIBS"
if test "x$no_x" != xyes ; then
GL_CFLAGS="$X_CFLAGS"
GL_X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu $X_EXTRA_LIBS"
fi
if test "x$with_gl_inc" != "xnone" ; then
if test -d "$with_gl_inc" ; then
GL_CFLAGS="-I$with_gl_inc"
else
GL_CFLAGS="$with_gl_inc"
fi
else
GL_CFLAGS=
fi
CPPFLAGS="$GL_CFLAGS"
AC_CHECK_HEADER([GL/gl.h], [AC_DEFINE([HAVE_GL_GL_H], 1, [Define to 1 if you have the <GL/gl.h header])], [
AC_CHECK_HEADER([OpenGL/gl.h], [AC_DEFINE([HAVE_OPENGL_GL_H], 1, [Define to 1 if you have the <OpenGL/gl.h header])], [
AC_MSG_ERROR([GL/gl.h or OpenGL/gl.h is needed, please specify its location with --with-gl-inc. If this still fails, please contact henryj@paradise.net.nz, include the string FTGL somewhere in the subject line and provide a copy of the config.log file that was left behind.])
])
])
dnl check whether the OpenGL framework is available
AC_MSG_CHECKING([for OpenGL framework (Darwin-specific)])
FRAMEWORK_OPENGL=""
PRELIBS="$LIBS"
LIBS="$LIBS -Xlinker -framework -Xlinker OpenGL"
# -Xlinker is used because libtool is busted prior to 1.6 wrt frameworks
AC_TRY_LINK([#include <OpenGL/gl.h>], [glBegin(GL_POINTS)],
[GL_DYLIB="/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib"
FRAMEWORK_OPENGL="-Xlinker -framework -Xlinker OpenGL -dylib_file $GL_DYLIB: $GL_DYLIB"
ac_cv_search_glBegin="$FRAMEWORK_OPENGL"
AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
if test x"$FRAMEWORK_OPENGL" != "x"; then
with_gl_lib="$FRAMEWORK_OPENGL"
fi
AC_SUBST(FRAMEWORK_OPENGL)
LIBS="$PRELIBS"
AC_MSG_CHECKING([for GL library])
echo host=$host
AS_CASE([$host],
[*-mingw32], [GL_GL_LIBS="-lopengl32"
GL_GLU_LIBS="-lglu32"],
[GL_GL_LIBS="-lGL"
GL_GLU_LIBS="-lGLU"]
)
if test "x$with_gl_lib" != "x" ; then
if test -d "$with_gl_lib" ; then
LIBS="-L$with_gl_lib $GL_GL_LIBS"
else
LIBS="$with_gl_lib"
fi
else
LIBS="$GL_GL_LIBS"
fi
AC_LINK_IFELSE([AC_LANG_CALL([],[glBegin])],[HAVE_GL=yes],[
dnl This is done here so that we can check for the Win32 version of the
dnl GL library, which may not use cdecl calling convention.
AC_TRY_LINK([#include <GL/gl.h>],[glBegin(GL_POINTS)],[HAVE_GL=yes],[HAVE_GL=no])]
)
if test "x$HAVE_GL" = xno ; then
if test "x$GL_X_LIBS" != x ; then
LIBS="$GL_GL_LIBS $GL_X_LIBS"
AC_LINK_IFELSE([AC_LANG_CALL([],[glBegin])],[HAVE_GL=yes], [HAVE_GL=no])
fi
fi
if test "x$HAVE_GL" = xyes ; then
AC_MSG_RESULT([yes])
GL_LIBS=$LIBS
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([GL library could not be found, please specify its location with --with-gl-lib. If this still fails, please contact henryj@paradise.net.nz, include the string FTGL somewhere in the subject line and provide a copy of the config.log file that was left behind.])
fi
AC_CHECK_HEADER([GL/glu.h], [AC_DEFINE([HAVE_GL_GLU_H], 1, [Define to 1 if you have the <GL/glu.h header])], [
AC_CHECK_HEADER([OpenGL/glu.h], [AC_DEFINE([HAVE_OPENGL_GLU_H], 1, [Define to 1 if you have the <OpenGL/glu.h header])], [
AC_MSG_ERROR([GL/glu.h or OpenGL/glu.h is needed, please specify its location with --with-gl-inc. If this still fails, please contact henryj@paradise.net.nz, include the string FTGL somewhere in the subject line and provide a copy of the config.log file that was left behind.])
])
])
AC_MSG_CHECKING([for GLU version >= 1.2])
AC_TRY_COMPILE([
#ifdef HAVE_GL_GLU_H
# include <GL/glu.h>
#endif
#ifdef HAVE_OPENGL_GLU_H
# include <OpenGL/glu.h>
#endif
], [
#if !defined(GLU_VERSION_1_2)
#error GLU too old
#endif
],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([GLU >= 1.2 is needed to compile this library])
])
if test "x$FRAMEWORK_OPENGL" = "x" ; then
AC_MSG_CHECKING([for GLU library])
if test "x$with_glu_lib" != "x" ; then
if test -d "$with_glu_lib" ; then
LIBS="$GL_LIBS -L$with_glu_lib $GL_GLU_LIBS"
else
LIBS="$GL_LIBS $with_glu_lib"
fi
else
LIBS="$GL_LIBS $GL_GLU_LIBS"
fi
AC_LINK_IFELSE([AC_LANG_CALL([],[gluNewTess])],[HAVE_GLU=yes], [
dnl This is done here so that we can check for the Win32 version of the
dnl GL library, which may not use cdecl calling convention.
AC_TRY_LINK([#include <GL/glu.h>],[gluNewTess()],[HAVE_GLU=yes],[HAVE_GLU=no])]
)
if test "x$HAVE_GLU" = xno ; then
if test "x$GL_X_LIBS" != x ; then
LIBS="$GL_GLU_LIBS $GL_LIBS $GL_X_LIBS"
AC_LINK_IFELSE([AC_LANG_CALL([],[gluNewTess])],[HAVE_GLU=yes], [HAVE_GLU=no])
fi
fi
if test "x$HAVE_GLU" = xyes ; then
AC_MSG_RESULT([yes])
GL_LIBS="$LIBS"
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([GLU library could not be found, please specify its location with --with-gl-lib. If this still fails, please contact henryj@paradise.net.nz, include the string FTGL somewhere in the subject line and provide a copy of the config.log file that was left behind.])
fi
fi
AC_SUBST(GL_CFLAGS)
AC_SUBST(GL_LIBS)
CPPFLAGS="$GL_SAVE_CPPFLAGS"
LIBS="$GL_SAVE_LIBS"
AC_LANG_RESTORE
GL_X_LIBS=""
])