diff options
author | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2019-04-22 17:12:32 +0100 |
---|---|---|
committer | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2019-04-22 17:45:00 +0100 |
commit | b835c158f3cf3b6525e734c0f0468d000b19005a (patch) | |
tree | 396e31493cd66fb80a93739bc0355d44bd924374 /reproduce/software/make | |
parent | e670140b509d4940ab6435b02cc73d8cfeac821f (diff) |
High-level software now specified in TARGETS.mk
Until now, to specify which high-level software you want the project to
contain, it was necessary to go into the `high-level.mk' Makefile that is
complicated and can create bugs.
With this commit, a new `reproduce/software/config/installation/TARGETS.mk'
file has been created that is easily/cleanly in charge of documenting the
final high-level software that must be built for the project.
Also, until now, FFTW was set as a dependency of Numpy while we couldn't
actually get Numpy to use it! It was just there for future reference and to
justify its build rule. But now that many software won't be built and there
is no problem with having rules even though a project might not use them,
it has been removed.
Diffstat (limited to 'reproduce/software/make')
-rw-r--r-- | reproduce/software/make/basic.mk | 130 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 112 | ||||
-rw-r--r-- | reproduce/software/make/python.mk | 15 |
3 files changed, 122 insertions, 135 deletions
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"; \ |