#!/bin/bash

pushd ffmpeg

TARGET_OS=android

ANDROID_API_VERSION=24
NDK_TOOLCHAIN_ABI_VERSION=4.9

NDK_ABI='arm'
ANDROID_NDK_ROOT_PATH=~/android-dev/ndk_16
NDK_TOOLCHAIN_ABI='arm-linux-androideabi'
NDK_CROSS_PREFIX="${NDK_TOOLCHAIN_ABI}"
TOOLCHAIN_PREFIX=${BASEDIR}/toolchain-android
if [ ! -d "$TOOLCHAIN_PREFIX" ]; then
  ${ANDROID_NDK_ROOT_PATH}/build/tools/make-standalone-toolchain.sh --toolchain=${NDK_TOOLCHAIN_ABI}-${NDK_TOOLCHAIN_ABI_VERSION} --platform=android-${ANDROID_API_VERSION} --install-dir=${TOOLCHAIN_PREFIX}
fi
CROSS_PREFIX=${TOOLCHAIN_PREFIX}/bin/${NDK_CROSS_PREFIX}-
NDK_SYSROOT=${TOOLCHAIN_PREFIX}/sysroot

export PKG_CONFIG_LIBDIR="${TOOLCHAIN_PREFIX}/lib/pkgconfig"

CPU='cortex-a8'
HOST_PKG_CONFIG_PATH=`command -v pkg-config`

CFLAGS='-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all'
LDFLAGS='-Wl,-z,relro -Wl,-z,now -pie'

make clean

./configure \
--target-os="$TARGET_OS" \
--enable-cross-compile \
--cross-prefix="$CROSS_PREFIX" \
--arch="$NDK_ABI" \
--cpu="$CPU" \
--sysroot="$NDK_SYSROOT" \
--pkg-config="${HOST_PKG_CONFIG_PATH}" \
--enable-runtime-cpudetect \
--enable-version3 \
--enable-gpl \
--enable-x86asm \
--enable-pic \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-shared \
--enable-static \
--disable-indevs \
--enable-indev=lavfi \
--enable-indev=fbdev \
--enable-indev=android_camera \
--enable-indev=v4l2 \
--disable-outdevs \
--enable-outdev=fbdev \
--enable-outdev=v4l2 \
--enable-decoders \
--enable-encoders \
--enable-muxers \
--enable-demuxers \
--enable-parsers \
--enable-protocols \
--enable-filters \
--enable-hwaccels \
--enable-libx264 \
--enable-zlib \
--disable-network \
--enable-pthreads \
--prefix="${BASEDIR}/build/armeabi-v7a" \
--extra-cflags="-I${TOOLCHAIN_PREFIX}/include $CFLAGS" \
--extra-ldflags="-L${TOOLCHAIN_PREFIX}/lib $LDFLAGS" \
--extra-libs="-lm" \
--extra-cxxflags="$CXX_FLAGS" || exit 1


make -j4 && make install || exit 1

popd
