diff options
author | Matteo Bernardini | 2018-10-13 14:03:53 +0200 |
---|---|---|
committer | Matteo Bernardini | 2018-10-13 14:03:53 +0200 |
commit | 90a1c3817bd979d30eef880f5cbbdab1fdc96b69 (patch) | |
tree | 1a33d8fc1b5d12da92df48dd63c822804617a5f2 /games/etlegacy-from-source/etlegacy-from-source.SlackBuild | |
parent | e508b015d1f32339a2049795d646af143139eb87 (diff) | |
download | slackbuilds-current-20181013.1.tar.gz |
20181013.1 global branch merge.current-20181013.1
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
Diffstat (limited to 'games/etlegacy-from-source/etlegacy-from-source.SlackBuild')
-rw-r--r-- | games/etlegacy-from-source/etlegacy-from-source.SlackBuild | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/games/etlegacy-from-source/etlegacy-from-source.SlackBuild b/games/etlegacy-from-source/etlegacy-from-source.SlackBuild new file mode 100644 index 0000000000..ef7b9625c1 --- /dev/null +++ b/games/etlegacy-from-source/etlegacy-from-source.SlackBuild @@ -0,0 +1,186 @@ +#!/bin/sh + +# Slackware build script for etlegacy-from-source +# Copyright 2013-2016 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-from-source +SRCNAM=etlegacy +VERSION=${VERSION:-20170622_ae5f9ef} +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 + +set -e # Exit on most errors + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.?z* +cd $SRCNAM-$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/ + ln -s $CWD/wolfadmin.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/$SRCNAM" \ + -DINSTALL_DEFAULT_BASEDIR="/usr/share/$SRCNAM" \ + -DBUILD_CLIENT=1 \ + -DBUILD_SERVER=1 \ + -DBUILD_MOD=1 \ + -DBUILD_MOD_PK3=1 \ + -DBUILD_PAK3_PK3=1 \ + -DFEATURE_CURL=1 \ + -DFEATURE_OGG_VORBIS=1 \ + -DFEATURE_THEORA=1 \ + -DFEATURE_OPENAL=1 \ + -DFEATURE_FREETYPE=1 \ + -DFEATURE_TRACKER=0 \ + -DFEATURE_GETTEXT=1 \ + -DFEATURE_JANSSON=0 \ + -DFEATURE_DBMS=1 \ + -DFEATURE_LUA=1 \ + -DFEATURE_MULTIVIEW=1 \ + -DFEATURE_EDV=1 \ + -DFEATURE_ANTICHEAT=1 \ + -DFEATURE_RATING=1 \ + -DFEATURE_AUTOUPDATE=0 \ + -DFEATURE_LUASQL=1 \ + -DFEATURE_OMNIBOT=$w_omnibot \ + -DINSTALL_EXTRA=1 \ + -DINSTALL_OMNIBOT=$w_omnibot \ + -DINSTALL_GEOIP=1 \ + -DINSTALL_WOLFADMIN=1 \ + -DCROSS_COMPILE32=0 \ + -DFEATURE_OGG_VORBIS=1 \ + -DFEATURE_FREETYPE=1 \ + -DFEATURE_AUTOUPDATE=0 \ + -DFEATURE_IPV6=0 \ + -DFEATURE_GETTEXT=1 \ + -DFEATURE_RENDERER2=1 \ + -DFEATURE_RENDERER_GLES=0 \ + -DRENDERER_DYNAMIC=1 \ + -DBUNDLED_LIBS=1 \ + -DBUNDLED_SDL=1 \ + -DBUNDLED_LUA=1 \ + -DBUNDLED_OGG_VORBIS=1 \ + -DBUNDLED_THEORA=1 \ + -DBUNDLED_SQLITE3=1 \ + -DBUNDLED_JANSSON=0 \ + -DBUNDLED_ZLIB=1 \ + -DBUNDLED_MINIZIP=1 \ + -DBUNDLED_CURL=1 \ + -DBUNDLED_OPENAL=1 \ + -DBUNDLED_JPEG=1 \ + -DBUNDLED_GLEW=0 \ + -DBUNDLED_FREETYPE=1 \ + -DCMAKE_BUILD_TYPE=Release .. + + # JIC, sanitize the just-uncompressed 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/$SRCNAM/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/$SRCNAM.svg \ + $PKG/usr/share/pixmaps/$SRCNAM.svg +install -m 0644 -D $CWD/files/$SRCNAM.desktop \ + $PKG/usr/share/applications/$SRCNAM.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/$SRCNAM/*.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION +cp README* $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} |