1#!/bin/bash
2set -e
3if [ -z "$ANDROID_HOME" -o "$1" = "--help" ]; then
4    echo ""
5    echo "usage: $0"
6    echo ""
7    echo "Please set ANDROID_HOME. We assume you have installed"
8    echo "the Android SDK. You can do that on macOS using:"
9    echo ""
10    echo "    brew install --cask android-sdk"
11    echo ""
12    echo "Then make sure you install the required packages:"
13    echo ""
14    echo "sdkmanager --install 'build-tools;29.0.3' 'ndk;21.3.6528147'"
15    echo ""
16    echo "or, if you already installed, that you're up to date:"
17    echo ""
18    echo "sdkmanager --update"
19    echo ""
20    echo "Once you have done that, please export ANDROID_HOME to"
21    echo "point to /usr/local/Caskroom/android-sdk/<version>."
22    echo ""
23    exit 1
24fi
25if [ -d $ANDROID_HOME/ndk-bundle ]; then
26    echo ""
27    echo "FATAL: currently we need 'ndk;21.3.6528147' instead of ndk-bundle"
28    echo ""
29    echo "See https://github.com/ooni/probe-engine/issues/1179."
30    echo ""
31    echo "To fix: sdkmanager --uninstall ndk-bundle"
32    echo ""
33    exit 1
34fi
35export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.3.6528147
36if [ ! -d $ANDROID_NDK_HOME ]; then
37    echo ""
38    echo "FATAL: currently we need 'ndk;21.3.6528147'"
39    echo ""
40    echo "See https://github.com/ooni/probe-engine/issues/1179."
41    echo ""
42    echo "To fix: sdkmanager --install 'ndk;21.3.6528147'"
43    echo ""
44    exit 1
45fi
46
47topdir=$(cd $(dirname $0) && pwd -P)
48set -x
49export PATH=$(go env GOPATH)/bin:$PATH
50export GO111MODULE=off
51go get -u golang.org/x/mobile/cmd/gomobile
52gomobile init
53export GO111MODULE=on
54output=MOBILE/android/oonimkall.aar
55gomobile bind -target=android -o $output -ldflags="-s -w" ./oonimkall
56