Home | History | Annotate | Line # | Download | only in dist-build
      1  1.1  riastrad #! /bin/sh
      2  1.1  riastrad 
      3  1.1  riastrad if [ -z "$NDK_PLATFORM" ]; then
      4  1.1  riastrad   export NDK_PLATFORM="android-16"
      5  1.1  riastrad fi
      6  1.1  riastrad export NDK_PLATFORM_COMPAT="${NDK_PLATFORM_COMPAT:-${NDK_PLATFORM}}"
      7  1.1  riastrad export NDK_API_VERSION=$(echo "$NDK_PLATFORM" | sed 's/^android-//')
      8  1.1  riastrad export NDK_API_VERSION_COMPAT=$(echo "$NDK_PLATFORM_COMPAT" | sed 's/^android-//')
      9  1.1  riastrad 
     10  1.1  riastrad if [ -z "$ANDROID_NDK_HOME" ]; then
     11  1.1  riastrad   echo "You should probably set ANDROID_NDK_HOME to the directory containing"
     12  1.1  riastrad   echo "the Android NDK"
     13  1.1  riastrad   exit
     14  1.1  riastrad fi
     15  1.1  riastrad 
     16  1.1  riastrad if [ ! -f ./configure ]; then
     17  1.1  riastrad   echo "Can't find ./configure. Wrong directory or haven't run autogen.sh?" >&2
     18  1.1  riastrad   exit 1
     19  1.1  riastrad fi
     20  1.1  riastrad 
     21  1.1  riastrad if [ "x$TARGET_ARCH" = 'x' ] || [ "x$ARCH" = 'x' ] || [ "x$HOST_COMPILER" = 'x' ]; then
     22  1.1  riastrad   echo "You shouldn't use android-build.sh directly, use android-[arch].sh instead" >&2
     23  1.1  riastrad   exit 1
     24  1.1  riastrad fi
     25  1.1  riastrad 
     26  1.1  riastrad export MAKE_TOOLCHAIN="${ANDROID_NDK_HOME}/build/tools/make_standalone_toolchain.py"
     27  1.1  riastrad 
     28  1.1  riastrad export PREFIX="$(pwd)/libsodium-android-${TARGET_ARCH}"
     29  1.1  riastrad export TOOLCHAIN_DIR="$(pwd)/android-toolchain-${TARGET_ARCH}"
     30  1.1  riastrad export PATH="${PATH}:${TOOLCHAIN_DIR}/bin"
     31  1.1  riastrad 
     32  1.1  riastrad export CC=${CC:-"${HOST_COMPILER}-clang"}
     33  1.1  riastrad 
     34  1.1  riastrad rm -rf "${TOOLCHAIN_DIR}" "${PREFIX}"
     35  1.1  riastrad 
     36  1.1  riastrad echo
     37  1.1  riastrad if [ "$NDK_PLATFORM" != "$NDK_PLATFORM_COMPAT" ]; then
     38  1.1  riastrad   echo "Building for platform [${NDK_PLATFORM}], retaining compatibility with platform [${NDK_PLATFORM_COMPAT}]"
     39  1.1  riastrad else
     40  1.1  riastrad   echo "Building for platform [${NDK_PLATFORM}]"
     41  1.1  riastrad fi
     42  1.1  riastrad echo
     43  1.1  riastrad 
     44  1.1  riastrad env - PATH="$PATH" \
     45  1.1  riastrad     "$MAKE_TOOLCHAIN" --force --api="$NDK_API_VERSION_COMPAT" \
     46  1.1  riastrad     --arch="$ARCH" --install-dir="$TOOLCHAIN_DIR" || exit 1
     47  1.1  riastrad 
     48  1.1  riastrad ./configure \
     49  1.1  riastrad     --disable-soname-versions \
     50  1.1  riastrad     --enable-minimal \
     51  1.1  riastrad     --host="${HOST_COMPILER}" \
     52  1.1  riastrad     --prefix="${PREFIX}" \
     53  1.1  riastrad     --with-sysroot="${TOOLCHAIN_DIR}/sysroot" || exit 1
     54  1.1  riastrad 
     55  1.1  riastrad if [ "$NDK_PLATFORM" != "$NDK_PLATFORM_COMPAT" ]; then
     56  1.1  riastrad   egrep '^#define ' config.log | sort -u > config-def-compat.log
     57  1.1  riastrad   echo
     58  1.1  riastrad   echo "Configuring again for platform [${NDK_PLATFORM}]"
     59  1.1  riastrad   echo
     60  1.1  riastrad   env - PATH="$PATH" \
     61  1.1  riastrad       "$MAKE_TOOLCHAIN" --force --api="$NDK_API_VERSION" \
     62  1.1  riastrad       --arch="$ARCH" --install-dir="$TOOLCHAIN_DIR" || exit 1
     63  1.1  riastrad 
     64  1.1  riastrad   ./configure \
     65  1.1  riastrad       --disable-soname-versions \
     66  1.1  riastrad       --enable-minimal \
     67  1.1  riastrad       --host="${HOST_COMPILER}" \
     68  1.1  riastrad       --prefix="${PREFIX}" \
     69  1.1  riastrad       --with-sysroot="${TOOLCHAIN_DIR}/sysroot" || exit 1
     70  1.1  riastrad 
     71  1.1  riastrad   egrep '^#define ' config.log | sort -u > config-def.log
     72  1.1  riastrad   if ! cmp config-def.log config-def-compat.log; then
     73  1.1  riastrad     echo "Platform [${NDK_PLATFORM}] is not backwards-compatible with [${NDK_PLATFORM_COMPAT}]" >&2
     74  1.1  riastrad     diff -u config-def.log config-def-compat.log >&2
     75  1.1  riastrad     exit 1
     76  1.1  riastrad   fi
     77  1.1  riastrad   rm -f config-def.log config-def-compat.log
     78  1.1  riastrad fi
     79  1.1  riastrad 
     80  1.1  riastrad make clean && \
     81  1.1  riastrad make -j3 install && \
     82  1.1  riastrad echo "libsodium has been installed into ${PREFIX}"
     83