fast make omits all GHC stages
[ghc-hetmet.git] / utils / ghc-cabal / ghc-cabal.hs
index 8511369..a1bdf66 100644 (file)
@@ -12,13 +12,11 @@ import Distribution.Simple.Program
 import Distribution.Simple.Utils (defaultPackageDesc, writeFileAtomic)
 import Distribution.Simple.Build (writeAutogenFiles)
 import Distribution.Simple.Register
-import Distribution.Simple.PackageIndex
 import Distribution.Text
 import Distribution.Verbosity
 import qualified Distribution.InstalledPackageInfo as Installed
 import qualified Distribution.Simple.PackageIndex as PackageIndex
 
-import Control.Monad
 import Data.Maybe
 import System.IO
 import System.Directory
@@ -126,7 +124,7 @@ doInstall ghcpkg ghcpkgconf directory distDir myDestDir myPrefix myLibdir myDocd
                     idts' = idts { prefix    = toPathTemplate myPrefix,
                                    libdir    = toPathTemplate myLibdir,
                                    libsubdir = toPathTemplate "$pkgid",
-                                   docdir    = toPathTemplate (myDocdir </> "$pkgid"),
+                                   docdir    = toPathTemplate (myDocdir </> "$pkg"),
                                    htmldir   = toPathTemplate "$docdir" }
                     progs = withPrograms lbi
                     prog = ConfiguredProgram {
@@ -158,8 +156,16 @@ generate config_args distdir directory
       withArgs (["configure", "--distdir", distdir] ++ config_args)
           (case buildType (flattenPackageDescription gpd) of
               Just Configure -> defaultMainWithHooks autoconfUserHooks
-              _other         -> defaultMain)
-              -- not quite right, but good enough for us
+              -- time has a "Custom" Setup.hs, but it's actually Configure
+              -- plus a "./Setup test" hook. However, Cabal is also
+              -- "Custom", but doesn't have a configure script.
+              Just Custom ->
+                  do configureExists <- doesFileExist "configure"
+                     if configureExists
+                         then defaultMainWithHooks autoconfUserHooks
+                         else defaultMain
+              -- not quite right, but good enough for us:
+              _ -> defaultMain)
 
       lbi <- getPersistBuildConfig distdir
       let pd0 = localPkgDescr lbi