aboutsummaryrefslogtreecommitdiff
path: root/reproduce
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce')
-rw-r--r--reproduce/analysis/make/initialize.mk6
-rw-r--r--reproduce/analysis/make/paper.mk8
-rw-r--r--reproduce/software/bibtex/tides.tex19
-rw-r--r--reproduce/software/config/installation/texlive.mk2
-rw-r--r--reproduce/software/config/installation/versions.mk1
-rw-r--r--reproduce/software/make/basic.mk5
-rw-r--r--reproduce/software/make/high-level.mk221
7 files changed, 156 insertions, 106 deletions
diff --git a/reproduce/analysis/make/initialize.mk b/reproduce/analysis/make/initialize.mk
index fe7b5ea..d176489 100644
--- a/reproduce/analysis/make/initialize.mk
+++ b/reproduce/analysis/make/initialize.mk
@@ -103,8 +103,13 @@ curdir := $(shell echo $$(pwd))
# itself and doesn't use the local system's default tools. With these
# environment variables, we are setting it to prefer the software we have
# build here.
+#
+# `TEXINPUTS': we have to remove all possible user-specified directories to
+# avoid conflicts with existing TeX Live solutions. Later (in `paper.mk'),
+# we are also going to overwrite `TEXINPUTS' just before `pdflatex'.
.ONESHELL:
.SHELLFLAGS = -ec
+export TEXINPUTS :=
export CCACHE_DISABLE := 1
export PATH := $(installdir)/bin
export LD_LIBRARY_PATH := $(installdir)/lib
@@ -115,7 +120,6 @@ export CPPFLAGS := -I$(installdir)/include
-
# Python enviroment
# -----------------
#
diff --git a/reproduce/analysis/make/paper.mk b/reproduce/analysis/make/paper.mk
index 34d88a4..c17028a 100644
--- a/reproduce/analysis/make/paper.mk
+++ b/reproduce/analysis/make/paper.mk
@@ -98,10 +98,10 @@ $(texbdir)/paper.bbl: tex/src/references.tex $(mtexdir)/dependencies-bib.tex \
# We'll run LaTeX first to generate the `.bcf' file (necessary
# for `biber') and then run `biber' to generate the `.bbl' file.
- p=$$(pwd);
- export TEXINPUTS=$$p:$$TEXINPUTS;
+ p=$$(pwd)
+ export TEXINPUTS=$$p:
cd $(texbdir);
- pdflatex -shell-escape -halt-on-error $$p/paper.tex;
+ pdflatex -shell-escape -halt-on-error $$p/paper.tex
biber paper
fi
@@ -126,7 +126,7 @@ paper.pdf: $(mtexdir)/project.tex paper.tex $(texbdir)/paper.bbl
# Go into the top TeX build directory and make the paper.
p=$$(pwd)
- export TEXINPUTS=$$p:$$TEXINPUTS
+ export TEXINPUTS=$$p:
cd $(texbdir)
pdflatex -shell-escape -halt-on-error $$p/paper.tex
diff --git a/reproduce/software/bibtex/tides.tex b/reproduce/software/bibtex/tides.tex
new file mode 100644
index 0000000..f902da0
--- /dev/null
+++ b/reproduce/software/bibtex/tides.tex
@@ -0,0 +1,19 @@
+%% Copyright (C) 2019 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+%%
+%% Copying and distribution of this file, with or without modification,
+%% are permitted in any medium without royalty provided the copyright
+%% notice and this notice are preserved. This file is offered as-is,
+%% without any warranty.
+
+@ARTICLE{tides,
+ author = {{Abad}, A. and {Barrio}, R. and {Belsa}, F. and {Rodriguez}, M},
+ title = "{Algorithm 924: TIDES, a Taylor Series Integrator for Differential EquationS}",
+ journal = {ACM TOMS},
+ year = 2012,
+ month = nov,
+ volume = 39,
+ eid = {5},
+ pages = {5:1},
+ doi = {10.1145/2382585.2382590},
+ keywords = {Taylor series method, automatic differentiation, high precision, numerical integration of ODEs, variational equations},
+}
diff --git a/reproduce/software/config/installation/texlive.mk b/reproduce/software/config/installation/texlive.mk
index d68f94e..f0c7755 100644
--- a/reproduce/software/config/installation/texlive.mk
+++ b/reproduce/software/config/installation/texlive.mk
@@ -19,4 +19,4 @@
texlive-packages = tex fancyhdr ec newtx fontaxes xkeyval etoolbox xcolor \
setspace caption footmisc datetime fmtcount titlesec \
preprint ulem biblatex biber logreq pgf pgfplots fp \
- courier tex-gyre txfonts times csquotes
+ courier tex-gyre txfonts times csquotes kastrup
diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk
index 3bc95fc..61f7879 100644
--- a/reproduce/software/config/installation/versions.mk
+++ b/reproduce/software/config/installation/versions.mk
@@ -99,6 +99,7 @@ scons-version = 3.0.5
sextractor-version = 2.25.0
swarp-version = 2.38.0
swig-version = 3.0.12
+tides-version = 2.0
yaml-version = 0.2.2
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index e22879b..f0083d6 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -844,8 +844,11 @@ $(ibidir)/libiconv: $(tdir)/libiconv-$(libiconv-version).tar.gz \
$(ibidir)/git: $(tdir)/git-$(git-version).tar.xz \
$(ibidir)/libiconv \
$(ibidir)/curl # Coreutils, so Git is built after it.
+ if [ x$(on_mac_os) = xyes ]; then \
+ export LDFLAGS="$$LDFLAGS -lcharset"; \
+ fi; \
$(call gbuild, $<, git-$(git-version), static, \
- --without-tcltk --with-shell=$(ibdir)/bash \
+ --without-tcltk --with-shell=$(ibdir)/bash \
--with-iconv=$(idir), V=1) \
&& echo "Git $(git-version)" > $@
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index daad4f9..90fc060 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -135,6 +135,7 @@ tarballs = $(foreach t, astrometry.net-$(astrometrynet-version).tar.gz \
sextractor-$(sextractor-version).tar.lz \
swarp-$(swarp-version).tar.gz \
swig-$(swig-version).tar.gz \
+ tides-$(tides-version).tar.gz \
tiff-$(libtiff-version).tar.gz \
wcslib-$(wcslib-version).tar.bz2 \
yaml-$(yaml-version).tar.gz \
@@ -202,6 +203,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
elif [ $$n = sextractor ]; then w=http://akhlaghi.org/src
elif [ $$n = swarp ]; then w=https://www.astromatic.net/download/swarp
elif [ $$n = swig ]; then w=https://sourceforge.net/projects/swig/files/swig/swig-$(swig-version)
+ elif [ $$n = tides ]; then w=http://akhlaghi.org/src
elif [ $$n = tiff ]; then w=https://download.osgeo.org/libtiff
elif [ $$n = wcslib ]; then w=ftp://ftp.atnf.csiro.au/pub/software/wcslib
elif [ $$n = yaml ]; then w=pyyaml.org/download/libyaml
@@ -234,6 +236,11 @@ $(tarballs): $(tdir)/%: | $(lockdir)
+
+
+
+
+
# Libraries
# ---------
#
@@ -242,105 +249,6 @@ $(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)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
- $(ibidir)/curl
-
- # CFITSIO hard-codes '@rpath' inside the shared library on
- # Mac systems. So we need to change it to our library
- # installation path. It doesn't affect GNU/Linux, so we'll
- # just do it in any case to keep things clean.
- topdir=$(pwd); cd $(ddir); tar xf $<
- customtar=cfitsio-$(cfitsio-version)-custom.tar.gz
- cd cfitsio-$(cfitsio-version)
- sed configure -e's|@rpath|$(ildir)|g' > configure_tmp
- mv configure_tmp configure
- chmod +x configure
- cd ..
- tar cf $$customtar cfitsio-$(cfitsio-version)
- cd $$topdir
-
- # Continue the standard build on the customized tarball.
- $(call gbuild, $$customtar, cfitsio-$(cfitsio-version), , \
- --enable-sse2 --enable-reentrant \
- --with-bzip2=$(idir), , make shared) \
- && rm $$customtar \
- && echo "CFITSIO $(cfitsio-version)" > $@
-
-$(ibidir)/cairo: $(tdir)/cairo-$(cairo-version).tar.xz \
- $(ibidir)/freetype \
- $(ibidir)/libpng \
- $(ibidir)/pixman
- $(call gbuild, $<, cairo-$(cairo-version), static, \
- --with-x=no) \
- && echo "Cairo $(cairo-version)" > $@
-
-$(ibidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz
- $(call gbuild, $<, gsl-$(gsl-version), static) \
- && echo "GNU Scientific Library $(gsl-version)" > $@
-
-$(ibidir)/fftw: $(tdir)/fftw-$(fftw-version).tar.gz
- # In order to build single and double precission libraries of
- # `fftw', installation of `fftw' is done twice. First time is to
- # build single precission float libraries and second time is for
- # building the default double precission float libraries
- $(call gbuild, $<, fftw-$(fftw-version), static, \
- --enable-shared enable-threads \
- --enable-single --enable-type-prefix) \
- && $(call gbuild, $<, fftw-$(fftw-version), static, \
- --enable-shared --enable-threads \
- --enable-type-prefix) \
- && cp $(dtexdir)/fftw.tex $(ictdir)/ \
- && echo "FFTW $(fftw-version) \citep{fftw}" > $@
-
-# Freetype is necessary to install matplotlib
-$(ibidir)/freetype: $(tdir)/freetype-$(freetype-version).tar.gz \
- $(ibidir)/libpng
- $(call gbuild, $<, freetype-$(freetype-version), static) \
- && echo "FreeType $(freetype-version)" > $@
-
-$(ibidir)/hdf5: $(tdir)/hdf5-$(hdf5-version).tar.gz \
- $(ibidir)/openmpi
- export CC=mpicc; \
- export FC=mpif90; \
- $(call gbuild, $<, hdf5-$(hdf5-version), static, \
- --enable-parallel \
- --enable-fortran, -j$(numthreads) V=1) \
- && echo "HDF5 library $(hdf5-version)" > $@
-
-$(ibidir)/libjpeg: $(tdir)/jpegsrc.$(libjpeg-version).tar.gz
- $(call gbuild, $<, jpeg-9b, static) \
- && echo "Libjpeg $(libjpeg-version)" > $@
-
-$(ibidir)/libpng: $(tdir)/libpng-$(libpng-version).tar.xz
- $(call gbuild, $<, libpng-$(libpng-version), static) \
- && echo "Libpng $(libpng-version)" > $@
-
-$(ibidir)/libxml2: $(tdir)/libxml2-$(libxml2-version).tar.gz
- # The libxml2 tarball also contains Python bindings which are built and
- # installed to a system directory by default. If you don't need the Python
- # bindings, the easiest solution is to compile without Python support:
- # ./configure --without-python
- # If you really need the Python bindings, try the
- # --with-python-install-dir=DIR option
- $(call gbuild, $<, libxml2-$(libxml2-version), static, \
- --without-python) \
- && echo "Libxml2 $(libxml2-version)" > $@
-
-$(ibidir)/pixman: $(tdir)/pixman-$(pixman-version).tar.gz
- $(call gbuild, $<, pixman-$(pixman-version), static) \
- && echo "Pixman $(pixman-version)" > $@
-
-$(ibidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \
- $(ibidir)/libjpeg
- $(call gbuild, $<, tiff-$(libtiff-version), static, \
- --disable-webp --disable-zstd) \
- && echo "Libtiff $(libtiff-version)" > $@
-
-$(ibidir)/openmpi: $(tdir)/openmpi-$(openmpi-version).tar.gz
- $(call gbuild, $<, openmpi-$(openmpi-version), static, , \
- -j$(numthreads) V=1) \
- && echo "Open MPI $(openmpi-version)" > $@
-
$(ibidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \
$(tdir)/lapack-$(lapack-version).tar.gz
@@ -421,6 +329,96 @@ $(ibidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \
echo "ATLAS $(atlas-version)" > $@; \
fi
+$(ibidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
+ $(ibidir)/curl
+
+ # CFITSIO hard-codes '@rpath' inside the shared library on
+ # Mac systems. So we need to change it to our library
+ # installation path. It doesn't affect GNU/Linux, so we'll
+ # just do it in any case to keep things clean.
+ topdir=$(pwd); cd $(ddir); tar xf $<
+ customtar=cfitsio-$(cfitsio-version)-custom.tar.gz
+ cd cfitsio-$(cfitsio-version)
+ sed configure -e's|@rpath|$(ildir)|g' > configure_tmp
+ mv configure_tmp configure
+ chmod +x configure
+ cd ..
+ tar cf $$customtar cfitsio-$(cfitsio-version)
+ cd $$topdir
+
+ # Continue the standard build on the customized tarball.
+ $(call gbuild, $$customtar, cfitsio-$(cfitsio-version), , \
+ --enable-sse2 --enable-reentrant \
+ --with-bzip2=$(idir), , make shared) \
+ && rm $$customtar \
+ && echo "CFITSIO $(cfitsio-version)" > $@
+
+$(ibidir)/cairo: $(tdir)/cairo-$(cairo-version).tar.xz \
+ $(ibidir)/freetype \
+ $(ibidir)/libpng \
+ $(ibidir)/pixman
+ $(call gbuild, $<, cairo-$(cairo-version), static, \
+ --with-x=no) \
+ && echo "Cairo $(cairo-version)" > $@
+
+$(ibidir)/fftw: $(tdir)/fftw-$(fftw-version).tar.gz
+ # In order to build single and double precission libraries of
+ # `fftw', installation of `fftw' is done twice. First time is to
+ # build single precission float libraries and second time is for
+ # building the default double precission float libraries
+ $(call gbuild, $<, fftw-$(fftw-version), static, \
+ --enable-shared enable-threads \
+ --enable-single --enable-type-prefix) \
+ && $(call gbuild, $<, fftw-$(fftw-version), static, \
+ --enable-shared --enable-threads \
+ --enable-type-prefix) \
+ && cp $(dtexdir)/fftw.tex $(ictdir)/ \
+ && echo "FFTW $(fftw-version) \citep{fftw}" > $@
+
+# Freetype is necessary to install matplotlib
+$(ibidir)/freetype: $(tdir)/freetype-$(freetype-version).tar.gz \
+ $(ibidir)/libpng
+ $(call gbuild, $<, freetype-$(freetype-version), static) \
+ && echo "FreeType $(freetype-version)" > $@
+
+$(ibidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz
+ $(call gbuild, $<, gsl-$(gsl-version), static) \
+ && echo "GNU Scientific Library $(gsl-version)" > $@
+
+$(ibidir)/hdf5: $(tdir)/hdf5-$(hdf5-version).tar.gz \
+ $(ibidir)/openmpi
+ export CC=mpicc; \
+ export FC=mpif90; \
+ $(call gbuild, $<, hdf5-$(hdf5-version), static, \
+ --enable-parallel \
+ --enable-fortran, -j$(numthreads) V=1) \
+ && echo "HDF5 library $(hdf5-version)" > $@
+
+$(ibidir)/libjpeg: $(tdir)/jpegsrc.$(libjpeg-version).tar.gz
+ $(call gbuild, $<, jpeg-9b, static) \
+ && echo "Libjpeg $(libjpeg-version)" > $@
+
+$(ibidir)/libpng: $(tdir)/libpng-$(libpng-version).tar.xz
+ $(call gbuild, $<, libpng-$(libpng-version), static) \
+ && echo "Libpng $(libpng-version)" > $@
+
+$(ibidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \
+ $(ibidir)/libjpeg
+ $(call gbuild, $<, tiff-$(libtiff-version), static, \
+ --disable-webp --disable-zstd) \
+ && echo "Libtiff $(libtiff-version)" > $@
+
+$(ibidir)/libxml2: $(tdir)/libxml2-$(libxml2-version).tar.gz
+ # The libxml2 tarball also contains Python bindings which are built and
+ # installed to a system directory by default. If you don't need the Python
+ # bindings, the easiest solution is to compile without Python support:
+ # ./configure --without-python
+ # If you really need the Python bindings, try the
+ # --with-python-install-dir=DIR option
+ $(call gbuild, $<, libxml2-$(libxml2-version), static, \
+ --without-python) \
+ && echo "Libxml2 $(libxml2-version)" > $@
+
$(ibidir)/openblas: $(tdir)/openblas-$(openblas-version).tar.gz
if [ x$(on_mac_os) = xyes ]; then \
export CC=clang; \
@@ -434,12 +432,29 @@ $(ibidir)/openblas: $(tdir)/openblas-$(openblas-version).tar.gz
&& rm -rf OpenBLAS-$(openblas-version) \
&& echo "OpenBLAS $(openblas-version)" > $@
+$(ibidir)/openmpi: $(tdir)/openmpi-$(openmpi-version).tar.gz
+ $(call gbuild, $<, openmpi-$(openmpi-version), static, , \
+ -j$(numthreads) V=1) \
+ && echo "Open MPI $(openmpi-version)" > $@
+
+$(ibidir)/pixman: $(tdir)/pixman-$(pixman-version).tar.gz
+ $(call gbuild, $<, pixman-$(pixman-version), static) \
+ && echo "Pixman $(pixman-version)" > $@
+
+$(ibidir)/tides: $(tdir)/tides-$(tides-version).tar.gz
+ $(call gbuild, $<, tides-$(tides-version), static,\
+ --with-gmp=$(idir) --with-mpfr=$(idir)) \
+ && cp $(dtexdir)/tides.tex $(ictdir)/ \
+ && echo "TIDES $(tides-version) \citep{tides}" > $@
+
$(ibidir)/yaml: $(tdir)/yaml-$(yaml-version).tar.gz
$(call gbuild, $<, yaml-$(yaml-version), static) \
&& echo "LibYAML $(yaml-version)" > $@
+
+
# Libraries with special attention on Mac OS
# ------------------------------------------
#
@@ -496,6 +511,11 @@ $(ibidir)/wcslib: $(tdir)/wcslib-$(wcslib-version).tar.bz2 \
+
+
+
+
+
# Programs
# --------
#
@@ -533,6 +553,9 @@ $(ibidir)/astrometrynet: $(tdir)/astrometry.net-$(astrometrynet-version).tar.gz
&& cp $(dtexdir)/astrometrynet.tex $(ictdir)/ \
&& echo "Astrometry.net $(astrometrynet-version) \citep{astrometrynet}" > $@
+
+
+
# cdsclient is a set of software written in c to interact with astronomical
# database servers. It is a dependency of `scamp' to be able to download
# reference catalogues.