Added new android build scripts.
authorArmin Novak <armin.novak@thincast.com>
Mon, 1 Feb 2016 14:22:10 +0000 (15:22 +0100)
committerArmin Novak <armin.novak@thincast.com>
Mon, 1 Feb 2016 14:22:10 +0000 (15:22 +0100)
scripts/android-build-common.sh [new file with mode: 0644]
scripts/android-build-freerdp.sh [new file with mode: 0755]
scripts/android-build-jpeg.sh [new file with mode: 0755]
scripts/android-build-openh264.sh [new file with mode: 0755]
scripts/android-build-openssl.sh [new file with mode: 0755]
scripts/android-build.conf [new file with mode: 0644]
scripts/android_setup_build_env.sh [deleted file]
scripts/openssl-disable-library-versioning.patch [new file with mode: 0644]

diff --git a/scripts/android-build-common.sh b/scripts/android-build-common.sh
new file mode 100644 (file)
index 0000000..d58d0ed
--- /dev/null
@@ -0,0 +1,269 @@
+#!/bin/bash
+
+if [ -z $BUILD_ARCH ]; then
+       BUILD_ARCH="armeabi armeabi-v7a mips mips64 x86 x86_64 arm64-v8a"
+fi
+
+if [ -z $NDK_TARGET ]; then
+       NDK_TARGET=21
+fi
+
+if [ -z $ANDROID_SDK ]; then
+       ANDROID_SDK="missing"
+fi
+
+if [ -z $ANDROID_NDK ]; then
+       ANDROID_NDK="missing"
+fi
+
+if [ -z $BUILD_DST ]; then
+       BUILD_DST=$(pwd)/libs
+fi
+
+if [ -z $BUILD_SRC ]; then
+       BUILD_SRC=$(pwd)/src
+fi
+
+if [ -z $SCM_URL ]; then
+       SCM_URL="missing"
+fi
+
+if [ -z $SCM_TAG ]; then
+       SCM_TAG=master
+fi
+
+CLEAN_BUILD_DIR=0
+
+function common_help {
+       echo "$(BASHSOURCE[0]) supports the following arguments:"
+       echo "  --sdk   The base directory of your android SDK"
+       echo "                  ANDROID_SDK=$ANDROID_SDK"
+       echo "  --ndk   The base directory of your android NDK defa"
+       echo "                  ANDROID_NDK=$ANDROID_NDK"
+       echo "  --arch  A list of architectures to build"
+       echo "                  BUILD_ARCH=$BUILD_ARCH"
+       echo "  --dst   The destination directory for include and library files"
+       echo "                  BUILD_DST=$BUILD_DST"
+       echo "  --src   The source directory for SCM checkout"
+       echo "                  BUILD_SRC=$BUILD_SRC"
+       echo "  --url   The SCM source url"
+       echo "                  SCM_URL=$SCM_URL"
+       echo "  --tag   The SCM branch or tag to check out"
+       echo "                  SCM_TAG=$SCM_TAG"
+       echo "  --clean Clean the destination before build"
+       echo "  --help  Display this help"
+       exit 0
+}
+
+function common_run {
+       echo "[RUN] $@"
+       "$@"
+       RES=$?
+       if [[ $RES -ne 0 ]];
+       then
+               echo "[ERROR] $@ retured $RES"
+               exit 1
+       fi
+}
+
+function common_parse_arguments {
+       while [[ $# > 0 ]]
+       do
+               key="$1"
+               case $key in
+                   --conf)
+            source "$2"
+            shift
+            ;;
+
+                       --sdk)
+                       ANDROID_SDK="$2"
+                       shift
+                       ;;
+
+                       --ndk)
+                       ANDROID_NDK="$2"
+                       shift
+                       ;;
+
+                       --arch)
+                       BUILD_ARCH="$2"
+                       shift
+                       ;;
+
+                       --dst)
+                       BUILD_DST="$2"
+                       shift
+                       ;;
+
+                       --src)
+                       BUILD_SRC="$2"
+                       shift
+                       ;;
+
+                       --url)
+                       SCM_URL="$2"
+                       shift
+                       ;;
+
+                       --tag)
+                       SCM_TAG="$2"
+                       shift
+                       ;;
+
+                       --clean)
+                       CLEAN_BUILD_DIR=1
+                       shift
+                       ;;
+
+                       --help)
+                       common_help
+                       shift
+                       ;;
+
+                       *) # Unknown
+                       ;;
+               esac
+               shift
+       done
+}
+
+function common_check_requirements {
+       if [[ ! -d $ANDROID_SDK ]];
+       then
+               echo "export ANDROID_SDK to point to your SDK location."
+               exit 1
+       fi
+
+       if [[ ! -d $ANDROID_NDK ]];
+       then
+               echo "export ANDROID_NDK to point to your NDK location."
+               exit 1
+       fi
+
+       if [[ -z $BUILD_DST ]];
+       then
+               echo "Destination directory not valid"
+               exit 1
+       fi
+
+       if [[ -z $BUILD_SRC ]];
+       then
+               echo "Source directory not valid"
+               exit 1
+       fi
+
+       if [[ -z $SCM_URL ]];
+       then
+               echo "Source URL not defined! Define SCM_URL"
+               exit 1
+       fi
+
+       if [[ -z $SCM_TAG ]];
+       then
+               echo "SCM TAG / BRANCH not defined! Define SCM_TAG"
+               exit 1
+       fi
+
+       if [[ -z $NDK_TARGET ]];
+       then
+               echo "Android platform NDK_TARGET not defined"
+               exit 1
+       fi
+
+       if [ -x $ANDROID_NDK/ndk-build ]; then
+               NDK_BUILD=$ANDROID_NDK/ndk-build
+       else
+               echo "ndk-build not found in NDK directory $ANDROID_NDK"
+               echo "assuming ndk-build is in path..."
+               NDK_BUILD=ndk-build
+       fi
+
+       if [[ -z $NDK_BUILD ]];
+       then
+               echo "Android ndk-build not detected"
+               exit 1
+       fi
+
+       for CMD in make git cmake $NDK_BUILD
+       do
+               if ! type $CMD >/dev/null; then
+                       echo "Command $CMD not found. Install and add it to the PATH."
+                       exit 1
+               fi
+       done
+
+       if [ "${BUILD_SRC:0:1}" != "/" ];
+       then
+               BUILD_SRC=$(pwd)/$BUILD_SRC
+       fi
+       if [ "${BUILD_DST:0:1}" != "/" ];
+       then
+               BUILD_DST=$(pwd)/$BUILD_DST
+       fi
+}
+
+function common_update {
+       if [ $# -ne 3 ];
+       then
+               echo "Invalid arguments to update function $@"
+               exit 1
+       fi
+
+       echo "Preparing checkout..."
+       BASE=$(pwd)
+       if [[ ! -d $3 ]];
+       then
+               common_run mkdir -p $3
+               common_run cd $3
+               common_run git clone $1 $3
+       fi
+
+       common_run cd $BASE
+       common_run cd $3
+       common_run git fetch
+       common_run git reset --hard HEAD
+       common_run git checkout $2
+       common_run cd $BASE
+}
+
+function common_clean {
+       if [ $CLEAN_BUILD_DIR -ne 1 ];
+       then
+               return
+       fi
+
+       if [ $# -ne 1 ];
+       then
+               echo "Invalid arguments to clean function $@"
+               exit 1
+       fi
+
+       echo "Cleaning up $1..."
+       common_run rm -rf $1
+}
+
+function common_copy {
+       if [ $# -ne 2 ];
+       then
+               echo "Invalid arguments to copy function $@"
+               exit 1
+       fi
+       if [ ! -d $1 ] || [ ! -d $1/include ] || [ ! -d $1/libs ];
+       then
+               echo "Invalid source $1"
+               exit 1
+       fi
+       if [ -z $2 ];
+       then
+               echo "Invalid destination $2"
+               exit 1
+       fi
+
+       if [ ! -d $2 ];
+       then
+               common_run mkdir -p $2
+       fi
+       common_run cp -L -r $1/include $2
+       common_run cp -L -r $1/libs/* $2
+}
diff --git a/scripts/android-build-freerdp.sh b/scripts/android-build-freerdp.sh
new file mode 100755 (executable)
index 0000000..482c6b7
--- /dev/null
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+JPEG_TAG=master
+OPENH264_TAG=master
+OPENSSL_TAG=master
+
+WITH_JPEG=0
+WITH_OPENH264=0
+WITH_OPENSSL=0
+
+SRC_DIR=$(pwd)
+BUILD_SRC=$(pwd)
+BUILD_DST=$(pwd)
+
+CMAKE_BUILD_TYPE=Debug
+BUILD_DEPS=0
+
+SCRIPT_PATH=$(dirname "${BASH_SOURCE[0]}")
+source $SCRIPT_PATH/android-build-common.sh
+source $SCRIPT_PATH/android-build.conf
+
+# Parse arguments.
+REMAINING=""
+while [[ $# > 0 ]]
+do
+       key="$1"
+       case $key in
+               --src)
+                       SRC_DIR="$2"
+                       shift
+                       ;;
+               --jpeg)
+                       WITH_JPEG=1
+                       shift
+                       ;;
+               --openh264)
+                       WITH_OPENH264=1
+                       shift
+                       ;;
+               --openssl)
+                       WITH_OPENSSL=1
+                       shift
+                       ;;
+               --debug)
+                       CMAKE_BUILD_TYPE=Debug
+                       shift
+                       ;;
+               --release)
+                       CMAKE_BUILD_TYPE=Release
+                       shift
+                       ;;
+               --relWithDebug)
+                       CMAKE_BUILD_TYPE=RelWithDebug
+                       shift
+                       ;;
+               --build-deps)
+                       BUILD_DEPS=1
+                       shift
+                       ;;
+               *)
+                       REMAINING="$REMAINING $key"
+                       shift
+                       ;;
+       esac
+done
+common_parse_arguments $REMAINING
+
+# clean up top
+if [ -d $BUILD_SRC ];
+then
+       common_clean $BUILD_SRC
+fi
+
+if [ -d $BUILD_DST ];
+then
+       common_run mkdir -p $BUILD_DST
+fi
+
+# Prepare the environment
+common_run mkdir -p $BUILD_SRC
+
+CMAKE_CMD_ARGS="-DANDROID_NDK=$ANDROID_NDK \
+       -DCMAKE_TOOLCHAIN_FILE=$SRC_DIR/cmake/AndroidToolchain.cmake \
+       -DCMAKE_INSTALL_PREFIX=$BUILD_DST \
+       -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE \
+       -DFREERDP_EXTERNAL_PATH=$BUILD_DST"
+
+BASE=$(pwd)
+for ARCH in $BUILD_ARCH
+do
+    # build dependencies.
+    if [ $WITH_JPEG -ne 0 ];
+    then
+        if [ $BUILD_DEPS -ne 0 ];
+        then
+            common_run bash $SCRIPT_PATH/android-build-jpeg.sh \
+                --src $BUILD_SRC/jpeg --dst $BUILD_DST \
+                --sdk $ANDROID_SDK --ndk $ANDROID_NDK \
+                --arch $ARCH \
+                --tag $JPEG_TAG
+        fi
+        CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_JPEG=ON"
+    fi
+    if [ $WITH_OPENH264 -ne 0 ];
+    then
+        if [ $BUILD_DEPS -ne 0 ];
+        then
+            common_run bash $SCRIPT_PATH/android-build-openh264.sh \
+                --src $BUILD_SRC/openh264 --dst $BUILD_DST \
+                --sdk $ANDROID_SDK --ndk $ANDROID_NDK \
+                --arch $ARCH \
+                --tag $OPENH264_TAG
+        fi
+        CMAKE_CMD_ARGS="$CMAKE_CMD_ARGS -DWITH_OPENH264=ON"
+    fi
+    if [ $WITH_OPENSSL -ne 0 ];
+    then
+        if [ $BUILD_DEPS -ne 0 ];
+        then
+            common_run bash $SCRIPT_PATH/android-build-openssl.sh \
+                --src $BUILD_SRC/openssl --dst $BUILD_DST \
+                --sdk $ANDROID_SDK --ndk $ANDROID_NDK \
+                --arch $ARCH \
+                --tag $OPENSSL_TAG
+        fi
+    fi
+
+    # Build and install the library.
+       common_run cd $BASE
+       common_run mkdir -p $BUILD_SRC/freerdp-build/$ARCH
+       common_run cd $BUILD_SRC/freerdp-build/$ARCH
+       common_run export ANDROID_NDK=$ANDROID_NDK
+       common_run cmake $CMAKE_CMD_ARGS \
+               -DANDROID_ABI=$ARCH \
+               $SRC_DIR
+       echo $(pwd)
+       common_run cmake --build . --target install
+done
+
+echo "Successfully build library for architectures $BUILD_ARCH"
diff --git a/scripts/android-build-jpeg.sh b/scripts/android-build-jpeg.sh
new file mode 100755 (executable)
index 0000000..7b06adf
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+SCM_URL=https://github.com/akallabeth/jpeg8d.git
+SCM_TAG=master
+
+source $(dirname "${BASH_SOURCE[0]}")/android-build-common.sh
+
+function usage {
+       echo $0 [arguments]
+       echo "\tThe script checks out the OpenH264 git repository"
+       echo "\tto a local source directory, builds and installs"
+       echo "\tthe library for all architectures defined to"
+       echo "\tthe destination directory."
+       echo ""
+       echo "\t[-s|--source-dir <path>]"
+       echo "\t[-d|--destination-dir <path>]"
+       echo "\t[-a|--arch <architectures>]"
+       echo "\t[-t|--tag <tag or branch>]"
+       echo "\t[--scm-url <url>]"
+       echo "\t[--ndk <android NDK path>]"
+       echo "\t[--sdk <android SDK path>]"
+       exit 1
+}
+
+function build {
+       echo "Building architectures $BUILD_ARCH..."
+       BASE=$(pwd)
+       common_run cd $BUILD_SRC
+       common_run $NDK_BUILD V=1 APP_ABI="${BUILD_ARCH}" -j clean
+       common_run $NDK_BUILD V=1 APP_ABI="${BUILD_ARCH}" -j
+       common_run cd $BASE
+}
+
+# Run the main program.
+common_parse_arguments $@
+common_check_requirements
+common_update $SCM_URL $SCM_TAG $BUILD_SRC
+common_clean $BUILD_DST
+
+build
+
+common_copy $BUILD_SRC $BUILD_DST
diff --git a/scripts/android-build-openh264.sh b/scripts/android-build-openh264.sh
new file mode 100755 (executable)
index 0000000..22aef4e
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/bash
+SCM_URL=https://github.com/cisco/openh264
+SCM_TAG=master
+
+source $(dirname "${BASH_SOURCE[0]}")/android-build-common.sh
+
+function build {
+       echo "Building architecture $1..."
+       BASE=$(pwd)
+       common_run cd $BUILD_SRC
+       PATH=$ANDROID_SDK/tools:$ANDROID_NDK:$PATH
+       MAKE="make PATH=$PATH OS=android NDKROOT=$ANDROID_NDK TARGET=android-$2 NDKLEVEL=$2 ARCH=$1 -j"
+       common_run git clean -xdf
+       common_run $MAKE
+       # Install creates a non optimal directory layout, fix that
+       common_run $MAKE PREFIX=$BUILD_SRC/libs/$1 install
+       common_run cd $BASE
+}
+
+# Run the main program.
+common_parse_arguments $@
+common_check_requirements
+common_update $SCM_URL $SCM_TAG $BUILD_SRC
+common_clean $BUILD_DST
+
+for ARCH in $BUILD_ARCH
+do
+       case $ARCH in
+       "armeabi")
+               OARCH="arm"
+       ;;
+       "armeabi-v7a")
+               OARCH="arm"
+       ;;
+       "arm64-v8a")
+               OARCH="arm64"
+       ;;
+       *)
+               OARCH=$ARCH
+       ;;
+       esac
+
+       echo "$ARCH=$OARCH"
+
+       build $OARCH $NDK_TARGET
+
+       if [ ! -d $BUILD_DST/include ];
+       then
+               common_run mkdir -p $BUILD_DST/include
+       fi
+
+       common_run cp -L -r $BUILD_SRC/libs/$OARCH/include/ $BUILD_DST/
+       if [ ! -d $BUILD_DST/$ARCH ];
+       then
+               common_run mkdir -p $BUILD_DST/$ARCH
+       fi
+       common_run cp -L $BUILD_SRC/libs/$OARCH/lib/*.so  $BUILD_DST/$ARCH/
+done
diff --git a/scripts/android-build-openssl.sh b/scripts/android-build-openssl.sh
new file mode 100755 (executable)
index 0000000..3e376fe
--- /dev/null
@@ -0,0 +1,121 @@
+#!/bin/bash
+
+SCM_URL=https://github.com/openssl/openssl
+SCM_TAG=master
+
+COMPILER=4.9
+
+source $(dirname "${BASH_SOURCE[0]}")/android-build-common.sh
+
+function build {
+       if [ $# -ne 5 ];
+       then
+               echo "Invalid arguments $@"
+               exit 1
+       fi
+
+       CONFIG=$1
+       ARCH_PREFIX=$2
+       DST_PREFIX=$3
+       TOOLCHAIN_PREFIX=$4
+       PLATFORM_PREFIX=$5
+
+       TMP_DIR=$ANDROID_NDK/toolchains/$TOOLCHAIN_PREFIX$COMPILER/prebuilt/
+       HOST_PLATFORM=$(ls $TMP_DIR)
+       if [ ! -d $TMP_DIR$HOST_POLATFORM ];
+       then
+               echo "could not determine NDK host platform in $ANDROID_NDK/toolchains/$TOOLCHAIN_PREFIX$COMPILER/prebuilt/"
+               exit 1
+       fi
+
+       common_run export CROSS_SYSROOT=$ANDROID_NDK/platforms/android-$NDK_TARGET/$PLATFORM_PREFIX
+       common_run export ANDROID_DEV=$ANDROID_NDK/platforms/android-$NDK_TARGET/$PLATFORM_PREFIX/usr
+       common_run export CROSS_COMPILE=$ARCH_PREFIX
+       common_run export PATH=$ANDROID_NDK/toolchains/$TOOLCHAIN_PREFIX$COMPILER/prebuilt/$HOST_PLATFORM/bin/:$ORG_PATH
+
+       echo "CONFIG=$CONFIG"
+       echo "ARCH_PREFIX=$ARCH_PREFIX"
+       echo "DST_PREFIX=$DST_PREFIX"
+       echo "TOOLCHAIN_PREFIX=$TOOLCHAIN_PREFIX"
+       echo "PLATFORM_PREFIX=$PLATFORM_PREFIX"
+       echo "CROSS_SYSROOT=$CROSS_SYSROOT"
+       echo "CROSS_COMPILE=$CROSS_COMPILE"
+       echo "PATH=$PATH"
+
+       BASE=$(pwd)
+       DST_DIR=$BUILD_DST/$DST_PREFIX
+       common_run cd $BUILD_SRC
+       common_run git clean -xdf
+       common_run ./Configure --openssldir=$DST_DIR $CONFIG shared
+       common_run make -j build_libs
+
+       if [ ! -d $DST_DIR ];
+       then
+               common_run mkdir -p $DST_DIR
+       fi
+
+       common_run cp -L libssl.so $DST_DIR
+       common_run cp -L libcrypto.so $DST_DIR
+       common_run cd $BASE
+}
+
+# Run the main program.
+common_parse_arguments $@
+common_check_requirements
+common_update $SCM_URL $SCM_TAG $BUILD_SRC
+common_clean $BUILD_DST
+
+# Patch openssl
+BASE=$(pwd)
+common_run cd $BUILD_SRC
+common_run git am $(dirname "${BASH_SOURCE[0]}")/openssl-disable-library-versioning.patch
+common_run cd $BASE
+
+ORG_PATH=$PATH
+for ARCH in $BUILD_ARCH
+do
+
+       case $ARCH in
+       "armeabi")
+                build "android" "arm-linux-androideabi-" \
+                       $ARCH "arm-linux-androideabi-" "arch-arm"
+                ;;
+        "armeabi-v7a")
+                build "android-armv7" "arm-linux-androideabi-" \
+                       $ARCH "arm-linux-androideabi-" "arch-arm"
+                ;;
+        "mips")
+                build "android-mips" "mipsel-linux-android-" \
+                       $ARCH "mipsel-linux-android-" "arch-mips"
+                ;;
+        "mips64")
+               echo "[WARNING] Skipping unsupported architecture $ARCH"
+               continue
+                build "android-mips" "mipsel-linux-android-" \
+                       $ARCH "mipsel-linux-android-" "arch-mips"
+                ;;
+        "x86")
+                build "android-x86" "i686-linux-android-" \
+                       $ARCH "x86-" "arch-x86"
+                ;;
+        "arm64-v8a")
+                build "android64-aarch64" "aarch64-linux-android-" \
+                       $ARCH "aarch64-linux-android-" "arch-arm64"
+                ;;
+        "x86_64")
+                build "android64" "x86_64-linux-android-" \
+                       $ARCH "x86_64-" "arch-x86_64"
+                ;;
+       *)
+               echo "[WARNING] Skipping unsupported architecture $ARCH"
+               continue
+               ;;
+       esac
+done
+
+if [ ! -d $BUILD_DST/include ];
+then
+       common_run mkdir -p $BUILD_DST/include
+fi
+common_run cp -L -r $BUILD_SRC/include/openssl $BUILD_DST/include/
+
diff --git a/scripts/android-build.conf b/scripts/android-build.conf
new file mode 100644 (file)
index 0000000..fff1ab2
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/bash
+#
+# Android build confguration
+SCRIPT_PATH=$(dirname "${BASH_SOURCE[0]}")
+SCRIPT_PATH=$(realpath "$SCRIPT_PATH")
+
+WITH_JPEG=1
+WITH_OPENH264=1
+WITH_OPENSSL=1
+BUILD_DEPS=1
+
+JPEG_TAG=master
+OPENH264_TAG=v1.5.0
+OPENSSL_TAG=OpenSSL_1_0_2f
+
+SRC_DIR=$SCRIPT_PATH/..
+BUILD_DST=$SCRIPT_PATH/../client/Android/Studio/freeRDPCore/src/main/jniLibs
+BUILD_SRC=$SRC_DIR/build
+
+CMAKE_BUILD_TYPE=Debug
+
+BUILD_ARCH="armeabi armeabi-v7a x86"
diff --git a/scripts/android_setup_build_env.sh b/scripts/android_setup_build_env.sh
deleted file mode 100755 (executable)
index 9d0fd27..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/bin/sh
-#
-# This script checks out or updates and builds third party libraries
-# required for the android build.
-#
-# Specifically these are:
-#  - OpenSSL
-#  - Android NDK Profiler
-#  - Jpeg library
-#
-# Usage:
-#  android_setup_build_env.sh <source root>
-
-OPENSSL_SCM=https://github.com/akallabeth/openssl-android.git
-OPENSSL_TAG=1.0.1h-fips-2.0.7
-NDK_PROFILER_SCM=https://github.com/richq/android-ndk-profiler.git
-JPEG_LIBRARY_SCM=https://github.com/akallabeth/jpeg8d.git
-
-SCRIPT_NAME=$(basename $0)
-
-if [ -x $ANDROID_NDK/ndk-build ]; then
-  NDK_BUILD=$ANDROID_NDK/ndk-build
-else
-  echo "ndk-build not found in NDK directory $ANDROID_NDK"
-  echo "assuming ndk-build is in path..."
-  NDK_BUILD=ndk-build
-fi
-
-if [ $# -ne 1 ]; then
-
-       echo "Missing command line argument, current directory as root."
-       ROOT=`pwd`
-       ROOT=$ROOT/external
-else
-       ROOT=`readlink -f $1`
-fi
-
-if [ ! -d $ROOT ]; then
-       echo "Argument '$ROOT' is not a directory."
-       exit -2
-fi
-echo "Using '$ROOT' as root."
-
-echo "Preparing OpenSSL..."
-OPENSSL_SRC=$ROOT/openssl-build
-if [ -d $OPENSSL_SRC ]; then
-       cd $OPENSSL_SRC
-       git fetch
-       RETVAL=$?
-else
-       git clone $OPENSSL_SCM $OPENSSL_SRC
-       RETVAL=$?
-fi
-if [ $RETVAL -ne 0 ]; then
-       echo "Failed to execute git command [$RETVAL]"
-       exit -3
-fi
-cd $OPENSSL_SRC
-
-# We want to build a specific TAG
-git checkout $OPENSSL_TAG
-
-make clean
-# The makefile has a bug, which aborts during
-# first compilation. Rerun make to build the whole lib.
-make
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
-       echo "Failed to execute make command [$RETVAL]"
-       exit -4
-fi
-# Copy the created library to the default openssl directory,
-# so that CMake will detect it automatically.
-SSL_ROOT=`find $OPENSSL_SRC -type d -name "openssl-?.?.*"`
-if [ -z "$SSL_ROOT" ]; then
-       echo "OpenSSL was not build successfully, aborting."
-       exit -42
-fi
-mkdir -p $SSL_ROOT/lib
-cp $SSL_ROOT/*.a $SSL_ROOT/lib/
-
-rm -f $ROOT/openssl
-ln -s $SSL_ROOT $ROOT/openssl
-
-echo "Preparing NDK profiler..."
-NDK_PROFILER_SRC=$ROOT/android-ndk-profiler
-if [ -d $NDK_PROFILER_SRC ]; then
-       cd $NDK_PROFILER_SRC
-       git pull
-       RETVAL=$?
-else
-       git clone $NDK_PROFILER_SCM $NDK_PROFILER_SRC
-       RETVAL=$?
-fi
-if [ $RETVAL -ne 0 ]; then
-       echo "Failed to execute git command [$RETVAL]"
-       exit -5
-fi
-cd $NDK_PROFILER_SRC
-$NDK_BUILD V=1 APP_ABI=armeabi-v7a clean
-$NDK_BUILD V=1 APP_ABI=armeabi-v7a
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
-       echo "Failed to execute $NDK_BUILD command [$RETVAL]"
-       exit -6
-fi
-
-echo "Preparing JPEG library..."
-JPEG_LIBRARY_SRC=$ROOT/jpeg8d
-if [ -d $JPEG_LIBRARY_SRC ]; then
-       cd $JPEG_LIBRARY_SRC
-       git pull
-       RETVAL=$?
-else
-       git clone $JPEG_LIBRARY_SCM $JPEG_LIBRARY_SRC
-       RETVAL=$?
-fi
-if [ $RETVAL -ne 0 ]; then
-       echo "Failed to execute git command [$RETVAL]"
-       exit -6
-fi
-cd $JPEG_LIBRARY_SRC
-$NDK_BUILD V=1 APP_ABI=armeabi-v7a clean
-$NDK_BUILD V=1 APP_ABI=armeabi-v7a
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
-       echo "Failed to execute $NDK_BUILD command [$RETVAL]"
-       exit -7
-fi
-mkdir -p $JPEG_LIBRARY_SRC/lib
-cp $JPEG_LIBRARY_SRC/obj/local/armeabi-v7a/*.a $JPEG_LIBRARY_SRC/lib/
-
-echo "Prepared external libraries, you can now build the application."
-exit 0
diff --git a/scripts/openssl-disable-library-versioning.patch b/scripts/openssl-disable-library-versioning.patch
new file mode 100644 (file)
index 0000000..9f2f691
--- /dev/null
@@ -0,0 +1,24 @@
+From 12f0521bbb3f046db8c7854364135d8247cf982e Mon Sep 17 00:00:00 2001
+From: Armin Novak <armin.novak@thincast.com>
+Date: Fri, 29 Jan 2016 17:04:12 +0100
+Subject: [PATCH] Disabled library versioning.
+
+---
+ Makefile.shared | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile.shared b/Makefile.shared
+index e753f44..5cffcc2 100644
+--- a/Makefile.shared
++++ b/Makefile.shared
+@@ -81,7 +81,6 @@ CALC_VERSIONS=       \
+               prev=""; \
+               for v in `echo "$(LIBVERSION) $(LIBCOMPATVERSIONS)" | cut -d';' -f1`; do \
+                       SHLIB_SOVER_NODOT=$$v; \
+-                      SHLIB_SOVER=.$$v; \
+                       if [ -n "$$prev" ]; then \
+                               SHLIB_COMPAT="$$SHLIB_COMPAT .$$prev"; \
+                       fi; \
+-- 
+2.1.4
+