2019-05-30 10:04:55 -04:00
|
|
|
#! /bin/sh
|
|
|
|
|
2019-07-20 11:27:01 -04:00
|
|
|
if [ -z "$WASI_LIBC" ]; then
|
|
|
|
for path in /opt/wasi-libc /opt/wasi-sysroot; do
|
|
|
|
if [ -d "$path" ]; then
|
|
|
|
export WASI_LIBC="$path"
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
2019-07-20 11:29:00 -04:00
|
|
|
fi
|
|
|
|
if [ -z "$WASI_LIBC" ]; then
|
|
|
|
echo "Set WASI_LIBC to the path to the WASI libc sysroot" >&2
|
|
|
|
exit 1
|
2019-05-30 10:04:55 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
export PATH="/usr/local/opt/llvm/bin:$PATH"
|
|
|
|
|
|
|
|
export PREFIX="$(pwd)/libsodium-wasm32-wasi"
|
|
|
|
|
|
|
|
mkdir -p $PREFIX || exit 1
|
|
|
|
|
|
|
|
export CC="clang"
|
2019-07-20 11:27:01 -04:00
|
|
|
export CFLAGS="-DED25519_NONDETERMINISTIC=1 --target=wasm32-wasi --sysroot=${WASI_LIBC} -O2"
|
2019-05-30 10:04:55 -04:00
|
|
|
export LDFLAGS="-s -Wl,--no-threads"
|
|
|
|
export NM="llvm-nm"
|
|
|
|
export AR="llvm-ar"
|
|
|
|
export RANLIB="llvm-ranlib"
|
|
|
|
export STRIP="llvm-strip"
|
|
|
|
|
|
|
|
make distclean > /dev/null
|
|
|
|
|
|
|
|
grep -q -F -- 'wasi' build-aux/config.sub || \
|
|
|
|
sed -i -e 's/-nacl\*)/-nacl*|-wasi)/' build-aux/config.sub
|
|
|
|
|
|
|
|
if [ "x$1" = "x--bench" ]; then
|
|
|
|
export BENCHMARKS=1
|
|
|
|
export CPPFLAGS="-DBENCHMARKS -DITERATIONS=100"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "$LIBSODIUM_MINIMAL_BUILD" ]; then
|
|
|
|
export LIBSODIUM_ENABLE_MINIMAL_FLAG="--enable-minimal"
|
|
|
|
else
|
|
|
|
export LIBSODIUM_ENABLE_MINIMAL_FLAG=""
|
|
|
|
fi
|
|
|
|
|
|
|
|
./configure ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
|
2019-07-20 11:27:01 -04:00
|
|
|
--prefix="$PREFIX" --with-sysroot="$WASI_LIBC" \
|
2019-05-30 10:04:55 -04:00
|
|
|
--host=wasm32-wasi \
|
|
|
|
--disable-ssp --disable-shared || exit 1
|
|
|
|
|
|
|
|
NPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
|
|
|
|
PROCESSORS=${NPROCESSORS:-3}
|
|
|
|
|
|
|
|
if [ -z "$BENCHMARKS" ]; then
|
|
|
|
make -j${PROCESSORS} check && make install && make distclean > /dev/null
|
|
|
|
else
|
|
|
|
make -j${PROCESSORS} && make check
|
|
|
|
fi
|