diff options
Diffstat (limited to 'games/prboom-plus/prboom-plus.SlackBuild')
-rw-r--r-- | games/prboom-plus/prboom-plus.SlackBuild | 108 |
1 files changed, 70 insertions, 38 deletions
diff --git a/games/prboom-plus/prboom-plus.SlackBuild b/games/prboom-plus/prboom-plus.SlackBuild index 2ac6a047c3..aa14bfb9c2 100644 --- a/games/prboom-plus/prboom-plus.SlackBuild +++ b/games/prboom-plus/prboom-plus.SlackBuild @@ -2,16 +2,35 @@ # Slackware build script for prboom-plus -# Written by Dugan Chen (thedoogster@gmail.com) +# Originally written by Dugan Chen (email removed) +# Modified and now maintained by B. Watson <yalhcru@gmail.com>. +# Original had no license. Modified version released under the WTFPL. See +# http://www.wtfpl.net/txt/copying/ for details. + +# 20210223 bkw: update for v2.6um. Upstream switched to cmake, +# so we can't build previous versions any more. A note to myself: +# SDL2 really is required. SDL2_(net|mixer|image) are technically +# optional. But I'm keeping them listed as requirements because users +# will get annoyed if they accidentally build a Doom engine that's +# incapable of playing music, or joining multiplayer games, or using +# HQ textures. + +# 20200416 bkw: +# - take over maintenance +# - i486 => i586 +# - switch to coelckers github fork, since it's maintained +# - SDL2_* now required +# - install desktop, icon, bash completion +# - game binaries in /usr/games PRGNAM=prboom-plus -VERSION=${VERSION:-2.5.1.4} +VERSION=${VERSION:-2.6um} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then case "$( uname -m )" in - i?86) ARCH=i486 ;; + i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac @@ -22,8 +41,8 @@ TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" @@ -38,6 +57,17 @@ fi set -e +# If modern cmake is missing, the error message from the old 14.2 cmake +# doesn't really make it clear why it fails, so add this check to avoid +# receiving "why won't this build?" emails. This stanza can go away after +# 15.0 is released. +if ! [ -x /opt/cmake-202x/bin/cmake ]; then + echo "*** Missing required dependency: cmame-202x. Aborting." 1>&2 + exit 1 +fi + +export PATH=/opt/cmake-202x/bin:$PATH + rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP @@ -45,39 +75,41 @@ rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz 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 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; - -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -./configure \ - --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --build=$ARCH-slackware-linux \ - --datarootdir=/usr \ - --enable-gl - -make -make install DESTDIR=$PKG - -# Configure script insists on putting docs in /usr/share/doc, even when told not to. -mv $PKG/usr/share/doc $PKG/usr - -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 - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a \ - doc/ AUTHORS COPYING INSTALL NEWS README TODO \ - $PKG/usr/doc/$PRGNAM-$VERSION +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +[ -d prboom2 ] && cd prboom2 + +# upstream hardcoded paths, can't override on cmake command line. +sed -i '/install/s,/bin,/games,' src/CMakeLists.txt +sed -i '/^set(CMAKE_INSTALL_DOCDIR/d' CMakeLists.txt + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DCMAKE_INSTALL_BINDIR=games \ + -DCMAKE_INSTALL_MANDIR=/usr/man \ + -DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \ + -DCMAKE_BUILD_TYPE=Release .. + make + make install/strip DESTDIR=$PKG +cd .. + +gzip $PKG/usr/man/man?/*.? + +# desktop/icon/completion included in tarball but not installed +mkdir -p $PKG/usr/share/applications \ + $PKG/usr/share/icons/hicolor/scalable/apps \ + $PKG/usr/share/bash-completion/completions +cp ICONS/$PRGNAM.desktop $PKG/usr/share/applications +cp ICONS/$PRGNAM.svg $PKG/usr/share/icons/hicolor/scalable/apps +cp ICONS/$PRGNAM.bash $PKG/usr/share/bash-completion/completions/$PRGNAM + +cp -a AUTHORS COPYING README NEWS $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install |