toxcore/dist-build/android-build.sh

60 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
if [ -z "$ANDROID_NDK_HOME" ]; then
echo "You should probably set ANDROID_NDK_HOME to the directory containing"
echo "the Android NDK"
exit
fi
if [ -z "$SODIUM_HOME" ]; then
echo "You should probably set SODIUM_HOME to the directory containing root sodium sources"
exit
fi
if [[ -z $TARGET_ARCH ]] || [[ -z $HOST_COMPILER ]]; then
echo "You shouldn't use android-build.sh directly, use android-[arch].sh instead"
exit 1
fi
if [ ! -f ./configure ]; then
echo "Can't find ./configure. Wrong directory or haven't run autogen.sh?"
exit 1
fi
if [ -z "$TOOLCHAIN_DIR" ]; then
export TOOLCHAIN_DIR="$(pwd)/android-toolchain-${TARGET_ARCH}"
export MAKE_TOOLCHAIN="${ANDROID_NDK_HOME}/build/tools/make-standalone-toolchain.sh"
if [ -z "$MAKE_TOOLCHAIN" ]; then
echo "Cannot find a make-standalone-toolchain.sh in ndk dir, interrupt..."
exit 1
fi
$MAKE_TOOLCHAIN --platform="${NDK_PLATFORM:-android-14}" \
--arch="${TARGET_ARCH}" \
--toolchain="${TOOLCHAIN_NAME:-arm-linux-androideabi-4.8}" \
--install-dir="${TOOLCHAIN_DIR}"
fi
export PREFIX="$(pwd)/toxcore-android-${TARGET_ARCH}"
export SYSROOT="${TOOLCHAIN_DIR}/sysroot"
export PATH="${PATH}:${TOOLCHAIN_DIR}/bin"
# Clean up before build
rm -rf "${PREFIX}"
export CFLAGS="${CFLAGS} --sysroot=${SYSROOT} -I${SYSROOT}/usr/include"
export CPPFLAGS="${CFLAGS}"
export LDFLAGS="${LDFLAGS} -L${SYSROOT}/usr/lib"
./configure --host="${HOST_COMPILER}" \
--with-sysroot="${SYSROOT}" \
--with-libsodium-headers="${SODIUM_HOME}/libsodium-android-${TARGET_ARCH}/include" \
--with-libsodium-libs="${SODIUM_HOME}/libsodium-android-${TARGET_ARCH}/lib" \
--disable-av \
--prefix="${PREFIX}" && \
make clean && \
make -j3 install && \
echo "libtoxcore has been installed into ${PREFIX}"