Don't import FastString in HsVersions.h
[ghc-hetmet.git] / compiler / main / SysTools.lhs
index 2df9a72..97a5ea7 100644 (file)
@@ -72,17 +72,10 @@ import Foreign
 import CString         ( CString, peekCString )
 #endif
 
-#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ < 603
--- rawSystem comes from libghccompat.a in stage1
-import Compat.RawSystem ( rawSystem )
-import System.Cmd       ( system )
-import GHC.IOBase       ( IOErrorType(..) ) 
-#else
 import System.Process  ( runInteractiveProcess, getProcessExitCode )
 import Control.Concurrent( forkIO, newChan, readChan, writeChan )
-import FastString       ( mkFastString )
+import FastString
 import SrcLoc           ( SrcLoc, mkSrcLoc, noSrcSpan, mkSrcSpan )
-#endif
 \end{code}
 
 
@@ -174,7 +167,13 @@ initSysTools mbMinusB dflags
        ; let installed, installed_bin :: FilePath -> FilePath
               installed_bin pgm   =  top_dir </> pgm
              installed     file  =  top_dir </> file
-             inplace dir   pgm   =  top_dir </> cPROJECT_DIR </> dir </> pgm
+             inplace dir   pgm   =  top_dir </> 
+#ifndef darwin_TARGET_OS
+-- Not sure where cPROJECT_DIR makes sense, on Mac OS, building with
+-- xcodebuild, it surely is a *bad* idea!  -=chak
+                                     cPROJECT_DIR </> 
+#endif
+                                     dir </> pgm
 
        ; let pkgconfig_path
                | am_installed = installed "package.conf"
@@ -208,31 +207,9 @@ initSysTools mbMinusB dflags
                | otherwise    = "windres"
 
        ; let dflags0 = defaultDynFlags
-#ifndef mingw32_HOST_OS
-       -- check whether TMPDIR is set in the environment
-       ; e_tmpdir <- IO.try (getEnv "TMPDIR") -- fails if not set
-#else
-         -- On Win32, consult GetTempPath() for a temp dir.
-         --  => it first tries TMP, TEMP, then finally the
-         --   Windows directory(!). The directory is in short-path
-         --   form.
-       ; e_tmpdir <- 
-            IO.try (do
-               let len = (2048::Int)
-               buf  <- mallocArray len
-               ret  <- getTempPath len buf
-               if ret == 0 then do
-                     -- failed, consult TMPDIR.
-                    free buf
-                    getEnv "TMPDIR"
-                 else do
-                    s <- peekCString buf
-                    free buf
-                    return s)
-#endif
-        ; let dflags1 = case e_tmpdir of
-                         Left _  -> dflags0
-                         Right d -> setTmpDir d dflags0
+
+        ; tmpdir <- getTemporaryDirectory
+        ; let dflags1 = setTmpDir tmpdir dflags0
 
        -- Check that the package config exists
        ; config_exists <- doesFileExist pkgconfig_path