diff options
-rw-r--r-- | reproduce/software/config/installation/versions.mk | 7 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 61 |
2 files changed, 55 insertions, 13 deletions
diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk index 81acacf..557eec2 100644 --- a/reproduce/software/config/installation/versions.mk +++ b/reproduce/software/config/installation/versions.mk @@ -45,9 +45,9 @@ isl-version = 0.18 libbsd-version = 0.9.1 libffi-version = 3.2.1 libjpeg-version = v9b -libpng-version = 1.6.36 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 @@ -55,6 +55,7 @@ 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 @@ -77,10 +78,12 @@ zlib-version = 1.2.11 # # 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. +# 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 # Python packages diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index 04b6cac..8aa9c55 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -50,9 +50,9 @@ ipydir = $(BDIR)/software/installed/version-info/python # 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. -top-level-libraries = cairo pixman # atlas +top-level-libraries = # atlas +top-level-programs = gnuastro metastore netpbm top-level-python = astroquery matplotlib -top-level-programs = gnuastro metastore all: $(foreach p, $(top-level-libraries), $(ilidir)/$(p)) \ $(foreach p, $(top-level-programs), $(ibidir)/$(p)) \ $(foreach p, $(top-level-python), $(ipydir)/$(p)) \ @@ -132,7 +132,9 @@ tarballs = $(foreach t, cfitsio-$(cfitsio-version).tar.gz \ libbsd-$(libbsd-version).tar.xz \ libpng-$(libpng-version).tar.xz \ libgit2-$(libgit2-version).tar.gz \ + libxml2-$(libxml2-version).tar.gz \ metastore-$(metastore-version).tar.gz \ + netpbm-$(netpbm-version).tar.gz \ openmpi-$(openmpi-version).tar.gz \ openblas-$(openblas-version).tar.gz \ pixman-$(pixman-version).tar.gz \ @@ -188,7 +190,11 @@ $(tarballs): $(tdir)/%: | $(lockdir) elif [ $$n = libgit ]; then mergenames=0 w=https://github.com/libgit2/libgit2/archive/v$(libgit2-version).tar.gz + elif [ $$n = libxml ]; then w=ftp://xmlsoft.org/libxml2 elif [ $$n = metastore ]; then w=http://akhlaghi.org/src + elif [ $$n = netpbm ]; then + mergenames=0 + w=https://sourceforge.net/projects/netpbm/files/super_stable/$(netpbm-version)/netpbm-$(netpbm-version).tgz/download elif [ $$n = openblas ]; then mergenames=0 w=https://github.com/xianyi/OpenBLAS/archive/v$(openblas-version).tar.gz @@ -309,6 +315,17 @@ $(ilidir)/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 + # 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)" > $@ + $(ilidir)/pixman: $(tdir)/pixman-$(pixman-version).tar.gz $(call gbuild, $<, pixman-$(pixman-version), static) \ && echo "Pixman $(pixman-version)" > $@ @@ -628,15 +645,37 @@ endif && cp $(dtexdir)/gnuastro.tex $(ictdir)/ \ && echo "GNU Astronomy Utilities $(gnuastro-version) \citep{gnuastro}" > $@ - - - - - - - - - +# Netpbm is a prerequisite of Astrometry-net, it contains a lot of programs. +# This program has a crazy dialogue installation which is override using the +# printf statment. Each `\n' is a new question that the installation process +# ask to the user. We give all answers with a pipe to the scripts (configure +# 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)/unzip + if [ x$(on_mac_os) = xyes ]; then \ + answers='\n\n\n\n\n\n\n\n\n\n\n\nnone\n\n\n'; \ + else \ + answers='\n\n\n\ny\n\n\n\n\n\n\n\n\n\n\n\n\n'; \ + fi; \ + cd $(ddir) \ + && unpackdir=netpbm-$(netpbm-version) \ + && echo "rm -rf $$unpackdir \ + && if ! tar xf $<; then echo; echo "Tar error"; exit 1; fi" \ + && cd $$unpackdir \ + && echo "printf "$$answers" | ./configure \ + && make \ + && rm -rf $(ddir)/$$unpackdir/install \ + && make package pkgdir=$(ddir)/$$unpackdir/install" \ + && printf "$(ddir)/$$unpackdir/install\n$(idir)\n\n\nN\n\n\n\n\nN\n\n" \ + | ./installnetpbm \ + && cd .. \ + && rm -rf $$unpackdir \ + && echo "Netpbm $(netpbm-version)" > $@ |