diff options
author | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2019-04-22 15:06:44 +0100 |
---|---|---|
committer | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2019-04-22 15:06:44 +0100 |
commit | af681d01b3837ed205308a959834f6a5aa07307a (patch) | |
tree | ff5047f85e7b608460eb9876e23295604e05b54d /reproduce | |
parent | 57c4a65cd6dafe1c9a9f2961576d438c9394cd35 (diff) | |
parent | bc1011005dc58787fc26f9f091a9675fe88baeb7 (diff) |
Imported recent work on several astronomy packages
With this commit, Raul's work on the installation of several astronomy
software is implemented in the main template.
Diffstat (limited to 'reproduce')
-rw-r--r-- | reproduce/analysis/make/paper.mk | 2 | ||||
-rw-r--r-- | reproduce/software/bibtex/astrometrynet.tex | 20 | ||||
-rw-r--r-- | reproduce/software/bibtex/scamp.tex | 18 | ||||
-rw-r--r-- | reproduce/software/bibtex/sextractor.tex | 18 | ||||
-rw-r--r-- | reproduce/software/bibtex/swarp.tex | 18 | ||||
-rw-r--r-- | reproduce/software/config/installation/versions.mk | 15 | ||||
-rw-r--r-- | reproduce/software/make/basic.mk | 6 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 198 | ||||
-rw-r--r-- | reproduce/software/make/python.mk | 19 |
9 files changed, 285 insertions, 29 deletions
diff --git a/reproduce/analysis/make/paper.mk b/reproduce/analysis/make/paper.mk index 5378ee3..549b7c0 100644 --- a/reproduce/analysis/make/paper.mk +++ b/reproduce/analysis/make/paper.mk @@ -90,7 +90,7 @@ $(mtexdir)/project.tex: $(foreach s, $(subst paper,,$(makesrc)), $(mtexdir)/$(s) # recipe and the `paper.pdf' recipe. But if `tex/src/references.tex' hasn't # been modified, we don't want to re-build the bibliography, only the final # PDF. -$(texbdir)/paper.bbl: tex/src/references.tex \ +$(texbdir)/paper.bbl: tex/src/references.tex $(mtexdir)/dependencies-bib.tex \ | $(tikzdir) $(texbdir) $(mtexdir)/project.tex # If `$(mtexdir)/project.tex' is empty, don't build PDF. @macros=$$(cat $(mtexdir)/project.tex) diff --git a/reproduce/software/bibtex/astrometrynet.tex b/reproduce/software/bibtex/astrometrynet.tex new file mode 100644 index 0000000..8bbaceb --- /dev/null +++ b/reproduce/software/bibtex/astrometrynet.tex @@ -0,0 +1,20 @@ +%% Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com> +%% +%% 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{astrometrynet, + doi = {10.1088/0004-6256/139/5/1782}, + url = {https://doi.org/10.1088%2F0004-6256%2F139%2F5%2F1782}, + year = 2010, + month = {mar}, + publisher = {{IOP} Publishing}, + volume = {139}, + number = {5}, + pages = {1782}, + author = {Dustin Lang and David W. Hogg and Keir Mierle and Michael Blanton and Sam Roweis}, + title = {{ASTROMETRY}.{NET}: {BLIND} {ASTROMETRIC} {CALIBRATION} {OF} {ARBITRARY} {ASTRONOMICAL} {IMAGES}}, + journal = {AJ} +} diff --git a/reproduce/software/bibtex/scamp.tex b/reproduce/software/bibtex/scamp.tex new file mode 100644 index 0000000..8d825d7 --- /dev/null +++ b/reproduce/software/bibtex/scamp.tex @@ -0,0 +1,18 @@ +%% Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com> +%% +%% 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{scamp, + author = {{Bertin}, E.}, + title = "{Automatic Astrometric and Photometric Calibration with SCAMP}", + year = 2006, + journal= {ASPConf}, + volume = 351, + month = jul, + pages = {112}, + adsurl = {http://cdsads.u-strasbg.fr/abs/2006ASPC..351..112B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} diff --git a/reproduce/software/bibtex/sextractor.tex b/reproduce/software/bibtex/sextractor.tex new file mode 100644 index 0000000..90d3eff --- /dev/null +++ b/reproduce/software/bibtex/sextractor.tex @@ -0,0 +1,18 @@ +%% Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com> +%% +%% 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{sextractor, + author = {{Bertin, E.} and {Arnouts, S.}}, + title = {SExtractor: Software for source extraction}, + DOI= "10.1051/aas:1996164", + url= "https://doi.org/10.1051/aas:1996164", + journal = {AASS}, + year = 1996, + volume = 117, + number = 2, + pages = "393", +} diff --git a/reproduce/software/bibtex/swarp.tex b/reproduce/software/bibtex/swarp.tex new file mode 100644 index 0000000..3ff9b91 --- /dev/null +++ b/reproduce/software/bibtex/swarp.tex @@ -0,0 +1,18 @@ +%% Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com> +%% +%% 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{swarp, + author = {{Bertin}, E. and {Mellier}, Y. and {Radovich}, M. and {Missonnier}, G. and + {Didelon}, P. and {Morin}, B.}, + journal = {ASPConf}, + title = "{The TERAPIX Pipeline}", + year = {2002}, + volume = {281}, + pages = {228}, + adsurl = {http://adsabs.harvard.edu/abs/2002ASPC..281..228B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk index 149f9ae..5761165 100644 --- a/reproduce/software/config/installation/versions.mk +++ b/reproduce/software/config/installation/versions.mk @@ -17,9 +17,12 @@ # <http://www.gnu.org/licenses/>. # C/C++ programs and libraries. +astrometrynet-version = 0.77 atlas-version = 3.10.3 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 @@ -44,9 +47,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 @@ -54,14 +57,20 @@ 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 @@ -75,10 +84,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/basic.mk b/reproduce/software/make/basic.mk index cfa05d2..6e6550e 100644 --- a/reproduce/software/make/basic.mk +++ b/reproduce/software/make/basic.mk @@ -830,6 +830,7 @@ ifeq ($(host_cc),1) gcc-prerequisites = else gcc-prerequisites = $(tdir)/gcc-$(gcc-version).tar.xz \ + $(ibidir)/binutils \ $(ilidir)/isl \ $(ilidir)/mpc endif @@ -854,6 +855,8 @@ $(ibidir)/gcc: $(gcc-prerequisites) \ $(call makelink,gcc); \ $(call makelink,g++,mandatory); \ $(call makelink,gfortran,mandatory); \ + $(call makelink,strip,mandatory); \ + ln -sf $$(which gcc) $(ibdir)/cc; \ ccinfo=$$(gcc --version | awk 'NR==1'); \ echo "C compiler (""$$ccinfo"")" > $@; \ else \ @@ -898,6 +901,7 @@ $(ibidir)/gcc: $(gcc-prerequisites) \ patchelf --set-rpath $(ildir) $$f; \ fi; \ done; \ - fi \ + fi; \ + ln -sf $(ibdir)/gcc $(ibdir)/cc \ && echo "GNU Compiler Collection (GCC) $(gcc-version)" > $@; \ fi diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index f7b1f4f..cff2ff8 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -50,9 +50,18 @@ 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 = # atlas -top-level-python = astroquery matplotlib -top-level-programs = gnuastro metastore + +# 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 metastore # 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)) \ $(foreach p, $(top-level-python), $(ipydir)/$(p)) \ @@ -114,8 +123,11 @@ 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, cfitsio-$(cfitsio-version).tar.gz \ +tarballs = $(foreach t, astrometry.net-$(astrometrynet-version).tar.gz \ atlas-$(atlas-version).tar.bz2 \ + cairo-$(cairo-version).tar.xz \ + cdsclient-$(cdsclient-version).tar.gz \ + cfitsio-$(cfitsio-version).tar.gz \ cmake-$(cmake-version).tar.gz \ curl-$(curl-version).tar.gz \ freetype-$(freetype-version).tar.gz \ @@ -131,9 +143,16 @@ 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).tgz \ openmpi-$(openmpi-version).tar.gz \ openblas-$(openblas-version).tar.gz \ + pixman-$(pixman-version).tar.gz \ + scamp-$(scamp-version).tar.lz \ + sextractor-$(sextractor-version).tar.lz \ + swarp-$(swarp-version).tar.gz \ + swig-$(swig-version).tar.gz \ tiff-$(libtiff-version).tar.gz \ wcslib-$(wcslib-version).tar.bz2 \ , $(tdir)/$(t) ) @@ -157,9 +176,12 @@ $(tarballs): $(tdir)/%: | $(lockdir) : (l==2 ? "%d00\n" \ : "%d000\n") ), $$1)}') w=https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio$$v.tar.gz + elif [ $$n = astrometry ]; then w=http://astrometry.net/downloads elif [ $$n = atlas ]; then mergenames=0 w=https://sourceforge.net/projects/math-atlas/files/Stable/$(atlas-version)/atlas$(atlas-version).tar.bz2/download + elif [ $$n = cairo ]; then w=https://www.cairographics.org/releases + elif [ $$n = cdsclient ]; then w=http://cdsarc.u-strasbg.fr/ftp/pub/sw elif [ $$n = cmake ]; then mergenames=0 majv=$$(echo $(cmake-version) \ @@ -185,7 +207,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 @@ -193,6 +219,11 @@ $(tarballs): $(tdir)/%: | $(lockdir) mergenames=0 majorver=$$(echo $(openmpi-version) | sed -e 's/\./ /g' | awk '{printf("%d.%d", $$1, $$2)}') w=https://download.open-mpi.org/release/open-mpi/v$$majorver/$* + elif [ $$n = pixman ]; then w=https://www.cairographics.org/releases + elif [ $$n = scamp ]; then w=http://akhlaghi.org/src + 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 = tiff ]; then w=https://download.osgeo.org/libtiff elif [ $$n = wcslib ]; then w=ftp://ftp.atnf.csiro.au/pub/software/wcslib else @@ -261,6 +292,13 @@ $(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 + $(call gbuild, $<, cairo-$(cairo-version), static) \ + && echo "Cairo $(cairo-version)" > $@ + $(ilidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz $(call gbuild, $<, gsl-$(gsl-version), static) \ && echo "GNU Scientific Library $(gsl-version)" > $@ @@ -277,7 +315,7 @@ $(ilidir)/freetype: $(tdir)/freetype-$(freetype-version).tar.gz \ $(call gbuild, $<, freetype-$(freetype-version), static) \ && echo "FreeType $(freetype-version)" > $@ -$(ilidir)/hdf5: $(tdir)/hdf5-$(hdf5-version).tar.gz \ +$(ilidir)/hdf5: $(tdir)/hdf5-$(hdf5-version).tar.gz \ $(ilidir)/openmpi export CC=mpicc; \ export FC=mpif90; \ @@ -298,6 +336,21 @@ $(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)" > $@ + $(ilidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \ $(ilidir)/libjpeg $(call gbuild, $<, tiff-$(libtiff-version), static, \ @@ -306,7 +359,7 @@ $(ilidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \ $(ilidir)/openmpi: $(tdir)/openmpi-$(openmpi-version).tar.gz $(call gbuild, $<, openmpi-$(openmpi-version), static, , V=1) \ - && echo "OpenMPI $(openmpi-version)" > $@ + && echo "Open MPI $(openmpi-version)" > $@ $(ilidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \ $(tdir)/lapack-$(lapack-version).tar.gz @@ -463,6 +516,51 @@ $(ilidir)/wcslib: $(tdir)/wcslib-$(wcslib-version).tar.bz2 \ # Programs # -------- # +# Astrometry-net contains a lot of programs. We need to specify the +# 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)/netpbm \ + $(ipydir)/numpy \ + $(ibidir)/python \ + $(ibidir)/swig \ + $(ilidir)/wcslib + cd $(ddir) \ + && if ! tar xf $<; then echo; echo "Tar error"; exit 1; fi \ + && cd astrometry.net-$(astrometrynet-version) \ + && make \ + && make py \ + && make extra \ + && make install INSTALL_DIR=$(idir) PYTHON_SCRIPT="$(ibdir)/python" \ + && cd .. \ + && rm -rf astrometry.net-$(astrometrynet-version) \ + && 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. +# NOTE: we do not use a convencional `gbuild' installation because the +# programs are scripts and we need to touch them before installing. +# Otherwise this software will be re-built each time the configure step is +# invoked. +$(ibidir)/cdsclient: $(tdir)/cdsclient-$(cdsclient-version).tar.gz + cd $(ddir) \ + && tar xf $< \ + && cd cdsclient-$(cdsclient-version) \ + && touch * \ + && ./configure --prefix=$(idir) \ + && make \ + && make install \ + && cd .. \ + && rm -rf cdsclient-$(cdsclient-version) \ + && echo "cdsclient $(cdsclient-version)" > $@ + # CMake can be built with its custom `./bootstrap' script. $(ibidir)/cmake: $(tdir)/cmake-$(cmake-version).tar.gz \ $(ibidir)/curl @@ -613,16 +711,84 @@ 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) \ + && rm -rf $$unpackdir \ + && if ! tar xf $<; then echo; echo "Tar error"; exit 1; fi \ + && cd $$unpackdir \ + && 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)" > $@ + +# SCAMP documentation says ATLAS is a mandatory prerequisite for using +# SCAMP. We have ATLAS into the project but there are some problems with the +# libraries that are not yet solved. However, we tried to install it with +# 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)/cdsclient + $(call gbuild, $<, scamp-$(scamp-version), static, \ + --enable-threads --enable-openblas \ + --with-fftw-libdir=$(idir) \ + --with-fftw-incdir=$(idir)/include \ + --with-openblas-libdir=$(ildir) \ + --with-openblas-incdir=$(idir)/include) \ + && cp $(dtexdir)/scamp.tex $(ictdir)/ \ + && echo "SCAMP $(scamp-version) \citep{scamp}" > $@ + +# Sextractor crashes complaining about not linking with some ATLAS +# libraries. But we can override this issue since we have Openblas +# 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 + $(call gbuild, $<, sextractor-$(sextractor-version), static, \ + --enable-threads --enable-openblas \ + --with-openblas-libdir=$(ildir) \ + --with-openblas-incdir=$(idir)/include) \ + && ln -fs $(ibdir)/sex $(ibdir)/sextractor \ + && cp $(dtexdir)/sextractor.tex $(ictdir)/ \ + && echo "Sextractor $(sextractor-version) \citep{sextractor}" > $@ + +$(ibidir)/swarp: $(tdir)/swarp-$(swarp-version).tar.gz \ + $(ilidir)/fftw + $(call gbuild, $<, swarp-$(swarp-version), static, \ + --enable-threads) \ + && cp $(dtexdir)/swarp.tex $(ictdir)/ \ + && echo "SWarp $(swarp-version) \citep{swarp}" > $@ + +$(ibidir)/swig: $(tdir)/swig-$(swig-version).tar.gz + # Option --without-pcre was a suggestion once the configure step was + # tried and it failed. It was not recommended but it works! + # pcr is a dependency of swig + $(call gbuild, $<, swig-$(swig-version), static, --without-pcre) \ + && echo "Swig $(swig-version)" > $@ diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk index 5ec99f0..22c6284 100644 --- a/reproduce/software/make/python.mk +++ b/reproduce/software/make/python.mk @@ -214,13 +214,13 @@ $(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 - $(call gbuild, $<, libffi-$(libffi-version)) \ + $(call gbuild, $<, libffi-$(libffi-version)) \ echo "Libffi $(libffi-version)" > $@ -$(ibidir)/python3: $(tdir)/python-$(python-version).tar.gz \ - $(ilidir)/libffi - # On Mac systems, the build complains about `clang' specific - # features, so we can't use our own GCC build here. +$(ibidir)/python: $(tdir)/python-$(python-version).tar.gz \ + $(ilidir)/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 \ export CC=clang; \ export CXX=clang++; \ @@ -231,7 +231,8 @@ $(ibidir)/python3: $(tdir)/python-$(python-version).tar.gz \ --enable-shared) \ && v=$$(echo $(python-version) | awk 'BEGIN{FS="."} \ {printf "%d.%d\n", $$1, $$2}') \ - && ln -s $(ildir)/python$$v $(ildir)/python \ + && ln -sf $(ildir)/python$$v $(ildir)/python \ + && ln -sf $(ibdir)/python$$v $(ibdir)/python \ && rm -rf $(ipydir) \ && mkdir $(ipydir) \ && echo "Python $(python-version)" > $@ @@ -259,8 +260,8 @@ pybuild = cd $(ddir); rm -rf $(3); \ -e 's|@INCDIR[@]|'"$(idir)/include"'|' \ $(4) > site.cfg; \ fi; \ - python3 setup.py build \ - && python3 setup.py install \ + python setup.py build \ + && python setup.py install \ && cd .. \ && rm -rf $(3) \ && echo "$(5)" > $@ @@ -475,7 +476,7 @@ $(ipydir)/secretstorage: $(tdir)/secretstorage-$(secretstorage-version).tar.gz \ SecretStorage $(secretstorage-version)) $(ipydir)/setuptools: $(tdir)/setuptools-$(setuptools-version).zip \ - $(ibidir)/python3 \ + $(ibidir)/python \ $(ibidir)/unzip $(call pybuild, unzip, $<, setuptools-$(setuptools-version), ,\ Setuptools $(setuptools-version)) |