X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.in;h=571bb79b7fe1842927e51b10863fbefa33cfe76f;hb=a67323d3b8b65cad455646635f780919b406a595;hp=9a1c2b0c87481aaf92e9e7763e6d9fd447c6dcf8;hpb=8d4e95a20bc802a137b8c4a88ea46d1fabad0429;p=ghc-hetmet.git diff --git a/configure.in b/configure.in index 9a1c2b0..571bb79 100644 --- a/configure.in +++ b/configure.in @@ -16,6 +16,9 @@ dnl # First off, a distrib sanity check.. AC_INIT(mk/config.mk.in) +dnl * We require autoconf version 2.53 due to the use of AC_SYS_LARGEFILE +AC_PREREQ(2.52) + dnl * Declare subdirectories that have a private configure script dnl dnl After the toplevel configuration is complete, the script will recurse into @@ -432,6 +435,10 @@ AC_ARG_WITH(gcc, Use a different command instead of 'gcc' for the GNU C compiler. ], [WhatGccIsCalled="$withval" + if test "x$HostPlatform" = "xi386-unknown-mingw32"; then + # Canonicalise to :/path/to/gcc + withval=`cygpath -w ${withval} | sed -e 's@\\\\@/@g' ` + fi; CC="$withval"], [WhatGccIsCalled="gcc"] ) @@ -468,6 +475,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,25 +539,16 @@ 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= - 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 ** .NET interop support? dnl -------------------------------------------------------------- -AC_ARG_WITH(glut-xlib, -[ --with-glut-xlib= - 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" - - - +AC_ARG_ENABLE(dotnet, +[ --enable-dotnet + Build .NET interop layer. +], +[DotnetSupport=YES; AC_DEFINE(WANT_DOTNET_SUPPORT)], +[DotnetSupport=NO] +) +AC_SUBST(DotnetSupport) dnl -------------------------------------------------------------- dnl End of configure script option section @@ -594,6 +596,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 @@ -685,6 +688,19 @@ fi AC_SUBST(CompressCmd) AC_SUBST(CompressSuffix) +dnl ** check for ghc-pkg command +AC_PATH_PROG(GhcPkgCmd,ghc-pkg) + +AC_ARG_WITH(greencard, +[ --with-greencard= + Use a command different from 'green-card' to compile GreenCard files +], +[ +GreencardCmd=$withval; +FPTOOLS_GREENCARD(3.00) +] +) + AC_ARG_ENABLE(src-tree-happy, [ --enable-src-tree-happy Build and use source tree (fptools/happy) version of happy. @@ -719,12 +735,16 @@ dnl ### checking the state of the local header files and syscalls ### dnl ** check for full ANSI header (.h) files AC_HEADER_STDC +dnl ** Enable large file support. NB. do this before testing the type of +dnl off_t, because it will affect the result of that test. +AC_SYS_LARGEFILE + 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_FUNCS(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 +771,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 ? @@ -856,6 +876,7 @@ FPTOOLS_CHECK_HTYPE(tcflag_t) FPTOOLS_CHECK_HTYPE(blkcnt_t) FPTOOLS_CHECK_HTYPE(nlink_t) FPTOOLS_CHECK_HTYPE(ssize_t) +FPTOOLS_CHECK_HTYPE(rlim_t) dnl ** Map OpenGL data types to Haskell types if test $GhcLibsWithHOpenGL = YES ; then @@ -950,11 +971,20 @@ AC_CHECK_FUNCS(vsnprintf _vsnprintf) AC_CHECK_FUNCS(snprintf _snprintf ) AC_CHECK_FUNCS(popen _popen ) AC_CHECK_FUNCS(pclose _pclose ) +AC_CHECK_FUNCS(setenv unsetenv) 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 getgrgid_r getgrnam_r getpwuid_r getpwnam_r) +dnl ** Solaris2 needs additionl flag for getpw*_r() +case "$TargetPlatform" in + *-solaris2*) + unix_SRC_HSC2HS_OPTS="-D_POSIX_PTHREAD_SEMANTICS" + AC_SUBST(unix_SRC_HSC2HS_OPTS) + ;; +esac + 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, @@ -1043,7 +1073,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 @@ -1055,7 +1088,7 @@ dnl (Mac OS X only) ... but don't check if we already have the dnl HaskellSupport.framework if test $HaveFrameworkHaskellSupport = YES; then - HaveLibDL = NO + HaveLibDL=NO HaveRtldNext=NO HaveRtldLocal=YES AC_DEFINE(HAVE_RTLDLOCAL) @@ -1179,6 +1212,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 -------------------------------------------------- @@ -1217,11 +1266,6 @@ AC_C_PROTOTYPES dnl ** are we big endian? AC_C_BIGENDIAN -# Allay users' general fear of warnings of any kind. -errprint(fptools configure script wizard sez: autoconf-2.50 or later should produce no warnings -) -errprint(if you are using 2.13 or earlier, you may get a (harmless) warning message. -) dnl ** check for leading underscores in symbol names FPTOOLS_UNDERSCORE @@ -1245,4 +1289,29 @@ 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 +#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 +#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 )