[project @ 2002-12-05 23:49:43 by mthomas]
[ghc-hetmet.git] / configure.in
index c9c7702..32f7b26 100644 (file)
@@ -712,6 +712,7 @@ 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 sys/uio.h)
+AC_CHECK_HEADER(unistd.h,AC_CHECK_FUNC(lchown))
 
 AC_CHECK_HEADER(readline/readline.h, HaveReadlineReadlineH=YES, HaveReadlineReadlineH=NO)
 AC_CHECK_HEADER(readline/history.h, HaveReadlineHistoryH=YES, HaveReadlineHistoryH=NO)
@@ -952,6 +953,21 @@ AC_CHECK_LIB(gmp,  __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
 AC_SUBST(HaveLibGmp)
 AC_SUBST(LibGmp)
 
+dnl ** (Mac OS X only: check for HaskellSupport.framework)
+HaveFrameworkHaskellSupport=NO
+if test $HostPlatform = "powerpc-apple-darwin"; then
+ AC_MSG_CHECKING([for HaskellSupport.framework])
+ save_libs="$LIBS"
+ LIBS="-framework HaskellSupport"
+ AC_TRY_LINK_FUNC(__gmpz_fdiv_qr, HaveFrameworkHaskellSupport=YES,)
+ if test $HaveFrameworkHaskellSupport = YES; then
+  AC_DEFINE(HAVE_FRAMEWORK_HASKELLSUPPORT)
+ fi;
+ LIBS="$save_libs"
+ AC_MSG_RESULT([$HaveFrameworkHaskellSupport])
+fi;
+AC_SUBST(HaveFrameworkHaskellSupport)
+
 dnl ** check for mingwex library
 AC_CHECK_LIB(mingwex, closedir, HaveLibMingwEx=YES, HaveLibMingwEx=NO)
 AC_SUBST(HaveLibMingwEx)
@@ -1026,88 +1042,133 @@ dnl ################################################################
 
 dnl ** check for libdl & RTLD_NEXT
 
-AC_CHECK_LIB(dl, dlopen, 
-       [HaveLibDL=YES
-        AC_DEFINE(HAVE_LIBDL)
-        LIBS="$LIBS -ldl"], 
-       [HaveLibDL=NO])
-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 or openbsd
-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)
-
-dnl ** RTLD_GLOBAL isn't available on openbsd
-AC_MSG_CHECKING(for RTLD_GLOBAL from dlfcn.h)
-AC_EGREP_CPP(yes,
-[
- #include <dlfcn.h>
- #ifdef RTLD_GLOBAL
-        yes
- #endif
-], [
-  AC_MSG_RESULT(yes)
-  AC_DEFINE(HAVE_RTLDGLOBAL)
-  HaveRtldGlobal=YES
-], [
-  AC_MSG_RESULT(no)
-  HaveRtldGlobal=NO
-  ])    
-AC_SUBST(HaveRtldGlobal)
-
-dnl ** RTLD_NOW isn't available on openbsd
-AC_MSG_CHECKING(for RTLD_NOW from dlfcn.h)
-AC_EGREP_CPP(yes,
-[
- #include <dlfcn.h>
- #ifdef RTLD_NOW
-        yes
- #endif
-], [
-  AC_MSG_RESULT(yes)
-  AC_DEFINE(HAVE_RTLDNOW)
-  HaveRtldNow=YES
-], [
-  AC_MSG_RESULT(no)
-  HaveRtldNow=NO
-  ])    
-AC_SUBST(HaveRtldNow)
+dnl (Mac OS X only) ... but don't check if we already have the
+dnl HaskellSupport.framework
+
+if test $HaveFrameworkHaskellSupport = YES; then
+    HaveLibDL = NO
+    HaveRtldNext=NO
+    HaveRtldLocal=YES
+    AC_DEFINE(HAVE_RTLDLOCAL)
+    HaveRtldGlobal=YES
+    AC_DEFINE(HAVE_RTLDGLOBAL)
+    HaveRtldNow=YES
+    AC_DEFINE(HAVE_RTLDNOW)
+    AC_SUBST(HaveLibDL)
+    AC_SUBST(HaveRtldNext)
+    AC_SUBST(HaveRtldLocal)
+    AC_SUBST(HaveRtldGlobal)
+    AC_SUBST(HaveRtldNow)
+else
+    AC_CHECK_LIB(dl, dlopen, 
+       [HaveLibDL=YES
+        AC_DEFINE(HAVE_LIBDL)
+        LIBS="$LIBS -ldl"], 
+       [HaveLibDL=NO])
+    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 or openbsd
+    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)
+
+    dnl ** RTLD_GLOBAL isn't available on openbsd
+    AC_MSG_CHECKING(for RTLD_GLOBAL from dlfcn.h)
+    AC_EGREP_CPP(yes,
+    [
+     #include <dlfcn.h>
+     #ifdef RTLD_GLOBAL
+            yes
+     #endif
+    ], [
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_RTLDGLOBAL)
+      HaveRtldGlobal=YES
+    ], [
+      AC_MSG_RESULT(no)
+      HaveRtldGlobal=NO
+      ])    
+    AC_SUBST(HaveRtldGlobal)
+
+    dnl ** RTLD_NOW isn't available on openbsd
+    AC_MSG_CHECKING(for RTLD_NOW from dlfcn.h)
+    AC_EGREP_CPP(yes,
+    [
+     #include <dlfcn.h>
+     #ifdef RTLD_NOW
+            yes
+     #endif
+    ], [
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_RTLDNOW)
+      HaveRtldNow=YES
+    ], [
+      AC_MSG_RESULT(no)
+      HaveRtldNow=NO
+      ])    
+    AC_SUBST(HaveRtldNow)
+fi
 
 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
 
+dnl ---------- usleep ----------
+dnl --- stolen from guile configure ---
+dnl --- FIXME: /usr/include/unistd.h can't be right?
+
+### On some systems usleep has no return value.  If it does have one,
+### we'd like to return it; otherwise, we'll fake it.
+AC_CACHE_CHECK([return type of usleep], cv_func_usleep_return_type,
+  [AC_EGREP_HEADER(changequote(<, >)<void[      ]+usleep>changequote([, ]),
+                   /usr/include/unistd.h,
+                   [cv_func_usleep_return_type=void],
+                   [cv_func_usleep_return_type=int])])
+case "$cv_func_usleep_return_type" in
+  "void" )
+    AC_DEFINE(USLEEP_RETURNS_VOID, 1,
+      [Define if the system headers declare usleep to return void.])
+  ;;
+esac
+
+dnl --------------------------------------------------
+dnl * test for in_addr_t
+dnl --------------------------------------------------
+AC_MSG_CHECKING(for in_addr_t in netinet/in.h)
+AC_EGREP_HEADER(in_addr_t, netinet/in.h,
+ [ AC_DEFINE(HAVE_IN_ADDR_T) AC_MSG_RESULT(yes) ],
+ AC_MSG_RESULT(no))
+
 dnl --------------------------------------------------
 dnl * test for GTK+
 dnl --------------------------------------------------
@@ -1176,4 +1237,12 @@ esac
 AC_SUBST(LdCmd)
 FPTOOLS_LD_X
 
+AC_MSG_CHECKING([for SIGPOLL])
+AC_EGREP_CPP(we_have_sigpoll,
+[#include <signal.h>
+#ifdef SIGPOLL
+we_have_sigpoll
+#endif
+], AC_DEFINE(HAVE_SIGPOLL) haveSIGPOLL=yes, haveSIGPOLL=no)
+AC_MSG_RESULT([$haveSIGPOLL])
 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )