[project @ 2002-07-04 07:09:47 by mthomas]
[ghc-hetmet.git] / configure.in
index b8bc441..7ee231c 100644 (file)
@@ -203,6 +203,15 @@ i[[3456]]86-*-mingw32*)
         HostOS_CPP='mingw32'
        exeext='.exe'
         ;;
+ia64-*-linux*)
+        HostPlatform=ia64-unknown-linux # hack again
+        TargetPlatform=ia64-unknown-linux
+        BuildPlatform=ia64-unknown-linux
+        HostPlatform_CPP='ia64_unknown_linux'
+        HostArch_CPP='ia64'
+        HostVendor_CPP='unknown'
+        HostOS_CPP='linux'
+        ;;
 m68k-next-nextstep2)
         HostPlatform_CPP='m68k_next_nextstep2'
         HostArch_CPP='m68k'
@@ -556,13 +565,15 @@ FPTOOLS_HAVE_GCC
 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
 AC_PROG_CPP
 
-dnl ** does the C compiler support the following options?
-FPTOOLS_CC_FLAG(-mwin32,CC_SUPPORTS_MWIN32)
-FPTOOLS_CC_FLAG(-mno-cygwin,CC_SUPPORTS_MNO_CYGWIN)
+dnl ** Without optimization some INLINE trickery fails for GHCi
+SRC_CC_OPTS="-O"
 
-EXTRA_CC_OPTS="$CC_SUPPORTS_MNO_CYGWIN $CC_SUPPORTS_MWIN32"
-SRC_CC_OPTS="-O $EXTRA_CC_OPTS"
-CPPFLAGS="$EXTRA_CC_OPTS $CPPFLAGS"
+dnl ** Try to add -mno-cygwin to the C compiler options for mingw32 targets
+if test x"$TargetOS_CPP" = x"mingw32"; then
+  FPTOOLS_CC_FLAG(-mno-cygwin,CC_SUPPORTS_MNO_CYGWIN)
+  SRC_CC_OPTS="$CC_SUPPORTS_MNO_CYGWIN $SRC_CC_OPTS"
+  CPPFLAGS="$CC_SUPPORTS_MNO_CYGWIN $CPPFLAGS"
+fi
 AC_SUBST(SRC_CC_OPTS)
 
 dnl ** figure out how to do context diffs
@@ -617,6 +628,9 @@ if test -z "$Catalog"; then
   AC_MSG_RESULT([Warning: You will not be able to build the documentation.])
 fi
 case $Catalog in
+   yes) # assume it is provided by other means (e.g., SGML_CATALOG_FILES env var).
+        Catalog=
+       ;;
    glafp*) 
        case $HostOS_CPP in
           mingw32)
@@ -664,7 +678,7 @@ dnl ** check for full ANSI header (.h) files
 AC_HEADER_STDC
 
 dnl ** check for specific header (.h) files that we are interested in
-AC_CHECK_HEADERS(Files.h arpa/inet.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h inttypes.h limits.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdint.h stdlib.h stddef.h stdarg.h string.h sys/fault.h sys/file.h sys/ioctl.h sys/limits.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h netdb.h netinet/in.h netinet/tcp.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/un.h sys/utsname.h sys/vadvise.h sys/wait.h termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h bfd.h winsock.h pthread.h)
+AC_CHECK_HEADERS(Files.h arpa/inet.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h inttypes.h limits.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdint.h stdlib.h stddef.h stdarg.h string.h sys/fault.h sys/file.h sys/ioctl.h sys/limits.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h netdb.h netinet/in.h netinet/tcp.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/un.h sys/utsname.h sys/vadvise.h sys/wait.h termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h bfd.h winsock.h pthread.h sys/uio.h)
 
 AC_CHECK_HEADER(readline/readline.h, HaveReadlineReadlineH=YES, HaveReadlineReadlineH=NO)
 AC_CHECK_HEADER(readline/history.h, HaveReadlineHistoryH=YES, HaveReadlineHistoryH=NO)
@@ -720,6 +734,10 @@ AC_STRUCT_ST_BLKSIZE
 dnl ** do we have long longs?
 FPTOOLS_C_LONG_LONG
 
+dnl ** check what fields struct msghdr contains
+FPTOOLS_MSGHDR_MSG_ACCRIGHTS
+FPTOOLS_MSGHDR_MSG_CONTROL
+
 dnl ** what are the sizes of various types
 dnl    (these must come before GHC_CHECK_ALIGNMENT)
 AC_CHECK_SIZEOF(char,               1)
@@ -787,7 +805,6 @@ FPTOOLS_CHECK_HTYPE(ino_t)
 FPTOOLS_CHECK_HTYPE(mode_t)
 FPTOOLS_CHECK_HTYPE(off_t)
 FPTOOLS_CHECK_HTYPE(pid_t)
-FPTOOLS_CHECK_HTYPE(size_t)
 FPTOOLS_CHECK_HTYPE(gid_t)
 FPTOOLS_CHECK_HTYPE(uid_t)
 FPTOOLS_CHECK_HTYPE(cc_t)
@@ -895,10 +912,24 @@ AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime m
 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))
+    HaveLibGmp=NO; LibGmp=not-installed))
 AC_SUBST(HaveLibGmp)
 AC_SUBST(LibGmp)
 
+dnl ** check for mingwex library
+AC_CHECK_LIB(mingwex, closedir, HaveLibMingwEx=YES, HaveLibMingwEx=NO)
+AC_SUBST(HaveLibMingwEx)
+
+if test $HaveLibMingwEx = YES ; then
+  AC_DEFINE(HAVE_MINGWEX)
+fi
+
+if test "$HaveLibGmp" = "NO"; then
+if test "$HostArch_CPP" = "ia64"; then
+AC_MSG_ERROR([You need to install libgmp (the in-tree version does not work on IA64).])
+fi;
+fi;
+
 dnl ** check whether this machine has GNU regex in libc.
 FPTOOLS_REGEX_IN_LIBC
 
@@ -951,10 +982,14 @@ mingw32)  ;;
 *) AC_PATH_XTRA() ;;
 esac
 
+FPTOOLS_HAVE_OPENGL
+
 dnl ################################################################
 dnl Check for libraries
 dnl ################################################################
 
+dnl ** check for libdl & RTLD_NEXT
+
 AC_CHECK_LIB(dl, dlopen, 
        [HaveLibDL=YES
         AC_DEFINE(HAVE_LIBDL)
@@ -963,6 +998,42 @@ AC_CHECK_LIB(dl, dlopen,
 AC_CHECK_FUNCS(dlopen)
 AC_SUBST(HaveLibDL)
 
+dnl ** sometimes RTLD_NEXT is hidden in #ifdefs we really don't wan to set
+AC_MSG_CHECKING(for RTLD_NEXT from dlfcn.h)
+AC_EGREP_CPP(yes,
+[
+ #include <dlfcn.h>
+ #ifdef RTLD_NEXT
+        yes
+ #endif
+], [
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_RTLDNEXT)
+  HaveRtldNext=YES
+], [
+  AC_MSG_RESULT(no)
+  HaveRtldNext=NO
+  ])    
+AC_SUBST(HaveRtldNext)
+
+dnl ** RTLD_LOCAL isn't available on cygwin
+AC_MSG_CHECKING(for RTLD_LOCAL from dlfcn.h)
+AC_EGREP_CPP(yes,
+[
+ #include <dlfcn.h>
+ #ifdef RTLD_LOCAL
+        yes
+ #endif
+], [
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_RTLDLOCAL)
+  HaveRtldLocal=YES
+], [
+  AC_MSG_RESULT(no)
+  HaveRtldLocal=NO
+  ])    
+AC_SUBST(HaveRtldLocal)
+
 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
 
 dnl --------------------------------------------------