summaryrefslogtreecommitdiff
path: root/games/uqm/uqm.SlackBuild
blob: e5a81f5666c523e47ab1f0474ce3a41c9b1d0702 (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
#!/bin/sh

# Slackware build script for uqm

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

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

PRGNAM=uqm
VERSION=${VERSION:-0.7.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

CONTENT=${PRGNAM}_content
CONTVER=${CONTVER:-0.7.0}

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

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

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -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-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION-source.tgz
cd $PRGNAM-$VERSION
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 {} \;

# uqm uses a custom build.sh to configure and build the source.
# It's not a bad system, but it's interactive only, meaning I have
# to script answers to the build.sh prompts, hence build_config().

# WARNING: If you're updating this SlackBuild for a new version of
# uqm, check and make sure the build.sh options haven't changed!

# It'd be more efficient to require a system-wide libmikmod instead of
# using the included (statically linked) one, but it's not that big
# a library, and this way we don't have any external dependencies.

build_config() {
   echo 1     # Top-level menu option 1: Build type...
   echo 1     # type 1 = release
   echo 2     # Top-level menu option 2: OpenGL support...
   echo 2     # 1 = Don't include, 2 = Include OpenGL graphics support
   echo 4     # Top-level menu option 4: Tracker music support
   echo 1     # 1 = included libmikmod, 2 = system libmikmod
   echo 11    # Top-level menu option 11: Installation paths...
              # (N.B. option 11 was option 10 in uqm 0.6.2)
   echo 1     # Option 1 = Installation prefix
   echo /usr  # New value:
   echo 3     # Option 3 = Location for non-sharable data
              # New value:
   echo \$prefix/libexec
   echo       # ENTER; back to top-level menu
   echo       # ENTER at top-level menu = done
}


if [ ! -e $CWD/$PRGNAM-$CONTVER-content.uqm ]; then
    echo "Error: $CONTENT not found! Please download the $CONTENT"
    echo "       first (see the README), before attempting to build this."
    exit 1
fi


build_config | sh build.sh uqm config
sed -i -e "s/-O3/$SLKCFLAGS/" -e '/LDFLAGS/s,-lz,-lz -lm,' build.vars
sh build.sh uqm

strip $PRGNAM
mkdir -p $PKG/usr/libexec/$PRGNAM
cp -a $PRGNAM $PKG/usr/libexec/$PRGNAM

mkdir -p $PKG/usr/bin
cat $PRGNAM-wrapper > $PKG/usr/bin/$PRGNAM
chmod 0755 $PKG/usr/bin/$PRGNAM

mkdir -p $PKG/usr/share/$PRGNAM/content/{addons,packages}
cp content/version $PKG/usr/share/$PRGNAM/content

# Install the uqm content. Without this the binary is not useful.
cat $CWD/$PRGNAM-$CONTVER-content.uqm > \
    $PKG/usr/share/$PRGNAM/content/packages/$PRGNAM-$CONTVER-content.uqm

# Man page created for SBo (it's basically the README + roff markup)
mkdir -p $PKG/usr/man/man1
gzip -9c $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz

# .desktop and icon borrowed from Debian
mkdir -p $PKG/usr/share/applications
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
mkdir -p $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.xpm > $PKG/usr/share/pixmaps/$PRGNAM.xpm

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp $PRGNAM.lsm AUTHORS BUGS COPYING ChangeLog Contributing README WhatsNew \
   doc/users/manual.txt $PKG/usr/doc/$PRGNAM-$VERSION
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}