diff options
Diffstat (limited to 'games/etlegacy/etlegacy.SlackBuild')
-rw-r--r-- | games/etlegacy/etlegacy.SlackBuild | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/games/etlegacy/etlegacy.SlackBuild b/games/etlegacy/etlegacy.SlackBuild new file mode 100644 index 0000000000..d4777f01c7 --- /dev/null +++ b/games/etlegacy/etlegacy.SlackBuild @@ -0,0 +1,177 @@ +#!/bin/sh + +# Slackware build script for etlegacy +# Copyright 2013-2014 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=etlegacy +VERSION=${VERSION:-20141115_3a6dbd5} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i*86) ARCH=i686 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +w_omnibot=1 +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=core2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + w_omnibot=0 +else + SLKCFLAGS="-O2" + w_omnibot=0 +fi + +# The new renderer performs better but needs an OpenGL 3.0+ capable GPU; +# also it's still WIP, so enable at your own risk, may cause incompatibilities +# with some maps +if [ "${RENDERER2:-no}" = "yes" ]; then w_renderer=1; else w_renderer=0; fi +if [ "${FREETYPE:-no}" = "yes" ]; then w_freetype=1; else w_freetype=0; fi +if [ "${OPENAL:-no}" = "yes" ]; then w_openal=1; else w_openal=0; fi +if [ "${CROUCH:-no}" = "yes" ]; then w_crouch=1; else w_crouch=0; fi +if [ "${MULTIVIEW:-no}" = "yes" ]; then w_multiview=1; else w_multiview=0; fi + +set -e # Exit on most errors + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* +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 {} \; + +# Fix location of the omnibot.zip, man install path +# and leave the relative path to binaries off +sed -i "s|share/man|man|" CMakeLists.txt +sed -i "s|^\.\/etl|etl|" misc/etl_bot.sh misc/etlded_bot.sh + +mkdir -p build/legacy +cd build + ln -s $CWD/omnibot-linux-latest.tar.gz legacy/ + # We have to use bundled lua and sdl + cmake \ + -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX="/usr" \ + -DINSTALL_DEFAULT_BINDIR="bin" \ + -DINSTALL_DEFAULT_MODDIR="share/$PRGNAM" \ + -DINSTALL_DEFAULT_BASEDIR="/usr/share/$PRGNAM" \ + -DBUILD_CLIENT=1 \ + -DBUILD_SERVER=1 \ + -DBUILD_MOD=1 \ + -DBUILD_MOD_PK3=1 \ + -DBUILD_PAK3_PK3=1 \ + -DFEATURE_ANTICHEAT=1 \ + -DFEATURE_CURL=1 \ + -DFEATURE_LUA=1 \ + -DFEATURE_TRACKER=1 \ + -DFEATURE_OMNIBOT=$w_omnibot \ + -DINSTALL_OMNIBOT=$w_omnibot \ + -DFEATURE_MULTIVIEW=0 \ + -DFEATURE_CURSES=0 \ + -DCROSS_COMPILE32=0 \ + -DFEATURE_OGG_VORBIS=1 \ + -DFEATURE_FREETYPE=$w_freetype \ + -DFEATURE_OPENAL=$w_openal \ + -DFEATURE_AUTOUPDATE=0 \ + -DFEATURE_IPV6=0 \ + -DFEATURE_GETTEXT=1 \ + -DFEATURE_RENDERER2=$w_renderer \ + -DFEATURE_CROUCH=$w_crouch \ + -DFEATURE_MULTIVIEW=$w_multiview \ + -DRENDERER_DYNAMIC=0 \ + -DBUNDLED_LIBS=1 \ + -DBUNDLED_SDL=1 \ + -DBUNDLED_LUA=1 \ + -DBUNDLED_CURL=0 \ + -DBUNDLED_JPEG=0 \ + -DBUNDLED_OGG_VORBIS=0 \ + -DBUNDLED_GLEW=0 \ + -DBUNDLED_FREETYPE=0 \ + -DBUNDLED_JANSSON=1 \ + -DCMAKE_BUILD_TYPE=Release .. + + # JIC, sanitize the just-uncompressed omnibot stuff + chown -R root:root legacy + find -L legacy \ + \( -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 {} \; + make + make install DESTDIR=$PKG +cd .. + +# Move man pages in the proper place +mv $PKG/usr/share/man $PKG/usr/man + +# Install a script to open urls, and move two scripts to launch the client and +# the dedicated server with omnibot support in the binaries folder +install -m 0755 $CWD/files/openurl.sh $PKG/usr/bin/openurl.sh +mv $PKG/usr/share/$PRGNAM/etl*.sh $PKG/usr/bin/ +chmod 755 $PKG/usr/bin/etl*.sh + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +# Install an icon, a desktop file and man pages +install -m 0644 -D $CWD/files/$PRGNAM.svg \ + $PKG/usr/share/pixmaps/$PRGNAM.svg +install -m 0644 -D $CWD/files/$PRGNAM.desktop \ + $PKG/usr/share/applications/$PRGNAM.desktop +mkdir -p $PKG/usr/man/man6 +gzip -9 -c docs/linux/man/man6/etl.6 > $PKG/usr/man/man6/etl.6.gz +gzip -9 -c docs/linux/man/man6/etlded.6 > $PKG/usr/man/man6/etlded.6.gz + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +mv \ + $PKG/usr/share/$PRGNAM/README.md \ + $PKG/usr/share/$PRGNAM/COPYING.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} |