#!/bin/sh

# $Id: wine.SlackBuild,v 1.56 2010/05/17 16:40:00 root Exp root $
# Upgraded by Simone Giustetti - (studiosg AT giustetti DOT net)
#
# Copyright 2006-2009  Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# -----------------------------------------------------------------------------
# Slackware SlackBuild script
# ===========================
# By:        Eric Hameleers <alien@slackware.com>
# For:       wine
# Descr:     Wine Is Not an Emulator
# URL:       http://winehq.com/
# Needs:     fontforge (builds better fonts when compiling wine)
# Changelog:
# 0.9.23-1:   24/Oct/2006 by Eric Hameleers <alien@slackware.com>
#            * Initial build.
# 0.9.25-1:   14/nov/2006 by Eric Hameleers <alien@slackware.com>
# 0.9.30-1:   30/jan/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.31-1:   17/feb/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.32-1:   02/mar/2007 by Eric Hameleers <alien@slackware.com>
#            * Update. I wasn't so happy with 0.9.31, it would not run HL2
#              anywhere near reliably.
# 0.9.33-1:   20/mar/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.34-1:   03/apr/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.35-1:   15/apr/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.36-1:   29/apr/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.37-1:   12/may/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.38-1:   04/jun/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.39-1:   17/jun/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.41-1:   24/jul/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.43-1:   14/aug/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.44-1:   25/aug/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.45-1:   15/sep/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.46-1:   03/oct/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.47-1:   13/oct/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.48-1:   29/oct/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.49-1:   13/nov/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.50-1:   02/dec/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.51-1:   19/dec/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.52-1:   30/dec/2007 by Eric Hameleers <alien@slackware.com>
# 0.9.53-1:   12/jan/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.54-1:   28/jan/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.55-1:   10/feb/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.56-1:   23/feb/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.57-1:   14/mar/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.58-1:   22/mar/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.59-1:   05/apr/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.60-1:   21/apr/2008 by Eric Hameleers <alien@slackware.com>
# 0.9.61-1:   06/may/2008 by Eric Hameleers <alien@slackware.com>
# 1.0.rc1-1:  11/may/2008 by Eric Hameleers <alien@slackware.com>
# 1.0.rc2-1:  26/may/2008 by Eric Hameleers <alien@slackware.com>
# 1.0.rc3-1:  02/jun/2008 by Eric Hameleers <alien@slackware.com>
# 1.0.rc4-1:  07/jun/2008 by Eric Hameleers <alien@slackware.com>
# 1.0-1:      18/jun/2008 by Eric Hameleers <alien@slackware.com>
#             * Yeah!
# 1.1.0-1:    04/jul/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.2-1:    26/jul/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.3-1:    30/aug/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.4-1:    09/sep/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.5-1:    24/sep/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.6-1:    13/oct/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.7-1:    27/oct/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.9-1:    21/nov/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.10-1:   06/dec/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.11-1:   22/dec/2008 by Eric Hameleers <alien@slackware.com>
# 1.1.22-1:   28/may/2009 by Eric Hameleers <alien@slackware.com>
# 1.1.24-1:   22/jun/2009 by Eric Hameleers <alien@slackware.com>
# 1.1.29-1:   14/sep/2009 by Eric Hameleers <alien@slackware.com>
# 1.1.39-1:   23/feb/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.1.40-1:   10/mar/2010 by Simone Giustetti <studiosg@giustetti.net> 
# 1.1.41-1:   22/mar/2010 by Simone Giustetti <studiosg@giustetti.net> 
# 1.1.42-1:   06/apr/2010 by Simone Giustetti <studiosg@giustetti.net> 
# 1.1.43-1:   19/apr/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.1.44-1:   07/may/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.1.44-2:   13/may/2010 by Simone Giustetti <studiosg@giustetti.net>
#             Let's try to have a working 64 bit Wine + Wow ;) .
# 1.2-rc1:    24/may/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2-rc2:    01/jun/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2-rc3:    14/jun/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2-rc4:    21/jun/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2-rc5:    26/jun/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2-rc6:    05/jul/2010 by Simone Giustetti <studiosg@giustetti.net>
#             *.xpm icons disappeared. Removed the menu' entry creation.
# 1.2-rc7:    12/jul/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2.0:      19/jul/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.0:      02/aug/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.1:      23/aug/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.2:      08/sep/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.3:      20/sep/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.4:      04/oct/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2.1:      12/oct/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.5:      22/oct/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.6:      02/Nov/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.7:      15/Nov/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.7-2:    17/Nov/2010 by Simone Giustetti <studiosg@giustetti.net>
#             Compiled wow64 without gstreamer which introduced a
#             segmentation fault. The 32 bit package seems to work
#             fine instead.
# 1.3.8:      29/Nov/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.2.2:      09/Dec/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.9:      12/Dec/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.10:     26/Dec/2010 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.11:     10/Jan/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.12:     24/Jan/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.12-2:   25/Jan/2011 by Simone Giustetti <studiosg@giustetti.net>
#             Added some icons (png, svgz).
# 1.3.13:     07/Feb/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.13-2:   10/Feb/2011 by Simone Giustetti <studiosg@giustetti.net>
#             Wow64 + gstreamer finally working.
# 1.3.14:     21/Feb/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.15:     07/Mar/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.16:     20/Mar/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.17:     04/Apr/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.2.3:      11/Apr/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.18:     18/Apr/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.19:     02/May/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.20:     15/May/2011 by Simone Giustetti <studiosg@giustetti.net>
#             Probably last Slackware 13.1 build.
# 1.3.21:     30/May/2011 by Simone Giustetti <studiosg@giustetti.net>
#             Time to move to 13.37.
# 1.3.22:     13/Jun/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.23:     27/Jun/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.24:     11/Jul/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.25:     25/Jul/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.26:     08/Aug/2011 by Simone Giustetti <studiosg@giustetti.net>
#             Wow64 + gstreamer broken again. New check disables it.
# 1.3.27:     30/Aug/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.28:     13/Sep/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.29:     26/Sep/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.30:     11/Oct/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.31:     24/Oct/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.32:     05/Nov/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.33:     22/Nov/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.34:     04/Dec/2011 by Simone Giustetti <studiosg@giustetti.net>
# 1.3.35:     17/Dec/2011 by Simone Giustetti <studiosg@giustetti.net>
#
# Run 'sh wine.SlackBuild' to build a Slackware package.
# The package (.txz or .tgz) plus descriptive .txt file are created in /tmp .
# Install using 'installpkg'.
#
# -----------------------------------------------------------------------------

# Set initial variables:
PRGNAM=wine
SRCVER=${SRCVER:-"1.3.35"}
VERSION=$(echo ${SRCVER} | tr '-' '.')
ARCH=${ARCH:-"i486"}
BUILD=${BUILD:-1}
TAG=${TAG:-sg}

DOCS="ANNOUNCE AUTHORS COPYING.LIB LICENSE* README VERSION"
DOC_SLACK="README.slackware"

# Set the following variable to tgz if you wish to build a package for a
# Slackware version < 13.0.
PKG_FORMAT=${PKG_FORMAT:-"txz"}

# The following variables can be set into the script or running it like
# this: OPENGL=NO ./wine.SlackBuild
# Use 'YES | NO' not 'yes | no': case-sensitive !

# If your video card does not support hardware accelerated OpenGL,
# then set the variable to "NO"
OPENGL=${OPENGL:-"YES"}

# If you set REQUIRE_FONTFORGE to "NO" then the script won't refuse to
# build wine in case you don't have fontforge installed (it is needed
# to generate the required base fonts).
REQUIRE_FONTFORGE=${REQUIRE_FONTFORGE:-"YES"}

# If you set REQUIREDBUILDER_USE to "YES" then the script will create a
# dependency list (slack_required) from a scan of the compiled software.
REQUIREDBUILDER_USE=${REQUIREDBUILDER_USE:-"YES"}

# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)

# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
TMP=${TMP:-/tmp/build}
PKG=${TMP}/package-${PRGNAM}
OUTPUT=${OUTPUT:-/tmp}

SOURCE="${SRCDIR}/${PRGNAM}-${SRCVER}.tar.bz2"
SRCURL="http://ibiblio.org/pub/linux/system/emulators/${PRGNAM}/${PRGNAM}-${SRCVER}.tar.bz2"

##
## --- with a little luck, you won't have to edit below this point --- ##
##

# Exit the script on errors:
set -e
trap 'echo "$0 FAILED on line $LINENO!" | tee ${OUTPUT}/${PRGNAM}_error.log' ERR
# Catch unitialized variables:
set -u
P1=${1:-1}

echo -e "\E[0;32m+-----------------------+\E[0;0m"
echo -e "\E[0;32m|     ARCH=${ARCH}      |\E[0;0m"
echo -e "\E[0;32m+-----------------------+\E[0;0m"

case "${ARCH}" in
   i486)
      SLKCFLAGS="-O2 -march=i486 -mtune=i686"; SLKLDFLAGS="-L/usr/lib -ldl"; LIBDIRSUFFIX=""
      ENABLE_64=""
   ;;
   i686)
      SLKCFLAGS="-O2 -march=i686 -mtune=i686"; SLKLDFLAGS="-L/usr/lib -ldl"; LIBDIRSUFFIX=""
      ENABLE_64=""
   ;;
   powerpc)
      SLKCFLAGS="-O2"
      ENABLE_64=""
   ;;
   s390)
      SLKCFLAGS="-O2"
      ENABLE_64=""
   ;;
   x86_64)
      SLKCFLAGS="-O2 -fPIC"; SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
      ENABLE_64=" --enable-win64"
   ;;
esac

# Prepare a sane build environment:
mkdir -p ${TMP}/tmp-${PRGNAM}  # Location to build the source
rm -rf ${TMP}/tmp-${PRGNAM}/*  # Remove the remnants of previous build and continue
mkdir -p ${PKG}                # Place for the package to be built
rm -rf ${PKG}/*                # We always erase old package's contents
mkdir -p ${OUTPUT}             # Place for the package to be saved

# Source files availability:
if ! [ -f ${SOURCE} ]; then
   # Source archive not present. Try to download it.
   if ! [ "x${SRCURL}" == "x" ]; then
      # Check if the SRCDIR is writable at all - if not, download to ${OUTPUT}
      [ -w "${SRCDIR}" ] || SOURCE="${OUTPUT}/$(basename $SOURCE)"
      echo "Source '$(basename ${SOURCE})' not available yet..."
      echo "Will download file to $(dirname $SOURCE)"
      wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true
      if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
         echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
         mv -f "${SOURCE}" "${SOURCE}".FAIL
         exit 1
      fi
   else
      echo "File '$(basename ${SOURCE})' not available... aborting the build."
      exit 1
   fi
fi

if [ "$P1" == "--download" ]; then
  echo "Download complete."
  exit 0
fi

# --- PACKAGE BUILDING ---

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

if ! which fontforge >/dev/null 2>&1 ; then
   echo "##"
   echo "## The 'fontforge' program does not seem to be installed."
   echo "## Wine uses fontforge to generate several TTF fonts (tahoma,tahomabd,marlett)"
   echo "## that your Windows programs may want to use!"
   if [ "YES" != "${REQUIRE_FONTFORGE}" ]; then 
      echo "##"
      echo "## Continuing the build anyway, but you were warned..."
      echo "## Sleeping for 5 seconds, press <Ctrl>-C if you want to abort now."
      echo "##"
      sleep 5
   else
      echo "##"
      echo "## Aborting the build - set the internal script variable:"
      echo "##"
      echo "##   'REQUIRE_FONTFORGE' to a value of 'NO'"
      echo "##"
      echo "## if you don't want to use fontforge to generate TTF fonts."
      echo "##"
      exit 1
   fi
fi

cd ${TMP}/tmp-${PRGNAM}

echo -e "\E[0;32m+-----------------------------------------------------+\E[0;0m"
echo -e "\E[0;32m|  Extracting the source archive(s) for ${PRGNAM}...  |\E[0;0m"
echo -e "\E[0;32m+-----------------------------------------------------+\E[0;0m"
tar -xjvf ${SOURCE}
[ "${SRCVER}" != "${VERSION}" ] && mv ${PRGNAM}-${SRCVER} ${PRGNAM}-${VERSION}
cd ${PRGNAM}-${VERSION}
# Starting with openssl-0.9.8h, a typedef was introduced named "X509_EXTENSIONS"
# into openssl/x509.h.  Unfortunately, wine uses a define of the same name
# in include/wincrypt.h. You may need this patch:
#patch -p0 < SRCDIR/wine_openssl.patch

# Change user permission
chown -R root:root .
find . \
 \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
 -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
 -exec chmod 644 {} \;

echo -e "\E[0;32m+-----------------------+\E[0;0m"
echo -e "\E[0;32m|      Building ...     |\E[0;0m"
echo -e "\E[0;32m+-----------------------+\E[0;0m"

# Enable or disable opengl in accord to OPENGL variable value.
if [ "$OPENGL" = "YES" ]; then
   OPENGL_WITH="with"
   else
   OPENGL_WITH="without"
fi

# Create a directory where to build source.
cd ${TMP}/tmp-${PRGNAM}
mkdir ${PRGNAM}
cd ${PRGNAM}

LDFLAGS="${SLKLDFLAGS}" \
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
../${PRGNAM}-${VERSION}/configure ${ENABLE_64} \
   --prefix=/usr \
   --localstatedir=/var \
   --libdir=/usr/lib${LIBDIRSUFFIX} \
   --sysconfdir=/etc \
   --mandir=/usr/man \
   --with-x \
   --${OPENGL_WITH}-opengl \
   --program-prefix= \
   --program-suffix= \
   --build=${ARCH}-slackware-linux \
   2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
make depend 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log
make 2>&1 | tee -a ${OUTPUT}/${PRGNAM}_make.log
make install DESTDIR=${PKG} 2>&1 |tee ${OUTPUT}/${PRGNAM}_install.log

# WoW (32 bit libraries) build instructions for 64 bit Wine.
if [[ "x86_64" = ${ARCH}  ]]; then
   # Create a clean directory for 32 bit wine.
   mkdir -p ${TMP}/tmp-${PRGNAM}/wow64
   cd ${TMP}/tmp-${PRGNAM}/wow64

   LDFLAGS="${SLKLDFLAGS}" \
   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ../${PRGNAM}-${VERSION}/configure \
      --with-wine64=../${PRGNAM} \
      --prefix=/usr \
      --localstatedir=/var \
      --libdir=/usr/lib \
      --sysconfdir=/etc \
      --mandir=/usr/man \
      --with-x \
      --${OPENGL_WITH}-opengl \
      --program-prefix= \
      --program-suffix= \
      2>&1 | tee ${OUTPUT}/wow64_configure.log
   make depend 2>&1 | tee ${OUTPUT}/wow64_make.log
   make 2>&1 | tee -a ${OUTPUT}/wow64_make.log
   make install DESTDIR=${PKG} 2>&1 |tee ${OUTPUT}/wow64_install.log
fi

# Strip binaries
find ${PKG} | xargs file | grep -e "executable" -e "shared object" \
   | grep ELF | cut -f 1 -d: | xargs strip --strip-unneeded 2> /dev/null

# Enter Wine sources directory.
cd ${TMP}/tmp-${PRGNAM}/${PRGNAM}-${VERSION}
# Add some documentation to the package:
mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}
cp -a ${DOCS} ${PKG}/usr/doc/${PRGNAM}"-"${VERSION} || true
cp -a ${SRCDIR}/$(basename $0) ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}/${PRGNAM}.SlackBuild
# Add the Slackware tips & tricks file.
if [[ -f ${SRCDIR}/${DOC_SLACK} ]]; then
   cp -a ${SRCDIR}/${DOC_SLACK} ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}/${DOC_SLACK}
fi
chown -R root:root ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}
find ${PKG}/usr/doc -type f -exec chmod 644 {} \;

# Compress the man page(s).
if [ -d ${PKG}/usr/man ]; then
  cd  ${PKG}/usr/man
  find . -type f -name "*.?" -exec gzip -9f {} \;
  for i in $(find . -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
fi

# Add a package description.
mkdir -p ${PKG}/install
cat ${SRCDIR}/slack-desc > ${PKG}/install/slack-desc
if [ -f ${SRCDIR}/doinst.sh ]; then
  cat ${SRCDIR}/doinst.sh >> ${PKG}/install/doinst.sh
fi

# Add some icons to the package.
if [[ -e ${SRCDIR}/winecfg.png ]]; then
   mkdir -p ${PKG}/usr/share/pixmaps
   cp ${SRCDIR}/winecfg.png ${PKG}/usr/share/pixmaps/winecfg.png
fi
if  [[ -e ${SRCDIR}/winecfg.svgz ]]; then
   mkdir -p ${PKG}/usr/share/icons/hicolor/scalable/apps
   cp ${SRCDIR}/winecfg.svgz ${PKG}/usr/share/icons/hicolor/scalable/apps/winecfg.svgz
fi

# Build a dependency list.
cd ${PKG}
# If a dependency list is included in the sources archive, use it.
if [[ -f ${SRCDIR}/slack-required ]]; then
   cat ${SRCDIR}/slack-required > ${PKG}/install/slack-required
fi

# Build the package in txz or tgz format.
cd ${PKG}
makepkg --linkadd y --chown n ${OUTPUT}/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKG_FORMAT} 2>&1 | tee ${OUTPUT}/${PRGNAM}_makepkg.log
# Calculate hash file for the package.
cd ${OUTPUT}
md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKG_FORMAT} > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKG_FORMAT}.md5
# Create a description file for the package.
cd -
cat ${PKG}/install/slack-desc | grep "^${PRGNAM}" > ${OUTPUT}/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt
# Create a list of dependencies for the package.
if [ -f ${PKG}/install/slack-required ]; then
  cat ${PKG}/install/slack-required > ${OUTPUT}/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep
fi

# Scan the package further dependencies.
if [[ "NO" != ${REQUIREDBUILDER_USE} ]]; then
   if ! which requiredbuilder >/dev/null 2>&1 ; then
      echo "##"
      echo "## The 'requiredbuilder' program does not seem to be installed."
      echo "## It is not possible to create a dependency list. Will use one"
      echo "## if included with the sources archive !"
      exit 1
   else
      cd ${SRCDIR}
      if [[ -f ${SRCDIR}/slack-required ]]; then
         mv ${SRCDIR}/slack-required ${SRCDIR}/slack-required.old
      fi
      requiredbuilder -y -v -s ${SRCDIR} ${OUTPUT}/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKG_FORMAT}
   fi
fi
