diff options
author | B. Watson <yalhcru@gmail.com> | 2016-08-21 20:39:07 +0100 |
---|---|---|
committer | David Spencer <idlemoor@slackbuilds.org> | 2016-08-28 00:22:59 +0100 |
commit | 86734105b545024f24170ea0829ab0e571e9f753 (patch) | |
tree | 48f544df55b4b031fffc06a57ea31d7886bd19e4 /games/commandergenius/commandergenius.SlackBuild | |
parent | 143c95cef219c4f10d67e5127f6778b5aa0dc9a8 (diff) |
games/commandergenius: Added (engine for Commander Keen games).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
Diffstat (limited to 'games/commandergenius/commandergenius.SlackBuild')
-rw-r--r-- | games/commandergenius/commandergenius.SlackBuild | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/games/commandergenius/commandergenius.SlackBuild b/games/commandergenius/commandergenius.SlackBuild new file mode 100644 index 000000000000..2f166f5093be --- /dev/null +++ b/games/commandergenius/commandergenius.SlackBuild @@ -0,0 +1,129 @@ +#!/bin/sh + +# Slackware build script for commandergenius + +# Written by B. Watson (yalhcru@gmail.com) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +PRGNAM=commandergenius +VERSION=${VERSION:-1.9.5.3beta} +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} + +# note that upstream has -O3 hardcoded *after* the specified flags, +# so the -O2 here doesn't actually do anything. The -fPIC and arch/tune +# stuff still applies though. +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 + +# I wish upstream would pick a name and stick with it... they also use +# ~/.CommanderGenius for user data, and their README mentions CGenius. +SRCNAM="Commander-Genius" +EXENAME="CGeniusExe" +DESKTOP="cgenius.desktop" + +# the real VERSION is from version.h in the source. the tarball names +# omit the dots. +SRCVER="$( echo $VERSION | sed 's,\.,,g' )" + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $SRCNAM-$SRCVER +tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz || tar xvf $CWD/v$SRCVER.tar.gz +cd $SRCNAM-$SRCVER +chown -R root:root . + +# permissions are blethcherous, please don't revert to template here. +find -L . -type f -a -exec chmod 644 '{}' '+' +find -L . -type d -a -exec chmod 755 '{}' '+' + +# placate desktop-file-validate +sed -i 's,Application;,,' share/$DESKTOP + +# SDL 2 is optional. I prefer it, others may not. +SDLOPT="-DUSE_SDL2=no" +SDLVER=1 +if sdl2-config --version 2>/dev/null && [ "${SDL2:-yes}" != "no" ]; then + SDLOPT="-DUSE_SDL2=yes" + SDLVER=2 +fi + +echo "=== Building with $SDLOPT" + +mkdir -p build +cd build + cmake \ + $SDLOPT \ + -DGAMES_SHAREDIR:STRING=/usr/share/games \ + -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 VERBOSE=1 + make install/strip DESTDIR=$PKG +cd .. + +# upstream installs 2 identical-looking (but not byte-identical) icons +rm -f $PKG/usr/share/icons/hicolor/512x512/apps/CGLogo.png +ln -s ../../../../games/$PRGNAM/cglogo512.png \ + $PKG/usr/share/icons/hicolor/512x512/apps/CGLogo.png + +# grrrr. don't force command-line users to remember the name is CGeniusExe +ln -s $EXENAME $PKG/usr/games/$PRGNAM + +# the High Quality Pack. this is redundant for Keen 1 and 4 (just download +# the Special versions of these games), so we only install the data for +# 2 and 3. strace shows the files are being loaded, but TBH I haven't +# played these games enough to notice the difference with/without the HQP. +rm -rf hqp/games/keen1 hqp/games/keen4 +cp -a hqp/* $PKG/usr/share/games/$PRGNAM + +# man page written for this SlackBuild. +mkdir -p $PKG/usr/man/man6 +gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz +ln -s $PRGNAM.6.gz $PKG/usr/man/man6/$EXENAME.6.gz + +# upstream installs most of the docs in /usr/share/games/$PRGNAM... +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a COPYRIGHT $PKG/usr/doc/$PRGNAM-$VERSION +for i in README changelog.txt Readme_hqp.txt; do + ln -s ../../share/games/$PRGNAM/$i $PKG/usr/doc/$PRGNAM-$VERSION +done +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +sed "s,@SDLVER@,$SDLVER," < $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} |