fix a space leak
[ghc-hetmet.git] / compiler / ghc.cabal
index 0798086..6b54eeb 100644 (file)
@@ -14,6 +14,9 @@ Category: XXX
 Build-Type: Simple
 Cabal-Version: >= 1.2
 
+Flag base4
+    Description: Choose the even newer, even smaller, split-up base package.
+
 Flag base3
     Description: Choose the new smaller, split-up base package.
 
@@ -22,30 +25,43 @@ Flag dynlibs
 
 Flag editline
     Description: Use editline
+    Default: False
+    Manual: True
 
 Flag ghci
     Description: Build GHCi support.
 
+Flag ncg
+    Description: Build the NCG.
+
 Flag stage1
     Description: Is this stage 1?
 
-Flag windows
-    Description: On a Windows machine
-
 Library
+    Exposed: False
+
+    if flag(base4)
+        Build-Depends: base       >= 4   && < 5
     if flag(base3)
-        Build-Depends: base       >= 3   && < 4,
-                       directory  >= 1   && < 1.1,
+        Build-Depends: base       >= 3   && < 4
+    if !flag(base3) && !flag(base4)
+        Build-Depends: base       < 3
+
+    if flag(base4)
+        Build-Depends: concurrent >= 0.1 && < 0.2,
+                       st         >= 0.1 && < 0.2
+
+    if flag(base3) || flag(base4)
+        Build-Depends: directory  >= 1   && < 1.1,
                        process    >= 1   && < 1.1,
                        bytestring >= 0.9 && < 0.10,
                        old-time   >= 1   && < 1.1,
                        containers >= 0.1 && < 0.2,
                        array      >= 0.1 && < 0.2
-    else
-        Build-Depends: base < 3
+
     Build-Depends: filepath >= 1 && < 1.2
     Build-Depends: haskell98, Cabal, hpc
-    if flag(windows)
+    if os(windows)
         Build-Depends: Win32
     else
         Build-Depends: unix
@@ -61,6 +77,9 @@ Library
         CPP-Options: -DGHCI
         Include-Dirs: ../libffi/build/include
 
+    if !flag(ncg)
+        CPP-Options: -DOMIT_NATIVE_CODEGEN
+
     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
     -- able to find WCsubst.h
     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
@@ -68,7 +87,7 @@ Library
     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
                 ForeignFunctionInterface, EmptyDataDecls,
                 TypeSynonymInstances, MultiParamTypeClasses,
-                FlexibleInstances, Rank2Types, PatternSignatures
+                FlexibleInstances, Rank2Types, ScopedTypeVariables
 
     Include-Dirs: . parser utils
 
@@ -99,7 +118,6 @@ Library
         hsSyn
         iface
         main
-        nativeGen
         parser
         prelude
         profiling
@@ -118,6 +136,7 @@ Library
         BasicTypes
         DataCon
         Demand
+        Exception
         Id
         IdInfo
         Literal
@@ -207,6 +226,7 @@ Library
         CoreUnfold
         CoreUtils
         ExternalCore
+        MkCore
         MkExternalCore
         PprCore
         PprExternalCore
@@ -266,26 +286,9 @@ Library
         ParsePkgConf
         PprTyThing
         StaticFlags
+        StaticFlagParser
         SysTools
         TidyPgm
-        AsmCodeGen
-        MachCodeGen
-        MachInstrs
-        MachRegs
-        NCGMonad
-        PositionIndependentCode
-        PprMach
-        RegAllocColor
-        RegAllocInfo
-        RegAllocLinear
-        RegAllocStats
-        RegArchBase
-        RegArchX86
-        RegCoalesce
-        RegLiveness
-        RegSpill
-        RegSpillClean
-        RegSpillCost
         Ctype
         HaddockLex
         HaddockParse
@@ -417,6 +420,30 @@ Library
         VectUtils
         Vectorise
 
+    if flag(ncg)
+        hs-source-dirs:
+            nativeGen
+
+        Exposed-Modules:
+            AsmCodeGen
+            MachCodeGen
+            MachInstrs
+            MachRegs
+            NCGMonad
+            PositionIndependentCode
+            PprMach
+            RegAllocColor
+            RegAllocInfo
+            RegAllocLinear
+            RegAllocStats
+            RegArchBase
+            RegArchX86
+            RegCoalesce
+            RegLiveness
+            RegSpill
+            RegSpillClean
+            RegSpillCost
+
     if flag(ghci)
         Exposed-Modules:
             DsMeta