74 lines
1.8 KiB
Bash
74 lines
1.8 KiB
Bash
|
#!/bin/bash
|
||
|
set -e
|
||
|
|
||
|
if [ -d "${OPENSSL_DIR}" ]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
NORMALPATH=$(pwd)
|
||
|
|
||
|
sudo apt-get install -y --no-install-recommends curl
|
||
|
|
||
|
case "${LIBRARY}" in
|
||
|
"libressl")
|
||
|
URL1="http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${VERSION}.tar.gz"
|
||
|
URL2="http://ftp3.usa.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${VERSION}.tar.gz"
|
||
|
;;
|
||
|
"openssl")
|
||
|
URL1="https://openssl.org/source/openssl-${VERSION}.tar.gz"
|
||
|
URL2="http://mirrors.ibiblio.org/openssl/source/openssl-${VERSION}.tar.gz"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
case "${TARGET}" in
|
||
|
"x86_64-unknown-linux-gnu")
|
||
|
OS_COMPILER=linux-x86_64
|
||
|
;;
|
||
|
"i686-unknown-linux-gnu")
|
||
|
OS_COMPILER=linux-elf
|
||
|
OS_FLAGS=-m32
|
||
|
;;
|
||
|
"arm-unknown-linux-gnueabihf")
|
||
|
OS_COMPILER=linux-armv4
|
||
|
export AR=arm-linux-gnueabihf-ar
|
||
|
export CC=arm-linux-gnueabihf-gcc
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
mkdir -p /tmp/build
|
||
|
cd /tmp/build
|
||
|
|
||
|
OUT=/tmp/openssl.tgz
|
||
|
MAX_REDIRECTS=5
|
||
|
curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} "${URL1}" \
|
||
|
|| curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} "${URL2}"
|
||
|
|
||
|
tar --strip-components=1 -xzf ${OUT}
|
||
|
|
||
|
case "${LIBRARY}" in
|
||
|
"openssl")
|
||
|
./Configure --prefix="${OPENSSL_DIR}" ${OS_COMPILER} -fPIC -g ${OS_FLAGS} no-shared -static
|
||
|
;;
|
||
|
"libressl")
|
||
|
./configure --prefix="${OPENSSL_DIR}" --disable-shared --with-pic
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
make "-j$(nproc)"
|
||
|
sudo make install_sw
|
||
|
|
||
|
case "${LIBRARY}" in
|
||
|
"openssl")
|
||
|
if [[ ! -f "${OPENSSL_DIR}/ssl/openssl.cnf" ]]; then sudo mkdir -p "${OPENSSL_DIR}/ssl" && sudo cp apps/openssl.cnf "${OPENSSL_DIR}/ssl/openssl.cnf" ; fi
|
||
|
;;
|
||
|
"libressl")
|
||
|
if [[ ! -f "${OPENSSL_DIR}/ssl/openssl.cnf" ]]; then sudo mkdir -p "${OPENSSL_DIR}/ssl" && sudo cp apps/openssl/openssl.cnf "${OPENSSL_DIR}/ssl/openssl.cnf" ; fi
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
sudo chmod -Rf 0755 /openssl
|
||
|
|
||
|
cd "${NORMALPATH}"
|
||
|
|
||
|
rm -r -f node_modules && npm i
|