bf077aac90e7a4b9765e921d926bb096ee49abe2
[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
93     Include-Dirs: . parser utils
94
95     if flag(stage1)
96         Include-Dirs: stage1
97         if impl(ghc < 6.9)
98             Build-Depends: extensible-exceptions
99             Extensions: PatternSignatures
100     else
101         Include-Dirs: stage2plus
102     Install-Includes: HsVersions.h, ghc_boot_platform.h
103
104     c-sources:
105         parser/cutils.c
106         utils/md5.c
107         -- For GHC < 6.5:
108         cbits/unicode.c
109
110     if flag(dynlibs)
111         c-sources:
112             ghci/keepCAFsForGHCi.c
113
114     hs-source-dirs:
115         basicTypes
116         cmm
117         codeGen
118         coreSyn
119         cprAnalysis
120         deSugar
121         ghci
122         hsSyn
123         iface
124         main
125         parser
126         prelude
127         profiling
128         rename
129         simplCore
130         simplStg
131         specialise
132         stgSyn
133         stranal
134         typecheck
135         types
136         utils
137         vectorise
138
139     Exposed-Modules:
140         BasicTypes
141         DataCon
142         Demand
143         Exception
144         Id
145         IdInfo
146         Literal
147         MkId
148         Module
149         Name
150         NameEnv
151         NameSet
152         NewDemand
153         OccName
154         RdrName
155         SrcLoc
156         UniqSupply
157         Unique
158         Var
159         VarEnv
160         VarSet
161         BlockId
162         CLabel
163         Cmm
164         CmmBrokenBlock
165         CmmCPS
166         CmmCPSGen
167         CmmCPSZ
168         CmmCallConv
169         CmmCommonBlockElimZ
170         CmmContFlowOpt
171         CmmCvt
172         CmmExpr
173         CmmInfo
174         CmmLex
175         CmmLint
176         CmmLive
177         CmmLiveZ
178         CmmOpt
179         CmmParse
180         CmmProcPoint
181         CmmProcPointZ
182         CmmSpillReload
183         CmmTx
184         CmmUtils
185         CmmZipUtil
186         DFMonad
187         Dataflow
188         MachOp
189         MkZipCfg
190         MkZipCfgCmm
191         OptimizationFuel
192         PprC
193         PprCmm
194         PprCmmZ
195         StackColor
196         StackPlacements
197         ZipCfg
198         ZipCfgCmmRep
199         ZipCfgExtras
200         ZipDataflow
201         Bitmap
202         CgBindery
203         CgCallConv
204         CgCase
205         CgClosure
206         CgCon
207         CgExpr
208         CgForeignCall
209         CgHeapery
210         CgHpc
211         CgInfoTbls
212         CgLetNoEscape
213         CgMonad
214         CgParallel
215         CgPrimOp
216         CgProf
217         CgStackery
218         CgTailCall
219         CgTicky
220         CgUtils
221         ClosureInfo
222         CodeGen
223         SMRep
224         CoreFVs
225         CoreLint
226         CorePrep
227         CoreSubst
228         CoreSyn
229         CoreTidy
230         CoreUnfold
231         CoreUtils
232         ExternalCore
233         MkCore
234         MkExternalCore
235         PprCore
236         PprExternalCore
237         CprAnalyse
238         Check
239         Coverage
240         Desugar
241         DsArrows
242         DsBinds
243         DsCCall
244         DsExpr
245         DsForeign
246         DsGRHSs
247         DsListComp
248         DsMonad
249         DsUtils
250         Match
251         MatchCon
252         MatchLit
253         HsBinds
254         HsDecls
255         HsDoc
256         HsExpr
257         HsImpExp
258         HsLit
259         HsPat
260         HsSyn
261         HsTypes
262         HsUtils
263         BinIface
264         BuildTyCl
265         IfaceEnv
266         IfaceSyn
267         IfaceType
268         LoadIface
269         MkIface
270         TcIface
271         BreakArray
272         CmdLineParser
273         CodeOutput
274         Config
275         Constants
276         DriverMkDepend
277         DriverPhases
278         DriverPipeline
279         DynFlags
280         ErrUtils
281         Finder
282         GHC
283         HeaderInfo
284         HscMain
285         HscStats
286         HscTypes
287         InteractiveEval
288         PackageConfig
289         Packages
290         ParsePkgConf
291         PprTyThing
292         StaticFlags
293         StaticFlagParser
294         SysTools
295         TidyPgm
296         Ctype
297         HaddockLex
298         HaddockParse
299         HaddockUtils
300         LexCore
301         Lexer
302         Parser
303         ParserCore
304         ParserCoreUtils
305         RdrHsSyn
306         ForeignCall
307         PrelInfo
308         PrelNames
309         PrelRules
310         PrimOp
311         TysPrim
312         TysWiredIn
313         CostCentre
314         SCCfinal
315         RnBinds
316         RnEnv
317         RnExpr
318         RnHsDoc
319         RnHsSyn
320         RnNames
321         RnPat
322         RnSource
323         RnTypes
324         CSE
325         FloatIn
326         FloatOut
327         LiberateCase
328         OccurAnal
329         SAT
330         SetLevels
331         SimplCore
332         SimplEnv
333         SimplMonad
334         SimplUtils
335         Simplify
336         SRT
337         SimplStg
338         StgStats
339         Rules
340         SpecConstr
341         Specialise
342         CoreToStg
343         StgLint
344         StgSyn
345         DmdAnal
346         SaAbsInt
347         SaLib
348         StrictAnal
349         WorkWrap
350         WwLib
351         FamInst
352         Inst
353         TcArrows
354         TcBinds
355         TcClassDcl
356         TcDefaults
357         TcDeriv
358         TcEnv
359         TcExpr
360         TcForeign
361         TcGenDeriv
362         TcHsSyn
363         TcHsType
364         TcInstDcls
365         TcMType
366         TcMatches
367         TcPat
368         TcRnDriver
369         TcRnMonad
370         TcRnTypes
371         TcRules
372         TcSimplify
373         TcTyClsDecls
374         TcTyDecls
375         TcTyFuns
376         TcType
377         TcUnify
378         Class
379         Coercion
380         FamInstEnv
381         FunDeps
382         Generics
383         InstEnv
384         TyCon
385         Type
386         TypeRep
387         Unify
388         Bag
389         Binary
390         BufWrite
391         Digraph
392         Encoding
393         FastBool
394         FastFunctions
395         FastMutInt
396         FastString
397         FastTypes
398         Fingerprint
399         FiniteMap
400         GraphBase
401         GraphColor
402         GraphOps
403         GraphPpr
404         IOEnv
405         Interval
406         LazyUniqFM
407         ListSetOps
408         Maybes
409         MonadUtils
410         OrdList
411         Outputable
412         Panic
413         Pretty
414         State
415         StringBuffer
416         Unicode
417         UniqFM
418         UniqSet
419         Util
420         VectBuiltIn
421         VectCore
422         VectMonad
423         VectType
424         VectUtils
425         Vectorise
426
427     if flag(ncg)
428         hs-source-dirs:
429             nativeGen
430
431         Exposed-Modules:
432             AsmCodeGen
433             MachCodeGen
434             MachInstrs
435             MachRegs
436             NCGMonad
437             PositionIndependentCode
438             PprMach
439             RegAllocColor
440             RegAllocInfo
441             RegAllocLinear
442             RegAllocStats
443             RegArchBase
444             RegArchX86
445             RegCoalesce
446             RegLiveness
447             RegSpill
448             RegSpillClean
449             RegSpillCost
450
451     if flag(ghci)
452         Exposed-Modules:
453             DsMeta
454             TcSplice
455             Convert
456             ByteCodeAsm
457             ByteCodeFFI
458             ByteCodeGen
459             ByteCodeInstr
460             ByteCodeItbls
461             ByteCodeLink
462             Debugger
463             GhciMonad
464             GhciTags
465             InteractiveUI
466             LibFFI
467             Linker
468             ObjLink
469             RtClosureInspect
470