aboutsummaryrefslogtreecommitdiff
path: root/reproduce
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-04-07 16:18:51 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-04-07 16:39:08 +0100
commita44c029775f512d8b92cabed7585b74d002435be (patch)
tree99aeeaef1b3226dc3d384cc068e5a5e3889570ca /reproduce
parent025b96434fe1dd26018dfa898f2e4bdf73401d09 (diff)
GNU M4 now built as a dependency of GNU Libtool
On some systems, M4 isn't available, so the linking to the host system fails, as a result, we can't build GNU Libtool. The main reason we weren't building M4 was a bug with the most recent GNU C library (http://lists.gnu.org/archive/html/bug-gnulib/2019-04/msg00004.html). But I found a patch used by Arch Linux which fixes the issue and allows M4 to be built. As a result, the pipeline is now building M4 also and the patched M4 tarball is now uploaded to my own webpage as backup. While doing the steps above, I also noticed that we weren't using a tab at the start of the link definitions of `dependencies-basic.mk'. Although its not necessary, to be consistent, its good for the lines to always start with a tab.
Diffstat (limited to 'reproduce')
-rw-r--r--reproduce/config/pipeline/dependency-versions.mk1
-rw-r--r--reproduce/src/make/dependencies-basic.mk129
-rw-r--r--reproduce/src/make/dependencies.mk10
3 files changed, 76 insertions, 64 deletions
diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk
index 8ae8d56..3b43aae 100644
--- a/reproduce/config/pipeline/dependency-versions.mk
+++ b/reproduce/config/pipeline/dependency-versions.mk
@@ -50,6 +50,7 @@ libpng-version = 1.6.36
libtiff-version = 4.0.10
libtool-version = 2.4.6
lzip-version = 1.20
+m4-version = 1.4.18
make-version = 4.2.90
metastore-version = 1.1.2-23-fa9170b
mpfr-version = 4.0.2
diff --git a/reproduce/src/make/dependencies-basic.mk b/reproduce/src/make/dependencies-basic.mk
index 0f86d95..c15ef01 100644
--- a/reproduce/src/make/dependencies-basic.mk
+++ b/reproduce/src/make/dependencies-basic.mk
@@ -111,7 +111,9 @@ tarballs = $(foreach t, bash-$(bash-version).tar.gz \
grep-$(grep-version).tar.xz \
gzip-$(gzip-version).tar.gz \
isl-$(isl-version).tar.bz2 \
+ libtool-$(libtool-version).tar.xz \
lzip-$(lzip-version).tar.gz \
+ m4-$(m4-version).tar.gz \
make-$(make-version).tar.lz \
mpfr-$(mpfr-version).tar.xz \
mpc-$(mpc-version).tar.gz \
@@ -136,52 +138,56 @@ $(tarballs): $(tdir)/%: | $(lockdir)
| awk '{print $$1}' ); \
\
mergenames=1; \
- if [ $$n = bash ]; then w=http://ftp.gnu.org/gnu/bash; \
- elif [ $$n = binutils ]; then w=http://ftp.gnu.org/gnu/binutils; \
- elif [ $$n = bzip ]; then w=http://akhlaghi.org/src; \
- elif [ $$n = cert ]; then w=http://akhlaghi.org/src; \
- elif [ $$n = coreutils ]; then w=http://ftp.gnu.org/gnu/coreutils;\
- elif [ $$n = diffutils ]; then w=http://ftp.gnu.org/gnu/diffutils;\
- elif [ $$n = findutils ]; then w=http://akhlaghi.org/src; \
- elif [ $$n = gawk ]; then w=http://ftp.gnu.org/gnu/gawk; \
- elif [ $$n = gcc ]; then w=http://ftp.gnu.org/gnu/gcc/gcc-$(gcc-version); \
- elif [ $$n = gmp ]; then w=https://gmplib.org/download/gmp; \
- elif [ $$n = grep ]; then w=http://ftp.gnu.org/gnu/grep; \
- elif [ $$n = gzip ]; then w=http://ftp.gnu.org/gnu/gzip; \
- elif [ $$n = isl ]; then w=ftp://gcc.gnu.org/pub/gcc/infrastructure; \
- elif [ $$n = lzip ]; then w=http://download.savannah.gnu.org/releases/lzip; \
- elif [ $$n = make ]; then w=http://akhlaghi.org/src; \
- elif [ $$n = mpfr ]; then w=http://www.mpfr.org/mpfr-current;\
- elif [ $$n = mpc ]; then w=http://ftp.gnu.org/gnu/mpc; \
- elif [ $$n = ncurses ]; then w=http://ftp.gnu.org/gnu/ncurses; \
- elif [ $$n = openssl ]; then w=http://www.openssl.org/source; \
- elif [ $$n = patchelf ]; then w=http://nixos.org/releases/patchelf/patchelf-$(patchelf-version); \
- elif [ $$n = pkg ]; then w=http://pkg-config.freedesktop.org/releases; \
- elif [ $$n = readline ]; then w=http://ftp.gnu.org/gnu/readline; \
- elif [ $$n = sed ]; then w=http://ftp.gnu.org/gnu/sed; \
- elif [ $$n = tar ]; then w=http://ftp.gnu.org/gnu/tar; \
- elif [ $$n = wget ]; then w=http://ftp.gnu.org/gnu/wget; \
- elif [ $$n = which ]; then w=http://ftp.gnu.org/gnu/which; \
- elif [ $$n = xz ]; then w=http://tukaani.org/xz; \
- elif [ $$n = zlib ]; then w=http://www.zlib.net; \
- else \
- echo; echo; echo; \
- echo "'$$n' not a basic dependency name (for downloading)." \
- echo; echo; echo; \
- exit 1; \
- fi; \
+ if [ $$n = bash ]; then w=http://ftp.gnu.org/gnu/bash; \
+ elif [ $$n = binutils ]; then w=http://ftp.gnu.org/gnu/binutils; \
+ elif [ $$n = bzip ]; then w=http://akhlaghi.org/src; \
+ elif [ $$n = cert ]; then w=http://akhlaghi.org/src; \
+ elif [ $$n = coreutils ]; then w=http://ftp.gnu.org/gnu/coreutils;\
+ elif [ $$n = diffutils ]; then w=http://ftp.gnu.org/gnu/diffutils;\
+ elif [ $$n = findutils ]; then w=http://akhlaghi.org/src; \
+ elif [ $$n = gawk ]; then w=http://ftp.gnu.org/gnu/gawk; \
+ elif [ $$n = gcc ]; then w=http://ftp.gnu.org/gnu/gcc/gcc-$(gcc-version); \
+ elif [ $$n = gmp ]; then w=https://gmplib.org/download/gmp; \
+ elif [ $$n = grep ]; then w=http://ftp.gnu.org/gnu/grep; \
+ elif [ $$n = gzip ]; then w=http://ftp.gnu.org/gnu/gzip; \
+ elif [ $$n = isl ]; then w=ftp://gcc.gnu.org/pub/gcc/infrastructure; \
+ elif [ $$n = libtool ]; then w=http://ftp.gnu.org/gnu/libtool; \
+ elif [ $$n = lzip ]; then w=http://download.savannah.gnu.org/releases/lzip; \
+ elif [ $$n = m ]; then \
+ mergenames=0; \
+ w=http://akhlaghi.org/src/m4-1.4.18-patched.tar.gz; \
+ elif [ $$n = make ]; then w=http://akhlaghi.org/src; \
+ elif [ $$n = mpfr ]; then w=http://www.mpfr.org/mpfr-current;\
+ elif [ $$n = mpc ]; then w=http://ftp.gnu.org/gnu/mpc; \
+ elif [ $$n = ncurses ]; then w=http://ftp.gnu.org/gnu/ncurses; \
+ elif [ $$n = openssl ]; then w=http://www.openssl.org/source; \
+ elif [ $$n = patchelf ]; then w=http://nixos.org/releases/patchelf/patchelf-$(patchelf-version); \
+ elif [ $$n = pkg ]; then w=http://pkg-config.freedesktop.org/releases; \
+ elif [ $$n = readline ]; then w=http://ftp.gnu.org/gnu/readline; \
+ elif [ $$n = sed ]; then w=http://ftp.gnu.org/gnu/sed; \
+ elif [ $$n = tar ]; then w=http://ftp.gnu.org/gnu/tar; \
+ elif [ $$n = wget ]; then w=http://ftp.gnu.org/gnu/wget; \
+ elif [ $$n = which ]; then w=http://ftp.gnu.org/gnu/which; \
+ elif [ $$n = xz ]; then w=http://tukaani.org/xz; \
+ elif [ $$n = zlib ]; then w=http://www.zlib.net; \
+ else \
+ echo; echo; echo; \
+ echo "'$$n' not a basic dependency name (for downloading)." \
+ echo; echo; echo; \
+ exit 1; \
+ fi; \
\
if [ $$mergenames = 1 ]; then tarballurl=$$w/"$*"; \
- else tarballurl=$$w; \
- fi; \
- \
+ else tarballurl=$$w; \
+ fi; \
+ \
echo "Downloading $$tarballurl"; \
if [ -f $(ibdir)/wget ]; then \
downloader="wget --no-use-server-timestamps -O"; \
else \
downloader="$(DOWNLOADER)"; \
fi; \
- \
+ \
touch $(lockdir)/download; \
$(downloadwrapper) "$$downloader" $(lockdir)/download \
$$tarballurl $@; \
@@ -252,9 +258,6 @@ $(ibidir)/low-level-links: | $(ibdir) $(ildir)
# GNU Gettext (translate messages)
$(call makelink,msgfmt)
- # GNU M4 (for managing building macros)
- $(call makelink,m4,mandatory)
-
# Needed by TeXLive specifically.
$(call makelink,perl)
@@ -645,9 +648,23 @@ $(ibidir)/wget: $(tdir)/wget-$(wget-version).tar.lz \
-# Basic command-line programs necessary in build process of the
-# higher-level dependencies: Note that during the building of those
-# programs, there is no access to the system's PATH.
+# Basic command-line tools
+# ------------------------
+#
+# These are basic programs which are commonly necessary in the build
+# process of the higher-level programs and libraries. Note that during the
+# 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
+ # Coreutils will use the hashing features of OpenSSL's `libcrypto'.
+ # See Tar's comments for the `-j' option.
+ $(call gbuild, $<, coreutils-$(coreutils-version), static, \
+ LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
+ --enable-rpath --disable-silent-rules --with-openssl, \
+ -j$(numthreads)) \
+ && echo "GNU Coreutils $(coreutils-version)" > $@
+
$(ibidir)/diffutils: $(tdir)/diffutils-$(diffutils-version).tar.xz \
$(ibidir)/bash
$(call gbuild, $<, diffutils-$(diffutils-version), static, , V=1) \
@@ -676,20 +693,23 @@ $(ibidir)/gawk: $(tdir)/gawk-$(gawk-version).tar.lz \
fi; \
fi
+# On Mac OS, libtool does different things, so to avoid confusion, we'll
+# prefix GNU's libtool executables with `glibtool'.
+$(ibidir)/glibtool: $(tdir)/libtool-$(libtool-version).tar.xz \
+ $(ibidir)/m4
+ $(call gbuild, $<, libtool-$(libtool-version), static, \
+ --program-prefix=g) \
+ && echo "GNU Libtool $(libtool-version)" > $@
+
$(ibidir)/grep: $(tdir)/grep-$(grep-version).tar.xz \
- $(ibidir)/bash
+ $(ibidir)/bash
$(call gbuild, $<, grep-$(grep-version), static) \
&& echo "GNU Grep $(grep-version)" > $@
-$(ibidir)/coreutils: $(tdir)/coreutils-$(coreutils-version).tar.xz \
- $(ilidir)/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, \
- LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
- --enable-rpath --disable-silent-rules --with-openssl, \
- -j$(numthreads)) \
- && echo "GNU Coreutils $(coreutils-version)" > $@
+$(ibidir)/m4: $(tdir)/m4-$(m4-version).tar.gz \
+ $(ibidir)/bash
+ $(call gbuild, $<, m4-$(m4-version), static) \
+ && echo "GNU M4 $(m4-version)" > $@
$(ibidir)/pkg-config: $(tdir)/pkg-config-$(pkgconfig-version).tar.gz \
$(ibidir)/bash
@@ -787,6 +807,7 @@ $(ibidir)/gcc: $(gcc-prerequisites) \
$(ibidir)/grep \
$(ibidir)/bash \
$(ibidir)/which \
+ $(ibidir)/glibtool \
$(ibidir)/findutils \
$(ibidir)/diffutils \
$(ibidir)/coreutils
diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk
index 9b46798..d5e8411 100644
--- a/reproduce/src/make/dependencies.mk
+++ b/reproduce/src/make/dependencies.mk
@@ -126,7 +126,6 @@ tarballs = $(foreach t, cfitsio-$(cfitsio-version).tar.gz \
lapack-$(lapack-version).tar.gz \
libbsd-$(libbsd-version).tar.xz \
libpng-$(libpng-version).tar.xz \
- libtool-$(libtool-version).tar.xz \
libgit2-$(libgit2-version).tar.gz \
metastore-$(metastore-version).tar.gz \
openmpi-$(openmpi-version).tar.gz \
@@ -176,7 +175,6 @@ $(tarballs): $(tdir)/%: | $(lockdir)
elif [ $$n = lapack ]; then w=http://www.netlib.org/lapack
elif [ $$n = libbsd ]; then w=http://libbsd.freedesktop.org/releases
elif [ $$n = libpng ]; then w=https://download.sourceforge.net/libpng
- elif [ $$n = libtool ]; then w=http://ftp.gnu.org/gnu/libtool
elif [ $$n = libgit ]; then
mergenames=0
w=https://github.com/libgit2/libgit2/archive/v$(libgit2-version).tar.gz
@@ -515,13 +513,6 @@ $(ibidir)/curl: $(tdir)/curl-$(curl-version).tar.gz
--without-nss, V=1) \
&& echo "cURL $(curl-version)" > $@
-# On Mac OS, libtool does different things, so to avoid confusion, we'll
-# prefix GNU's libtool executables with `glibtool'.
-$(ibidir)/glibtool: $(tdir)/libtool-$(libtool-version).tar.xz
- $(call gbuild, $<, libtool-$(libtool-version), static, \
- --program-prefix=g) \
- && echo "GNU Libtool $(libtool-version)" > $@
-
$(ibidir)/ghostscript: $(tdir)/ghostscript-$(ghostscript-version).tar.gz
$(call gbuild, $<, ghostscript-$(ghostscript-version)) \
&& echo "GPL Ghostscript $(ghostscript-version)" > $@
@@ -609,7 +600,6 @@ $(ibidir)/gnuastro: $(tdir)/gnuastro-$(gnuastro-version).tar.lz \
$(ilidir)/libjpeg \
$(ilidir)/libtiff \
$(ilidir)/libgit2 \
- $(ibidir)/glibtool \
$(ibidir)/ghostscript
ifeq ($(static_build),yes)
staticopts="--enable-static=yes --enable-shared=no";