#!/bin/bash function copydll () { if [ -f $GTK/bin/$1 ] ; then echo "cp $GTK/bin/$1 $2" cp $GTK/bin/$1 $2 || return 1 return 0 fi if [ -f $GTK/lib/$1 ] ; then echo "cp $GTK/lib/$1 $2" cp $GTK/lib/$1 $2 || return 1 return 0 fi if [ -f $A3/bin/$1 ] ; then echo "cp $A3/bin/$1 $2" cp $A3/bin/$1 $2 || return 1 return 0 fi if [ -f $A3/lib/$1 ] ; then echo "$A3/lib/$1 $2" cp $A3/lib/$1 $2 || return 1 return 0 fi if which $1 ; then echo "cp `which $1` $2" cp `which $1` $2 || return 1 return 0 fi echo "there is no $1" return 1 } # libcrypto-10.dll -- OOPS # libgnomecanvasmm-2.6-1.dll -- OOPS # iconv.dll == libiconv-2.dll # libpng15-15.dll == libpng16-16.dll # liblo-7.dll == liblo.dll ABANDONEDDLLS=' jack-0.dll jackserver-0.dll libbz2-1.dll libcppunit-1-12-1.dll libexpat-1.dll libgnurx-0.dll libharfbuzz-0.dll libFLAC-8.dll libvorbis-0.dll libvorbisenc-2.dll libidn-11.dll libssh2-1.dll libssl-10.dll pthreadGC2.dll ' DLLS=' libiconv-2.dll libpng16-16.dll liblo.dll libart_lgpl_2-2.dll libatk-1.0-0.dll libatkmm-1.6-1.dll libcairo-2.dll libcairo-gobject-2.dll libcairomm-1.0-1.dll libcairo-script-interpreter-2.dll libcurl-4.dll libfftw3-3.dll libfftw3f-3.dll libfontconfig-1.dll libfreetype-6.dll libgailutil-18.dll libgdkmm-2.4-1.dll libgdk_pixbuf-2.0-0.dll libgdk-win32-2.0-0.dll libgio-2.0-0.dll libgiomm-2.4-1.dll libglib-2.0-0.dll libglibmm-2.4-1.dll libglibmm_generate_extra_defs-2.4-1.dll libgmodule-2.0-0.dll libgnomecanvas-2-0.dll libgobject-2.0-0.dll libgthread-2.0-0.dll libgtkmm-2.4-1.dll libgtk-win32-2.0-0.dll libiconv-2.dll libogg-0.dll libffi-6.dll libintl-8.dll libpango-1.0-0.dll libpangocairo-1.0-0.dll libpangoft2-1.0-0.dll libpangomm-1.4-1.dll libpangowin32-1.0-0.dll libpixman-1-0.dll libsamplerate-0.dll libsigc-2.0-0.dll libsndfile-1.dll libxml2-2.dll zlib1.dll libstdc++-6.dll libgcc_s_sjlj-1.dll libwinpthread-1.dll libeay32.dll ssleay32.dll libregex-1.dll libportaudio-2.dll ' . ./win32-env.sh . ./print-env.sh 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 echo "./waf --destdir=$PACKAGE_DIR install" ./waf --destdir=$PACKAGE_DIR install || exit 1 echo "Moving everything from $PACKAGE_DIR/msys to $PACKAGE_DIR ..." mv $PACKAGE_DIR/msys/* $PACKAGE_DIR || exit 1 rmdir $PACKAGE_DIR/msys || exit 1 echo "Moving Ardour dll's and executable to $PACKAGE_DIR ..." echo "mv $PACKAGE_DIR/lib/ardour3/*.dll $PACKAGE_DIR" echo "mv $PACKAGE_DIR/lib/ardour3/*.exe $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 || exit 1 # delete sh script rm $PACKAGE_DIR/ardour3 || exit 1 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 || exit 1 cp -r $BASE/libs/pbd/test $PACKAGE_DIR/pbd_testdata || exit 1 cp $BUILD_DIR/libs/evoral/run-tests.exe $PACKAGE_DIR/evoral-run-tests.exe || exit 1 mkdir -p $PACKAGE_DIR/test/testdata || exit 1 cp -r $BASE/libs/evoral/test/testdata/TakeFive.mid $PACKAGE_DIR/test/testdata || exit 1 cp -r $BASE/libs/ardour/test/data $PACKAGE_DIR/ardour_testdata || exit 1 fi echo "Copying mingw config files to $PACKAGE_DIR ..." # just copy it all for now cp -r $MINGW_ROOT/etc $PACKAGE_DIR || exit 1 cp -r $GTK/lib/gtk-2.0 $PACKAGE_DIR/lib || exit 1 cp -r $GTK/lib/gdk-pixbuf-2.0 $PACKAGE_DIR/lib || exit 1 cp $TOOLS_DIR/loaders.cache $PACKAGE_DIR/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache || exit 1 mkdir -p $PACKAGE_DIR/lib/pango/1.6.0/modules || exit 1 cp -r $GTK/lib/pango/1.6.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.6.0/modules || exit 1 cp -r $TOOLS_DIR/mingw64/* $PACKAGE_DIR/etc || exit 1 echo "Copying mingw shared libraries to $PACKAGE_DIR ..." for i in $DLLS; do copydll "$i" "$PACKAGE_DIR" || exit 1 done echo "Copying JACK server and drivers to $PACKAGE_DIR ..." # VK: -- FIXIT cp $MINGW_ROOT/bin/jackd.exe $PACKAGE_DIR || exit 1 # VK: -- FIXIT cp -r $MINGW_ROOT/bin/jack $PACKAGE_DIR || exit 1 # VK: -- FIXIT cp $MINGW_ROOT/bin/libportaudio-2.dll $PACKAGE_DIR || exit 1 SRC_DIRS=' libs/ardour libs/pbd libs/gtkmm2ext libs/midi++2 libs/evoral libs/panners libs/timecode libs/audiographer ' if test x$DEBUG != x ; then PACKAGE_SRC_DIR=$PACKAGE_DIR/src echo "Copying source files to $PACKAGE_SRC_DIR ..." mkdir -p $PACKAGE_SRC_DIR/libs || exit 1 cp -r $BASE/gtk2_ardour $PACKAGE_SRC_DIR || exit 1 for i in $SRC_DIRS; do cp -r -p $BASE/$i $PACKAGE_SRC_DIR/libs || exit 1 done echo "Copying JACK utility programs to $PACKAGE_DIR ..." # VK: -- FIXIT cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR || exit 1 echo "Copying any debug files to $PACKAGE_DIR ..." # VK: -- FIXIT cp $MINGW_ROOT/bin/*.debug $PACKAGE_DIR || exit 1 echo "Copying gdb to $PACKAGE_DIR ..." cp $MINGW_ROOT/bin/gdb.exe $PACKAGE_DIR || exit 1 echo "Copying .gdbinit to $PACKAGE_DIR ..." cp $TOOLS_DIR/gdbinit $PACKAGE_DIR/.gdbinit || exit 1 echo "Copying Gtk demo to $PACKAGE_DIR ..." cp $GTK/bin/gtk-demo.exe $PACKAGE_DIR || exit 1 else echo "Optimized build Stripping executable ..." $STRIP $PACKAGE_DIR/ardour-3.0.exe || exit 1 echo "Stripping libraries ..." || exit 1 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 || exit 1 fi if [ "$1" == "--zip" ]; then echo "Creating zip file from $PACKAGE_DIR ..." cd $BASE || exit 1 zip -r $PACKAGE_DIR.zip $PACKAGE_DIR || exit 1 fi