#!/bin/bash # Slackware build script for fizmo # Written by B. Watson (yalhcru@gmail.com) # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # 20180709 bkw: seems to have been exactly a year... # - Updated for v0.8.5. # - Use github download URL. # - Add SDL2=no option. # - Add support for glktermw and remglk. # - Fix slack-desc and README typos. # - Update README for new optional deps. # - Make slack-desc show whether package built with (SDL2|glktermw|remglk). # 20170709 bkw: # - Updated for v0.8.5_b1. Normally we avoid betas, but 0.8.4 has a # horrible bug in its 'make install' target, and 0.8.5_b1 fixes # that bug and is otherwise identical to 0.8.4. # - Add icon, .desktop, and doinst. # - Add note about optional SDL2 dep to README. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=fizmo VERSION=${VERSION:-0.8.5} 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 the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information # could be useful to other scripts. 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 # 0.8.5 doesn't really need this, but leave it in place in case someone # wants to build 0.8.5_b1, or in case there's a future 0.8.6_b1 or # so. Needed because upstream's beta versions have -b1 suffix, and Slack # package version number can't have a dash. SRCVER=${VERSION/_/-} rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$SRCVER tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz cd $PRGNAM-$SRCVER 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 {} \+ # The configure script doesn't autodetect when sdl2 is missing, # so let's help it out a little. if [ "${SDL2:-yes}" = "yes" ] && pkg-config --exists sdl2; then SDLARG="--enable-sdl"; SDLYN="yes" else SDLARG="--disable-sdl"; SDLYN="no" fi # Likewise glktermw. Niche-market, but include for completeness' sake. if [ "${GLK:-yes}" = "yes" -a -e /usr/include/glktermw/glk.h ]; then GLKARG="--enable-glktermw --with-glktermw-includedir=/usr/include/glktermw" GLKYN="yes" else GLKARG="--disable-glktermw" GLKYN="no" fi # remglk looks even more niche-market than glktermw... speaks JSON, not # English, intended for stuff like a web or irc backend. if [ "${REMGLK:-yes}" = "yes" -a -e /usr/include/remglk/glk.h ]; then REMGLKARG="--enable-remglk --with-remglk-includedir=/usr/include/remglk" REMGLKYN="yes" else REMGLKARG="--disable-remglk" REMGLKYN="no" fi # fizmo-glktermw and fizmo-remglk don't have man pages. They're # experimental meaning likely to change frequently, so I'm too lazy to # write man pages for them. CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ $SDLARG \ $GLKARG \ $REMGLKARG \ --bindir=/usr/games \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ --docdir=/usr/doc/$PRGNAM-$VERSION \ --build=$ARCH-slackware-linux make make install-strip DESTDIR=$PKG ln -s $PRGNAM-ncursesw $PKG/usr/games/$PRGNAM gzip -9 $PKG/usr/man/man6/*.6 ln -s $PRGNAM-ncursesw.6.gz $PKG/usr/man/man6/$PRGNAM.6.gz ( cd doc ; ./create-txts.sh ) rm -f INSTALL.txt QUICKSTART.txt # don't need install instructions # Icon created by SlackBuild author, based on Slackware 14.2's # /usr/share/pixmaps/xterm-color_48x48.xpm mkdir -p $PKG/usr/share/pixmaps cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png # Desktop file written by SlackBuild author. It starts the curses version, # since the SDL2 version doesn't have a file-picker dialog if you start # it with no arguments (plus, SDL2 is optional). mkdir -p $PKG/usr/share/applications cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a *.txt $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install sed -e "s,@SDLYN@,$SDLYN," \ -e "s,@GLKYN@,$GLKYN," \ -e "s,@REMGLKYN@,$REMGLKYN," \ $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