dnl
dnl After the toplevel configuration is complete, the script will recurse into
dnl these subdirectories (the use of cache values makes repeated checks cheap)
+dnl (We probably have to add hslibs/{OpenGL,GLUT} here later...)
AC_CONFIG_SUBDIRS(ghc)
# -------------------------------------------------------------------------
HostVendor_CPP='unknown'
HostOS_CPP='solaris2'
;;
-i[[3456]]86-*-cygwin32*)
+i[[3456]]86-*-cygwin*)
HostPlatform=i386-unknown-cygwin32 # hack again
TargetPlatform=i386-unknown-cygwin32
BuildPlatform=i386-unknown-cygwin32
AC_SUBST(exeext)
-if test "$GHC" = ""; then
- AC_PATH_PROG(GHC,ghc)
-fi
-if test "$GHC" != ""; then
- FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
- AC_SUBST(GhcVersion)dnl
- AC_SUBST(GhcMajVersion)dnl
- AC_SUBST(GhcMinVersion)dnl
- AC_SUBST(GhcPatchLevel)dnl
-fi
-
-AC_PATH_PROGS(NHC,nhc nhc98)
-AC_PATH_PROG(HBC,hbc)
-
dnl --------------------------------------------------------------
dnl * Project specific configuration options
dnl --------------------------------------------------------------
dnl ** What command to use to compile compiler sources ?
dnl --------------------------------------------------------------
+if test "$GHC" = ""; then
+ AC_PATH_PROG(GHC,ghc)
+fi
+
AC_ARG_WITH(hc,
[ --with-hc=<haskell compiler>
- Use a command different from 'ghc' to compile up Haskell code.
- (no claims currently made that this will work with a compiler other than a
- recent version of GHC, but you could always try...)
+ Use a command different from 'ghc' to compile generic Haskell code.
],
[WithHc="$withval"],
[WithHc=$GHC]
)
AC_SUBST(WithHc)
+AC_ARG_WITH(ghc,
+[ --with-ghc=<haskell compiler>
+ Use a command different from 'ghc' to compile GHC-specific Haskell code
+ (including GHC itself).
+],
+[WithGhc="$withval"],
+[WithGhc=$GHC]
+)
+AC_SUBST(WithGhc)
+
+if test "$WithGhc" != ""; then
+ FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
+ AC_SUBST(GhcVersion)dnl
+ AC_SUBST(GhcMajVersion)dnl
+ AC_SUBST(GhcMinVersion)dnl
+ AC_SUBST(GhcPatchLevel)dnl
+fi
+
+AC_PATH_PROGS(NHC,nhc nhc98)
+AC_PATH_PROG(HBC,hbc)
+
dnl ** Which gcc to use?
dnl --------------------------------------------------------------
AC_ARG_WITH(gcc,
AC_DEFINE(HAVE_WIN32_DLL_SUPPORT)
fi
+dnl ** Enable the building of the OpenGL/GLUT binding in hslibs?
+dnl --------------------------------------------------------------
+AC_ARG_ENABLE(hopengl,
+[ --enable-hopengl
+ Build HOpenGL, a Haskell binding for OpenGL/GLUT, too.
+ (This option is only relevant when hslibs are built.)
+],
+[GhcLibsWithHOpenGL=YES],
+[GhcLibsWithHOpenGL=NO]
+)
+AC_SUBST(GhcLibsWithHOpenGL)
+
+dnl ** Use a specific version of the GLUT API
+dnl --------------------------------------------------------------
+AC_ARG_WITH(glut-api,
+[ --with-glut-api=<version>
+ Use a specific version of the GLUT API when building HOpenGL.
+])
+test -n "$with_glut_api" && CPPFLAGS="$CPPFLAGS -DGLUT_API_VERSION=$with_glut_api"
+
+
+dnl ** Use a specific version of the GLUT API
+dnl --------------------------------------------------------------
+AC_ARG_WITH(glut-xlib,
+[ --with-glut-xlib=<version>
+ Use a specific version of the GLUT Xlib implementation when building HOpenGL.
+])
+test -n "$with_glut_xlib" && CPPFLAGS="$CPPFLAGS -DGLUT_XLIB_IMPLEMENTATION=$with_glut_xlib"
+
+
dnl --------------------------------------------------------------
dnl End of configure script option section
dnl --------------------------------------------------------------
dnl ** check for Windows include files
AC_CHECK_HEADERS(windows.h)
+dnl ** check for OpenGL include files
+AC_CHECK_HEADERS(GL/gl.h)
+
dnl ** check if it is safe to include both <time.h> and <sys/time.h>
AC_HEADER_TIME
FPTOOLS_CHECK_HTYPE(clock_t)
FPTOOLS_CHECK_HTYPE(time_t)
+dnl ** Map OpenGL data types to Haskell types
+if test $GhcLibsWithHOpenGL = 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
+
dnl ** can we open files in binary mode?
FPTOOLS_O_BINARY
FPTOOLS_CHECK_LIB_NOWARN(m, atan)
dnl --------------------------------------------------
+dnl * test for GTK+
+dnl --------------------------------------------------
+
+AC_PATH_PROGS(GTK_CONFIG, gtk-config gtk12-config)
+if test "$GTK_CONFIG" != ""; then
+ AC_CACHE_CHECK([for version of GTK+], fptools_cv_gtk_version, [
+ fptools_cv_gtk_version=`$GTK_CONFIG --version`
+ ])
+ GTK_VERSION=$fptools_cv_gtk_version
+else
+ GTK_VERSION=
+fi
+
+case $fptools_cv_gtk_version in
+ 1.[[23]].*) ;;
+ *) AC_MSG_WARN([GTK+ not usable; need at least version 1.2])
+ GTK_CONFIG=
+ ;;
+esac
+
+AC_SUBST(GTK_CONFIG)
+AC_SUBST(GTK_VERSION)
+
+dnl --------------------------------------------------
dnl * Miscellaneous feature tests
dnl --------------------------------------------------