summaryrefslogtreecommitdiff
path: root/games/maelstrom/maelstrom.SlackBuild
blob: 88cddc94c805f1d0821dd34e9895eb4e579e0435 (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
128
129
130
131
132
133
134
135
136
137
#!/bin/bash

# Slackware build script for maelstrom

# Written by B. Watson (urchlay@slackware.uk)

# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.

# 20211020 bkw: upstream's first update since 2002! ported to SDL2!
# - update for v3.0.7.
# - new-style icons.
# - update URLs in perl script and man page.

# 20180627 bkw: fix compile with gcc 8 (for -current).

# 20160730 bkw:
# - Fix compile with gcc 5 (for Slack 14.2). Also fix some
#   compiler warnings while I'm at it.
# - Remove warnings about multiplayer not working on 64-bit, it
#   works now.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=maelstrom
VERSION=${VERSION:-3.0.7}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

SRCNAM=Maelstrom

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -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 -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM-$VERSION
chown -R root:root .
find -L .  -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
        \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+

# Look for game data in /usr/share/games/Maelstrom, not /usr/games/Maelstrom
sed -i '/GAME_INSTALLDIR=.*games/s,/games,/share/games,' configure

# 20180627 bkw: It seems structs and typedefs now share a namespace
# in gcc-8.1's g++. So rename this struct to keep the compiler happy
# on -current (and it does no harm on 14.2 either):
sed -i 's,struct *button,struct b_utton,g' buttonlist.h

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --bindir=/usr/games \
  --build=$ARCH-slackware-linux

make

# 20211020 bkw: 3.0.7's make install is hard to deal with, do without.
GAMEDIR=$PKG/usr/share/games/$SRCNAM
mkdir -p $PKG/usr/games $GAMEDIR
cp -a Images Maelstrom_{Fonts,Sounds,Sprites} icon.* $GAMEDIR
rm $GAMEDIR/Images/Makefile*
install -s -m0755 $SRCNAM $SRCNAM-netd $PKG/usr/games

# CLI users would probably prefer to type 'maelstrom', not 'Maelstrom'
( cd $PKG/usr/games && ln -s $SRCNAM $PRGNAM )

install -m0755 -o root -g root $CWD/maelstrom_addon_package.pl $PKG/usr/games

mkdir -p $PKG/usr/share/applications
cp $CWD/$PRGNAM.desktop $PKG/usr/share/applications

# upstream's icon is 48x48, resize
for i in 16 32 48 64; do
  px=$( basename $i | cut -d. -f1 )
  size=${px}x${px}
  dir=$PKG/usr/share/icons/hicolor/$size/apps
  mkdir -p $dir
  convert -resize $size icon.xpm $dir/$PRGNAM.png
done

mkdir -p $PKG/usr/share/pixmaps
( cd $PKG/usr/share/pixmaps ; ln -s ../games/$SRCNAM/icon.xpm $PRGNAM.xpm )

mkdir -p $PKG/usr/man/man6
gzip -9c $CWD/$SRCNAM.6 > $PKG/usr/man/man6/$SRCNAM.6.gz
( cd $PKG/usr/man/man6
  ln -s $SRCNAM.6.gz $PRGNAM.6.gz
  ln -s $SRCNAM.6.gz $SRCNAM-netd.6.gz )

PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a Changelog *.txt Docs $PKGDOC
rm -f $PKGDOC/Docs/Makefile*
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE