#!/bin/sh
# Set initial variables:

PKGNAM=xpaint
VERSION=${VERSION:-2.7.8.1}
ARCH=${ARCH:-x86_64}
BUILD=${BUILD:-1}
DISTRO=${DISTRO:-slamd64}

if [ $DISTRO = slackware ]; then
	PKGARCH=$ARCH
else
	PKGARCH=${ARCH}_${DISTRO}
fi

if [ $DISTRO = slamd64 ]; then
	LIBSUFFIX=64
	SLKLDFLAGS="-L/usr/lib64"
else
	LIBSUFFIX=
	SLKLDFLAGS=
fi


CWD=$(pwd)
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi
PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $PKG

if [ "$ARCH" = "i386" ]; then
  SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
fi

cd $TMP
rm -rf ${PKGNAM}-${VERSION}
tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
cd ${PKGNAM}-$VERSION

#zcat ${CWD}/xpaint_2.7.8.1-1.2.diff.gz | patch -p1 || exit 1

# Make sure ownerships and permissions are sane:
chown -R root:root .
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 {} \;

CFLAGS=$SLKCFLAGS \
./configure \
  --prefix=/usr \
  --mandir=/usr/man \
  --build=$ARCH-$DISTRO-linux

make -j10 || exit 1
make install DESTDIR=$PKG 
make install.man DESTDIR=$PKG 

( cd bitmaps
  mkdir -p ${PKG}/usr/include/X11/bitmaps
  find . -name "*.xbm" -exec cp {} ${PKG}/usr/include/X11/bitmaps \;
  mkdir -p ${PKG}/usr/include/X11/pixmaps
  find . -name "*.xpm" -exec cp {} ${PKG}/usr/include/X11/pixmaps \;
  mkdir -p /install 
)

if [ "$LIBSUFFIX" != "" ]; then
  mv $PKG/usr/lib $PKG/usr/lib$LIBSUFFIX
fi

# Strip binaries:
( 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
)

# Compress and link manpages, if any:
if [ -d $PKG/usr/man ]; then
  ( cd $PKG/usr/man
    for manpagedir in $(find . -type d -name "man*") ; do
      ( cd $manpagedir
        for eachpage in $( find . -type l -maxdepth 1) ; do
          ln -s $( readlink $eachpage ).gz $eachpage.gz
          rm $eachpage
        done
        gzip -9 *.*
      )
    done
  )
fi

# Compress info files, if any:
if [ -d $PKG/usr/info ]; then
  ( cd $PKG/usr/info
    rm -f dir
    gzip -9 *
  )
fi

# Add a documentation directory:
mkdir -p ${PKG}/usr/doc/xpaint-$VERSION
cp -a \
  README README.PNG README.old TODO \
  ${PKG}/usr/doc/xpaint-$VERSION

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

cd $PKG
makepkg -l y -c n ../${PKGNAM}-$VERSION-$PKGARCH-$BUILD.tgz