aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaul Infante-Sainz <infantesainz@gmail.com>2019-02-28 12:41:14 +0000
committerRaul Infante-Sainz <infantesainz@gmail.com>2019-02-28 12:41:14 +0000
commit69a780ef770034e69db96c2e1e8a4d83626a4d2f (patch)
treedddde42576aaaf9341de53d4c5f0945c9fa6647d
parent62cb377a954921ef7940059e6dfb8521f9698c32 (diff)
Python installation and related packages have been split
Until now the installation of Python and its packages (numpy, astropy, astroquery, etc.) were done in the same `makefile'. With this commit the installation of Python and its packages have been split and now it is independent of the other programs. The installation of all Python packages needs to be written explicitely because pip is not used anymore.
-rw-r--r--reproduce/config/pipeline/dependency-versions.mk8
-rw-r--r--reproduce/src/make/dependencies-python.mk14
-rw-r--r--reproduce/src/make/dependencies.mk26
3 files changed, 42 insertions, 6 deletions
diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk
index f242ac9..655d44e 100644
--- a/reproduce/config/pipeline/dependency-versions.mk
+++ b/reproduce/config/pipeline/dependency-versions.mk
@@ -9,8 +9,9 @@ coreutils-version = 8.30
diffutils-version = 3.7
findutils-version = 4.6.0.199-e3fc
flock-version = 0.2.3
+freetype-version = 2.9
gawk-version = 4.2.1
-gcc-version = 8.2.0
+gcc-version = 8.3.0
ghostscript-version = 9.26
git-version = 2.20.1
gmp-version = 6.1.2
@@ -18,12 +19,13 @@ gnuastro-version = 0.8
grep-version = 3.3
gzip-version = 1.10
isl-version = 0.18
-libtool-version = 2.4.6
libbsd-version = 0.9.1
+libpng-version = 1.6.36
+libtool-version = 2.4.6
lzip-version = 1.20
make-version = 4.2.90
metastore-version = 1.1.2-23-fa9170b
-mpfr-version = 4.0.1
+mpfr-version = 4.0.2
mpc-version = 1.1.0
ncurses-version = 6.1
openssl-version = 1.1.1a
diff --git a/reproduce/src/make/dependencies-python.mk b/reproduce/src/make/dependencies-python.mk
index 0f45fe2..c45cc13 100644
--- a/reproduce/src/make/dependencies-python.mk
+++ b/reproduce/src/make/dependencies-python.mk
@@ -144,7 +144,7 @@ $(tarballs): $(tdir)/%:
mergenames=1
if [ $$n = python ]; then
mergenames=0
- w=https://www.python.org/ftp/python/$(python-version)/Python-$(python-version).tgz
+ h=https://www.python.org/ftp/python/$(python-version)/Python-$(python-version).tgz
elif [ $$n = astroquery ]; then h=61/50/a7a08f9e54d7d9d97e69433cd88231e1ad2901811c9d1ae9ac7ccaef9396
elif [ $$n = astropy ]; then h=eb/f7/1251bf6881861f24239efe0c24cbcfc4191ccdbb69ac3e9bb740d0c23352
elif [ $$n = beautifulsoup ]; then h=80/f2/f6aca7f1b209bb9a7ef069d68813b091c8c3620642b568dac4eb0e507748
@@ -167,6 +167,7 @@ $(tarballs): $(tdir)/%:
elif [ $$n = setuptools_scm ]; then h=54/85/514ba3ca2a022bddd68819f187ae826986051d130ec5b972076e4f58a9f3
elif [ $$n = six ]; then h=dd/bf/4138e7bfb757de47d1f4b6994648ec67a51efe58fa907c1e11e350cddfca
elif [ $$n = soupsieve ]; then h=0c/52/e9088bb9b96e2d39fc3b33fcda5b4fde9d71473536ac660a1ca9a0958a2f
+ elif [ $$n = urllib ]; then h=b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1
elif [ $$n = virtualenv ]; then h=51/aa/c395a6e6eaaedfa5a04723b6446a1df783b16cca6fec66e671cede514688
elif [ $$n = webencodings ]; then h=0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47
# elif [ $$n = strange5-name ]; then h=XXXXX
@@ -227,6 +228,13 @@ pybuild = cd $(ddir); rm -rf $(3); \
# -------------------
#
$(ibdir)/python3: $(tdir)/python-$(python-version).tar.gz
+ # On Mac systems, the build complains about `clang' specific
+ # features, so we can't use our own GCC build here.
+# if [ x$(on_mac_os) = xyes ]; then \
+# export CC=clang; \
+# export CXX=clang++; \
+# fi; \
+
$(call gbuild, $<, Python-$(python-version)) \
&& v=$$(echo $(python-version) | awk 'BEGIN{FS="."} \
{printf "%d.%d\n", $$1, $$2}') \
@@ -293,6 +301,7 @@ $(ipydir)/kiwisolver: $(tdir)/kiwisolver-$(kiwisolver-version).tar.gz \
$(ipydir)/matplotlib: $(tdir)/matplotlib-$(matplotlib-version).tar.gz \
$(ipydir)/cycler \
+ $(ilidir)/freetype \
$(ipydir)/pyparsing \
$(ipydir)/python-dateutil \
$(ipydir)/kiwisolver
@@ -300,6 +309,9 @@ $(ipydir)/matplotlib: $(tdir)/matplotlib-$(matplotlib-version).tar.gz \
$(ipydir)/numpy: $(tdir)/numpy-$(numpy-version).zip \
$(ibdir)/python3
+ export BLAS=None; \
+ export ATLAS=None; \
+ export LAPACK=None; \
$(call pybuild, unzip, $<, numpy-$(numpy-version))
$(ibdir)/pip3: $(tdir)/pip-$(pip-version).tar.gz \
diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk
index d227dcc..9f4472e 100644
--- a/reproduce/src/make/dependencies.mk
+++ b/reproduce/src/make/dependencies.mk
@@ -43,9 +43,11 @@ ildir = $(BDIR)/dependencies/installed/lib
ilidir = $(BDIR)/dependencies/installed/lib/built
# Define the top-level programs to build (installed in `.local/bin').
-top-level-programs = astnoisechisel flock metastore unzip zip
+top-level-programs = astnoisechisel flock metastore unzip zip
+top-level-libraries = freetype
all: $(ddir)/texlive-versions.tex \
- $(foreach p, $(top-level-programs), $(ibdir)/$(p))
+ $(foreach p, $(top-level-programs), $(ibdir)/$(p)) \
+ $(foreach p, $(top-level-libraries), $(ilidir)/$(p))
# Other basic environment settings: We are only including the host
# operating system's PATH environment variable (after our own!) for the
@@ -91,6 +93,7 @@ tarballs = $(foreach t, cfitsio-$(cfitsio-version).tar.gz \
cmake-$(cmake-version).tar.gz \
curl-$(curl-version).tar.gz \
flock-$(flock-version).tar.xz \
+ freetype-$(freetype-version).tar.gz \
ghostscript-$(ghostscript-version).tar.gz \
git-$(git-version).tar.xz \
gnuastro-$(gnuastro-version).tar.lz \
@@ -98,6 +101,7 @@ tarballs = $(foreach t, cfitsio-$(cfitsio-version).tar.gz \
install-tl-unx.tar.gz \
jpegsrc.$(libjpeg-version).tar.gz \
libbsd-$(libbsd-version).tar.xz \
+ libpng-$(libpng-version).tar.xz \
libtool-$(libtool-version).tar.xz \
libgit2-$(libgit2-version).tar.gz \
metastore-$(metastore-version).tar.gz \
@@ -129,6 +133,7 @@ $(tarballs): $(tdir)/%:
elif [ $$n = cmake ]; then w=https://cmake.org/files/v3.12
elif [ $$n = curl ]; then w=https://curl.haxx.se/download
elif [ $$n = flock ]; then w=https://github.com/discoteq/flock/releases/download/v$(flock-version)
+ elif [ $$n = freetype ]; then w=https://download.savannah.gnu.org/releases/freetype
elif [ $$n = ghostscript ]; then w=https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926
elif [ $$n = git ]; then w=http://mirrors.edge.kernel.org/pub/software/scm/git
elif [ $$n = gnuastro ]; then w=http://ftpmirror.gnu.org/gnu/gnuastro
@@ -136,6 +141,7 @@ $(tarballs): $(tdir)/%:
elif [ $$n = install ]; then w=http://mirror.ctan.org/systems/texlive/tlnet
elif [ $$n = jpegsrc ]; then w=http://ijg.org/files
elif [ $$n = libbsd ]; then w=http://libbsd.freedesktop.org/releases
+ elif [ $$n = libpng ]; then w=https://download.sourceforge.net/libpng
elif [ $$n = libtool ]; then w=http://ftpmirror.gnu.org/gnu/libtool
elif [ $$n = libgit ]; then
mergenames=0
@@ -222,6 +228,12 @@ $(ilidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz
$(call gbuild, $<, gsl-$(gsl-version), static) \
&& echo "GNU Scientific Library is built" > $@
+# Freetype is necessary to install matplotlib
+$(ilidir)/freetype: $(tdir)/freetype-$(freetype-version).tar.gz \
+ $(ilibdir)/libpng
+ $(call gbuild, $<, freetype-$(freetype-version), static) \
+ && echo "freetype is built" > $@
+
$(ilidir)/libbsd: $(tdir)/libbsd-$(libbsd-version).tar.xz
$(call gbuild, $<, libbsd-$(libbsd-version), static,,V=1) \
&& echo "libbsd is built" > $@
@@ -229,6 +241,9 @@ $(ilidir)/libbsd: $(tdir)/libbsd-$(libbsd-version).tar.xz
$(ilidir)/libjpeg: $(tdir)/jpegsrc.$(libjpeg-version).tar.gz
$(call gbuild, $<, jpeg-9b, static) && echo "Libjpeg is built" > $@
+$(ilidir)/libpng: $(tdir)/libpng-$(libpng-version).tar.xz
+ $(call gbuild, $<, libpng, static) && echo "Libpng is built" > $@
+
$(ilidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \
$(ilidir)/libjpeg
$(call gbuild, $<, tiff-$(libtiff-version), static, \
@@ -304,6 +319,13 @@ $(ibdir)/cmake: $(tdir)/cmake-$(cmake-version).tar.gz \
# After searching in `bootstrap', I couldn't find `LIBS', only
# `LDFLAGS'. So the extra libraries are being added to `LDFLAGS',
# not `LIBS'.
+ #
+ # On Mac systems, the build complains about `clang' specific
+ # features, so we can't use our own GCC build here.
+ if [ x$(on_mac_os) = xyes ]; then \
+ export CC=clang; \
+ export CXX=clang++; \
+ fi; \
cd $(ddir) && rm -rf cmake-$(cmake-version) && \
tar xf $< && cd cmake-$(cmake-version) && \
./bootstrap --prefix=$(idir) --system-curl --system-zlib \