54f94d9b1cd57e8b174913ff756b2d079553e839
[ghc.git] / src / GHC.hs
1 {-# LANGUAGE OverloadedStrings #-}
2 module GHC (
3 array, base, binary, bytestring, cabal, compiler, containers, compareSizes,
4 deepseq, deriveConstants, directory, dllSplit, filepath, genapply,
5 genprimopcode, ghc, ghcBoot, ghcCabal, ghci, ghcPkg, ghcPrim, ghcTags,
6 ghcSplit, haddock, haskeline, hsc2hs, hoopl, hp2ps, hpc, hpcBin, integerGmp,
7 integerSimple, iservBin, libffi, mkUserGuidePart, GHC.parallel, pretty,
8 primitive, process, rts, runGhc, stm, templateHaskell, terminfo, time,
9 touchy, transformers, unlit, unix, win32, xhtml,
10
11 defaultKnownPackages
12 ) where
13
14 import Package
15
16 -- | These are all GHC packages we know about. Build rules will be generated for
17 -- all of them. However, not all of these packages will be built. For example,
18 -- package /win32/ is built only on Windows.
19 -- "Packages" defines default conditions for building each package, which can
20 -- be overridden in "User".
21 defaultKnownPackages :: [Package]
22 defaultKnownPackages =
23 [ array, base, binary, bytestring, cabal, compiler, containers, compareSizes
24 , deepseq, deriveConstants, directory, dllSplit, filepath, genapply
25 , genprimopcode, ghc, ghcBoot, ghcCabal, ghci, ghcPkg, ghcPrim
26 , ghcTags, haddock, haskeline, hsc2hs, hoopl, hp2ps, hpc, hpcBin, integerGmp
27 , integerSimple, iservBin, libffi, mkUserGuidePart, GHC.parallel, pretty
28 , primitive, process, rts, runGhc, stm, templateHaskell, terminfo, time
29 , touchy, transformers, unlit, unix, win32, xhtml ]
30
31 -- Package definitions (see "Package")
32 array, base, binary, bytestring, cabal, compiler, containers, compareSizes,
33 deepseq, deriveConstants, directory, dllSplit, filepath, genapply,
34 genprimopcode, ghc, ghcBoot, ghcCabal, ghci, ghcPkg, ghcPrim, ghcTags,
35 haddock, haskeline, hsc2hs, hoopl, hp2ps, hpc, hpcBin, integerGmp,
36 integerSimple, iservBin, libffi, mkUserGuidePart, parallel, pretty,
37 primitive, process, rts, runGhc, stm, templateHaskell, terminfo, time,
38 touchy, transformers, unlit, unix, win32, xhtml :: Package
39
40 array = library "array"
41 base = library "base"
42 binary = library "binary"
43 bytestring = library "bytestring"
44 cabal = library "Cabal" `setPath` "libraries/Cabal/Cabal"
45 compiler = topLevel "ghc" `setPath` "compiler"
46 containers = library "containers"
47 compareSizes = utility "compareSizes" `setPath` "utils/compare_sizes"
48 deepseq = library "deepseq"
49 deriveConstants = utility "deriveConstants"
50 directory = library "directory"
51 dllSplit = utility "dll-split"
52 filepath = library "filepath"
53 genapply = utility "genapply"
54 genprimopcode = utility "genprimopcode"
55 ghc = topLevel "ghc-bin" `setPath` "ghc" `setType` Program
56 ghcBoot = library "ghc-boot"
57 ghcCabal = utility "ghc-cabal"
58 ghci = library "ghci"
59 ghcPkg = utility "ghc-pkg"
60 ghcPrim = library "ghc-prim"
61 ghcTags = utility "ghctags"
62 haddock = utility "haddock"
63 haskeline = library "haskeline"
64 hsc2hs = utility "hsc2hs"
65 hoopl = library "hoopl"
66 hp2ps = utility "hp2ps"
67 hpc = library "hpc"
68 hpcBin = utility "hpc-bin" `setPath` "utils/hpc"
69 integerGmp = library "integer-gmp"
70 integerSimple = library "integer-simple"
71 iservBin = topLevel "iserv-bin" `setPath` "iserv" `setType` Program
72 libffi = topLevel "libffi"
73 mkUserGuidePart = utility "mkUserGuidePart"
74 parallel = library "parallel"
75 pretty = library "pretty"
76 primitive = library "primitive"
77 process = library "process"
78 rts = topLevel "rts"
79 runGhc = utility "runghc"
80 stm = library "stm"
81 templateHaskell = library "template-haskell"
82 terminfo = library "terminfo"
83 time = library "time"
84 touchy = utility "touchy"
85 transformers = library "transformers"
86 unlit = utility "unlit"
87 unix = library "unix"
88 win32 = library "Win32"
89 xhtml = library "xhtml"
90
91 -- | ghc-split is a perl script used by GHC with @-split-objs@ flag. It is
92 -- generated in "Rules.Generators.GhcSplit".
93 ghcSplit :: FilePath
94 ghcSplit = "inplace/lib/bin/ghc-split"
95
96 -- TODO: The following utils are not included into the build system because
97 -- they seem to be unused or unrelated to the build process: checkUniques,
98 -- completion, count_lines, coverity, debugNGC, describe-unexpected, genargs,
99 -- lndir, mkdirhier, testremove, vagrant