70 lines
1.9 KiB
Bash
Executable File
70 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
function try () {
|
|
"$@" || exit -1
|
|
}
|
|
|
|
[ -z "$ANDROID_NDK_HOME" ] && ANDROID_NDK_HOME=~/android-ndk-r12b
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
DEPS=$DIR/.deps
|
|
ANDROID_ARM_TOOLCHAIN=$DEPS/android-toolchain-16-arm
|
|
ANDROID_X86_TOOLCHAIN=$DEPS/android-toolchain-16-x86
|
|
|
|
ANDROID_ARM_CC=$ANDROID_ARM_TOOLCHAIN/bin/arm-linux-androideabi-gcc
|
|
ANDROID_ARM_STRIP=$ANDROID_ARM_TOOLCHAIN/bin/arm-linux-androideabi-strip
|
|
|
|
ANDROID_X86_CC=$ANDROID_X86_TOOLCHAIN/bin/i686-linux-android-gcc
|
|
ANDROID_X86_STRIP=$ANDROID_X86_TOOLCHAIN/bin/i686-linux-android-strip
|
|
|
|
|
|
if [ ! -d "$DEPS" ]; then
|
|
mkdir -p $DEPS
|
|
fi
|
|
|
|
if [ ! -d "$ANDROID_ARM_TOOLCHAIN" ]; then
|
|
echo "Make standalone toolchain for ARM arch"
|
|
$ANDROID_NDK_HOME/build/tools/make_standalone_toolchain.py --arch arm \
|
|
--api 16 --install-dir $ANDROID_ARM_TOOLCHAIN
|
|
fi
|
|
|
|
if [ ! -d "$ANDROID_X86_TOOLCHAIN" ]; then
|
|
echo "Make standalone toolchain for X86 arch"
|
|
$ANDROID_NDK_HOME/build/tools/make_standalone_toolchain.py --arch x86 \
|
|
--api 16 --install-dir $ANDROID_X86_TOOLCHAIN
|
|
fi
|
|
|
|
if [ ! -d "$DIR/go/bin" ]; then
|
|
echo "Build the custom go"
|
|
|
|
pushd $DIR/go/src
|
|
try ./make.bash
|
|
popd
|
|
fi
|
|
|
|
export GOROOT=$DIR/go
|
|
export GOPATH=$DEPS/gopath
|
|
export GOBIN=$GOPATH/bin
|
|
mkdir -p $GOBIN
|
|
export PATH=$GOROOT/bin:$PATH
|
|
|
|
pushd kcptun/client
|
|
|
|
echo "Get dependences for kcptun"
|
|
go get -u github.com/xtaci/kcp-go
|
|
go get -u github.com/xtaci/smux
|
|
go get
|
|
|
|
echo "Cross compile kcptun for arm"
|
|
try env CGO_ENABLED=1 CC=$ANDROID_ARM_CC GOOS=android GOARCH=arm GOARM=7 go build -ldflags="-s -w"
|
|
try $ANDROID_ARM_STRIP client
|
|
try mv client $DIR/../src/main/assets/armeabi-v7a/kcptun
|
|
|
|
echo "Cross compile kcptun for x86"
|
|
try env CGO_ENABLED=1 CC=$ANDROID_X86_CC GOOS=android GOARCH=386 go build -ldflags="-s -w"
|
|
try $ANDROID_X86_STRIP client
|
|
try mv client $DIR/../src/main/assets/x86/kcptun
|
|
popd
|
|
|
|
echo "Successfully build kcptun"
|