#!/bin/sh # # Slackware build script for Scourge - A rogue-like game. # # Heavily based on the Slackware 13.0 SlackBuild # Written by Luigi "Reilly" Cozzolino # URL: http://scourgeweb.org # Packager: Luigi "Reilly" Cozzolino # Exit on most errors: set -e ######## SCOURGE TARBALL SECTION ##################### TARNAME="scourge" TARVERSION="0.21.1" TARTYPE="tar.gz" TARBALL="${TARNAME}-${TARVERSION}.src.${TARTYPE}" SOURCEDIR="${TARNAME}" ######## END SCOURGE TARBALL SECTION ################# ######## SCOURGE_DATA TARBALL SECTION ################ SCOURGE_DATA="scourge-0.21.1.data" ######## END SCOURGE_DATA TARBALL SECTION ############ ######## SLACKWARE PACKAGE SECTION ################### PKGNAM="${TARNAME}" VERSION="${TARVERSION}" ARCH=${ARCH:-i486} BUILD="1lc" PKGTYPE="${PKGTYPE:-txz}" STENCIL_BUFFER=${STENCIL_BUFFER:--enable-stencil-buffer} ######## END SLACKWARE PACKAGE SECTION ############### CWD=$(pwd) TMP=${TMP:-$HOME/PKGS/${PKGNAM}} if [ "${ARCH}" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "${ARCH}" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" fi # Number of jobs to compile at once: if [ -z "$NUMJOBS" ]; then NUMJOBS=-j4 fi PKG=$TMP/package-${PKGNAM} rm -rf $PKG mkdir -p $PKG cd $TMP rm -rf ${SOURCEDIR} ${SOURCEDIR}_data clear sleep 1 echo ; echo ; echo echo "+===========================================================" echo -e "|\033[01;32m Building\033[00m \033[01;31m${TARBALL}\033[00m" echo "+===========================================================" sleep 5 # Checking tarball type... [ "${TARTYPE}" = "tar.gz" -o "${TARTYPE}" = "tgz" ] && switch="xvzf" [ "${TARTYPE}" = "tar.bz2" -o "${TARTYPE}" = "tbz" ] && switch="xvjf" # and finally extract it: tar $switch $CWD/${TARBALL} || exit 1 cd ${SOURCEDIR} # Make sure ownerships and permissions are sane: chown -R root:root . find . -perm 666 -exec chmod 644 {} \; find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; # Configure: autoreconf -i #./translate.sh CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --bindir=/usr/games \ --localedir=/usr/share/games/scourge/translations \ ${STENCIL_BUFFER} \ --with-data-dir=/usr/share/games/scourge \ --build=${ARCH}-slackware-linux || exit 1 # Build and install: make $NUMJOBS || exit 1 make install DESTDIR=$PKG || exit 1 # Strip binaries and libraries: ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) # Add `scourge_data' to package: mkdir -p $PKG/usr/share/games/scourge tar -xvzf $CWD/${SCOURGE_DATA}.tar.gz -C $PKG/usr/share/games || exit 1 ( cd $PKG/usr/share/games/scourge_data || exit 1 mv * --target-directory=$PKG/usr/share/games/scourge || exit 1 ) || exit 1 rmdir $PKG/usr/share/games/scourge_data # Move `localedir' to `/usr/share/games/scourge/translations': #( cd $PKG/usr/share && mv locale $PKG/usr/share/games/scourge/translations || exit 1 ) # Change ownerships: chown -R root:root $PKG/usr/share/games # Add some image icon file: mkdir -p $PKG/usr/share/pixmaps install -m 644 assets/scourge.png $PKG/usr/share/pixmaps || exit 1 # Add a desktop file: mkdir -p $PKG/usr/share/applications install -m 644 assets/scourge.desktop $PKG/usr/share/applications || exit 1 sed -i 's@^Categories=Game.*@Categories=Game;RolePlayingGame;@g' \ $PKG/usr/share/applications/scourge.desktop || exit 1 # Add a documentation directory: mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} cp -a \ ABOUT-NLS AUTHORS* ChangeLog* COPYING* INSTALL* NEWS* README* \ $PKG/usr/doc/${PKGNAM}-${VERSION} cat $CWD/${PKGNAM}.SlackBuild > $PKG/usr/doc/${PKGNAM}-${VERSION}/${PKGNAM}.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG requiredbuilder -v -y -s $CWD $PKG /sbin/makepkg -l y -c n $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.${PKGTYPE} # Checksum `md5' file creation: ( cd $TMP ; md5sum ${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.${PKGTYPE} > ${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.${PKGTYPE}.md5 ) # Final touches: ( cd $TMP ; cat $PKG/install/slack-desc | grep "^${PKGNAM}:" > ${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.txt ) # Clean up the extra stuff: if [ "$1" = "--cleanup" -o "$1" = "-c" ]; then rm -rf $TMP/${SOURCEDIR} ${SOURCEDIR}_data rm -rf $PKG fi