summaryrefslogtreecommitdiffstats
path: root/games/prboom-plus/prboom-plus.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'games/prboom-plus/prboom-plus.SlackBuild')
-rw-r--r--games/prboom-plus/prboom-plus.SlackBuild108
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