packages feed

uhc-light-1.1.8.7: src/UHC/Light/Compiler/EHC/CompilePhase/Link.hs

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 ])
       }