aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/make
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-10-24 19:02:27 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-10-24 19:02:27 +0100
commitb8f525ff7dfe7cced8691760eaa51ce0479a88fe (patch)
tree3cd9d084e2116cc36e839b1699100ca85fe4934e /reproduce/software/make
parent760b8952267491b8f07926f2b41129de2a1b70c4 (diff)
APR, APR Utility, Boost and Eigen are now available
As part of an effort to bring in all the dependencies of the LSST Science pipeline (which includes the last commit), these software are now available in the template.
Diffstat (limited to 'reproduce/software/make')
-rw-r--r--reproduce/software/make/high-level.mk63
-rw-r--r--reproduce/software/make/python.mk1
2 files changed, 62 insertions, 2 deletions
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 9f7b7e1..36e88ef 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -40,6 +40,7 @@ ddir = $(BDIR)/software/build-tmp
idir = $(BDIR)/software/installed
ibdir = $(BDIR)/software/installed/bin
ildir = $(BDIR)/software/installed/lib
+iidir = $(BDIR)/software/installed/include
dtexdir = $(shell pwd)/reproduce/software/bibtex
itidir = $(BDIR)/software/installed/version-info/tex
ictdir = $(BDIR)/software/installed/version-info/cite
@@ -131,13 +132,17 @@ include reproduce/software/make/python.mk
# convention, but include the name/version in their tarball names with
# another format, we'll do the modification before the download so the
# downloaded file has our desired format.
-tarballs = $(foreach t, astrometry.net-$(astrometrynet-version).tar.gz \
+tarballs = $(foreach t, apr-$(apr-version).tar.gz \
+ apr-util-$(apr-util-version).tar.gz \
+ astrometry.net-$(astrometrynet-version).tar.gz \
atlas-$(atlas-version).tar.bz2 \
bison-$(bison-version).tar.xz \
+ boost-$(boost-version).tar.gz \
cairo-$(cairo-version).tar.xz \
cdsclient-$(cdsclient-version).tar.gz \
cfitsio-$(cfitsio-version).tar.gz \
cmake-$(cmake-version).tar.gz \
+ eigen-$(eigen-version).tar.gz \
fftw-$(fftw-version).tar.gz \
flex-$(flex-version).tar.gz \
freetype-$(freetype-version).tar.gz \
@@ -181,12 +186,20 @@ $(tarballs): $(tdir)/%: | $(lockdir)
# Set the top download link of the requested tarball.
mergenames=1
- if [ $$n = astrometry ]; then c=$(astrometrynet-checksum); w=http://astrometry.net/downloads
+ if [ $* = apr-util-$(apr-util-version).tar.gz ];
+ then c=$(apr-util-checksum); w=https://www-us.apache.org/dist/apr
+ elif [ $$n = apr ]; then c=$(apr-checksum); w=https://www-us.apache.org/dist/apr
+ elif [ $$n = astrometry ]; then c=$(astrometrynet-checksum); w=http://astrometry.net/downloads
elif [ $$n = atlas ]; then
mergenames=0
c=$(atlas-checksum)
w=https://sourceforge.net/projects/math-atlas/files/Stable/$(atlas-version)/atlas$(atlas-version).tar.bz2/download
elif [ $$n = bison ]; then c=$(bison-checksum); w=http://ftp.gnu.org/gnu/bison/
+ elif [ $$n = boost ]; then
+ mergenames=0
+ c=$(boost-checksum)
+ vstr=$$(echo $(boost-version) | sed -e's/\./_/g')
+ w=https://dl.bintray.com/boostorg/release/$(boost-version)/source/boost_$$vstr.tar.gz
elif [ $$n = cairo ]; then c=$(cairo-checksum); w=https://www.cairographics.org/releases
elif [ $$n = cdsclient ]; then c=$(cdsclient-checksum); w=http://cdsarc.u-strasbg.fr/ftp/pub/sw
elif [ $$n = cfitsio ]; then c=$(cfitsio-checksum); w=https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c
@@ -197,6 +210,10 @@ $(tarballs): $(tdir)/%: | $(lockdir)
| sed -e's/\./ /' \
| awk '{printf("%d.%d", $$1, $$2)}')
w=https://cmake.org/files/v$$majv/cmake-$(cmake-version).tar.gz
+ elif [ $$n = eigen ]; then
+ mergenames=0
+ c=$(eigen-checksum);
+ w=http://bitbucket.org/eigen/eigen/get/$(eigen-version).tar.gz
elif [ $$n = fftw ]; then c=$(fftw-checksum); w=ftp://ftp.fftw.org/pub/fftw
elif [ $$n = flex ]; then c=$(flex-checksum); w=https://github.com/westes/flex/files/981163
elif [ $$n = freetype ]; then c=$(freetype-checksum); w=https://download.savannah.gnu.org/releases/freetype
@@ -314,6 +331,19 @@ $(tarballs): $(tdir)/%: | $(lockdir)
# libraries. Therefore, we can't use the easy `.a' suffix for static
# libraries as targets and there are different conventions for shared
# library names.
+$(ibidir)/apr: $(tdir)/apr-$(apr-version).tar.gz
+ $(call gbuild, $<, apr-$(apr-version), ,--disable-static) \
+ && echo "Apache Portable Runtime $(apr-version)" > $@
+
+$(ibidir)/apr-util: $(tdir)/apr-util-$(apr-util-version).tar.gz \
+ $(ibidir)/apr
+ $(call gbuild, $<, apr-util-$(apr-util-version), , \
+ --disable-static \
+ --with-apr=$(idir) \
+ --with-openssl=$(idir) \
+ --with-crypto ) \
+ && echo "Apache Portable Runtime Utility $(apr-util-version)" > $@
+
$(ibidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \
$(tdir)/lapack-$(lapack-version).tar.gz
@@ -394,6 +424,23 @@ $(ibidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \
echo "ATLAS $(atlas-version)" > $@; \
fi
+# Boost doesn't use the standard GNU Build System.
+$(ibidir)/boost: $(tdir)/boost-$(boost-version).tar.gz \
+ $(ibidir)/openmpi \
+ $(ibidir)/python
+ vstr=$$(echo $(boost-version) | sed -e's/\./_/g')
+ rm -rf $(ddir)/boost_$$vstr
+ topdir=$(pwd); cd $(ddir); tar xf $<
+ cd boost_$$vstr
+ ./bootstrap.sh --prefix=$(idir) --with-libraries=all \
+ --with-python=python3 \
+ && echo "using mpi ;" > project-config.jam \
+ && ./b2 stage threading=multi link=shared --prefix=$(idir) -j$(numthreads) \
+ && ./b2 install threading=multi link=shared --prefix=$(idir) -j$(numthreads) \
+ && cd $$topdir \
+ && rm -rf $(ddir)/boost_$$vstr \
+ && echo "Boost $(boost-version)" > $@
+
$(ibidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
$(ibidir)/curl
@@ -428,6 +475,18 @@ $(ibidir)/cairo: $(tdir)/cairo-$(cairo-version).tar.xz \
--with-x=no, -j$(numthreads) V=1) \
&& echo "Cairo $(cairo-version)" > $@
+# Eigen is just headers! So it doesn't need to be compiled. Once unpacked
+# it has a checksum after `eigen-eigen', so we'll just use a `*' to choose
+# the unpacked directory.
+$(ibidir)/eigen: $(tdir)/eigen-$(eigen-version).tar.gz
+ rm -rf $(ddir)/eigen-eigen-*
+ topdir=$(pwd); cd $(ddir); tar xf $<
+ cd eigen-eigen-*
+ cp -r Eigen $(iidir)/eigen3 \
+ && cd $$topdir \
+ && rm -rf $(ddir)/eigen-eigen-* \
+ && echo "Eigen $(eigen-version)" > $@
+
$(ibidir)/fftw: $(tdir)/fftw-$(fftw-version).tar.gz
# FFTW's single and double precission libraries must be built
# independently: for the the single-precision library, we need to
diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk
index f624a20..9cf99e5 100644
--- a/reproduce/software/make/python.mk
+++ b/reproduce/software/make/python.mk
@@ -271,6 +271,7 @@ $(ibidir)/python: $(tdir)/python-$(python-version).tar.gz \
{printf "%d.%d\n", $$1, $$2}') \
&& ln -sf $(ildir)/python$$v $(ildir)/python \
&& ln -sf $(ibdir)/python$$v $(ibdir)/python \
+ && ln -sf $(iidir)/python$$v"m" $(iidir)/python$$v \
&& rm -rf $(ipydir) \
&& mkdir $(ipydir) \
&& echo "Python $(python-version)" > $@