From 89e580dfd612d216ec7f297a17b77c85a3053f69 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Thu, 15 Nov 2018 13:59:47 +0000 Subject: Static linking flag added to LDFLAGS, using special Bash script Until now, when a package was to be built statically, we were adding the `--static' option to `CFLAGS'. This was the wrong place to put it! It should be in the linking step (thus `LDFLAGS'). Also, based on Bash's configure script, we are now using the more generic form of `-static' (single dash, not double dash). On the other hand, the `--disable-shared' option isn't available in many of the packages and it is highly redundant with the `-static' option, so it has been removed to avoid an extra warning in such packages. --- configure | 2 +- reproduce/config/pipeline/dependency-versions.mk | 2 +- reproduce/src/make/dependencies-basic.mk | 3 +- reproduce/src/make/dependencies-build-rules.mk | 40 +++++++++++------------- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/configure b/configure index 4810656..ab098a7 100755 --- a/configure +++ b/configure @@ -421,7 +421,7 @@ NOTE: the built software will NOT BE INSTALLED on your system (no root access is required). They are only for local usage by this reproduction pipeline. They will be installed in: -$bdir/dependencies/installed + $bdir/dependencies/installed EOF sleep $tsec diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk index 6d305cb..fdad202 100644 --- a/reproduce/config/pipeline/dependency-versions.mk +++ b/reproduce/config/pipeline/dependency-versions.mk @@ -7,7 +7,7 @@ coreutils-version = 8.30 gawk-version = 4.2.1 ghostscript-version = 9.25 git-version = 2.19.1 -gnuastro-version = 0.7.60-4c9eb +gnuastro-version = 0.7.62-13b0 grep-version = 3.1 libtool-version = 2.4.6 lzip-version = 1.20 diff --git a/reproduce/src/make/dependencies-basic.mk b/reproduce/src/make/dependencies-basic.mk index ed6e971..8fbfeaf 100644 --- a/reproduce/src/make/dependencies-basic.mk +++ b/reproduce/src/make/dependencies-basic.mk @@ -105,7 +105,8 @@ $(tarballs): $(tdir)/%: # will be built first. $(ibdir)/bash: $(tdir)/bash-$(bash-version).tar.gz \ $(ibdir)/make - $(call gbuild,$(subst $(tdir)/,,$<), bash-$(bash-version), static) + $(call gbuild,$(subst $(tdir)/,,$<), bash-$(bash-version), , \ + --enable-static-link) $(ibdir)/lzip: $(tdir)/lzip-$(lzip-version).tar.gz $(call gbuild,$(subst $(tdir)/,,$<), lzip-$(lzip-version), static) diff --git a/reproduce/src/make/dependencies-build-rules.mk b/reproduce/src/make/dependencies-build-rules.mk index b53bc52..a2e4a89 100644 --- a/reproduce/src/make/dependencies-build-rules.mk +++ b/reproduce/src/make/dependencies-build-rules.mk @@ -48,16 +48,14 @@ # 4: Extra configuration options. # 5: Extra options/arguments to pass to Make. # 6: Step to run between `make' and `make install': usually `make check'. -gbuild = if [ $(3)x = staticx ]; then \ - configopts="CFLAGS=--static --disable-shared"; \ - fi; \ - check="$(6)"; \ - if [ x"$$check" = x ]; then check="echo Skipping-check"; fi; \ - cd $(ddir) && rm -rf $(2) && tar xf $(tdir)/$(1) && cd $(2) && \ - ./configure $$configopts $(4) --prefix=$(idir) && \ - make $(5) && \ - $$check && \ - make install&& \ +gbuild = if [ $(3)x = staticx ]; then export LDFLAGS="$$LDFLAGS -static"; fi;\ + check="$(6)"; \ + if [ x"$$check" = x ]; then check="echo Skipping-check"; fi; \ + cd $(ddir) && rm -rf $(2) && tar xf $(tdir)/$(1) && cd $(2) && \ + ./configure $(4) --prefix=$(idir) && \ + make $(5) && \ + $$check && \ + make install&& \ cd ..&& rm -rf $(2) @@ -66,15 +64,15 @@ gbuild = if [ $(3)x = staticx ]; then \ # CMake # ----- -cbuild = if [ $(3)x = staticx ]; then \ - export CFLAGS="--static $$CFLAGS"; \ - opts="-DBUILD_SHARED_LIBS=OFF"; \ - fi; \ - cd $(ddir) && rm -rf $(2) && tar xf $(tdir)/$(1) && cd $(2) && \ - rm -rf my-build && mkdir my-build && cd my-build && \ - cmake .. $$opts $(4) && \ - cmake --build . && \ - cmake .. -DCMAKE_INSTALL_PREFIX=$(idir) && \ - cmake --build . --target install && \ - cd ../.. && \ +cbuild = if [ $(3)x = staticx ]; then \ + export LDFLAGS="$$LDFLAGS -static"; \ + opts="-DBUILD_SHARED_LIBS=OFF"; \ + fi; \ + cd $(ddir) && rm -rf $(2) && tar xf $(tdir)/$(1) && cd $(2) && \ + rm -rf my-build && mkdir my-build && cd my-build && \ + cmake .. $$opts $(4) && \ + cmake --build . && \ + cmake .. -DCMAKE_INSTALL_PREFIX=$(idir) && \ + cmake --build . --target install && \ + cd ../.. && \ rm -rf $(2) -- cgit v1.2.1