aboutsummaryrefslogtreecommitdiff
path: root/reproduce
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce')
-rw-r--r--reproduce/software/config/installation/TARGETS.mk41
-rw-r--r--reproduce/software/config/installation/versions.mk117
-rw-r--r--reproduce/software/make/basic.mk130
-rw-r--r--reproduce/software/make/high-level.mk112
-rw-r--r--reproduce/software/make/python.mk15
5 files changed, 239 insertions, 176 deletions
diff --git a/reproduce/software/config/installation/TARGETS.mk b/reproduce/software/config/installation/TARGETS.mk
new file mode 100644
index 0000000..4b1ff2e
--- /dev/null
+++ b/reproduce/software/config/installation/TARGETS.mk
@@ -0,0 +1,41 @@
+# Necessary high-level software to build in this project.
+#
+# Copyright (C) 2018-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.
+
+
+
+
+
+# AVAILABLE SOFTWARE
+# ------------------
+#
+# All software that are currently available for installation can be seen in
+# the following file.
+#
+# reproduce/software/config/installation/versions.mk
+#
+# Please add any software that you need for your project in the respective
+# part below (using its name in `versions.mk', but without the `-version'
+# part). Just note that if a program/library is a dependency of another,
+# you don't need to include it here (it will be installed before the
+# higher-level software anyway).
+#
+# Note that many low-level software will be installed before those that are
+# installed in this step. They are clearly distinguished from the
+# higher-level (optional) software in `versions.mk'. These low-level
+# software MUST NOT be added here.
+
+
+
+
+
+# Programs and libraries.
+top-level-programs = gnuastro
+
+# Python libraries/modules.
+top-level-python = astropy
diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk
index 5761165..cfa7f81 100644
--- a/reproduce/software/config/installation/versions.mk
+++ b/reproduce/software/config/installation/versions.mk
@@ -16,40 +16,27 @@
# A copy of the GNU General Public License is available at
# <http://www.gnu.org/licenses/>.
-# C/C++ programs and libraries.
-astrometrynet-version = 0.77
-atlas-version = 3.10.3
+
+
+
+
+# Basic/low-level programs and libraires (installed in any case)
+# --------------------------------------------------------------
bash-version = 5.0
binutils-version = 2.31.1
-cairo-version = 1.16.0
-cdsclient-version = 3.84
-cfitsio-version = 3.45
-cmake-version = 3.14.2
coreutils-version = 8.31
curl-version = 7.63.0
diffutils-version = 3.7
-fftw-version = 3.3.8
file-version = 5.36
findutils-version = 4.6.0.199-e3fc
-flock-version = 0.2.3
-freetype-version = 2.9
gawk-version = 5.0.0
gcc-version = 8.3.0
-ghostscript-version = 9.26
git-version = 2.21.0
gmp-version = 6.1.2
-gnuastro-version = 0.8
grep-version = 3.3
-gsl-version = 2.5
gzip-version = 1.10
-hdf5-version = 1.10.5
isl-version = 0.18
libbsd-version = 0.9.1
-libffi-version = 3.2.1
-libjpeg-version = v9b
-libtiff-version = 4.0.10
-libtool-version = 2.4.6
-libxml2-version = 2.9.9
lzip-version = 1.20
m4-version = 1.4.18
make-version = 4.2.90
@@ -57,20 +44,11 @@ metastore-version = 1.1.2-23-fa9170b
mpfr-version = 4.0.2
mpc-version = 1.1.0
ncurses-version = 6.1
-netpbm-version = 10.47.72
-openblas-version = 0.3.5
-openmpi-version = 4.0.1
openssl-version = 1.1.1a
patchelf-version = 0.9
-pixman-version = 0.38.0
pkgconfig-version = 0.29.2
-python-version = 3.7.3
readline-version = 8.0
-scamp-version = 2.6.7
sed-version = 4.7
-sextractor-version = 2.25.0
-swarp-version = 2.38.0
-swig-version = 3.0.12
tar-version = 1.32
unzip-version = 6.0
wget-version = 1.20.3
@@ -79,24 +57,57 @@ xz-version = 5.2.4
zip-version = 3.0
zlib-version = 1.2.11
-# Special libraries
-# -----------------
+
+
+
+
+# Optional/high-level programs and libraries
+# ------------------------------------------
#
-# When updating the version of these libraries, please look into the build
-# rule first: In one way or another, the version string becomes necessary
-# during their build and must be accounted for. In particular:
-# `libpng' is downgraded because `netpbm' requires `libpng' version < 1.5
-bzip2-version = 1.0.6
-lapack-version = 3.8.0
-libgit2-version = 0.26.0
-libpng-version = 1.4.22
-wcslib-version = 6.2
+# These are programs and libraries that are optional, The ones in
+# `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.
+astrometrynet-version = 0.77
+atlas-version = 3.10.3
+cairo-version = 1.16.0
+cdsclient-version = 3.84
+cfitsio-version = 3.45
+cmake-version = 3.14.2
+fftw-version = 3.3.8
+flock-version = 0.2.3
+freetype-version = 2.9
+ghostscript-version = 9.26
+gnuastro-version = 0.9
+gsl-version = 2.5
+hdf5-version = 1.10.5
+libffi-version = 3.2.1
+libjpeg-version = v9b
+libtiff-version = 4.0.10
+libtool-version = 2.4.6
+libxml2-version = 2.9.9
+netpbm-version = 10.47.72
+openblas-version = 0.3.5
+openmpi-version = 4.0.1
+pixman-version = 0.38.0
+python-version = 3.7.3
+scamp-version = 2.6.7
+sextractor-version = 2.25.0
+swarp-version = 2.38.0
+swig-version = 3.0.12
+
+
+
+
# Python packages
# ---------------
#
-# IMPORTANT: Fix url in `reproduce/src/make/dependencies.mk'
-# if changing the version
+# Similar to optional programs and libraries above.
+#
+# IMPORTANT: If you intend to change the version of any of the Python
+# modules/libraries below, please fix the hash strings of the respective
+# URL in `reproduce/software/make/python.mk'.
asn1crypto-version = 0.24.0
astroquery-version = 0.3.9
astropy-version = 3.1.1
@@ -132,3 +143,27 @@ soupsieve-version = 1.8
urllib3-version = 1.24.1
virtualenv-version = 16.4.0
webencodings-version = 0.5.1
+
+
+
+
+
+# Special programs and libraries
+# ------------------------------
+#
+# When updating the version of these libraries, please look into the build
+# rule first: In one way or another, the version string becomes necessary
+# during their build and must be accounted for.
+#
+# Special notes:
+# - `libpng' is downgraded: the current installation of `netpbm' requires
+# a version less than 1.5.
+
+# Basic/low-level
+bzip2-version = 1.0.6
+
+# Optional/high-level
+lapack-version = 3.8.0
+libgit2-version = 0.26.0
+libpng-version = 1.4.22
+wcslib-version = 6.2
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index 43ccfa1..323a221 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -42,8 +42,7 @@ ddir = $(BDIR)/software/build-tmp
idir = $(BDIR)/software/installed
ibdir = $(BDIR)/software/installed/bin
ildir = $(BDIR)/software/installed/lib
-ibidir = $(BDIR)/software/installed/version-info/bin
-ilidir = $(BDIR)/software/installed/version-info/lib
+ibidir = $(BDIR)/software/installed/version-info/proglib
# We'll need the system's PATH for making links to low-level programs we
# won't be building ourselves.
@@ -240,21 +239,11 @@ makelink = origpath="$$PATH"; \
$(ibdir) $(ildir):; mkdir $@
$(ibidir)/low-level-links: | $(ibdir) $(ildir)
- # The Assembler
- $(call makelink,as)
-
- # Compiler (Cmake needs the clang compiler which we aren't building
- # yet in the project).
+ # Not-installed (but necessary in some cases) compilers.
+ # Clang is necessary for CMake.
$(call makelink,clang)
$(call makelink,clang++)
- # The linker
- $(call makelink,ar)
- $(call makelink,ld)
- $(call makelink,nm)
- $(call makelink,ps)
- $(call makelink,ranlib)
-
# Mac OS specific
$(call makelink,sysctl)
$(call makelink,sw_vers)
@@ -380,7 +369,7 @@ $(ibidir)/zip: $(tdir)/zip-$(zip-version).tar.gz
#
# Note for a static-only build: Zlib's `./configure' doesn't use Autoconf's
# configure script, it just accepts a direct `--static' option.
-$(ilidir)/zlib: $(tdir)/zlib-$(zlib-version).tar.gz
+$(ibidir)/zlib: $(tdir)/zlib-$(zlib-version).tar.gz
$(call gbuild, $<, zlib-$(zlib-version)) \
&& echo "Zlib $(zlib-version)" > $@
@@ -394,7 +383,7 @@ $(ibidir)/tar: $(tdir)/tar-$(tar-version).tar.gz \
$(ibidir)/unzip \
$(ibidir)/gzip \
$(ibidir)/lzip \
- $(ilidir)/zlib \
+ $(ibidir)/zlib \
$(ibidir)/zip \
$(ibidir)/xz
# Since all later programs depend on Tar, the configuration will be
@@ -430,7 +419,7 @@ $(ibidir)/make: $(tdir)/make-$(make-version).tar.lz \
$(call gbuild, $<, make-$(make-version), , , -j$(numthreads)) \
&& echo "GNU Make $(make-version)" > $@
-$(ilidir)/ncurses: $(tdir)/ncurses-$(ncurses-version).tar.gz \
+$(ibidir)/ncurses: $(tdir)/ncurses-$(ncurses-version).tar.gz \
$(ibidir)/make
# Delete the library that will be installed (so we can make sure
@@ -516,8 +505,8 @@ $(ilidir)/ncurses: $(tdir)/ncurses-$(ncurses-version).tar.gz \
exit 1; \
fi
-$(ilidir)/readline: $(tdir)/readline-$(readline-version).tar.gz \
- $(ilidir)/ncurses
+$(ibidir)/readline: $(tdir)/readline-$(readline-version).tar.gz \
+ $(ibidir)/ncurses
$(call gbuild, $<, readline-$(readline-version), static, \
--with-curses --disable-install-examples, \
SHLIB_LIBS="-lncursesw" ) \
@@ -543,7 +532,7 @@ else
needpatchelf = $(ibidir)/patchelf
endif
$(ibidir)/bash: $(tdir)/bash-$(bash-version).tar.gz \
- $(ilidir)/readline \
+ $(ibidir)/readline \
$(needpatchelf)
# Delete the (possibly) existing Bash executable.
@@ -611,7 +600,7 @@ $(ibidir)/bash: $(tdir)/bash-$(bash-version).tar.gz \
# when the library is updated/changed by the host, and the whole purpose of
# this project is avoid dependency on the host as much as possible.
$(ibidir)/curl: $(tdir)/curl-$(curl-version).tar.gz \
- $(ilidir)/openssl
+ $(ibidir)/openssl
$(call gbuild, $<, curl-$(curl-version), , \
LIBS="-pthread" \
--with-zlib=$(ildir) \
@@ -647,7 +636,7 @@ $(ibidir)/curl: $(tdir)/curl-$(curl-version).tar.gz \
#openssl-static = no-dso no-dynamic-engine no-shared
#endif
$(idir)/etc:; mkdir $@
-$(ilidir)/openssl: $(tdir)/openssl-$(openssl-version).tar.gz \
+$(ibidir)/openssl: $(tdir)/openssl-$(openssl-version).tar.gz \
$(tdir)/cert.pem \
$(ibidir)/bash | $(idir)/etc
# According to OpenSSL's Wiki (link bellow), it can't automatically
@@ -694,7 +683,7 @@ $(ilidir)/openssl: $(tdir)/openssl-$(openssl-version).tar.gz \
# host), they are disabled here.
$(ibidir)/wget: $(tdir)/wget-$(wget-version).tar.lz \
$(ibidir)/pkg-config \
- $(ilidir)/openssl
+ $(ibidir)/openssl
libs="-pthread"; \
if [ x$(needs_ldl) = xyes ]; then libs="$$libs -ldl"; fi; \
$(call gbuild, $<, wget-$(wget-version), , \
@@ -725,7 +714,7 @@ $(ibidir)/wget: $(tdir)/wget-$(wget-version).tar.lz \
# building of those higher-level programs (after this Makefile finishes),
# there is no access to the system's PATH.
$(ibidir)/coreutils: $(tdir)/coreutils-$(coreutils-version).tar.xz \
- $(ilidir)/openssl
+ $(ibidir)/openssl
# Coreutils will use the hashing features of OpenSSL's `libcrypto'.
# See Tar's comments for the `-j' option.
$(call gbuild, $<, coreutils-$(coreutils-version), static, \
@@ -746,8 +735,8 @@ $(ibidir)/findutils: $(tdir)/findutils-$(findutils-version).tar.lz \
$(ibidir)/gawk: $(tdir)/gawk-$(gawk-version).tar.lz \
$(ibidir)/bash \
- $(ilidir)/mpfr \
- $(ilidir)/gmp
+ $(ibidir)/mpfr \
+ $(ibidir)/gmp
# AWK doesn't include RPATH by default, so we'll have to manually
# include it using the `patchelf' program (which was a dependency
# of Bash). Just note that AWK produces two executables (for
@@ -773,7 +762,7 @@ $(ibidir)/git: $(tdir)/git-$(git-version).tar.xz \
V=1) \
&& echo "Git $(git-version)" > $@
-$(ilidir)/gmp: $(tdir)/gmp-$(gmp-version).tar.lz \
+$(ibidir)/gmp: $(tdir)/gmp-$(gmp-version).tar.lz \
$(ibidir)/bash
$(call gbuild, $<, gmp-$(gmp-version), static, , , make check) \
&& echo "GNU Multiple Precision Arithmetic Library $(gmp-version)" > $@
@@ -791,7 +780,7 @@ $(ibidir)/grep: $(tdir)/grep-$(grep-version).tar.xz \
$(call gbuild, $<, grep-$(grep-version), static) \
&& echo "GNU Grep $(grep-version)" > $@
-$(ilidir)/libbsd: $(tdir)/libbsd-$(libbsd-version).tar.xz \
+$(ibidir)/libbsd: $(tdir)/libbsd-$(libbsd-version).tar.xz \
$(ibidir)/bash
$(call gbuild, $<, libbsd-$(libbsd-version), static,,V=1) \
&& echo "Libbsd $(libbsd-version)" > $@
@@ -817,7 +806,7 @@ $(ibidir)/m4: $(tdir)/m4-$(m4-version).tar.gz \
ifeq ($(on_mac_os),yes)
needlibbsd =
else
-needlibbsd = $(ilidir)/libbsd
+needlibbsd = $(ibidir)/libbsd
endif
$(ibidir)/metastore: $(tdir)/metastore-$(metastore-version).tar.gz \
$(needlibbsd) \
@@ -842,32 +831,33 @@ $(ibidir)/metastore: $(tdir)/metastore-$(metastore-version).tar.gz \
# Note that the -O and -G options used here are currently only in a
# fork of `metastore' currently hosted at:
# https://github.com/mohammad-akhlaghi/metastore
- user=$$(whoami)
- group=$$(groups | awk '{print $$1}')
- cd $$current_dir
- if [ -f $(ibdir)/metastore ]; then
- for f in pre-commit post-checkout; do
+ user=$$(whoami); \
+ group=$$(groups | awk '{print $$1}'); \
+ cd $$current_dir; \
+ if [ -f $(ibdir)/metastore ]; then \
+ for f in pre-commit post-checkout; do \
sed -e's|@USER[@]|'$$user'|g' \
-e's|@GROUP[@]|'$$group'|g' \
-e's|@BINDIR[@]|$(ibdir)|g' \
-e's|@TOP_PROJECT_DIR[@]|'$$current_dir'|g' \
- reproduce/software/bash/git-$$f > .git/hooks/$$f
- chmod +x .git/hooks/$$f
- echo "Metastore (forked) $(metastore-version)" > $@
- done
- else
- echo; echo; echo;
- echo "*****************"
- echo "metastore couldn't be installed!"
- echo
- echo "Its used for preserving timestamps on Git commits."
- echo "Its useful for development, not simple running of the project."
- echo "So we won't stop the configuration because it wasn't built."
- echo "*****************"
+ reproduce/software/bash/git-$$f > .git/hooks/$$f; \
+ chmod +x .git/hooks/$$f; \
+ echo "Metastore (forked) $(metastore-version)" > $@; \
+ done; \
+ else \
+ echo; echo; echo; \
+ echo "*****************"; \
+ echo "metastore couldn't be installed!"; \
+ echo; \
+ echo "Its used for preserving timestamps on Git commits."; \
+ echo "Its useful for development, not simple running of "; \
+ echo "the project. So we won't stop the configuration "; \
+ echo "because it wasn't built."; \
+ echo "*****************"; \
fi
-$(ilidir)/mpfr: $(tdir)/mpfr-$(mpfr-version).tar.xz \
- $(ilidir)/gmp
+$(ibidir)/mpfr: $(tdir)/mpfr-$(mpfr-version).tar.xz \
+ $(ibidir)/gmp
$(call gbuild, $<, mpfr-$(mpfr-version), static, , , make check) \
&& echo "GNU Multiple Precision Floating-Point Reliably $(mpfr-version)" > $@
@@ -907,13 +897,28 @@ $(ibidir)/which: $(tdir)/which-$(which-version).tar.gz \
# GCC and its prerequisites
# -------------------------
#
-# Binutils' linker `ld' is apparently only good for GNU/Linux systems and
-# other OSs have their own. So for now we aren't actually building
-# Binutils (`ld' isn't a prerequisite of GCC).
-$(ibidir)/binutils: $(tdir)/binutils-$(binutils-version).tar.lz \
- $(ibidir)/bash
- $(call gbuild, $<, binutils-$(binutils-version), static) \
- && echo "GNU Binutils $(binutils-version)" > $@
+# Binutils' assembler (`as') and linker (`ld') will conflict with other
+# compilers. So until then, on Mac systems we'll use the host opertating
+# system's Binutils equivalents by just making links.
+ifeq ($(on_mac_os),yes)
+binutils-prerequisites =
+else
+binutils-prerequisites = $(tdir)/binutils-$(binutils-version).tar.lz \
+ $(ibidir)/bash
+endif
+$(ibidir)/binutils: $(binutils-prerequisites)
+ if [ x$(on_mac_os) = xyes ]; then \
+ $(call makelink,as) \
+ $(call makelink,ar) \
+ $(call makelink,ld) \
+ $(call makelink,nm) \
+ $(call makelink,ps) \
+ $(call makelink,ranlib) \
+ echo "" > $@; \
+ else \
+ $(call gbuild, $<, binutils-$(binutils-version), static) \
+ && echo "GNU Binutils $(binutils-version)" > $@; \
+ fi
# `file' is not a prerequisite of GCC. However, since it is low level, it is
# set as a prerequisite of GCC to have it installed.
@@ -922,13 +927,13 @@ $(ibidir)/file: $(tdir)/file-$(file-version).tar.gz \
$(call gbuild, $<, file-$(file-version), static) \
&& echo "File $(file-version)" > $@
-$(ilidir)/isl: $(tdir)/isl-$(isl-version).tar.bz2 \
- $(ilidir)/gmp
+$(ibidir)/isl: $(tdir)/isl-$(isl-version).tar.bz2 \
+ $(ibidir)/gmp
$(call gbuild, $<, isl-$(isl-version), static) \
&& echo "GNU Integer Set Library $(isl-version)" > $@
-$(ilidir)/mpc: $(tdir)/mpc-$(mpc-version).tar.gz \
- $(ilidir)/mpfr
+$(ibidir)/mpc: $(tdir)/mpc-$(mpc-version).tar.gz \
+ $(ibidir)/mpfr
$(call gbuild, $<, mpc-$(mpc-version), static, , , make check) \
&& echo "GNU Multiple Precision Complex library" > $@
@@ -950,8 +955,8 @@ gcc-prerequisites =
else
gcc-prerequisites = $(tdir)/gcc-$(gcc-version).tar.xz \
$(ibidir)/binutils \
- $(ilidir)/isl \
- $(ilidir)/mpc
+ $(ibidir)/isl \
+ $(ibidir)/mpc
endif
$(ibidir)/gcc: $(gcc-prerequisites) \
$(ibidir)/sed \
@@ -961,6 +966,7 @@ $(ibidir)/gcc: $(gcc-prerequisites) \
$(ibidir)/grep \
$(ibidir)/which \
$(ibidir)/glibtool \
+ $(ibidir)/binutils \
$(ibidir)/coreutils \
$(ibidir)/diffutils \
$(ibidir)/findutils
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 3370bfb..969cf8a 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -28,6 +28,7 @@
# Top level environment
include reproduce/software/make/build-rules.mk
include reproduce/software/config/installation/LOCAL.mk
+include reproduce/software/config/installation/TARGETS.mk
include reproduce/software/config/installation/texlive.mk
include reproduce/software/config/installation/versions.mk
@@ -38,32 +39,13 @@ idir = $(BDIR)/software/installed
ibdir = $(BDIR)/software/installed/bin
ildir = $(BDIR)/software/installed/lib
dtexdir = $(shell pwd)/reproduce/software/bibtex
-ibidir = $(BDIR)/software/installed/version-info/bin
-ilidir = $(BDIR)/software/installed/version-info/lib
itidir = $(BDIR)/software/installed/version-info/tex
ictdir = $(BDIR)/software/installed/version-info/cite
ipydir = $(BDIR)/software/installed/version-info/python
+ibidir = $(BDIR)/software/installed/version-info/proglib
-# Define the top-level programs to build (installed in `.local/bin').
-#
-# About ATLAS: currently the template does not depend on ATLAS but many
-# high level software depend on it. The current rule for ATLAS is tested
-# successfully on Mac (only static) and GNU/Linux (shared and static). But,
-# since it takes a few hours to build, it is not currently a target.
-
-# About available software/libraries: currently the template has rules for
-# installing software that are widely used in science, and in particular in
-# astrophysics. However, not all of these software will be used for all
-# people interested in this template. Due to that, we put some of what we
-# consider the main software as optional software of the template (to see a
-# complete list of all software/libraries, look at the version number
-# Makefile). If that software is needed, just remove the comment `#' to
-# install it.
-top-level-libraries = # atlas
-top-level-programs = gnuastro # astrometrynet scamp sextractor swarp
-top-level-python = numpy # astropy astroquery matplotlib scipy
-all: $(foreach p, $(top-level-libraries), $(ilidir)/$(p)) \
- $(foreach p, $(top-level-programs), $(ibidir)/$(p)) \
+# Set the top-level software to build.
+all: $(foreach p, $(top-level-programs), $(ibidir)/$(p)) \
$(foreach p, $(top-level-python), $(ipydir)/$(p)) \
$(itidir)/texlive
@@ -261,7 +243,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
# for us here. So, we'll make an `$(ildir)/built' directory and make a
# simple plain text file in it with the basic library name (an no prefix)
# and create/write into it when the library is successfully built.
-$(ilidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
+$(ibidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
$(ibidir)/curl
# CFITSIO hard-codes the absolute address of cURL's `curl-config'
@@ -284,31 +266,31 @@ $(ilidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
&& rm $$customtar \
&& echo "CFITSIO $(cfitsio-version)" > $@
-$(ilidir)/cairo: $(tdir)/cairo-$(cairo-version).tar.xz \
- $(ilidir)/freetype \
- $(ilidir)/libpng \
- $(ilidir)/pixman
+$(ibidir)/cairo: $(tdir)/cairo-$(cairo-version).tar.xz \
+ $(ibidir)/freetype \
+ $(ibidir)/libpng \
+ $(ibidir)/pixman
$(call gbuild, $<, cairo-$(cairo-version), static) \
&& echo "Cairo $(cairo-version)" > $@
-$(ilidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz
+$(ibidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz
$(call gbuild, $<, gsl-$(gsl-version), static) \
&& echo "GNU Scientific Library $(gsl-version)" > $@
-$(ilidir)/fftw: $(tdir)/fftw-$(fftw-version).tar.gz
+$(ibidir)/fftw: $(tdir)/fftw-$(fftw-version).tar.gz
$(call gbuild, $<, fftw-$(fftw-version), static, \
--enable-shared) \
&& cp $(dtexdir)/fftw.tex $(ictdir)/ \
&& echo "FFTW $(fftw-version) \citep{fftw}" > $@
# Freetype is necessary to install matplotlib
-$(ilidir)/freetype: $(tdir)/freetype-$(freetype-version).tar.gz \
- $(ilidir)/libpng
+$(ibidir)/freetype: $(tdir)/freetype-$(freetype-version).tar.gz \
+ $(ibidir)/libpng
$(call gbuild, $<, freetype-$(freetype-version), static) \
&& echo "FreeType $(freetype-version)" > $@
-$(ilidir)/hdf5: $(tdir)/hdf5-$(hdf5-version).tar.gz \
- $(ilidir)/openmpi
+$(ibidir)/hdf5: $(tdir)/hdf5-$(hdf5-version).tar.gz \
+ $(ibidir)/openmpi
export CC=mpicc; \
export FC=mpif90; \
$(call gbuild, $<, hdf5-$(hdf5-version), static, \
@@ -316,15 +298,15 @@ $(ilidir)/hdf5: $(tdir)/hdf5-$(hdf5-version).tar.gz \
--enable-fortran, V=1) \
&& echo "HDF5 library $(hdf5-version)" > $@
-$(ilidir)/libjpeg: $(tdir)/jpegsrc.$(libjpeg-version).tar.gz
+$(ibidir)/libjpeg: $(tdir)/jpegsrc.$(libjpeg-version).tar.gz
$(call gbuild, $<, jpeg-9b, static) \
&& echo "Libjpeg $(libjpeg-version)" > $@
-$(ilidir)/libpng: $(tdir)/libpng-$(libpng-version).tar.xz
+$(ibidir)/libpng: $(tdir)/libpng-$(libpng-version).tar.xz
$(call gbuild, $<, libpng-$(libpng-version), static) \
&& echo "Libpng $(libpng-version)" > $@
-$(ilidir)/libxml2: $(tdir)/libxml2-$(libxml2-version).tar.gz
+$(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:
@@ -335,21 +317,21 @@ $(ilidir)/libxml2: $(tdir)/libxml2-$(libxml2-version).tar.gz
--without-python) \
&& echo "Libxml2 $(libxml2-version)" > $@
-$(ilidir)/pixman: $(tdir)/pixman-$(pixman-version).tar.gz
+$(ibidir)/pixman: $(tdir)/pixman-$(pixman-version).tar.gz
$(call gbuild, $<, pixman-$(pixman-version), static) \
&& echo "Pixman $(pixman-version)" > $@
-$(ilidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \
- $(ilidir)/libjpeg
+$(ibidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \
+ $(ibidir)/libjpeg
$(call gbuild, $<, tiff-$(libtiff-version), static, \
--disable-webp --disable-zstd) \
&& echo "Libtiff $(libtiff-version)" > $@
-$(ilidir)/openmpi: $(tdir)/openmpi-$(openmpi-version).tar.gz
+$(ibidir)/openmpi: $(tdir)/openmpi-$(openmpi-version).tar.gz
$(call gbuild, $<, openmpi-$(openmpi-version), static, , V=1) \
&& echo "Open MPI $(openmpi-version)" > $@
-$(ilidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \
+$(ibidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \
$(tdir)/lapack-$(lapack-version).tar.gz
# Get the operating system specific features (how to get
@@ -429,7 +411,7 @@ $(ilidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \
echo "ATLAS $(atlas-version)" > $@; \
fi
-$(ilidir)/openblas: $(tdir)/openblas-$(openblas-version).tar.gz
+$(ibidir)/openblas: $(tdir)/openblas-$(openblas-version).tar.gz
if [ x$(on_mac_os) = xyes ]; then \
export CC=clang; \
fi; \
@@ -462,7 +444,7 @@ $(ilidir)/openblas: $(tdir)/openblas-$(openblas-version).tar.gz
# libraries at runtime can be extremely problematic.". This is a major
# problem we have been having so far with Mac systems:
# https://libgit2.org/docs/guides/build-and-link
-$(ilidir)/libgit2: $(tdir)/libgit2-$(libgit2-version).tar.gz \
+$(ibidir)/libgit2: $(tdir)/libgit2-$(libgit2-version).tar.gz \
$(ibidir)/cmake \
$(ibidir)/curl
# Build and install the library.
@@ -479,8 +461,8 @@ $(ilidir)/libgit2: $(tdir)/libgit2-$(libgit2-version).tar.gz \
# Write the target file.
echo "Libgit2 $(libgit2-version)" > $@
-$(ilidir)/wcslib: $(tdir)/wcslib-$(wcslib-version).tar.bz2 \
- $(ilidir)/cfitsio
+$(ibidir)/wcslib: $(tdir)/wcslib-$(wcslib-version).tar.bz2 \
+ $(ibidir)/cfitsio
# Build and install the library.
$(call gbuild, $<, wcslib-$(wcslib-version), , \
LIBS="-pthread -lcurl -lm" \
@@ -508,16 +490,16 @@ $(ilidir)/wcslib: $(tdir)/wcslib-$(wcslib-version).tar.bz2 \
# installation directory and the Python executable (by default it will look
# for /usr/bin/python)
$(ibidir)/astrometrynet: $(tdir)/astrometry.net-$(astrometrynet-version).tar.gz \
- $(ilidir)/cairo \
- $(ilidir)/cfitsio \
- $(ilidir)/gsl \
- $(ilidir)/libjpeg \
- $(ilidir)/libpng \
+ $(ibidir)/cairo \
+ $(ibidir)/cfitsio \
+ $(ibidir)/gsl \
+ $(ibidir)/libjpeg \
+ $(ibidir)/libpng \
$(ibidir)/netpbm \
$(ipydir)/numpy \
$(ibidir)/python \
$(ibidir)/swig \
- $(ilidir)/wcslib
+ $(ibidir)/wcslib
cd $(ddir) \
&& if ! tar xf $<; then echo; echo "Tar error"; exit 1; fi \
&& cd astrometry.net-$(astrometrynet-version) \
@@ -584,11 +566,11 @@ $(ibidir)/ghostscript: $(tdir)/ghostscript-$(ghostscript-version).tar.gz
# building in parallel, its better to have these packages start building
# early.
$(ibidir)/gnuastro: $(tdir)/gnuastro-$(gnuastro-version).tar.lz \
- $(ilidir)/gsl \
- $(ilidir)/wcslib \
- $(ilidir)/libjpeg \
- $(ilidir)/libtiff \
- $(ilidir)/libgit2 \
+ $(ibidir)/gsl \
+ $(ibidir)/wcslib \
+ $(ibidir)/libjpeg \
+ $(ibidir)/libtiff \
+ $(ibidir)/libgit2 \
$(ibidir)/ghostscript
ifeq ($(static_build),yes)
staticopts="--enable-static=yes --enable-shared=no";
@@ -606,10 +588,10 @@ endif
# and install). The questions are different depending on the system (tested
# on GNU/Linux and Mac OS).
$(ibidir)/netpbm: $(tdir)/netpbm-$(netpbm-version).tgz \
- $(ilidir)/libjpeg \
- $(ilidir)/libpng \
- $(ilidir)/libtiff \
- $(ilidir)/libxml2 \
+ $(ibidir)/libjpeg \
+ $(ibidir)/libpng \
+ $(ibidir)/libtiff \
+ $(ibidir)/libxml2 \
$(ibidir)/unzip
if [ x$(on_mac_os) = xyes ]; then \
answers='\n\n\n\n\n\n\n\n\n\n\n\nnone\n\n\n'; \
@@ -637,8 +619,8 @@ $(ibidir)/netpbm: $(tdir)/netpbm-$(netpbm-version).tgz \
# the option --enable-openblas and it worked (same issue happened with
# `sextractor'.
$(ibidir)/scamp: $(tdir)/scamp-$(scamp-version).tar.lz \
- $(ilidir)/fftw \
- $(ilidir)/openblas \
+ $(ibidir)/fftw \
+ $(ibidir)/openblas \
$(ibidir)/cdsclient
$(call gbuild, $<, scamp-$(scamp-version), static, \
--enable-threads --enable-openblas \
@@ -654,8 +636,8 @@ $(ibidir)/scamp: $(tdir)/scamp-$(scamp-version).tar.lz \
# installed, it is just necessary to explicity tell sextractor to use it in
# the configuration step.
$(ibidir)/sextractor: $(tdir)/sextractor-$(sextractor-version).tar.lz \
- $(ilidir)/openblas \
- $(ilidir)/fftw
+ $(ibidir)/openblas \
+ $(ibidir)/fftw
$(call gbuild, $<, sextractor-$(sextractor-version), static, \
--enable-threads --enable-openblas \
--with-openblas-libdir=$(ildir) \
@@ -665,7 +647,7 @@ $(ibidir)/sextractor: $(tdir)/sextractor-$(sextractor-version).tar.lz \
&& echo "Sextractor $(sextractor-version) \citep{sextractor}" > $@
$(ibidir)/swarp: $(tdir)/swarp-$(swarp-version).tar.gz \
- $(ilidir)/fftw
+ $(ibidir)/fftw
$(call gbuild, $<, swarp-$(swarp-version), static, \
--enable-threads) \
&& cp $(dtexdir)/swarp.tex $(ictdir)/ \
diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk
index 22c6284..e856906 100644
--- a/reproduce/software/make/python.mk
+++ b/reproduce/software/make/python.mk
@@ -213,12 +213,12 @@ $(pytarballs): $(tdir)/%:
#
# While this Makefile is for Python programs, in some cases, we need
# certain programs (like Python itself), or libraries for the modules.
-$(ilidir)/libffi: $(tdir)/libffi-$(libffi-version).tar.gz
+$(ibidir)/libffi: $(tdir)/libffi-$(libffi-version).tar.gz
$(call gbuild, $<, libffi-$(libffi-version)) \
echo "Libffi $(libffi-version)" > $@
$(ibidir)/python: $(tdir)/python-$(python-version).tar.gz \
- $(ilidir)/libffi
+ $(ibidir)/libffi
# 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 \
@@ -308,7 +308,7 @@ $(ipydir)/certifi: $(tdir)/certifi-$(certifi-version).tar.gz \
Certifi $(certifi-version))
$(ipydir)/cffi: $(tdir)/cffi-$(cffi-version).tar.gz \
- $(ilidir)/libffi \
+ $(ibidir)/libffi \
$(ipydir)/pycparser
$(call pybuild, tar xf, $<, cffi-$(cffi-version), ,\
cffi $(cffi-version))
@@ -341,7 +341,7 @@ $(ipydir)/entrypoints: $(tdir)/entrypoints-$(entrypoints-version).tar.gz \
EntryPoints $(entrypoints-version))
$(ipydir)/h5py: $(tdir)/h5py-$(h5py-version).tar.gz \
- $(ilidir)/hdf5 \
+ $(ibidir)/hdf5 \
$(ipydir)/cython \
$(ipydir)/pypkgconfig \
$(ipydir)/setuptools
@@ -381,7 +381,7 @@ $(ipydir)/kiwisolver: $(tdir)/kiwisolver-$(kiwisolver-version).tar.gz \
$(ipydir)/matplotlib: $(tdir)/matplotlib-$(matplotlib-version).tar.gz \
$(ipydir)/cycler \
- $(ilidir)/freetype \
+ $(ibidir)/freetype \
$(ipydir)/kiwisolver \
$(ipydir)/numpy \
$(ipydir)/pyparsing \
@@ -401,15 +401,14 @@ $(ipydir)/matplotlib: $(tdir)/matplotlib-$(matplotlib-version).tar.gz \
# But atleast on my system it fails.
$(ipydir)/mpi4py: $(tdir)/mpi4py-$(mpi4py-version).tar.gz \
$(ipydir)/setuptools \
- $(ilidir)/openmpi
+ $(ibidir)/openmpi
$(call pybuild, tar xf, $<, mpi4py-$(mpi4py-version)) \
&& cp $(dtexdir)/mpi4py.tex $(ictdir)/ \
&& echo "mpi4py $(mpi4py-version) \citep{mpi4py2011}" > $@
$(ipydir)/numpy: $(tdir)/numpy-$(numpy-version).zip \
$(ipydir)/setuptools \
- $(ilidir)/openblas \
- $(ilidir)/fftw \
+ $(ibidir)/openblas \
$(ibidir)/unzip
if [ x$(on_mac_os) = xyes ]; then \
export LDFLAGS="$(LDFLAGS) -undefined dynamic_lookup -bundle"; \