#!/bin/sh

binprefix() {
	local archx bin host=$(uname -m)
	case $1 in
	arm)	archx=arm-linux-androideabi
		bin=arm-linux-androideabi
		;;
	arm64)
		archx=aarch64-linux-android
		bin=aarch64-linux-android
		;;
	x86)	archx=x86
		bin=i686-linux-android
		;;
	x86_64)	archx=x86_64
		bin=x86_64-linux-android
		;;
	mips)	archx=mipsel-linux-android
		bin=mipsel-linux-android
		;;
	mips64)	archx=mips64el-linux-android
		bin=mips64el-linux-android
		;;
	esac

	[ "$host" = i686 ] && host=x86
	echo $ANDROID_NDK/toolchains/$archx-4.9/prebuilt/linux-$host/bin/$bin
}

agcc() {
	local flags

	case $AGCCARCH in
	arm)	flags='-mfloat-abi=softfp -march=armv7-a -mtune=cortex-a9' ;;
	arm64)	flags='-march=armv8-a -mtune=cortex-a57' ;;
	x86)	flags='-march=atom' ;;
	x86_64)	flags='-march=atom' ;;
	mips)	flags='-march=mips32r2' ;;
	mips64)	flags='-march=mips64r2' ;;
	esac

	$(binprefix $AGCCARCH)-gcc -fPIE -pie -O3 $flags --sysroot=$ANDROID_NDK/platforms/android-21/arch-$AGCCARCH "$@"
}

mkdir -p src/main/assets
for i in arm arm64 x86 x86_64 mips mips64; do
	AGCCARCH=$i
	agcc -c src/main/c/dry.c -o /tmp/dry$$.o -Wall
	agcc src/main/c/dry.c /tmp/dry$$.o -o src/main/assets/dry-$i -Wall -DPASS2
	rm -f /tmp/dry$$.o
	$(binprefix $AGCCARCH)-strip -s -R.comment src/main/assets/dry-$i
done
