sodium.cr/build/libsodium_install.sh

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