#!/bin/bash
#
#  MPlayer.SlackBuild 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 of the License, or any later version.
#
#  MPlayer.SlackBuild 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
#  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
#  Place - Suite 330, Boston, MA 02111-1307, USA
#
# slackbuild script for MPlayer
# by rhatto at riseup.net
#
# Modified: Alexandre aka xdoctor
# Date: 11/03/2007
# Acrescimo do download de Skin e instala��o

if [ -s "slack-required" ]; then
  echo Recomended and required packages for building MPlayer are:
  cat slack-required | sed -e 's/^/\t/'
  if [ "$INTERACT" != "no" ]; then
    echo If you dont have those installed, press Ctrl-C. Otherwise, hit ENTER.
    read crap
#  else
#    echo Sleeping 3 seconds...
#    sleep 3
  fi
fi

CWD="`pwd`"

if [ -f ~/.slackbuildrc ]; then
  source ~/.slackbuildrc
elif [ -f /etc/slackbuildrc ]; then
  source /etc/slackbuildrc
fi

# default package settings
PACKAGE="MPlayer"
ARCH=${ARCH:=i486}
VERSION=${VERSION:=1.0rc2}
BUILD=${BUILD:=2rha}
SRC_DIR=${SRC:=$CWD}
TMP=${TMP:=/tmp}
REPOS=${REPOS:=$TMP}

# default skin settings
SKIN="Blue"
VERSION_SKIN="1.7"
SKIN_EXT="bz2"
PACKAGE_SKIN=${PACKAGE_SKIN:=$SKIN-$VERSION_SKIN.tar.$SKIN_EXT}

# -------  error codes for createpkg  --------------
ERROR_WGET=31;      ERROR_MAKE=32;      ERROR_INSTALL=33
ERROR_MD5=34;       ERROR_CONF=35;      ERROR_HELP=36
ERROR_TAR=37;       ERROR_MKPKG=38;     ERROR_GPG=39
ERROR_PATCH=40

if [ "$ARCH" == "x86_64" ]; then
  LIBDIR=/usr/lib64
else
  LIBDIR=/usr/lib
fi

# URL do MPlayer
RTOOL="wget"
PACKAGE_EXT="bz2"
SRC="$PACKAGE-$VERSION.tar.$PACKAGE_EXT"
URL="http://www1.mplayerhq.hu/MPlayer/releases/$SRC"

# URL do Skin do MPlayer
URL_SKIN="http://www.mplayerhq.hu/MPlayer/skins/$SKIN-$VERSION_SKIN.tar.$SKIN_EXT"

SRC_DIR="$SRC_DIR/$PACKAGE"
mkdir -p $SRC_DIR

# Download do MPlayer
if [ "$RTOOL" == "wget" ]; then
 if [ ! -f "$SRC_DIR/$SRC" ]; then
   wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET
 fi
fi

# Download do Skin
if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$PACKAGE_SKIN" ]; then
  wget "$URL_SKIN" -O "$SRC_DIR/$PACKAGE_SKIN" || exit 
fi

TMP="$TMP/$PACKAGE"
rm -rf $TMP
mkdir -p $TMP
cd $TMP

tar xvf $SRC_DIR/$SRC || exit $ERROR_TAR
cd $PACKAGE-$VERSION

if [ -f "$CWD/$PACKAGE-$VERSION.diff" ]; then
  patch -p0 < $CWD/$PACKAGE-$VERSION.diff || exit $ERROR_PATCH
fi

if [ "$ARCH" == "i586" ] || [ "$ARCH" == "i686" ]; then
  EXTRA_ARGS=" --enable-qtx"
fi

# add --enable-runtime-cpudetection for package creation!
# removing ivtv as for slack 12.1 it`s not compiling
./configure --disable-ivtv --prefix=/usr --libdir=$LIBDIR --confdir=/etc --language=pt_BR --enable-largefiles --enable-gui --enable-real $EXTRA_ARGS || exit $ERROR_CONF
make || exit $ERROR_MAKE
echo "$TMP/package-$PACKAGE/$PACKAGE"
make DESTDIR=$TMP/package-$PACKAGE/$PACKAGE install || exit $ERROR_INSTALL

CWD="`pwd`"
echo $CWD

cd $TMP/package-$PACKAGE/$PACKAGE

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

mkdir install
cat << EOF > install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in.  You must
# make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':'.

       |-----handy-ruler-----------------------------------------------------|
MPlayer: MPlayer (A Movie Player)
MPlayer:
MPlayer: MPlayer is a movie and animation player that supports a wide range
MPlayer: of codecs and file formats, including MPEG 1/2/4, DivX 3/4/5, Windows
MPlayer: Media 7/8/9, RealAudio/Video up to 9, Quicktime 5/6, and Vivo 1/2.
MPlayer: It has many MMX/SSE(2)/3Dnow(Ex) optimized native audio and video
MPlayer: codecs, but allows using XAnim's and RealPlayer's binary codec plugins,
MPlayer: and Win32 codec DLLs. It has basic VCD/DVD playback functionality,
MPlayer: including DVD subtitles, but supports many text-based subtitle formats
MPlayer: too. For video output, nearly every existing interface is supported.
MPlayer: 
EOF

# docs
mkdir -p usr/doc/$PACKAGE-$VERSION

for file in AUTHORS ChangeLog Copyright DOCS LICENSE README TOOLS; do
  cp $CWD/$file* usr/doc/$PACKAGE-$VERSION/
done

# Extracao e criacao da pasta para Skin
# criacao do diretorio
SKIN_DIR=${SKIN_DIR:=$TMP/package-$PACKAGE/$PACKAGE/usr/share/mplayer/skins}
mkdir -p usr/share/mplayer/skins
cd $SKIN_DIR
tar jxvf $SRC_DIR/$PACKAGE_SKIN
mv $SKIN default
cd $TMP/package-$PACKAGE/$PACKAGE

makepkg -c y -l y $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG

if [ "$CLEANUP" == "yes" ]; then
  rm -rf $TMP
fi