--- /dev/null
+#!/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="$ROOT/tmp-$$"
+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 ! mkdir "$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"
+