aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2018-12-03 18:37:36 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2018-12-03 18:41:27 +0000
commit49654daa6b1ecf2126154466a9fccef4fc7ec2f5 (patch)
treeb3b46acb2ad8c92024aa884dd29e485f769db26d
parenta2db1f07f9d2bda6bed34fb359c44d6299cbbf5e (diff)
Checking Mac OS host for configuring OpenSSL
OpenSSL can't automatically detect the architecture of Mac OS systems, so as it suggests on its Wiki, it needs some help for doing that. With this commit, we are checking the build on Mac OS with the presence of `otool' (Mac OS's linker). If it's there, we'll add the OpenSSL configuration options suggested by OpenSSL's Wiki.
-rwxr-xr-xconfigure19
-rw-r--r--reproduce/src/make/dependencies-basic.mk12
-rw-r--r--reproduce/src/make/dependencies-build-rules.mk4
3 files changed, 32 insertions, 3 deletions
diff --git a/configure b/configure
index 2dfd3d3..31d5eb7 100755
--- a/configure
+++ b/configure
@@ -630,6 +630,22 @@ fi
+# If we are on a Mac OS system
+# ----------------------------
+#
+# For the time being, we'll use the existance of `otool' to see if we are
+# on a Mac OS system or not. Some tools (for example OpenSSL) need to know
+# this.
+if type otool > /dev/null 2>/dev/null; then
+ on_mac_os=yes
+else
+ on_mac_os=no
+fi
+
+
+
+
+
# Build Basic dependencies
# ------------------------
#
@@ -642,9 +658,10 @@ if which nproc > /dev/null 2>/dev/null; then numthreads=$(nproc --all);
else numthreads=2;
fi
make -f reproduce/src/make/dependencies-basic.mk \
- static_build=$static_build \
rpath_command=$rpath_command \
+ static_build=$static_build \
needs_ldl=$needs_ldl \
+ on_mac_os=$on_mac_os \
#-j$numthreads
diff --git a/reproduce/src/make/dependencies-basic.mk b/reproduce/src/make/dependencies-basic.mk
index ceaa0f3..ea59566 100644
--- a/reproduce/src/make/dependencies-basic.mk
+++ b/reproduce/src/make/dependencies-basic.mk
@@ -333,8 +333,20 @@ $(ilidir)/zlib: $(tdir)/zlib-$(zlib-version).tar.gz \
$(ilidir)/openssl: $(tdir)/openssl-$(openssl-version).tar.gz \
$(tdir)/cert.pem \
$(ilidir)/zlib | $(idir)/etc
+ # According to OpenSSL's Wiki (link bellow), it can't automatically
+ # detect Mac OS's structure. It will need some help. So we'll use
+ # the `on_mac_os' Make variable that we defined in the configure
+ # script and help it with some extra configuration options and an
+ # environment variable.
+ #
+ # https://wiki.openssl.org/index.php/Compilation_and_Installation
+ if [ x$(on_mac_os) = xyes ]; then \
+ export KERNEL_BITS=64; \
+ copt="shared no-ssl2 no-ssl3 enable-ec_nistp_64_gcc_128"; \
+ fi; \
$(call gbuild, $<, openssl-$(openssl-version), , \
zlib \
+ $$copt \
$(rpath_command) \
--openssldir=$(idir)/etc/ssl \
--with-zlib-lib=$(ildir) \
diff --git a/reproduce/src/make/dependencies-build-rules.mk b/reproduce/src/make/dependencies-build-rules.mk
index af2be95..4de9a4e 100644
--- a/reproduce/src/make/dependencies-build-rules.mk
+++ b/reproduce/src/make/dependencies-build-rules.mk
@@ -72,8 +72,8 @@ gbuild = if [ x$(static_build) = xyes ] && [ $(3)x = staticx ]; then \
mv tmp-$$confscript $$confscript; \
chmod +x $$confscript; \
shellop="SHELL=$(ibdir)/bash"; \
- elif [ -f /bin/bash ]; then shellop="SHELL=/bin/bash"; \
- else shellop="SHELL=/bin/sh"; \
+ elif [ -f /bin/bash ]; then shellop="SHELL=/bin/bash"; \
+ else shellop="SHELL=/bin/sh"; \
fi; \
\
if [ x"$(2)" = x"zlib-$(zlib-version)" ]; then \