X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=configure.ac;h=bc5c62b4bfa4c14dd767be54c435806f84022529;hp=f5d4fc87fdda4b35a15770eb91b52b890c7f8304;hb=3ad5c4bbe8b3f40a2a105722c7c1b0abb0c99c66;hpb=64f6d469667b1bad1f9ac1b45ee90de09f2cc6c2 diff --git a/configure.ac b/configure.ac index f5d4fc8..bc5c62b 100644 --- a/configure.ac +++ b/configure.ac @@ -156,7 +156,7 @@ fi; # GHC is passed to Cabal, so we need a native path if test "${WithGhc}" != "" then - ghc_host=`${WithGhc} +RTS --info | grep 'Host platform' | sed -e 's/.*, "//' -e 's/")//'` + ghc_host=`"${WithGhc}" +RTS --info | grep 'Host platform' | sed -e 's/.*, "//' -e 's/")//'` if test "$ghc_host" = "i386-unknown-mingw32" then @@ -165,7 +165,7 @@ then WithGhc=`echo "${WithGhc}" | sed "s#^/\([a-zA-Z]\)/#\1:/#"` else # Canonicalise to :/path/to/ghc - WithGhc=`cygpath -m ${WithGhc}` + WithGhc=`cygpath -m "${WithGhc}"` fi echo "GHC path canonicalised to: ${WithGhc}" fi @@ -212,7 +212,7 @@ if test "$build" = "" then if test "${WithGhc}" != "" then - build=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` + build=`"${WithGhc}" +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` echo "Build platform inferred as: $build" else echo "Can't work out build platform" @@ -224,7 +224,7 @@ if test "$host" = "" then if test "${WithGhc}" != "" then - host=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` + host=`"${WithGhc}" +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` echo "Host platform inferred as: $host" else echo "Can't work out host platform" @@ -236,7 +236,7 @@ if test "$target" = "" then if test "${WithGhc}" != "" then - target=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` + target=`"${WithGhc}" +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` echo "Target platform inferred as: $target" else echo "Can't work out target platform" @@ -296,7 +296,7 @@ checkVendor() { checkOS() { case $1 in - linux|freebsd|netbsd|openbsd|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix) + linux|freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku) ;; *) echo "Unknown OS '$1'" @@ -391,7 +391,6 @@ then test inplace/mingw -ot ghc-tarballs/mingw/gcc-core*.tar.gz || test inplace/mingw -ot ghc-tarballs/mingw/libcrypt*.tar.bz2 || test inplace/mingw -ot ghc-tarballs/mingw/mingw-runtime*.tar.gz || - test inplace/mingw -ot ghc-tarballs/mingw/perl*.tar.bz2 || test inplace/mingw -ot ghc-tarballs/mingw/w32api*.tar.gz then AC_MSG_NOTICE([Making in-tree mingw tree]) @@ -404,13 +403,25 @@ then tar -zxf ../../ghc-tarballs/mingw/gcc-core*.tar.gz && tar -jxf ../../ghc-tarballs/mingw/libcrypt*.tar.bz2 && tar -zxf ../../ghc-tarballs/mingw/mingw-runtime*.tar.gz && - tar -jxf ../../ghc-tarballs/mingw/perl*.tar.bz2 && tar -zxf ../../ghc-tarballs/mingw/w32api*.tar.gz && mv bin/gcc.exe bin/realgcc.exe ) inplace/mingw/bin/realgcc.exe driver/gcc/gcc.c driver/utils/getLocation.c -Idriver/utils -o inplace/mingw/bin/gcc.exe AC_MSG_NOTICE([In-tree mingw tree created]) fi + if ! test -d inplace/perl || + test inplace/perl -ot ghc-tarballs/perl/ghc-perl*.tar.gz + then + AC_MSG_NOTICE([Making in-tree perl tree]) + rm -rf inplace/perl + mkdir inplace + mkdir inplace/perl + ( + cd inplace/perl && + tar -zxf ../../ghc-tarballs/perl/ghc-perl*.tar.gz + ) + AC_MSG_NOTICE([In-tree perl tree created]) + fi fi dnl ** Which gcc to use? @@ -533,7 +544,7 @@ AC_PROG_LN_S dnl ** Find the path to sed -AC_PATH_PROG(SedCmd,sed) +AC_PATH_PROGS(SedCmd,gsed sed,sed) dnl ** check for time command @@ -541,12 +552,22 @@ AC_PATH_PROG(TimeCmd,time) dnl ** check for tar dnl if GNU tar is named gtar, look for it first. -AC_PATH_PROGS(TarCmd,gtar tar,tar) +AC_PATH_PROGS(TarCmd,gnutar gtar tar,tar) dnl ** check for patch dnl if GNU patch is named gpatch, look for it first AC_PATH_PROGS(PatchCmd,gpatch patch, patch) +dnl ** check for dtrace (currently only implemented for Mac OS X) +HaveDtrace=NO +AC_PATH_PROG(DtraceCmd,dtrace) +if test -n "$DtraceCmd"; then + if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple"; then + HaveDtrace=YES + fi +fi +AC_SUBST(HaveDtrace) + AC_PATH_PROG(HSCOLOUR,HsColour) # HsColour is passed to Cabal, so we need a native path if test "x$HostPlatform" = "xi386-unknown-mingw32" && \ @@ -595,7 +616,7 @@ 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([bfd.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h limits.h locale.h nlist.h pthread.h pwd.h signal.h sys/mman.h sys/resource.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/utsname.h sys/wait.h termios.h time.h utime.h windows.h winsock.h sched.h]) +AC_CHECK_HEADERS([bfd.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h limits.h locale.h nlist.h pthread.h pwd.h signal.h sys/mman.h sys/resource.h sys/select.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/utsname.h sys/wait.h termios.h time.h utime.h windows.h winsock.h sched.h]) dnl ** check if it is safe to include both and AC_HEADER_TIME @@ -702,18 +723,19 @@ if test $HaveLibMingwEx = YES ; then AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.]) fi +dnl ** check for math library +dnl Keep that check as early as possible. +dnl as we need to know whether we need libm +dnl for math functions or not +dnl (see http://hackage.haskell.org/trac/ghc/ticket/3730) +AC_SEARCH_LIBS(atan, m, + [AC_DEFINE([HAVE_LIBM], [1], [Define to 1 if you need to link with libm])]) + 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) AC_CHECK_LIB(bfd, bfd_init) -dnl ** check for math library -AC_CHECK_FUNC(atan,[fp_libm_not_needed=yes;LIBM=],[fp_libm_not_needed=dunno]) -if test x"$fp_libm_not_needed" = xdunno; then - AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"],[LIBM=]) -fi -AC_SUBST([LIBM]) - dnl ################################################################ dnl Check for libraries dnl ################################################################ @@ -846,7 +868,7 @@ if grep ' ' compiler/ghc.cabal.in 2>&1 >/dev/null; then AC_MSG_ERROR([compiler/ghc.cabal.in contains tab characters; please remove them]) fi -AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml distrib/ghc.iss distrib/configure-bin.ac]) +AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml distrib/ghc.iss distrib/configure.ac]) AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h]) AC_OUTPUT