summaryrefslogtreecommitdiffstats
path: root/games/warsow/warsow.SlackBuild
blob: bbe9a50f5a3cc1ac7d85f08682d3d0ded91eb870 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/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.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

case "$( uname -m )" in
    i?86) ARCH=i686 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
esac

TMP=${TMP:-/tmp/SBo}
CWD=$(pwd)
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$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_21_sdk.tar.gz"
# ./warsow_20
DATA="warsow_21_unified.tar.gz"

tar -C "${PKG}/usr/doc/${PRGNAM}-${VERSION}" -xvf "$DATA" ./warsow_21/docs/
mv "${PKG}/usr/doc/${PRGNAM}-${VERSION}/warsow_21/docs/"* "${PKG}/usr/doc/${PRGNAM}-${VERSION}/"
rm -rf "${PKG}/usr/doc/${PRGNAM}-${VERSION}/warsow_21/"
tar -C "${PKG}/usr/share/${PRGNAM}" -xvf "$DATA" ./warsow_21/basewsw
mv "${PKG}/usr/share/${PRGNAM}/warsow_21/"* "${PKG}/usr/share/${PRGNAM}"
rm -rf "${PKG}/usr/share/${PRGNAM}/warsow_21/"

# unpack sdk
tar -C "${TMP}/${PRGNAM}-${VERSION}" -xvf "$SDK" warsow_21_sdk/

# build
cd "${TMP}/${PRGNAM}-${VERSION}"
cd warsow_21_sdk/source/source
cmake -DQFUSION_GAME="Warsow" .
make

# copy build
cp -rf build/wsw* build/warsow* build/libs "${PKG}/usr/share/${PRGNAM}/"

# shuffle some files
cd "$PKG"
cd "usr/share/${PRGNAM}"
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
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

# 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}