#!/bin/sh # Slackware build script for bsnes # Written by Larry Hajali PRGNAM=bsnes VERSION=${VERSION:-0.079} SRCVER=${VERSION:2} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) export ARCH=i486 ;; arm*) export ARCH=arm ;; *) export 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" 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 rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf ${PRGNAM}_v${SRCVER}-source tar xvf $CWD/${PRGNAM}_v${SRCVER}-source.tar.bz2 cd ${PRGNAM}_v${SRCVER}-source find . -type d -exec chmod -R 0755 {} \; 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 {} \; # Patch makefile so SLKCFLAGS are recognized and give option to choose # Qt4 or Gtk interface. patch -p1 < $CWD/bsnes-0.076-toolkit.patch patch -p1 < $CWD/bsnes-0.077-makefile.patch # Fix snespurify scripts. sed -i 's|g++-4.5|g++|g' snespurify/cc-{gtk,qt}.sh cd $PRGNAM # Remove pulseaudio as there is no package for it at SBo. # Comment out or delete the following 4 lines to enable pulseaudio. sed -i \ -e 's|audio.pulseaudio ||' \ -e 's|audio.pulseaudiosimple ||' \ -e '/pulse/d' ui{,-gameboy}/Makefile # Choose whether qt or gtk interface is used. Qt4 is default. INTERFACE=${INTERFACE:-QT4} if ! [ "$INTERFACE" == 'QT4' ]; then TOOLKIT='gtk' else TOOLKIT='qt' fi # Determine which mode to build bsnes. # Possible values for PROFILE are accuracy, compatibility, and performance. PROFILE=${PROFILE:-accuracy} # Determine which mode for profile in compatibility performance accuracy; do CXXFLAGS="$SLKCFLAGS" \ make \ platform=x \ compiler=gcc \ prefix=/usr \ toolkit="$TOOLKIT" \ profile="$PROFILE" make install DESTDIR=$PKG prefix=/usr cd .. # Compile snespurify. It helps clean up ROMS for use with bsnes. cd snespurify # Fix snespurify scripts. sed -i -e 's|g++-4.5|g++|g' -e "s|-O3|$SLKCFLAGS|" cc-{gtk,qt}.sh if [ "$INTERFACE" == "QT4" ]; then ./cc-qt.sh install -m 0755 snespurify-qt $PKG/usr/bin else ./cc-gtk.sh install -m 0755 snespurify-gtk $PKG/usr/bin fi cd .. find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true mkdir -p $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}