3
MAKEREL = cd $(SAGE_ROOT) && . local/bin/sage-env && cd local/bin/ && ./sage-make_relative
5
########################################
6
# The base system; required in order to run spkg
7
########################################
8
BASE = $(INST)/$(PREREQ) $(INST)/$(DIR) $(INST)/$(SAGE_BZIP2)
10
all: $(INST)/$(SAGE_SCRIPTS) $(INST)/$(SAGE) $(INST)/$(DOC) \
11
$(INST)/$(EXAMPLES) $(INST)/$(GAP) $(INST)/$(SINGULAR) $(INST)/$(MAXIMA) \
12
$(INST)/$(G2RED) $(INST)/$(LCALC) $(INST)/$(SYMPOW) $(INST)/$(MATPLOTLIB) \
13
$(INST)/$(GFAN) $(INST)/$(ECM) $(INST)/$(TACHYON) \
14
$(INST)/$(GIVARO) $(INST)/$(LINBOX) $(INST)/$(IML) \
15
$(INST)/$(SYMMETRICA) $(INST)/$(POLYBORI) \
16
$(INST)/$(GSL) $(INST)/$(GD) $(INST)/$(GDMODULE) \
17
$(INST)/$(MERCURIAL) $(INST)/$(TWISTED) $(INST)/$(TWISTEDWEB2) \
18
$(INST)/$(NUMPY) $(INST)/$(WEAVE) $(INST)/$(FLINTQS) $(INST)/$(FLINT) $(INST)/$(PYCRYPTO) \
19
$(INST)/$(PALP) $(INST)/$(MOIN) \
20
$(INST)/$(SQLITE) $(INST)/$(IPYTHON1) \
21
$(INST)/$(PYTHON_GNUTLS) \
22
$(INST)/$(SCIPY) $(INST)/$(SCIPY_SANDBOX) \
26
$(INST)/$(R) $(INST)/$(ATLAS) $(INST)/$(RUBIKS) $(INST)/$(SETUPTOOLS) $(INST)/$(SQLALCHEMY) \
27
$(INST)/$(ZNPOLY) $(INST)/$(POLYTOPES_DB) $(INST)/$(PYPROCESSING)
31
scripts: $(BASE) $(INST)/$(SAGE_SCRIPTS)
33
########################################
34
# Building the base system
35
########################################
39
$(INST)/$(PREREQ): $(INST)/$(DIR)
40
base/$(PREREQ)-install
42
$(INST)/$(SAGE_BZIP2): $(INST)/$(PREREQ) $(INST)/$(DIR)
43
base/$(SAGE_BZIP2)-install 2>&1
45
########################################
46
# Building normal packages
47
########################################
49
$(INST)/$(ATLAS): $(BASE) $(INST)/$(LAPACK) $(INST)/$(PYTHON)
50
$(SAGE_SPKG) $(ATLAS) 2>&1
52
$(INST)/$(TERMCAP): $(BASE)
53
$(SAGE_SPKG) $(TERMCAP) 2>&1
55
$(INST)/$(READLINE): $(BASE)
56
$(SAGE_SPKG) $(READLINE) 2>&1
58
$(INST)/$(ELLIPTIC_CURVES): $(BASE)
59
$(SAGE_SPKG) $(ELLIPTIC_CURVES) 2>&1
61
$(INST)/$(CONWAY): $(BASE)
62
$(SAGE_SPKG) $(CONWAY) 2>&1
64
$(INST)/$(GRAPHS): $(BASE)
65
$(SAGE_SPKG) $(GRAPHS) 2>&1
67
$(INST)/$(PYTHON): $(BASE) $(INST)/$(ZLIB) $(INST)/$(TERMCAP) $(INST)/$(READLINE) $(INST)/$(SQLITE) $(INST)/$(GNUTLS) $(INST)/$(LIBPNG)
68
$(SAGE_SPKG) $(PYTHON) 2>&1
70
$(INST)/$(GMP): $(BASE)
71
$(SAGE_SPKG) $(GMP) 2>&1
73
$(INST)/$(GSL): $(BASE) $(INST)/$(ATLAS)
74
$(SAGE_SPKG) $(GSL) 2>&1
76
#$(INST)/$(FLEX): $(BASE)
77
# $(SAGE_SPKG) $(FLEX) 2>&1
79
#$(INST)/$(BISON): $(BASE)
80
# $(SAGE_SPKG) $(BISON) 2>&1
82
$(INST)/$(NTL): $(BASE) $(INST)/$(GMP)
83
$(SAGE_SPKG) $(NTL) 2>&1
85
$(INST)/$(FPLLL): $(BASE) $(INST)/$(GMP) $(INST)/$(MPFR)
86
$(SAGE_SPKG) $(FPLLL) 2 >&1
88
$(INST)/$(PARI): $(BASE) $(INST)/$(TERMCAP) $(INST)/$(READLINE) $(INST)/$(GMP)
89
$(SAGE_SPKG) $(PARI) 2>&1
91
$(INST)/$(POLYBORI): $(BASE) $(INST)/$(PYTHON) $(INST)/$(SCONS)
92
$(SAGE_SPKG) $(POLYBORI) 2>&1
94
$(INST)/$(POLYTOPES_DB): $(BASE)
95
$(SAGE_SPKG) $(POLYTOPES_DB) 2>&1
97
$(INST)/$(PYPROCESSING): $(BASE) $(INST)/$(PYTHON)
98
$(SAGE_SPKG) $(PYPROCESSING) 2>&1
100
$(INST)/$(MPFR): $(BASE) $(INST)/$(GMP)
101
$(SAGE_SPKG) $(MPFR) 2>&1
103
$(INST)/$(MPFI): $(BASE) $(INST)/$(GMP) $(INST)/$(MPFR)
104
$(SAGE_SPKG) $(MPFI) 2>&1
106
$(INST)/$(QUADDOUBLE): $(BASE) $(INST)/$(GMP) $(INST)/$(MPFR)
107
$(SAGE_SPKG) $(QUADDOUBLE) 2>&1
109
$(INST)/$(GIVARO): $(BASE) $(INST)/$(GMP)
110
$(SAGE_SPKG) $(GIVARO) 2>&1
112
$(INST)/$(LINBOX): $(BASE) $(INST)/$(GMP) $(INST)/$(NTL) $(INST)/$(GIVARO) $(INST)/$(GSL) $(INST)/$(ATLAS)
113
$(SAGE_SPKG) $(LINBOX) 2>&1
115
$(INST)/$(IML): $(BASE) $(INST)/$(GMP) $(INST)/$(GSL)
116
$(SAGE_SPKG) $(IML) 2>&1
118
$(INST)/$(ECLIB): $(BASE) $(INST)/$(GMP) $(INST)/$(PARI) $(INST)/$(NTL)
119
$(SAGE_SPKG) $(ECLIB) 2>&1
121
$(INST)/$(G2RED): $(BASE) $(INST)/$(PARI)
122
$(SAGE_SPKG) $(G2RED) 2>&1
124
$(INST)/$(PALP): $(BASE)
125
$(SAGE_SPKG) $(PALP) 2>&1
127
$(INST)/$(LCALC): $(BASE) $(INST)/$(PARI) $(INST)/$(MPFR)
128
$(SAGE_SPKG) $(LCALC) 2>&1
130
$(INST)/$(SYMPOW): $(BASE)
131
$(SAGE_SPKG) $(SYMPOW) 2>&1
133
$(INST)/$(SYMMETRICA): $(BASE)
134
$(SAGE_SPKG) $(SYMMETRICA) 2>&1
136
# gap requires SAGE so that gap_reset_workspace works.
137
$(INST)/$(GAP): $(BASE) $(INST)/$(GMP) $(INST)/$(TERMCAP) $(INST)/$(READLINE) $(INST)/$(SAGE)
138
$(SAGE_SPKG) $(GAP) 2>&1
140
$(INST)/$(IPYTHON): $(INST)/$(PYTHON)
141
$(SAGE_SPKG) $(IPYTHON) 2>&1
144
$(INST)/$(IPYTHON1): $(INST)/$(PYTHON) $(INST)/$(IPYTHON) $(INST)/$(TWISTED) $(INST)/$(ZODB)
145
$(SAGE_SPKG) $(IPYTHON1) 2>&1
148
$(INST)/$(PEXPECT): $(INST)/$(PYTHON)
149
$(SAGE_SPKG) $(PEXPECT) 2>&1
151
$(INST)/$(GD): $(INST)/$(LIBPNG) $(INST)/$(FREETYPE)
152
$(SAGE_SPKG) $(GD) 2>&1
154
#$(INST)/$(DVIPNG): $(INST)/$(LIBPNG) $(INST)/$(FREETYPE)
155
# $(SAGE_SPKG) $(DVIPNG) 2>&1
157
$(INST)/$(GDMODULE): $(INST)/$(PYTHON) $(INST)/$(GD)
158
$(SAGE_SPKG) $(GDMODULE) 2>&1
160
$(INST)/$(TWISTED): $(INST)/$(PYTHON) $(INST)/$(PYTHON_GNUTLS)
161
$(SAGE_SPKG) $(TWISTED) 2>&1
163
$(INST)/$(TWISTEDWEB2): $(INST)/$(TWISTED)
164
$(SAGE_SPKG) $(TWISTEDWEB2) 2>&1
166
$(INST)/$(OPENCDK): $(INST)/$(ZLIB) $(INST)/$(LIBGCRYPT)
167
$(SAGE_SPKG) $(OPENCDK) 2>&1
169
$(INST)/$(LIBGPG_ERROR):
170
$(SAGE_SPKG) $(LIBGPG_ERROR) 2>&1
172
$(INST)/$(LIBGCRYPT): $(INST)/$(LIBGPG_ERROR)
173
$(SAGE_SPKG) $(LIBGCRYPT) 2>&1
175
$(INST)/$(GNUTLS): $(INST)/$(ZLIB) $(INST)/$(OPENCDK) $(INST)/$(LIBGCRYPT) $(INST)/$(LIBGPG_ERROR)
176
$(SAGE_SPKG) $(GNUTLS) 2>&1
178
$(INST)/$(PYTHON_GNUTLS): $(INST)/$(GNUTLS) $(INST)/$(PYTHON)
179
$(SAGE_SPKG) $(PYTHON_GNUTLS) 2>&1
181
$(INST)/$(SCONS): $(INST)/$(PYTHON)
182
$(SAGE_SPKG) $(SCONS) 2>&1
184
#$(INST)/$(OPENSSL): $(BASE)
185
# $(SAGE_SPKG) $(OPENSSL) 2>&1
187
#$(INST)/$(PYOPENSSL): $(INST)/$(PYTHON) $(INST)/$(OPENSSL)
188
# $(SAGE_SPKG) $(PYOPENSSL) 2>&1
190
$(INST)/$(RUBIKS): $(BASE)
191
$(SAGE_SPKG) $(RUBIKS) 2>&1
193
# extcode must be built before moin moin because it has the jsmath in it.
194
$(INST)/$(MOIN): $(INST)/$(PYTHON) $(INST)/$(TWISTED) $(INST)/$(EXTCODE)
195
$(SAGE_SPKG) $(MOIN) 2>&1
197
$(INST)/$(SQLALCHEMY): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
198
$(SAGE_SPKG) $(SQLALCHEMY) 2>&1
200
$(INST)/$(SQLITE): $(INST)/$(TERMCAP) $(INST)/$(READLINE)
201
$(SAGE_SPKG) $(SQLITE) 2>&1
203
$(INST)/$(MERCURIAL): $(INST)/$(PYTHON)
204
$(SAGE_SPKG) $(MERCURIAL) 2>&1
207
$(INST)/$(SETUPTOOLS): $(INST)/$(PYTHON)
208
$(SAGE_SPKG) $(SETUPTOOLS) 2>&1
210
$(INST)/$(SINGULAR): $(BASE) $(INST)/$(GMP) $(INST)/$(NTL) $(INST)/$(TERMCAP) $(INST)/$(READLINE) $(INST)/$(MPFR)
211
$(SAGE_SPKG) $(SINGULAR) 2>&1
213
$(INST)/$(PYCRYPTO): $(BASE) $(INST)/$(PYTHON)
214
$(SAGE_SPKG) $(PYCRYPTO) 2>&1
216
$(INST)/$(WEAVE): $(BASE) $(INST)/$(NUMPY)
217
$(SAGE_SPKG) $(WEAVE) 2>&1
219
$(INST)/$(NETWORKX): $(BASE) $(INST)/$(PYTHON)
220
$(SAGE_SPKG) $(NETWORKX) 2>&1
222
#$(INST)/$(GNUPLOT): $(BASE) $(INST)/$(TERMCAP) $(INST)/$(READLINE) $(INST)/$(LIBPNG)
223
# $(SAGE_SPKG) $(GNUPLOT) 2>&1
225
$(INST)/$(ZLIB): $(BASE)
226
$(SAGE_SPKG) $(ZLIB) 2>&1
228
#$(INST)/$(GNUPLOTPY): $(BASE) $(INST)/$(PYTHON) $(INST)/$(NUMPY)
229
# $(SAGE_SPKG) $(GNUPLOTPY) 2>&1
232
## << NON-GUI matplotlib >>
234
$(INST)/$(FREETYPE): $(BASE)
235
$(SAGE_SPKG) $(FREETYPE) 2>&1
237
$(INST)/$(LIBPNG): $(BASE)
238
$(SAGE_SPKG) $(LIBPNG) 2>&1
240
$(INST)/$(MATPLOTLIB): $(BASE) $(INST)/$(PYTHON) $(INST)/$(NUMPY) $(INST)/$(FREETYPE) $(INST)/$(LIBPNG) $(INST)/$(GDMODULE)
241
$(SAGE_SPKG) $(MATPLOTLIB) 2>&1
246
$(INST)/$(CDDLIB): $(BASE) $(INST)/$(GMP)
247
$(SAGE_SPKG) $(CDDLIB) 2>&1
249
$(INST)/$(GFAN): $(BASE) $(INST)/$(GMP) $(INST)/$(CDDLIB)
250
$(SAGE_SPKG) $(GFAN) 2>&1
252
$(INST)/$(TACHYON): $(BASE) $(INST)/$(LIBPNG)
253
$(SAGE_SPKG) $(TACHYON) 2>&1
255
$(INST)/$(ECM): $(BASE) $(INST)/$(GMP)
256
$(SAGE_SPKG) $(ECM) 2>&1
259
#$(INST)/$(LIBSIGSEGV): $(BASE)
260
# $(SAGE_SPKG) $(LIBSIGSEGV) 2>&1
262
$(INST)/$(CLISP): $(BASE) $(INST)/$(GMP) $(INST)/$(TERMCAP) $(INST)/$(READLINE)
263
$(SAGE_SPKG) $(CLISP) 2>&1
265
$(INST)/$(MAXIMA): $(BASE) $(INST)/$(CLISP)
266
$(SAGE_SPKG) $(MAXIMA) 2>&1
268
$(INST)/$(ZODB): $(INST)/$(PYTHON)
269
$(SAGE_SPKG) $(ZODB) 2>&1
272
$(INST)/$(R): $(INST)/$(PYTHON) $(INST)/$(ATLAS)
273
$(SAGE_SPKG) $(R) 2>&1
276
$(INST)/$(SYMPY): $(INST)/$(PYTHON)
277
$(SAGE_SPKG) $(SYMPY) 2>&1
280
$(INST)/$(CYTHON): $(INST)/$(PYTHON)
281
$(SAGE_SPKG) $(CYTHON) 2>&1
284
$(INST)/$(FLINTQS): $(INST)/$(GMP)
285
$(SAGE_SPKG) $(FLINTQS) 2>&1
287
$(INST)/$(FLINT): $(INST)/$(GMP) $(INST)/$(NTL)
288
$(SAGE_SPKG) $(FLINT) 2>&1
290
$(INST)/$(EXTCODE): $(BASE)
291
$(SAGE_SPKG) $(EXTCODE) 2>&1
293
$(INST)/$(EXAMPLES): $(BASE)
294
$(SAGE_SPKG) $(EXAMPLES) 2>&1
296
$(INST)/$(SAGE_SCRIPTS): $(BASE)
297
$(SAGE_SPKG) $(SAGE_SCRIPTS) 2>&1
299
$(INST)/$(LIBM4RI): $(BASE)
300
$(SAGE_SPKG) $(LIBM4RI) 2>&1
302
$(INST)/$(ZNPOLY): $(INST)/$(GMP)
303
$(SAGE_SPKG) $(ZNPOLY) 2>&1
305
# All components that are linked against extensions need to be listed here
306
$(INST)/$(SAGE): $(INST)/$(SAGE_SCRIPTS) \
310
$(INST)/$(ELLIPTIC_CURVES) \
313
$(INST)/$(GDMODULE) \
318
$(INST)/$(MATPLOTLIB) \
319
$(INST)/$(MERCURIAL) \
325
$(INST)/$(PYCRYPTO) \
331
$(INST)/$(NETWORKX) \
334
$(INST)/$(QUADDOUBLE) \
335
$(INST)/$(GNUCRYPTOLIB) \
336
$(INST)/$(SINGULAR) \
338
$(INST)/$(SYMMETRICA) \
340
$(INST)/$(POLYBORI) \
350
$(INST)/$(DOC): $(INST)/$(SAGE)
354
$(SAGE_SPKG) $(FORTRAN) 2>&1
357
$(SAGE_SPKG) $(JMOL) 2>&1
359
$(INST)/$(F2C): $(INST)/$(FORTRAN)
360
$(SAGE_SPKG) $(INST)/$(F2C) 2>&1
362
$(INST)/$(LAPACK): $(INST)/$(FORTRAN)
363
$(SAGE_SPKG) $(INST)/$(LAPACK) 2>&1
365
$(INST)/$(BLAS): $(INST)/$(FORTRAN)
366
$(SAGE_SPKG) $(INST)/$(BLAS) 2>&1
368
$(INST)/$(NUMPY): $(BASE) $(INST)/$(PYTHON) $(INST)/$(FORTRAN) $(INST)/$(F2C) $(INST)/$(LAPACK) $(INST)/$(BLAS) $(INST)/$(ATLAS)
369
$(SAGE_SPKG) $(NUMPY) 2>&1
371
$(INST)/$(SCIPY): $(INST)/$(FORTRAN) $(INST)/$(F2C) $(INST)/$(LAPACK) $(INST)/$(BLAS) $(INST)/$(NUMPY)
372
$(SAGE_SPKG) $(SCIPY) 2>&1
374
$(INST)/$(SCIPY_SANDBOX): $(INST)/$(SCIPY)
375
$(SAGE_SPKG) $(SCIPY_SANDBOX) 2>&1
377
$(INST)/$(CVXOPT): $(INST)/$(FORTRAN) $(INST)/$(F2C) $(INST)/$(LAPACK) $(INST)/$(BLAS) $(INST)/$(NUMPY) $(INST)/$(ATLAS)
378
$(SAGE_SPKG) $(CVXOPT) 2>&1