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