69 lines
1.8 KiB
Bash
Executable File
69 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# The purpose of this file is to install libsodium when:
|
|
# 1. No packaged version is found.
|
|
# 2. The packaged version is older than the version specified in this repository.
|
|
# pkg-config is used to find the library and determine it's version.
|
|
# You may replace the libsodium library with your own installed version by setting PKG_CONFIG_PATH before compiling.
|
|
|
|
set -e
|
|
|
|
# Always use bash. `dash` doesn't work properly with . includes. I'm not sure why.
|
|
. ./build/env.sh
|
|
|
|
#export LIBSODIUM_INSTALL=1
|
|
if [ "$LIBSODIUM_INSTALL" != "1" ]; then
|
|
[ ! -z "$SODIUM_BUILD_VERBOSE" ] && echo "Skipping libsodium build."
|
|
exit 0
|
|
fi
|
|
|
|
|
|
mkdir -p "$LIBSODIUM_BUILD_DIR"
|
|
cd "$LIBSODIUM_BUILD_DIR"
|
|
|
|
|
|
if [ ! -f "$LIBSODIUM_INSTALL_PATH/include/sodium.h" ]; then
|
|
[ ! -z "$SODIUM_BUILD_DEBUG" ] && set -x
|
|
|
|
DIRNAME=libsodium-"$MIN_LIBSODIUM_VERSION"
|
|
TGZ_FILENAME="$DIRNAME".tar.gz
|
|
|
|
if [ ! -f "$TGZ_FILENAME" ]; then
|
|
wget https://download.libsodium.org/libsodium/releases/"$TGZ_FILENAME"
|
|
# wget https://download.libsodium.org/libsodium/releases/"$TGZ_FILENAME".minisign
|
|
fi
|
|
|
|
SHA=`openssl sha256 -hex < "$TGZ_FILENAME" | sed 's/^.* //'`
|
|
if [ "$SHA" != "$LIBSODIUM_SHA256" ]; then
|
|
echo "SHA256 sum doesn't match."
|
|
echo "$SHA" != "$LIBSODIUM_SHA256"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$DIRNAME" ]; then
|
|
tar xfz "$TGZ_FILENAME"
|
|
fi
|
|
|
|
|
|
cd "$DIRNAME"
|
|
if [ ! -f ".configure.done" ]; then
|
|
./configure --prefix="$LIBSODIUM_INSTALL_PATH" --disable-shared
|
|
touch .configure.done
|
|
fi
|
|
if [ ! -f ".make.done" ]; then
|
|
make
|
|
touch .make.done
|
|
fi
|
|
if [ ! -f ".make.install.done" ]; then
|
|
make install
|
|
touch .make.install.done
|
|
fi
|
|
|
|
[ ! -z "$SODIUM_BUILD_VERBOSE" ] && echo "Finished building libsodium."
|
|
else
|
|
# find "$LIBSODIUM_INSTALL_PATH"
|
|
|
|
[ ! -z "$SODIUM_BUILD_VERBOSE" ] && echo "Using already built libsodium."
|
|
fi
|
|
|
|
exit 0
|