#include <string>
+#ifdef interface
+#undef interface
+#endif
+
#include <gtkmm.h>
#include "ardour/types.h"
#include "ardour/profile.h"
#include "ardour/session.h"
-#ifdef interface
-#undef interface
-#endif
-
#include "actions.h"
#include "add_route_dialog.h"
#include "add_video_dialog.h"
*/
#ifdef PLATFORM_WINDOWS
- Sleep(2000);
+ Glib::usleep(2 * G_USEC_PER_SEC);
#else
struct timespec t = { 2, 0 };
nanosleep (&t, 0);
#include "utils_videotl.h"
#include "i18n.h"
+#ifdef PLATFORM_WINDOWS
+#include <windows.h>
+#endif
+
using namespace Gtk;
using namespace std;
using namespace PBD;
using namespace PBD;
#ifdef PLATFORM_WINDOWS
+#include <windows.h>
#define sleep(X) Sleep((X) * 1000)
#endif
Glib::PatternSpec dll_extension_pattern("*backendRDC.dll");
#endif
#else
- Glib::PatternSpec dll_extension_pattern("*backend.dll");
+ Glib::PatternSpec dll_extension_pattern("*backend*.dll");
#endif
find_matching_files_in_search_path (backend_search_path (),
#include <sys/time.h>
#include <regex.h>
+#include <glibmm.h>
+
#include "dummy_audiobackend.h"
#include "pbd/error.h"
#include "i18n.h"
}
int timeout = 5000;
- while (!_running && --timeout > 0) { usleep (1000); }
+ while (!_running && --timeout > 0) { Glib::usleep (1000); }
if (timeout == 0 || !_running) {
PBD::error << _("DummyAudioBackend: failed to start process thread.") << endmsg;
{
for (std::vector<pthread_t>::const_iterator i = _threads.begin (); i != _threads.end (); ++i)
{
-#ifdef COMPILER_MINGW
- if (*i == GetCurrentThread ()) {
- return true;
- }
-#else // pthreads
if (pthread_equal (*i, pthread_self ()) != 0) {
return true;
}
-#endif
}
return false;
}
const int64_t nomial_time = 1e6 * _samples_per_period / _samplerate;
_dsp_load = elapsed_time / (float) nomial_time;
if (elapsed_time < nomial_time) {
- ::usleep (nomial_time - elapsed_time);
+ Glib::usleep (nomial_time - elapsed_time);
} else {
- ::usleep (100); // don't hog cpu
+ Glib::usleep (100); // don't hog cpu
}
} else {
_dsp_load = 1.0;
- ::usleep (100); // don't hog cpu
+ Glib::usleep (100); // don't hog cpu
}
clock1 = g_get_monotonic_time();
}
};
typedef typename RequestBuffer::rw_vector RequestBufferVector;
+#if defined(COMPILER_MINGW) && defined(PTW32_VERSION)
+ struct pthread_cmp
+ {
+ bool operator() (const ptw32_handle_t& thread1, const ptw32_handle_t& thread2)
+ {
+ return thread1.p < thread2.p;
+ }
+ };
+ typedef typename std::map<pthread_t,RequestBuffer*, pthread_cmp>::iterator RequestBufferMapIterator;
+ typedef std::map<pthread_t,RequestBuffer*, pthread_cmp> RequestBufferMap;
+#else
typedef typename std::map<pthread_t,RequestBuffer*>::iterator RequestBufferMapIterator;
typedef std::map<pthread_t,RequestBuffer*> RequestBufferMap;
+#endif
RequestBufferMap request_buffers;
static Glib::Threads::Private<RequestBuffer> per_thread_request_buffer;
#define localtime_r( _clock, _result ) \
( *(_result) = *localtime( (_clock) ), (_result) )
-#elif defined __MINGW64__
+#elif defined COMPILER_MINGW
# ifdef localtime_r
# undef localtime_r
# Boost headers
autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp')
- if conf.env['WINDOWS_VST_SUPPORT'] == True and Options.options.dist_target == 'mingw':
+ if Options.options.dist_target == 'mingw':
conf.check(compiler='cxx',
lib='ole32',
mandatory=True,
--- /dev/null
+#!/bin/bash
+
+function copydll () {
+ if [ -f $MINGW_ROOT/bin/$1 ] ; then
+ echo "cp $MINGW_ROOT/bin/$1 $2"
+ cp $MINGW_ROOT/bin/$1 $2 || return 1
+ return 0
+ fi
+
+ echo "ERROR: File $1 does not exist"
+ return 1
+}
--- /dev/null
+#!/bin/bash\r
+\r
+function copydll () {\r
+ if [ -f $GTK/bin/$1 ] ; then\r
+ echo "cp $GTK/bin/$1 $2"\r
+ cp $GTK/bin/$1 $2 || return 1\r
+ return 0\r
+ fi\r
+ \r
+ if [ -f $GTK/lib/$1 ] ; then\r
+ echo "cp $GTK/lib/$1 $2"\r
+ cp $GTK/lib/$1 $2 || return 1\r
+ return 0\r
+ fi\r
+ \r
+ if [ -f $A3/bin/$1 ] ; then\r
+ echo "cp $A3/bin/$1 $2"\r
+ cp $A3/bin/$1 $2 || return 1\r
+ return 0\r
+ fi\r
+\r
+ if [ -f $A3/lib/$1 ] ; then\r
+ echo "$A3/lib/$1 $2"\r
+ cp $A3/lib/$1 $2 || return 1\r
+ return 0\r
+ fi\r
+ if which $1 ; then \r
+ echo "cp `which $1` $2"\r
+ cp `which $1` $2 || return 1\r
+ return 0\r
+ fi\r
+ \r
+ echo "there is no $1"\r
+ return 1\r
+}\r
#!/bin/bash
-BASE=$(readlink -f $0)
-BASE=$(dirname $BASE) # up one
-BASE=$(dirname $BASE) # up one more
-BASE=$(dirname $BASE) # up one more
+if [ -z "$ARCH" ]; then
+ echo "ARCH not set defaulting to win32"
+ ARCH=win32
+elif [ "$ARCH" == "win32" ]; then
+ echo "ARCH set to win32"
+elif [ "$ARCH" == "win64" ]; then
+ echo "ARCH set to win64"
+else
+ echo "ARCH set invalid value aborting..."
+ exit 1
+fi
+
+if [ "$ARCH" == "win32" ]; then
+ HOST=i686-w64-mingw32
+else
+ HOST=x86_64-w64-mingw32
+fi
-HOST=i686-w64-mingw32
MINGW_ROOT=/usr/$HOST/sys-root/mingw
export PKG_CONFIG_PREFIX=$MINGW_ROOT
export WINRC=$HOST-windres
export STRIP=$HOST-strip
+BASE=$(readlink -f $0)
+BASE=$(dirname $BASE) # up one
+BASE=$(dirname $BASE) # up one more
+BASE=$(dirname $BASE) # up one more
+
BUILD_DIR=$BASE/build
BUILD_CACHE_FILE=$BUILD_DIR/c4che/_cache.py
TOOLS_DIR=$BASE/tools/windows_packaging
# Figure out the Build Type
if [ x$DEBUG = xT ]; then
- PACKAGE_DIR="$APPNAME-${release_version}-win32-dbg"
+ PACKAGE_DIR="$APPNAME-${release_version}-$ARCH-dbg"
else
- PACKAGE_DIR="$APPNAME-${release_version}-win32"
+ PACKAGE_DIR="$APPNAME-${release_version}-$ARCH"
fi
if grep -q "BUILD_TESTS = True" $BUILD_CACHE_FILE; then
--- /dev/null
+#!/bin/bash
+
+DLLS='
+jack-0.dll
+jackserver-0.dll
+libatk-1.0-0.dll
+libatkmm-1.6-1.dll
+libbz2-1.dll
+libcairo-2.dll
+libcairo-gobject-2.dll
+libcairomm-1.0-1.dll
+libcairo-script-interpreter-2.dll
+libcppunit-1-12-1.dll
+libcrypto-10.dll
+libcurl-4.dll
+libexpat-1.dll
+libfftw3-3.dll
+libfftw3f-3.dll
+libfontconfig-1.dll
+libfreetype-6.dll
+libgailutil-18.dll
+libgcc_s_sjlj-1.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
+libgnurx-0.dll
+libgobject-2.0-0.dll
+libgthread-2.0-0.dll
+libgtkmm-2.4-1.dll
+libgtk-win32-2.0-0.dll
+libharfbuzz-0.dll
+iconv.dll
+libFLAC-8.dll
+libogg-0.dll
+libvorbis-0.dll
+libvorbisenc-2.dll
+libffi-6.dll
+libidn-11.dll
+libintl-8.dll
+liblo-7.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
+libpng15-15.dll
+rubberband-2.dll
+libsamplerate-0.dll
+libsigc-2.0-0.dll
+libsndfile-1.dll
+libssh2-1.dll
+libssl-10.dll
+libstdc++-6.dll
+libtag.dll
+libxml2-2.dll
+pthreadGC2.dll
+portaudio-2.dll
+vamp-hostsdk-3.dll
+vamp-sdk-2.dll
+zlib1.dll
+'
+
+WITH_JACK='TRUE'
+
+. ./copydll-fedora.sh
+. ./package.sh
--- /dev/null
+#!/bin/bash
+
+DLLS='
+jack-0.dll
+jackserver-0.dll
+libatk-1.0-0.dll
+libatkmm-1.6-1.dll
+libbz2-1.dll
+libcairo-2.dll
+libcairo-gobject-2.dll
+libcairomm-1.0-1.dll
+libcairo-script-interpreter-2.dll
+libcppunit-1-12-1.dll
+libcrypto-10.dll
+libcurl-4.dll
+libexpat-1.dll
+libfftw3-3.dll
+libfftw3f-3.dll
+libfontconfig-1.dll
+libfreetype-6.dll
+libgailutil-18.dll
+libgcc_s_sjlj-1.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
+libgnurx-0.dll
+libgobject-2.0-0.dll
+libgthread-2.0-0.dll
+libgtkmm-2.4-1.dll
+libgtk-win32-2.0-0.dll
+libharfbuzz-0.dll
+iconv.dll
+libFLAC-8.dll
+libogg-0.dll
+libvorbis-0.dll
+libvorbisenc-2.dll
+libffi-6.dll
+libidn-11.dll
+libintl-8.dll
+liblo-7.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
+libpng16-16.dll
+rubberband-2.dll
+libsamplerate-0.dll
+libsigc-2.0-0.dll
+libsndfile-1.dll
+libssh2-1.dll
+libssl-10.dll
+libstdc++-6.dll
+libtag.dll
+libxml2-2.dll
+libwinpthread-1.dll
+portaudio-2.dll
+vamp-hostsdk-3.dll
+vamp-sdk-2.dll
+zlib1.dll
+'
+
+WITH_JACK='TRUE'
+
+. ./copydll-fedora.sh
+. ./package.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
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
-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
+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
-DLLS='
-jack-0.dll
-jackserver-0.dll
-libart_lgpl_2-2.dll
-libatk-1.0-0.dll
-libatkmm-1.6-1.dll
-libbz2-1.dll
-libcairo-2.dll
-libcairo-gobject-2.dll
-libcairomm-1.0-1.dll
-libcairo-script-interpreter-2.dll
-libcppunit-1-12-1.dll
-libcrypto-10.dll
-libcurl-4.dll
-libexpat-1.dll
-libfftw3-3.dll
-libfftw3f-3.dll
-libfontconfig-1.dll
-libfreetype-6.dll
-libgailutil-18.dll
-libgcc_s_sjlj-1.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
-libgnomecanvasmm-2.6-1.dll
-libgnurx-0.dll
-libgobject-2.0-0.dll
-libgthread-2.0-0.dll
-libgtkmm-2.4-1.dll
-libgtk-win32-2.0-0.dll
-libharfbuzz-0.dll
-libiconv-2.dll
-iconv.dll
-libFLAC-8.dll
-libogg-0.dll
-libvorbis-0.dll
-libvorbisenc-2.dll
-libffi-6.dll
-libidn-11.dll
-libintl-8.dll
-liblo-7.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
-libpng15-15.dll
-libsamplerate-0.dll
-libsigc-2.0-0.dll
-libsndfile-1.dll
-libssh2-1.dll
-libssl-10.dll
-libstdc++-6.dll
-libxml2-2.dll
-pthreadGC2.dll
-zlib1.dll
-'
-
echo "Copying mingw shared libraries to $PACKAGE_DIR ..."
for i in $DLLS;
do
-cp $MINGW_ROOT/bin/$i $PACKAGE_DIR
+ copydll "$i" "$PACKAGE_DIR" || exit 1
done
-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
-cp $MINGW_ROOT/bin/libportaudio-2.dll $PACKAGE_DIR
+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
do
cp -r -p $BASE/$i $PACKAGE_SRC_DIR/libs
done
-
- echo "Copying JACK utility programs to $PACKAGE_DIR ..."
- cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR
+
+ 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
# executing a test program is n/a when cross-compiling
if Options.options.dist_target != 'mingw':
+ conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL')
conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
execute = "1",
mandatory = True,
# TODO put this only where it is needed
conf.env.append_value('LIB', 'regex')
- if Options.options.dist_target != 'mingw':
- conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL')
-
- conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
- execute = "1",
- mandatory = True,
- msg = 'Checking for boost library >= 1.39',
- okmsg = 'ok',
- errmsg = 'too old\nPlease install boost version 1.39 or higher.')
-
# Tell everyone that this is a waf build
conf.env.append_value('CFLAGS', '-DWAF_BUILD')