#!/bin/bash function do_patch() { for f in ../patches/*.patch ; do patch -p0 -N -i $f done } function do_unpatch() { local patchlist="" for f in ../patches/*.patch ; do patchlist="$f $patchlist" done for f in $patchlist ; do patch -p0 -R -i $f done } function build_icons() { if [ "$DISPLAY" = "" ]; then echo echo "ERROR: Need an X server to build the icons. (DISPLAY is not set)" exit 1 fi CC=cc CFLAGS= make make -C icons illumeicons make clean } function build() { cd puzzles do_patch ./mkfiles.pl if [ ! -e icons/loopy-86d24.png ]; then build_icons fi if [ ! -e icons/loopy-86d24.png ]; then echo echo "ERROR: Failed to build icons." exit 1 fi local MYCFLAGS="$CFLAGS" MYCFLAGS="$MYCFLAGS -DSLOW_SYSTEM" MYCFLAGS="$MYCFLAGS -DSMALL_SCREEN" MYCFLAGS="$MYCFLAGS -DPORTRAIT_SCREEN" MYCFLAGS="$MYCFLAGS -DSTYLUS_BASED" #MYCFLAGS="$MYCFLAGS -DVIVID_COLOURS" CFLAGS="$MYCFLAGS" make do_unpatch cd .. } function make_destdir() { if [ -e $DESTDIR ]; then rm -rf $DESTDIR fi if [ -e $DESTDIR ]; then echo echo "ERROR: Unable to remove $DESTDIR dir." exit 1 fi mkdir $DESTDIR if [ ! -d $DESTDIR ]; then echo echo "ERROR: Unable to create $DESTDIR dir." exit 1 fi } function install() { if [ "$DESTDIR" = "" -o "$DESTDIR" = "." -o "$DESTDIR" = "build" ]; then DESTDIR=build export DESTDIR make_destdir fi if [ "$STRIP" = "" ]; then STRIP=strip fi mkdir -p $DESTDIR/etc $DESTDIR/usr/bin $DESTDIR/usr/games mkdir -p $DESTDIR/usr/share/sgt-puzzles mkdir -p $DESTDIR/usr/share/pixmaps/sgt-puzzles mkdir -p $DESTDIR/usr/share/applications/sgt-puzzles cd puzzles make DESTDIR=../$DESTDIR prefix=/usr install cd .. echo "copying package files" sed 's/Portions copyright /Portions copyright Frode Austvik, /' < puzzles/LICENCE > $DESTDIR/usr/share/sgt-puzzles/LICENSE cp gameinfo $DESTDIR/usr/share/sgt-puzzles/ cp sgt-puzzles.conf $DESTDIR/etc/sgt-puzzles.conf cp sgt-puzzles-desktop $DESTDIR/usr/bin/ echo "stripping executables and copying icons" for f in $DESTDIR/usr/games/* ; do $STRIP $f fn=`basename $f` cp puzzles/icons/$fn-86d24.png $DESTDIR/usr/share/pixmaps/sgt-puzzles/$fn.png done echo "copying packaging control files" mkdir $DESTDIR/CONTROL cp ipkg/conffiles ipkg/postinst ipkg/prerm $DESTDIR/CONTROL/ PUZZLESVERSION=`svnversion -c puzzles | sed s/.*\:// ` PACKAGEVERSION=`svnversion -c . | sed s/.*\:// ` VERSION=$PUZZLESVERSION-p$PACKAGEVERSION echo "Installed Version: $VERSION" sed "s/^Version: .*\$/Version: $VERSION/" < ipkg/control > $DESTDIR/CONTROL/control } function clean() { if [ "$DESTDIR" = "" -o "$DESTDIR" = "." -o "$DESTDIR" = "build" ]; then if [ -d build ]; then echo "rm -rf build" rm -rf build fi fi make -C puzzles clean if [ "$1" = "icons" ]; then make -C puzzles/icons clean fi } if [ ! -e ipkg/rules -o ! -d puzzles ]; then echo "This file should be run from the base directory (that holds the ipkg dir)." exit 1 fi case $1 in build) build ;; install) install ;; clean) clean $2 ;; patch|unpatch) cd puzzles do_$1 ;; *) echo "Usage: ipkg/rules {build|install|clean[ icons]|[un]patch}" exit 1 ;; esac