aboutsummaryrefslogtreecommitdiff
path: root/games/tuxnes/tuxnes.SlackBuild
blob: 40e4bea2b360cfc05ee202010331d7a706929916 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash

# Slackware build script for tuxnes
# Written by Kyle Guinn <elyk03@gmail.com>
# Updated slightly by B. Watson <yalhcru@gmail.com>, with permission

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=tuxnes
VERSION=${VERSION:-0.75}
BUILD=${BUILD:-2}
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"
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
else
  cat <<EOF
$PRGNAM is partly written in x86 assembly language, therefore cannot
be built on the current architecture of "$ARCH".

Supported ARCH settings are "i586" and "i686".
EOF
  exit 1
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 -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 640 -o -perm 600 -o -perm 444 \
 -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# __FUNCTION__ is now a variable instead of a static string/macro in GCC 3.4+.
# Replace __FUNCTION__ with the actual function names where it appears.
patch -p0 < $CWD/patches/emu.c.patch

# Regenerate the build system so that it will support $CFLAGS.
patch -p0 < $CWD/patches/configure.in.patch
rm acconfig.h install-sh missing mkinstalldirs
aclocal
autoheader
automake -a
autoconf

CFLAGS="$SLKCFLAGS -fno-strict-aliasing" \
./configure \
  --prefix=/usr \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --with-x \
  --build=$ARCH-slackware-linux

make
make install-strip DESTDIR=$PKG

# If the gtuxnes source tarball exists, install that too.
# http://www.sourcefiles.org/Emulators/Videogames/gtuxnes-0.75.tar.gz
( cd $TMP
  PRGNAM=gtuxnes
  VERSION=0.75
  if [ -e $CWD/$PRGNAM-$VERSION.tar.gz ]; then
    rm -rf $PRGNAM-$VERSION
    tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
    cd $PRGNAM-$VERSION
    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 640 -o -perm 600 -o -perm 444 \
      -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

    # Patch the Makefile to support $CFLAGS
    patch -p0 < $CWD/patches/Makefile.patch
    CFLAGS="$SLKCFLAGS" make
    install -s -m0755 -oroot -groot $PRGNAM $PKG/usr/bin

    # Icon by Deleket (Jojo Mendoza), downloaded from:
    # http://www.iconarchive.com/show/gaming-icons-by-deleket/Nintendo-NES-icon.html
    mkdir -p $PKG/usr/share/pixmaps
    cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png

    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 AUTHORS CHANGES COPYING README TODO \
      $PKG/usr/doc/$PRGNAM-$VERSION
  fi
) || exit 1

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS BUGS CHANGES COPYING ChangeLog NEWS README THANKS \
  $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

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE