X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=libraries%2Fcabal-bin.hs;h=1ecba50a3d768061d103e98316cb98043d6bac50;hb=79b4f894215ae098c26cfe8fb7bc7f89008e8420;hp=ad93a37dcb05bb396f7198d451611a1b8a72b8de;hpb=a8d57b05e71ad859eb0024704b216fe1de9f362a;p=ghc-hetmet.git diff --git a/libraries/cabal-bin.hs b/libraries/cabal-bin.hs index ad93a37..1ecba50 100644 --- a/libraries/cabal-bin.hs +++ b/libraries/cabal-bin.hs @@ -1,5 +1,5 @@ -module Cabal (main) where +module Main (main) where import Data.Maybe import Distribution.PackageDescription @@ -19,9 +19,16 @@ setupProg = "./Setup" main :: IO () main = do + unprocessedArgs <- getArgs let verbosity = verbose + case unprocessedArgs of + ghc : packageConf : args -> + doit verbosity ghc packageConf args + _ -> die "Bad args" + +doit :: Verbosity -> FilePath -> FilePath -> [String] -> IO () +doit verbosity ghc packageConf args = do exists <- doesFileExist setupProg - args <- getArgs if exists then rawSystemExit verbosity setupProg args else do gpdFile <- defaultPackageDesc verbosity @@ -34,5 +41,11 @@ main = do _ | packageName pd == PackageName "Cabal" -> -- Cabal is special...*sigh* Simple.defaultMainArgs args - | otherwise -> die "Don't know what to do!" + | otherwise -> runSetup verbosity ghc packageConf args + +runSetup :: Verbosity -> FilePath -> FilePath -> [String] -> IO () +runSetup verbosity ghc packageConf args = do + rawSystemExit verbosity ghc ["-package-conf", packageConf, + "--make", "Setup", "-o", "Setup"] + rawSystemExit verbosity "./Setup" args