X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=utils%2Fghc-cabal%2Fghc-cabal.hs;h=ca26ca4479bc373cc321a2935bd634337ac74b80;hb=fc641ab54224dad9f92033b3c4b8e010b9e2f403;hp=f724617c6a0d996430b0adc44b521ea11f8ac05d;hpb=6199781240ee68bc2250a91517b1cc3c7a514332;p=ghc-hetmet.git diff --git a/utils/ghc-cabal/ghc-cabal.hs b/utils/ghc-cabal/ghc-cabal.hs index f724617..ca26ca4 100644 --- a/utils/ghc-cabal/ghc-cabal.hs +++ b/utils/ghc-cabal/ghc-cabal.hs @@ -34,10 +34,10 @@ main = do args <- getArgs runHaddock distDir dir args' "check" : dir : [] -> doCheck dir - "install" : ghc : ghcpkg : topdir : directory : distDir + "install" : ghc : ghcpkg : strip : topdir : directory : distDir : myDestDir : myPrefix : myLibdir : myDocdir : relocatableBuild : args' -> - doInstall ghc ghcpkg topdir directory distDir + doInstall ghc ghcpkg strip topdir directory distDir myDestDir myPrefix myLibdir myDocdir relocatableBuild args' "configure" : args' -> case break (== "--") args' of @@ -139,10 +139,10 @@ runHaddock distdir directory args = f pd lbi us flags doInstall :: FilePath -> FilePath -> FilePath -> FilePath -> FilePath - -> FilePath -> FilePath -> FilePath -> FilePath -> String - -> [String] + -> FilePath -> FilePath -> FilePath -> FilePath -> FilePath + -> String -> [String] -> IO () -doInstall ghc ghcpkg topdir directory distDir +doInstall ghc ghcpkg strip topdir directory distDir myDestDir myPrefix myLibdir myDocdir relocatableBuildStr args = withCurrentDirectory directory $ do @@ -198,8 +198,8 @@ doInstall ghc ghcpkg topdir directory distDir libsubdir = toPathTemplate "$pkgid", docdir = toPathTemplate $ if relocatableBuild - then "$topdir/$pkg" - else (myDocdir "$pkg"), + then "$topdir/$pkgid" + else (myDocdir "$pkgid"), htmldir = toPathTemplate "$docdir" } progs = withPrograms lbi @@ -220,8 +220,16 @@ doInstall ghc ghcpkg topdir directory distDir else [], programLocation = UserSpecified ghcpkg } + stripProg = ConfiguredProgram { + programId = programName stripProgram, + programVersion = Nothing, + programArgs = [], + programLocation = UserSpecified strip + } progs' = updateProgram ghcProg - $ updateProgram ghcPkgProg progs + $ updateProgram ghcPkgProg + $ updateProgram stripProg + progs instInfos <- dump verbosity ghcPkgProg GlobalPackageDB let installedPkgs' = PackageIndex.fromList instInfos let mlc = libraryConfig lbi @@ -302,7 +310,10 @@ generate config_args distdir directory let ipid = InstalledPackageId (display (packageId pd) ++ "-inplace") let installedPkgInfo = inplaceInstalledPackageInfo cwd distdir pd lib lbi clbi - final_ipi = installedPkgInfo{ Installed.installedPackageId = ipid } + final_ipi = installedPkgInfo { + Installed.installedPackageId = ipid, + Installed.haddockHTMLs = ["../" ++ display (packageId pd)] + } content = Installed.showInstalledPackageInfo final_ipi ++ "\n" writeFileAtomic (distdir "inplace-pkg-config") content _ -> error "Inconsistent lib components; can't happen?" @@ -363,12 +374,12 @@ generate config_args distdir directory variablePrefix ++ "_CC_OPTS = " ++ unwords (ccOptions bi), variablePrefix ++ "_CPP_OPTS = " ++ unwords (cppOptions bi), variablePrefix ++ "_LD_OPTS = " ++ unwords (ldOptions bi), - variablePrefix ++ "_DEP_INCLUDE_DIRS = " ++ unwords (forDeps Installed.includeDirs), + variablePrefix ++ "_DEP_INCLUDE_DIRS = " ++ unwords (wrap $ forDeps Installed.includeDirs), variablePrefix ++ "_DEP_CC_OPTS = " ++ unwords (forDeps Installed.ccOptions), - variablePrefix ++ "_DEP_LIB_DIRS = " ++ unwords (forDeps Installed.libraryDirs), + variablePrefix ++ "_DEP_LIB_DIRS = " ++ unwords (wrap $ forDeps Installed.libraryDirs), variablePrefix ++ "_DEP_EXTRA_LIBS = " ++ unwords (forDeps Installed.extraLibraries), variablePrefix ++ "_DEP_LD_OPTS = " ++ unwords (forDeps Installed.ldOptions)] writeFile (distdir ++ "/package-data.mk") $ unlines xs where escape = foldr (\c xs -> if c == '#' then '\\':'#':xs else c:xs) [] - + wrap = map (\s -> "\'" ++ s ++ "\'")