#!/bin/bash

# Slackware build script for stardict-tools
# Written by Cezary M. Kruk (c.kruk@bigfoot.com)

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=stardict-tools
VERSION=${VERSION:-3.0.6.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT

cd $TMP
rm -rf stardict-$VERSION
tar -xvf $CWD/stardict-$VERSION-github-2.tar.?z*
cd stardict-$VERSION
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

sed -i 's/, enchant/, enchant-2/' dict/configure.ac
sed -i '/AM_GCONF_SOURCE_2/d' dict/configure.ac
sed -i '/GNOME_DOC_INIT/d' dict/configure.ac
sed -i '/gnome-doc-utils.make/d' dict/help/Makefile.am

./autogen.sh
( cd dict ; ./autogen.sh )

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS -std=c++11" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --disable-gucharmap \
  --disable-festival \
  --disable-flite \
  --disable-espeak \
  --disable-gnome-support \
  --disable-schemas-install \
  --disable-updateinfo \
  --disable-static \
  --build=$ARCH-slackware-linux

sed -e 's/ -shared / -Wl,-O1,--as-needed\0/g' -i {dict,lib,tools}/libtool
make

mkdir -p $PKG/usr/bin
cd tools/src
cp -a \
  21shiji   dictbuilder        exc2i2e      kingsoft       soothill              wikipedia       \
  21tech    dictd2dic          fest2dict    mova           stardict-editor       wikipediaImage  \
  KangXi    directory2dic      frgb2utf     myspell2dic    stardict2txt          wordnet         \
  Unihan    directory2treedic  gmx2utf      olddic2newdic  wquick2dic      \
  babylon   downloadwiki       i2e2dict     ooo2dict       wubi            \
  jdictionary  oxford2dic     tabfile               xiaoxuetang-ja  \
  buddhist  duden              jpgb2utf     powerword      tabfile2sql           xmlinout        \
  cedict    ec50               kanjidic2    pydict2dic     ydp2dict        \
  degb2utf  edict              kdic         rucn           treedict2dir          \
  $PKG/usr/bin
cd -

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS  COPYING  ChangeLog INSTALL README $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/examples
cd tools/src
cp -a Po2Tab.zip  example.ifo  example_treedict.tar.bz2  \
  $PKG/usr/doc/$PRGNAM-$VERSION/examples
cd -

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/scripts
cd tools/src
cp -a \
  KangXiZiDian-djvu2tiff.py  hanzim2dict.py         makevietdict.py   ooo.sh             \
  i2e.sh                 mkguangyunst.py   parse-oxford.perl  \
  exc.sh                     jm2stardict.py         myspell.sh        stmerge.py         \
  extractKangXi.py           lingea-trd-decoder.py  ncce2stardict.pl  uyghur2dict.py     \
  $PKG/usr/doc/$PRGNAM-$VERSION/scripts
cd -

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/contrib
cp $CWD/sd $CWD/README.sd $PKG/usr/doc/$PRGNAM-$VERSION/contrib

cp $CWD/README.StarDict $PKG/usr/doc/$PRGNAM-$VERSION

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE