aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/make
diff options
context:
space:
mode:
authorRaul Infante-Sainz <infantesainz@gmail.com>2019-06-12 14:21:10 +0100
committerRaul Infante-Sainz <infantesainz@gmail.com>2019-06-12 14:21:10 +0100
commit7a0d4bf2df6c78015b9dd3ec42cfb23d41252ffb (patch)
tree2d859c92ca42375bfdcd8cca25799fc64d5a398b /reproduce/software/make
parent880379181a36e949a05724229879ea4576a51b29 (diff)
Imfit and libcurl: manually adding rpath on GNU/Linux systems
While trying to debug the installation of Imfit, we found out that libcurl doesn't have rpath and is thus linking with the host system's libraries. So rpath is now manually added to the build of libcurl. We also found out that Imfit executables don't have rpath, so it was added to them too.
Diffstat (limited to 'reproduce/software/make')
-rw-r--r--reproduce/software/make/basic.mk6
-rw-r--r--reproduce/software/make/high-level.mk17
2 files changed, 18 insertions, 5 deletions
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index b21e7b0..f8963bc 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -726,7 +726,8 @@ $(ibidir)/openssl: $(tdir)/openssl-$(openssl-version).tar.gz \
# this project is avoid dependency on the host as much as possible.
$(ibidir)/curl: $(tdir)/curl-$(curl-version).tar.gz \
$(ibidir)/coreutils \
- $(ibidir)/openssl #Coreutils: only so cURL is built after it.
+ $(ibidir)/openssl \
+ $(needpatchelf)
$(call gbuild, $<, curl-$(curl-version), , \
LIBS="-pthread" \
--with-zlib=$(ildir) \
@@ -744,6 +745,9 @@ $(ibidir)/curl: $(tdir)/curl-$(curl-version).tar.gz \
--disable-ldaps \
--disable-ldap \
--without-nss, V=1) \
+ && if [ "x$(needpatchelf)" != x ]; then \
+ $(ibdir)/patchelf --set-rpath $(ildir) $(ildir)/libcurl.so; \
+ fi
&& echo "cURL $(curl-version)" > $@
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 2ea3534..2924077 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -158,7 +158,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
: (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
+ w=https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-$(cfitsio-version).tar.gz
elif [ $$n = astrometry ]; then w=http://astrometry.net/downloads
elif [ $$n = atlas ]; then
mergenames=0
@@ -643,19 +643,28 @@ $(ibidir)/imfit: $(tdir)/imfit-$(imfit-version).tar.gz \
&& if ! tar xf $<; then echo; echo "Tar error"; exit 1; fi \
&& cd $$unpackdir \
&& sed -i 's|/usr/local|$(idir)|g' SConstruct \
- && scons --no-openmp --no-nlopt\
+ && sed -i 's|/usr/include|$(idir)/include|g' SConstruct \
+ && sed -i 's|.append(|.insert(0,|g' SConstruct \
+ && scons --no-openmp --no-nlopt \
--cc=$(ibdir)/gcc --cpp=$(ibdir)/g++ \
--header-path=$(idir)/include --lib-path=$(idir)/lib imfit \
&& cp imfit $(ibdir) \
&& scons --no-openmp --no-nlopt\
--cc=$(ibdir)/gcc --cpp=$(ibdir)/g++ \
- --header-path=$(idir)/include --lib-path=$(idir)/lib imfit-mcmc \
+ --header-path=$(idir)/include --lib-path=$(idir)/lib \
+ imfit-mcmc \
&& cp imfit-mcmc $(ibdir) \
&& scons --no-openmp --no-nlopt\
--cc=$(ibdir)/gcc --cpp=$(ibdir)/g++ \
- --header-path=$(idir)/include --lib-path=$(idir)/lib makeimage \
+ --header-path=$(idir)/include --lib-path=$(idir)/lib \
+ makeimage \
&& cp makeimage $(ibdir) \
&& cp $(dtexdir)/imfit.tex $(ictdir)/ \
+ && if [ "x$(on_mac_os)" != xyes ]; then \
+ for p in imfit imfit-mcmc makeimage; do \
+ patchelf --set-rpath $(ildir) $(ibdir)/$$p; \
+ done; \
+ fi \
&& echo "Imfit $(imfit-version) \citep{imfit2015}" > $@
# Netpbm is a prerequisite of Astrometry-net, it contains a lot of programs.