change of representation for GenCmm, GenCmmTop, CmmProc
[ghc-hetmet.git] / libraries / installPackage.hs
index c091b0b..da04e35 100644 (file)
@@ -1,17 +1,17 @@
 
 import Distribution.PackageDescription
-import Distribution.Program
-import Distribution.Setup
 import Distribution.Simple
 import Distribution.Simple.Configure
 import Distribution.Simple.LocalBuildInfo
+import Distribution.Simple.Program
+import Distribution.Simple.Setup
 import Distribution.Verbosity
 import System.Environment
 
 main :: IO ()
 main = do args <- getArgs
           case args of
-              pref : ghcpkg : ghcpkgconf : args' ->
+              destdir : pref : ghcpkg : ghcpkgconf : args' ->
                   let verbosity = case args' of
                               [] -> normal
                               ['-':'v':v] ->
@@ -20,14 +20,15 @@ main = do args <- getArgs
                                               _ -> Just v
                                   in flagToVerbosity m
                               _ -> error ("Bad arguments: " ++ show args)
-                  in doit pref ghcpkg ghcpkgconf verbosity
+                  in doit destdir pref ghcpkg ghcpkgconf verbosity
               _ ->
                   error "Missing arguments"
 
-doit :: FilePath -> FilePath -> FilePath -> Verbosity -> IO ()
-doit pref ghcpkg ghcpkgconf verbosity =
+doit :: FilePath -> FilePath -> FilePath -> FilePath -> Verbosity -> IO ()
+doit destdir pref ghcpkg ghcpkgconf verbosity =
        do let userHooks = simpleUserHooks
-              copyFlags = (emptyCopyFlags NoCopyDest) {
+              copyto = if null destdir then NoCopyDest else CopyTo destdir
+              copyFlags = (emptyCopyFlags copyto) {
                               copyVerbose = verbosity
                           }
               registerFlags = emptyRegisterFlags {