aboutsummaryrefslogtreecommitdiff
path: root/development/zmac/zmac.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'development/zmac/zmac.SlackBuild')
-rw-r--r--development/zmac/zmac.SlackBuild108
1 files changed, 108 insertions, 0 deletions
diff --git a/development/zmac/zmac.SlackBuild b/development/zmac/zmac.SlackBuild
new file mode 100644
index 000000000000..61312de89e36
--- /dev/null
+++ b/development/zmac/zmac.SlackBuild
@@ -0,0 +1,108 @@
+#!/bin/bash
+
+# Slackware build script for zmac
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# This is a combo: the assembler and the linker in one package.
+
+# VERSION is the zmac version (which is just a release date) plus
+# the ld80 version. I downloaded the .zip files from the author's
+# site, but as they're unversioned there (zmac.zip and ld80.zip),
+# they will be replaced with newer versions someday, and break this
+# SlackBuild. So I put them on my server with versioned filenames
+# (otherwise unmodified).
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=zmac
+VERSION=${VERSION:-20221018_0.7}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+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
+
+ZMACVER="$( echo $VERSION | cut -d_ -f1 )"
+LD80VER="$( echo $VERSION | cut -d_ -f2 )"
+ZMAC=zmac-$ZMACVER
+LD80=ld80-$LD80VER
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+mkdir $PRGNAM-$VERSION
+cd $PRGNAM-$VERSION
+TOPDIR=$(pwd)
+mkdir zmac-$ZMACVER ld80-$LD80VER
+unzip -j $CWD/$ZMAC.zip -d $ZMAC -x '*.exe' '*.bat'
+unzip $CWD/$LD80.zip -d $LD80 -x '*.exe' '*.bat' '*.vcproj' '*.sln'
+chown -R root:root .
+chmod 755 *
+chmod 644 */*
+
+sed -i "s,-g,$SLKCFLAGS," $LD80/Makefile
+
+# These really do fail with -jN in the env, if N>1. They're also
+# small enough that it's not painfully slow with -j1.
+make -j1 -C $ZMAC CXXFLAGS="$SLKCFLAGS" CFLAGS="$SLKCFLAGS"
+make -j1 -C $LD80
+
+# No 'make install' for either one.
+PKGBIN=$PKG/usr/bin
+PKGMAN1=$PKG/usr/man/man1
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGBIN $PKGMAN1 $PKGDOC
+
+install -s $ZMAC/zmac $LD80/ld80 $PKGBIN
+
+# ld80 has a nice man page, zmac man page is copypasta from zmac.html.
+gzip -9c < $CWD/zmac.1 > $PKGMAN1/zmac.1.gz
+gzip -9c < $LD80/ld80.1 > $PKGMAN1/ld80.1.gz
+
+# HTML doc is built into the binary, extract it. Don't bother with doc.txt,
+# since it's the source for the HTML.
+./$ZMAC/zmac --doc > $PKGDOC/zmac.html
+
+cp -a $LD80/ld80.html $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE