13
0
livetrax/tools/windows_packaging/package.sh
Tim Mayberry 2379321355 Change windows packaging to have separate scripts for Fedora 19 and 20
A large part of the packaging is shared in package.sh, this approach should
work on windows with another dll list in package-waves.sh and redefined
copydll function(which I've added untested as copydll-waves.sh)

Also add support for 64bit mingw builds via ARCH env variable. If unset
defaults to 32bit build
2014-05-14 09:47:59 +10:00

140 lines
3.6 KiB
Bash
Executable File

#!/bin/bash
. ./mingw-env.sh
. ./print-env.sh
if [ -z "$DLLS" ]; then
echo "ERROR: DLLS variable is not defined..."
exit 1
fi
cd $BASE || exit 1
if ! test -f $BUILD_CACHE_FILE; then
echo "ERROR: $APPNAME is not configured and built yet..."
exit 1
fi
if [ -d $PACKAGE_DIR ]; then
echo "Removing old package directory structure ..."
rm -rf $PACKAGE_DIR || exit 1
fi
./waf --destdir=$PACKAGE_DIR install || exit 1
echo "Moving Ardour dll's and executable to $PACKAGE_DIR ..."
mv $PACKAGE_DIR/lib/ardour3/*.dll $PACKAGE_DIR || exit 1
mv $PACKAGE_DIR/lib/ardour3/*.exe $PACKAGE_DIR || exit 1
echo "Deleting import libs ..."
rm $PACKAGE_DIR/lib/*dll.a
# delete sh script
rm $PACKAGE_DIR/ardour3
if test x$WITH_TESTS != x ; then
echo "Copying tests and test data to $PACKAGE_DIR ..."
cp $BUILD_DIR/libs/pbd/run-tests.exe $PACKAGE_DIR/pbd-run-tests.exe
cp -r $BASE/libs/pbd/test $PACKAGE_DIR/pbd_testdata
cp $BUILD_DIR/libs/evoral/run-tests.exe $PACKAGE_DIR/evoral-run-tests.exe
mkdir -p $PACKAGE_DIR/test/testdata
cp -r $BASE/libs/evoral/test/testdata/TakeFive.mid $PACKAGE_DIR/test/testdata
cp -r $BASE/libs/ardour/test/data $PACKAGE_DIR/ardour_testdata
fi
echo "Copying mingw config files to $PACKAGE_DIR ..."
# just copy it all for now
cp -r $MINGW_ROOT/etc $PACKAGE_DIR
cp -r $MINGW_ROOT/lib/gtk-2.0 $PACKAGE_DIR/lib
cp -r $MINGW_ROOT/lib/gdk-pixbuf-2.0 $PACKAGE_DIR/lib
cp $TOOLS_DIR/loaders.cache $PACKAGE_DIR/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
if test x$WITH_PANGO_1_6 != x; then
mkdir -p $PACKAGE_DIR/lib/pango/1.6.0/modules
cp -r $MINGW_ROOT/lib/pango/1.6.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.6.0/modules
else
mkdir -p $PACKAGE_DIR/lib/pango/1.8.0/modules
cp -r $MINGW_ROOT/lib/pango/1.8.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.8.0/modules
fi
cp $TOOLS_DIR/pango.modules $PACKAGE_DIR/etc/pango
cp $TOOLS_DIR/README $PACKAGE_DIR
echo "Copying mingw shared libraries to $PACKAGE_DIR ..."
for i in $DLLS;
do
copydll "$i" "$PACKAGE_DIR" || exit 1
done
if test x$WITH_JACK != x; then
echo "Copying JACK server and drivers to $PACKAGE_DIR ..."
cp $MINGW_ROOT/bin/jackd.exe $PACKAGE_DIR
cp -r $MINGW_ROOT/bin/jack $PACKAGE_DIR
fi
SRC_DIRS='
libs/ardour
libs/pbd
libs/gtkmm2ext
libs/midi++2
libs/evoral
libs/panners
libs/timecode
libs/audiographer
'
if [ x$DEBUG = xT ]; then
PACKAGE_SRC_DIR=$PACKAGE_DIR/src
echo "Copying source files to $PACKAGE_SRC_DIR ..."
mkdir -p $PACKAGE_SRC_DIR/libs
cp -r $BASE/gtk2_ardour $PACKAGE_SRC_DIR
for i in $SRC_DIRS;
do
cp -r -p $BASE/$i $PACKAGE_SRC_DIR/libs
done
if test x$WITH_JACK != x; then
echo "Copying JACK utility programs to $PACKAGE_DIR ..."
cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR
fi
#echo "Copying any debug files to $PACKAGE_DIR ..."
#cp $MINGW_ROOT/bin/*.debug $PACKAGE_DIR
echo "Copying gdb and config files to $PACKAGE_DIR ..."
cp $MINGW_ROOT/bin/gdb.exe $PACKAGE_DIR
cp $TOOLS_DIR/gdbinit $PACKAGE_DIR/.gdbinit
cp $TOOLS_DIR/gdbinit_home $PACKAGE_DIR/gdbinit_home
cp $TOOLS_DIR/gdb.bat $PACKAGE_DIR/gdb.bat
cp $TOOLS_DIR/gdb-ardour.bat $PACKAGE_DIR/gdb-ardour.bat
echo "Copying Gtk demo to $PACKAGE_DIR ..."
cp $MINGW_ROOT/bin/gtk-demo.exe $PACKAGE_DIR
else
echo "Optimized build Stripping executable ..."
find $PACKAGE_DIR -type f -name "*.exe*" | xargs $STRIP
echo "Stripping libraries ..."
find $PACKAGE_DIR -type f -name "*.dll*" | xargs $STRIP
fi
if [ "$1" == "--tarball" ]; then
echo "Creating tarball from $PACKAGE_DIR ..."
cd $BASE || exit 1
tar -cvJf $PACKAGE_DIR.tar.xz $PACKAGE_DIR
fi
if [ "$1" == "--zip" ]; then
echo "Creating zip file from $PACKAGE_DIR ..."
cd $BASE || exit 1
zip -r $PACKAGE_DIR.zip $PACKAGE_DIR
fi