[project @ 2000-09-10 17:39:26 by panne]
[ghc-hetmet.git] / configure.in
index a58eda2..328d964 100644 (file)
@@ -20,6 +20,7 @@ dnl * Declare subdirectories that have a private configure script
 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
 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)
 
 # -------------------------------------------------------------------------
 AC_CONFIG_SUBDIRS(ghc)
 
 # -------------------------------------------------------------------------
@@ -164,6 +165,15 @@ i[[3456]]86-*-netbsd*)
         HostVendor_CPP='unknown'
         HostOS_CPP='netbsd'
         ;;
         HostVendor_CPP='unknown'
         HostOS_CPP='netbsd'
         ;;
+i[[3456]]86-*-openbsd*)
+       HostPlatform=i386-unknown-openbsd # hack again
+       TargetPlatform=i386-unknown-openbsd
+       BuildPlatform=i386-unknown-openbsd
+        HostPlatform_CPP='i386_unknown_openbsd'
+        HostArch_CPP='i386'
+        HostVendor_CPP='unknown'
+        HostOS_CPP='openbsd'
+        ;;
 i[[3456]]86-*-solaris2*)
        HostPlatform=i386-unknown-solaris2 # hack again
        TargetPlatform=i386-unknown-solaris2
 i[[3456]]86-*-solaris2*)
        HostPlatform=i386-unknown-solaris2 # hack again
        TargetPlatform=i386-unknown-solaris2
@@ -322,7 +332,17 @@ dnl AC_SUBST(TargetVendor_CPP)
 
 AC_SUBST(exeext)
 
 
 AC_SUBST(exeext)
 
-AC_PATH_PROG(GHC,ghc)
+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)
 
 AC_PATH_PROGS(NHC,nhc nhc98)
 AC_PATH_PROG(HBC,hbc)
 
@@ -395,6 +415,36 @@ if test x"$EnableWin32DLLs" = "xYES" ; then
  AC_DEFINE(HAVE_WIN32_DLL_SUPPORT)
 fi
 
  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 --------------------------------------------------------------
 dnl End of configure script option section
 dnl --------------------------------------------------------------
@@ -491,7 +541,7 @@ AC_PATH_PROGS(CompressCmd,gzip compress,gzip)
 dnl ** check for jade/openjade & determine a working catalog
 AC_PATH_PROGS(JadeCmd,openjade jade,jade)
 FPTOOLS_DOCBOOK_CATALOG(Catalog, $JadeCmd, docs/fptools-both.dsl, 
 dnl ** check for jade/openjade & determine a working catalog
 AC_PATH_PROGS(JadeCmd,openjade jade,jade)
 FPTOOLS_DOCBOOK_CATALOG(Catalog, $JadeCmd, docs/fptools-both.dsl, 
-                        glafp-utils/docbook/CATALOG*)
+                        /etc/sgml.catalog /usr/share/sgml/CATALOG.docbkdsl $hardtop/glafp-utils/docbook/CATALOG*)
 if test -z "$Catalog"; then
   AC_MSG_RESULT([Warning: You will not be able to build the documentation.])
 fi
 if test -z "$Catalog"; then
   AC_MSG_RESULT([Warning: You will not be able to build the documentation.])
 fi
@@ -543,7 +593,12 @@ dnl ** check for DOS include files
 AC_CHECK_HEADERS(dos.h conio.h io.h std.h) 
 
 dnl ** check for Windows include files
 AC_CHECK_HEADERS(dos.h conio.h io.h std.h) 
 
 dnl ** check for Windows include files
+if test $GhcLibsWithHOpenGL = YES ; then
 AC_CHECK_HEADERS(windows.h)
 AC_CHECK_HEADERS(windows.h)
+fi
+
+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
 
 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
 AC_HEADER_TIME
@@ -612,6 +667,48 @@ fi
 FPTOOLS_CHECK_ALIGNMENT(unsigned short)
 FPTOOLS_CHECK_ALIGNMENT(void *)
 
 FPTOOLS_CHECK_ALIGNMENT(unsigned short)
 FPTOOLS_CHECK_ALIGNMENT(void *)
 
+dnl ** map standard C types and ISO types to Haskell types
+FPTOOLS_CHECK_HTYPE(char)
+FPTOOLS_CHECK_HTYPE(signed char)
+FPTOOLS_CHECK_HTYPE(unsigned char)
+FPTOOLS_CHECK_HTYPE(short)
+FPTOOLS_CHECK_HTYPE(unsigned short)
+FPTOOLS_CHECK_HTYPE(int)
+FPTOOLS_CHECK_HTYPE(unsigned int)
+FPTOOLS_CHECK_HTYPE(long)
+FPTOOLS_CHECK_HTYPE(unsigned long)
+if test "$fptools_cv_have_long_long" = yes; then
+FPTOOLS_CHECK_HTYPE(long long)
+FPTOOLS_CHECK_HTYPE(unsigned long long)
+fi
+FPTOOLS_CHECK_HTYPE(float)
+FPTOOLS_CHECK_HTYPE(double)
+FPTOOLS_CHECK_HTYPE(ptrdiff_t)
+FPTOOLS_CHECK_HTYPE(size_t)
+FPTOOLS_CHECK_HTYPE(wchar_t)
+dnl Int32 is a HACK for non-ISO C compilers
+FPTOOLS_CHECK_HTYPE(sig_atomic_t, Int32)
+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
 
 dnl ** can we open files in binary mode?
 FPTOOLS_O_BINARY
 
@@ -690,13 +787,16 @@ AC_CHECK_FUNCS(pclose    _pclose )
 dnl ** check for specific library functions that we are interested in
 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat symlink sysconf timelocal times vadvise vfork)
 
 dnl ** check for specific library functions that we are interested in
 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat symlink sysconf timelocal times vadvise vfork)
 
-dnl ** check whether this machine has gmp2 installed
-AC_CHECK_LIB(gmp,  mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
-  AC_CHECK_LIB(gmp2, mpz_fdiv_qr,  HaveLibGmp=YES; LibGmp=gmp2,
+dnl ** check whether this machine has gmp3 installed
+AC_CHECK_LIB(gmp,  __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
+  AC_CHECK_LIB(gmp3, __gmpz_fdiv_qr,  HaveLibGmp=YES; LibGmp=gmp3,
     HaveLibGmp=No; LibGmp=not-installed))
 AC_SUBST(HaveLibGmp)
 AC_SUBST(LibGmp)
 
     HaveLibGmp=No; LibGmp=not-installed))
 AC_SUBST(HaveLibGmp)
 AC_SUBST(LibGmp)
 
+dnl ** check whether this machine has GNU regex in libc.
+FPTOOLS_REGEX_IN_LIBC
+
 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
 dnl    the order of these tests matters: bfd needs liberty
 AC_CHECK_LIB(iberty, xmalloc)
 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
 dnl    the order of these tests matters: bfd needs liberty
 AC_CHECK_LIB(iberty, xmalloc)