LLVM: Add in new LLVM mangler for implementing TNTC on OSX
[ghc-hetmet.git] / compiler / ghc.cabal.in
index 156a2f8..925014e 100644 (file)
@@ -1,17 +1,24 @@
+-- WARNING: ghc.cabal is automatically generated from ghc.cabal.in by
+-- ./configure.  Make sure you are editing ghc.cabal.in, not ghc.cabal.
+
 Name: ghc
 Version: @ProjectVersion@
-Copyright: XXX
--- License: XXX
+License: BSD3
 License-File: ../LICENSE
-Author: XXX
+Author: The GHC Team
 Maintainer: glasgow-haskell-users@haskell.org
 Homepage: http://www.haskell.org/ghc/
-Synopsis: XXX
+Synopsis: The GHC API
 Description:
-        XXX
-Category: XXX
+    GHC's functionality can be useful for more things than just
+    compiling Haskell programs. Important use cases are programs
+    that analyse (and perhaps transform) Haskell code. Others
+    include loading Haskell code dynamically in a GHCi-like manner.
+    For this reason, a lot of GHC's functionality is made available
+    through this package.
+Category: Development
 Build-Type: Simple
-Cabal-Version: >= 1.2
+Cabal-Version: >= 1.2.3
 
 Flag base4
     Description: Choose the even newer, even smaller, split-up base package.
@@ -24,11 +31,6 @@ Flag dynlibs
     Default: False
     Manual: True
 
-Flag editline
-    Description: Use editline
-    Default: False
-    Manual: True
-
 Flag ghci
     Description: Build GHCi support.
     Default: False
@@ -41,6 +43,15 @@ Flag ncg
 
 Flag stage1
     Description: Is this stage 1?
+    Default: False
+
+Flag stage2
+    Description: Is this stage 2?
+    Default: False
+
+Flag stage3
+    Description: Is this stage 3?
+    Default: False
 
 Library
     Exposed: False
@@ -57,20 +68,16 @@ Library
                        process    >= 1   && < 1.1,
                        bytestring >= 0.9 && < 0.10,
                        old-time   >= 1   && < 1.1,
-                       containers >= 0.1 && < 0.2,
-                       array      >= 0.1 && < 0.2
+                       containers >= 0.1 && < 0.4,
+                       array      >= 0.1 && < 0.4
 
-    Build-Depends: filepath >= 1 && < 1.2
-    Build-Depends: haskell98, Cabal, hpc
+    Build-Depends: filepath >= 1 && < 1.3
+    Build-Depends: Cabal, hpc
     if os(windows)
         Build-Depends: Win32
     else
         Build-Depends: unix
 
-    if flag(editline)
-        Build-Depends: editline
-        CPP-Options: -DUSE_EDITLINE
-
     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
 
     if flag(ghci)
@@ -81,6 +88,8 @@ Library
     if !flag(ncg)
         CPP-Options: -DOMIT_NATIVE_CODEGEN
 
+    Build-Depends: bin-package-db
+
     -- 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
@@ -88,23 +97,25 @@ Library
     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
                 ForeignFunctionInterface, EmptyDataDecls,
                 TypeSynonymInstances, MultiParamTypeClasses,
-                FlexibleInstances, Rank2Types, ScopedTypeVariables
+                FlexibleInstances, Rank2Types, ScopedTypeVariables,
+                DeriveDataTypeable, RelaxedPolyRec
 
     Include-Dirs: . parser utils
 
     if flag(stage1)
         Include-Dirs: stage1
-       if impl(ghc < 6.9)
-           Extensions: PatternSignatures
     else
-        Include-Dirs: stage2plus
+        if flag(stage2)
+            Include-Dirs: stage2
+        else
+            if flag(stage3)
+                Include-Dirs: stage2
+
     Install-Includes: HsVersions.h, ghc_boot_platform.h
 
     c-sources:
         parser/cutils.c
         utils/md5.c
-        -- For GHC < 6.5:
-        cbits/unicode.c
 
     if flag(dynlibs)
         c-sources:
@@ -115,12 +126,13 @@ Library
         cmm
         codeGen
         coreSyn
-        cprAnalysis
         deSugar
         ghci
         hsSyn
         iface
+        llvmGen
         main
+        nativeGen
         parser
         prelude
         profiling
@@ -143,12 +155,22 @@ Library
         Id
         IdInfo
         Literal
+        Llvm
+        Llvm.AbsSyn
+        Llvm.PpLlvm
+        Llvm.Types
+        LlvmCodeGen
+        LlvmCodeGen.Base
+        LlvmCodeGen.CodeGen
+        LlvmCodeGen.Data
+        LlvmCodeGen.Ppr
+        LlvmCodeGen.Regs
+        LlvmMangler
         MkId
         Module
         Name
         NameEnv
         NameSet
-        NewDemand
         OccName
         RdrName
         SrcLoc
@@ -161,6 +183,7 @@ Library
         CLabel
         Cmm
         CmmBrokenBlock
+        CmmBuildInfoTables
         CmmCPS
         CmmCPSGen
         CmmCPSZ
@@ -179,15 +202,16 @@ Library
         CmmProcPoint
         CmmProcPointZ
         CmmSpillReload
+        CmmStackLayout
         CmmTx
         CmmUtils
         CmmZipUtil
         DFMonad
         Dataflow
-        MachOp
         MkZipCfg
         MkZipCfgCmm
         OptimizationFuel
+        PprBase
         PprC
         PprCmm
         PprCmmZ
@@ -204,6 +228,7 @@ Library
         CgClosure
         CgCon
         CgExpr
+        CgExtCode
         CgForeignCall
         CgHeapery
         CgHpc
@@ -217,9 +242,26 @@ Library
         CgTailCall
         CgTicky
         CgUtils
+        StgCmm
+        StgCmmBind
+        StgCmmClosure
+        StgCmmCon
+        StgCmmEnv
+        StgCmmExpr
+        StgCmmForeign
+        StgCmmGran
+        StgCmmHeap
+        StgCmmHpc
+        StgCmmLayout
+        StgCmmMonad
+        StgCmmPrim
+        StgCmmProf
+        StgCmmTicky
+        StgCmmUtils
         ClosureInfo
         CodeGen
         SMRep
+        CoreArity
         CoreFVs
         CoreLint
         CorePrep
@@ -233,7 +275,6 @@ Library
         MkExternalCore
         PprCore
         PprExternalCore
-        CprAnalyse
         Check
         Coverage
         Desugar
@@ -267,6 +308,7 @@ Library
         LoadIface
         MkIface
         TcIface
+        Annotations
         BreakArray
         CmdLineParser
         CodeOutput
@@ -286,18 +328,16 @@ Library
         InteractiveEval
         PackageConfig
         Packages
-        ParsePkgConf
         PprTyThing
         StaticFlags
         StaticFlagParser
         SysTools
         TidyPgm
         Ctype
-        HaddockLex
-        HaddockParse
         HaddockUtils
         LexCore
         Lexer
+        OptCoercion
         Parser
         ParserCore
         ParserCoreUtils
@@ -320,6 +360,7 @@ Library
         RnPat
         RnSource
         RnTypes
+        CoreMonad
         CSE
         FloatIn
         FloatOut
@@ -342,13 +383,11 @@ Library
         StgLint
         StgSyn
         DmdAnal
-        SaAbsInt
-        SaLib
-        StrictAnal
         WorkWrap
         WwLib
         FamInst
         Inst
+        TcAnnotations
         TcArrows
         TcBinds
         TcClassDcl
@@ -402,7 +441,6 @@ Library
         GraphPpr
         IOEnv
         Interval
-        LazyUniqFM
         ListSetOps
         Maybes
         MonadUtils
@@ -410,9 +448,9 @@ Library
         Outputable
         Panic
         Pretty
+        Serialized
         State
         StringBuffer
-        Unicode
         UniqFM
         UniqSet
         Util
@@ -423,29 +461,74 @@ Library
         VectUtils
         Vectorise
 
+    -- We only need to expose more modules as some of the ncg code is used
+    -- by the LLVM backend so its always included
     if flag(ncg)
-        hs-source-dirs:
-            nativeGen
-
         Exposed-Modules:
             AsmCodeGen
-            MachCodeGen
-            MachInstrs
-            MachRegs
+            TargetReg
             NCGMonad
-            PositionIndependentCode
-            PprMach
-            RegAllocColor
-            RegAllocInfo
-            RegAllocLinear
-            RegAllocStats
-            RegArchBase
-            RegArchX86
-            RegCoalesce
-            RegLiveness
-            RegSpill
-            RegSpillClean
-            RegSpillCost
+            Instruction
+            Size
+            Reg
+            RegClass
+            PIC
+            Platform
+            Alpha.Regs
+            Alpha.RegInfo
+            Alpha.Instr
+            Alpha.CodeGen
+            X86.Regs
+            X86.RegInfo
+            X86.Instr
+            X86.Cond
+            X86.Ppr
+            X86.CodeGen
+            PPC.Regs
+            PPC.RegInfo
+            PPC.Instr
+            PPC.Cond
+            PPC.Ppr
+            PPC.CodeGen
+            SPARC.Base
+            SPARC.Regs
+            SPARC.RegPlate
+            SPARC.Imm
+            SPARC.AddrMode
+            SPARC.Cond
+            SPARC.Instr
+            SPARC.Stack
+            SPARC.ShortcutJump
+            SPARC.Ppr
+            SPARC.CodeGen
+            SPARC.CodeGen.Amode
+            SPARC.CodeGen.Base
+            SPARC.CodeGen.CCall
+            SPARC.CodeGen.CondCode
+            SPARC.CodeGen.Gen32
+            SPARC.CodeGen.Gen64
+            SPARC.CodeGen.Sanity
+            SPARC.CodeGen.Expand
+            RegAlloc.Liveness
+            RegAlloc.Graph.Main
+            RegAlloc.Graph.Stats
+            RegAlloc.Graph.ArchBase
+            RegAlloc.Graph.ArchX86
+            RegAlloc.Graph.Coalesce
+            RegAlloc.Graph.Spill
+            RegAlloc.Graph.SpillClean
+            RegAlloc.Graph.SpillCost
+            RegAlloc.Graph.TrivColorable
+            RegAlloc.Linear.Main
+            RegAlloc.Linear.JoinToTargets
+            RegAlloc.Linear.State
+            RegAlloc.Linear.Stats
+            RegAlloc.Linear.FreeRegs
+            RegAlloc.Linear.StackMap
+            RegAlloc.Linear.Base
+            RegAlloc.Linear.X86.FreeRegs
+            RegAlloc.Linear.PPC.FreeRegs
+            RegAlloc.Linear.SPARC.FreeRegs
 
     if flag(ghci)
         Exposed-Modules:
@@ -459,9 +542,6 @@ Library
             ByteCodeItbls
             ByteCodeLink
             Debugger
-            GhciMonad
-            GhciTags
-            InteractiveUI
             LibFFI
             Linker
             ObjLink