aboutsummaryrefslogtreecommitdiff
path: root/reproduce
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-04-10 11:58:12 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-04-10 12:31:40 +0100
commit9282e53e0e195d21e6fcccabd32377983b93c3e9 (patch)
tree611cb5c8f79146c880f360e66052d673a072bb37 /reproduce
parent7b369c861aff6eefb5b0c0530eeb9ab2e3053891 (diff)
parent2315b5137c03884025ba437fc72cf3cf7471cd43 (diff)
Imported PatchELF correction, gmp and mpfr also dependencies of AWK
There weren't any conflicts in this merge. However, while, trying to break a long line into multiple (for better readability), I noticed that the AWK version was mistakenly written as `awk-version' in a few cases, so this was corrected to `gawk-version'. While inspecting the libraries that AWK links to, I noticed that it also links to GNU GMP and GNU MPFR. But since they are built after AWK usually, it was using my host system! So with this commit, AWK has these two libraries as prerequisites. As a result, these two libraries were brought up to the basic program section, and not just GCC prerequisites.
Diffstat (limited to 'reproduce')
-rw-r--r--reproduce/src/make/dependencies-basic.mk116
1 files changed, 53 insertions, 63 deletions
diff --git a/reproduce/src/make/dependencies-basic.mk b/reproduce/src/make/dependencies-basic.mk
index ac662a4..bedbc38 100644
--- a/reproduce/src/make/dependencies-basic.mk
+++ b/reproduce/src/make/dependencies-basic.mk
@@ -531,8 +531,9 @@ $(ibidir)/bash: $(tdir)/bash-$(bash-version).tar.gz \
# default. So, we have to manually include it, currently we are
# only doing this on GNU/Linux systems (using the `patchelf'
# program).
- if [ "x$(needpatchelf)" != x ]; then \
- if [ -f $@ ]; then $(ibdir)/patchelf --set-rpath $(ildir) $@; fi \
+ if [ "x$(needpatchelf)" != x ]; then \
+ if [ -f $(ibdir)/bash ]; then \
+ $(ibdir)/patchelf --set-rpath $(ildir) $(ibdir)/bash; fi \
fi
# To be generic, some systems use the `sh' command to call the
@@ -595,12 +596,12 @@ $(ilidir)/openssl: $(tdir)/openssl-$(openssl-version).tar.gz \
copt="shared no-ssl2 no-ssl3 enable-ec_nistp_64_gcc_128"; \
fi; \
$(call gbuild, $<, openssl-$(openssl-version), , \
- zlib \
+ zlib \
$$copt \
- $(rpath_command) \
- --openssldir=$(idir)/etc/ssl \
+ $(rpath_command) \
+ --openssldir=$(idir)/etc/ssl \
--with-zlib-lib=$(ildir) \
- --with-zlib-include=$(idir)/include, , , \
+ --with-zlib-include=$(idir)/include, , , \
./config ) && \
cp $(tdir)/cert.pem $(idir)/etc/ssl/cert.pem; \
if [ $$? = 0 ]; then \
@@ -648,8 +649,8 @@ $(ibidir)/wget: $(tdir)/wget-$(wget-version).tar.lz \
-# Basic command-line tools
-# ------------------------
+# Basic command-line tools and their dependencies
+# -----------------------------------------------
#
# These are basic programs which are commonly necessary in the build
# process of the higher-level programs and libraries. Note that during the
@@ -676,22 +677,31 @@ $(ibidir)/findutils: $(tdir)/findutils-$(findutils-version).tar.lz \
&& echo "GNU Findutils $(findutils-version)" > $@
$(ibidir)/gawk: $(tdir)/gawk-$(gawk-version).tar.lz \
- $(ibidir)/bash
- # Build the main program.
- $(call gbuild, $<, gawk-$(gawk-version), static, \
- --with-readline=$(idir)) \
+ $(ibidir)/bash \
+ $(ilidir)/mpfr \
+ $(ilidir)/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
+ # example `gawk-4.2.1' and `gawk') and a symbolic link `awk' to one
+ # of those executables.
+ $(call gbuild, $<, gawk-$(gawk-version), static, \
+ --with-readline=$(idir)) \
+ && if [ "x$(needpatchelf)" != x ]; then \
+ if [ -f $(ibdir)/gawk ]; then \
+ $(ibdir)/patchelf --set-rpath $(ildir) $(ibdir)/gawk; \
+ fi; \
+ if [ -f $(ibdir)/gawk-$(gawk-version) ]; then \
+ $(ibdir)/patchelf --set-rpath $(ildir) \
+ $(ibdir)/gawk-$(gawk-version); \
+ fi; \
+ fi \
&& echo "GNU AWK $(gawk-version)" > $@
- # Since AWK doesn't include RPATH by default, we'll have to
- # manually include it using the `patchelf' program. Just note that
- # AWK produces two executables (for example `gawk-4.2.1' and
- # `gawk') and a symbolic link `awk' to one of those executables.
- if [ "x$(needpatchelf)" != x ]; then \
- if [ -f $@ ]; then $(ibdir)/patchelf --set-rpath $(ildir) $@; fi; \
- if [ -f $@-$(awk-version) ]; then \
- $(ibdir)/patchelf --set-rpath $(ildir) $@-$(awk-version); \
- fi; \
- fi
+$(ilidir)/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)" > $@
# On Mac OS, libtool does different things, so to avoid confusion, we'll
# prefix GNU's libtool executables with `glibtool'.
@@ -711,6 +721,11 @@ $(ibidir)/m4: $(tdir)/m4-$(m4-version).tar.gz \
$(call gbuild, $<, m4-$(m4-version), static) \
&& echo "GNU M4 $(m4-version)" > $@
+$(ilidir)/mpfr: $(tdir)/mpfr-$(mpfr-version).tar.xz \
+ $(ilidir)/gmp
+ $(call gbuild, $<, mpfr-$(mpfr-version), static, , , make check) \
+ && echo "GNU Multiple Precision Floating-Point Reliably $(mpfr-version)" > $@
+
$(ibidir)/pkg-config: $(tdir)/pkg-config-$(pkgconfig-version).tar.gz \
$(ibidir)/bash
# Some Mac OS systems may have a version of the GNU C Compiler
@@ -744,28 +759,9 @@ $(ibidir)/which: $(tdir)/which-$(which-version).tar.gz \
-# GCC prerequisites
-# -----------------
-$(ilidir)/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)" > $@
-
-$(ilidir)/mpfr: $(tdir)/mpfr-$(mpfr-version).tar.xz \
- $(ilidir)/gmp
- $(call gbuild, $<, mpfr-$(mpfr-version), static, , , make check) \
- && echo "GNU Multiple Precision Floating-Point Reliably $(mpfr-version)" > $@
-
-$(ilidir)/mpc: $(tdir)/mpc-$(mpc-version).tar.gz \
- $(ilidir)/mpfr
- $(call gbuild, $<, mpc-$(mpc-version), static, , , make check) \
- && echo "GNU Multiple Precision Complex library" > $@
-
-$(ilidir)/isl: $(tdir)/isl-$(isl-version).tar.bz2 \
- $(ilidir)/gmp
- $(call gbuild, $<, isl-$(isl-version), static) \
- && echo "GNU Integer Set Library $(isl-version)" > $@
-
+# 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).
@@ -773,32 +769,26 @@ $(ibidir)/binutils: $(tdir)/binutils-$(binutils-version).tar.lz
$(call gbuild, $<, binutils-$(binutils-version), static) \
&& echo "GNU Binutils $(binutils-version)" > $@
+$(ilidir)/isl: $(tdir)/isl-$(isl-version).tar.bz2 \
+ $(ilidir)/gmp
+ $(call gbuild, $<, isl-$(isl-version), static) \
+ && echo "GNU Integer Set Library $(isl-version)" > $@
+$(ilidir)/mpc: $(tdir)/mpc-$(mpc-version).tar.gz \
+ $(ilidir)/mpfr
+ $(call gbuild, $<, mpc-$(mpc-version), static, , , make check) \
+ && echo "GNU Multiple Precision Complex library" > $@
-
-
-
-
-
-
-
-# (CURRENTLY IGNORED) Build GCC
-# -----------------------------
-#
-# The building is currently ignored because GNU Binutils currently doesn't
-# install critical components of building a compiler on Mac systems. So we
-# can install and use the GNU C compiler, but we're still going to have the
-# crazy issues with linking on a Mac OS. Since almost no natural science
-# paper's processing depends so strongly on the compiler used, for now,
-# we'll just use the host operating system's C library, compiler, and
-# linker.
+# We are having issues with `libiberty' (part of GCC) on Mac. So for now,
+# GCC won't be built there. Since almost no natural science paper's
+# processing depends so strongly on the compiler used, for now, this isn't
+# a bad assumption, but we are indeed searching for a solution.
#
# Based on the GCC manual, the GCC build can benefit from a GNU
# environment. So, we'll build GCC after building all the basic tools that
# are often used in a configure and build scripts of GCC components.
#
-# Including Objective C and Objective C++ is necessary for installing
-# `matplotlib'.
+# Objective C and Objective C++ is necessary for installing `matplotlib'.
#
# We are currently having problems installing GCC on macOS, so for the time
# being, if the pipeline is being run on a macOS, we'll just set a link.