diff options
-rw-r--r-- | .file-metadata | bin | 6413 -> 6413 bytes | |||
-rw-r--r-- | reproduce/software/config/installation/checksums.mk | 4 | ||||
-rw-r--r-- | reproduce/software/config/installation/versions.mk | 4 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 63 | ||||
-rw-r--r-- | reproduce/software/make/python.mk | 1 |
5 files changed, 70 insertions, 2 deletions
diff --git a/.file-metadata b/.file-metadata Binary files differindex f3c1bde..5735cf0 100644 --- a/.file-metadata +++ b/.file-metadata 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)" > $@ |