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