aboutsummaryrefslogtreecommitdiff
path: root/games/openjazz/openjazz.SlackBuild
blob: 312ea50b89f327f067921efe538a1fa15bf7b0b6 (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
138
139
140
#!/bin/bash

# Slackware build script for openjazz

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

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

PRGNAM=openjazz
VERSION=${VERSION:-160214}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

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

CWD=$(pwd)
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

SRCNAM=OpenJazz
ZIPFILE=$SRCNAM-src-$VERSION.zip

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir -p $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
unzip $CWD/$ZIPFILE
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
 -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Patch does 4 things:

# - Always look for openjazz.000 in /usr/share/openjazz. Saves the user
#   from having to keep copies or symlinks of it in every game dir.

# - Writes config file to user's homedir, not current dir.

# - For .psm (music) files, if they're not found as "blah.psm", try the
#   all-uppercase "BLAH.PSM" instead. Saves the user having to rename
#   them (and keeps things consistent, EVERYTHING ALL CAPS). In case you're
#   wondering, the lowercase psm filenames are hardcoded inside the data
#   files from the DOS game, not the source.

# - Logs the full path & result of every attempted file open. I needed
#   this myself to understand WTF was going on, leaving it in case
#   users find it helpful.

patch -p1 < $CWD/paths.diff

autoreconf -if

# HOMEDIR should be defined on *nix, for some reason it's not automatically.
# 20151119 bkw: modplug header in wrong place (or, is it?)
SLKCFLAGS="$SLKCFLAGS -DHOMEDIR -I/usr/include/libmodplug"

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --build=$ARCH-slackware-linux

make
make install-strip DESTDIR=$PKG

# icon came from windows jazz jackrabbit CD, converted with icotool
mkdir -p $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/shareware \
  $PKG/usr/share/$PRGNAM/shareware

cd $PKG/usr/share/$PRGNAM/shareware
unzip $CWD/jjrabbit.zip
  for i in *.DOC; do
    sed 's,\r,,g' $i > $PKG/usr/doc/$PRGNAM-$VERSION/shareware/$i
  done
  rm -f *.EXE *.DIZ *.DOC *.PIF
cd -

# wrapper script
mkdir -p $PKG/usr/games
cat <<EOF >$PKG/usr/games/$PRGNAM-shareware
#!/bin/sh
exec $PRGNAM /usr/share/$PRGNAM/shareware "\$@"
EOF
chmod 755 $PKG/usr/games/$PRGNAM-shareware

# man page written for this slackbuild
mkdir -p $PKG/usr/man/man6
gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz

mkdir -p $PKG/usr/share/applications
cat $CWD/$PRGNAM-shareware.desktop \
  > $PKG/usr/share/applications/$PRGNAM-shareware.desktop

for i in *.txt; do
  sed 's,\r,,g' $i > $PKG/usr/doc/$PRGNAM-$VERSION/$i
done
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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:-tgz}