#!/bin/bash
# Script to make a xmms .tcel extension from source
# Requires the compiletc.tce, Xorg-dev, glib1.tcel, gtk1.tcel
# OSS.tcel and optionally the ogg-vorbis.tcel extension.
# XMMS is GPL licensed.

export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti"
export LC_ALL="C"
set -e

NAME=xmms
VERSION=1.2.11
DOWNLOAD=http://repository.slacky.eu/slackware-12.0/multimedia/xmms/1.2.11/src
DOWNLOAD1=http://download.lunar-linux.org/lunar/patches
SOURCE=$NAME-$VERSION.tar.gz
SOURCE1=xmms_doublesize.patch
MD5SUM=a5d7e825c4605554b79f8acf986c4cb2
MD5SUM1=a962f403675d1316289cbde702f9ad4e
TMPDIR=/usr/local/"$NAME"21654
PKG="$TMPDIR"/pkg
DEV="$TMPDIR"/dev
LIST="$TMPDIR"/"$NAME".list
LIST1="$TMPDIR"/"$NAME".list1
SRCDIR=/tmp
DIALOG=dialog

download() {
cd "$SRCDIR"
if [ -e "$SOURCE" ]; then
  if [ $(md5sum "$SOURCE" | cut -c1-32) != "$MD5SUM" ]; then
    rm "$SOURCE"
  fi
fi
if [ ! -e "$SOURCE" ]; then
  wget "$DOWNLOAD"/"$SOURCE"
fi
if [ $(md5sum "$SOURCE" | cut -c1-32) = "$MD5SUM" ]; then
  echo "md5sum passed."
else
  echo "Download failed. aborting"
  exit 1;
fi
}

download1() {
cd "$SRCDIR"
if [ -e "$SOURCE1" ]; then
  if [ $(md5sum "$SOURCE1" | cut -c1-32) != "$MD5SUM1" ]; then
    rm "$SOURCE1"
  fi
fi
if [ ! -e "$SOURCE1" ]; then
  wget "$DOWNLOAD1"/"$SOURCE1"
fi
if [ $(md5sum "$SOURCE1" | cut -c1-32) = "$MD5SUM1" ]; then
  echo "md5sum passed."
else
  echo "Download failed. aborting"
  exit 1;
fi
}


build_source() {
tar xzvf "$SRCDIR"/"$SOURCE" -C "$TMPDIR"
cd "$TMPDIR"/"$NAME"-"$VERSION"
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig
export CPPFLAGS="-I/usr/local/include"
patch -p1 < "$SRCDIR"/"$SOURCE1"
sed -i 's:-lXxf86vm::g' configure
./configure --prefix=/usr/local --disable-mikmod --disable-nls --enable-oss --disable-esd --disable-opengl --disable-alsatest


make
make DESTDIR="$PKG" install
rm -r "$PKG"/usr/local/man
cd "$PKG"
find . | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null
}

split_extension() {
mv "$PKG"/usr/local/share/aclocal "$DEV"/usr/local/share/
mv "$PKG"/usr/local/bin/xmms-config "$DEV"/usr/local/bin/
mv "$PKG"/usr/local/include "$DEV"/usr/local/
mv "$PKG"/usr/local/lib/{*.a,*.la} "$DEV"/usr/local/lib/
mv "$PKG"/usr/local/lib/xmms/Visualization/*.la "$DEV"/usr/local/lib/xmms/Visualization/
mv "$PKG"/usr/local/lib/xmms/General/*.la "$DEV"/usr/local/lib/xmms/General/
mv "$PKG"/usr/local/lib/xmms/Effect/*.la "$DEV"/usr/local/lib/xmms/Effect/
mv "$PKG"/usr/local/lib/xmms/Input/*.la "$DEV"/usr/local/lib/xmms/Input/
mv "$PKG"/usr/local/lib/xmms/Output/*.la "$DEV"/usr/local/lib/xmms/Output/
}



make_extension() {
cd "$PKG"
mkdir -p "$PKG"/tmp/tce.menu
echo " [exec] (XMMS) {/usr/local/bin/xmms}" > "$PKG"/tmp/tce.menu/xmms-1.2.11
chown 1001.50 "$PKG"/tmp/tce.menu/xmms-1.2.11
find . -not -type d > "$LIST"
tar -T "$LIST" -czvf /home/tc/"$NAME"-"$VERSION".tcel
cd "$DEV"
find . -not -type d > "$LIST1"
tar -T "$LIST1" -czvf /home/tc/"$NAME"-"$VERSION"-devs.tce
}

if [ -e "$TMPDIR" ]; then
  rm -rf "$TMPDIR" 
fi
mkdir -p "$PKG" || exit 1
mkdir -p "$DEV"/usr/local/{lib/xmms/{Visualization,General,Effect,Input,Output},share,bin} || exit 1
download || exit 1
download1 || exit 1
build_source || exit 1
split_extension || exit 1
make_extension || exit 1
echo "Done."