Get building GHC itself with Cabal more-or-less working
[ghc-hetmet.git] / compiler / ghc.cabal
diff --git a/compiler/ghc.cabal b/compiler/ghc.cabal
new file mode 100644 (file)
index 0000000..1d3df54
--- /dev/null
@@ -0,0 +1,437 @@
+Name: ghc
+-- XXX Version number!
+Version: 6.9
+Copyright: XXX
+-- License: XXX
+License-File: XXX
+Author: XXX
+Maintainer: glasgow-haskell-users@haskell.org
+Homepage: http://www.haskell.org/ghc/
+Synopsis: XXX
+Description:
+        XXX
+Category: XXX
+Build-Type: Simple
+Cabal-Version: >= 1.2
+
+Flag base3
+    Description: Choose the new smaller, split-up base package.
+
+Flag dynlibs
+    Description: Dynamic library support
+
+Flag editline
+    Description: Use editline
+
+Flag ghci
+    Description: Build GHCi support.
+
+Flag stage1
+    Description: Is this stage 1?
+
+Flag windows
+    Description: On a Windows machine
+
+Library
+    if flag(base3)
+        Build-Depends: base       >= 3   && < 4,
+                       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)
+        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)
+        Build-Depends: template-haskell
+        CPP-Options: -DGHCI
+        Include-Dirs: ../libffi/build/include
+
+    Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
+                ForeignFunctionInterface, EmptyDataDecls,
+                TypeSynonymInstances, MultiParamTypeClasses,
+                FlexibleInstances, Rank2Types, PatternSignatures
+
+    Include-Dirs: . parser utils
+
+    -- XXX Change these directory names: The stage2 files are what
+    --     we want for all stages >= 1
+    if flag(stage1)
+        Include-Dirs: stage1
+    else
+        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:
+            ghci/keepCAFsForGHCi.c
+
+    hs-source-dirs:
+        basicTypes
+        cmm
+        codeGen
+        coreSyn
+        cprAnalysis
+        deSugar
+        ghci
+        hsSyn
+        iface
+        main
+        nativeGen
+        parser
+        prelude
+        profiling
+        rename
+        simplCore
+        simplStg
+        specialise
+        stgSyn
+        stranal
+        typecheck
+        types
+        utils
+        vectorise
+
+    Exposed-Modules:
+        BasicTypes
+        DataCon
+        Demand
+        Id
+        IdInfo
+        Literal
+        MkId
+        Module
+        Name
+        NameEnv
+        NameSet
+        NewDemand
+        OccName
+        RdrName
+        SrcLoc
+        UniqSupply
+        Unique
+        Var
+        VarEnv
+        VarSet
+        BlockId
+        CLabel
+        Cmm
+        CmmBrokenBlock
+        CmmCPS
+        CmmCPSGen
+        CmmCPSZ
+        CmmCallConv
+        CmmCommonBlockElimZ
+        CmmContFlowOpt
+        CmmCvt
+        CmmExpr
+        CmmInfo
+        CmmLex
+        CmmLint
+        CmmLive
+        CmmLiveZ
+        CmmOpt
+        CmmParse
+        CmmProcPoint
+        CmmProcPointZ
+        CmmSpillReload
+        CmmTx
+        CmmUtils
+        CmmZipUtil
+        DFMonad
+        Dataflow
+        MachOp
+        MkZipCfg
+        MkZipCfgCmm
+        OptimizationFuel
+        PprC
+        PprCmm
+        PprCmmZ
+        StackColor
+        StackPlacements
+        ZipCfg
+        ZipCfgCmmRep
+        ZipCfgExtras
+        ZipDataflow
+        Bitmap
+        CgBindery
+        CgCallConv
+        CgCase
+        CgClosure
+        CgCon
+        CgExpr
+        CgForeignCall
+        CgHeapery
+        CgHpc
+        CgInfoTbls
+        CgLetNoEscape
+        CgMonad
+        CgParallel
+        CgPrimOp
+        CgProf
+        CgStackery
+        CgTailCall
+        CgTicky
+        CgUtils
+        ClosureInfo
+        CodeGen
+        SMRep
+        CoreFVs
+        CoreLint
+        CorePrep
+        CoreSubst
+        CoreSyn
+        CoreTidy
+        CoreUnfold
+        CoreUtils
+        ExternalCore
+        MkExternalCore
+        PprCore
+        PprExternalCore
+        CprAnalyse
+        Check
+        Coverage
+        Desugar
+        DsArrows
+        DsBinds
+        DsCCall
+        DsExpr
+        DsForeign
+        DsGRHSs
+        DsListComp
+        DsMonad
+        DsUtils
+        Match
+        MatchCon
+        MatchLit
+        HsBinds
+        HsDecls
+        HsDoc
+        HsExpr
+        HsImpExp
+        HsLit
+        HsPat
+        HsSyn
+        HsTypes
+        HsUtils
+        BinIface
+        BuildTyCl
+        IfaceEnv
+        IfaceSyn
+        IfaceType
+        LoadIface
+        MkIface
+        TcIface
+        BreakArray
+        CmdLineParser
+        CodeOutput
+        Config
+        Constants
+        DriverMkDepend
+        DriverPhases
+        DriverPipeline
+        DynFlags
+        ErrUtils
+        Finder
+        GHC
+        HeaderInfo
+        HscMain
+        HscStats
+        HscTypes
+        InteractiveEval
+        PackageConfig
+        Packages
+        ParsePkgConf
+        PprTyThing
+        StaticFlags
+        SysTools
+        TidyPgm
+        AsmCodeGen
+        MachCodeGen
+        MachInstrs
+        MachRegs
+        NCGMonad
+        PositionIndependentCode
+        PprMach
+        RegAllocColor
+        RegAllocInfo
+        RegAllocLinear
+        RegAllocStats
+        RegArchBase
+        RegArchX86
+        RegCoalesce
+        RegLiveness
+        RegSpill
+        RegSpillClean
+        RegSpillCost
+        Ctype
+        HaddockLex
+        HaddockParse
+        HaddockUtils
+        LexCore
+        Lexer
+        Parser
+        ParserCore
+        ParserCoreUtils
+        RdrHsSyn
+        ForeignCall
+        PrelInfo
+        PrelNames
+        PrelRules
+        PrimOp
+        TysPrim
+        TysWiredIn
+        CostCentre
+        SCCfinal
+        RnBinds
+        RnEnv
+        RnExpr
+        RnHsDoc
+        RnHsSyn
+        RnNames
+        RnPat
+        RnSource
+        RnTypes
+        CSE
+        FloatIn
+        FloatOut
+        LiberateCase
+        OccurAnal
+        SAT
+        SetLevels
+        SimplCore
+        SimplEnv
+        SimplMonad
+        SimplUtils
+        Simplify
+        SRT
+        SimplStg
+        StgStats
+        Rules
+        SpecConstr
+        Specialise
+        CoreToStg
+        StgLint
+        StgSyn
+        DmdAnal
+        SaAbsInt
+        SaLib
+        StrictAnal
+        WorkWrap
+        WwLib
+        FamInst
+        Inst
+        TcArrows
+        TcBinds
+        TcClassDcl
+        TcDefaults
+        TcDeriv
+        TcEnv
+        TcExpr
+        TcForeign
+        TcGenDeriv
+        TcHsSyn
+        TcHsType
+        TcInstDcls
+        TcMType
+        TcMatches
+        TcPat
+        TcRnDriver
+        TcRnMonad
+        TcRnTypes
+        TcRules
+        TcSimplify
+        TcTyClsDecls
+        TcTyDecls
+        TcTyFuns
+        TcType
+        TcUnify
+        Class
+        Coercion
+        FamInstEnv
+        FunDeps
+        Generics
+        InstEnv
+        TyCon
+        Type
+        TypeRep
+        Unify
+        Bag
+        Binary
+        BufWrite
+        Digraph
+        Encoding
+        FastBool
+        FastFunctions
+        FastMutInt
+        FastString
+        FastTypes
+        Fingerprint
+        FiniteMap
+        GraphBase
+        GraphColor
+        GraphOps
+        GraphPpr
+        IOEnv
+        Interval
+        LazyUniqFM
+        ListSetOps
+        Maybes
+        MonadUtils
+        OrdList
+        Outputable
+        Panic
+        Pretty
+        State
+        StringBuffer
+        Unicode
+        UniqFM
+        UniqSet
+        Util
+        VectBuiltIn
+        VectCore
+        VectMonad
+        VectType
+        VectUtils
+        Vectorise
+
+    if flag(ghci)
+        Exposed-Modules:
+            DsMeta
+            TcSplice
+            Convert
+            ByteCodeAsm
+            ByteCodeFFI
+            ByteCodeGen
+            ByteCodeInstr
+            ByteCodeItbls
+            ByteCodeLink
+            Debugger
+            GhciMonad
+            GhciTags
+            InteractiveUI
+            LibFFI
+            Linker
+            ObjLink
+            RtClosureInspect
+