187 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# script to compile yap for Android.
 | 
						|
#
 | 
						|
# variables are
 | 
						|
#
 | 
						|
# SDK_ROOT: where is the SDK
 | 
						|
# NDK_ROOT: and the NDK
 | 
						|
# GMPDIR: get your copy of GMP from
 | 
						|
# SQLite3DIr: a pre-compiled version of sqlite3
 | 
						|
# BUILDDROID: where we want to compile yap
 | 
						|
 | 
						|
 | 
						|
# ANDROID_RELEASE= 17 is 4.2.2, 19 is 4.4.2
 | 
						|
ANDROID_RELEASE=19
 | 
						|
# ANDROID_ARCH= arm, x86, mips
 | 
						|
ANDROID_ARCH=arm
 | 
						|
# ANDROID_BUILD=linux
 | 
						|
if test `uname` = Darwin
 | 
						|
then
 | 
						|
  ANDROID_BUILD_TOOLS=macosx
 | 
						|
  ANDROID_BUILD=darwin
 | 
						|
else
 | 
						|
  ANDROID_BUILD_TOOLS=linux
 | 
						|
  ANDROID_BUILD=linux
 | 
						|
fi
 | 
						|
 | 
						|
# use `android list target` to check for available targets
 | 
						|
export ANDROID_TARGET=3
 | 
						|
 | 
						|
# what android to compile for, use
 | 
						|
ANDROID_IMAGE=first
 | 
						|
 | 
						|
# YAP_SRC="$HOME/Yap/yap-6.3"
 | 
						|
if test -d "$HOME/git/yap-6.3"
 | 
						|
then
 | 
						|
  export YAP_SRC="$HOME/git/yap-6.3"
 | 
						|
elif test -d "$HOME/Yap/yap-6.3"
 | 
						|
then
 | 
						|
  export YAP_SRC="$HOME/Yap/yap-6.3"
 | 
						|
fi
 | 
						|
 | 
						|
# check if the SDK is at the usual locations
 | 
						|
 | 
						|
if test -d $HOME/Yap/android-sdk-"$ANDROID_BUILD_TOOLS"
 | 
						|
then
 | 
						|
  export SDK_ROOT=$HOME/Yap/android-sdk-"$ANDROID_BUILD_TOOLS"
 | 
						|
else
 | 
						|
  export SDK_ROOT=/scratch/vitor/android-sdk-"$ANDROID_BUILD_TOOLS"
 | 
						|
fi
 | 
						|
 | 
						|
# check if the NDK is at the usual locations
 | 
						|
if test -d $HOME/Yap/android-ndk-r9d
 | 
						|
then
 | 
						|
  export NDK_ROOT=$HOME/Yap/android-ndk-r9d
 | 
						|
elif test -d /scratch/vitor/android-ndk-r9d
 | 
						|
then
 | 
						|
  export NDK_ROOT=/scratch/vitor/android-ndk-r9d
 | 
						|
fi
 | 
						|
 | 
						|
# fetch GMP from https://github.com/Rupan/gmp,
 | 
						|
# or compile it.
 | 
						|
if test -d /scratch
 | 
						|
then
 | 
						|
  export GMPDIR=/scratch/vitor/gmp-android
 | 
						|
else
 | 
						|
  export GMPDIR="$HOME"/Yap/gmp-android
 | 
						|
fi
 | 
						|
 | 
						|
# fetch SQLITE3 from https://github.com/Rupan/gmp,
 | 
						|
# and have two versions: one to build myddas, the
 | 
						|
# other to build the app.
 | 
						|
#
 | 
						|
# This one is used to build myddas
 | 
						|
if test -d /scratch
 | 
						|
then
 | 
						|
    export SQLITE3DIR=/scratch/vitor/sqlite3-android
 | 
						|
else
 | 
						|
  export SQLITE3DIR="$HOME"/Yap/sqlite3-android
 | 
						|
fi
 | 
						|
 | 
						|
#where I want to compile
 | 
						|
#export BUILDTOOLCHAIN="$HOME/Yap/my-android-toolchain"
 | 
						|
if test -d /scratch
 | 
						|
then
 | 
						|
  export BUILDTOOLCHAIN="/scratch/vitor/my-android-toolchain"
 | 
						|
  export BUILDDROID="/scratch/vitor/yap-android"
 | 
						|
else
 | 
						|
  export BUILDTOOLCHAIN="$HOME/Yap/my-android-toolchain"
 | 
						|
    export BUILDDROID="$HOME/Yap/bins/android"
 | 
						|
fi
 | 
						|
 | 
						|
# which gcc to use
 | 
						|
GCC_VERSION=4.8
 | 
						|
 | 
						|
#========================================================
 | 
						|
# should need no further work.
 | 
						|
#========================================================
 | 
						|
 | 
						|
export ANDROID_NDK_ROOT="$NDK_ROOT"/
 | 
						|
export ANDROID_SYSROOT="$NDK_ROOT"/platforms/android-"$ANDROID_RELEASE"/arch-"$ANDROID_ARCH"
 | 
						|
 | 
						|
# which platform to compile for
 | 
						|
ANDROID_PLATFORM=android-"$ANDROID_RELEASE"
 | 
						|
# which disk
 | 
						|
IMAGE="$ANDROID_IMAGE"
 | 
						|
 | 
						|
export PATH="$BUILDTOOLCHAIN"/bin:"$NDK_ROOT":"$SDK_ROOT/tools":"$SDK_ROOT/platform-tools":$PATH
 | 
						|
 | 
						|
echo $PATH
 | 
						|
 | 
						|
if test -d "$BUILDTOOLCHAIN"
 | 
						|
then
 | 
						|
  echo using the setup at "$BUILDTOOLCHAIN"
 | 
						|
else
 | 
						|
  "$NDK_ROOT"/build/tools/make-standalone-toolchain.sh \
 | 
						|
                             --platform="$ANDROID_PLATFORM" \
 | 
						|
                             --toolchain="$ANDROID_ARCH"-linux-androideabi-"$GCC_VERSION" \
 | 
						|
                             --install-dir="$BUILDTOOLCHAIN"
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
mkdir -p $BUILDDROID
 | 
						|
 | 
						|
startemulator () {
 | 
						|
 EMS=`ps -ef | grep emulator64| grep -v grep`
 | 
						|
  if test x"$EMS" = x
 | 
						|
  then
 | 
						|
    nohup emulator -avd $IMAGE &
 | 
						|
  fi
 | 
						|
 }
 | 
						|
 | 
						|
androidize () {
 | 
						|
  cd  packages/swig
 | 
						|
  mkdir -p "$ANDROID_NDK_ROOT"/build/core/lib
 | 
						|
  make install-android
 | 
						|
  cd ../..
 | 
						|
}
 | 
						|
 | 
						|
cd $BUILDDROID
 | 
						|
 | 
						|
export HOST="$ANDROID_ARCH"-linux-androideabi
 | 
						|
export CPP="$HOST"-cpp
 | 
						|
export DESTDIR=`pwd`/packages/swig/android    
 | 
						|
export PATH="$PATH":/usr/local/bin
 | 
						|
 | 
						|
if test x$1 = xenv
 | 
						|
then
 | 
						|
    return 0
 | 
						|
elif test x$1 = xdmake
 | 
						|
then
 | 
						|
    make
 | 
						|
elif test x$1 = xmake
 | 
						|
then
 | 
						|
    pushd packages/swig
 | 
						|
    make clean
 | 
						|
    popd
 | 
						|
    ./config.status
 | 
						|
    CFLAGS="-g" make -j install
 | 
						|
elif test x$1 = xeclipse
 | 
						|
then
 | 
						|
   startemulator
 | 
						|
   "$ECLIPSE" &
 | 
						|
   return 0
 | 
						|
else
 | 
						|
  startemulator
 | 
						|
  rm -rf "$BUILDDROID"/*
 | 
						|
  cd "$BUILDDROID"
 | 
						|
  "$YAP_SRC"/configure \
 | 
						|
  --host="$HOST" \
 | 
						|
  --enable-low-level-tracer \
 | 
						|
  --enable-debug-yap \
 | 
						|
  --enable-dynamic-loading \
 | 
						|
  --bindir=/usr/bin \
 | 
						|
  --prefix=/assets \
 | 
						|
  --enable-dynamic-loading \
 | 
						|
  --with-swig \
 | 
						|
  --with-gmp="$GMPDIR" \
 | 
						|
  --with-sqlite3="$SQLITE3DIR" 
 | 
						|
 | 
						|
  #\
 | 
						|
  #--enable-chr=yes #--enable-threads
 | 
						|
  make depend
 | 
						|
  CFLAGS="-g" make -j install
 | 
						|
fi
 | 
						|
androidize
 |