aboutsummaryrefslogtreecommitdiff
path: root/reproduce
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
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')
-rw-r--r--reproduce/software/config/installation/checksums.mk4
-rw-r--r--reproduce/software/config/installation/versions.mk4
-rw-r--r--reproduce/software/make/high-level.mk63
-rw-r--r--reproduce/software/make/python.mk1
4 files changed, 70 insertions, 2 deletions
diff --git a/reproduce/software/config/installation/checksums.mk b/reproduce/software/config/installation/checksums.mk
index 6c12712..39c8a7f 100644
--- a/reproduce/software/config/installation/checksums.mk
+++ b/reproduce/software/config/installation/checksums.mk
@@ -73,13 +73,17 @@ zlib-checksum = 73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff
# `reproduce/software/config/installation/TARGETS.mk' will be built as part
# of a project. To specify a software there, just remove the `-checksum'
# suffix from the list below.
+apr-checksum = daa140c83c7e2c45c3980d9dc81d34fa662bebd050653562c39572d0ddf2eaedb71767c518a59d77f59db9b32e00221ef48b9f72ec3666c4521dd511969f3706
+apr-util-checksum = 84da76e9b64da2de0996d4d6f3ab3f23db3724eb6352d218e0e8196bcc0b0a5d4fe791f41b4cc350ce3d04cce3bb3cf8bfb513d777d0cd030928368e6b55a536
astrometrynet-checksum = 35c268bf0a7068e01323b9bfccdf255c993df83c24b2e6026a00084c4ab87d031f1024205d0ed3aecc7e2a495d4bc0b0e67270d66679020b7cc2e4b2f30f5c4a
atlas-checksum = bf17306f09f2aa973cb776e2c9eacfb2409ad4d95d19802e1c4e0597d0a099fccdb5eaafe273c2682a41e41a3c6fabc8bbba4ce03180cffea40ede5df1d1f56e
bison-checksum = 00d2b37187b93100ec4b220ce2752d12ccf68f9d0d39b380d375d36dd8a22aa1d6e60156918f95e4493f9531c5d42d8fad38fd807307b491c1ca7ca4177823d9
+boost-checksum = 4378e20f18db9f186ac0f38ad98c522526e0fe48a8deb968c41325e3f69e733be3298505e91ea713e79a9d9e741305fa879d289f74e6276e0ec7286f03be87fc
cairo-checksum = 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f
cdsclient-checksum = 2d7abf0079189b9dd19cb8919061445fd19ea9f7dfd54e8ceee26b743218cf62ab00eba0147abe82d9294223927f04b4cc3328620dfc9184a7049f8d515b29e4
cfitsio-checksum = c0502699e266928dd25abe57730dc4b357ccc9023789fe745324ae01aa688516aceaf37321ee578f0430111d9718f0fec0dc5b54c07f935529560f00b32ce1e3
cmake-checksum = 7d0abf2f7c661c6b555a7e93a2fce5ab5610c653b0aa4949bed6e97bfbe6523fd0665f67115d3944d3729cbe07ae3aaf780ee673b06dd80f90018cec8a999658
+eigen-checksum = 34cf600914cce719d61511577ef9cd26fbdcb7a6fad1d0ab8396f98b887fac6a5577d3967e84a8f56225cc50de38f3b91f34f447d14312028383e32b34ea1972
fftw-checksum = ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38
flex-checksum = e9785f3d620a204b7d20222888917dc065c2036cae28667065bf7862dfa1b25235095a12fd04efdbd09bfd17d3452e6b9ef953a8c1137862ff671c97132a082e
freetype-checksum = 02f0f4211f9cee5b5e46ebe61190482fca5b41bc26be06fcf0d2d717e9fb119229308398c420eeea476fa2511ca2d52948f1a3242efad30ca82ed0b07cd50e3a
diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk
index 3002078..54e1f2e 100644
--- a/reproduce/software/config/installation/versions.mk
+++ b/reproduce/software/config/installation/versions.mk
@@ -71,13 +71,17 @@ zlib-version = 1.2.11
# `reproduce/software/config/installation/TARGETS.mk' will be built as part
# of a project. To specify a software there, just remove the `-version'
# suffix from the list below.
+apr-version = 1.7.0
+apr-util-version = 1.6.1
astrometrynet-version = 0.77
atlas-version = 3.10.3
bison-version = 3.4.2
+boost-version = 1.71.0
cairo-version = 1.16.0
cdsclient-version = 3.84
cfitsio-version = 3.47
cmake-version = 3.15.3
+eigen-version = 3.3.7
fftw-version = 3.3.8
flex-version = 2.6.4
flock-version = 0.2.3
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)" > $@