-#!/bin/sh
-
-#
-# Yoink
-# Run this script to create a win32 package.
-#
-# You should typically only run this through the "portable" and "installer"
-# makes targets in the package root directory. The build system will take
-# care to pass the correct arguments.
-#
-
-showhelp()
-{
- echo "Usage: $0 [-h] [-i makensis] [-s strip] -d assets -V version -p prefix"
- echo " Creates a portable win32 package or installer."
- echo ""
- echo " -V Specify the version of the program to be packaged"
- echo " -d Specify the game assets to be included."
- echo " -h Show this help an exit."
- echo " -i To make an installer, specify the makensis program."
- echo " -p Specify the path to your toolchain installation."
- echo " -s To strip the binaries, specify the strip program."
-}
-
-while getopts ":V:hd:i:p:s:" opt
-do
- case $opt in
- V)
- VERSION="$OPTARG"
- ;;
- d)
- ASSETS="$OPTARG"
- ;;
- h)
- showhelp
- exit 0
- ;;
- i)
- MAKENSIS="$OPTARG"
- ;;
- p)
- PREFIX="$OPTARG"
- ;;
- s)
- STRIP="$OPTARG"
- ;;
- \?)
- echo "Invalid option: -$OPTARG" >&2
- showhelp
- exit 1
- ;;
- esac
-done
-
-if test "x$ASSETS" = x || test "x$VERSION" = x || test "x$PREFIX" = x
-then
- showhelp
- exit 1
-fi
-
-die()
-{
- rm -rf "$BUILD"
- echo "die:" $@
- exit 1
-}
-
-ROOT="$PWD"
-BUILD=`mktemp -d "$ROOT/tmp-XXXXXXXX"`
-DIRECTORY="yoink-$VERSION"
-ARCHIVE="$BUILD/$DIRECTORY"
-
-MAN2HTML="lua $ROOT/doc/man2html.lua"
-UNIX2DOS="$ROOT/arch/win32/unix2dos.sh"
-
-DLLS="libogg-0 libpng14 libvorbis-0 libvorbisfile-3 lua51 OpenAL32 SDL zlib1"
-
-
-if test ! -f "src/version.c"
-then
- echo "Run the script from the repository root directory."
- exit 1
-fi
-
-if test ! -d "$BUILD"
-then
- "The temp directory $BUILD could not be created."
- exit 1
-fi
-mkdir -p "$ARCHIVE"
-
-
-cp -f "$ROOT/src/yoink.exe" "$ARCHIVE" || die "copying yoink.exe"
-test "x$STRIP" != x && "$STRIP" "$ARCHIVE/yoink.exe"
-
-for dll in $DLLS
-do
- cp -f "$PREFIX/bin/$dll.dll" "$ARCHIVE" || die "copying $dll"
- test "x$STRIP" != x && "$STRIP" "$ARCHIVE/$dll.dll"
-done
-
-for asset in $ASSETS
-do
- cp -f --parents "data/$asset" "$ARCHIVE"
-done
-
-for doc in AUTHORS ChangeLog COPYING README TODO
-do
- "$UNIX2DOS" "$doc" "$ARCHIVE/$doc.txt" || die "unix2dos $doc"
-done
-
-$MAN2HTML -o "$ARCHIVE/Manual.html"
-$UNIX2DOS "$ARCHIVE/Manual.html"
-
-cp -rf "$ROOT/doc/licenses" "$ARCHIVE" || die "copying doc/licenses"
-cd "$ARCHIVE/licenses"
-for license in $(ls)
-do
- (mv "$license" "$license.txt" && "$UNIX2DOS" "$license.txt") \
- || die "moving and unix2dos $license"
-done
-cd "$ROOT"
-
-
-if test "x$MAKENSIS" = x
-then
-# build portable archive
- echo "No valid makensis executable passed;"
- echo "making portable package instead..."
- NAME="$DIRECTORY.zip"
- cd "$BUILD"
- zip -r "$NAME" "$DIRECTORY" || die "zipping portable archive"
- cd "$ROOT"
- mv "$BUILD/$NAME" .
- echo "Done! Package saved to $NAME."
-else
-# build an installer
- NAME="yoinksetup-$VERSION.exe"
- cd "$BUILD"
- cp "$ROOT/arch/win32/yoink.nsi" .
- "$MAKENSIS" -DROOTPATH="$ROOT" -DINSTALLFILES="$ARCHIVE" \
- -DVERSION="$VERSION" -DOUTFILE="$NAME" yoink.nsi \
- || die "running '$MAKENSIS'"
- cd "$ROOT"
- mv "$BUILD/$NAME" .
- echo "Done! Installer saved to $NAME."
-fi
-
-
-rm -rf "$BUILD"
-