#!/bin/sh # Slackware build script for bsnes # Written by Larry Hajali <larryhaja[at]gmail[dot]com> PRGNAM=bsnes VERSION=${VERSION:-091} 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${VERSION}-source tar xvf $CWD/${PRGNAM}_v${VERSION}-source.tar.xz cd ${PRGNAM}_v${VERSION}-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 {} \; cd $PRGNAM sed -e 's|audio.pulseaudio ||' \ -e 's|audio.pulseaudiosimple ||' \ -i 'target-ethos/Makefile' moc -i -Iphoenix/qt/ -o phoenix/qt/platform.moc phoenix/qt/platform.moc.hpp sed -e 's/sudo install/install/' \ -i 'target-ethos/Makefile' # Choose whether qt or gtk interface is used. Qt4 is default. if [ "${INTERFACE:-QT4}" != 'QT4' ]; then PHOENIX='gtk' else PHOENIX='qt' fi # Determine which mode to build bsnes. # Possible values for PROFILE: accuracy, compatibility, and performance. PROFILE=${PROFILE:-compatibility} CXXFLAGS="$SLKCFLAGS" \ make \ platform=x \ compiler=gcc \ prefix=/usr \ phoenix="$PHOENIX" \ profile="$PROFILE" make install profile=$PROFILE DESTDIR=$PKG prefix=/usr cd .. # Compile snespurify. It helps clean up ROMS for use with bsnes. cd purify # Fix building with QT >= 4.8.0. moc -i -Iphoenix/qt/ -o phoenix/qt/platform.moc phoenix/qt/platform.moc.hpp # Fix snespurify scripts. sed -e 's|link := -s|link := -s -lX11|' -i 'Makefile' make \ compiler=gcc \ platform=x \ phoenix="$PHOENIX" mkdir -p $PKG/usr/bin install -m 0755 purify $PKG/usr/bin/$PRGNAM-purify 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/share/$PRGNAM/profile cp -R bsnes/profile/* $PKG/usr/share/$PRGNAM/profile 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}