#!/bin/sh

################################################################################
#      This file is part of OpenELEC - http://www.openelec.tv
#      Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
#  This Program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2, or (at your option)
#  any later version.
#
#  This Program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with OpenELEC.tv; see the file COPYING.  If not, write to
#  the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
#  http://www.gnu.org/copyleft/gpl.html
################################################################################

. config/options $1

if [ "$DEBUG" = yes ]; then
  FFMPEG_DEBUG="--enable-debug --disable-stripping"
else
  FFMPEG_DEBUG="--disable-debug --enable-stripping"
fi

if [ "$OPTIMIZATIONS" = size ]; then
  FFMPEG_OPTIM="--disable-small"
else
  FFMPEG_OPTIM="--disable-small"
fi

if [ "$CRYSTALHD" = yes ]; then
# disabled, we use XBMC's internal solution
  FFMPEG_CRYSTALHD="--disable-crystalhd"
else
  FFMPEG_CRYSTALHD="--disable-crystalhd"
fi

if [ "$VAAPI" = yes ]; then
  FFMPEG_VAAPI="--enable-vaapi"
else
  FFMPEG_VAAPI="--disable-vaapi"
fi

if [ "$VDPAU" = yes ]; then
  FFMPEG_VDPAU="--enable-vdpau"
else
  FFMPEG_VDPAU="--disable-vdpau"
fi

if [ "$XVBA" = yes ]; then
  FFMPEG_XVBA="--enable-xvba"
else
  FFMPEG_XVBA="--disable-xvba"
fi

case "$TARGET_ARCH" in
  arm)
      FFMPEG_CPU=""
      FFMPEG_TABLES="--enable-hardcoded-tables"
      FFMPEG_PIC="--enable-pic"
  ;;
  i?86)
      FFMPEG_CPU=""
      FFMPEG_TABLES="--disable-hardcoded-tables"
      FFMPEG_PIC="--disable-pic"
  ;;
  x86_64)
      FFMPEG_CPU=""
      FFMPEG_TABLES="--disable-hardcoded-tables"
      FFMPEG_PIC="--enable-pic"
  ;;
esac

case "$TARGET_FPU" in
  neon*)
      FFMPEG_FPU="--enable-neon"
  ;;
  vfp*)
      FFMPEG_FPU=""
  ;;
  *)
      FFMPEG_FPU=""
  ;;
esac

export pkg_config="$ROOT/$TOOLCHAIN/bin/pkg-config"

# ffmpeg fails building with LTO support
  strip_lto

#LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")"

cd $PKG_BUILD/
./configure --prefix=/usr \
            --cpu=$TARGET_CPU \
            --arch=$TARGET_ARCH \
            --enable-cross-compile \
            --cross-prefix=$TARGET_PREFIX \
            --sysroot=$SYSROOT_PREFIX \
            --sysinclude="$SYSROOT_PREFIX/usr/include" \
            --target-os="linux" \
            --nm="$NM" \
            --ar="$AR" \
            --as="$CC" \
            --cc="$CC" \
            --ld="$CC" \
            --host-cc="$HOST_CC" \
            --host-cflags="$HOST_CFLAGS" \
            --host-ldflags="$HOST_LDFLAGS" \
            --host-libs="-lm" \
            --extra-cflags="$CFLAGS" \
            --extra-ldflags="$LDFLAGS" \
            --extra-libs="" \
            --extra-version="" \
            --build-suffix="" \
            --disable-static \
            --enable-shared \
            --enable-gpl \
            --disable-version3 \
            --disable-nonfree \
            --enable-logging \
            --disable-doc \
            $FFMPEG_DEBUG \
            $FFMPEG_PIC \
            --enable-optimizations \
            --disable-extra-warnings \
            --disable-ffprobe \
            --disable-ffplay \
            --disable-ffserver \
            --enable-ffmpeg \
            --enable-avdevice \
            --enable-avcodec \
            --enable-avformat \
            --enable-swscale \
            --enable-postproc \
            --enable-avfilter \
            --disable-devices \
            --enable-pthreads \
            --disable-w32threads \
            --disable-x11grab \
            --enable-network \
            --disable-gray \
            --enable-swscale-alpha \
            --enable-fastdiv \
            $FFMPEG_OPTIM \
            --enable-aandct \
            --enable-dct \
            --enable-fft \
            --enable-golomb \
            --enable-huffman \
            --enable-lpc \
            --enable-mdct \
            --enable-rdft \
            $FFMPEG_CRYSTALHD \
            $FFMPEG_VAAPI \
            $FFMPEG_VDPAU \
            $FFMPEG_XVBA \
            --disable-dxva2 \
            --enable-runtime-cpudetect \
            $FFMPEG_TABLES \
            --disable-memalign-hack \
            --disable-encoders \
            --enable-encoder=ac3 \
            --enable-encoder=aac \
            --disable-decoder=mpeg_xvmc \
            --enable-hwaccels \
            --disable-muxers \
            --enable-muxer=spdif \
            --enable-muxer=adts \
            --enable-demuxers \
            --enable-parsers \
            --enable-bsfs \
            --enable-protocol=http \
            --disable-indevs \
            --disable-outdevs \
            --enable-filters \
            --disable-avisynth \
            --enable-bzlib \
            --disable-frei0r \
            --disable-libopencore-amrnb \
            --disable-libopencore-amrwb \
            --disable-libopencv \
            --disable-libdc1394 \
            --disable-libdirac \
            --disable-libfaac \
            --disable-libfreetype \
            --disable-libgsm \
            --disable-libmp3lame \
            --disable-libnut \
            --disable-libopenjpeg \
            --disable-librtmp \
            --disable-libschroedinger \
            --disable-libspeex \
            --disable-libtheora \
            --disable-libvo-aacenc \
            --disable-libvo-amrwbenc \
            --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis \
            --disable-libvpx \
            --disable-libx264 \
            --disable-libxavs \
            --disable-libxvid \
            --disable-mlib \
            --enable-zlib \
            --enable-asm \
            --disable-altivec \
            $FFMPEG_CPU \
            $FFMPEG_FPU \
            --disable-iwmmxt \
            --disable-mmi \
            --disable-vis \
            --enable-yasm \
            --disable-sram \
            --disable-symver \

make V=1
$MAKEINSTALL
