#!/bin/sh
# Heavily based on the Slackware 13.0 SlackBuild
# http://www.openjpeg.org
# Packager Andrea Sciucca ( gohanz at infinito.it)
# http://www.slacky.it
#
# Further edited by Elrod to tend the issue of placing the libraries in /usr/lib in x86_64 systems
# http://www.thomaselrod.com/
#
# Exit on most errors
set -e 


CWD=`pwd`
TMP=${TMP:-/tmp/tgz}
PKG=$TMP/package/openjpeg
NAME=openjpeg
VERSION=1.3
PACKAGE_VERSION_SOURCE=v1_3
ARCH=${ARCH:-x86_64}
BUILD=3as

SOURCE=http://www.openjpeg.org/$NAME'_'$PACKAGE_VERSION_SOURCE.tar.gz

if [ ! -e $NAME'_'$PACKAGE_VERSION_SOURCE.tar.gz ]; then
  wget -c $SOURCE
fi

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"; SLKLDFLAGS=""; LIBDIRSUFFIX=""; CHOST=i486
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"; SLKLDFLAGS=""; LIBDIRSUFFIX=""; CHOST=i486
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"; SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
fi

if [ ! -d $TMP ]; then
 mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
 mkdir -p $PKG
fi

cd $TMP
# Elrod: Added this just to make life easier
if [ -e OpenJPEG'_'$PACKAGE_VERSION_SOURCE ]; then
 rm -rf OpenJPEG'_'$PACKAGE_VERSION_SOURCE
fi

tar xvzf $CWD/$NAME'_'$PACKAGE_VERSION_SOURCE.tar.gz

echo -e "\E[0;32m+---------------------------+\E[0;0m"
echo -e "\E[0;32m| Start SlackBuild $NAME |\E[0;0m"
echo -e "\E[0;32m+---------------------------+\E[0;0m"

cd OpenJPEG'_'$PACKAGE_VERSION_SOURCE

find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 600 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
find . -perm 400 -exec chmod 644 {} \;
find . -perm 440 -exec chmod 644 {} \;
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 511 -exec chmod 755 {} \;
find . -perm 711 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;

chown -R root:root .

# Compile the package
 mkdir build 
 cd build 
cmake .. \
 -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
 -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
 -DPROJECT_SOURCE_DIR="$TMP/OpenJPEG'_'$PACKAGE_VERSION_SOURCE" \
 -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=/usr  \
 -DINCLUDE_INSTALL_DIR=/usr/include \
    -DLIB_SUFFIX=${LIBDIRSUFFIX} \
    -DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \
 -DBUILD_EXAMPLES:BOOL=ON \
 -DBUILD_SHARED_LIBS:BOOL=ON \
 -DCMAKE_LIBRARY_PATH=/usr/lib${LIBDIRSUFFIX} \
 -DSET_TARGET_PROPERTIES=${LIBDIRSUFFIX}
 make  
 make install DESTDIR=$PKG  

cd $TMP/OpenJPEG'_'$PACKAGE_VERSION_SOURCE

cp $PKG/usr/include/openjpeg/openjpeg.h $PKG/usr/include


mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp -a \
   README* \
  $PKG/usr/doc/$NAME-$VERSION


( 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
  find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null
)



mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/slack-desc > $PKG/usr/doc/$NAME-$VERSION/slack-desc
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild




cd $PKG

# Elrod: Added this part here becuase I could not get the Cmake /usr/lib64 stuff to work. It would all still go to /usr/lib
# Elrod: I even tried this stuff in cmake, but I know nothing of this subject. Any better method would be appreciated
# Elrod: -DCMAKE_LIBRARY_PATH=/usr/lib${LIBDIRSUFFIX} \
# Elrod: -DSET_TARGET_PROPERTIES=${LIBDIRSUFFIX}
if [ "$ARCH" = "x86_64" ] && [ -e $PKG/usr/lib ]; then
  mv $PKG/usr/lib $PKG/usr/lib64
fi
# Elrod: End of Elrod's stuff

requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.txz


if [ "$1" = "--cleanup" ]; then
 rm -rf $TMP
fi
