Ticket #9274: deps

File deps, 17.7 KB (added by mpatel, 9 years ago)

Updated spkg/install/deps based on 4.5.alpha1.

Line 
1INST = installed
2SAGE_SPKG = sage-spkg
3INSTALL = $(SAGE_ROOT)/spkg/pipestatus
4
5########################################
6# The base system; required in order to run sage-spkg
7########################################
8BASE = $(INST)/$(PREREQ) $(INST)/$(DIR) $(INST)/$(SAGE_BZIP2)       
9
10# Also install scripts before we continue with other spkgs
11BASE += $(INST)/$(SAGE_SCRIPTS)
12
13# Tell make not to look for files with these (base)names:
14.PHONY: all base scripts
15
16# Targets
17all: $(BASE) \
18     $(INST)/$(ATLAS) \
19     $(INST)/$(BLAS) \
20     $(INST)/$(BOEHM_GC) \
21     $(INST)/$(BOOST_CROPPED) \
22     $(INST)/$(CDDLIB) \
23     $(INST)/$(CEPHES) \
24     $(INST)/$(CLIQUER) \
25     $(INST)/$(CONWAY) \
26     $(INST)/$(CVXOPT) \
27     $(INST)/$(CYTHON) \
28     $(INST)/$(DOCUTILS) \
29     $(INST)/$(ECL) \
30     $(INST)/$(ECLIB) \
31     $(INST)/$(ECM) \
32     $(INST)/$(ELLIPTIC_CURVES) \
33     $(INST)/$(EXAMPLES) \
34     $(INST)/$(EXTCODE) \
35     $(INST)/$(F2C) \
36     $(INST)/$(FLINT) \
37     $(INST)/$(FLINTQS) \
38     $(INST)/$(FORTRAN) \
39     $(INST)/$(FPLLL) \
40     $(INST)/$(FREETYPE) \
41     $(INST)/$(G2RED) \
42     $(INST)/$(GAP) \
43     $(INST)/$(GD) \
44     $(INST)/$(GDMODULE) \
45     $(INST)/$(GFAN) \
46     $(INST)/$(GIVARO) \
47     $(INST)/$(GNUTLS) \
48     $(INST)/$(GRAPHS) \
49     $(INST)/$(GSL) \
50     $(INST)/$(ICONV) \
51     $(INST)/$(IML) \
52     $(INST)/$(IPYTHON) \
53     $(INST)/$(JINJA) \
54     $(INST)/$(JINJA2) \
55     $(INST)/$(LAPACK) \
56     $(INST)/$(LCALC) \
57     $(INST)/$(LIBGCRYPT) \
58     $(INST)/$(LIBGPG_ERROR) \
59     $(INST)/$(LIBM4RI) \
60     $(INST)/$(LIBPNG) \
61     $(INST)/$(LINBOX) \
62     $(INST)/$(MATPLOTLIB) \
63     $(INST)/$(MAXIMA) \
64     $(INST)/$(MERCURIAL) \
65     $(INST)/$(MOIN) \
66     $(INST)/$(MPFI) \
67     $(INST)/$(MPFR) \
68     $(INST)/$(MPIR) \
69     $(INST)/$(MPMATH) \
70     $(INST)/$(NETWORKX) \
71     $(INST)/$(NTL) \
72     $(INST)/$(NUMPY) \
73     $(INST)/$(OPENCDK) \
74     $(INST)/$(PALP) \
75     $(INST)/$(PARI) \
76     $(INST)/$(PEXPECT) \
77     $(INST)/$(PIL) \
78     $(INST)/$(POLYBORI) \
79     $(INST)/$(POLYTOPES_DB) \
80     $(INST)/$(PYCRYPTO) \
81     $(INST)/$(PYGMENTS) \
82     $(INST)/$(PYNAC) \
83     $(INST)/$(PYTHON) \
84     $(INST)/$(PYTHON_GNUTLS) \
85     $(INST)/$(RATPOINTS) \
86     $(INST)/$(R) \
87     $(INST)/$(READLINE) \
88     $(INST)/$(RUBIKS) \
89     $(INST)/$(SAGE) \
90     $(INST)/$(SAGENB) \
91     $(INST)/$(SAGETEX) \
92     $(INST)/$(SCIPY) \
93     $(INST)/$(SCIPY_SANDBOX) \
94     $(INST)/$(SCONS) \
95     $(INST)/$(SETUPTOOLS) \
96     $(INST)/$(SINGULAR) \
97     $(INST)/$(SPHINX) \
98     $(INST)/$(SQLALCHEMY) \
99     $(INST)/$(SQLITE) \
100     $(INST)/$(SYMMETRICA) \
101     $(INST)/$(SYMPOW) \
102     $(INST)/$(SYMPY) \
103     $(INST)/$(TACHYON) \
104     $(INST)/$(TERMCAP) \
105     $(INST)/$(TWISTED) \
106     $(INST)/$(WEAVE) \
107     $(INST)/$(ZLIB) \
108     $(INST)/$(ZNPOLY) \
109     $(INST)/$(ZODB)
110
111base: $(BASE)
112
113scripts: $(BASE)
114
115########################################
116# Building the base system
117########################################
118$(INST)/$(DIR):
119        $(INSTALL) "base/$(DIR)-install 2>&1" "tee -a $(SAGE_LOGS)/$(DIR).log"
120
121$(INST)/$(PREREQ): $(INST)/$(DIR)
122        $(INSTALL) "base/$(PREREQ)-install 2>&1" "tee -a $(SAGE_LOGS)/$(PREREQ).log"
123
124$(INST)/$(SAGE_BZIP2): $(INST)/$(PREREQ) $(INST)/$(DIR)
125        $(INSTALL) "base/$(SAGE_BZIP2)-install 2>&1" "tee -a $(SAGE_LOGS)/$(SAGE_BZIP2).log"
126
127$(INST)/$(SAGE_SCRIPTS): $(INST)/$(SAGE_BZIP2) $(INST)/$(PREREQ) \
128                         $(INST)/$(DIR)
129        $(INSTALL) "$(SAGE_SPKG) $(SAGE_SCRIPTS) 2>&1" "tee -a $(SAGE_LOGS)/$(SAGE_SCRIPTS).log"
130
131########################################
132# Building normal packages
133########################################
134$(INST)/$(ATLAS): $(BASE) $(INST)/$(LAPACK) $(INST)/$(PYTHON)
135        $(INSTALL) "$(SAGE_SPKG) $(ATLAS) 2>&1" "tee -a $(SAGE_LOGS)/$(ATLAS).log"
136
137$(INST)/$(BOEHM_GC): $(BASE)
138        $(INSTALL) "$(SAGE_SPKG) $(BOEHM_GC) 2>&1" "tee -a $(SAGE_LOGS)/$(BOEHM_GC).log"
139
140$(INST)/$(BOOST_CROPPED): $(BASE)
141        $(INSTALL) "$(SAGE_SPKG) $(BOOST_CROPPED) 2>&1" "tee -a $(SAGE_LOGS)/$(BOOST_CROPPED).log"
142
143$(INST)/$(CLIQUER): $(BASE) $(INST)/$(SCONS)
144        $(INSTALL) "$(SAGE_SPKG) $(CLIQUER) 2>&1" "tee -a $(SAGE_LOGS)/$(CLIQUER).log"
145
146$(INST)/$(TERMCAP): $(BASE)
147        $(INSTALL) "$(SAGE_SPKG) $(TERMCAP) 2>&1" "tee -a $(SAGE_LOGS)/$(TERMCAP).log"
148
149$(INST)/$(READLINE): $(BASE)
150        $(INSTALL) "$(SAGE_SPKG) $(READLINE) 2>&1" "tee -a $(SAGE_LOGS)/$(READLINE).log"
151
152$(INST)/$(ICONV): $(BASE)
153        $(INSTALL) "$(SAGE_SPKG) $(ICONV) 2>&1" "tee -a $(SAGE_LOGS)/$(ICONV).log"
154
155$(INST)/$(DOCUTILS): $(BASE) $(INST)/$(PYTHON)
156        $(INSTALL) "$(SAGE_SPKG) $(DOCUTILS) 2>&1" "tee -a $(SAGE_LOGS)/$(DOCUTILS).log"
157
158$(INST)/$(ELLIPTIC_CURVES): $(BASE)
159        $(INSTALL) "$(SAGE_SPKG) $(ELLIPTIC_CURVES) 2>&1" "tee -a $(SAGE_LOGS)/$(ELLIPTIC_CURVES).log"
160
161$(INST)/$(CONWAY): $(BASE)
162        $(INSTALL) "$(SAGE_SPKG) $(CONWAY) 2>&1" "tee -a $(SAGE_LOGS)/$(CONWAY).log"
163
164$(INST)/$(GRAPHS): $(BASE)
165        $(INSTALL) "$(SAGE_SPKG) $(GRAPHS) 2>&1" "tee -a $(SAGE_LOGS)/$(GRAPHS).log"
166
167$(INST)/$(PYTHON): $(BASE) $(INST)/$(ZLIB) $(INST)/$(TERMCAP) \
168                   $(INST)/$(READLINE) $(INST)/$(SQLITE) \
169                   $(INST)/$(GNUTLS) $(INST)/$(LIBPNG)
170        $(INSTALL) "$(SAGE_SPKG) $(PYTHON) 2>&1" "tee -a $(SAGE_LOGS)/$(PYTHON).log"
171
172$(INST)/$(MPIR): $(BASE) $(INST)/$(ICONV)
173        $(INSTALL) "$(SAGE_SPKG) $(MPIR) 2>&1" "tee -a $(SAGE_LOGS)/$(MPIR).log"
174
175$(INST)/$(GSL): $(BASE) $(INST)/$(ATLAS)
176        $(INSTALL) "$(SAGE_SPKG) $(GSL) 2>&1" "tee -a $(SAGE_LOGS)/$(GSL).log"
177
178$(INST)/$(NTL): $(BASE) $(INST)/$(MPIR)
179        $(INSTALL) "$(SAGE_SPKG) $(NTL) 2>&1" "tee -a $(SAGE_LOGS)/$(NTL).log"
180
181$(INST)/$(FPLLL): $(BASE) $(INST)/$(MPIR) $(INST)/$(MPFR)
182        $(INSTALL) "$(SAGE_SPKG) $(FPLLL) 2>&1" "tee -a $(SAGE_LOGS)/$(FPLLL).log"
183
184$(INST)/$(PARI): $(BASE) $(INST)/$(TERMCAP) $(INST)/$(READLINE) \
185                 $(INST)/$(MPIR)
186        $(INSTALL) "$(SAGE_SPKG) $(PARI) 2>&1" "tee -a $(SAGE_LOGS)/$(PARI).log"
187
188$(INST)/$(POLYBORI): $(BASE) $(INST)/$(PYTHON) $(INST)/$(SCONS) \
189                     $(INST)/$(BOOST_CROPPED) $(INST)/$(LIBM4RI)
190        $(INSTALL) "$(SAGE_SPKG) $(POLYBORI) 2>&1" "tee -a $(SAGE_LOGS)/$(POLYBORI).log"
191
192$(INST)/$(POLYTOPES_DB): $(BASE)
193        $(INSTALL) "$(SAGE_SPKG) $(POLYTOPES_DB) 2>&1" "tee -a $(SAGE_LOGS)/$(POLYTOPES_DB).log"
194
195$(INST)/$(MPFR): $(BASE) $(INST)/$(MPIR)
196        $(INSTALL) "$(SAGE_SPKG) $(MPFR) 2>&1" "tee -a $(SAGE_LOGS)/$(MPFR).log"
197
198$(INST)/$(MPFI): $(BASE) $(INST)/$(MPIR) $(INST)/$(MPFR)
199        $(INSTALL) "$(SAGE_SPKG) $(MPFI) 2>&1" "tee -a $(SAGE_LOGS)/$(MPFI).log"
200
201$(INST)/$(GIVARO): $(BASE) $(INST)/$(MPIR)
202        $(INSTALL) "$(SAGE_SPKG) $(GIVARO) 2>&1" "tee -a $(SAGE_LOGS)/$(GIVARO).log"
203
204$(INST)/$(LINBOX): $(BASE) $(INST)/$(MPIR) $(INST)/$(NTL) $(INST)/$(GIVARO) \
205                   $(INST)/$(GSL) $(INST)/$(ATLAS)
206        $(INSTALL) "$(SAGE_SPKG) $(LINBOX) 2>&1" "tee -a $(SAGE_LOGS)/$(LINBOX).log"
207
208$(INST)/$(IML): $(BASE) $(INST)/$(MPIR) $(INST)/$(GSL)
209        $(INSTALL) "$(SAGE_SPKG) $(IML) 2>&1" "tee -a $(SAGE_LOGS)/$(IML).log"
210
211$(INST)/$(ECLIB): $(BASE) $(INST)/$(MPIR) $(INST)/$(PARI) $(INST)/$(NTL)
212        $(INSTALL) "$(SAGE_SPKG) $(ECLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(ECLIB).log"
213
214$(INST)/$(G2RED): $(BASE) $(INST)/$(PARI)
215        $(INSTALL) "$(SAGE_SPKG) $(G2RED) 2>&1" "tee -a $(SAGE_LOGS)/$(G2RED).log"
216
217$(INST)/$(PALP): $(BASE)
218        $(INSTALL) "$(SAGE_SPKG) $(PALP) 2>&1" "tee -a $(SAGE_LOGS)/$(PALP).log"
219
220$(INST)/$(LCALC): $(BASE) $(INST)/$(PARI) $(INST)/$(MPFR)
221        $(INSTALL) "$(SAGE_SPKG) $(LCALC) 2>&1" "tee -a $(SAGE_LOGS)/$(LCALC).log"
222
223$(INST)/$(PYNAC): $(BASE) $(INST)/$(PYTHON)
224        $(INSTALL) "$(SAGE_SPKG) $(PYNAC) 2>&1" "tee -a $(SAGE_LOGS)/$(PYNAC).log"
225
226$(INST)/$(SYMPOW): $(BASE)
227        $(INSTALL) "$(SAGE_SPKG) $(SYMPOW) 2>&1" "tee -a $(SAGE_LOGS)/$(SYMPOW).log"
228
229$(INST)/$(SYMMETRICA): $(BASE)
230        $(INSTALL) "$(SAGE_SPKG) $(SYMMETRICA) 2>&1" "tee -a $(SAGE_LOGS)/$(SYMMETRICA).log"
231
232# gap requires SAGE so that gap_reset_workspace works.
233$(INST)/$(GAP): $(BASE) $(INST)/$(TERMCAP) $(INST)/$(READLINE) $(INST)/$(SAGE)
234        $(INSTALL) "$(SAGE_SPKG) $(GAP) 2>&1" "tee -a $(SAGE_LOGS)/$(GAP).log"
235
236$(INST)/$(IPYTHON): $(BASE) $(INST)/$(PYTHON)
237        $(INSTALL) "$(SAGE_SPKG) $(IPYTHON) 2>&1" "tee -a $(SAGE_LOGS)/$(IPYTHON).log"
238
239$(INST)/$(PEXPECT): $(BASE) $(INST)/$(PYTHON)
240        $(INSTALL) "$(SAGE_SPKG) $(PEXPECT) 2>&1" "tee -a $(SAGE_LOGS)/$(PEXPECT).log"
241
242$(INST)/$(GD): $(BASE) $(INST)/$(LIBPNG) $(INST)/$(FREETYPE) $(INST)/$(ICONV)
243        $(INSTALL) "$(SAGE_SPKG) $(GD) 2>&1" "tee -a $(SAGE_LOGS)/$(GD).log"
244
245$(INST)/$(GDMODULE): $(BASE) $(INST)/$(PYTHON) $(INST)/$(GD) $(INST)/$(ICONV)
246        $(INSTALL) "$(SAGE_SPKG) $(GDMODULE) 2>&1" "tee -a $(SAGE_LOGS)/$(GDMODULE).log"
247
248$(INST)/$(OPENCDK): $(BASE) $(INST)/$(ZLIB) $(INST)/$(LIBGCRYPT)
249        $(INSTALL) "$(SAGE_SPKG) $(OPENCDK) 2>&1" "tee -a $(SAGE_LOGS)/$(OPENCDK).log"
250
251$(INST)/$(LIBGPG_ERROR): $(BASE) $(INST)/$(ICONV)
252        $(INSTALL) "$(SAGE_SPKG) $(LIBGPG_ERROR) 2>&1" "tee -a $(SAGE_LOGS)/$(LIBGPG_ERROR).log"
253
254$(INST)/$(LIBGCRYPT): $(BASE) $(INST)/$(LIBGPG_ERROR)
255        $(INSTALL) "$(SAGE_SPKG) $(LIBGCRYPT) 2>&1" "tee -a $(SAGE_LOGS)/$(LIBGCRYPT).log"
256
257$(INST)/$(GNUTLS): $(BASE) $(INST)/$(ZLIB) $(INST)/$(OPENCDK) \
258                   $(INST)/$(LIBGCRYPT) $(INST)/$(LIBGPG_ERROR)
259        $(INSTALL) "$(SAGE_SPKG) $(GNUTLS) 2>&1" "tee -a $(SAGE_LOGS)/$(GNUTLS).log"
260
261$(INST)/$(PYTHON_GNUTLS): $(BASE) $(INST)/$(GNUTLS) $(INST)/$(PYTHON)
262        $(INSTALL) "$(SAGE_SPKG) $(PYTHON_GNUTLS) 2>&1" "tee -a $(SAGE_LOGS)/$(PYTHON_GNUTLS).log"
263
264$(INST)/$(SCONS): $(BASE) $(INST)/$(PYTHON)
265        $(INSTALL) "$(SAGE_SPKG) $(SCONS) 2>&1" "tee -a $(SAGE_LOGS)/$(SCONS).log"
266
267$(INST)/$(RUBIKS): $(BASE)
268        $(INSTALL) "$(SAGE_SPKG) $(RUBIKS) 2>&1" "tee -a $(SAGE_LOGS)/$(RUBIKS).log"
269
270# extcode must be built before moin moin because it has jsmath in it.
271$(INST)/$(MOIN): $(BASE) $(INST)/$(PYTHON) $(INST)/$(EXTCODE) \
272                 $(INST)/$(SAGENB)
273        $(INSTALL) "$(SAGE_SPKG) $(MOIN) 2>&1" "tee -a $(SAGE_LOGS)/$(MOIN).log"
274
275$(INST)/$(SQLITE): $(BASE) $(INST)/$(TERMCAP) $(INST)/$(READLINE)
276        $(INSTALL) "$(SAGE_SPKG) $(SQLITE) 2>&1" "tee -a $(SAGE_LOGS)/$(SQLITE).log"
277
278$(INST)/$(MERCURIAL): $(BASE) $(INST)/$(PYTHON)
279        $(INSTALL) "$(SAGE_SPKG) $(MERCURIAL) 2>&1" "tee -a $(SAGE_LOGS)/$(MERCURIAL).log"
280
281$(INST)/$(SAGETEX): $(BASE) $(INST)/$(PYTHON)
282        $(INSTALL) "$(SAGE_SPKG) $(SAGETEX) 2>&1" "tee -a $(SAGE_LOGS)/$(SAGETEX).log"
283
284$(INST)/$(SETUPTOOLS): $(BASE) $(INST)/$(PYTHON)
285        $(INSTALL) "$(SAGE_SPKG) $(SETUPTOOLS) 2>&1" "tee -a $(SAGE_LOGS)/$(SETUPTOOLS).log"
286
287$(INST)/$(SINGULAR): $(BASE) $(INST)/$(MPIR) $(INST)/$(NTL) \
288                     $(INST)/$(TERMCAP) $(INST)/$(READLINE) $(INST)/$(MPFR)
289        $(INSTALL) "$(SAGE_SPKG) $(SINGULAR) 2>&1" "tee -a $(SAGE_LOGS)/$(SINGULAR).log"
290
291$(INST)/$(PYCRYPTO): $(BASE) $(INST)/$(PYTHON)
292        $(INSTALL) "$(SAGE_SPKG) $(PYCRYPTO) 2>&1" "tee -a $(SAGE_LOGS)/$(PYCRYPTO).log"
293
294$(INST)/$(WEAVE): $(BASE) $(INST)/$(NUMPY)
295        $(INSTALL) "$(SAGE_SPKG) $(WEAVE) 2>&1" "tee -a $(SAGE_LOGS)/$(WEAVE).log"
296
297$(INST)/$(NETWORKX): $(BASE) $(INST)/$(PYTHON)
298        $(INSTALL) "$(SAGE_SPKG) $(NETWORKX) 2>&1" "tee -a $(SAGE_LOGS)/$(NETWORKX).log"
299
300$(INST)/$(MPMATH): $(BASE) $(INST)/$(PYTHON)
301        $(INSTALL) "$(SAGE_SPKG) $(MPMATH) 2>&1" "tee -a $(SAGE_LOGS)/$(MPMATH).log"
302
303$(INST)/$(ZLIB): $(BASE)
304        $(INSTALL) "$(SAGE_SPKG) $(ZLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(ZLIB).log"
305
306##  << NON-GUI matplotlib >>
307$(INST)/$(FREETYPE): $(BASE)
308        $(INSTALL) "$(SAGE_SPKG) $(FREETYPE) 2>&1" "tee -a $(SAGE_LOGS)/$(FREETYPE).log"
309
310$(INST)/$(LIBPNG): $(BASE)
311        $(INSTALL) "$(SAGE_SPKG) $(LIBPNG) 2>&1" "tee -a $(SAGE_LOGS)/$(LIBPNG).log"
312
313$(INST)/$(MATPLOTLIB): $(BASE) $(INST)/$(PYTHON) $(INST)/$(NUMPY) \
314                       $(INST)/$(FREETYPE) $(INST)/$(LIBPNG) \
315                       $(INST)/$(GDMODULE)
316        $(INSTALL) "$(SAGE_SPKG) $(MATPLOTLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(MATPLOTLIB).log"
317####
318
319$(INST)/$(CDDLIB): $(BASE) $(INST)/$(MPIR)
320        $(INSTALL) "$(SAGE_SPKG) $(CDDLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(CDDLIB).log"
321
322$(INST)/$(GFAN): $(BASE) $(INST)/$(MPIR) $(INST)/$(CDDLIB)
323        $(INSTALL) "$(SAGE_SPKG) $(GFAN) 2>&1" "tee -a $(SAGE_LOGS)/$(GFAN).log"
324
325$(INST)/$(TACHYON): $(BASE) $(INST)/$(LIBPNG)
326        $(INSTALL) "$(SAGE_SPKG) $(TACHYON) 2>&1" "tee -a $(SAGE_LOGS)/$(TACHYON).log"
327
328$(INST)/$(ECM): $(BASE) $(INST)/$(MPIR)
329        $(INSTALL) "$(SAGE_SPKG) $(ECM) 2>&1" "tee -a $(SAGE_LOGS)/$(ECM).log"
330
331$(INST)/$(RATPOINTS): $(BASE) $(INST)/$(MPIR)
332        $(INSTALL) "$(SAGE_SPKG) $(RATPOINTS) 2>&1" "tee -a $(SAGE_LOGS)/$(RATPOINTS).log"
333
334$(INST)/$(ECL): $(BASE) $(INST)/$(MPIR) $(INST)/$(TERMCAP) \
335                $(INST)/$(READLINE) $(INST)/$(BOEHM_GC)
336        $(INSTALL) "$(SAGE_SPKG) $(ECL) 2>&1" "tee -a $(SAGE_LOGS)/$(ECL).log"
337
338$(INST)/$(MAXIMA): $(BASE) $(INST)/$(ECL)
339        $(INSTALL) "$(SAGE_SPKG) $(MAXIMA) 2>&1" "tee -a $(SAGE_LOGS)/$(MAXIMA).log"
340
341$(INST)/$(R): $(BASE) $(INST)/$(PYTHON) $(INST)/$(ATLAS) $(INST)/$(ICONV)
342        $(INSTALL) "$(SAGE_SPKG) $(R) 2>&1" "tee -a $(SAGE_LOGS)/$(R).log"
343
344$(INST)/$(SYMPY): $(BASE) $(INST)/$(PYTHON)
345        $(INSTALL) "$(SAGE_SPKG) $(SYMPY) 2>&1" "tee -a $(SAGE_LOGS)/$(SYMPY).log"
346
347$(INST)/$(CYTHON): $(BASE) $(INST)/$(PYTHON)
348        $(INSTALL) "$(SAGE_SPKG) $(CYTHON) 2>&1" "tee -a $(SAGE_LOGS)/$(CYTHON).log"
349
350$(INST)/$(FLINTQS): $(BASE) $(INST)/$(MPIR)
351        $(INSTALL) "$(SAGE_SPKG) $(FLINTQS) 2>&1" "tee -a $(SAGE_LOGS)/$(FLINTQS).log"
352
353$(INST)/$(FLINT): $(BASE) $(INST)/$(MPIR) $(INST)/$(NTL)
354        $(INSTALL) "$(SAGE_SPKG) $(FLINT) 2>&1" "tee -a $(SAGE_LOGS)/$(FLINT).log"
355
356# Mercurial must be built before building extcode. See trac ticket #6508.
357$(INST)/$(EXTCODE): $(BASE) $(INST)/$(MERCURIAL)
358        $(INSTALL) "$(SAGE_SPKG) $(EXTCODE) 2>&1" "tee -a $(SAGE_LOGS)/$(EXTCODE).log"
359
360$(INST)/$(EXAMPLES): $(BASE)
361        $(INSTALL) "$(SAGE_SPKG) $(EXAMPLES) 2>&1" "tee -a $(SAGE_LOGS)/$(EXAMPLES).log"
362
363$(INST)/$(LIBM4RI): $(BASE)
364        $(INSTALL) "$(SAGE_SPKG) $(LIBM4RI) 2>&1" "tee -a $(SAGE_LOGS)/$(LIBM4RI).log"
365
366$(INST)/$(ZNPOLY): $(BASE) $(INST)/$(MPIR)
367        $(INSTALL) "$(SAGE_SPKG) $(ZNPOLY) 2>&1" "tee -a $(SAGE_LOGS)/$(ZNPOLY).log"
368
369# setuptools forgets to update easy-install.pth during parallel
370# builds, so we build the relevant packages serially.  Note: To avoid
371# branching, we haven't given explicit dependencies, but the chain's
372# order is important.
373$(INST)/$(SAGENB): $(BASE) $(INST)/$(SQLALCHEMY)
374        $(INSTALL) "$(SAGE_SPKG) $(SAGENB) 2>&1" "tee -a $(SAGE_LOGS)/$(SAGENB).log"
375
376$(INST)/$(SQLALCHEMY): $(BASE) $(INST)/$(SPHINX)
377        $(INSTALL) "$(SAGE_SPKG) $(SQLALCHEMY) 2>&1" "tee -a $(SAGE_LOGS)/$(SQLALCHEMY).log"
378
379$(INST)/$(SPHINX): $(BASE) $(INST)/$(JINJA2)
380        $(INSTALL) "$(SAGE_SPKG) $(SPHINX) 2>&1" "tee -a $(SAGE_LOGS)/$(SPHINX).log"
381
382$(INST)/$(JINJA2): $(BASE) $(INST)/$(JINJA)
383        $(INSTALL) "$(SAGE_SPKG) $(JINJA2) 2>&1" "tee -a $(SAGE_LOGS)/$(JINJA2).log"
384
385$(INST)/$(JINJA): $(BASE) $(INST)/$(PYGMENTS)
386        $(INSTALL) "$(SAGE_SPKG) $(JINJA) 2>&1" "tee -a $(SAGE_LOGS)/$(JINJA).log"
387
388$(INST)/$(PYGMENTS): $(BASE) $(INST)/$(ZODB)
389        $(INSTALL) "$(SAGE_SPKG) $(PYGMENTS) 2>&1" "tee -a $(SAGE_LOGS)/$(PYGMENTS).log"
390
391$(INST)/$(ZODB): $(BASE) $(INST)/$(TWISTED)
392        $(INSTALL) "$(SAGE_SPKG) $(ZODB) 2>&1" "tee -a $(SAGE_LOGS)/$(ZODB).log"
393
394$(INST)/$(TWISTED): $(BASE) $(INST)/$(PYTHON) $(INST)/$(PYTHON_GNUTLS) \
395                    $(INST)/$(PEXPECT) $(INST)/$(DOCUTILS) \
396                    $(INST)/$(SETUPTOOLS)
397        $(INSTALL) "$(SAGE_SPKG) $(TWISTED) 2>&1" "tee -a $(SAGE_LOGS)/$(TWISTED).log"
398
399# For reference and for when the setuptools problem is solved, here
400# are the actual dependencies, as of 4.3.3:
401#
402# sagenb: python pexpect twisted jinja jinja2 sphinx docutils setuptools
403# sqlalchemy: python setuptools
404# sphinx: docutils jinja2 pygments
405# jinja2: python docutils setuptools
406# jinja: python docutils setuptools
407# pygments: python setuptools
408# twisted: python python_gnutls setuptools
409# zodb: python setuptools
410
411# All components that are linked against extensions need to be listed here
412$(INST)/$(SAGE): $(BASE) \
413                 $(INST)/$(ATLAS) \
414                 $(INST)/$(CEPHES) \
415                 $(INST)/$(CLIQUER) \
416                 $(INST)/$(CONWAY) \
417                 $(INST)/$(CYTHON) \
418                 $(INST)/$(DOCUTILS) \
419                 $(INST)/$(ECL) \
420                 $(INST)/$(ECLIB) \
421                 $(INST)/$(ECM) \
422                 $(INST)/$(ELLIPTIC_CURVES) \
423                 $(INST)/$(EXTCODE) \
424                 $(INST)/$(FLINT) \
425                 $(INST)/$(FPLLL) \
426                 $(INST)/$(GDMODULE) \
427                 $(INST)/$(GRAPHS) \
428                 $(INST)/$(GIVARO) \
429                 $(INST)/$(GSL) \
430                 $(INST)/$(IML) \
431                 $(INST)/$(IPYTHON) \
432                 $(INST)/$(LIBM4RI) \
433                 $(INST)/$(LINBOX) \
434                 $(INST)/$(MATPLOTLIB) \
435                 $(INST)/$(MERCURIAL) \
436                 $(INST)/$(MPFI) \
437                 $(INST)/$(MPFR) \
438                 $(INST)/$(MPIR) \
439                 $(INST)/$(MPMATH) \
440                 $(INST)/$(NETWORKX) \
441                 $(INST)/$(NTL) \
442                 $(INST)/$(NUMPY) \
443                 $(INST)/$(PARI) \
444                 $(INST)/$(PEXPECT) \
445                 $(INST)/$(POLYBORI) \
446                 $(INST)/$(PYCRYPTO) \
447                 $(INST)/$(PYNAC) \
448                 $(INST)/$(PYTHON) \
449                 $(INST)/$(R) \
450                 $(INST)/$(RATPOINTS) \
451                 $(INST)/$(RUBIKS) \
452                 $(INST)/$(SAGENB) \
453                 $(INST)/$(SCONS) \
454                 $(INST)/$(SETUPTOOLS) \
455                 $(INST)/$(SINGULAR) \
456                 $(INST)/$(SYMMETRICA) \
457                 $(INST)/$(SYMPY) \
458                 $(INST)/$(ZNPOLY)
459        $(INSTALL) "$(SAGE_SPKG) $(SAGE) 2>&1" "tee -a $(SAGE_LOGS)/$(SAGE).log"
460
461$(INST)/$(FORTRAN): $(BASE)
462        $(INSTALL) "$(SAGE_SPKG) $(FORTRAN) 2>&1" "tee -a $(SAGE_LOGS)/$(FORTRAN).log"
463
464$(INST)/$(F2C): $(BASE) $(INST)/$(FORTRAN)
465        $(INSTALL) "$(SAGE_SPKG) $(F2C) 2>&1" "tee -a $(SAGE_LOGS)/$(F2C).log"
466
467$(INST)/$(PIL): $(BASE) $(INST)/$(PYTHON)
468        $(INSTALL) "$(SAGE_SPKG) $(PIL) 2>&1" "tee -a $(SAGE_LOGS)/$(PIL).log"
469
470$(INST)/$(LAPACK): $(BASE) $(INST)/$(FORTRAN)
471        $(INSTALL) "$(SAGE_SPKG) $(LAPACK) 2>&1" "tee -a $(SAGE_LOGS)/$(LAPACK).log"
472
473$(INST)/$(BLAS): $(BASE) $(INST)/$(FORTRAN)
474        $(INSTALL) "$(SAGE_SPKG) $(BLAS) 2>&1" "tee -a $(SAGE_LOGS)/$(BLAS).log"
475
476$(INST)/$(NUMPY): $(BASE) $(INST)/$(PYTHON) $(INST)/$(FORTRAN) $(INST)/$(F2C) \
477                  $(INST)/$(LAPACK) $(INST)/$(BLAS) $(INST)/$(ATLAS)
478        $(INSTALL) "$(SAGE_SPKG) $(NUMPY) 2>&1" "tee -a $(SAGE_LOGS)/$(NUMPY).log"
479
480$(INST)/$(SCIPY): $(BASE) $(INST)/$(FORTRAN) $(INST)/$(F2C) \
481                  $(INST)/$(LAPACK) $(INST)/$(BLAS) $(INST)/$(NUMPY)
482        $(INSTALL) "$(SAGE_SPKG) $(SCIPY) 2>&1" "tee -a $(SAGE_LOGS)/$(SCIPY).log"
483
484$(INST)/$(SCIPY_SANDBOX): $(BASE) $(INST)/$(SCIPY)
485        $(INSTALL) "$(SAGE_SPKG) $(SCIPY_SANDBOX) 2>&1" "tee -a $(SAGE_LOGS)/$(SCIPY_SANDBOX).log"
486
487$(INST)/$(CVXOPT): $(BASE) $(INST)/$(FORTRAN) $(INST)/$(F2C) \
488                   $(INST)/$(LAPACK) $(INST)/$(BLAS) $(INST)/$(NUMPY) \
489                   $(INST)/$(ATLAS) $(INST)/$(CEPHES)
490        $(INSTALL) "$(SAGE_SPKG) $(CVXOPT) 2>&1" "tee -a $(SAGE_LOGS)/$(CVXOPT).log"
491
492$(INST)/$(CEPHES): $(BASE)
493        $(INSTALL) "$(SAGE_SPKG) $(CEPHES) 2>&1" "tee -a $(SAGE_LOGS)/$(CEPHES).log"