[project @ 2001-07-19 14:23:16 by rrt]
authorrrt <unknown>
Thu, 19 Jul 2001 14:23:16 +0000 (14:23 +0000)
committerrrt <unknown>
Thu, 19 Jul 2001 14:23:16 +0000 (14:23 +0000)
More fixes to allow GHC to live in C:\Program Files

ghc/compiler/main/DriverPipeline.hs
ghc/compiler/main/SysTools.lhs

index 9d98934..7a4fe31 100644 (file)
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
--- $Id: DriverPipeline.hs,v 1.90 2001/07/17 14:48:04 rrt Exp $
+-- $Id: DriverPipeline.hs,v 1.91 2001/07/19 14:23:16 rrt Exp $
 --
 -- GHC Driver
 --
@@ -349,8 +349,8 @@ run_phase Cpp basename suff input_fn output_fn
 
            cmdline_include_paths <- readIORef v_Include_paths
            pkg_include_dirs <- getPackageIncludePath
-           let include_paths = map (\p -> "-I"++p) (cmdline_include_paths
-                                                       ++ pkg_include_dirs)
+           let include_paths = foldr (\ x xs -> "-I" : x : xs) []
+                                 (cmdline_include_paths ++ pkg_include_dirs)
 
            verb <- getVerbFlag
            (md_c_flags, _) <- machdepCCOpts
@@ -542,7 +542,7 @@ run_phase Hsc basename suff input_fn output_fn
 run_phase cc_phase basename suff input_fn output_fn
    | cc_phase == Cc || cc_phase == HCc
    = do        cc_opts              <- getOpts opt_c
-               cmdline_include_dirs <- readIORef v_Include_paths
+               cmdline_include_paths <- readIORef v_Include_paths
 
         let hcc = cc_phase == HCc
 
@@ -550,8 +550,8 @@ run_phase cc_phase basename suff input_fn output_fn
                -- .c files; this is the Value Add(TM) that using
                -- ghc instead of gcc gives you :)
         pkg_include_dirs <- getPackageIncludePath
-       let include_paths = map (\p -> "-I"++p) (cmdline_include_dirs 
-                                                       ++ pkg_include_dirs)
+        let include_paths = foldr (\ x xs -> "-I" : x : xs) []
+                             (cmdline_include_paths ++ pkg_include_dirs)
 
        mangle <- readIORef v_Do_asm_mangling
        (md_c_flags, md_regd_c_flags) <- machdepCCOpts
index f3c415c..efcb634 100644 (file)
@@ -244,12 +244,13 @@ initSysTools minusB_args
        --      pick up whatever happens to be lying around in the path,
        --      possibly including those from a cygwin install on the target,
        --      which is exactly what we're trying to avoid.
-       ; let gcc_path  | am_installed = installed_bin ("gcc -B\"" ++ installed "gcc-lib\\\"")
+       ; let gcc_path  | am_installed = installed_bin ("gcc -B\"" ++ installed "gcc-lib/\"")
                        | otherwise    = cGCC
-               -- The trailing "\\" is absolutely essential; gcc seems
+               -- The trailing "/" is absolutely essential; gcc seems
                -- to construct file names simply by concatenating to this
-               -- -B path with no extra slash.
-               -- We use "\\" rather than "/" because gcc_path is in NATIVE format
+               -- -B path with no extra slash
+               -- We use "/" rather than "\\" because otherwise "\\\" is mangled
+               -- later on; although gcc_path is in NATIVE format, gcc can cope
                --      (see comments with declarations of global variables)
                --
                -- The quotes round the -B argument are in case TopDir has spaces in it
@@ -263,8 +264,8 @@ initSysTools minusB_args
 
        -- On Win32 we don't want to rely on #!/bin/perl, so we prepend 
        -- a call to Perl to get the invocation of split and mangle
-       ; let split_path  = perl_path ++ " " ++ split_script
-             mangle_path = perl_path ++ " " ++ mangle_script
+       ; let split_path  = perl_path ++ " \"" ++ split_script ++ "\""
+             mangle_path = perl_path ++ " \"" ++ mangle_script ++ "\""
 
        ; let mkdll_path = cMKDLL
 #else