Sorry, I forgot about the file:

#==============================================================================
# This file has been automatically generated by
#   <MY_HOME>/sage/build/install
# You should not edit it by hand
#==============================================================================

SHELL = /bin/bash

# Standard packages
ATLAS=atlas-3.10.2
BOEHM_GC=boehm_gc-7.2d.p0
BOOST_CROPPED=boost_cropped-1.52.0
BZIP2=bzip2-1.0.6.20140317
CDDLIB=cddlib-094g.p0
CEPHES=cephes-2.8.p1
CLIQUER=cliquer-1.21.p2
COMBINATORIAL_DESIGNS=combinatorial_designs-20140630
CONWAY=conway_polynomials-0.4.p0
CVXOPT=cvxopt-1.1.7
CYTHON=cython-0.21.1
DATEUTIL=dateutil-2.2
DOCUTILS=docutils-0.7.p0
ECL=ecl-13.5.1.p0
ECLIB=eclib-20140921
ECM=ecm-6.4.4
ELLIPTIC_CURVES=elliptic_curves-0.7
FFLASFFPACK=fflas_ffpack-1.6.0.p1
FLINT=flint-2.4.4
FLINTQS=flintqs-20070817.p8
FPLLL=libfplll-4.0.4
FREETYPE=freetype-2.5.2.p1
GAP=gap-4.7.5
GCC=gcc-4.9.2
GD=gd-2.0.35.p7
GDMODULE=gdmodule-0.56.p8
GFAN=gfan-0.5.p0
GF2X=gf2x-1.1.p1
GIT=git-2.1.2
GIVARO=givaro-3.7.1
GLPK=glpk-4.44.p0
GRAPHS=graphs-20120404.p4
GSL=gsl-1.15.p1
ICONV=iconv-1.14
IML=iml-1.0.4
IPYTHON=ipython-2.3.0
JINJA2=jinja2-2.5.5
JMOL=jmol-14.2.4_2014.08.03
LCALC=lcalc-1.23.p13
LRCALC=lrcalc-1.1.7
LIBGAP=libgap-4.7.5.1
LIBPNG=libpng-1.2.51.p0
LINBOX=linbox-1.3.2.p1
M4RI=m4ri-20140914
M4RIE=m4rie-20140914
MATPLOTLIB=matplotlib-1.3.1
MAXIMA=maxima-5.34.1.p1
MPC=mpc-1.0.2.p0
MPFI=mpfi-1.5.1
MPFR=mpfr-3.1.2.p0
MPIR=mpir-2.6.0.p4
MPMATH=mpmath-0.18
NETWORKX=networkx-1.8.1
NTL=ntl-6.1.0.p0
NUMPY=numpy-1.8.1
PALP=palp-2.1.p1
PARI=pari-2.7.1.p1
PARI_GALDATA=pari_galdata-20080411
PARI_SEADATA_SMALL=pari_seadata_small-20090618
PATCH=patch-2.7.1
PEXPECT=pexpect-2.0.p6
PILLOW=pillow-2.2.2
PKGCONF=pkgconf-0.9.7
PKGCONFIG=pkgconfig-1.1.0
POLYBORI=polybori-0.8.3
POLYTOPES_DB=polytopes_db-20120220
PPL=ppl-1.1
PYCRYPTO=pycrypto-2.6.1.p0
PYGMENTS=pygments-1.3.1.p0
PYNAC=pynac-0.3.2
PYPARSING=pyparsing-2.0.1
PYTHON=python-2.7.8
PYZMQ=pyzmq-14.3.0
R=r-3.1.1.p0
RPY=rpy2-2.3.8
RATPOINTS=ratpoints-2.1.3.p3
READLINE=readline-6.3.008
RUBIKS=rubiks-20070912.p18
SAGENB=sagenb-0.11.1
SAGETEX=sagetex-2.3.4
SCIPY=scipy-0.14.0
SCONS=scons-1.2.0
SETUPTOOLS=setuptools-3.6.p0
SINGULAR=singular-3.1.6.p4
SIX=six-1.4.1
SPHINX=sphinx-1.2.2
SQLALCHEMY=sqlalchemy-0.5.8
SQLITE=sqlite-3.8.4.3
SYMMETRICA=symmetrica-2.0.p9
SYMPOW=sympow-1.018.1.p11
SYMPY=sympy-0.7.4
TACHYON=tachyon-0.98.9.p5
TORNADO=tornado-3.1.1
NCURSES=ncurses-5.9.20131221
ZEROMQ=zeromq-4.0.4
ZLIB=zlib-1.2.8.p0
ZNPOLY=zn_poly-0.9.p11

# Directory to keep track of which packages are installed
INST=<MY_HOME>/sage/local/var/lib/sage/installed

TOOLCHAIN =
SCRIPT_SOURCES = \
                 $(SAGE_SRC)/bin/sage \
                 $(SAGE_SRC)/bin/sage-CSI \
                 $(SAGE_SRC)/bin/sage-CSI-helper.py \
                 $(SAGE_SRC)/bin/sage-README-osx.txt \
                 $(SAGE_SRC)/bin/sage-arch-env \
                 $(SAGE_SRC)/bin/sage-banner \
                 $(SAGE_SRC)/bin/sage-bdist \
                 $(SAGE_SRC)/bin/sage-build \
                 $(SAGE_SRC)/bin/sage-cachegrind \
                 $(SAGE_SRC)/bin/sage-callgrind \
                 $(SAGE_SRC)/bin/sage-cleaner \
                 $(SAGE_SRC)/bin/sage-clone-source \
                 $(SAGE_SRC)/bin/sage-coverage \
                 $(SAGE_SRC)/bin/sage-coverageall \
                 $(SAGE_SRC)/bin/sage-crap \
                 $(SAGE_SRC)/bin/sage-cython \
                 $(SAGE_SRC)/bin/sage-dev \
                 $(SAGE_SRC)/bin/sage-download-file \
                 $(SAGE_SRC)/bin/sage-download-upstream \
                 $(SAGE_SRC)/bin/sage-env \
                 $(SAGE_SRC)/bin/sage-eval \
                 $(SAGE_SRC)/bin/sage-fix-pkg-checksums \
                 $(SAGE_SRC)/bin/sage-fixdoctests \
                 $(SAGE_SRC)/bin/sage-gdb-commands \
                 $(SAGE_SRC)/bin/sage-grep \
                 $(SAGE_SRC)/bin/sage-grepdoc \
                 $(SAGE_SRC)/bin/sage-inline-fortran \
                 $(SAGE_SRC)/bin/sage-ipython \
                 $(SAGE_SRC)/bin/sage-list-experimental \
                 $(SAGE_SRC)/bin/sage-list-optional \
                 $(SAGE_SRC)/bin/sage-list-packages \
                 $(SAGE_SRC)/bin/sage-list-standard \
                 $(SAGE_SRC)/bin/sage-location \
                 $(SAGE_SRC)/bin/sage-massif \
                 $(SAGE_SRC)/bin/sage-maxima.lisp \
                 $(SAGE_SRC)/bin/sage-native-execute \
                 $(SAGE_SRC)/bin/sage-notebook \
                 $(SAGE_SRC)/bin/sage-num-threads.py \
                 $(SAGE_SRC)/bin/sage-omega \
                 $(SAGE_SRC)/bin/sage-open \
                 $(SAGE_SRC)/bin/sage-pkg \
                 $(SAGE_SRC)/bin/sage-preparse \
                 $(SAGE_SRC)/bin/sage-pypkg-location \
                 $(SAGE_SRC)/bin/sage-python \
                 $(SAGE_SRC)/bin/sage-rebase.bat \
                 $(SAGE_SRC)/bin/sage-rebase.sh \
                 $(SAGE_SRC)/bin/sage-rebaseall.bat \
                 $(SAGE_SRC)/bin/sage-rebaseall.sh \
                 $(SAGE_SRC)/bin/sage-rst2sws \
                 $(SAGE_SRC)/bin/sage-rst2txt \
                 $(SAGE_SRC)/bin/sage-rsyncdist \
                 $(SAGE_SRC)/bin/sage-run \
                 $(SAGE_SRC)/bin/sage-run-cython \
                 $(SAGE_SRC)/bin/sage-runtests \
                 $(SAGE_SRC)/bin/sage-sdist \
                 $(SAGE_SRC)/bin/sage-spkg \
                 $(SAGE_SRC)/bin/sage-starts \
                 $(SAGE_SRC)/bin/sage-startuptime.py \
                 $(SAGE_SRC)/bin/sage-sws2rst \
                 $(SAGE_SRC)/bin/sage-test-import \
                 $(SAGE_SRC)/bin/sage-update-src \
                 $(SAGE_SRC)/bin/sage-update-version \
                 $(SAGE_SRC)/bin/sage-upgrade \
                 $(SAGE_SRC)/bin/sage-valgrind \
                 $(SAGE_SRC)/bin/sage-version.sh \
                 $(SAGE_SRC)/bin/testcc.sh \
                 $(SAGE_SRC)/bin/testcflags.sh \
                 $(SAGE_SRC)/bin/testcxx.sh \

SCRIPTS = \
                 $(SAGE_LOCAL)/bin/sage \
                 $(SAGE_LOCAL)/bin/sage-CSI \
                 $(SAGE_LOCAL)/bin/sage-CSI-helper.py \
                 $(SAGE_LOCAL)/bin/sage-README-osx.txt \
                 $(SAGE_LOCAL)/bin/sage-arch-env \
                 $(SAGE_LOCAL)/bin/sage-banner \
                 $(SAGE_LOCAL)/bin/sage-bdist \
                 $(SAGE_LOCAL)/bin/sage-build \
                 $(SAGE_LOCAL)/bin/sage-cachegrind \
                 $(SAGE_LOCAL)/bin/sage-callgrind \
                 $(SAGE_LOCAL)/bin/sage-cleaner \
                 $(SAGE_LOCAL)/bin/sage-clone-source \
                 $(SAGE_LOCAL)/bin/sage-coverage \
                 $(SAGE_LOCAL)/bin/sage-coverageall \
                 $(SAGE_LOCAL)/bin/sage-crap \
                 $(SAGE_LOCAL)/bin/sage-cython \
                 $(SAGE_LOCAL)/bin/sage-dev \
                 $(SAGE_LOCAL)/bin/sage-download-file \
                 $(SAGE_LOCAL)/bin/sage-download-upstream \
                 $(SAGE_LOCAL)/bin/sage-env \
                 $(SAGE_LOCAL)/bin/sage-eval \
                 $(SAGE_LOCAL)/bin/sage-fix-pkg-checksums \
                 $(SAGE_LOCAL)/bin/sage-fixdoctests \
                 $(SAGE_LOCAL)/bin/sage-gdb-commands \
                 $(SAGE_LOCAL)/bin/sage-grep \
                 $(SAGE_LOCAL)/bin/sage-grepdoc \
                 $(SAGE_LOCAL)/bin/sage-inline-fortran \
                 $(SAGE_LOCAL)/bin/sage-ipython \
                 $(SAGE_LOCAL)/bin/sage-list-experimental \
                 $(SAGE_LOCAL)/bin/sage-list-optional \
                 $(SAGE_LOCAL)/bin/sage-list-packages \
                 $(SAGE_LOCAL)/bin/sage-list-standard \
                 $(SAGE_LOCAL)/bin/sage-location \
                 $(SAGE_LOCAL)/bin/sage-massif \
                 $(SAGE_LOCAL)/bin/sage-maxima.lisp \
                 $(SAGE_LOCAL)/bin/sage-native-execute \
                 $(SAGE_LOCAL)/bin/sage-notebook \
                 $(SAGE_LOCAL)/bin/sage-num-threads.py \
                 $(SAGE_LOCAL)/bin/sage-omega \
                 $(SAGE_LOCAL)/bin/sage-open \
                 $(SAGE_LOCAL)/bin/sage-pkg \
                 $(SAGE_LOCAL)/bin/sage-preparse \
                 $(SAGE_LOCAL)/bin/sage-pypkg-location \
                 $(SAGE_LOCAL)/bin/sage-python \
                 $(SAGE_LOCAL)/bin/sage-rebase.bat \
                 $(SAGE_LOCAL)/bin/sage-rebase.sh \
                 $(SAGE_LOCAL)/bin/sage-rebaseall.bat \
                 $(SAGE_LOCAL)/bin/sage-rebaseall.sh \
                 $(SAGE_LOCAL)/bin/sage-rst2sws \
                 $(SAGE_LOCAL)/bin/sage-rst2txt \
                 $(SAGE_LOCAL)/bin/sage-rsyncdist \
                 $(SAGE_LOCAL)/bin/sage-run \
                 $(SAGE_LOCAL)/bin/sage-run-cython \
                 $(SAGE_LOCAL)/bin/sage-runtests \
                 $(SAGE_LOCAL)/bin/sage-sdist \
                 $(SAGE_LOCAL)/bin/sage-spkg \
                 $(SAGE_LOCAL)/bin/sage-starts \
                 $(SAGE_LOCAL)/bin/sage-startuptime.py \
                 $(SAGE_LOCAL)/bin/sage-sws2rst \
                 $(SAGE_LOCAL)/bin/sage-test-import \
                 $(SAGE_LOCAL)/bin/sage-update-src \
                 $(SAGE_LOCAL)/bin/sage-update-version \
                 $(SAGE_LOCAL)/bin/sage-upgrade \
                 $(SAGE_LOCAL)/bin/sage-valgrind \
                 $(SAGE_LOCAL)/bin/sage-version.sh \
                 $(SAGE_LOCAL)/bin/testcc.sh \
                 $(SAGE_LOCAL)/bin/testcflags.sh \
                 $(SAGE_LOCAL)/bin/testcxx.sh \

EXTCODE_SOURCES = \
                  $(SAGE_SRC)/ext/gap/console.g \
                  $(SAGE_SRC)/ext/gap/joyner/hurwitz_crv_rr_sp.gap \
                  $(SAGE_SRC)/ext/gap/joyner/modular_crv_rr_sp.gap \
                  $(SAGE_SRC)/ext/gap/sage.g \
                  $(SAGE_SRC)/ext/graphs/graph_plot_js.html \
                  $(SAGE_SRC)/ext/images/corner.png \
                  $(SAGE_SRC)/ext/images/evaluate.png \
                  $(SAGE_SRC)/ext/images/evaluate_over.png \
                  $(SAGE_SRC)/ext/images/favicon.ico \
                  $(SAGE_SRC)/ext/images/sagelogo.png \
                  $(SAGE_SRC)/ext/magma/latex/latex.m \
                  $(SAGE_SRC)/ext/magma/latex/latex.spec \
                  $(SAGE_SRC)/ext/magma/sage/basic.m \
                  $(SAGE_SRC)/ext/magma/sage/sage.spec \
                  $(SAGE_SRC)/ext/magma/spec \
                  $(SAGE_SRC)/ext/maxima/willis/topoly.lisp \
                  $(SAGE_SRC)/ext/mwrank/PRIMES \
                  $(SAGE_SRC)/ext/notebook-ipython/static/sage-logo.png \
                  $(SAGE_SRC)/ext/notebook-ipython/templates/404.html \
                  $(SAGE_SRC)/ext/notebook-ipython/templates/error.html \
                  $(SAGE_SRC)/ext/notebook-ipython/templates/login.html \
                  $(SAGE_SRC)/ext/notebook-ipython/templates/logout.html \
                  $(SAGE_SRC)/ext/notebook-ipython/templates/notebook.html \
                  $(SAGE_SRC)/ext/notebook-ipython/templates/page.html \
                  $(SAGE_SRC)/ext/notebook-ipython/templates/tree.html \
                  $(SAGE_SRC)/ext/pari/buzzard/DimensionSk.g \
                  $(SAGE_SRC)/ext/pari/buzzard/Tpprog.g \
                  $(SAGE_SRC)/ext/pari/buzzard/genusn.g \
                  $(SAGE_SRC)/ext/pari/dokchitser/computel.gp \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-bsw \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-chgen \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-chqua \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-delta \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-eisen \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-gen2 \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-gen3 \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-gen4 \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-nf \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-shin \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-zeta \
                  $(SAGE_SRC)/ext/pari/dokchitser/ex-zeta2 \
                  $(SAGE_SRC)/ext/pari/dokchitser/testall \
                  $(SAGE_SRC)/ext/pari/simon/ell.gp \
                  $(SAGE_SRC)/ext/pari/simon/ellQ.gp \
                  $(SAGE_SRC)/ext/pari/simon/ellcommon.gp \
                  $(SAGE_SRC)/ext/pari/simon/qfsolve.gp \
                  $(SAGE_SRC)/ext/pari/simon/resultant3.gp \
                  $(SAGE_SRC)/ext/pickle_jar/pickle_jar.tar.bz2 \
                  $(SAGE_SRC)/ext/valgrind/pyalloc.supp \
                  $(SAGE_SRC)/ext/valgrind/sage-additional.supp \
                  $(SAGE_SRC)/ext/valgrind/sage.supp \

EXTCODE = \
                  $(SAGE_EXTCODE)/gap/console.g \
                  $(SAGE_EXTCODE)/gap/joyner/hurwitz_crv_rr_sp.gap \
                  $(SAGE_EXTCODE)/gap/joyner/modular_crv_rr_sp.gap \
                  $(SAGE_EXTCODE)/gap/sage.g \
                  $(SAGE_EXTCODE)/graphs/graph_plot_js.html \
                  $(SAGE_EXTCODE)/images/corner.png \
                  $(SAGE_EXTCODE)/images/evaluate.png \
                  $(SAGE_EXTCODE)/images/evaluate_over.png \
                  $(SAGE_EXTCODE)/images/favicon.ico \
                  $(SAGE_EXTCODE)/images/sagelogo.png \
                  $(SAGE_EXTCODE)/magma/latex/latex.m \
                  $(SAGE_EXTCODE)/magma/latex/latex.spec \
                  $(SAGE_EXTCODE)/magma/sage/basic.m \
                  $(SAGE_EXTCODE)/magma/sage/sage.spec \
                  $(SAGE_EXTCODE)/magma/spec \
                  $(SAGE_EXTCODE)/maxima/willis/topoly.lisp \
                  $(SAGE_EXTCODE)/mwrank/PRIMES \
                  $(SAGE_EXTCODE)/notebook-ipython/static/sage-logo.png \
                  $(SAGE_EXTCODE)/notebook-ipython/templates/404.html \
                  $(SAGE_EXTCODE)/notebook-ipython/templates/error.html \
                  $(SAGE_EXTCODE)/notebook-ipython/templates/login.html \
                  $(SAGE_EXTCODE)/notebook-ipython/templates/logout.html \
                  $(SAGE_EXTCODE)/notebook-ipython/templates/notebook.html \
                  $(SAGE_EXTCODE)/notebook-ipython/templates/page.html \
                  $(SAGE_EXTCODE)/notebook-ipython/templates/tree.html \
                  $(SAGE_EXTCODE)/pari/buzzard/DimensionSk.g \
                  $(SAGE_EXTCODE)/pari/buzzard/Tpprog.g \
                  $(SAGE_EXTCODE)/pari/buzzard/genusn.g \
                  $(SAGE_EXTCODE)/pari/dokchitser/computel.gp \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-bsw \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-chgen \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-chqua \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-delta \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-eisen \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-gen2 \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-gen3 \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-gen4 \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-nf \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-shin \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-zeta \
                  $(SAGE_EXTCODE)/pari/dokchitser/ex-zeta2 \
                  $(SAGE_EXTCODE)/pari/dokchitser/testall \
                  $(SAGE_EXTCODE)/pari/simon/ell.gp \
                  $(SAGE_EXTCODE)/pari/simon/ellQ.gp \
                  $(SAGE_EXTCODE)/pari/simon/ellcommon.gp \
                  $(SAGE_EXTCODE)/pari/simon/qfsolve.gp \
                  $(SAGE_EXTCODE)/pari/simon/resultant3.gp \
                  $(SAGE_EXTCODE)/pickle_jar/pickle_jar.tar.bz2 \
                  $(SAGE_EXTCODE)/valgrind/pyalloc.supp \
                  $(SAGE_EXTCODE)/valgrind/sage-additional.supp \
                  $(SAGE_EXTCODE)/valgrind/sage.supp \

# don't just use `install` since we don't want to change permissions
$(SAGE_LOCAL)/bin/%: $(SAGE_SRC)/bin/%
cp $< $@

# don't just use `install -D` since we don't want to change permissions
# cp won't correctly setup the SAGE_EXTCODE directory structure (unlike 
install)
# so we need a mkdir here to cp can copy into an existing folder
$(SAGE_EXTCODE)/%: $(SAGE_SRC)/ext/%
@mkdir -p "$(@D)"
cp $< $@

#==============================================================================
# What follows now is a copy of
#   <MY_HOME>/sage/build/deps
#==============================================================================

###############################################################################
# This file ($SAGE_ROOT/build/deps) will be copied into
# $SAGE_ROOT/build/Makefile by $SAGE_ROOT/build/install
###############################################################################

# Do not put an explicit path for sage-spkg here, it will be found in $PATH.
SAGE_SPKG = sage-spkg -f
PIPE = $(SAGE_ROOT)/build/pipestatus

# Tell make not to look for files with these names:
.PHONY: all all-sage base toolchain toolchain-deps

# Make the 4 build phases: base, toolchain, toolchain-deps, all-sage
# During the toolchain build, we export SAGE_BUILD_TOOLCHAIN=yes
# such that packages can do different things when they are built
# as prerequisite of GCC.
all:
$(MAKE) base
env SAGE_BUILD_TOOLCHAIN=yes $(MAKE) toolchain
$(MAKE) toolchain-deps
$(MAKE) all-sage

# All targets except for the base packages
all-sage: \
     $(INST)/$(ATLAS) \
     $(INST)/$(BOEHM_GC) \
     $(INST)/$(BOOST_CROPPED) \
     $(INST)/$(CDDLIB) \
     $(INST)/$(CEPHES) \
     $(INST)/$(CLIQUER) \
     $(INST)/$(COMBINATORIAL_DESIGNS) \
     $(INST)/$(CONWAY) \
     $(INST)/$(CVXOPT) \
     $(INST)/$(CYTHON) \
     $(INST)/$(DATEUTIL) \
     $(INST)/$(DOCUTILS) \
     $(INST)/$(ECL) \
     $(INST)/$(ECLIB) \
     $(INST)/$(ECM) \
     $(INST)/$(ELLIPTIC_CURVES) \
     $(INST)/$(FFLASFFPACK) \
     $(INST)/$(FLINT) \
     $(INST)/$(FLINTQS) \
     $(INST)/$(FPLLL) \
     $(INST)/$(FREETYPE) \
     $(INST)/$(GAP) \
     $(INST)/$(GD) \
     $(INST)/$(GDMODULE) \
     $(INST)/$(GFAN) \
     $(INST)/$(GF2X) \
     $(INST)/$(GIVARO) \
     $(INST)/$(GIT) \
     $(INST)/$(GLPK) \
     $(INST)/$(GRAPHS) \
     $(INST)/$(GSL) \
     $(INST)/$(ICONV) \
     $(INST)/$(IML) \
     $(INST)/$(IPYTHON) \
     $(INST)/$(JINJA2) \
     $(INST)/$(JMOL) \
     $(INST)/$(LCALC) \
     $(INST)/$(LRCALC) \
     $(INST)/$(LIBGAP) \
     $(INST)/$(LIBPNG) \
     $(INST)/$(LINBOX) \
     $(INST)/$(M4RI) \
     $(INST)/$(M4RIE) \
     $(INST)/$(MATPLOTLIB) \
     $(INST)/$(MAXIMA) \
     $(INST)/$(MPC) \
     $(INST)/$(MPFI) \
     $(INST)/$(MPFR) \
     $(INST)/$(MPIR) \
     $(INST)/$(MPMATH) \
     $(INST)/$(NETWORKX) \
     $(INST)/$(NTL) \
     $(INST)/$(NUMPY) \
     $(INST)/$(PALP) \
     $(INST)/$(PARI) \
     $(INST)/$(PEXPECT) \
     $(INST)/$(PILLOW) \
     $(INST)/$(PKGCONF) \
     $(INST)/$(PKGCONFIG) \
     $(INST)/$(POLYBORI) \
     $(INST)/$(POLYTOPES_DB) \
     $(INST)/$(PPL) \
     $(INST)/$(PYCRYPTO) \
     $(INST)/$(PYGMENTS) \
     $(INST)/$(PYNAC) \
     $(INST)/$(PYPARSING) \
     $(INST)/$(PYTHON) \
     $(INST)/$(PYZMQ) \
     $(INST)/$(RATPOINTS) \
     $(INST)/$(R) \
     $(INST)/$(RPY) \
     $(INST)/$(READLINE) \
     $(INST)/$(RUBIKS) \
     $(INST)/$(SAGENB) \
     $(INST)/$(SAGETEX) \
     $(INST)/$(SCIPY) \
     $(INST)/$(SCONS) \
     $(INST)/$(SETUPTOOLS) \
     $(INST)/$(SINGULAR) \
     $(INST)/$(SIX) \
     $(INST)/$(SPHINX) \
     $(INST)/$(SQLALCHEMY) \
     $(INST)/$(SQLITE) \
     $(INST)/$(SYMMETRICA) \
     $(INST)/$(SYMPOW) \
     $(INST)/$(SYMPY) \
     $(INST)/$(TACHYON) \
     $(INST)/$(TORNADO) \
     $(INST)/$(NCURSES) \
     $(INST)/$(ZEROMQ) \
     $(INST)/$(ZLIB) \
     $(INST)/$(ZNPOLY) \
     $(INST)/sage \
     $(INST)/csage \
     $(EXTCODE) \
     $(SCRIPTS)

# TOOLCHAIN consists of dependencies determined by build/install,
# including for example the GCC package.
toolchain: $(TOOLCHAIN)

# Build all packages that GCC links against serially, otherwise this
# leads to race conditions where some library which is used by GCC gets
# reinstalled. Since system GCCs might use Sage's libraries, we do this
# unconditionally. We still use the dependency checking from $(MAKE),
# so this will not trigger useless rebuilds.
# See #14168 and #14232.
toolchain-deps:
$(MAKE) $(INST)/$(ZLIB)
$(MAKE) $(INST)/$(MPIR)
$(MAKE) $(INST)/$(MPFR)
$(MAKE) $(INST)/$(MPC)
$(MAKE) $(INST)/$(PPL)

# Everything needed to start up Sage using "./sage".  Of course, not
# every part of Sage will work.  It does not include Maxima for example.
SAGERUNTIME = $(SCRIPTS) $(INST)/sage $(INST)/$(SAGENB) $(INST)/$(IPYTHON)

###############################################################################
# Building the base system
#
# This consists of packages which are required for the Sage build system
# but not for Sage itself.  Since nothing explicitly depends on these,
# an update of these packages will not trigger a rebuild of every other
# package during an upgrade, see #13415.
###############################################################################
base: $(INST)/prereq $(INST)/$(BZIP2) $(INST)/$(PATCH)

$(INST)/prereq: ../configure
@cd ..; rm -f config.log; ln -s logs/pkgs/config.log config.log; \
./configure $$PREREQ_OPTIONS || ( \
    if [ "x$$SAGE_PORT" = x ]; then \
        echo "If you would like to try to build Sage anyway (to help 
porting),"; \
        echo "export the variable 'SAGE_PORT' to something non-empty."; \
        exit 1; \
    else \
        echo "Since 'SAGE_PORT' is set, we will try to build anyway."; \
    fi; )
touch $@

$(INST)/$(PATCH):
+$(PIPE) "$(SAGE_SPKG) $(PATCH) 2>&1" "tee -a $(SAGE_LOGS)/$(PATCH).log"

$(INST)/$(PKGCONF): $(INST)/$(PATCH)
+$(PIPE) "$(SAGE_SPKG) $(PKGCONF) 2>&1" "tee -a $(SAGE_LOGS)/$(PKGCONF).log"

$(INST)/$(BZIP2): $(INST)/prereq $(INST)/$(PKGCONF)
+$(PIPE) "$(SAGE_SPKG) $(BZIP2) 2>&1" "tee -a $(SAGE_LOGS)/$(BZIP2).log"

###############################################################################
# Building normal packages
###############################################################################

$(INST)/$(ATLAS): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(ATLAS) 2>&1" "tee -a $(SAGE_LOGS)/$(ATLAS).log"

$(INST)/$(BOEHM_GC): $(INST)/$(PKGCONF)
+$(PIPE) "$(SAGE_SPKG) $(BOEHM_GC) 2>&1" "tee -a 
$(SAGE_LOGS)/$(BOEHM_GC).log"

$(INST)/$(BOOST_CROPPED):
+$(PIPE) "$(SAGE_SPKG) $(BOOST_CROPPED) 2>&1" "tee -a 
$(SAGE_LOGS)/$(BOOST_CROPPED).log"

$(INST)/$(CLIQUER):
+$(PIPE) "$(SAGE_SPKG) $(CLIQUER) 2>&1" "tee -a $(SAGE_LOGS)/$(CLIQUER).log"

$(INST)/$(COMBINATORIAL_DESIGNS):
+$(PIPE) "$(SAGE_SPKG) $(COMBINATORIAL_DESIGNS) 2>&1" "tee -a 
$(SAGE_LOGS)/$(COMBINATORIAL_DESIGNS).log"

$(INST)/$(NCURSES): $(INST)/$(PKGCONF)
+$(PIPE) "$(SAGE_SPKG) $(NCURSES) 2>&1" "tee -a $(SAGE_LOGS)/$(NCURSES).log"

$(INST)/$(READLINE): $(INST)/$(NCURSES)
+$(PIPE) "$(SAGE_SPKG) $(READLINE) 2>&1" "tee -a 
$(SAGE_LOGS)/$(READLINE).log"

$(INST)/$(ICONV):
+$(PIPE) "$(SAGE_SPKG) $(ICONV) 2>&1" "tee -a $(SAGE_LOGS)/$(ICONV).log"

$(INST)/$(DOCUTILS): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(DOCUTILS) 2>&1" "tee -a 
$(SAGE_LOGS)/$(DOCUTILS).log"

$(INST)/$(ELLIPTIC_CURVES): $(INST)/$(PYTHON) $(INST)/$(SQLITE)
+$(PIPE) "$(SAGE_SPKG) $(ELLIPTIC_CURVES) 2>&1" "tee -a 
$(SAGE_LOGS)/$(ELLIPTIC_CURVES).log"

# CONWAY depends on depends on SAGERUNTIME because it runs Sage code to
# generate a Sage object (.sobj).
$(INST)/$(CONWAY): $(SAGERUNTIME)
+$(PIPE) "$(SAGE_SPKG) $(CONWAY) 2>&1" "tee -a $(SAGE_LOGS)/$(CONWAY).log"

$(INST)/$(GRAPHS):
+$(PIPE) "$(SAGE_SPKG) $(GRAPHS) 2>&1" "tee -a $(SAGE_LOGS)/$(GRAPHS).log"

$(INST)/$(GLPK): $(INST)/$(MPIR) $(INST)/$(ZLIB)
+$(PIPE) "$(SAGE_SPKG) $(GLPK) 2>&1" "tee -a $(SAGE_LOGS)/$(GLPK).log"

$(INST)/$(PYTHON): $(INST)/$(ZLIB) $(INST)/$(BZIP2) $(INST)/$(PKGCONF) \
   $(INST)/$(READLINE) $(INST)/$(SQLITE) $(INST)/$(LIBPNG)
+$(PIPE) "$(SAGE_SPKG) $(PYTHON) 2>&1" "tee -a $(SAGE_LOGS)/$(PYTHON).log"

$(INST)/$(MPIR): $(INST)/$(ICONV)
+$(PIPE) "$(SAGE_SPKG) $(MPIR) 2>&1" "tee -a $(SAGE_LOGS)/$(MPIR).log"

$(INST)/$(GSL): $(INST)/$(ATLAS)
+$(PIPE) "$(SAGE_SPKG) $(GSL) 2>&1" "tee -a $(SAGE_LOGS)/$(GSL).log"

$(INST)/$(GF2X):
+$(PIPE) "$(SAGE_SPKG) $(GF2X) 2>&1" "tee -a $(SAGE_LOGS)/$(GF2X).log"

$(INST)/$(NTL): $(INST)/$(MPIR) $(INST)/$(GF2X)
+$(PIPE) "$(SAGE_SPKG) $(NTL) 2>&1" "tee -a $(SAGE_LOGS)/$(NTL).log"

$(INST)/$(FPLLL): $(INST)/$(MPIR) $(INST)/$(MPFR)
+$(PIPE) "$(SAGE_SPKG) $(FPLLL) 2>&1" "tee -a $(SAGE_LOGS)/$(FPLLL).log"

$(INST)/$(PARI): $(INST)/$(READLINE) $(INST)/$(MPIR) \
    $(INST)/$(PARI_GALDATA) $(INST)/$(PARI_SEADATA_SMALL)
+$(PIPE) "$(SAGE_SPKG) $(PARI) 2>&1" "tee -a $(SAGE_LOGS)/$(PARI).log"

$(INST)/$(PARI_GALDATA):
+$(PIPE) "$(SAGE_SPKG) $(PARI_GALDATA) 2>&1" "tee -a 
$(SAGE_LOGS)/$(PARI_GALDATA).log"

$(INST)/$(PARI_SEADATA_SMALL):
+$(PIPE) "$(SAGE_SPKG) $(PARI_SEADATA_SMALL) 2>&1" "tee -a 
$(SAGE_LOGS)/$(PARI_SEADATA_SMALL).log"

$(INST)/$(POLYBORI): $(INST)/$(PYTHON) $(INST)/$(IPYTHON) \
         $(INST)/$(SCONS) $(INST)/$(BOOST_CROPPED) \
         $(INST)/$(M4RI) $(INST)/$(GD)
+$(PIPE) "$(SAGE_SPKG) $(POLYBORI) 2>&1" "tee -a 
$(SAGE_LOGS)/$(POLYBORI).log"

$(INST)/$(POLYTOPES_DB):
+$(PIPE) "$(SAGE_SPKG) $(POLYTOPES_DB) 2>&1" "tee -a 
$(SAGE_LOGS)/$(POLYTOPES_DB).log"

$(INST)/$(PPL): $(INST)/$(MPIR) $(INST)/$(GLPK)
+$(PIPE) "$(SAGE_SPKG) $(PPL) 2>&1" "tee -a $(SAGE_LOGS)/$(PPL).log"

$(INST)/$(MPC): $(INST)/$(MPIR) $(INST)/$(MPFR)
+$(PIPE) "$(SAGE_SPKG) $(MPC) 2>&1" "tee -a $(SAGE_LOGS)/$(MPC).log"

$(INST)/$(MPFR): $(INST)/$(MPIR)
+$(PIPE) "$(SAGE_SPKG) $(MPFR) 2>&1" "tee -a $(SAGE_LOGS)/$(MPFR).log"

$(INST)/$(MPFI): $(INST)/$(MPIR) $(INST)/$(MPFR)
+$(PIPE) "$(SAGE_SPKG) $(MPFI) 2>&1" "tee -a $(SAGE_LOGS)/$(MPFI).log"

$(INST)/$(GIVARO): $(INST)/$(MPIR)
+$(PIPE) "$(SAGE_SPKG) $(GIVARO) 2>&1" "tee -a $(SAGE_LOGS)/$(GIVARO).log"

$(INST)/$(GIT): $(INST)/$(ZLIB) $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(GIT) 2>&1" "tee -a $(SAGE_LOGS)/$(GIT).log"

$(INST)/$(FFLASFFPACK): $(INST)/$(MPIR) $(INST)/$(GIVARO) \
$(INST)/$(GSL) $(INST)/$(ATLAS)
+$(PIPE) "$(SAGE_SPKG) $(FFLASFFPACK) 2>&1" "tee -a 
$(SAGE_LOGS)/$(FFLASFFPACK).log"

$(INST)/$(LINBOX): $(INST)/$(MPIR) $(INST)/$(NTL) $(INST)/$(GIVARO) \
                   $(INST)/$(MPFR) $(INST)/$(FPLLL) $(INST)/$(IML) \
                   $(INST)/$(M4RI) $(INST)/$(M4RIE) $(INST)/$(FFLASFFPACK)
+$(PIPE) "$(SAGE_SPKG) $(LINBOX) 2>&1" "tee -a $(SAGE_LOGS)/$(LINBOX).log"

$(INST)/$(IML): $(INST)/$(MPIR) $(INST)/$(GSL) $(INST)/$(ATLAS)
+$(PIPE) "$(SAGE_SPKG) $(IML) 2>&1" "tee -a $(SAGE_LOGS)/$(IML).log"

$(INST)/$(PALP):
+$(PIPE) "$(SAGE_SPKG) $(PALP) 2>&1" "tee -a $(SAGE_LOGS)/$(PALP).log"

$(INST)/$(LCALC): $(INST)/$(PARI) $(INST)/$(MPFR)
+$(PIPE) "$(SAGE_SPKG) $(LCALC) 2>&1" "tee -a $(SAGE_LOGS)/$(LCALC).log"

$(INST)/$(LRCALC):
+$(PIPE) "$(SAGE_SPKG) $(LRCALC) 2>&1" "tee -a $(SAGE_LOGS)/$(LRCALC).log"

$(INST)/$(PYNAC): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(PYNAC) 2>&1" "tee -a $(SAGE_LOGS)/$(PYNAC).log"

$(INST)/$(SYMPOW):
+$(PIPE) "$(SAGE_SPKG) $(SYMPOW) 2>&1" "tee -a $(SAGE_LOGS)/$(SYMPOW).log"

$(INST)/$(SYMMETRICA):
+$(PIPE) "$(SAGE_SPKG) $(SYMMETRICA) 2>&1" "tee -a 
$(SAGE_LOGS)/$(SYMMETRICA).log"

$(INST)/$(GAP): $(INST)/$(NCURSES) $(INST)/$(READLINE) $(INST)/$(MPIR)
+$(PIPE) "$(SAGE_SPKG) $(GAP) 2>&1" "tee -a $(SAGE_LOGS)/$(GAP).log"

$(INST)/$(LIBGAP): $(INST)/$(GAP)
+$(PIPE) "$(SAGE_SPKG) $(LIBGAP) 2>&1" "tee -a $(SAGE_LOGS)/$(LIBGAP).log"

$(INST)/$(IPYTHON): $(INST)/$(PYTHON) $(INST)/$(JINJA2) $(INST)/$(TORNADO) 
$(INST)/$(PYZMQ)
+$(PIPE) "$(SAGE_SPKG) $(IPYTHON) 2>&1" "tee -a $(SAGE_LOGS)/$(IPYTHON).log"

$(INST)/$(PEXPECT): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(PEXPECT) 2>&1" "tee -a $(SAGE_LOGS)/$(PEXPECT).log"

$(INST)/$(GD): $(INST)/$(LIBPNG) $(INST)/$(FREETYPE) $(INST)/$(ICONV)
+$(PIPE) "$(SAGE_SPKG) $(GD) 2>&1" "tee -a $(SAGE_LOGS)/$(GD).log"

$(INST)/$(GDMODULE): $(INST)/$(PYTHON) $(INST)/$(GD) $(INST)/$(ICONV)
+$(PIPE) "$(SAGE_SPKG) $(GDMODULE) 2>&1" "tee -a 
$(SAGE_LOGS)/$(GDMODULE).log"

$(INST)/$(SCONS): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(SCONS) 2>&1" "tee -a $(SAGE_LOGS)/$(SCONS).log"

$(INST)/$(RUBIKS):
+$(PIPE) "$(SAGE_SPKG) $(RUBIKS) 2>&1" "tee -a $(SAGE_LOGS)/$(RUBIKS).log"

$(INST)/$(SQLITE): $(INST)/$(READLINE)
+$(PIPE) "$(SAGE_SPKG) $(SQLITE) 2>&1" "tee -a $(SAGE_LOGS)/$(SQLITE).log"

# To build SageTeX, you just need Python, but to test (SAGE_CHECK=yes)
# SageTeX, you actually need to run Sage, produce plots,...
$(INST)/$(SAGETEX): $(INST)/$(PYTHON) \
                    $(SAGERUNTIME) $(INST)/$(MAXIMA) $(INST)/$(SCIPY) \
                    $(INST)/$(MATPLOTLIB) $(INST)/$(PILLOW) 
$(INST)/$(TACHYON)
+$(PIPE) "$(SAGE_SPKG) $(SAGETEX) 2>&1" "tee -a $(SAGE_LOGS)/$(SAGETEX).log"

$(INST)/$(SETUPTOOLS): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(SETUPTOOLS) 2>&1" "tee -a 
$(SAGE_LOGS)/$(SETUPTOOLS).log"

$(INST)/$(SINGULAR): $(INST)/$(MPIR) $(INST)/$(NTL) $(INST)/$(FLINT) \
     $(INST)/$(READLINE) $(INST)/$(MPFR)
+$(PIPE) "$(SAGE_SPKG) $(SINGULAR) 2>&1" "tee -a 
$(SAGE_LOGS)/$(SINGULAR).log"

$(INST)/$(PYCRYPTO): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(PYCRYPTO) 2>&1" "tee -a 
$(SAGE_LOGS)/$(PYCRYPTO).log"

$(INST)/$(NETWORKX): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(NETWORKX) 2>&1" "tee -a 
$(SAGE_LOGS)/$(NETWORKX).log"

$(INST)/$(MPMATH): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(MPMATH) 2>&1" "tee -a $(SAGE_LOGS)/$(MPMATH).log"

$(INST)/$(ZEROMQ):
+$(PIPE) "$(SAGE_SPKG) $(ZEROMQ) 2>&1" "tee -a $(SAGE_LOGS)/$(ZEROMQ).log"

$(INST)/$(ZLIB):
+$(PIPE) "$(SAGE_SPKG) $(ZLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(ZLIB).log"

$(INST)/$(JMOL): $(INST)/$(SAGENB)
+$(PIPE) "$(SAGE_SPKG) $(JMOL) 2>&1" "tee -a $(SAGE_LOGS)/$(JMOL).log"

$(INST)/$(FREETYPE): $(INST)/$(LIBPNG)
+$(PIPE) "$(SAGE_SPKG) $(FREETYPE) 2>&1" "tee -a 
$(SAGE_LOGS)/$(FREETYPE).log"

$(INST)/$(LIBPNG): $(INST)/$(ZLIB)
+$(PIPE) "$(SAGE_SPKG) $(LIBPNG) 2>&1" "tee -a $(SAGE_LOGS)/$(LIBPNG).log"

$(INST)/$(SIX): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(SIX) 2>&1" "tee -a $(SAGE_LOGS)/$(SIX).log"

$(INST)/$(DATEUTIL): $(INST)/$(PYTHON) $(INST)/$(SIX) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(DATEUTIL) 2>&1" "tee -a 
$(SAGE_LOGS)/$(DATEUTIL).log"

$(INST)/$(PYPARSING): $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(PYPARSING) 2>&1" "tee -a 
$(SAGE_LOGS)/$(PYPARSING).log"

$(INST)/$(PYZMQ): $(INST)/$(PYTHON) $(INST)/$(ZEROMQ) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(PYZMQ) 2>&1" "tee -a $(SAGE_LOGS)/$(PYZMQ).log"

$(INST)/$(TORNADO): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(TORNADO) 2>&1" "tee -a $(SAGE_LOGS)/$(TORNADO).log"

$(INST)/$(MATPLOTLIB): $(INST)/$(PYTHON) $(INST)/$(NUMPY) \
       $(INST)/$(FREETYPE) $(INST)/$(LIBPNG) \
       $(INST)/$(GDMODULE) $(INST)/$(DATEUTIL) \
       $(INST)/$(PKGCONF) $(INST)/$(PYPARSING) \
       $(INST)/$(SETUPTOOLS) $(INST)/$(TORNADO) $(INST)/$(SIX)
+$(PIPE) "$(SAGE_SPKG) $(MATPLOTLIB) 2>&1" "tee -a 
$(SAGE_LOGS)/$(MATPLOTLIB).log"

$(INST)/$(CDDLIB): $(INST)/$(MPIR)
+$(PIPE) "$(SAGE_SPKG) $(CDDLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(CDDLIB).log"

$(INST)/$(GFAN): $(INST)/$(MPIR) $(INST)/$(CDDLIB)
+$(PIPE) "$(SAGE_SPKG) $(GFAN) 2>&1" "tee -a $(SAGE_LOGS)/$(GFAN).log"

$(INST)/$(TACHYON): $(INST)/$(LIBPNG)
+$(PIPE) "$(SAGE_SPKG) $(TACHYON) 2>&1" "tee -a $(SAGE_LOGS)/$(TACHYON).log"

$(INST)/$(ECM): $(INST)/$(MPIR)
+$(PIPE) "$(SAGE_SPKG) $(ECM) 2>&1" "tee -a $(SAGE_LOGS)/$(ECM).log"

$(INST)/$(RATPOINTS): $(INST)/$(MPIR)
+$(PIPE) "$(SAGE_SPKG) $(RATPOINTS) 2>&1" "tee -a 
$(SAGE_LOGS)/$(RATPOINTS).log"

$(INST)/$(ECL): $(INST)/$(MPIR) $(INST)/$(READLINE) $(INST)/$(BOEHM_GC)
+$(PIPE) "$(SAGE_SPKG) $(ECL) 2>&1" "tee -a $(SAGE_LOGS)/$(ECL).log"

$(INST)/$(MAXIMA): $(INST)/$(ECL)
+$(PIPE) "$(SAGE_SPKG) $(MAXIMA) 2>&1" "tee -a $(SAGE_LOGS)/$(MAXIMA).log"

$(INST)/$(R): $(INST)/$(ATLAS) $(INST)/$(ICONV) $(INST)/$(READLINE) 
$(INST)/$(PKGCONF)
+$(PIPE) "$(SAGE_SPKG) $(R) 2>&1" "tee -a $(SAGE_LOGS)/$(R).log"

$(INST)/$(RPY): $(INST)/$(PYTHON) $(INST)/$(R)
+$(PIPE) "$(SAGE_SPKG) $(RPY) 2>&1" "tee -a $(SAGE_LOGS)/$(RPY).log"

$(INST)/$(SYMPY): $(INST)/$(PYTHON) $(INST)/$(MPMATH)
+$(PIPE) "$(SAGE_SPKG) $(SYMPY) 2>&1" "tee -a $(SAGE_LOGS)/$(SYMPY).log"

$(INST)/$(CYTHON): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(CYTHON) 2>&1" "tee -a $(SAGE_LOGS)/$(CYTHON).log"

$(INST)/$(FLINTQS): $(INST)/$(MPIR)
+$(PIPE) "$(SAGE_SPKG) $(FLINTQS) 2>&1" "tee -a $(SAGE_LOGS)/$(FLINTQS).log"

$(INST)/$(FLINT): $(INST)/$(MPIR) $(INST)/$(MPFR) $(INST)/$(NTL)
+$(PIPE) "$(SAGE_SPKG) $(FLINT) 2>&1" "tee -a $(SAGE_LOGS)/$(FLINT).log"

$(INST)/$(ECLIB): $(INST)/$(PARI) $(INST)/$(NTL) $(INST)/$(FLINT)
+$(PIPE) "$(SAGE_SPKG) $(ECLIB) 2>&1" "tee -a $(SAGE_LOGS)/$(ECLIB).log"

$(INST)/$(M4RI): $(INST)/$(LIBPNG) $(INST)/$(PKGCONF)
+$(PIPE) "$(SAGE_SPKG) $(M4RI) 2>&1" "tee -a $(SAGE_LOGS)/$(M4RI).log"

$(INST)/$(M4RIE): $(INST)/$(M4RI) $(INST)/$(GIVARO) $(INST)/$(NTL)
+$(PIPE) "$(SAGE_SPKG) $(M4RIE) 2>&1" "tee -a $(SAGE_LOGS)/$(M4RIE).log"

# zn_poly really does depend on Python, despite this is far from obvious.
# The 'configure' script in zn_poly calls Python to make a 'makefile'.
$(INST)/$(ZNPOLY): $(INST)/$(MPIR) $(INST)/$(PYTHON)
+$(PIPE) "$(SAGE_SPKG) $(ZNPOLY) 2>&1" "tee -a $(SAGE_LOGS)/$(ZNPOLY).log"

$(INST)/$(SAGENB): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS) 
$(INST)/$(PEXPECT) \
                   $(INST)/$(JINJA2) $(INST)/$(SPHINX) $(INST)/$(DOCUTILS)
+$(PIPE) "$(SAGE_SPKG) $(SAGENB) 2>&1" "tee -a $(SAGE_LOGS)/$(SAGENB).log"

$(INST)/$(SQLALCHEMY): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(SQLALCHEMY) 2>&1" "tee -a 
$(SAGE_LOGS)/$(SQLALCHEMY).log"

$(INST)/$(SPHINX): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS) 
$(INST)/$(DOCUTILS) \
                   $(INST)/$(JINJA2) $(INST)/$(PYGMENTS)
+$(PIPE) "$(SAGE_SPKG) $(SPHINX) 2>&1" "tee -a $(SAGE_LOGS)/$(SPHINX).log"

$(INST)/$(JINJA2): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS) 
$(INST)/$(DOCUTILS)
+$(PIPE) "$(SAGE_SPKG) $(JINJA2) 2>&1" "tee -a $(SAGE_LOGS)/$(JINJA2).log"

$(INST)/$(PYGMENTS): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(PYGMENTS) 2>&1" "tee -a 
$(SAGE_LOGS)/$(PYGMENTS).log"

# List all *build-time* dependencies of the Sage library.  These are,
# on the one hand, programs needed for the build/install process of the
# Sage library (e.g. JINJA2), and on the
# other hand all dependencies for Cython files (e.g. PARI, NTL, MPIR).
$(INST)/sage: \
 $(INST)/$(ATLAS) \
 $(INST)/$(CEPHES) \
 $(INST)/$(CLIQUER) \
 $(INST)/$(CYTHON) \
 $(INST)/$(ECL) \
 $(INST)/$(ECLIB) \
 $(INST)/$(ECM) \
 $(INST)/$(FLINT) \
 $(INST)/$(FPLLL) \
 $(INST)/$(GD) \
 $(INST)/$(GIVARO) \
 $(INST)/$(GLPK) \
 $(INST)/$(GSL) \
 $(INST)/$(IML) \
 $(INST)/$(JINJA2) \
 $(INST)/$(LCALC) \
 $(INST)/$(LRCALC) \
 $(INST)/$(LIBGAP) \
 $(INST)/$(LIBPNG) \
 $(INST)/$(LINBOX) \
 $(INST)/$(M4RI) \
 $(INST)/$(M4RIE) \
 $(INST)/$(MPC) \
 $(INST)/$(MPFI) \
 $(INST)/$(MPFR) \
 $(INST)/$(MPIR) \
 $(INST)/$(NTL) \
 $(INST)/$(NUMPY) \
 $(INST)/$(PARI) \
 $(INST)/$(POLYBORI) \
 $(INST)/$(PPL) \
 $(INST)/$(PYNAC) \
 $(INST)/$(PYTHON) \
 $(INST)/$(RATPOINTS) \
 $(INST)/$(READLINE) \
 $(INST)/$(SINGULAR) \
 $(INST)/$(SYMMETRICA) \
 $(INST)/$(ZNPOLY) \
 $(INST)/csage
if [ -z "$$SAGE_INSTALL_FETCH_ONLY" ]; then \
cd $(SAGE_SRC) && source bin/sage-env && \
$(PIPE) 'time python setup.py install 2>&1' 'tee -a 
$(SAGE_LOGS)/sage-$(SAGE_VERSION).log' && \
touch $@; \
fi

$(INST)/csage: $(INST)/$(SCONS) \
       $(INST)/$(MPIR) \
       $(INST)/$(NTL) \
       $(INST)/$(PARI) \
       $(INST)/$(PYTHON)
if [ -z "$$SAGE_INSTALL_FETCH_ONLY" ]; then \
cd $(SAGE_SRC) && source bin/sage-env && cd c_lib && \
$(PIPE) 'time scons -Q install 2>&1' 'tee -a 
$(SAGE_LOGS)/csage-$(SAGE_VERSION).log' && \
touch $@; \
fi

$(INST)/ccache: $(BASE) $(INST)/$(ZLIB)
+$(PIPE) "$(SAGE_SPKG) ccache 2>&1" "tee -a $(SAGE_LOGS)/ccache.log"
touch $(INST)/ccache

$(INST)/$(GCC): $(INST)/$(MPIR) $(INST)/$(MPFR) $(INST)/$(MPC) \
                $(INST)/$(ZLIB)
+$(PIPE) "$(SAGE_SPKG) $(GCC) 2>&1" "tee -a $(SAGE_LOGS)/$(GCC).log"

$(INST)/$(PILLOW): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(PILLOW) 2>&1" "tee -a $(SAGE_LOGS)/$(PILLOW).log"

$(INST)/$(PKGCONFIG): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
+$(PIPE) "$(SAGE_SPKG) $(PKGCONFIG) 2>&1" "tee -a 
$(SAGE_LOGS)/$(PKGCONFIG).log"

$(INST)/$(NUMPY): $(INST)/$(PYTHON) $(INST)/$(ATLAS) $(INST)/$(PKGCONF)
+$(PIPE) "$(SAGE_SPKG) $(NUMPY) 2>&1" "tee -a $(SAGE_LOGS)/$(NUMPY).log"

$(INST)/$(SCIPY): $(INST)/$(ATLAS) $(INST)/$(NUMPY)
+$(PIPE) "$(SAGE_SPKG) $(SCIPY) 2>&1" "tee -a $(SAGE_LOGS)/$(SCIPY).log"

# matplotlib is needed to test cvxopt (i.e., if SAGE_CHECK=yes). See #12742.
$(INST)/$(CVXOPT): $(INST)/$(NUMPY) \
   $(INST)/$(ATLAS) $(INST)/$(CEPHES) \
   $(INST)/$(GSL) $(INST)/$(GLPK) $(INST)/$(MATPLOTLIB)
+$(PIPE) "$(SAGE_SPKG) $(CVXOPT) 2>&1" "tee -a $(SAGE_LOGS)/$(CVXOPT).log"

$(INST)/$(CEPHES):
+$(PIPE) "$(SAGE_SPKG) $(CEPHES) 2>&1" "tee -a $(SAGE_LOGS)/$(CEPHES).log"




Regards
Paweł

W dniu środa, 31 grudnia 2014 15:35:47 UTC+1 użytkownik Paweł Bogdan 
napisał:
>
> Dima! 
>
> uname -a 
> Linux iota 2.6.38.8 #7 SMP Sat Aug 2 23:41:34 CEST 2014 x86_64 
> Quad-Core_AMD_Opteron(tm)_Processor_8350 PLD Linux
>
> Volker!
> You are right, there are such line. Find Makefile attached to this message.
> I can ask admin of the server to fix the date.
>
> If you say that building sage locally is the best solution I can do it. 
> But can you explain how should I build sage locally that it will fit to the 
> server?
>
> Thanks for remarks.
> Best regards
> Paweł
>
> W dniu środa, 31 grudnia 2014 11:47:09 UTC+1 użytkownik Volker Braun 
> napisał:
>>
>> We run "./configure $$PREREQ_OPTIONS" in build/install so that must be 
>> where the "x make" came from. But I'm a bit confused how that is possible. 
>>  According to the log he hasn't set PREREQ_OPTIONS.
>>
>> Pawel, can you post your build/Makefile? This should include the make 
>> target:
>>
>> $(INST)/prereq: ../configure
>>         @cd ..; rm -f config.log; ln -s logs/pkgs/config.log config.log; \
>>         ./configure $$PREREQ_OPTIONS || ( \
>>             if [ "x$$SAGE_PORT" = x ]; then \
>>                 echo "If you would like to try to build Sage anyway (to 
>> help porting),"; \
>>                 echo "export the variable 'SAGE_PORT' to something 
>> non-empty."; \
>>                 exit 1; \
>>             else \
>>                 echo "Since 'SAGE_PORT' is set, we will try to build 
>> anyway."; \
>>             fi; )
>>         touch $@
>>
>> Also, the "Warning: File `Makefile' has modification time 1.5 s in the 
>> future" means that you are on a network file system where the file server 
>> clock is out of sync. This is a serious problem, you should ask your admin 
>> to fix it. Ideally build Sage on a local file system (/scratch or so).
>>
>>
>> On Tuesday, December 30, 2014 10:39:23 PM UTC+1, Paweł Bogdan wrote:
>>>
>>> I don't know that neither. I followed instruction from 
>>> http://www.sagemath.org/doc/installation/source.html#step-by-step-installation-procedure.
>>>  
>>> I didn't run any ./configure script. I run only make to get logs I attached 
>>> earlier. Are those steps are wrong? Should I run ./configure before make? 
>>> What arguments should I use?
>>>
>>> Best regards
>>> Paweł
>>>
>>> W dniu wtorek, 30 grudnia 2014 20:46:59 UTC+1 użytkownik Jeroen Demeyer 
>>> napisał:
>>>>
>>>> You config.log seems to indicate that you did run 
>>>> ./configure x make 
>>>> which will obviously lead to problems. 
>>>>
>>>> If you didn't run this, I don't know where these bogus arguments 
>>>> "x make" came from... 
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to