@@ -79,6 +79,7 @@ all-sage: \
7979 $(INST)/$(PARI) \
8080 $(INST)/$(PEXPECT) \
8181 $(INST)/$(PILLOW) \
82+ $(INST)/$(PIP) \
8283 $(INST)/$(PKGCONF) \
8384 $(INST)/$(PKGCONFIG) \
8485 $(INST)/$(POLYBORI) \
@@ -143,12 +144,9 @@ SAGERUNTIME = $(SCRIPTS) $(INST)/sage $(INST)/$(SAGENB) $(INST)/$(IPYTHON)
143144###############################################################################
144145# Building the base system
145146#
146- # This consists of packages which are required for the Sage build system
147- # but not for Sage itself. Since nothing explicitly depends on these,
148- # an update of these packages will not trigger a rebuild of every other
149- # package during an upgrade, see #13415.
147+ # This consists of packages which are required for the Sage build system.
150148###############################################################################
151- base: $(INST)/prereq $(INST)/$(BZIP2) $(INST)/$(PATCH)
149+ base: $(INST)/prereq $(INST)/$(BZIP2) $(INST)/$(PATCH) $(INST)/$(PKGCONF)
152150
153151$(INST)/prereq: ../configure
154152 @cd ..; rm -f config.log; ln -s logs/pkgs/config.log config.log; \
@@ -175,10 +173,10 @@ $(INST)/$(BZIP2): $(INST)/prereq $(INST)/$(PKGCONF)
175173# Building normal packages
176174###############################################################################
177175
178- $(INST)/$(ATLAS): $(INST)/$(PYTHON)
176+ $(INST)/$(ATLAS): | $(INST)/$(PYTHON)
179177 +$(PIPE) "$(SAGE_SPKG) $(ATLAS) 2>&1" "tee -a $(SAGE_LOGS)/$(ATLAS).log"
180178
181- $(INST)/$(BOEHM_GC): $(INST)/$(PKGCONF)
179+ $(INST)/$(BOEHM_GC):
182180 +$(PIPE) "$(SAGE_SPKG) $(BOEHM_GC) 2>&1" "tee -a $(SAGE_LOGS)/$(BOEHM_GC).log"
183181
184182$(INST)/$(BOOST_CROPPED):
@@ -190,7 +188,7 @@ $(INST)/$(CLIQUER):
190188$(INST)/$(COMBINATORIAL_DESIGNS):
191189 +$(PIPE) "$(SAGE_SPKG) $(COMBINATORIAL_DESIGNS) 2>&1" "tee -a $(SAGE_LOGS)/$(COMBINATORIAL_DESIGNS).log"
192190
193- $(INST)/$(NCURSES): $(INST)/$(PKGCONF)
191+ $(INST)/$(NCURSES):
194192 +$(PIPE) "$(SAGE_SPKG) $(NCURSES) 2>&1" "tee -a $(SAGE_LOGS)/$(NCURSES).log"
195193
196194$(INST)/$(READLINE): $(INST)/$(NCURSES)
@@ -202,12 +200,12 @@ $(INST)/$(ICONV):
202200$(INST)/$(DOCUTILS): $(INST)/$(PYTHON)
203201 +$(PIPE) "$(SAGE_SPKG) $(DOCUTILS) 2>&1" "tee -a $(SAGE_LOGS)/$(DOCUTILS).log"
204202
205- $(INST)/$(ELLIPTIC_CURVES): $(INST)/$(PYTHON ) $(INST)/$(SQLITE )
203+ $(INST)/$(ELLIPTIC_CURVES): | $(INST)/$(SQLITE ) $(INST)/$(PYTHON )
206204 +$(PIPE) "$(SAGE_SPKG) $(ELLIPTIC_CURVES) 2>&1" "tee -a $(SAGE_LOGS)/$(ELLIPTIC_CURVES).log"
207205
208206# CONWAY depends on depends on SAGERUNTIME because it runs Sage code to
209207# generate a Sage object (.sobj).
210- $(INST)/$(CONWAY): $(SAGERUNTIME)
208+ $(INST)/$(CONWAY): | $(SAGERUNTIME)
211209 +$(PIPE) "$(SAGE_SPKG) $(CONWAY) 2>&1" "tee -a $(SAGE_LOGS)/$(CONWAY).log"
212210
213211$(INST)/$(GRAPHS):
@@ -216,8 +214,9 @@ $(INST)/$(GRAPHS):
216214$(INST)/$(GLPK): $(INST)/$(MPIR) $(INST)/$(ZLIB)
217215 +$(PIPE) "$(SAGE_SPKG) $(GLPK) 2>&1" "tee -a $(SAGE_LOGS)/$(GLPK).log"
218216
219- $(INST)/$(PYTHON): $(INST)/$(ZLIB) $(INST)/$(BZIP2) $(INST)/$(PKGCONF) \
220- $(INST)/$(READLINE) $(INST)/$(SQLITE) $(INST)/$(LIBPNG)
217+ $(INST)/$(PYTHON): $(INST)/$(ZLIB) $(INST)/$(READLINE) \
218+ $(INST)/$(SQLITE) $(INST)/$(LIBPNG) \
219+ | $(INST)/$(BZIP2)
221220 +$(PIPE) "$(SAGE_SPKG) $(PYTHON) 2>&1" "tee -a $(SAGE_LOGS)/$(PYTHON).log"
222221
223222$(INST)/$(MPIR): $(INST)/$(ICONV)
@@ -236,7 +235,7 @@ $(INST)/$(FPLLL): $(INST)/$(MPIR) $(INST)/$(MPFR)
236235 +$(PIPE) "$(SAGE_SPKG) $(FPLLL) 2>&1" "tee -a $(SAGE_LOGS)/$(FPLLL).log"
237236
238237$(INST)/$(PARI): $(INST)/$(READLINE) $(INST)/$(MPIR) \
239- $(INST)/$(PARI_GALDATA) $(INST)/$(PARI_SEADATA_SMALL)
238+ | $(INST)/$(PARI_GALDATA) $(INST)/$(PARI_SEADATA_SMALL)
240239 +$(PIPE) "$(SAGE_SPKG) $(PARI) 2>&1" "tee -a $(SAGE_LOGS)/$(PARI).log"
241240
242241$(INST)/$(PARI_GALDATA):
@@ -245,6 +244,9 @@ $(INST)/$(PARI_GALDATA):
245244$(INST)/$(PARI_SEADATA_SMALL):
246245 +$(PIPE) "$(SAGE_SPKG) $(PARI_SEADATA_SMALL) 2>&1" "tee -a $(SAGE_LOGS)/$(PARI_SEADATA_SMALL).log"
247246
247+ $(INST)/$(PIP): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
248+ +$(PIPE) "$(SAGE_SPKG) $(PIP) 2>&1" "tee -a $(SAGE_LOGS)/$(PIP).log"
249+
248250$(INST)/$(POLYBORI): $(INST)/$(PYTHON) $(INST)/$(IPYTHON) \
249251 $(INST)/$(SCONS) $(INST)/$(BOOST_CROPPED) \
250252 $(INST)/$(M4RI) $(INST)/$(GD)
@@ -330,9 +332,9 @@ $(INST)/$(SQLITE): $(INST)/$(READLINE)
330332
331333# To build SageTeX, you just need Python, but to test (SAGE_CHECK=yes)
332334# SageTeX, you actually need to run Sage, produce plots,...
333- $(INST)/$(SAGETEX): $(INST)/$(PYTHON) \
334- $(SAGERUNTIME) $(INST)/$(MAXIMA ) $(INST)/$(SCIPY ) \
335- $(INST)/$(MATPLOTLIB) $(INST)/$(PILLOW) $(INST)/$(TACHYON )
335+ $(INST)/$(SAGETEX): $(INST)/$(PYTHON) $(INST)/$(MAXIMA) $(INST)/$(SCIPY) \
336+ $(INST)/$(MATPLOTLIB) $(INST)/$(PILLOW ) $(INST)/$(TACHYON ) \
337+ | $(SAGERUNTIME )
336338 +$(PIPE) "$(SAGE_SPKG) $(SAGETEX) 2>&1" "tee -a $(SAGE_LOGS)/$(SAGETEX).log"
337339
338340$(INST)/$(SETUPTOOLS): $(INST)/$(PYTHON)
@@ -357,7 +359,7 @@ $(INST)/$(ZEROMQ):
357359$(INST)/$(ZLIB):
358360 +$(PIPE) "$(SAGE_SPKG) $(ZLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(ZLIB).log"
359361
360- $(INST)/$(JMOL): $(INST)/$(SAGENB)
362+ $(INST)/$(JMOL): | $(INST)/$(SAGENB)
361363 +$(PIPE) "$(SAGE_SPKG) $(JMOL) 2>&1" "tee -a $(SAGE_LOGS)/$(JMOL).log"
362364
363365$(INST)/$(FREETYPE): $(INST)/$(LIBPNG)
@@ -382,10 +384,10 @@ $(INST)/$(TORNADO): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
382384 +$(PIPE) "$(SAGE_SPKG) $(TORNADO) 2>&1" "tee -a $(SAGE_LOGS)/$(TORNADO).log"
383385
384386$(INST)/$(MATPLOTLIB): $(INST)/$(PYTHON) $(INST)/$(NUMPY) \
385- $(INST)/$(FREETYPE) $(INST)/$(LIBPNG) \
386- $(INST)/$(GDMODULE) $(INST)/$(DATEUTIL) \
387- $(INST)/$(PKGCONF ) $(INST)/$(PYPARSING ) \
388- $(INST)/$(SETUPTOOLS) $(INST)/$(TORNADO) $(INST)/$(SIX)
387+ $(INST)/$(FREETYPE) $(INST)/$(LIBPNG) \
388+ $(INST)/$(GDMODULE) $(INST)/$(DATEUTIL) \
389+ $(INST)/$(PYPARSING ) $(INST)/$(SETUPTOOLS ) \
390+ $(INST)/$(TORNADO) $(INST)/$(SIX)
389391 +$(PIPE) "$(SAGE_SPKG) $(MATPLOTLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(MATPLOTLIB).log"
390392
391393$(INST)/$(CDDLIB): $(INST)/$(MPIR)
@@ -409,7 +411,7 @@ $(INST)/$(ECL): $(INST)/$(MPIR) $(INST)/$(READLINE) $(INST)/$(BOEHM_GC)
409411$(INST)/$(MAXIMA): $(INST)/$(ECL)
410412 +$(PIPE) "$(SAGE_SPKG) $(MAXIMA) 2>&1" "tee -a $(SAGE_LOGS)/$(MAXIMA).log"
411413
412- $(INST)/$(R): $(INST)/$(ATLAS) $(INST)/$(ICONV) $(INST)/$(READLINE) $(INST)/$(PKGCONF)
414+ $(INST)/$(R): $(INST)/$(ATLAS) $(INST)/$(ICONV) $(INST)/$(READLINE)
413415 +$(PIPE) "$(SAGE_SPKG) $(R) 2>&1" "tee -a $(SAGE_LOGS)/$(R).log"
414416
415417$(INST)/$(RPY): $(INST)/$(PYTHON) $(INST)/$(R)
@@ -430,15 +432,15 @@ $(INST)/$(FLINT): $(INST)/$(MPIR) $(INST)/$(MPFR) $(INST)/$(NTL)
430432$(INST)/$(ECLIB): $(INST)/$(PARI) $(INST)/$(NTL) $(INST)/$(FLINT)
431433 +$(PIPE) "$(SAGE_SPKG) $(ECLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(ECLIB).log"
432434
433- $(INST)/$(M4RI): $(INST)/$(LIBPNG) $(INST)/$(PKGCONF)
435+ $(INST)/$(M4RI): $(INST)/$(LIBPNG)
434436 +$(PIPE) "$(SAGE_SPKG) $(M4RI) 2>&1" "tee -a $(SAGE_LOGS)/$(M4RI).log"
435437
436438$(INST)/$(M4RIE): $(INST)/$(M4RI) $(INST)/$(GIVARO) $(INST)/$(NTL)
437439 +$(PIPE) "$(SAGE_SPKG) $(M4RIE) 2>&1" "tee -a $(SAGE_LOGS)/$(M4RIE).log"
438440
439441# zn_poly really does depend on Python, despite this is far from obvious.
440442# The 'configure' script in zn_poly calls Python to make a 'makefile'.
441- $(INST)/$(ZNPOLY): $(INST)/$(MPIR) $(INST)/$(PYTHON)
443+ $(INST)/$(ZNPOLY): $(INST)/$(MPIR) | $(INST)/$(PYTHON)
442444 +$(PIPE) "$(SAGE_SPKG) $(ZNPOLY) 2>&1" "tee -a $(SAGE_LOGS)/$(ZNPOLY).log"
443445
444446$(INST)/$(SAGENB): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS) $(INST)/$(PEXPECT) \
@@ -533,16 +535,17 @@ $(INST)/$(PILLOW): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
533535$(INST)/$(PKGCONFIG): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
534536 +$(PIPE) "$(SAGE_SPKG) $(PKGCONFIG) 2>&1" "tee -a $(SAGE_LOGS)/$(PKGCONFIG).log"
535537
536- $(INST)/$(NUMPY): $(INST)/$(PYTHON) $(INST)/$(ATLAS) $(INST)/$(PKGCONF)
538+ $(INST)/$(NUMPY): $(INST)/$(PYTHON) $(INST)/$(ATLAS)
537539 +$(PIPE) "$(SAGE_SPKG) $(NUMPY) 2>&1" "tee -a $(SAGE_LOGS)/$(NUMPY).log"
538540
539541$(INST)/$(SCIPY): $(INST)/$(ATLAS) $(INST)/$(NUMPY)
540542 +$(PIPE) "$(SAGE_SPKG) $(SCIPY) 2>&1" "tee -a $(SAGE_LOGS)/$(SCIPY).log"
541543
542544# matplotlib is needed to test cvxopt (i.e., if SAGE_CHECK=yes). See #12742.
543545$(INST)/$(CVXOPT): $(INST)/$(NUMPY) \
544- $(INST)/$(ATLAS) $(INST)/$(CEPHES) \
545- $(INST)/$(GSL) $(INST)/$(GLPK) $(INST)/$(MATPLOTLIB)
546+ $(INST)/$(ATLAS) $(INST)/$(CEPHES) \
547+ $(INST)/$(GSL) $(INST)/$(GLPK) \
548+ | $(INST)/$(MATPLOTLIB)
546549 +$(PIPE) "$(SAGE_SPKG) $(CVXOPT) 2>&1" "tee -a $(SAGE_LOGS)/$(CVXOPT).log"
547550
548551$(INST)/$(CEPHES):
0 commit comments