Blame SOURCES/libsodium-1.0.18/dist-build/android-build.sh

ca16be
#! /bin/sh
ca16be
ca16be
if [ -z "$NDK_PLATFORM" ]; then
ca16be
  export NDK_PLATFORM="android-16"
ca16be
fi
ca16be
export NDK_PLATFORM_COMPAT="${NDK_PLATFORM_COMPAT:-${NDK_PLATFORM}}"
ca16be
export NDK_API_VERSION=$(echo "$NDK_PLATFORM" | sed 's/^android-//')
ca16be
export NDK_API_VERSION_COMPAT=$(echo "$NDK_PLATFORM_COMPAT" | sed 's/^android-//')
ca16be
ca16be
if [ -z "$ANDROID_NDK_HOME" ]; then
ca16be
  echo "You should probably set ANDROID_NDK_HOME to the directory containing"
ca16be
  echo "the Android NDK"
ca16be
  exit
ca16be
fi
ca16be
ca16be
if [ ! -f ./configure ]; then
ca16be
  echo "Can't find ./configure. Wrong directory or haven't run autogen.sh?" >&2
ca16be
  exit 1
ca16be
fi
ca16be
ca16be
if [ "x$TARGET_ARCH" = 'x' ] || [ "x$ARCH" = 'x' ] || [ "x$HOST_COMPILER" = 'x' ]; then
ca16be
  echo "You shouldn't use android-build.sh directly, use android-[arch].sh instead" >&2
ca16be
  exit 1
ca16be
fi
ca16be
ca16be
export MAKE_TOOLCHAIN="${ANDROID_NDK_HOME}/build/tools/make_standalone_toolchain.py"
ca16be
ca16be
export PREFIX="$(pwd)/libsodium-android-${TARGET_ARCH}"
ca16be
export TOOLCHAIN_DIR="$(pwd)/android-toolchain-${TARGET_ARCH}"
ca16be
export PATH="${PATH}:${TOOLCHAIN_DIR}/bin"
ca16be
ca16be
export CC=${CC:-"${HOST_COMPILER}-clang"}
ca16be
ca16be
rm -rf "${TOOLCHAIN_DIR}" "${PREFIX}"
ca16be
ca16be
echo
ca16be
echo "Warnings related to headers being present but not usable are due to functions"
ca16be
echo "that didn't exist in the specified minimum API version level."
ca16be
echo "They can be safely ignored."
ca16be
echo
ca16be
ca16be
echo
ca16be
if [ "$NDK_PLATFORM" != "$NDK_PLATFORM_COMPAT" ]; then
ca16be
  echo "Building for platform [${NDK_PLATFORM}], retaining compatibility with platform [${NDK_PLATFORM_COMPAT}]"
ca16be
else
ca16be
  echo "Building for platform [${NDK_PLATFORM}]"
ca16be
fi
ca16be
echo
ca16be
ca16be
env - PATH="$PATH" \
ca16be
    "$MAKE_TOOLCHAIN" --force --api="$NDK_API_VERSION_COMPAT" \
ca16be
    --arch="$ARCH" --install-dir="$TOOLCHAIN_DIR" || exit 1
ca16be
ca16be
if [ -z "$LIBSODIUM_FULL_BUILD" ]; then
ca16be
  export LIBSODIUM_ENABLE_MINIMAL_FLAG="--enable-minimal"
ca16be
else
ca16be
  export LIBSODIUM_ENABLE_MINIMAL_FLAG=""
ca16be
fi
ca16be
ca16be
./configure \
ca16be
    --disable-soname-versions \
ca16be
    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
ca16be
    --host="${HOST_COMPILER}" \
ca16be
    --prefix="${PREFIX}" \
ca16be
    --with-sysroot="${TOOLCHAIN_DIR}/sysroot" || exit 1
ca16be
ca16be
if [ "$NDK_PLATFORM" != "$NDK_PLATFORM_COMPAT" ]; then
ca16be
  egrep '^#define ' config.log | sort -u > config-def-compat.log
ca16be
  echo
ca16be
  echo "Configuring again for platform [${NDK_PLATFORM}]"
ca16be
  echo
ca16be
  env - PATH="$PATH" \
ca16be
      "$MAKE_TOOLCHAIN" --force --api="$NDK_API_VERSION" \
ca16be
      --arch="$ARCH" --install-dir="$TOOLCHAIN_DIR" || exit 1
ca16be
ca16be
  ./configure \
ca16be
      --disable-soname-versions \
ca16be
      ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
ca16be
      --host="${HOST_COMPILER}" \
ca16be
      --prefix="${PREFIX}" \
ca16be
      --with-sysroot="${TOOLCHAIN_DIR}/sysroot" || exit 1
ca16be
ca16be
  egrep '^#define ' config.log | sort -u > config-def.log
ca16be
  if ! cmp config-def.log config-def-compat.log; then
ca16be
    echo "Platform [${NDK_PLATFORM}] is not backwards-compatible with [${NDK_PLATFORM_COMPAT}]" >&2
ca16be
    diff -u config-def.log config-def-compat.log >&2
ca16be
    exit 1
ca16be
  fi
ca16be
  rm -f config-def.log config-def-compat.log
ca16be
fi
ca16be
ca16be
ca16be
NPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
ca16be
PROCESSORS=${NPROCESSORS:-3}
ca16be
ca16be
make clean && \
ca16be
make -j${PROCESSORS} install && \
ca16be
echo "libsodium has been installed into ${PREFIX}"