-
Notifications
You must be signed in to change notification settings - Fork 2
/
boot.yaml
196 lines (157 loc) · 5.42 KB
/
boot.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
#########################################################################################
#
# the locations that ghcjs-boot gets installation files from
#
# if multiple locations are listed for a source,
# they will be tried in order, until one succeeds
#
# locations may refer to urls (only http is supported) or local files
#
# ghcjs-boot does some substitution:
# {version} - GHCJS version
# {datadir} - location where Cabal has installed the data-files for the GHCJS package
# {{ENV_VAR}} - value of environment variable
#
#########################################################################################
# the packages that ghcjs-boot builds
#
# package names are relative to the root of the ghcjs-boot source, can also
# be plain package names (installed from a repository) or urls
# (see sources configuration below)
packages:
# special packages installed between stages:
ghc-prim: ./boot/ghc-prim
ghcjs-prim: ../ghcjs-prim
cabal: ./boot/cabal/Cabal
# pretend to have these packages installed during stage 1,
# GHCJS calls GHC for anything that depends on them
# (these must be installed in the GHC installation used for booting)
stage1PretendToHave:
- Cabal
# in stage 1a, we cannot do linking yet, ghc-prim is installed
# before this
stage1a:
- ./boot/array
- ./boot/base
- ./boot/binary
- ./boot/bytestring
- ./boot/containers
- ./boot/deepseq
- ./boot/integer-gmp
- ./boot/pretty
- ./boot/primitive
- ./boot/template-haskell
- ./boot/transformers
# after stage 1a, ghcjs-boot installs ghcjs-prim and
# continues with stage 1b
stage1b:
- ./boot/directory
- ./boot/filepath
- ./boot/old-locale
- ./boot/process
- ./boot/time
- IfUnix: ./boot/unix
- IfWindows: ./boot/Win32
# add more packages here when required for a full boot
# (all remaining Cabal dependencies need to be here)
# - IfFull:
# after stage 1b, ghcjs-boot removes the pretend-to-have packages
#
# when we're doing a quick boot, this completes the boot process
# (which means that GHCJS does not have a Cabal library installed
# , so packages with a custom build type don't work)
#
# for a full boot, ghcjs-boot installs the Cabal library and then
# builds the stage2 packages
stage2:
- ./boot/async
- ./boot/semigroups
- ./boot/tagged
- ./boot/nats
- ./boot/fail
- ./boot/aeson
- ./boot/attoparsec
- ./boot/case-insensitive
- ./boot/dlist
- ./boot/extensible-exceptions
- ./boot/hashable
- ./boot/mtl
- ./boot/old-time
- ./boot/parallel
- ./boot/scientific
- ./boot/stm
- ./boot/syb
- ./boot/text
- ./boot/unordered-containers
- ./boot/vector
- ./ghcjs/ghcjs-base
# configuration for source locations (libraries and rts) for booting
#
# if multiple locations are listed for a source,
# they will be tried in order, until one succeeds
sources:
# source locations for a release build
# (can be tar archives, plain directories or http urls)
shims:
- "{datadir}/lib/shims"
- "{datadir}/lib/cache/shims.tar"
boot:
- "{datadir}/lib/ghcjs-boot"
- "{datadir}/lib/cache/boot.tar"
test:
- "{datadir}/test"
- "{datadir}/lib/cache/test.tar"
# used in both development and release builds
doc: "{datadir}/doc"
etc: "{datadir}/lib/etc"
ghcjs-prim: "{datadir}/lib/ghcjs-prim"
include: "{datadir}/lib/include"
# git repositories for the rts and boot libraries
# these are only used for development builds
shims-dev: https://github.com/ghcjs/shims
shims-dev-branch: master
ghcjs-boot-dev: https://github.com/ghcjs/ghcjs-boot
ghcjs-boot-dev-branch: master
# build tools for Windows (http url, local tar archive or directory)
# a big archive of build tools
buildtools-windows:
- http://hdiff.luite.com/ghcjs/buildtools/ghcjs-buildtools-windows-{version}.tar.xz
- http://www.ghcjs.org/buildtools/ghcjs-buildtools-windows-{version}.tar.xz
- http://hdiff.luite.com/ghcjs/buildtools/ghcjs-buildtools-windows.tar.xz
- http://www.ghcjs.org/buildtools/ghcjs-buildtools-windows.tar.xz
# small boot archive to decompress the big Windows buildtools file
buildtools-boot-windows:
- http://hdiff.luite.com/ghcjs/buildtools/ghcjs-buildtools-boot-windows-{version}.tar
- http://www.ghcjs.org/ghcjs/buildtools/ghcjs-buildtools-boot-windows-{version}.tar
- http://hdiff.luite.com/ghcjs/buildtools/ghcjs-buildtools-boot-windows.tar
- http://www.ghcjs.org/ghcjs/buildtools/ghcjs-buildtools-boot-windows.tar
# Program configuration. You can override some program locations on the command line with ghcjs-boot
#
# use a list to prepend arguments to a program, for example:
# ghcjs:
# {{HOME}}/.cabal/bin/ghcjs-{version}:
# - "-B{{HOME}}/haskell/ghcjs/lib"
#
programs:
# GHCJS programs
#
# customize their wrapper scripts to change the installation destination
ghcjs: ghcjs
ghcjs-pkg: ghcjs-pkg
haddock-ghcjs: haddock-ghcjs
# non-wrapped GHCJS programs
ghcjs-run: ghcjs-run
# third party programs
cabal: cabal
ghc: ghc
ghc-pkg: ghc-pkg
node: node
bash: bash
make: make
cpp: cpp
alex: alex
happy: happy
git: git
autoreconf: autoreconf
# ghcjs-boot has a built-in unpacker for uncompressed tar, this is only used for tar.gz, tar.bz2, tar.xz
tar: tar