From 2bc8a406b7cb217983998e769c045978d3d4e8cf Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Wed, 30 Apr 2014 18:03:35 -0700 Subject: [PATCH] Sync the Android build scripts with libsodium's --- dist-build/android-arm.sh | 3 +++ dist-build/android-armv7.sh | 3 +++ dist-build/android-build.sh | 43 +++++++++++++++++++++++++++++++++++++ dist-build/android-mips.sh | 3 +++ dist-build/android-x86.sh | 3 +++ dist-build/android.sh | 37 ------------------------------- 6 files changed, 55 insertions(+), 37 deletions(-) create mode 100755 dist-build/android-arm.sh create mode 100755 dist-build/android-armv7.sh create mode 100755 dist-build/android-build.sh create mode 100755 dist-build/android-mips.sh create mode 100755 dist-build/android-x86.sh delete mode 100755 dist-build/android.sh diff --git a/dist-build/android-arm.sh b/dist-build/android-arm.sh new file mode 100755 index 00000000..04be368c --- /dev/null +++ b/dist-build/android-arm.sh @@ -0,0 +1,3 @@ +#!/bin/sh +export CFLAGS="-Os -mthumb -marm -march=armv6" +TARGET_ARCH=arm HOST_COMPILER=arm-linux-androideabi "$(dirname "$0")/android-build.sh" diff --git a/dist-build/android-armv7.sh b/dist-build/android-armv7.sh new file mode 100755 index 00000000..c6280b86 --- /dev/null +++ b/dist-build/android-armv7.sh @@ -0,0 +1,3 @@ +#!/bin/sh +export CFLAGS="-Os -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -marm -march=armv7-a" +TARGET_ARCH=armv7 HOST_COMPILER=arm-linux-androideabi "$(dirname "$0")/android-build.sh" diff --git a/dist-build/android-build.sh b/dist-build/android-build.sh new file mode 100755 index 00000000..9b897e66 --- /dev/null +++ b/dist-build/android-build.sh @@ -0,0 +1,43 @@ +#! /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 [ ! -f ./configure ]; then + echo "Can't find ./configure. Wrong directory or haven't run autogen.sh?" + exit 1 +fi + +if [ "x$TARGET_ARCH" = 'x' ] || [ "x$HOST_COMPILER" = 'x' ]; then + echo "You shouldn't use android-build.sh directly, use android-[arch].sh instead" + exit 1 +fi + +export MAKE_TOOLCHAIN="${ANDROID_NDK_HOME}/build/tools/make-standalone-toolchain.sh" + +export PREFIX="$(pwd)/dnscrypt-proxy-android-${TARGET_ARCH}" +export TOOLCHAIN_DIR="$(pwd)/android-toolchain-${TARGET_ARCH}" +export PATH="${PATH}:${TOOLCHAIN_DIR}/bin" + +export SODIUM_ANDROID_PREFIX=${SODIUM_ANDROID_PREFIX:-/tmp/libsodium-android-${TARGET_ARCH}} +export CPPFLAGS="$CPPFLAGS -I${SODIUM_ANDROID_PREFIX}/include" +export CPPFLAGS="$CPPFLAGS -DUSE_ONLY_PORTABLE_IMPLEMENTATIONS=1" +export LDFLAGS="$LDFLAGS -L${SODIUM_ANDROID_PREFIX}/lib" + +rm -rf "${TOOLCHAIN_DIR}" "${PREFIX}" + +$MAKE_TOOLCHAIN --platform="${NDK_PLATFORM:-android-14}" \ + --arch="$TARGET_ARCH" \ + --install-dir="$TOOLCHAIN_DIR" && \ +./configure --host="${HOST_COMPILER}" \ + --with-sysroot="${TOOLCHAIN_DIR}/sysroot" \ + --prefix="${PREFIX}" \ + --disable-soname-versions \ + --disable-shared \ + --disable-pie && \ +make clean && \ +make -j3 install && \ +echo "dnscrypt-proxy has been installed into $PREFIX" diff --git a/dist-build/android-mips.sh b/dist-build/android-mips.sh new file mode 100755 index 00000000..0fb04312 --- /dev/null +++ b/dist-build/android-mips.sh @@ -0,0 +1,3 @@ +#!/bin/sh +export CFLAGS="-Os" +TARGET_ARCH=mips HOST_COMPILER=mipsel-linux-android "$(dirname "$0")/android-build.sh" diff --git a/dist-build/android-x86.sh b/dist-build/android-x86.sh new file mode 100755 index 00000000..428511bd --- /dev/null +++ b/dist-build/android-x86.sh @@ -0,0 +1,3 @@ +#!/bin/sh +export CFLAGS="-Os" +TARGET_ARCH=x86 HOST_COMPILER=i686-linux-android "$(dirname "$0")/android-build.sh" diff --git a/dist-build/android.sh b/dist-build/android.sh deleted file mode 100755 index 50b3ff05..00000000 --- a/dist-build/android.sh +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/sh - -if [ -z "$NDK_ROOT" ]; then - echo "You should probably set NDK_ROOT to the directory containing" - echo "the Android NDK" -fi - -if [ ! -f ./configure ]; then - echo "Can't find ./configure. Wrong directory or haven't run autogen.sh?" - exit 1 -fi - -export NDK_PLATFORM=${NDK_PLATFORM:-android-14} -export NDK_ROOT=${NDK_ROOT:-/usr/local/Cellar/android-ndk/9} -export TARGET_ARCH=arm -export TARGET="${TARGET_ARCH}-linux-androideabi" -export MAKE_TOOLCHAIN="${NDK_ROOT}/build/tools/make-standalone-toolchain.sh" - -export PREFIX="$(pwd)/dnscrypt-proxy-android" -export TOOLCHAIN_DIR="$(pwd)/android-toolchain" -export PATH="${PATH}:${TOOLCHAIN_DIR}" -export SODIUM_ANDROID_PREFIX=${SODIUM_ANDROID_PREFIX:-/tmp/libsodium-android} -export CPPFLAGS="$CPPFLAGS -I${SODIUM_ANDROID_PREFIX}/include" -export CPPFLAGS="$CPPFLAGS -DUSE_ONLY_PORTABLE_IMPLEMENTATIONS=1" -export CFLAGS="-Os -mthumb" -export LDFLAGS="$LDFLAGS -L${SODIUM_ANDROID_PREFIX}/lib" - -$MAKE_TOOLCHAIN --platform="$NDK_PLATFORM" --arch="$TARGET_ARCH" \ - --install-dir="$TOOLCHAIN_DIR" - -./configure --host=arm-linux-androideabi \ - --with-sysroot="${TOOLCHAIN_DIR}/sysroot" \ - --disable-shared \ - --disable-pie \ - --prefix="$PREFIX" && \ -make -j3 install && \ -echo "dnscrypt-proxy has been installed into $PREFIX"