Add cross header.
authorCarl Hetherington <cth@carlh.net>
Sun, 22 Jul 2012 17:39:25 +0000 (18:39 +0100)
committerCarl Hetherington <cth@carlh.net>
Sun, 22 Jul 2012 17:39:25 +0000 (18:39 +0100)
src/tools/fixlengths.cc
src/tools/makedcp.cc
src/tools/servomatic.cc
src/tools/wscript
test/wscript
wscript

index 52696cd8ba22158268e0b4591d80e413f8e7a600..16c5de8050800e9eba8be79ba0c8edc5b74bb8bd 100644 (file)
@@ -24,6 +24,7 @@
 #include <sndfile.h>
 #include <boost/filesystem.hpp>
 #include "lib/film.h"
+#include "lib/cross.h"
 
 using namespace std;
 using namespace boost;
index fef0dd016a6847bac2bd6c1d19c980177289a70e..9d2088ca33d26f3864c5378819f47b620777b66c 100644 (file)
@@ -22,6 +22,9 @@
 #include <getopt.h>
 #include <libdcp/test_mode.h>
 #include <libdcp/version.h>
+#ifdef DVDOMATIC_WINDOWS
+#include "winsock2.h"
+#endif
 #include "format.h"
 #include "film.h"
 #include "filter.h"
@@ -133,8 +136,14 @@ main (int argc, char* argv[])
        bool all_done = false;
        bool first = true;
        while (!all_done) {
-               
+
+#ifdef DVDOMATIC_POSIX         
                sleep (5);
+#endif
+
+#ifdef DVDOMATIC_WINDOWS
+               /* XXX */
+#endif         
 
                if (!first && progress) {
                        cout << "\033[" << jobs.size() << "A";
index b312af3521407948014de77b138a6bcb5fac1a27..74be41e3939c9d4f2ed03ab5219846b5b1bcd648 100644 (file)
 #include <vector>
 #include <unistd.h>
 #include <errno.h>
+#ifdef DVDOMATIC_POSIX
 #include <sys/types.h> 
 #include <sys/socket.h>
 #include <netinet/in.h>
+#endif
 #include <boost/algorithm/string.hpp>
 #include <boost/thread.hpp>
 #include <boost/thread/mutex.hpp>
index 919c98e3f213e1c8df824f895d1e51c54583214e..95af35aa2c2f4bca584b0f879cc34e68304083e7 100644 (file)
@@ -1,5 +1,5 @@
 def build(bld):
-    for t in ['makedcp', 'servomatic', 'servomatictest', 'fixlengths']:
+    for t in ['makedcp', 'fixlengths']:
         obj = bld(features = 'cxx cxxprogram')
        obj.uselib = 'BOOST_THREAD'
        obj.includes = ['..']
@@ -8,7 +8,7 @@ def build(bld):
         obj.target = t
 
     if not bld.env.DISABLE_GUI:
-        for t in ['dvdomatic', 'playomatic', 'alignomatic']:
+        for t in ['dvdomatic', 'alignomatic']:
             obj = bld(features = 'cxx cxxprogram')
             obj.uselib = 'BOOST_THREAD GTKMM'
             obj.includes = ['..']
index cd9abb6f67a85d2f70bb9121eb1c2ed220af80d8..8a9cb22920aaf4e6eeb6b337f88b5a2c7cdd706a 100644 (file)
@@ -3,7 +3,7 @@ def configure(conf):
                               #define BOOST_TEST_MODULE Config test\n
                              #include <boost/test/unit_test.hpp>\n
                               int main() {}
-                              """, msg = 'Checking for boost unit testing library', lib = 'boost_unit_test_framework', uselib_store = 'BOOST_TEST')
+                              """, msg = 'Checking for boost unit testing library', lib = 'boost_unit_test_framework-mt', uselib_store = 'BOOST_TEST')
 
 def build(bld):
     obj = bld(features = 'cxx cxxprogram')
diff --git a/wscript b/wscript
index e45dd647d9df0ca718d0f1949f5aa24a9354ea9f..c2db55e7eb2cbeb860e75ccc64858915f8119577 100644 (file)
--- a/wscript
+++ b/wscript
@@ -9,15 +9,30 @@ def options(opt):
     opt.add_option('--debug-hash', action='store_true', default = False, help = 'print hashes of data at various points')
     opt.add_option('--enable-debug', action='store_true', default = False, help = 'build with debugging information and without optimisation')
     opt.add_option('--disable-gui', action='store_true', default = False, help = 'disable building of GUI tools')
+    opt.add_option('--disable-player', action='store_true', default = False, help = 'disable building of the player components')
     opt.add_option('--ffmpeg-083', action='store_true', default = False, help = 'Use FFmpeg version in Ubuntu 12.04')
+    opt.add_option('--target-windows', action='store_true', default = False, help = 'set up to do a cross-compile to Windows')
 
 def configure(conf):
     conf.load('compiler_cxx')
 
-    conf.env.append_value('CXXFLAGS', ['-D__STDC_CONSTANT_MACROS', '-D__STDC_LIMIT_MACROS', '-msse', '-mfpmath=sse', '-ffast-math', '-Wall'])
+    conf.env.append_value('CXXFLAGS', ['-D__STDC_CONSTANT_MACROS', '-msse', '-mfpmath=sse', '-ffast-math', '-fno-strict-aliasing', '-Wall', '-Wno-attributes'])
     conf.env.append_value('CXXFLAGS', ['-DDVDOMATIC_VERSION="%s"' % VERSION])
 
+    if conf.options.target_windows:
+        conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_WINDOWS')
+        conf.options.disable_player = True
+        conf.check(lib = 'ws2_32', uselib_store = 'WINSOCK2', msg = "Checking for library winsock2")
+    else:
+        conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_POSIX')
+
     conf.env.DEBUG_HASH = conf.options.debug_hash
+    conf.env.TARGET_WINDOWS = conf.options.target_windows
+    conf.env.DISABLE_GUI = conf.options.disable_gui
+    conf.env.DISABLE_PLAYER = conf.options.disable_player
+
+    if conf.options.disable_player:
+        conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_DISABLE_PLAYER')
 
     if conf.options.enable_debug:
         conf.env.append_value('CXXFLAGS', '-g')
@@ -27,8 +42,6 @@ def configure(conf):
     if conf.options.ffmpeg_083:
         conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_FFMPEG_0_8_3')
 
-    conf.env.DISABLE_GUI = conf.options.disable_gui
-
     conf.check_cfg(package = 'sigc++-2.0', args = '--cflags --libs', uselib_store = 'SIGC++', mandatory = True)
     conf.check_cfg(package = 'libavformat', args = '--cflags --libs', uselib_store = 'AVFORMAT', mandatory = True)
     conf.check_cfg(package = 'libavfilter', args = '--cflags --libs', uselib_store = 'AVFILTER', mandatory = True)
@@ -55,16 +68,26 @@ def configure(conf):
                               ssh_session s = ssh_new ();\n
                               return 0;\n
                               }
-                              """, msg = 'Checking for library libssh', lib = 'ssh', uselib_store = 'SSH')
+                              """, msg = 'Checking for library libssh', mandatory = False, lib = 'ssh', uselib_store = 'SSH')
                              
     conf.check_cxx(fragment = """
                              #include <boost/thread.hpp>\n
                              int main() { boost::thread t (); }\n
-                             """, msg = 'Checking for boost threading library', lib = 'boost_thread', uselib_store = 'BOOST_THREAD')
+                             """, msg = 'Checking for boost threading library',
+                              lib = ['boost_thread_win32-mt', 'boost_system-mt'], uselib_store = 'BOOST_THREAD')
     conf.check_cxx(fragment = """
                              #include <boost/filesystem.hpp>\n
                              int main() { boost::filesystem::copy_file ("a", "b"); }\n
-                             """, msg = 'Checking for boost filesystem library', libpath = '/usr/local/lib', lib = ['boost_filesystem', 'boost_system'], uselib_store = 'BOOST_FILESYSTEM')
+                             """, msg = 'Checking for boost filesystem library',
+                              libpath = '/usr/local/lib', lib = ['boost_filesystem-mt', 'boost_system-mt'], uselib_store = 'BOOST_FILESYSTEM')
+
+    conf.check_cc(fragment = """
+                             #include <glib.h>
+                             int main() { g_format_size (1); }
+                             """, msg = 'Checking for g_format_size ()',
+                             lib = 'glib',
+                             define_name = 'HAVE_G_FORMAT_SIZE',
+                             mandatory = False)
 
     conf.recurse('src')
     conf.recurse('test')