fix pthread-windows semaphore detection
[ardour.git] / wscript
diff --git a/wscript b/wscript
index cefe9998d9e50ea57f6661563dad92ab46f14ac4..d28739a1346ca68e8eff679e35cf28dd91141ee0 100644 (file)
--- a/wscript
+++ b/wscript
@@ -963,6 +963,23 @@ int main () { int x = SFC_RF64_AUTO_DOWNGRADE; return 0; }
         conf.env.append_value('CXXFLAGS', '-DUSE_CAIRO_IMAGE_SURFACE')
         conf.define ('WINDOWS', 1)
 
+        have_ptw_semaphore = conf.check_cc(fragment = '''
+#include <pthread.h>
+#include <semaphore.h>
+int main () { return 0; }
+''',
+                                           features  = 'c',
+                                           mandatory = False,
+                                           execute   = False,
+                                           msg       = 'Checking for pthread posix semaphore',
+                                           okmsg     = 'Found',
+                                           errmsg    = 'Not found, falling back to Windows Semaphore.')
+
+        if have_ptw_semaphore:
+            conf.define('USE_PTW32_SEMAPHORE', 1)
+            conf.env.append_value('CFLAGS', '-DUSE_PTW32_SEMAPHORE')
+            conf.env.append_value('CXXFLAGS', '-DUSE_PTW32_SEMAPHORE')
+
     if Options.options.dist_target == 'msvc':
         conf.env.append_value('CFLAGS', '-DPLATFORM_WINDOWS')
         conf.env.append_value('CFLAGS', '-DCOMPILER_MSVC')
@@ -1144,7 +1161,8 @@ const char* const ardour_config_info = "\\n\\
     write_config_text('Phone home',            conf.is_defined('PHONE_HOME'))
     write_config_text('Program name',          opts.program_name)
     write_config_text('Samplerate',            conf.is_defined('HAVE_SAMPLERATE'))
-    write_config_text('PT format',            conf.is_defined('PTFORMAT'))
+    write_config_text('PT format',             conf.is_defined('PTFORMAT'))
+    write_config_text('PTW32 Semaphore',       conf.is_defined('USE_PTW32_SEMAPHORE'))
 #    write_config_text('Soundtouch',            conf.is_defined('HAVE_SOUNDTOUCH'))
     write_config_text('Translation',           opts.nls)
 #    write_config_text('Tranzport',             opts.tranzport)