[project @ 2003-03-06 13:24:46 by ross]
[ghc-hetmet.git] / configure.in
index 01bf39f..30c4d7e 100644 (file)
@@ -468,6 +468,10 @@ AC_MSG_ERROR([--enable-hc-boot-unregisterised requires --enable-hc-boot.])
 fi;
 fi;
 
+dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on
+if test "$BootingFromHc" = "NO" -a "$WithGhc" = "" -a -d "$srcdir/ghc"; then
+AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
+fi;
 
 dnl ** Enable multi-thread friendly RTS?
 dnl --------------------------------------------------------------
@@ -528,26 +532,6 @@ AC_ARG_ENABLE(hopengl,
 )
 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 --------------------------------------------------------------
@@ -594,6 +578,7 @@ dnl     If gcc, make sure it's at least 2.1
 dnl
 AC_PROG_CC
 FPTOOLS_HAVE_GCC
+FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR
 
 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
 AC_PROG_CPP
@@ -721,10 +706,10 @@ 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(unistd.h,[AC_CHECK_FUNCS(lchown)])
 
-AC_CHECK_HEADER(readline/readline.h, HaveReadlineReadlineH=YES, HaveReadlineReadlineH=NO)
-AC_CHECK_HEADER(readline/history.h, HaveReadlineHistoryH=YES, HaveReadlineHistoryH=NO)
+AC_CHECK_HEADER(readline/readline.h, [HaveReadlineReadlineH=YES], [HaveReadlineReadlineH=NO])
+AC_CHECK_HEADER(readline/history.h, [HaveReadlineHistoryH=YES], [HaveReadlineHistoryH=NO])
 
 if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then
   HaveReadlineHeaders=YES
@@ -751,14 +736,14 @@ dnl dynamic loading include files
 AC_CHECK_HEADERS(dlfcn.h dl.h) 
 
 dnl ** check for farcalloc (in bcc)
-AC_CHECK_HEADER(alloc.h,AC_CHECK_FUNCS(farcalloc))
+AC_CHECK_HEADER(alloc.h,[AC_CHECK_FUNCS(farcalloc)])
 
 dnl ** check for valloc (in sunos, solaris, mips, amiga, next, minix, ultrix)
-AC_CHECK_HEADER(malloc.h,AC_CHECK_FUNCS(valloc))
+AC_CHECK_HEADER(malloc.h,[AC_CHECK_FUNCS(valloc)])
 
 dnl ** check for POSIX regex
 HavePosixRegex=NO
-AC_CHECK_HEADER(regex.h,AC_CHECK_FUNC(regcomp, HavePosixRegex=YES))
+AC_CHECK_HEADER(regex.h,[AC_CHECK_FUNC(regcomp, [HavePosixRegex=YES])])
 AC_SUBST(HavePosixRegex)
 
 dnl ** how do we get a timezone name, and UTC offset ?
@@ -953,7 +938,7 @@ 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 lstat symlink sysconf timelocal times vadvise vfork localtime_r gmtime_r readdir_r)
+AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat lstat symlink sysconf timelocal times vadvise vfork localtime_r gmtime_r readdir_r getgrgid_r getgrnam_r getpwuid_r getpwnam_r)
 
 dnl ** check whether this machine has gmp3 installed
 AC_CHECK_LIB(gmp,  __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
@@ -1043,7 +1028,10 @@ mingw32)  ;;
 *) AC_PATH_XTRA() ;;
 esac
 
+dnl ** check for OpenGL/GLUT/GLX include paths and libraries
+if test $GhcLibsWithHOpenGL = YES ; then
 FPTOOLS_HAVE_OPENGL
+fi
 
 dnl ################################################################
 dnl Check for libraries
@@ -1179,6 +1167,22 @@ AC_EGREP_HEADER(in_addr_t, netinet/in.h,
  AC_MSG_RESULT(no))
 
 dnl --------------------------------------------------
+dnl * test for Linux sendfile(2)
+dnl --------------------------------------------------
+AC_MSG_CHECKING(for sendfile in sys/sendfile.h)
+AC_EGREP_HEADER(sendfile, sys/sendfile.h,
+ [ AC_DEFINE(HAVE_LINUX_SENDFILE) AC_MSG_RESULT(yes) ],
+ AC_MSG_RESULT(no))
+
+dnl --------------------------------------------------
+dnl * test for BSD sendfile(2)
+dnl --------------------------------------------------
+AC_MSG_CHECKING(for sendfile in sys/socket.h)
+AC_EGREP_HEADER(sendfile, sys/socket.h,
+ [ AC_DEFINE(HAVE_BSD_SENDFILE) AC_MSG_RESULT(yes) ],
+ AC_MSG_RESULT(no))
+
+dnl --------------------------------------------------
 dnl * test for GTK+
 dnl --------------------------------------------------
 
@@ -1245,4 +1249,23 @@ we_have_sigpoll
 #endif
 ], AC_DEFINE(HAVE_SIGPOLL) haveSIGPOLL=yes, haveSIGPOLL=no)
 AC_MSG_RESULT([$haveSIGPOLL])
+
+AC_MSG_CHECKING(for _SC_GETGR_R_SIZE_MAX)
+AC_EGREP_CPP(we_have_that_sysconf_thing,
+[
+#include <unistd.h>
+#ifdef _SC_GETGR_R_SIZE_MAX
+we_have_that_sysconf_thing
+#endif
+], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SC_GETGR_R_SIZE_MAX), AC_MSG_RESULT(no))    
+
+AC_MSG_CHECKING(for _SC_GETPW_R_SIZE_MAX)
+AC_EGREP_CPP(we_have_that_sysconf_thing,
+[
+#include <unistd.h>
+#ifdef _SC_GETPW_R_SIZE_MAX
+we_have_that_sysconf_thing
+#endif
+], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SC_GETPW_R_SIZE_MAX), AC_MSG_RESULT(no))    
+
 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )