summaryrefslogtreecommitdiffstats
path: root/games/sms_sdl/sms_sdl.SlackBuild
blob: ef3f3397f3c2d43259d8336b5f585ac0573b5c23 (about) (plain) (blame)
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
#!/bin/bash

# Slackware build script for sms_sdl

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

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

# 20200104 bkw:
# - Whoops! The sms_sdl.png icon was actually a .gif. Fix & bump BUILD.

# 20160804 bkw:
# - fix and enhance sms_sdl.sh (qv), bump BUILD

# 20140907 bkw:
# - use gzipped patches to avoid \r being stripped by SBo git
# - update man page, convert to pod, move to section 6
# - install exe in /usr/games instead of /usr/bin
# - use the mime type x-sms-rom, predefined by freedesktop.org, instead
#   of including our own custom mime types. Since Slackware already has
#   this mime type, get rid of the option to disable mime.

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

PRGNAM=sms_sdl
VERSION=${VERSION:-0.9.4a_r7.1}
BUILD=${BUILD:-4}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

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

# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
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}

SRCVER=$(echo $VERSION | sed 's/_/-/')

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
unzip $CWD/$PRGNAM-$SRCVER-src.zip
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 {} \+

# Sorry for all the patches, upstream has been unmaintained since 2001 or so.

# Support OPTFLAGS in build process, enabled zipped rom support
zcat $CWD/patches/cflags_and_libz.diff.gz | patch -p1

# Thanks to Ellington Santos (necropresto) for this patch that makes
# the --fm and --japan options actually work:
zcat $CWD/patches/japan_and_fm.diff.gz | patch -p1

# x86_64 needs this patch to disable x86 asm + fix the int32, uint32 typedefs
# (but x86 doesn't need this!)
if [ "$ARCH" = "x86_64" ]; then
  zcat $CWD/patches/x86_64.diff.gz | patch -p1
fi

# Allow the ROM filename to appear anywhere on the command line, and
# avoid segfaulting on filenames that don't contain a dot.
zcat $CWD/patches/fix_option_parsing.diff.gz | patch -p1

cd sdl

# need to link with -lm
sed -i '/^LIBS/s,$, -lm,' Makefile

make OPTFLAGS="$SLKCFLAGS"

# There's no 'make install', plus we have this wrapper script...
mkdir -p $PKG/usr/games $PKG/usr/libexec
install -m0755 $CWD/$PRGNAM.sh $PKG/usr/games/$PRGNAM
install -s -m0755 $PRGNAM $PKG/usr/libexec/$PRGNAM

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README.TXT $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/sample_config > $PKG/usr/doc/$PRGNAM-$VERSION/sample_config

# man page is part of this SlackBuild. If you're packaging for
# some other distribution, feel free to snag it.
mkdir -p $PKG/usr/man/man6
sed "s/\<VERSION\>/$VERSION/g" < $CWD/$PRGNAM.6 | \
  gzip -9c > $PKG/usr/man/man6/$PRGNAM.6.gz

# icon by finite (see REAME), desktop written for this build.
mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png

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

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