Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 130 lines (106 sloc) 4.262 kB
#!/usr/bin/env bash
#
# Script for creating a self-contained Wings package for Unix systems.
#
# Configurable stuff.
INSTALL=`which install`
MAKESELF=`which makeself makeself.sh 2> /dev/null | head -1`
if [ -z "$ESDL_PATH" ]; then
echo "The environment variable ESDL_PATH must be set to " \
"the top of the ESDL installation." >&2
exit 1
fi
ESDL_NAME=`basename $ESDL_PATH`
ERLANG_PATH=`echo 'io:format("~s~n",[code:root_dir()]),halt().' | erl | awk 'NR==2 {print $2}'`
# End of configurable stuff.
# Copy the Wings application.
WINGS_DIR="`pwd`"
WINGS_APP=`basename "$WINGS_DIR"`
WINGS_VSN=`echo "$WINGS_APP" | sed -e 's/.*wings-//'`
OS_NAME=`uname -s | perl -pe 'tr/[A-Z]/[a-z]/'`
DEST_ROOT="wings-$WINGS_VSN-$OS_NAME"
dest="$DEST_ROOT"
$INSTALL -d "$dest"
$INSTALL -c -m 644 README AUTHORS license.terms vsn.mk "$dest"
dest="$DEST_ROOT/lib/$WINGS_APP"
$INSTALL -d "$dest" "$dest/ebin" "$dest/patches"
$INSTALL -c -m 644 ebin/* "$dest/ebin"
$INSTALL -d "$dest/fonts"
$INSTALL -d "$dest/textures"
$INSTALL -d "$dest/shaders"
$INSTALL -c -m 644 textures/* "$dest/textures"
$INSTALL -c -m 644 shaders/* "$dest/shaders"
$INSTALL -d "$dest/plugins/default" \
"$dest/plugins/accel" \
"$dest/plugins/import_export" "$dest/plugins/commands" \
"$dest/plugins/primitives" "$dest/plugins/autouv" "$dest/plugins/jpeg"
$INSTALL -c -m 644 fonts/* "$dest/fonts"
$INSTALL -c -m 644 plugins/default/wp9_dialogs* "$dest/plugins/default"
$INSTALL -c -m 644 plugins/accel/* "$dest/plugins/accel"
$INSTALL -c -m 644 plugins/import_export/* "$dest/plugins/import_export"
$INSTALL -c -m 644 plugins/commands/* "$dest/plugins/commands"
$INSTALL -c -m 644 plugins/primitives/* "$dest/plugins/primitives"
$INSTALL -c -m 644 plugins/autouv/* "$dest/plugins/autouv"
$INSTALL -c -m 644 plugins/jpeg/* "$dest/plugins/jpeg"
# Copy the relevant parts of Erlang/OTP.
src="$ERLANG_PATH"
dest="$DEST_ROOT"
erts_src=`echo "$src"/erts-*`
stdlib=`basename "$src"/lib/stdlib-*`
kernel=`basename "$src"/lib/kernel-*`
xmerl=`basename "$src"/lib/xmerl-*`
$INSTALL -d "$dest/bin" \
"$dest/lib/$stdlib/ebin" \
"$dest/lib/$kernel/ebin" \
"$dest/lib/$xmerl/ebin"
$INSTALL -c -m 644 "$src"/lib/kernel-*/ebin/* "$dest/lib/$kernel/ebin"
$INSTALL -c -m 644 "$src"/lib/stdlib-*/ebin/* "$dest/lib/$stdlib/ebin"
$INSTALL -c -m 644 "$src"/lib/xmerl-*/ebin/* "$dest/lib/$xmerl/ebin"
$INSTALL -c "$erts_src/bin/erlexec" "$dest/bin/erlexec"
$INSTALL -c "$erts_src/bin/beam" "$dest/bin/beam"
$INSTALL -c "$erts_src/bin/child_setup" "$dest/bin/child_setup"
$INSTALL -c "$erts_src/bin/inet_gethost" "$dest/bin/inet_gethost"
strip --strip-debug "$dest/bin/erlexec"
strip --strip-debug "$dest/bin/beam"
strip --strip-debug "$dest/bin/child_setup"
strip --strip-debug "$dest/bin/inet_gethost"
$INSTALL -c -m 644 "$src/bin/start.boot" "$dest/bin"
# Copy the relevant parts of ESDL.
dest="$DEST_ROOT/lib/$ESDL_NAME"
$INSTALL -d "$dest/ebin" "$dest/priv"
$INSTALL -c -m 644 "$ESDL_PATH"/ebin/* "$dest/ebin"
$INSTALL -c "$ESDL_PATH"/priv/sdl_driver.so "$dest/priv"
rm -rf "$dest/ebin/sdl_audio.beam" "$dest/ebin/sdl_joystick.beam"
strip --strip-debug --strip-unneeded "$dest/priv/sdl_driver.so"
# Copy the SDL so.
sdl_lib=`ldd "$dest/priv/sdl_driver.so" | awk '$1 ~ /^libSDL/ { print $3}'`
sdl_lib_name=`basename $sdl_lib`
if [ ! -L $sdl_lib ]; then
echo `basename $0`: "$sdl_lib expected to be a symlink"
$INSTALL -c $sdl_lib "$dest/priv"
else
lib_dir=`dirname $sdl_lib`
linkname=`readlink $sdl_lib`
$INSTALL -c $lib_dir/$linkname "$dest/priv"
rm -f $dest/priv/$sdl_lib_name
(cd $dest/priv; ln -s $linkname $sdl_lib_name)
fi
#
# Remove files from OTP not needed.
#
$WINGS_DIR/tools/wings_reduce_otp "$DEST_ROOT"
# Strip debug information from all beam files.
cd "$latest_wings"
erlc -o/tmp tools/strip.erl
cd "$DEST_ROOT"
erl -noshell -pa /tmp -run strip strip
# Package the installer.
cd $WINGS_DIR
INSTALLER="$DEST_ROOT/install_wings"
sed -e "s;%WINGS_VSN%;$WINGS_VSN;" -e "s;%ESDL_NAME%;$ESDL_NAME;" -e "s;%LIB_SDL_NAME%;$sdl_lib_name;" $WINGS_DIR/unix/install_wings.src > $INSTALLER
chmod +x $INSTALLER
dest=$DEST_ROOT
$MAKESELF --bzip2 $dest $dest.bzip2.run Wings3D ./install_wings "$WINGS_VSN"
if [ -f $dest.run ]; then
cp $dest.run ..
fi
Jump to Line
Something went wrong with that request. Please try again.