Don't use stdcall on Win64: It isn't supported; ccall is used instead
[ghc.git] / compiler / ghc.cabal.in
1 -- WARNING: ghc.cabal is automatically generated from ghc.cabal.in by
2 -- ./configure.  Make sure you are editing ghc.cabal.in, not ghc.cabal.
3
4 Name: ghc
5 Version: @ProjectVersion@
6 License: BSD3
7 License-File: ../LICENSE
8 Author: The GHC Team
9 Maintainer: glasgow-haskell-users@haskell.org
10 Homepage: http://www.haskell.org/ghc/
11 Synopsis: The GHC API
12 Description:
13     GHC's functionality can be useful for more things than just
14     compiling Haskell programs. Important use cases are programs
15     that analyse (and perhaps transform) Haskell code. Others
16     include loading Haskell code dynamically in a GHCi-like manner.
17     For this reason, a lot of GHC's functionality is made available
18     through this package.
19 Category: Development
20 Build-Type: Simple
21 Cabal-Version: >= 1.2.3
22
23 Flag dynlibs
24     Description: Dynamic library support
25     Default: False
26     Manual: True
27
28 Flag ghci
29     Description: Build GHCi support.
30     Default: False
31     Manual: True
32
33 Flag stage1
34     Description: Is this stage 1?
35     Default: False
36     Manual: True
37
38 Flag stage2
39     Description: Is this stage 2?
40     Default: False
41     Manual: True
42
43 Flag stage3
44     Description: Is this stage 3?
45     Default: False
46     Manual: True
47
48 Library
49     Exposed: False
50
51     Build-Depends: base       >= 4   && < 5,
52                    directory  >= 1   && < 1.2,
53                    process    >= 1   && < 1.2,
54                    bytestring >= 0.9 && < 0.11,
55                    time                 < 1.5,
56                    containers >= 0.1 && < 0.6,
57                    array      >= 0.1 && < 0.5,
58                    filepath   >= 1   && < 1.4,
59                    Cabal,
60                    hpc
61
62     if flag(stage1) && impl(ghc < 7.5)
63         Build-Depends: old-time   >= 1   && < 1.2
64
65     if os(windows)
66         Build-Depends: Win32
67     else
68         Build-Depends: unix
69
70     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
71
72     if flag(ghci)
73         Build-Depends: template-haskell
74         CPP-Options: -DGHCI
75         Include-Dirs: ../rts/dist/build
76
77     Build-Depends: bin-package-db
78     Build-Depends: hoopl
79
80     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
81                 ForeignFunctionInterface, EmptyDataDecls,
82                 TypeSynonymInstances, MultiParamTypeClasses,
83                 FlexibleInstances, RankNTypes, ScopedTypeVariables,
84                 DeriveDataTypeable, BangPatterns
85     if impl(ghc >= 7.1)
86         Extensions: NondecreasingIndentation
87
88     Include-Dirs: . parser utils
89
90     if flag(stage1)
91         Include-Dirs: stage1
92     else
93         if flag(stage2)
94             Include-Dirs: stage2
95         else
96             if flag(stage3)
97                 Include-Dirs: stage2
98
99     Install-Includes: HsVersions.h, ghc_boot_platform.h
100
101     c-sources:
102         parser/cutils.c
103         utils/md5.c
104
105     if flag(dynlibs)
106         c-sources:
107             ghci/keepCAFsForGHCi.c
108
109     hs-source-dirs:
110         basicTypes
111         cmm
112         codeGen
113         coreSyn
114         deSugar
115         ghci
116         hsSyn
117         iface
118         llvmGen
119         main
120         nativeGen
121         parser
122         prelude
123         profiling
124         rename
125         simplCore
126         simplStg
127         specialise
128         stgSyn
129         stranal
130         typecheck
131         types
132         utils
133         vectorise
134
135     Exposed-Modules:
136         Avail
137         BasicTypes
138         DataCon
139         Demand
140         Exception
141         GhcMonad
142         Id
143         IdInfo
144         Literal
145         Llvm
146         Llvm.AbsSyn
147         Llvm.PpLlvm
148         Llvm.Types
149         LlvmCodeGen
150         LlvmCodeGen.Base
151         LlvmCodeGen.CodeGen
152         LlvmCodeGen.Data
153         LlvmCodeGen.Ppr
154         LlvmCodeGen.Regs
155         LlvmMangler
156         MkId
157         Module
158         Name
159         NameEnv
160         NameSet
161         OccName
162         RdrName
163         SrcLoc
164         UniqSupply
165         Unique
166         Var
167         VarEnv
168         VarSet
169         BlockId
170         CLabel
171         Cmm
172         CmmBuildInfoTables
173         CmmPipeline
174         CmmCallConv
175         CmmCommonBlockElim
176         CmmContFlowOpt
177         CmmCvt
178         CmmExpr
179         CmmInfo
180         CmmLex
181         CmmLint
182         CmmLive
183         CmmMachOp
184         CmmNode
185         CmmOpt
186         CmmParse
187         CmmProcPoint
188         CmmSpillReload
189         CmmRewriteAssignments
190         CmmStackLayout
191         CmmType
192         CmmUtils
193         MkGraph
194         OldCmm
195         OldCmmUtils
196         OldPprCmm
197         OptimizationFuel
198         PprBase
199         PprC
200         PprCmm
201         PprCmmDecl
202         PprCmmExpr
203         Bitmap
204         CgBindery
205         CgCallConv
206         CgCase
207         CgClosure
208         CgCon
209         CgExpr
210         CgExtCode
211         CgForeignCall
212         CgHeapery
213         CgHpc
214         CgInfoTbls
215         CgLetNoEscape
216         CgMonad
217         CgParallel
218         CgPrimOp
219         CgProf
220         CgStackery
221         CgTailCall
222         CgTicky
223         CgUtils
224         StgCmm
225         StgCmmBind
226         StgCmmClosure
227         StgCmmCon
228         StgCmmEnv
229         StgCmmExpr
230         StgCmmForeign
231         StgCmmGran
232         StgCmmHeap
233         StgCmmHpc
234         StgCmmLayout
235         StgCmmMonad
236         StgCmmPrim
237         StgCmmProf
238         StgCmmTicky
239         StgCmmUtils
240         ClosureInfo
241         CodeGen
242         SMRep
243         CoreArity
244         CoreFVs
245         CoreLint
246         CorePrep
247         CoreSubst
248         CoreSyn
249         TrieMap
250         CoreTidy
251         CoreUnfold
252         CoreUtils
253         ExternalCore
254         MkCore
255         MkExternalCore
256         PprCore
257         PprExternalCore
258         Check
259         Coverage
260         Desugar
261         DsArrows
262         DsBinds
263         DsCCall
264         DsExpr
265         DsForeign
266         DsGRHSs
267         DsListComp
268         DsMonad
269         DsUtils
270         Match
271         MatchCon
272         MatchLit
273         HsBinds
274         HsDecls
275         HsDoc
276         HsExpr
277         HsImpExp
278         HsLit
279         HsPat
280         HsSyn
281         HsTypes
282         HsUtils
283         BinIface
284         BuildTyCl
285         IfaceEnv
286         IfaceSyn
287         IfaceType
288         LoadIface
289         MkIface
290         TcIface
291         FlagChecker
292         Annotations
293         BreakArray
294         CmdLineParser
295         CodeOutput
296         Config
297         Constants
298         DriverMkDepend
299         DriverPhases
300         DriverPipeline
301         DynFlags
302         ErrUtils
303         Finder
304         GHC
305         GhcMake
306         GhcPlugins
307         DynamicLoading
308         HeaderInfo
309         HscMain
310         HscStats
311         HscTypes
312         InteractiveEval
313         PackageConfig
314         Packages
315         PprTyThing
316         StaticFlags
317         StaticFlagParser
318         SysTools
319         TidyPgm
320         Ctype
321         HaddockUtils
322         LexCore
323         Lexer
324         OptCoercion
325         Parser
326         ParserCore
327         ParserCoreUtils
328         RdrHsSyn
329         ForeignCall
330         PrelInfo
331         PrelNames
332         PrelRules
333         PrimOp
334         TysPrim
335         TysWiredIn
336         CostCentre
337         ProfInit
338         SCCfinal
339         RnBinds
340         RnEnv
341         RnExpr
342         RnHsDoc
343         RnNames
344         RnPat
345         RnSource
346         RnTypes
347         CoreMonad
348         CSE
349         FloatIn
350         FloatOut
351         LiberateCase
352         OccurAnal
353         SAT
354         SetLevels
355         SimplCore
356         SimplEnv
357         SimplMonad
358         SimplUtils
359         Simplify
360         SRT
361         SimplStg
362         StgStats
363         Rules
364         SpecConstr
365         Specialise
366         CoreToStg
367         StgLint
368         StgSyn
369         DmdAnal
370         WorkWrap
371         WwLib
372         FamInst
373         Inst
374         TcAnnotations
375         TcArrows
376         TcBinds
377         TcClassDcl
378         TcDefaults
379         TcDeriv
380         TcEnv
381         TcExpr
382         TcForeign
383         TcGenDeriv
384         TcGenGenerics
385         TcHsSyn
386         TcHsType
387         TcInstDcls
388         TcMType
389         TcMatches
390         TcPat
391         TcRnDriver
392         TcRnMonad
393         TcRnTypes
394         TcRules
395         TcSimplify
396         TcErrors
397         TcTyClsDecls
398         TcTyDecls
399         TcType
400         TcEvidence
401         TcUnify
402         TcInteract
403         TcCanonical
404         TcSMonad
405         Class
406         IParam
407         Coercion
408         FamInstEnv
409         FunDeps
410         InstEnv
411         TyCon
412         Kind
413         Type
414         TypeRep
415         Unify
416         Bag
417         Binary
418         BufWrite
419         Digraph
420         Encoding
421         FastBool
422         FastFunctions
423         FastMutInt
424         FastString
425         FastTypes
426         Fingerprint
427         FiniteMap
428         GraphBase
429         GraphColor
430         GraphOps
431         GraphPpr
432         IOEnv
433         ListSetOps
434         Maybes
435         MonadUtils
436         OrdList
437         Outputable
438         Pair
439         Panic
440         Pretty
441         Serialized
442         State
443         StringBuffer
444         UniqFM
445         UniqSet
446         Util
447         Vectorise.Builtins.Base
448         Vectorise.Builtins.Initialise
449         Vectorise.Builtins
450         Vectorise.Monad.Base
451         Vectorise.Monad.Naming
452         Vectorise.Monad.Local
453         Vectorise.Monad.Global
454         Vectorise.Monad.InstEnv
455         Vectorise.Monad
456         Vectorise.Utils.Base
457         Vectorise.Utils.Closure
458         Vectorise.Utils.Hoisting
459         Vectorise.Utils.PADict
460         Vectorise.Utils.Poly
461         Vectorise.Utils
462         Vectorise.Generic.Description
463         Vectorise.Generic.PAMethods
464         Vectorise.Generic.PADict
465         Vectorise.Generic.PData
466         Vectorise.Type.Env
467         Vectorise.Type.Type
468         Vectorise.Type.TyConDecl
469         Vectorise.Type.Classify
470         Vectorise.Convert
471         Vectorise.Vect
472         Vectorise.Var
473         Vectorise.Env
474         Vectorise.Exp
475         Vectorise
476
477     Exposed-Modules:
478             AsmCodeGen
479             TargetReg
480             NCGMonad
481             Instruction
482             Size
483             Reg
484             RegClass
485             PIC
486             Platform
487             CPrim
488             X86.Regs
489             X86.RegInfo
490             X86.Instr
491             X86.Cond
492             X86.Ppr
493             X86.CodeGen
494             PPC.Regs
495             PPC.RegInfo
496             PPC.Instr
497             PPC.Cond
498             PPC.Ppr
499             PPC.CodeGen
500             SPARC.Base
501             SPARC.Regs
502             SPARC.RegPlate
503             SPARC.Imm
504             SPARC.AddrMode
505             SPARC.Cond
506             SPARC.Instr
507             SPARC.Stack
508             SPARC.ShortcutJump
509             SPARC.Ppr
510             SPARC.CodeGen
511             SPARC.CodeGen.Amode
512             SPARC.CodeGen.Base
513             SPARC.CodeGen.CondCode
514             SPARC.CodeGen.Gen32
515             SPARC.CodeGen.Gen64
516             SPARC.CodeGen.Sanity
517             SPARC.CodeGen.Expand
518             RegAlloc.Liveness
519             RegAlloc.Graph.Main
520             RegAlloc.Graph.Stats
521             RegAlloc.Graph.ArchBase
522             RegAlloc.Graph.ArchX86
523             RegAlloc.Graph.Coalesce
524             RegAlloc.Graph.Spill
525             RegAlloc.Graph.SpillClean
526             RegAlloc.Graph.SpillCost
527             RegAlloc.Graph.TrivColorable
528             RegAlloc.Linear.Main
529             RegAlloc.Linear.JoinToTargets
530             RegAlloc.Linear.State
531             RegAlloc.Linear.Stats
532             RegAlloc.Linear.FreeRegs
533             RegAlloc.Linear.StackMap
534             RegAlloc.Linear.Base
535             RegAlloc.Linear.X86.FreeRegs
536             RegAlloc.Linear.PPC.FreeRegs
537             RegAlloc.Linear.SPARC.FreeRegs
538
539     if flag(ghci)
540         Exposed-Modules:
541             DsMeta
542             TcSplice
543             Convert
544             ByteCodeAsm
545             ByteCodeGen
546             ByteCodeInstr
547             ByteCodeItbls
548             ByteCodeLink
549             Debugger
550             LibFFI
551             Linker
552             ObjLink
553             RtClosureInspect
554             DebuggerUtils