#!/bin/bash set -e start=3 SRC="$HOME/src/android" TOOLCHAINS="$HOME/opt/toolchains" ECL_ANDROID_HOST="$TOOLCHAINS/ecl-android-host" ECL_ANDROID="$TOOLCHAINS/ecl-android" export PLATFORM_PREFIX="$TOOLCHAINS/android-ndk18-arm" export NDK_PATH="$HOME/opt/android-ndk" export NDK_PLATFORM=android-4 function banner_phase(){ printf "\n###\n" for line ; do printf "### %s\n" "$line" done printf "###\n\n" } function echodo(){ printf "\n;; " echo "$@" printf "\n" "$@" } echodo mkdir -p "$SRC" echodo cd "$SRC" if [ $start -le 0 ] ; then echodo rm -rf ecl echodo git checkout https://gitlab.com/embeddable-common-lisp/ecl.git echodo cd ecl echodo git checkout -b 16.1.2-rc origin/16.1.2-rc fi echodo cd "$SRC/ecl" if [ $start -le 1 ] ; then banner_phase "1. Build the host ECL" echodo rm -rf build echodo ./configure \ ABI=32 CFLAGS="-m32 -g -O2" LDFLAGS="-m32 -g -O2" \ --prefix="$ECL_ANDROID_HOST" \ --disable-longdouble \ --enable-libatomic=included echodo make -j9 echodo make install echodo rm -r build fi export ECL_TO_RUN="$ECL_ANDROID_HOST/bin/ecl" if [ $start -le 2 ] ; then banner_phase "2. Build the toolchain (requires android-ndk) and export the"\ "necessary paths - if you have a toolchain for the android just"\ "export its bin/ directory." echodo mkdir -p "${PLATFORM_PREFIX}" echodo "${NDK_PATH}"/build/tools/make-standalone-toolchain.sh \ --platform="${NDK_PLATFORM}" \ --install-dir="${PLATFORM_PREFIX}" \ --arch=arm fi export PATH="${PLATFORM_PREFIX}/bin:${PATH}" if [ $start -le 3 ] ; then banner_phase "3. Build and install the target library." echodo rm -rf build echodo ./configure \ --host=arm-linux-androideabi \ --prefix="$ECL_ANDROID" \ --with-cross-config="$(pwd)"/src/util/android.cross_config \ --disable-soname echodo make -j9 echodo make install fi echo "$ECL_ANDROID"