From 397de4c918afa7eacc4c6a22b23f8c64b9478b3d Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Mon, 27 May 2019 18:13:47 +0100 Subject: Software: CFITSIO 3.47, implemented many common standards Until now, CFITSIO had several peculiar features which needed special attention: 1) Its tarball didn't have a `.' in the version name and would sometimes have extra `0's. 2) When unpacked it was just `cfitsio'. 3) It hard coded the directory to search for cURL library. All of these forced us to do a lot of extra steps for CFITSIO. So I got in touch with them and fortunately they were very open to correcting these issues and with version 3.47 all such issues have been addressed in the tarball. Thanks to these changes, with this commit, CFITSIO's build rule is now very similar to many other programs. I also noticed that it has an optional `--with-bz2' feature to enable unpacking `.fits.bz2' files. So this feature is also added. --- reproduce/software/config/installation/versions.mk | 2 +- reproduce/software/make/high-level.mk | 35 ++++------------------ 2 files changed, 6 insertions(+), 31 deletions(-) (limited to 'reproduce') diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk index 7019ee4..2b303dd 100644 --- a/reproduce/software/config/installation/versions.mk +++ b/reproduce/software/config/installation/versions.mk @@ -72,7 +72,7 @@ astrometrynet-version = 0.77 atlas-version = 3.10.3 cairo-version = 1.16.0 cdsclient-version = 3.84 -cfitsio-version = 3.45 +cfitsio-version = 3.47 cmake-version = 3.14.2 fftw-version = 3.3.8 flock-version = 0.2.3 diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index fe6efd0..0e7e72b 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -148,21 +148,13 @@ $(tarballs): $(tdir)/%: | $(lockdir) # Set the top download link of the requested tarball. mergenames=1 - if [ $$n = cfitsio ]; then - mergenames=0 - v=$$(echo $(cfitsio-version) | sed -e's/\.//' \ - | awk '{l=length($$1); \ - printf (l==4 ? "%d\n" \ - : (l==3 ? "%d0\n" \ - : (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 + if [ $$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 = cfitsio ]; then w=https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c elif [ $$n = cmake ]; then mergenames=0 majv=$$(echo $(cmake-version) \ @@ -250,26 +242,9 @@ $(tarballs): $(tdir)/%: | $(lockdir) # and create/write into it when the library is successfully built. $(ibidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \ $(ibidir)/curl - - # CFITSIO hard-codes the absolute address of cURL's `curl-config' - # program (which gives the necessary header and linking - # information) into the configure script. So we'll have to modify - # it manually before doing the standard build. - topdir=$(pwd); cd $(ddir); tar xf $< - customtar=cfitsio-$(cfitsio-version)-custom.tar.gz - sed cfitsio/configure \ - -e's|/usr/bin/curl-config|$(ibdir)/curl-config|g' \ - > cfitsio/configure_tmp - mv cfitsio/configure_tmp cfitsio/configure - chmod +x cfitsio/configure - tar cf $$customtar cfitsio - cd $$topdir - - # Continue the standard build on the customized tarball. - $(call gbuild, $$customtar, cfitsio, , \ - --enable-sse2 --enable-reentrant, , \ - make shared) \ - && rm $$customtar \ + $(call gbuild, $<, cfitsio-$(cfitsio-version), , \ + --enable-sse2 --enable-reentrant \ + --with-bzip2=$(idir), , make shared) \ && echo "CFITSIO $(cfitsio-version)" > $@ $(ibidir)/cairo: $(tdir)/cairo-$(cairo-version).tar.xz \ -- cgit v1.2.1