summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/backends/jack/jack_portengine.cc2
-rw-r--r--libs/backends/jack/weak_libjack.h4
-rw-r--r--libs/backends/jack/wscript17
-rw-r--r--wscript4
4 files changed, 17 insertions, 10 deletions
diff --git a/libs/backends/jack/jack_portengine.cc b/libs/backends/jack/jack_portengine.cc
index caa962600b..1f0515b0e8 100644
--- a/libs/backends/jack/jack_portengine.cc
+++ b/libs/backends/jack/jack_portengine.cc
@@ -118,7 +118,7 @@ JACKAudioBackend::get_port_name (PortHandle port) const
int
JACKAudioBackend::get_port_property (PortHandle port, const std::string& key, std::string& value, std::string& type) const
{
-#ifndef NO_JACK_METADATA // really everyone ought to have this by now.
+#ifdef HAVE_JACK_METADATA // really everyone ought to have this by now.
int rv = -1;
char *cvalue = NULL;
char *ctype = NULL;
diff --git a/libs/backends/jack/weak_libjack.h b/libs/backends/jack/weak_libjack.h
index e18687b6c7..abfe3af8a8 100644
--- a/libs/backends/jack/weak_libjack.h
+++ b/libs/backends/jack/weak_libjack.h
@@ -155,7 +155,7 @@ int have_libjack(void);
#define jack_client_open WJACK_client_client_openXXX
-#ifndef NO_JACK_METADATA
+#ifdef HAVE_JACK_METADATA
/* <jack/metadata.h> */
#define jack_get_uuid_for_client_name WJACK_get_uuid_for_client_name
#define jack_get_client_name_by_uuid WJACK_get_client_name_by_uuid
@@ -181,7 +181,7 @@ int have_libjack(void);
#include <jack/session.h>
#include <jack/thread.h>
-#ifndef NO_JACK_METADATA
+#ifdef HAVE_JACK_METADATA
#include <jack/metadata.h>
#endif
diff --git a/libs/backends/jack/wscript b/libs/backends/jack/wscript
index 752682f8cc..2f3b349afe 100644
--- a/libs/backends/jack/wscript
+++ b/libs/backends/jack/wscript
@@ -37,10 +37,15 @@ def configure(conf):
else:
conf.env['libjack_link'] = "link"
- if not Options.options.libjack_meta:
- conf.define ('NO_JACK_METADATA', 1)
-
-
+ # Check that metadata API is available and working
+ conf.check_cxx(fragment = "#include <jack/jack.h>\n#include <jack/metadata.h>\nint main(void) { jack_port_uuid(NULL); return 0; }\n",
+ mandatory = False,
+ msg = 'Checking for JACK metadata API',
+ okmsg = 'ok',
+ errmsg = 'not found (or broken). JACK metadata API will not be used',
+ define_name = 'HAVE_JACK_METADATA',
+ linkflags=['-ljack'])
+
def build(bld):
obj = bld(features = 'c cxx cxxshlib')
obj.source = [
@@ -64,6 +69,10 @@ def build(bld):
obj.cxxflags = [ '-fPIC' ]
obj.cflags = [ '-fPIC' ]
+ if bld.is_defined ('HAVE_JACK_METADATA'):
+ obj.cxxflags += [ '-DHAVE_JACK_METADATA' ]
+ obj.cflags += [ '-DHAVE_JACK_METADATA' ]
+
if (bld.env['build_target'] == 'mingw'):
obj.uselib = [ 'PORTAUDIO' ]
else:
diff --git a/wscript b/wscript
index f9716d9998..6005f88d36 100644
--- a/wscript
+++ b/wscript
@@ -615,8 +615,6 @@ def options(opt):
help='Compile for use with gprofile')
opt.add_option('--libjack', type='string', default="auto", dest='libjack_link',
help='libjack link mode [auto|link|weak]')
- opt.add_option('--no-jack-metadata', action='store_false', default=True, dest='libjack_meta',
- help='disable support for jack metadata')
opt.add_option('--internal-shared-libs', action='store_true', default=True, dest='internal_shared_libs',
help='Build internal libs as shared libraries')
opt.add_option('--internal-static-libs', action='store_false', dest='internal_shared_libs',
@@ -1059,7 +1057,7 @@ const char* const ardour_config_info = "\\n\\
write_config_text('Freedesktop files', opts.freedesktop)
write_config_text('JACK Backend', conf.env['BUILD_JACKBACKEND'])
write_config_text('Libjack linking', conf.env['libjack_link'])
- write_config_text('Libjack metadata', not conf.is_defined('NO_JACK_METADATA'))
+ write_config_text('Libjack metadata', conf.is_defined ('HAVE_JACK_METADATA'))
write_config_text('LV2 UI embedding', conf.is_defined('HAVE_SUIL'))
write_config_text('LV2 support', conf.is_defined('LV2_SUPPORT'))
write_config_text('LXVST support', conf.is_defined('LXVST_SUPPORT'))