Use mutator threads to do GC, instead of having a separate pool of GC threads
[ghc-hetmet.git] / compiler / ghc.cabal.in
1 Name: ghc
2 Version: @ProjectVersion@
3 License: BSD3
4 License-File: ../LICENSE
5 Author: The GHC Team
6 Maintainer: glasgow-haskell-users@haskell.org
7 Homepage: http://www.haskell.org/ghc/
8 Synopsis: The GHC API
9 Description:
10     GHC's functionality can be useful for more things than just
11     compiling Haskell programs. Important use cases are programs
12     that analyse (and perhaps transform) Haskell code. Others
13     include loading Haskell code dynamically in a GHCi-like manner.
14     For this reason, a lot of GHC's functionality is made available
15     through this package.
16 Category: Development
17 Build-Type: Simple
18 Cabal-Version: >= 1.2
19
20 Flag base4
21     Description: Choose the even newer, even smaller, split-up base package.
22
23 Flag base3
24     Description: Choose the new smaller, split-up base package.
25
26 Flag dynlibs
27     Description: Dynamic library support
28     Default: False
29     Manual: True
30
31 Flag editline
32     Description: Use editline
33     Default: False
34     Manual: True
35
36 Flag ghci
37     Description: Build GHCi support.
38     Default: False
39     Manual: True
40
41 Flag ncg
42     Description: Build the NCG.
43     Default: False
44     Manual: True
45
46 Flag stage1
47     Description: Is this stage 1?
48
49 Library
50     Exposed: False
51
52     if flag(base4)
53         Build-Depends: base       >= 4   && < 5
54     if flag(base3)
55         Build-Depends: base       >= 3   && < 4
56     if !flag(base3) && !flag(base4)
57         Build-Depends: base       < 3
58
59     if flag(base3) || flag(base4)
60         Build-Depends: directory  >= 1   && < 1.1,
61                        process    >= 1   && < 1.1,
62                        bytestring >= 0.9 && < 0.10,
63                        old-time   >= 1   && < 1.1,
64                        containers >= 0.1 && < 0.3,
65                        array      >= 0.1 && < 0.3
66
67     Build-Depends: filepath >= 1 && < 1.2
68     Build-Depends: haskell98, Cabal, hpc
69     if os(windows)
70         Build-Depends: Win32
71     else
72         Build-Depends: unix
73
74     if flag(editline)
75         Build-Depends: editline
76         CPP-Options: -DUSE_EDITLINE
77
78     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
79
80     if flag(ghci)
81         Build-Depends: template-haskell
82         CPP-Options: -DGHCI
83         Include-Dirs: ../libffi/build/include
84
85     if !flag(ncg)
86         CPP-Options: -DOMIT_NATIVE_CODEGEN
87
88     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
89     -- able to find WCsubst.h
90     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
91
92     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
93                 ForeignFunctionInterface, EmptyDataDecls,
94                 TypeSynonymInstances, MultiParamTypeClasses,
95                 FlexibleInstances, Rank2Types, ScopedTypeVariables,
96                 DeriveDataTypeable
97
98     Include-Dirs: . parser utils
99
100     if flag(stage1)
101         Include-Dirs: stage1
102         if impl(ghc < 6.9)
103             Build-Depends: extensible-exceptions
104             Extensions: PatternSignatures
105     else
106         Include-Dirs: stage2plus
107     Install-Includes: HsVersions.h, ghc_boot_platform.h
108
109     c-sources:
110         parser/cutils.c
111         utils/md5.c
112
113     if flag(dynlibs)
114         c-sources:
115             ghci/keepCAFsForGHCi.c
116
117     hs-source-dirs:
118         basicTypes
119         cmm
120         codeGen
121         coreSyn
122         cprAnalysis
123         deSugar
124         ghci
125         hsSyn
126         iface
127         main
128         parser
129         prelude
130         profiling
131         rename
132         simplCore
133         simplStg
134         specialise
135         stgSyn
136         stranal
137         typecheck
138         types
139         utils
140         vectorise
141
142     Exposed-Modules:
143         BasicTypes
144         DataCon
145         Demand
146         Exception
147         Id
148         IdInfo
149         Literal
150         MkId
151         Module
152         Name
153         NameEnv
154         NameSet
155         NewDemand
156         OccName
157         RdrName
158         SrcLoc
159         UniqSupply
160         Unique
161         Var
162         VarEnv
163         VarSet
164         BlockId
165         CLabel
166         Cmm
167         CmmBrokenBlock
168         CmmCPS
169         CmmCPSGen
170         CmmCPSZ
171         CmmCallConv
172         CmmCommonBlockElimZ
173         CmmContFlowOpt
174         CmmCvt
175         CmmExpr
176         CmmInfo
177         CmmLex
178         CmmLint
179         CmmLive
180         CmmLiveZ
181         CmmOpt
182         CmmParse
183         CmmProcPoint
184         CmmProcPointZ
185         CmmSpillReload
186         CmmTx
187         CmmUtils
188         CmmZipUtil
189         DFMonad
190         Dataflow
191         MachOp
192         MkZipCfg
193         MkZipCfgCmm
194         OptimizationFuel
195         PprC
196         PprCmm
197         PprCmmZ
198         StackColor
199         StackPlacements
200         ZipCfg
201         ZipCfgCmmRep
202         ZipCfgExtras
203         ZipDataflow
204         Bitmap
205         CgBindery
206         CgCallConv
207         CgCase
208         CgClosure
209         CgCon
210         CgExpr
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         ClosureInfo
225         CodeGen
226         SMRep
227         CoreFVs
228         CoreLint
229         CorePrep
230         CoreSubst
231         CoreSyn
232         CoreTidy
233         CoreUnfold
234         CoreUtils
235         ExternalCore
236         MkCore
237         MkExternalCore
238         PprCore
239         PprExternalCore
240         CprAnalyse
241         Check
242         Coverage
243         Desugar
244         DsArrows
245         DsBinds
246         DsCCall
247         DsExpr
248         DsForeign
249         DsGRHSs
250         DsListComp
251         DsMonad
252         DsUtils
253         Match
254         MatchCon
255         MatchLit
256         HsBinds
257         HsDecls
258         HsDoc
259         HsExpr
260         HsImpExp
261         HsLit
262         HsPat
263         HsSyn
264         HsTypes
265         HsUtils
266         BinIface
267         BuildTyCl
268         IfaceEnv
269         IfaceSyn
270         IfaceType
271         LoadIface
272         MkIface
273         TcIface
274         Annotations
275         BreakArray
276         CmdLineParser
277         CodeOutput
278         Config
279         Constants
280         DriverMkDepend
281         DriverPhases
282         DriverPipeline
283         DynFlags
284         ErrUtils
285         Finder
286         GHC
287         HeaderInfo
288         HscMain
289         HscStats
290         HscTypes
291         InteractiveEval
292         PackageConfig
293         Packages
294         ParsePkgConf
295         PprTyThing
296         StaticFlags
297         StaticFlagParser
298         SysTools
299         TidyPgm
300         Ctype
301         HaddockLex
302         HaddockParse
303         HaddockUtils
304         LexCore
305         Lexer
306         Parser
307         ParserCore
308         ParserCoreUtils
309         RdrHsSyn
310         ForeignCall
311         PrelInfo
312         PrelNames
313         PrelRules
314         PrimOp
315         TysPrim
316         TysWiredIn
317         CostCentre
318         SCCfinal
319         RnBinds
320         RnEnv
321         RnExpr
322         RnHsDoc
323         RnHsSyn
324         RnNames
325         RnPat
326         RnSource
327         RnTypes
328         CoreMonad
329         CSE
330         FloatIn
331         FloatOut
332         LiberateCase
333         OccurAnal
334         SAT
335         SetLevels
336         SimplCore
337         SimplEnv
338         SimplMonad
339         SimplUtils
340         Simplify
341         SRT
342         SimplStg
343         StgStats
344         Rules
345         SpecConstr
346         Specialise
347         CoreToStg
348         StgLint
349         StgSyn
350         DmdAnal
351         SaAbsInt
352         SaLib
353         StrictAnal
354         WorkWrap
355         WwLib
356         FamInst
357         Inst
358         TcAnnotations
359         TcArrows
360         TcBinds
361         TcClassDcl
362         TcDefaults
363         TcDeriv
364         TcEnv
365         TcExpr
366         TcForeign
367         TcGenDeriv
368         TcHsSyn
369         TcHsType
370         TcInstDcls
371         TcMType
372         TcMatches
373         TcPat
374         TcRnDriver
375         TcRnMonad
376         TcRnTypes
377         TcRules
378         TcSimplify
379         TcTyClsDecls
380         TcTyDecls
381         TcTyFuns
382         TcType
383         TcUnify
384         Class
385         Coercion
386         FamInstEnv
387         FunDeps
388         Generics
389         InstEnv
390         TyCon
391         Type
392         TypeRep
393         Unify
394         Bag
395         Binary
396         BufWrite
397         Digraph
398         Encoding
399         FastBool
400         FastFunctions
401         FastMutInt
402         FastString
403         FastTypes
404         Fingerprint
405         FiniteMap
406         GraphBase
407         GraphColor
408         GraphOps
409         GraphPpr
410         IOEnv
411         Interval
412         LazyUniqFM
413         ListSetOps
414         Maybes
415         MonadUtils
416         OrdList
417         Outputable
418         Panic
419         Pretty
420         Serialized
421         State
422         StringBuffer
423         UniqFM
424         UniqSet
425         Util
426         VectBuiltIn
427         VectCore
428         VectMonad
429         VectType
430         VectUtils
431         Vectorise
432
433     if flag(ncg)
434         hs-source-dirs:
435             nativeGen
436
437         Exposed-Modules:
438             AsmCodeGen
439             MachCodeGen
440             MachInstrs
441             MachRegs
442             NCGMonad
443             PositionIndependentCode
444             PprMach
445             RegAllocColor
446             RegAllocInfo
447             RegAllocLinear
448             RegAllocStats
449             RegArchBase
450             RegArchX86
451             RegCoalesce
452             RegLiveness
453             RegSpill
454             RegSpillClean
455             RegSpillCost
456
457     if flag(ghci)
458         Exposed-Modules:
459             DsMeta
460             TcSplice
461             Convert
462             ByteCodeAsm
463             ByteCodeFFI
464             ByteCodeGen
465             ByteCodeInstr
466             ByteCodeItbls
467             ByteCodeLink
468             Debugger
469             GhciMonad
470             GhciTags
471             InteractiveUI
472             LibFFI
473             Linker
474             ObjLink
475             RtClosureInspect
476