summaryrefslogtreecommitdiffstats
path: root/games/bstone/bstone.SlackBuild
blob: 56ac3270340df6dc3a5f7c6bc9754380e70d3023 (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
#!/bin/bash

# Slackware build script for bstone

# Written by B. Watson (yalhcru@gmail.com)

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

# 20211004 bkw:
# - update for v1.2.11.
# - include .txt version of license.
# - datadir.diff changed again.
# - update .desktop file.
# - better README doc on how to play the full version.

# 20201219 bkw: update for v1.2.9.
# 20200804 bkw: update for v1.2.8. datadir.diff changed again.
# 20200222 bkw: update for v1.1.16_2.
# 20191127 bkw: update for v1.1.14. datadir.diff had to change so we can't
# build old versions any more.
# 20170921 bkw: update for v1.1.9.
# 20170807 bkw: update for v1.1.8, use upstream's icon instead of mine.
# 20170621 bkw: fix build on -current

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

PRGNAM=bstone
VERSION=${VERSION:-1.2.11}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

SRCVER=${VERSION/_/-}

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 $PRGNAM-$SRCVER
tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz
cd $PRGNAM-$SRCVER
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 in /usr/share/games/bstone for game data files, not the
# directory the executable lives in. the --data_dir option can
# still override this.
patch -p1 < $CWD/datadir.diff

# make install and install/strip are borked, do manual install.
# always include the shareware data in the package, the game will
# automatically use it if the user hasn't installed the full version,
# or offer a choice of full version or shareware if he has both.
mkdir -p build
cd build
  cmake \
    -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DLIB_SUFFIX=${LIBDIRSUFFIX} \
    -DMAN_INSTALL_DIR=/usr/man \
    -DCMAKE_BUILD_TYPE=Release ..
  make

  mkdir -p $PKG/usr/games $PKG/usr/share/games/$PRGNAM
  install -s -m0755 src/$PRGNAM $PKG/usr/games

  unzip $CWD/1bs30.zip
  unzip BSSW30.SHR \*.BS1
  install -oroot -groot -m0644 *.BS1 $PKG/usr/share/games/$PRGNAM
cd ..

# man page and .desktop written for this build. icon converted from upstream's
# src/sys/win32/bstone_icon.ico.
mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps $PKG/usr/man/man6
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz

# the original source code license is supplied only as a MS word .doc
# file. we ship it as-is, but rename it to something without spaces in
# the filename. also, ship a pre-converted text version (created with
# wvText, then hand-edited to fix the formatting).
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
LIC=blake_stone_source_code_license
mkdir -p $PKGDOC
cp -a LICENSE README.md TODO.md CHANGE* $PKGDOC
cp -a *.doc $PKGDOC/$LIC.doc
cat $CWD/$LIC.txt > $PKGDOC/$LIC.txt
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