X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=configure.ac;h=6792491590d704205bfafa3d53bca4367d0edd01;hp=2ca17353da4a5f556c0442f9f9d1009956ffaecd;hb=edc033b1b0e4ed4dccfaeb59a68b3e49b569d6ea;hpb=e51cdf9b6e54fb4052e46b6d7afb15e062928467 diff --git a/configure.ac b/configure.ac index 2ca1735..6792491 100644 --- a/configure.ac +++ b/configure.ac @@ -18,8 +18,6 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.13], [glasgow-hask # Set this to YES for a released version, otherwise NO : ${RELEASE=NO} -set -e - # The primary version (e.g. 6.7, 6.6.1) is set in the AC_INIT line # above. If this is not a released version, then we will append the # date to the version number (e.g. 6.7.20070204). The date is @@ -158,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 @@ -167,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 @@ -214,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" @@ -226,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" @@ -238,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" @@ -298,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) ;; *) echo "Unknown OS '$1'" @@ -393,23 +391,37 @@ 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]) rm -rf inplace/mingw mkdir inplace mkdir inplace/mingw - cd inplace/mingw - tar -zxf ../../ghc-tarballs/mingw/binutils*.tar.gz - 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 - cd ../.. + ( + cd inplace/mingw && + tar -zxf ../../ghc-tarballs/mingw/binutils*.tar.gz && + 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 -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? @@ -425,6 +437,21 @@ FP_ARG_WITH_PATH_GNU_PROG([LD], [ld]) LdCmd="$LD" AC_SUBST([LdCmd]) +dnl ** Check for dlltool on Windows +dnl -------------------------------------------------------------- +case $HostOS_CPP in +cygwin32|mingw32) + AC_PATH_PROG(DlltoolCmd,dlltool) + if test -z "$DlltoolCmd"; then + echo "Can't find dlltool in your path, can't make DLLs." + exit 1 + fi + ;; +*) + AC_SUBST(DlltoolCmd,"") + ;; +esac + dnl ** Which nm to use? dnl -------------------------------------------------------------- FP_ARG_WITH_PATH_GNU_PROG([NM], [nm]) @@ -540,7 +567,7 @@ 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