From 8fd92abe33abf8f618f8aa060391e880cdad3cd3 Mon Sep 17 00:00:00 2001 From: rrt Date: Thu, 19 Jul 2001 14:23:16 +0000 Subject: [PATCH] [project @ 2001-07-19 14:23:16 by rrt] More fixes to allow GHC to live in C:\Program Files --- ghc/compiler/main/DriverPipeline.hs | 12 ++++++------ ghc/compiler/main/SysTools.lhs | 13 +++++++------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/ghc/compiler/main/DriverPipeline.hs b/ghc/compiler/main/DriverPipeline.hs index 9d98934..7a4fe31 100644 --- a/ghc/compiler/main/DriverPipeline.hs +++ b/ghc/compiler/main/DriverPipeline.hs @@ -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 diff --git a/ghc/compiler/main/SysTools.lhs b/ghc/compiler/main/SysTools.lhs index f3c415c..efcb634 100644 --- a/ghc/compiler/main/SysTools.lhs +++ b/ghc/compiler/main/SysTools.lhs @@ -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 -- 1.7.10.4