Major change in compilation of instance declarations (fix Trac #955, #2328)
[ghc-hetmet.git] / compiler / ghc.cabal
index 9d589f4..a08f518 100644 (file)
@@ -14,40 +14,60 @@ 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.
 
 Flag dynlibs
     Description: Dynamic library support
+    Default: False
+    Manual: True
 
 Flag editline
     Description: Use editline
+    Default: False
+    Manual: True
 
 Flag ghci
     Description: Build GHCi support.
+    Default: False
+    Manual: True
+
+Flag ncg
+    Description: Build the NCG.
+    Default: False
+    Manual: True
 
 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
@@ -63,6 +83,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
@@ -70,7 +93,7 @@ Library
     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
                 ForeignFunctionInterface, EmptyDataDecls,
                 TypeSynonymInstances, MultiParamTypeClasses,
-                FlexibleInstances, Rank2Types, PatternSignatures
+                FlexibleInstances, Rank2Types, ScopedTypeVariables
 
     Include-Dirs: . parser utils
 
@@ -101,7 +124,6 @@ Library
         hsSyn
         iface
         main
-        nativeGen
         parser
         prelude
         profiling
@@ -210,6 +232,7 @@ Library
         CoreUnfold
         CoreUtils
         ExternalCore
+        MkCore
         MkExternalCore
         PprCore
         PprExternalCore
@@ -269,26 +292,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
@@ -420,6 +426,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