#!/bin/bash

# Packager : Jean-Philippe Guillemin <jp.guillemin@free.fr>

NAME='ffmpeg'
tarball=$(ls ${NAME}*tar*);VERSION=${tarball%.*};VERSION=${VERSION%.*}; VERSION=${VERSION##*-}
ARCH=${ARCH:-x86_64}
case "$ARCH" in
  i486)      SLKCFLAGS="-O2 -march=i486 -mtune=i686"
             SLKLDFLAGS=""
             LIBDIRSUFFIX=""
             ARCHOPTS=""
             ;;
  x86_64)    SLKCFLAGS="-O2 -fPIC"
             SLKLDFLAGS="-L/usr/lib64"
             LIBDIRSUFFIX="64"
             ARCHOPTS="--arch=x86_64 --enable-pic"
             ;;
esac

export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
export LDFLAGS="$SLKLDFLAGS"

BUILD='1'

PKGBUILD=$(pwd)

package="$NAME-$VERSION-$ARCH-$BUILD"

PKG="/tmp/$package"
rm -rf $PKG
rm -f $PKG.tgz
mkdir -p $PKG

TMP="$PKGBUILD/tmp"

cd $PKGBUILD

sources="$NAME"


for source in $sources ; do
  echo -n "Checking $source : "
  cd $PKGBUILD
  tarball="$(ls ${source}*tar* 2>/dev/null)"
  if [ "$tarball" == "" ] ; then
    echo "not found :("
    exit 1
  else
    echo "found $tarball :)"
  fi
done

for source in $sources ; do

  cd $PKGBUILD
  tarball="$(ls ${source}*tar* )"

  rm -rf $TMP
  mkdir -p $TMP
  
  if [ "$(echo $tarball | grep ".tar.bz2" )" ]; then
      tar jxvf $tarball -C $TMP
  elif [ "$(echo $tarball | grep ".tar.gz" )" ]; then
      tar zxvf $tarball -C $TMP
  fi
  
  SRC=$(ls -d $TMP/*/)

  
    cd $SRC
    #EXTRACONFIG="--enable-libmp3lame"
    chown -R root.root .
    find . -perm 777 -exec chmod 755 {} \;
    find . -perm 775 -exec chmod 755 {} \;
    find . -perm 666 -exec chmod 644 {} \;
    find . -perm 664 -exec chmod 644 {} \;


    ./configure --prefix=/usr \
	--libdir=/usr/lib${LIBDIRSUFFIX} \
	--shlibdir=/usr/lib${LIBDIRSUFFIX} \
	--mandir=/usr/man \
	--disable-static \
	--enable-shared \
	--enable-runtime-cpudetect \
	--enable-gpl \
	--enable-pthreads \
	--enable-x11grab \
	--enable-libspeex \
	--enable-libtheora \
	--enable-libvorbis \
	--enable-libx264 \
	--enable-libxvid \
	--enable-libschroedinger \
	--enable-postproc \
	--disable-indev=jack \
	--disable-outdev=jack \
	$ARCHOPTS \
    $EXTRACONFIG \
    --disable-libmp3lame
      
    make -j6 || exit 1
    # make install
    
    make install DESTDIR=$PKG

    mkdir -p $PKG/usr/doc/$(basename $SRC)
    cp -f AUTHORS INSTALL README TODO NEWS ChangeLog $PKG/usr/doc/$(basename $SRC)   

    # Striptease
    ( cd $PKG
      find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
      find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null

	  for mandir in $(find ./usr/share/man -name man* -type d) ; do
		mkdir -p ./usr/man/$(basename $mandir)
        mv $mandir/*.? ./usr/man/$(basename $mandir)
      done	  
	  rm -rf ./usr/share/man
	  for mandir in $(find . -name man -type d) ; do
        if [ -d $mandir ]; then
          ( cd $mandir
            find . -type f -name "*.?" -exec gzip -9 {} \;
          )
        fi
      done
    )
done


cd $PKGBUILD

# redundant , if any
rm -rf $PKG/usr/share/doc


# slack-desc
mkdir -p $PKG/install
cat > $PKG/install/slack-desc << END
$NAME: $NAME - multimedia player, server and encoder
$NAME:
$NAME: $NAME is a complete solution to record, convert and 
$NAME: stream audio and video. It includes libavcodec, the leading 
$NAME: audio/video codec library.
$NAME: 
$NAME:
$NAME:
$NAME:
$NAME:
$NAME:
END

mkdir -p $PKG/usr/src/$NAME-$VERSION
cat $PKGBUILD/$NAME.SlackBuild > $PKG/usr/src/$NAME-$VERSION/$NAME.SlackBuild

cd $PKG
makepkg -l y -c n $PKG.txz

# Cleanup
cd $PKGBUILD
rm -rf $PKG
rm -rf $TMP
