diff options
Diffstat (limited to 'system/kegs/kegs.SlackBuild')
-rw-r--r-- | system/kegs/kegs.SlackBuild | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/system/kegs/kegs.SlackBuild b/system/kegs/kegs.SlackBuild new file mode 100644 index 0000000000..debc922f51 --- /dev/null +++ b/system/kegs/kegs.SlackBuild @@ -0,0 +1,125 @@ +#!/bin/bash + +# Slackware build script for kegs + +# Written by B. Watson (yalhcru@gmail.com) + +PRGNAM=kegs +VERSION=${VERSION:-0.91} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM.$VERSION +tar xvf $CWD/$PRGNAM.$VERSION.tar.gz +cd $PRGNAM.$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -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 {} \; + +# xkegs refuses to close (close button greyed-out by window manager). +# Small patch by SlackBuild author fixes this large annoyance (which is +# extra-annoying because there's also no Quit option in the kegs menu). +# I've sent this upstream, maybe it'll get integrated in future versions. +patch -p1 < $CWD/allow_window_close.diff + +cd src +rm -f vars +ln -s vars_x86linux vars +make CCOPTS="$SLKCFLAGS" x$PRGNAM to_pro partls +cd - + +# No install target, just stick it all where it goes. +# The icon was converted from the Mac OSX icon with icns2png. +# The .desktop has 'Terminal=true' because xkegs *really* wants +# to be started from a terminal (the debugger uses stdio, and +# is too easy to accidentally enter by center-clicking the window). + +mkdir -p \ + $PKG/usr/bin \ + $PKG/usr/libexec \ + $PKG/usr/share/pixmaps \ + $PKG/usr/share/applications \ + $PKG/usr/share/$PRGNAM \ + $PKG/usr/man/man1 +install -s -m0755 x$PRGNAM $PKG/usr/libexec/ +install -s -m0755 src/to_pro src/partls $PKG/usr/bin/ +install -m0755 $CWD/x$PRGNAM.sh $PKG/usr/bin/x$PRGNAM +install -m0644 $CWD/$PRGNAM.png $PKG/usr/share/pixmaps/ +install -m0644 $CWD/$PRGNAM.desktop $PKG/usr/share/applications/ + +# Man pages are specific to the SlackBuild, though I've sent +# them upstream for consideration. +for file in $CWD/*.1; do + sed "s/@VERSION@/$VERSION/g" $file \ + | gzip -9c \ + > $PKG/usr/man/man1/$( basename $file ).gz +done + +# Half the supplied documentation refers to it as "kegs" and +# the other half calls it "xkegs". To avoid confusion: +ln -s x$PRGNAM.1.gz $PKG/usr/man/man1/$PRGNAM.1.gz +ln -s x$PRGNAM $PKG/usr/bin/$PRGNAM + +# Handle the ROM image, if we find it. Filenames are listed in +# reverse order of preference. +for file in ROM01 rom01 ROM03 rom03; do + if [ -e "$CWD/$file" ]; then + ROMFILE="$CWD/$file" + fi +done + +if [ -e "$ROMFILE" ]; then + ROMNAME="$( basename "$ROMFILE" )" + install -m0644 "$ROMFILE" $PKG/usr/share/$PRGNAM +else + # We don't have a ROM, so we don't include one in the package, but we + # do still set the path to /usr/share/kegs/rom03 in the config file, + # so all the user has to do is copy the ROM there later. + ROMNAME=rom03 +fi + +sed "s,@ROM@,/usr/share/$PRGNAM/$ROMNAME," \ + < $CWD/config.$PRGNAM.default \ + > $PKG/usr/share/$PRGNAM/config.$PRGNAM.default + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +install -m0644 *.txt $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $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:-tgz} |