build-android/build.sh
author Edouard Tisserant
Sat, 10 Oct 2015 17:24:45 +0200
changeset 371 2b34176e3fd7
parent 369 906f46ffd840
child 394 a872e68c2104
permissions -rwxr-xr-x
Fixed double free and unprotected NULL dereferencing.
Edouard@333
     1
#!/bin/sh
Edouard@333
     2
Edouard@353
     3
set -e
Edouard@353
     4
Edouard@333
     5
build_version=1
Edouard@333
     6
ANDROID_PLATFORM=android-21
Edouard@333
     7
openssl_build_version=1
Edouard@333
     8
cyrus_sasl_build_version=1
Edouard@333
     9
libetpan_build_version=1
Edouard@371
    10
# archs="armeabi armeabi-v7a x86 x86_64"
Edouard@371
    11
archs="armeabi"
Edouard@333
    12
package_name=pEpEngine-android
Edouard@333
    13
Edouard@333
    14
current_dir="`pwd`"
Edouard@333
    15
Edouard@333
    16
if test "x$ANDROID_NDK" = x ; then
Edouard@333
    17
  echo should set ANDROID_NDK before running this script.
Edouard@333
    18
  exit 1
Edouard@333
    19
fi
Edouard@333
    20
Edouard@353
    21
if test "x$GPGME_INCLUDE_PATH" = x ; then
Edouard@353
    22
  echo should set GPGME_INCLUDE_PATH before running this script.
Edouard@353
    23
  exit 1
Edouard@353
    24
fi
Edouard@353
    25
Edouard@369
    26
if test "x$LIBETPAN_PATH" = x ; then
Edouard@369
    27
  echo should set LIBETPAN_PATH before running this script.
Edouard@369
    28
  exit 1
Edouard@369
    29
fi
Edouard@369
    30
Edouard@369
    31
libetpan_dir=$LIBETPAN_PATH
Edouard@369
    32
Edouard@333
    33
function build {
Edouard@333
    34
  rm -rf "$current_dir/obj"
Edouard@333
    35
  
Edouard@333
    36
  cd "$current_dir/jni"
Edouard@333
    37
  $ANDROID_NDK/ndk-build V=1 TARGET_PLATFORM=$ANDROID_PLATFORM TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
Edouard@333
    38
    OPENSSL_PATH="$current_dir/third-party/openssl-android-$openssl_build_version" \
Edouard@333
    39
    CYRUS_SASL_PATH="$current_dir/third-party/cyrus-sasl-android-$cyrus_sasl_build_version" \
Edouard@333
    40
    LIBETPAN_PATH="$current_dir/third-party/libetpan-android-$libetpan_build_version"
Edouard@333
    41
Edouard@333
    42
  mkdir -p "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
Edouard@333
    43
  cp "$current_dir/obj/local/$TARGET_ARCH_ABI/libpEpEngine.a" "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
Edouard@333
    44
  rm -rf "$current_dir/obj"
Edouard@333
    45
}
Edouard@333
    46
Edouard@333
    47
mkdir -p "$current_dir/third-party"
Edouard@333
    48
cd "$current_dir/third-party"
Edouard@333
    49
unzip -qo "$libetpan_dir/dependencies/openssl/openssl-android-$openssl_build_version.zip"
Edouard@333
    50
unzip -qo "$libetpan_dir/dependencies/cyrus-sasl/cyrus-sasl-android-$cyrus_sasl_build_version.zip"
Edouard@333
    51
unzip -qo "$libetpan_dir/libetpan-android-$libetpan_build_version.zip"
Edouard@333
    52
Edouard@333
    53
# Copy public headers to include
Edouard@333
    54
mkdir -p "$current_dir/$package_name-$build_version/include/pEp"
Edouard@333
    55
cd "$current_dir/../src"
Edouard@333
    56
cp *.h "$current_dir/$package_name-$build_version/include/pEp"
Edouard@333
    57
Edouard@333
    58
# Start building.
Edouard@333
    59
for arch in $archs ; do
Edouard@333
    60
  TARGET_ARCH_ABI=$arch
Edouard@333
    61
  build
Edouard@333
    62
done
Edouard@333
    63
Edouard@333
    64
rm -rf "$current_dir/third-party"
Edouard@333
    65
cd "$current_dir"
Edouard@333
    66
zip -qry "$package_name-$build_version.zip" "$package_name-$build_version"
Edouard@333
    67
rm -rf "$package_name-$build_version"