Convert more UniqFM's back to LazyUniqFM's
[ghc-hetmet.git] / compiler / main / DriverPipeline.hs
index 39feb18..b05a20a 100644 (file)
@@ -32,7 +32,7 @@ import Finder
 import HscTypes
 import Outputable
 import Module
-import UniqFM          ( eltsUFM )
+import LazyUniqFM              ( eltsUFM )
 import ErrUtils
 import DynFlags
 import StaticFlags     ( v_Ld_inputs, opt_Static, WayName(..) )
@@ -835,6 +835,13 @@ runPhase cc_phase _stop dflags _basename _suff input_fn get_output_fn maybe_loc
 
        pkg_extra_cc_opts <- getPackageExtraCcOpts dflags pkgs
 
+#ifdef darwin_TARGET_OS
+        pkg_framework_paths <- getPackageFrameworkPath dflags pkgs
+        let cmdline_framework_paths = frameworkPaths dflags
+        let framework_paths = map ("-F"++) 
+                        (cmdline_framework_paths ++ pkg_framework_paths)
+#endif
+
        let split_objs = dopt Opt_SplitObjs dflags
            split_opt | hcc && split_objs = [ "-DUSE_SPLIT_MARKERS" ]
                      | otherwise         = [ ]
@@ -907,6 +914,9 @@ runPhase cc_phase _stop dflags _basename _suff input_fn get_output_fn maybe_loc
                             else [])
                       ++ [ verb, "-S", "-Wimplicit", cc_opt ]
                       ++ [ "-D__GLASGOW_HASKELL__="++cProjectVersionInt ]
+#ifdef darwin_TARGET_OS
+                       ++ framework_paths
+#endif
                       ++ cc_opts
                       ++ split_opt
                       ++ include_paths
@@ -1097,8 +1107,8 @@ runPhase_MoveBinary dflags input_fn dep_packages
        case (dynLibLoader dflags) of
          Wrapped wrapmode ->
              do
-               let (o_base, o_ext) = splitFilename input_fn
-               let wrapped_executable | o_ext == "exe" = (o_base ++ "_real") `joinFileExt` o_ext
+               let (o_base, o_ext) = splitExtension input_fn
+               let wrapped_executable | o_ext == "exe" = (o_base ++ "_real") <.> o_ext
                                       | otherwise = input_fn ++ "_real"
                behaviour <- wrapper_behaviour dflags wrapmode dep_packages