module UHC.Light.Compiler.EHC.CompilePhase.Link ( cpLinkO ) where import UHC.Light.Compiler.EHC.Common import UHC.Light.Compiler.EHC.CompileUnit import UHC.Light.Compiler.EHC.CompileRun import Control.Monad.State import qualified UHC.Light.Compiler.Config as Cfg import UHC.Light.Compiler.EHC.Environment import UHC.Light.Compiler.Base.Target {-# LINE 37 "src/ehc/EHC/CompilePhase/Link.chs" #-} cpLinkO :: EHCCompileRunner m => [HsName] -> String -> EHCompilePhaseT m () cpLinkO modNmL pkgNm = do { cr <- get ; let (crsi,opts) = crBaseInfo' cr codeFiles = [ fpathToStr o | m <- modNmL, o <- ecuGenCodeFiles $ crCU m cr ] (libFile,_) = mkInOrOutputFPathDirFor OutputFor_Pkg opts l l (fpathSuff l) where l = mkFPath $ Cfg.mkCLibFilename "" pkgNm linkCode = map mkShellCmd $ Cfg.mkShellCmdLibtool (fpathToStr libFile) codeFiles ; when (ehcOptVerbosity opts >= VerboseALot) (do { liftIO $ mapM_ (putStrLn . showShellCmd) linkCode }) ; unless (null codeFiles) (cpSeq [ cpSystem c | c <- linkCode ]) }