slackbuilds_ponce/games/warsow/warsow.SlackBuild

138 lines
4 KiB
Text
Raw Normal View History

#!/bin/sh
# Slackware build script for Warsow
# 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.
# Written by Andre Barboza <bmg.andre@gmail.com>
# Updated by drhouse <housegregory299@gmail.com>
# Updated by goarilla <goarilla@gmail.com>
PRGNAM=warsow
VERSION=${VERSION:-2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
TMP=${TMP:-/tmp/SBo}
CWD=$(pwd)
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -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 -eu
rm -rf "$PKG"
mkdir -p "${TMP}/${PRGNAM}-${VERSION}" "$PKG"
mkdir -p "${PKG}/install"
mkdir -p "${PKG}/usr/games"
mkdir -p "${PKG}/usr/share/${PRGNAM}"
mkdir -p "${PKG}/usr/doc/${PRGNAM}-${VERSION}"
# no parent directory
SDK="warsow_20_sdk.tar.gz"
# ./warsow_20
DATA="warsow_20_unified.tar.gz"
tar -C "${PKG}/usr/doc/${PRGNAM}-${VERSION}" -xvf "$DATA" ./warsow_20/docs/
mv "${PKG}/usr/doc/${PRGNAM}-${VERSION}/warsow_20/docs/"* "${PKG}/usr/doc/${PRGNAM}-${VERSION}/"
rm -rf "${PKG}/usr/doc/${PRGNAM}-${VERSION}/warsow_20/"
tar -C "${PKG}/usr/share/${PRGNAM}" -xvf "$DATA" ./warsow_20/basewsw
mv "${PKG}/usr/share/${PRGNAM}/warsow_20/"* "${PKG}/usr/share/${PRGNAM}"
rm -rf "${PKG}/usr/share/${PRGNAM}/warsow_20/"
# unpack sdk
tar -C "${TMP}/${PRGNAM}-${VERSION}" -xvf "$SDK"
# build
cd "${TMP}/${PRGNAM}-${VERSION}"
cd source/source
cmake .
make
# copy build
cp -rf build/ "${PKG}/usr/share/${PRGNAM}/"
# shuffle some files
cd "$PKG"
cd "usr/share/${PRGNAM}"
mv basewsw basewsw.old
mv build/* .
mv basewsw/* basewsw.old/
rm -rf basewsw/
mv basewsw.old/ basewsw/
rm -rf build
cp "${CWD}/${PRGNAM}.SlackBuild" "${PKG}/usr/doc/${PRGNAM}-${VERSION}"
# fix permissions of executables
cd "$PKG"
chmod 755 "usr/share/${PRGNAM}/warsow.${ARCH}"
chmod 755 "usr/share/${PRGNAM}/wswtv_server.${ARCH}"
chmod 755 "usr/share/${PRGNAM}/wsw_server.${ARCH}"
# make wrappers
cat >> usr/games/warsow << EOF
#! /bin/sh
ARCH="$ARCH"
EOF
cat >> usr/games/warsow << "EOF"
cd /usr/share/warsow/ && exec ./"$(basename "$0").${ARCH}"
EOF
cp usr/games/warsow usr/games/wswtv_server
cp usr/games/warsow usr/games/wsw_server
# copy icons
mkdir -p "${PKG}/usr/share/pixmaps/"
cat "${CWD}/warsow.png" > "${PKG}/usr/share/pixmaps/warsow.png"
mkdir -p "${PKG}/usr/share/applications"
cat "${CWD}/warsow.desktop" > "${PKG}/usr/share/applications/warsow.desktop"
# copy description
cp "${CWD}/slack-desc" "${PKG}/install"
# set permissions
chown -R root:root .
chmod 755 usr/games/{warsow,wswtv_server,wsw_server}
find usr/doc/"${PRGNAM}-${VERSION}" -type f -print0 | xargs -0 chmod 644
find usr/share/"${PRGNAM}"/basewsw -type f -print0 | xargs -0 chmod 644
find usr/share/"${PRGNAM}"/basewsw -type d -print0 | xargs -0 chmod 755
# build package
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}