#!/bin/bash
################################################################################
# Fichier : installmp.sh
# Auteur  : Sébastien Beaugrand
# Date    : 12 Mai 2009
# Url     : http://www.chez.com/beaugrand/
################################################################################
# Les packages utilisés correspondent à la version 2009.1 de la Mandriva.
# Tous les fichiers doivent se trouver dans le répertoire désigné par "sources".
# Pour certains DVD il pourra être utile de faire : export DVDCSS_METHOD=title
################################################################################
machine=`uname -m`
if [ $machine = x86_64 ]; then
  arch=x86_64
  lib=lib64
else
  arch=i586
  lib=lib
fi
mplayer=mplayer
revision=-r29111
lame=lame-398-2
codecs=essential-20071007
libdvdcss=libdvdcss-1.2.10
libdvdread=libdvdread-0.9.7
lsdvd=lsdvd-0.16
libmpeg=${lib}mpeg2dec-devel-0.5.1-1mdv2009.1.$arch.rpm
libppm=${lib}netpbm-devel-10.35.59-1mdv2009.1.$arch.rpm
faac=faac-1.28
ffmpeg=ffmpeg
transcode=transcode-1.1.0
subtitleripper=subtitleripper-0.3-4
normalize=normalize-0.7.7

# user
user=`whoami`
if [ $user != "root" ]; then
  echo "you must be root"
  exit -1
fi
echo -n "user ? "
read user
home=/home/$user
sources=$home/install/mplayer
prefix=/usr
tmp=/root/tmp
mkdir -p $tmp

echo -n "packages ? (y/N) "
read ret
if [ "$ret" = y ]; then
  cd $sources;
  urpmi libxorg-x11-devel                   # pour mplayer
  urpmi automake libtool gcc-c++            # pour faac
  urpmi $libmpeg $libppm libpng-devel gocr  # pour transcode et subtitleripper
  ln -sf /usr/$lib/libnetpbm.so /usr/lib/libppm.so
fi

# lame
echo -n "lame ? (y/N) "
read ret
if [ "$ret" = y ]; then
  cd $tmp; tar xvzf $sources/$lame.tar.gz
  cd $lame; ./configure --exec-prefix=$prefix; make; make install
fi

# codecs
echo -n "codecs ? (y/N) "
read ret
if [ "$ret" = y ]; then
  mkdir -p $prefix/lib/codecs
  cd       $prefix/lib/codecs
  tar xvjf $sources/$codecs.tar.bz2
  mv $codecs/* .; rmdir $codecs
fi

# mplayer
echo -n "mplayer ? (y/N) "
read ret
if [ "$ret" = y ]; then
  echo -n "svn mplayer ($revision) ? (y/N) "
  read ret
  if [ "$ret" = y ]; then
    cd $tmp; svn $revision co svn://svn.mplayerhq.hu/mplayer/trunk mplayer
    echo -n "tar mplayer ? (Y/n) "
    read ret
    if [ "$ret" != n ]; then
      tar cvjf mplayer.tar.bz2 mplayer
    fi
  else
    cd $tmp; tar xvjf $sources/$mplayer.tar.bz2
  fi
  echo -n "patch ? (Y/n) "
  read ret
  if [ "$ret" != n ]; then
    patch -p0 -i $sources/mencoder_vol.patch
    patch -p0 -i $sources/mencoder_lp.patch
  fi
  cd $mplayer
  ./configure --prefix=$prefix; make; make install
fi

# config
echo -n "config ? (y/N) "
read ret
if [ "$ret" = y ]; then
  cd $home; mkdir -p      .mplayer
  cp $sources/config      .mplayer
  cp $sources/subfont.ttf .mplayer
  chown -R $user.$user    .mplayer
fi

# lsdvd
echo -n "lsdvd ? (y/N) "
read ret
if [ "$ret" = y ]; then
  cd $tmp; tar xvjf $sources/$libdvdcss.tar.bz2
  cd $libdvdcss;  ./configure --prefix=$prefix; make; make install
  cd $tmp; tar xvzf $sources/$libdvdread.tar.gz
  cd $libdvdread; ./configure --prefix=$prefix; make; make install
  cd $tmp; tar xvzf $sources/$lsdvd.tar.gz
  cd $lsdvd;
  cp configure configure.sav
  sed 's/#include <dvdread\/ifo_read.h>/#include <inttypes.h>\n#include <dvdread\/ifo_read.h>/g'\
  configure.sav > configure
  chmod 755 configure
  cp lsdvd.c lsdvd.c.sav
  sed 's/#include <dvdread\/ifo_read.h>/#include <inttypes.h>\n#include <dvdread\/ifo_read.h>/g'\
  lsdvd.c.sav > lsdvd.c
  ./configure --prefix=$prefix; make; make install
fi

# faac
echo -n "faac ? (y/N) "
read ret
if [ "$ret" = y ]; then
  cd $tmp; tar xvzf $sources/$faac.tar.gz
  cd $faac
  ./bootstrap
  ./configure --prefix=$prefix; make; make install
fi

# ffmpeg
echo -n "ffmpeg ? (y/N) "
read ret
if [ "$ret" = y ]; then
  echo -n "svn ffmpeg ? (y/N) "
  read ret
  if [ "$ret" = y ]; then
    cd $tmp; svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
    echo -n "tar ffmpeg ? (Y/n) "
    read ret
    if [ "$ret" != n ]; then
      tar cvzf ffmpeg.tar.gz ffmpeg
    fi
    cd ffmpeg
  else
    cd $tmp; tar xvzf $sources/$ffmpeg.tar.gz
    cd $ffmpeg
  fi
  ./configure --prefix=$prefix --enable-shared --enable-libfaac
  make; make install
fi

# transcode
echo -n "transcode ? (y/N) "
read ret
if [ "$ret" = y ]; then
  #sed 's/\ __png/\/\/\__png/' /usr/include/pngconf.h > ~/tmp/pngconf.h
  #sed 's/\ __don/\/\/\__don/' ~/tmp/pngconf.h > /usr/include/pngconf.h

  mkdir -p $home/tmp; cd $home/tmp
  tar xvjf $sources/$transcode.tar.bz2
  rm -fr transcode
  mv $transcode transcode
  cd transcode; ./configure --prefix=$prefix --disable-libjpeg; make

  mkdir -p contrib/subrip
  cd contrib/subrip
  tar xvzf $sources/$subtitleripper.tgz
  mv subtitleripper/* .; rmdir subtitleripper
  make
  cd $home/tmp; chown -R $user.$user transcode
fi

# normalize
echo -n "normalize ? (y/N) "
read ret
if [ "$ret" = y ]; then
  cd $tmp; tar xvzf $sources/$normalize.tar.gz
  cd $normalize; ./configure --prefix=/usr; make; make install
fi

# Fin du fichier installmp.sh