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

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