Commit ee0e16d4 authored by panne's avatar panne

[project @ 2004-11-21 22:53:31 by panne]

Pushed down OpenGL/GLUT/OpenAL autoconf stuff to the respective directories.
All packages are now built automatically if possible and if they are not
explicitly disabled. NOTE: The "--enable-hopengl" option is now split into
"--enable-opengl" and "--enable-glut".
parent a1947dc7
......@@ -948,201 +948,4 @@ else
GhcPkgCmd=$fp_cv_matching_ghc_pkg
fi])# FP_PROG_GHC_PKG
# FP_CHECK_WIN32
# --------------
# If Windows is the target platform (e.g. MinGW/MSYS or Cygwin with
# -mno-cygwin), the variable "is_win32" is set to "yes", otherwise (e.g. *nix
# systems or plain Cygwin) it is set to "no".
AC_DEFUN([FP_CHECK_WIN32],
[AC_CACHE_CHECK([for Windows environment], [fp_cv_is_win32],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
#if !_WIN32
syntax error;
#endif
])], [fp_cv_is_win32=yes], [fp_cv_is_win32=no])])
is_win32="$fp_cv_is_win32"[]dnl
])# FP_CHECK_WIN32
# FP_PATH_X
# ---------
# Same as AC_PATH_X, but works even for broken Cygwins which try to include the
# non-existant <gl/mesa_wgl.h> header when -mno-cygwin is used.
AC_DEFUN([FP_PATH_X],
[AC_REQUIRE([FP_CHECK_WIN32])
if test x"$is_win32" = xyes; then
no_x=yes
else
AC_PATH_X
fi
])# FP_PATH_X
# FP_PATH_XTRA
# ------------
# Same as AC_PATH_XTRA, but works even for broken Cygwins which try to include
# the non-existant <gl/mesa_wgl.h> header when -mno-cygwin is used.
AC_DEFUN([FP_PATH_XTRA],
[AC_REQUIRE([FP_CHECK_WIN32])
if test x"$is_win32" = xyes; then
no_x=yes
else
AC_PATH_XTRA
fi
])# FP_PATH_XTRA
# FP_CHECK_GL_HELPER(LIBNAME, LIBS, INCLUDES, FUNCTION-BODY)
# ----------------------------------------------------------
# Try each library in LIBS to successfully link INCLUDES plus FUNCTION-BODY,
# setting LIBNAME_CFLAGS and LIBNAME_LIBS to the corresponding values. Sets
# no_LIBNAME to "yes" if no suitable library was found. (LIBNAME_CFLAGS0
# contains the value of LIBNAME_CFLAGS without CPPFLAGS, and LIBNAME_LIBS0
# contains the value of LIBNAME_LIBS without LDFLAGS, but these are only
# used internally.)
AC_DEFUN([FP_CHECK_GL_HELPER],
[AC_CACHE_CHECK([for $1 library], [fp_cv_check_$1_lib],
[fp_cv_check_$1_lib="no"
fp_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS ${$1_CFLAGS}"
fp_save_LIBS="$LIBS"
for fp_try_lib in $2; do
# transform "-lfoo" to "foo.lib" when using cl
if test x"$CC" = xcl; then
fp_try_lib=`echo $fp_try_lib | sed -e 's/^-l//' -e 's/$/.lib/'`
fi
LIBS="$fp_try_lib ${$1_LIBS} $fp_save_LIBS"
AC_LINK_IFELSE([AC_LANG_PROGRAM([$3], [$4])], [fp_cv_check_$1_lib="$fp_try_lib ${$1_LIBS}"; break])
done
LIBS="$fp_save_LIBS"
CPPFLAGS="$fp_save_CPPFLAGS"])
if test x"$fp_cv_check_$1_lib" = xno; then
no_$1=yes
$1_CFLAGS=
$1_LIBS=
else
$1_CFLAGS0="${$1_CFLAGS}"
$1_CFLAGS="$CPPFLAGS ${$1_CFLAGS0}"
$1_LIBS0="$fp_cv_check_$1_lib"
$1_LIBS="$LDFLAGS ${$1_LIBS0}"
fi
])# FP_CHECK_GL_HELPER
# FP_CHECK_GL
# -----------
AC_DEFUN([FP_CHECK_GL],
[AC_REQUIRE([FP_PATH_X])
AC_REQUIRE([AC_CANONICAL_TARGET])
AC_ARG_ENABLE([hopengl],
[AC_HELP_STRING([--enable-hopengl],
[build a Haskell binding for OpenGL (GL/GLU). On Mac OS X, use
--enable-hopengl=x11 to use X11 instead of the "native" libraries.
(default=no)])],
[enable_opengl=$enableval], [enable_opengl=no])
if test x"$enable_opengl" = xno; then
no_GL=yes
else
use_quartz_opengl=no
case $target_os in
darwin*)
if test x"$enable_opengl" != xx11; then
AC_DEFINE([USE_QUARTZ_OPENGL], [1],
[Define to 1 if native OpenGL should be used on Mac OS X])
use_quartz_opengl=yes
fi
;;
esac
if test x"$use_quartz_opengl" != xyes; then
AC_CHECK_LIB([m], [atan], [GL_LIBS="-lm $GL_LIBS"])
if test x"$no_x" != xyes; then
test -n "$x_includes" && GL_CFLAGS="-I$x_includes $GL_CFLAGS"
test -n "$x_libraries" && GL_LIBS="-L$x_libraries -lX11 $GL_LIBS"
fi
FP_CHECK_GL_HELPER([GL], [-lGL -lopengl32], [@%:@include <GL/gl.h>], [glEnd()])
if test x"$no_GL" != xyes; then
# Ugly: To get wglGetProcAddress on Windows, we have to link with
# opengl32.dll, too, even when we are using Cygwin with X11.
case "$GL_LIBS" in
*-lopengl32*|*opengl32.lib*) ;;
*) fp_save_LIBS="$LIBS"
LIBS="$LIBS -lopengl32"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <GL/gl.h>]], [[glEnd()]])],
[GL_LIBS="$GL_LIBS -lopengl32"; GL_LIBS0="$GL_LIBS0 -lopengl32"])
LIBS="$fp_save_LIBS"
;;
esac
fi
fi
fi
AC_SUBST([GL_CFLAGS])
AC_SUBST([GL_LIBS])
])# FP_CHECK_GL
# FP_CHECK_GLU
# ------------
AC_DEFUN([FP_CHECK_GLU],
[AC_REQUIRE([FP_CHECK_GL])dnl
GLU_CFLAGS="$GL_CFLAGS0"
GLU_LIBS="$GL_LIBS0"
if test x"$enable_opengl" = xno; then
no_GLU=yes
elif test x"$use_quartz_opengl" != xyes; then
FP_CHECK_GL_HELPER([GLU], [-lglu32 -lGLU], [@%:@include <GL/glu.h>], [gluNewQuadric()])
fi
AC_SUBST([GLU_CFLAGS])
AC_SUBST([GLU_LIBS])
])# FP_CHECK_GLU
# FP_CHECK_GLUT
# -------------
AC_DEFUN([FP_CHECK_GLUT],
[AC_REQUIRE([FP_CHECK_GLU])
FP_PATH_XTRA
if test x"$enable_opengl" = xno; then
no_GLUT=yes
elif test x"$use_quartz_opengl" != xyes; then
GLUT_CFLAGS="$GLU_CFLAGS0"
GLUT_LIBS="$GLU_LIBS0"
if test x"$no_x" != xyes; then
GLUT_LIBS="$X_PRE_LIBS -lXmu -lXi $X_EXTRA_LIBS $GLUT_LIBS"
fi
AC_CHECK_HEADERS([windows.h GL/glut.h])
# Note 1: On Cygwin with X11, GL/GLU functions use the "normal" calling
# convention, but GLUT functions use stdcall. To get this right, it is
# necessary to include <windows.h> first.
# Note 2: MinGW/MSYS comes without a GLUT header, so we use Cygwin's one in
# that case.
FP_CHECK_GL_HELPER([GLUT], [-lglut32 -lglut], [
#if HAVE_WINDOWS_H
#include <windows.h>
#endif
#if HAVE_GL_GLUT_H
#include <GL/glut.h>
#else
#include "glut_local.h"
#endif
], [glutMainLoop()])
fi
AC_SUBST([GLUT_CFLAGS])
AC_SUBST([GLUT_LIBS])
])# FP_CHECK_GLUT
# LocalWords: fi
......@@ -734,21 +734,6 @@ AC_ARG_ENABLE(objectio,
)
AC_SUBST(GhcLibsWithObjectIO)
dnl ** Enable the building of the OpenAL binding?
dnl --------------------------------------------------------------
AC_ARG_ENABLE([openal],
AC_HELP_STRING([--enable-openal],
[Build OpenAL binding [[default=autodetect]]]),
[ if test x"$enableval" = x"yes"; then
GhcLibsWithOpenAL=YES
else
GhcLibsWithOpenAL=NO
fi
],
[GhcLibsWithOpenAL=YES])
AC_SUBST([GhcLibsWithOpenAL])
dnl ** .NET interop support?
dnl --------------------------------------------------------------
AC_ARG_ENABLE(dotnet,
......@@ -960,33 +945,6 @@ else
fi
AC_SUBST(GhcLibsWithReadline)
dnl ** check for OpenGL/GLUT include paths and libraries
FP_CHECK_GLUT
if test x"$no_GLU" = xyes; then
GhcLibsWithOpenGL=NO
else
GhcLibsWithOpenGL=YES
fi
AC_SUBST([GhcLibsWithOpenGL])
if test x"$no_GLUT" = xyes; then
GhcLibsWithGLUT=NO
else
GhcLibsWithGLUT=YES
fi
AC_SUBST([GhcLibsWithGLUT])
dnl ** check for OpenGL include files
fp_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
if test x"$use_quartz_opengl" = xyes; then
AC_CHECK_HEADERS([OpenGL/gl.h])
else
AC_CHECK_HEADERS([GL/gl.h])
fi
CPPFLAGS="$fp_save_cppflags"
dnl ** check if it is safe to include both <time.h> and <sys/time.h>
AC_HEADER_TIME
......@@ -1042,24 +1000,6 @@ fi
FP_CHECK_ALIGNMENT(unsigned short)
FP_CHECK_ALIGNMENT(void *)
dnl ** Map OpenGL data types to Haskell types
if test $GhcLibsWithOpenGL = YES ; then
FPTOOLS_CHECK_HTYPE(GLboolean)
FPTOOLS_CHECK_HTYPE(GLbyte)
FPTOOLS_CHECK_HTYPE(GLubyte)
FPTOOLS_CHECK_HTYPE(GLshort)
FPTOOLS_CHECK_HTYPE(GLushort)
FPTOOLS_CHECK_HTYPE(GLint)
FPTOOLS_CHECK_HTYPE(GLuint)
FPTOOLS_CHECK_HTYPE(GLsizei)
FPTOOLS_CHECK_HTYPE(GLenum)
FPTOOLS_CHECK_HTYPE(GLbitfield)
FPTOOLS_CHECK_HTYPE(GLfloat)
FPTOOLS_CHECK_HTYPE(GLclampf)
FPTOOLS_CHECK_HTYPE(GLdouble)
FPTOOLS_CHECK_HTYPE(GLclampd)
fi
FP_CHECK_FUNC([WinExec],
[@%:@include <windows.h>], [WinExec("",0)])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment