import PackageConfig
import ParsePkgConf ( loadPackageConfig )
-import DynFlags ( dopt, DynFlag(..), DynFlags(..), PackageFlag(..), GhcLink(..) )
-import StaticFlags ( opt_Static )
+import DynFlags ( dopt, DynFlag(..), DynFlags(..), PackageFlag(..) )
+import StaticFlags
import Config ( cProjectVersion )
import Name ( Name, nameModule_maybe )
import UniqFM
import System.Environment ( getEnv )
import Distribution.InstalledPackageInfo hiding (depends)
import Distribution.Package hiding (depends, PackageId)
-import Distribution.Text
-import Distribution.Version
import FastString
import ErrUtils ( debugTraceMsg, putMsg, Message )
import Exception
munge_paths = map munge_path
munge_path p
- | Just p' <- maybePrefixMatch "$topdir" p = top_dir ++ p'
- | Just p' <- maybePrefixMatch "$httptopdir" p = toHttpPath top_dir ++ p'
+ | Just p' <- stripPrefix "$topdir" p = top_dir ++ p'
+ | Just p' <- stripPrefix "$httptopdir" p = toHttpPath top_dir ++ p'
| otherwise = p
toHttpPath p = "file:///" ++ p
(basePackageId, [""]),
(rtsPackageId, [""]),
(haskell98PackageId, [""]),
- (sybPackageId, [""]),
(thPackageId, [""]),
(dphSeqPackageId, [""]),
(dphParPackageId, [""])]
-- add base & rts to the preload packages
basicLinkedPackages
- | dopt Opt_AutoLinkPackages dflags && (ghcLink dflags) /= LinkDynLib
+ | dopt Opt_AutoLinkPackages dflags
= filter (flip elemUFM pkg_db) [basePackageId, rtsPackageId]
| otherwise = []
-- but in any case remove the current package from the set of
packageHsLibs :: DynFlags -> PackageConfig -> [String]
packageHsLibs dflags p = map (mkDynName . addSuffix) (hsLibraries p)
where
- tag = buildTag dflags
- rts_tag = rtsBuildTag dflags
+ non_dyn_ways = filter ((/= WayDyn) . wayName) (ways dflags)
+ -- the name of a shared library is libHSfoo-ghc<version>.so
+ -- we leave out the _dyn, because it is superfluous
+
+ tag = mkBuildTag (filter (not . wayRTSOnly) non_dyn_ways)
+ rts_tag = mkBuildTag non_dyn_ways
mkDynName | opt_Static = id
| otherwise = (++ ("-ghc" ++ cProjectVersion))