Give up ardour5 - it ids broken and not maintainable

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
Andreas Müller
2021-06-02 01:00:43 +02:00
parent 9711328229
commit 9cf40729b3
17 changed files with 2 additions and 2139 deletions

View File

@@ -1,74 +0,0 @@
From 24b6038dc7c235780038d3fce2d9c83fada6ac8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Mon, 6 Feb 2017 23:33:45 +0100
Subject: [PATCH] remove all build flags that cause trouble for cross
configure/build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [cross specific]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
tools/autowaf.py | 1 +
wscript | 26 --------------------------
2 files changed, 1 insertion(+), 26 deletions(-)
diff --git a/tools/autowaf.py b/tools/autowaf.py
index 375dc5909..bb7714335 100644
--- a/tools/autowaf.py
+++ b/tools/autowaf.py
@@ -93,6 +93,7 @@ def copyfile (task):
def check_header(conf, lang, name, define='', mandatory=True):
"Check for a header"
+ return True
includes = '' # search default system include paths
if sys.platform == "darwin":
includes = '/opt/local/include'
diff --git a/wscript b/wscript
index 9fd84bb2c..d4178cb36 100644
--- a/wscript
+++ b/wscript
@@ -476,31 +476,6 @@ int main() { return 0; }''',
compiler_flags.append ("-DARCH_X86")
- if platform == 'linux' :
-
- #
- # determine processor flags via /proc/cpuinfo
- #
-
- if conf.env['build_target'] != 'i386':
-
- flag_line = os.popen ("cat /proc/cpuinfo | grep '^flags'").read()[:-1]
- x86_flags = flag_line.split (": ")[1:][0].split ()
-
- if "mmx" in x86_flags:
- compiler_flags.append ("-mmmx")
- if "sse" in x86_flags:
- build_host_supports_sse = True
- if "3dnow" in x86_flags:
- compiler_flags.append ("-m3dnow")
-
- if cpu == "i586":
- compiler_flags.append ("-march=i586")
- elif cpu == "i686":
- compiler_flags.append ("-march=i686")
-
- if not is_clang and ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse:
- compiler_flags.extend ([ flags_dict['sse'], flags_dict['fpmath-sse'], flags_dict['xmmintrinsics'] ])
if (conf.env['build_target'] == 'mingw'):
if (re.search ("(x86_64|AMD64)", cpu) != None):
@@ -1034,7 +1009,6 @@ def configure(conf):
fragment = "#include <dlfcn.h>\n int main(void) { dlopen (\"\", 0); return 0;}\n",
linkflags='-ldl', uselib_store='DL', execute = False)
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',

View File

@@ -1,229 +0,0 @@
From 610ce4e19b0b39d0e8391057b22163d4fdc7bdb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Mon, 3 Jul 2017 23:24:55 +0200
Subject: [PATCH 2/2] Use ARM NEON intrinsics if available for mixing functions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
libs/ardour/ardour/mix.h | 10 +++
libs/ardour/globals.cc | 13 ++++
libs/ardour/mix.cc | 157 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 180 insertions(+)
diff --git a/libs/ardour/ardour/mix.h b/libs/ardour/ardour/mix.h
index 4676c01..55919f0 100644
--- a/libs/ardour/ardour/mix.h
+++ b/libs/ardour/ardour/mix.h
@@ -65,6 +65,16 @@ LIBARDOUR_API void veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, cons
#endif
+#if defined (__ARM_NEON__)
+
+LIBARDOUR_API float neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current);
+LIBARDOUR_API void neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max);
+LIBARDOUR_API void neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain);
+LIBARDOUR_API void neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain);
+LIBARDOUR_API void neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes);
+
+#endif
+
/* non-optimized functions */
LIBARDOUR_API float default_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current);
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index 28eb818..d562b35 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -222,6 +222,19 @@ setup_hardware_optimization (bool try_optimization)
info << "Apple VecLib H/W specific optimizations in use" << endmsg;
}
+#elif defined (__ARM_NEON__)
+ // No runtime detection
+ compute_peak = neon_compute_peak;
+ find_peaks = neon_find_peaks;
+ apply_gain_to_buffer = neon_apply_gain_to_buffer;
+ mix_buffers_with_gain = neon_mix_buffers_with_gain;
+ mix_buffers_no_gain = neon_mix_buffers_no_gain;
+ copy_vector = default_copy_vector;
+
+ generic_mix_functions = false;
+
+ info << "ARM NEON optimizations in use" << endmsg;
+
#endif
/* consider FPU denormal handling to be "h/w optimization" */
diff --git a/libs/ardour/mix.cc b/libs/ardour/mix.cc
index 96ae624..d1a46a2 100644
--- a/libs/ardour/mix.cc
+++ b/libs/ardour/mix.cc
@@ -182,4 +182,161 @@ veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, pf
#endif
+#if defined (__ARM_NEON__)
+#include <arm_neon.h>
+
+float
+neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current)
+{
+ float32x4_t v4current = vdupq_n_f32(current);
+ float32x4_t v4work;
+ float32x2_t v2current;
+
+ // unaligned lead (spread single float to vector)
+ while (((intptr_t)buf) % 16 != 0 && nsamples > 0) {
+ v4work = vdupq_n_f32(*buf);
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
+
+ buf++;
+ nsamples--;
+ }
+ // aligned
+ while (nsamples >= 4) {
+ v4work = vld1q_f32(buf);
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
+
+ buf+=4;
+ nsamples-=4;
+ }
+ // rest < 4 (spread single float to vector)
+ while (nsamples > 0) {
+ v4work = vdupq_n_f32(*buf);
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
+
+ buf++;
+ nsamples--;
+ }
+
+ // calc max in vector by pairwise max done twice
+ v2current = vpmax_f32(vget_low_f32(v4current), vget_high_f32(v4current));
+ v2current = vpmax_f32(v2current, v2current);
+ return vget_lane_f32(v2current, 0);
+}
+
+void
+neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max)
+{
+ float32x4_t v4min = vdupq_n_f32(*min);
+ float32x4_t v4max = vdupq_n_f32(*max);
+ float32x4_t v4work;
+ float32x2_t v2min, v2max;
+
+ // vector
+ while (nsamples >= 4) {
+ v4work = vld1q_f32(buf);
+ v4min = vminq_f32(v4min, v4work);
+ v4max = vmaxq_f32(v4max, v4work);
+
+ buf+=4;
+ nsamples-=4;
+ }
+ // rest < 4 (spread single float to vector)
+ while (nsamples > 0) {
+ v4work = vdupq_n_f32(*buf);
+ v4min = vminq_f32(v4min, v4work);
+ v4max = vmaxq_f32(v4max, v4work);
+
+ buf++;
+ nsamples--;
+ }
+
+ // calc min in vector by pairwise max done twice
+ v2min = vpmin_f32(vget_low_f32(v4min), vget_high_f32(v4min));
+ v2min = vpmax_f32(v2min, v2min);
+ *min = vget_lane_f32(v2min, 0);
+ // calc max in vector by pairwise max done twice
+ v2max = vpmax_f32(vget_low_f32(v4max), vget_high_f32(v4max));
+ v2max = vpmax_f32(v2max, v2max);
+ *max = vget_lane_f32(v2max, 0);
+}
+
+void
+neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain)
+{
+ float32x4_t v4gain = vdupq_n_f32(gain);
+ float32x4_t v4work;
+
+ // vector
+ while (nframes >= 4) {
+ v4work = vld1q_f32(buf);
+ v4work = vmulq_f32(v4work, v4gain);
+ vst1q_f32(buf, v4work);
+
+ buf+=4;
+ nframes-=4;
+ }
+ // rest < 4
+ while (nframes > 0) {
+ *buf *= gain;
+
+ buf++;
+ nframes--;
+ }
+}
+
+void
+neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain)
+{
+ float32x4_t v4gain = vdupq_n_f32(gain);
+ float32x4_t v4src, v4dst;
+
+ // vector
+ while (nframes >= 4) {
+ v4src = vld1q_f32(src);
+ v4dst = vld1q_f32(dst);
+ // v4dst = v4dst + v4src * v4gain
+ v4dst = vmlaq_f32(v4dst, v4src, v4gain);
+ vst1q_f32(dst, v4dst);
+
+ src+=4;
+ dst+=4;
+ nframes-=4;
+ }
+ // rest < 4
+ while (nframes > 0) {
+ *dst += *src * gain;
+
+ src++;
+ dst++;
+ nframes--;
+ }
+}
+
+void
+neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes)
+{
+ float32x4_t v4src, v4dst;
+
+ // vector
+ while (nframes >= 4) {
+ v4src = vld1q_f32(src);
+ v4dst = vld1q_f32(dst);
+ v4dst = vaddq_f32(v4dst, v4src);
+ vst1q_f32(dst, v4dst);
+
+ src+=4;
+ dst+=4;
+ nframes-=4;
+ }
+ // rest < 4
+ while (nframes > 0) {
+ *dst += *src;
+
+ src++;
+ dst++;
+ nframes--;
+ }
+}
+
+#endif
--
2.9.4

View File

@@ -1,29 +0,0 @@
From be826f363522dbca96c8263d404c57c4fe9ff0e2 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Wed, 3 Oct 2018 20:54:14 +0200
Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero
Upstream-Status: Backport [1]
[1] https://github.com/Ardour/ardour/commit/be826f363522dbca96c8263d404c57c4fe9ff0e2
---
libs/widgets/fastmeter.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/widgets/fastmeter.cc b/libs/widgets/fastmeter.cc
index cf1d9dd07..a9ecf5dad 100644
--- a/libs/widgets/fastmeter.cc
+++ b/libs/widgets/fastmeter.cc
@@ -703,7 +703,7 @@ FastMeter::set (float lvl, float peak)
if (pixwidth <= 0 || pixheight <=0) return;
if (peak == -1) {
- if (lvl >= current_peak) {
+ if (lvl >= current_peak && lvl > 0) {
current_peak = lvl;
hold_state = hold_cnt;
}
--
2.14.4

View File

@@ -1,34 +0,0 @@
From 8d5e7e9f4e4372debb9ce285336ccc1ecc0383f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 17 Oct 2018 22:10:41 +0200
Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero
II
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Same as be826f363522dbca96c8263d404c57c4fe9ff0e2
Upstream-Status: Applied
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
libs/canvas/meter.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/canvas/meter.cc b/libs/canvas/meter.cc
index b539a1b4a..76e31bf58 100644
--- a/libs/canvas/meter.cc
+++ b/libs/canvas/meter.cc
@@ -702,7 +702,7 @@ Meter::set (float lvl, float peak)
if (pixwidth <= 0 || pixheight <=0) return;
if (peak == -1) {
- if (lvl >= current_peak) {
+ if (lvl >= current_peak && lvl > 0) {
current_peak = lvl;
hold_state = hold_cnt;
}
--
2.14.4

View File

@@ -1,117 +0,0 @@
From ae281f2135607e55675d7cc18a9fe1a5b88464ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Fri, 12 Oct 2018 00:56:59 +0200
Subject: [PATCH] Follow fluidsynth's API changes introduced with 2.0.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Submitted [1]
[1] https://github.com/Ardour/ardour/pull/431
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
libs/ardour/fluid_synth.cc | 14 ++++++++++++++
libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc | 27 ++++++++++++++++++++++++++-
2 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/libs/ardour/fluid_synth.cc b/libs/ardour/fluid_synth.cc
index 45653a9e7..c9b7b526e 100644
--- a/libs/ardour/fluid_synth.cc
+++ b/libs/ardour/fluid_synth.cc
@@ -71,6 +71,7 @@ FluidSynth::load_sf2 (const std::string& fn)
}
size_t count;
+#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t preset;
sfont->iteration_start (sfont);
@@ -83,7 +84,20 @@ FluidSynth::load_sf2 (const std::string& fn)
preset.get_banknum (&preset),
preset.get_num (&preset)));
}
+#else
+ fluid_preset_t* preset;
+ fluid_sfont_iteration_start (sfont);
+ for (count = 0; (preset = fluid_sfont_iteration_next (sfont)) != 0; ++count) {
+ if (count < 16) {
+ fluid_synth_program_select (_synth, count, _synth_id, fluid_preset_get_banknum (preset), fluid_preset_get_num (preset));
+ }
+ _presets.push_back (BankProgram (
+ fluid_preset_get_name (preset),
+ fluid_preset_get_banknum (preset),
+ fluid_preset_get_num (preset)));
+ }
+#endif
if (count == 0) {
return false;
}
diff --git a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
index e6cf1e29d..6d168d5fe 100644
--- a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
+++ b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
@@ -184,6 +184,7 @@ load_sf2 (AFluidSynth* self, const char* fn)
}
int chn;
+#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t preset;
sfont->iteration_start (sfont);
pthread_mutex_lock (&self->bp_lock);
@@ -192,15 +193,33 @@ load_sf2 (AFluidSynth* self, const char* fn)
fluid_synth_program_select (self->synth, chn, synth_id,
preset.get_banknum (&preset), preset.get_num (&preset));
}
+#else
+ fluid_preset_t *preset;
+ fluid_sfont_iteration_start (sfont);
+ pthread_mutex_lock (&self->bp_lock);
+ for (chn = 0; (preset = fluid_sfont_iteration_next (sfont)); ++chn) {
+ if (chn < 16) {
+ fluid_synth_program_select (self->synth, chn, synth_id,
+ fluid_preset_get_banknum (preset), fluid_preset_get_num (preset));
+ }
+#endif // FLUIDSYNTH_VERSION_MAJOR < 2
#ifndef LV2_EXTENDED
else { break ; }
#else
+#if FLUIDSYNTH_VERSION_MAJOR < 2
self->presets[preset.get_banknum (&preset)].push_back (
BankProgram (
preset.get_name (&preset),
preset.get_banknum (&preset),
preset.get_num (&preset)));
-#endif
+#else
+ self->presets[fluid_preset_get_banknum (preset)].push_back (
+ BankProgram (
+ fluid_preset_get_name (preset),
+ fluid_preset_get_banknum (preset),
+ fluid_preset_get_num (preset)));
+#endif // FLUIDSYNTH_VERSION_MAJOR < 2
+#endif // LV2_EXTENDED
}
pthread_mutex_unlock (&self->bp_lock);
@@ -681,9 +700,15 @@ work_response (LV2_Handle instance,
}
for (int chn = 0; chn < 16; ++chn) {
+#if FLUIDSYNTH_VERSION_MAJOR < 2
unsigned int sfid = 0;
unsigned int bank = 0;
unsigned int program = -1;
+#else
+ int sfid = 0;
+ int bank = 0;
+ int program = -1;
+#endif
if (FLUID_OK == fluid_synth_get_program (self->synth, chn, &sfid, &bank, &program)) {
self->program_state[chn].bank = bank;
self->program_state[chn].program = program;
--
2.14.4

View File

@@ -1,33 +0,0 @@
From de5b65e6e5c558237fbdcfb4c6a284bc17a6054e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 25 Jan 2020 22:11:56 +0100
Subject: [PATCH] Find fmt-binding in out-of-tree building
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Submitted [1]
[1] https://github.com/Ardour/ardour/pull/465
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
gtk2_ardour/wscript | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
index beb5b196b8..ed1d5631dd 100644
--- a/gtk2_ardour/wscript
+++ b/gtk2_ardour/wscript
@@ -852,7 +852,7 @@ def build(bld):
# NATIVE ARDOUR BINDING FILES
# explicitly state the use of perl here so that it works on windows too
#
- a_rule = 'perl ../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap ${SRC[0].abspath()} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] )
+ a_rule = 'perl %s/tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap ${SRC[0].abspath()} >${TGT}' % (bld.top_dir, sys.platform, bld.env['WINDOWS_KEY'] )
for b in [ 'ardour' ] :
obj = bld(
target = b + '.keys',
--
2.21.0

View File

@@ -1,10 +0,0 @@
[Desktop Entry]
Name=Ardour 5
Comment=Record, mix and master audio
Exec=ardour5
Icon=ardour5
Terminal=false
MimeType=application/x-ardour;
Type=Application
Categories=AudioVideo;Audio;X-Recorders;X-Multitrack;X-Jack;X-AudioEditing;
GenericName=Digital Audio Workstation

View File

@@ -1,859 +0,0 @@
From 2e9ac80e998bc79d5ef9029415008198b22168dc Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Mon, 20 Jan 2020 23:08:11 +0100
Subject: [PATCH 1/8] Towards waf python 2+3 support
Upstream-Status: Backport [1]
[1] https://github.com/Ardour/ardour/commit/2e9ac80e998bc79d5ef9029415008198b22168dc
---
gtk2_ardour/wscript | 32 +-
libs/ardour/wscript | 2 +-
libs/pbd/wscript | 17 +-
libs/plugins/a-comp.lv2/wscript | 13 +-
libs/plugins/a-delay.lv2/wscript | 14 +-
libs/plugins/a-eq.lv2/wscript | 14 +-
libs/plugins/a-fluidsynth.lv2/wscript | 16 +-
libs/plugins/a-reverb.lv2/wscript | 14 +-
libs/plugins/reasonablesynth.lv2/wscript | 14 +-
libs/ptformat/wscript | 1 +
libs/surfaces/osc/wscript | 2 +-
libs/surfaces/push2/wscript | 24 +-
libs/surfaces/wiimote/wscript | 2 +-
libs/widgets/wscript | 2 +-
session_utils/wscript | 2 +-
tools/bb/wscript | 15 +-
tools/luadevel/wscript | 2 +-
tools/misc.py | 355 +++++++++++++++++++++++
wscript | 10 +-
19 files changed, 457 insertions(+), 94 deletions(-)
create mode 100644 tools/misc.py
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
index d3824a0a63..beb5b196b8 100644
--- a/gtk2_ardour/wscript
+++ b/gtk2_ardour/wscript
@@ -369,20 +369,15 @@ def configure(conf):
if sys.platform == 'darwin':
- retval = conf.run_c_code (code='#include <AppKit/NSWindow.h>\n\
- int main(void) { (void) NSWindowWillStartLiveResizeNotification; return 0; }\n',
- env = conf.env.derive (),
- features = [ 'c' ],
- compiler = 'cc',
- compile_filename='test.m',
- mandatory = False,
- )
-
- if retval == 0:
- autowaf.display_msg (conf, 'Checking for Cocoa live resizing constants', 'ok')
- conf.define ('HAVE_COCOA_LIVE_RESIZING', 1)
- else:
- autowaf.display_msg (conf, 'Checking for Cocoa live resizing constants', 'too old - AU plugin windows will be fixed size')
+ conf.check(
+ msg ='Checking for Cocoa live resizing constants',
+ fragment = '#include <AppKit/NSWindow.h>\n int main(void) { (void) NSWindowWillStartLiveResizeNotification; return 0; }\n',
+ define_name = 'HAVE_COCOA_LIVE_RESIZING',
+ uselib_store = 'COCOA_LIVE_RESIZING',
+ compiler = 'cc',
+ compile_filename = 'test.m',
+ execute = True,
+ mandatory = False)
conf.write_config_header('gtk2ardour-config.h', remove=False)
@@ -475,7 +470,6 @@ def build(bld):
obj.source = list(gtk2_ardour_sources)
obj.target = 'luadoc'
obj.includes = ['.', '../libs']
- obj.ldflags = ['-no-undefined']
obj.use = [
'libpbd',
'libardour',
@@ -515,7 +509,6 @@ def build(bld):
# obj.source = [ 'ardour_button.cc', 'ui_config.cc', 'tooltips.cc' ]
# obj.target = 'canvas_test'
# obj.includes = ['.', '../libs']
-# obj.ldflags = ['-no-undefined']
# obj.use = [
# 'libpbd',
# 'libardour',
@@ -586,9 +579,8 @@ def build(bld):
obj = bld (features = 'cxx c cxxprogram')
# operate on copy to avoid adding sources twice
obj.source = list(gtk2_ardour_sources)
- obj.target = 'ardour-' + str (bld.env['VERSION'])
- obj.includes = ['.']
- obj.ldflags = ['-no-undefined']
+ obj.target = 'ardour-' + str (bld.env['VERSION'])
+ obj.includes = ['.']
if bld.is_defined('WINDOWS_VST_SUPPORT'):
# Windows VST support mingw
@@ -617,7 +609,7 @@ def build(bld):
]
obj.install_path = bld.env['DLLDIR']
obj.linkflags = ''
- obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL GTKMM CANVAS FFTW3F LO TAGLIB XML '
+ obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL GTKMM CANVAS FFTW3F LO TAGLIB XML LILV'
if sys.platform == 'darwin':
obj.uselib += ' AUDIOUNITS OSX '
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index 7148a26042..8a65daaaf0 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -474,7 +474,7 @@ def build(bld):
avx_cxxflags = list(bld.env['CXXFLAGS'])
avx_cxxflags.append (bld.env['compiler_flags_dict']['avx'])
avx_cxxflags.append (bld.env['compiler_flags_dict']['pic'])
- bld(features = 'cxx',
+ bld(features = 'cxx cxxstlib asm',
source = avx_sources,
cxxflags = avx_cxxflags,
includes = [ '.' ],
diff --git a/libs/pbd/wscript b/libs/pbd/wscript
index 29d82edcb4..8dffb71dd7 100644
--- a/libs/pbd/wscript
+++ b/libs/pbd/wscript
@@ -108,12 +108,21 @@ def configure(conf):
autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.32.0', mandatory=True)
autowaf.check_pkg(conf, 'giomm-2.4', uselib_store='GIOMM', atleast_version='2.2', mandatory=True)
- conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT',mandatory=False)
conf.check(header_name='execinfo.h', define_name='HAVE_EXECINFO',mandatory=False)
conf.check(header_name='unistd.h', define_name='HAVE_UNISTD',mandatory=False)
if not Options.options.ppc:
- conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', cflags='-D_XOPEN_SOURCE=600', define_name='HAVE_POSIX_MEMALIGN', mandatory=False)
- conf.check(function_name='localtime_r', header_name='time.h', define_name='HAVE_LOCALTIME_R',mandatory=False)
+ conf.check_cc(
+ msg="Checking for function 'posix_memalign' in stdlib.h",
+ fragment = "#define _XOPEN_SOURCE 600\n #include <stdlib.h>\n int main(void) { return posix_memalign (0, 64, 1); }\n",
+ define_name='HAVE_POSIX_MEMALIGN', execute = False, mandatory=False)
+ conf.check_cc(
+ msg="Checking for function 'getmntent' in mntent.h",
+ fragment = "#include <mntent.h>\n int main(void) { return (int)getmntent(0); }\n",
+ define_name='HAVE_GETMNTENT', execute = False, mandatory=False)
+ conf.check_cc(
+ msg="Checking for function 'localtime_r' in time.h",
+ fragment = "#include <time.h>\n int main(void) { return localtime_r(NULL, NULL); }\n",
+ define_name='HAVE_LOCALTIME_R', execute = False, mandatory=False)
# Boost headers
autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp')
@@ -161,7 +170,7 @@ def build(bld):
obj.includes = ['.']
obj.name = 'libpbd'
obj.target = 'pbd'
- obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE GIOMM ARCHIVE CURL'
+ obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE GIOMM ARCHIVE CURL XML'
if sys.platform == 'darwin':
TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
if 'cocoa_open_uri.mm' not in obj.source:
diff --git a/libs/plugins/a-comp.lv2/wscript b/libs/plugins/a-comp.lv2/wscript
index f0ebb1d33d..99d7bb03f1 100644
--- a/libs/plugins/a-comp.lv2/wscript
+++ b/libs/plugins/a-comp.lv2/wscript
@@ -25,15 +25,16 @@ def build(bld):
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
module_ext = module_pat[module_pat.rfind('.'):]
- if bld.is_defined ('HAVE_LV2'):
+ if bld.is_defined('HAVE_LV2'):
# Build RDF files
for i in ['manifest.ttl', 'a-comp.ttl', 'a-comp#stereo.ttl', 'presets.ttl']:
bld(features = 'subst',
- source = i + '.in',
- target = '../../LV2/%s/%s' % (bundle, i),
- install_path = '${LV2DIR}/%s' % bundle,
- chmod = Utils.O644,
- LIB_EXT = module_ext)
+ obj = bld(features='subst')
+ obj.source = i + '.in'
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
+ obj.install_path = '${LV2DIR}/%s' % bundle
+ obj.chmod = Utils.O644
+ obj.dict = {'LIB_EXT': module_ext}
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/a-delay.lv2/wscript b/libs/plugins/a-delay.lv2/wscript
index 666ef0d5ab..2af05ff137 100644
--- a/libs/plugins/a-delay.lv2/wscript
+++ b/libs/plugins/a-delay.lv2/wscript
@@ -25,15 +25,15 @@ def build(bld):
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
module_ext = module_pat[module_pat.rfind('.'):]
- if bld.is_defined ('HAVE_LV2'):
+ if bld.is_defined('HAVE_LV2'):
# Build RDF files
for i in ['manifest.ttl', 'a-delay.ttl', 'presets.ttl']:
- bld(features = 'subst',
- source = i + '.in',
- target = '../../LV2/%s/%s' % (bundle, i),
- install_path = '${LV2DIR}/%s' % bundle,
- chmod = Utils.O644,
- LIB_EXT = module_ext)
+ obj = bld(features='subst')
+ obj.source = i + '.in'
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
+ obj.install_path = '${LV2DIR}/%s' % bundle
+ obj.chmod = Utils.O644
+ obj.dict = {'LIB_EXT': module_ext}
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/a-eq.lv2/wscript b/libs/plugins/a-eq.lv2/wscript
index 0610ba2eea..e36a804f7f 100644
--- a/libs/plugins/a-eq.lv2/wscript
+++ b/libs/plugins/a-eq.lv2/wscript
@@ -25,15 +25,15 @@ def build(bld):
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
module_ext = module_pat[module_pat.rfind('.'):]
- if bld.is_defined ('HAVE_LV2'):
+ if bld.is_defined('HAVE_LV2'):
# Build RDF files
for i in ['manifest.ttl', 'a-eq.ttl']:
- bld(features = 'subst',
- source = i + '.in',
- target = '../../LV2/%s/%s' % (bundle, i),
- install_path = '${LV2DIR}/%s' % bundle,
- chmod = Utils.O644,
- LIB_EXT = module_ext)
+ obj = bld(features='subst')
+ obj.source = i + '.in'
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
+ obj.install_path = '${LV2DIR}/%s' % bundle
+ obj.chmod = Utils.O644
+ obj.dict = {'LIB_EXT': module_ext}
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/a-fluidsynth.lv2/wscript b/libs/plugins/a-fluidsynth.lv2/wscript
index af6fcf08a8..3a093259d6 100644
--- a/libs/plugins/a-fluidsynth.lv2/wscript
+++ b/libs/plugins/a-fluidsynth.lv2/wscript
@@ -24,15 +24,15 @@ def build(bld):
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
module_ext = module_pat[module_pat.rfind('.'):]
- if bld.is_defined ('HAVE_LV2'):
+ if bld.is_defined('HAVE_LV2'):
# Build RDF files
for i in ['manifest.ttl', 'a-fluidsynth.ttl']:
- bld(features = 'subst',
- source = i + '.in',
- target = '../../LV2/%s/%s' % (bundle, i),
- install_path = '${LV2DIR}/%s' % bundle,
- chmod = Utils.O644,
- LIB_EXT = module_ext)
+ obj = bld(features='subst')
+ obj.source = i + '.in'
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
+ obj.install_path = '${LV2DIR}/%s' % bundle
+ obj.chmod = Utils.O644
+ obj.dict = {'LIB_EXT': module_ext}
# Build plugin library
obj = bld(features = 'cxx cshlib',
@@ -42,7 +42,7 @@ def build(bld):
includes = [ '../../ardour' ],
target = '../../LV2/%s/a-fluidsynth' % bundle,
install_path = '${LV2DIR}/%s' % bundle,
- uselib = ['LIBFLUIDSYNTH'],
+ uselib = ['LIBFLUIDSYNTH', 'GLIB'],
use = ['LV2_1_0_0']
)
diff --git a/libs/plugins/a-reverb.lv2/wscript b/libs/plugins/a-reverb.lv2/wscript
index 35601f2179..3eb5ce10bc 100644
--- a/libs/plugins/a-reverb.lv2/wscript
+++ b/libs/plugins/a-reverb.lv2/wscript
@@ -24,15 +24,15 @@ def build(bld):
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
module_ext = module_pat[module_pat.rfind('.'):]
- if bld.is_defined ('HAVE_LV2'):
+ if bld.is_defined('HAVE_LV2'):
# Build RDF files
for i in ['manifest.ttl', 'a-reverb.ttl']:
- bld(features = 'subst',
- source = i + '.in',
- target = '../../LV2/%s/%s' % (bundle, i),
- install_path = '${LV2DIR}/%s' % bundle,
- chmod = Utils.O644,
- LIB_EXT = module_ext)
+ obj = bld(features='subst')
+ obj.source = i + '.in'
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
+ obj.install_path = '${LV2DIR}/%s' % bundle
+ obj.chmod = Utils.O644
+ obj.dict = {'LIB_EXT': module_ext}
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/reasonablesynth.lv2/wscript b/libs/plugins/reasonablesynth.lv2/wscript
index cedda4c308..0eb5c55a04 100644
--- a/libs/plugins/reasonablesynth.lv2/wscript
+++ b/libs/plugins/reasonablesynth.lv2/wscript
@@ -24,15 +24,15 @@ def build(bld):
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
module_ext = module_pat[module_pat.rfind('.'):]
- if bld.is_defined ('HAVE_LV2'):
+ if bld.is_defined('HAVE_LV2'):
# Build RDF files
for i in ['manifest.ttl', 'reasonablesynth.ttl']:
- bld(features = 'subst',
- source = i + '.in',
- target = '../../LV2/%s/%s' % (bundle, i),
- install_path = '${LV2DIR}/%s' % bundle,
- chmod = Utils.O644,
- LIB_EXT = module_ext)
+ obj = bld(features='subst')
+ obj.source = i + '.in'
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
+ obj.install_path = '${LV2DIR}/%s' % bundle
+ obj.chmod = Utils.O644
+ obj.dict = {'LIB_EXT': module_ext}
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/ptformat/wscript b/libs/ptformat/wscript
index 4d381234fe..8dc9ff7430 100644
--- a/libs/ptformat/wscript
+++ b/libs/ptformat/wscript
@@ -35,6 +35,7 @@ def build(bld):
obj.name = 'libptformat'
obj.target = 'ptformat'
obj.use = 'libardour'
+ obj.uselib = 'GLIBMM'
autowaf.ensure_visible_symbols (obj, True)
obj.vnum = LIBPTFORMAT_LIB_VERSION
obj.install_path = bld.env['LIBDIR']
diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript
index 4d0dba6750..5bbe7d3946 100644
--- a/libs/surfaces/osc/wscript
+++ b/libs/surfaces/osc/wscript
@@ -30,7 +30,7 @@ def build(bld):
obj.includes = ['.', './osc']
obj.name = 'libardour_osc'
obj.target = 'ardour_osc'
- obj.uselib = 'LO GTKMM GTK GDK'
+ obj.uselib = 'LO GTKMM GTK GDK XML'
obj.use = 'libardour libardour_cp libgtkmm2ext libpbd'
obj.install_path = os.path.join(bld.env['LIBDIR'], 'surfaces')
diff --git a/libs/surfaces/push2/wscript b/libs/surfaces/push2/wscript
index 9c75f9d69f..f7a5134153 100644
--- a/libs/surfaces/push2/wscript
+++ b/libs/surfaces/push2/wscript
@@ -21,28 +21,28 @@ def build(bld):
push2.cc
buttons.cc
canvas.cc
- interface.cc
+ interface.cc
midi_byte_array.cc
leds.cc
level_meter.cc
- gui.cc
- knob.cc
- layout.cc
- menu.cc
- mix.cc
- scale.cc
- splash.cc
- track_mix.cc
- utils.cc
+ gui.cc
+ knob.cc
+ layout.cc
+ menu.cc
+ mix.cc
+ scale.cc
+ splash.cc
+ track_mix.cc
+ utils.cc
'''
obj.export_includes = ['.']
obj.defines = [ 'PACKAGE="ardour_push2"' ]
obj.defines += [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.defines += [ 'VERSIONSTRING="' + bld.env['VERSION'] + '"' ]
- obj.includes = [ '.', './push2']
+ obj.includes = ['.', './push2']
obj.name = 'libardour_push2'
obj.target = 'ardour_push2'
- obj.uselib = 'CAIROMM PANGOMM USB GTKMM SIGCPP'
+ obj.uselib = 'CAIROMM PANGOMM USB GTKMM SIGCPP XML'
obj.use = 'libardour libardour_cp libgtkmm2ext libpbd libevoral libcanvas libtimecode'
obj.install_path = os.path.join(bld.env['LIBDIR'], 'surfaces')
diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript
index 03d01635a1..d38296f37f 100644
--- a/libs/surfaces/wiimote/wscript
+++ b/libs/surfaces/wiimote/wscript
@@ -24,7 +24,7 @@ def build(bld):
obj.includes = ['.', '../libs']
obj.name = 'libardour_wiimote'
obj.target = 'ardour_wiimote'
- obj.uselib = 'GTKMM CWIID'
+ obj.uselib = 'GTKMM CWIID XML'
obj.use = 'libardour libardour_cp libgtkmm2ext'
obj.install_path = os.path.join(bld.env['LIBDIR'], 'surfaces')
diff --git a/libs/widgets/wscript b/libs/widgets/wscript
index 0559abe4dc..2216c38348 100644
--- a/libs/widgets/wscript
+++ b/libs/widgets/wscript
@@ -76,7 +76,7 @@ def build(bld):
obj.defines = [ ]
obj.export_includes = ['.']
- obj.includes = ['.']
+ obj.includes = ['.'] + bld.env['INCLUDES_GLIB']
obj.uselib = 'SIGCPP CAIROMM GTKMM BOOST XML'
obj.use = [ 'libpbd', 'libgtkmm2ext' ]
obj.name = 'libwidgets'
diff --git a/session_utils/wscript b/session_utils/wscript
index 5fe9445426..a98694f3d6 100644
--- a/session_utils/wscript
+++ b/session_utils/wscript
@@ -86,7 +86,7 @@ def build(bld):
utils = bld.path.ant_glob('*.cc', excl=['example.cc', 'common.cc'])
for util in utils:
- fn = str(util)[:-3]
+ fn = os.path.splitext(os.path.basename(str(util)))[0]
build_ardour_util(bld, fn)
if bld.env['build_target'] != 'mingw':
bld.symlink_as(bld.env['BINDIR'] + '/' + pgmprefix + "-" + fn, bld.env['LIBDIR'] + '/utils/ardour-util.sh')
diff --git a/tools/bb/wscript b/tools/bb/wscript
index e419fa2465..3e9fd8d2d7 100644
--- a/tools/bb/wscript
+++ b/tools/bb/wscript
@@ -12,14 +12,13 @@ def configure(ctx):
pass
def build(bld):
- obj = bld (features = 'cxx c cxxprogram')
- obj.install_path = None
- obj.source = [ 'bb.cc', 'gui.cc', 'misc.cc' ]
- obj.target = 'bb'
- obj.includes = ['.', '../libs']
- obj.ldflags = ['-no-undefined']
- obj.use = [ 'libardour', 'libevoral', ]
- obj.uselib = ' JACK GTKMM '
+ obj = bld (features = 'cxx c cxxprogram')
+ obj.install_path = None
+ obj.source = [ 'bb.cc', 'gui.cc', 'misc.cc' ]
+ obj.target = 'bb'
+ obj.includes = ['.', '../libs']
+ obj.use = [ 'libardour', 'libevoral', ]
+ obj.uselib = 'JACK GTKMM XML'
wrapper_subst_dict = {
'INSTALL_PREFIX' : bld.env['PREFIX'],
diff --git a/tools/luadevel/wscript b/tools/luadevel/wscript
index 3190380091..03889c72d7 100755
--- a/tools/luadevel/wscript
+++ b/tools/luadevel/wscript
@@ -18,7 +18,7 @@ def options(opt):
def configure(conf):
conf.load('misc')
conf.load('compiler_cxx')
- conf.check_cc(function_name='readline',
+ conf.check_cc(
header_name='stdio.h readline/readline.h',
lib='readline',
uselib_store='READLINE',
diff --git a/tools/misc.py b/tools/misc.py
new file mode 100644
index 0000000000..b82cdb63ba
--- /dev/null
+++ b/tools/misc.py
@@ -0,0 +1,355 @@
+#!/usr/bin/env python
+# encoding: utf-8
+# Thomas Nagy, 2006-2010 (ita)
+
+"""
+This tool is totally deprecated
+
+Try using:
+ .pc.in files for .pc files
+ the feature intltool_in - see demos/intltool
+ make-like rules
+"""
+
+import shutil, re, os
+from waflib import TaskGen, Node, Task, Utils, Build, Errors
+from waflib.TaskGen import feature, after_method, before_method
+from waflib.Logs import debug
+
+def copy_attrs(orig, dest, names, only_if_set=False):
+ """
+ copy class attributes from an object to another
+ """
+ for a in Utils.to_list(names):
+ u = getattr(orig, a, ())
+ if u or not only_if_set:
+ setattr(dest, a, u)
+
+def copy_func(tsk):
+ "Make a file copy. This might be used to make other kinds of file processing (even calling a compiler is possible)"
+ env = tsk.env
+ infile = tsk.inputs[0].abspath()
+ outfile = tsk.outputs[0].abspath()
+ try:
+ shutil.copy2(infile, outfile)
+ except (OSError, IOError):
+ return 1
+ else:
+ if tsk.chmod: os.chmod(outfile, tsk.chmod)
+ return 0
+
+def action_process_file_func(tsk):
+ "Ask the function attached to the task to process it"
+ if not tsk.fun: raise Errors.WafError('task must have a function attached to it for copy_func to work!')
+ return tsk.fun(tsk)
+
+@feature('cmd')
+def apply_cmd(self):
+ "call a command everytime"
+ if not self.fun: raise Errors.WafError('cmdobj needs a function!')
+ tsk = Task.TaskBase()
+ tsk.fun = self.fun
+ tsk.env = self.env
+ self.tasks.append(tsk)
+ tsk.install_path = self.install_path
+
+@feature('copy')
+@before_method('process_source')
+def apply_copy(self):
+ Utils.def_attrs(self, fun=copy_func)
+ self.default_install_path = 0
+
+ lst = self.to_list(self.source)
+ self.meths.remove('process_source')
+
+ for filename in lst:
+ node = self.path.find_resource(filename)
+ if not node: raise Errors.WafError('cannot find input file %s for processing' % filename)
+
+ target = self.target
+ if not target or len(lst)>1: target = node.name
+
+ # TODO the file path may be incorrect
+ newnode = self.path.find_or_declare(target)
+
+ tsk = self.create_task('copy', node, newnode)
+ tsk.fun = self.fun
+ tsk.chmod = getattr(self, 'chmod', Utils.O644)
+
+ if not tsk.env:
+ tsk.debug()
+ raise Errors.WafError('task without an environment')
+
+####################
+## command-output ####
+####################
+
+class cmd_arg(object):
+ """command-output arguments for representing files or folders"""
+ def __init__(self, name, template='%s'):
+ self.name = name
+ self.template = template
+ self.node = None
+
+class input_file(cmd_arg):
+ def find_node(self, base_path):
+ assert isinstance(base_path, Node.Node)
+ self.node = base_path.find_resource(self.name)
+ if self.node is None:
+ raise Errors.WafError("Input file %s not found in " % (self.name, base_path))
+
+ def get_path(self, env, absolute):
+ if absolute:
+ return self.template % self.node.abspath()
+ else:
+ return self.template % self.node.srcpath()
+
+class output_file(cmd_arg):
+ def find_node(self, base_path):
+ assert isinstance(base_path, Node.Node)
+ self.node = base_path.find_or_declare(self.name)
+ if self.node is None:
+ raise Errors.WafError("Output file %s not found in " % (self.name, base_path))
+
+ def get_path(self, env, absolute):
+ if absolute:
+ return self.template % self.node.abspath()
+ else:
+ return self.template % self.node.bldpath()
+
+class cmd_dir_arg(cmd_arg):
+ def find_node(self, base_path):
+ assert isinstance(base_path, Node.Node)
+ self.node = base_path.find_dir(self.name)
+ if self.node is None:
+ raise Errors.WafError("Directory %s not found in " % (self.name, base_path))
+
+class input_dir(cmd_dir_arg):
+ def get_path(self, dummy_env, dummy_absolute):
+ return self.template % self.node.abspath()
+
+class output_dir(cmd_dir_arg):
+ def get_path(self, env, dummy_absolute):
+ return self.template % self.node.abspath()
+
+
+class command_output(Task.Task):
+ color = "BLUE"
+ def __init__(self, env, command, command_node, command_args, stdin, stdout, cwd, os_env, stderr):
+ Task.Task.__init__(self, env=env)
+ assert isinstance(command, (str, Node.Node))
+ self.command = command
+ self.command_args = command_args
+ self.stdin = stdin
+ self.stdout = stdout
+ self.cwd = cwd
+ self.os_env = os_env
+ self.stderr = stderr
+
+ if command_node is not None: self.dep_nodes = [command_node]
+ self.dep_vars = [] # additional environment variables to look
+
+ def run(self):
+ task = self
+ #assert len(task.inputs) > 0
+
+ def input_path(node, template):
+ if task.cwd is None:
+ return template % node.bldpath()
+ else:
+ return template % node.abspath()
+ def output_path(node, template):
+ fun = node.abspath
+ if task.cwd is None: fun = node.bldpath
+ return template % fun()
+
+ if isinstance(task.command, Node.Node):
+ argv = [input_path(task.command, '%s')]
+ else:
+ argv = [task.command]
+
+ for arg in task.command_args:
+ if isinstance(arg, str):
+ argv.append(arg)
+ else:
+ assert isinstance(arg, cmd_arg)
+ argv.append(arg.get_path(task.env, (task.cwd is not None)))
+
+ if task.stdin:
+ stdin = open(input_path(task.stdin, '%s'))
+ else:
+ stdin = None
+
+ if task.stdout:
+ stdout = open(output_path(task.stdout, '%s'), "w")
+ else:
+ stdout = None
+
+ if task.stderr:
+ stderr = open(output_path(task.stderr, '%s'), "w")
+ else:
+ stderr = None
+
+ if task.cwd is None:
+ cwd = ('None (actually %r)' % os.getcwd())
+ else:
+ cwd = repr(task.cwd)
+ debug("command-output: cwd=%s, stdin=%r, stdout=%r, argv=%r" %
+ (cwd, stdin, stdout, argv))
+
+ if task.os_env is None:
+ os_env = os.environ
+ else:
+ os_env = task.os_env
+ command = Utils.subprocess.Popen(argv, stdin=stdin, stdout=stdout, stderr=stderr, cwd=task.cwd, env=os_env)
+ return command.wait()
+
+@feature('command-output')
+def init_cmd_output(self):
+ Utils.def_attrs(self,
+ stdin = None,
+ stdout = None,
+ stderr = None,
+ # the command to execute
+ command = None,
+
+ # whether it is an external command; otherwise it is assumed
+ # to be an executable binary or script that lives in the
+ # source or build tree.
+ command_is_external = False,
+
+ # extra parameters (argv) to pass to the command (excluding
+ # the command itself)
+ argv = [],
+
+ # dependencies to other objects -> this is probably not what you want (ita)
+ # values must be 'task_gen' instances (not names!)
+ dependencies = [],
+
+ # dependencies on env variable contents
+ dep_vars = [],
+
+ # input files that are implicit, i.e. they are not
+ # stdin, nor are they mentioned explicitly in argv
+ hidden_inputs = [],
+
+ # output files that are implicit, i.e. they are not
+ # stdout, nor are they mentioned explicitly in argv
+ hidden_outputs = [],
+
+ # change the subprocess to this cwd (must use obj.input_dir() or output_dir() here)
+ cwd = None,
+
+ # OS environment variables to pass to the subprocess
+ # if None, use the default environment variables unchanged
+ os_env = None)
+
+@feature('command-output')
+@after_method('init_cmd_output')
+def apply_cmd_output(self):
+ if self.command is None:
+ raise Errors.WafError("command-output missing command")
+ if self.command_is_external:
+ cmd = self.command
+ cmd_node = None
+ else:
+ cmd_node = self.path.find_resource(self.command)
+ assert cmd_node is not None, ('''Could not find command '%s' in source tree.
+Hint: if this is an external command,
+use command_is_external=True''') % (self.command,)
+ cmd = cmd_node
+
+ if self.cwd is None:
+ cwd = None
+ else:
+ assert isinstance(cwd, CmdDirArg)
+ self.cwd.find_node(self.path)
+
+ args = []
+ inputs = []
+ outputs = []
+
+ for arg in self.argv:
+ if isinstance(arg, cmd_arg):
+ arg.find_node(self.path)
+ if isinstance(arg, input_file):
+ inputs.append(arg.node)
+ if isinstance(arg, output_file):
+ outputs.append(arg.node)
+
+ if self.stdout is None:
+ stdout = None
+ else:
+ assert isinstance(self.stdout, str)
+ stdout = self.path.find_or_declare(self.stdout)
+ if stdout is None:
+ raise Errors.WafError("File %s not found" % (self.stdout,))
+ outputs.append(stdout)
+
+ if self.stderr is None:
+ stderr = None
+ else:
+ assert isinstance(self.stderr, str)
+ stderr = self.path.find_or_declare(self.stderr)
+ if stderr is None:
+ raise Errors.WafError("File %s not found" % (self.stderr,))
+ outputs.append(stderr)
+
+ if self.stdin is None:
+ stdin = None
+ else:
+ assert isinstance(self.stdin, str)
+ stdin = self.path.find_resource(self.stdin)
+ if stdin is None:
+ raise Errors.WafError("File %s not found" % (self.stdin,))
+ inputs.append(stdin)
+
+ for hidden_input in self.to_list(self.hidden_inputs):
+ node = self.path.find_resource(hidden_input)
+ if node is None:
+ raise Errors.WafError("File %s not found in dir %s" % (hidden_input, self.path))
+ inputs.append(node)
+
+ for hidden_output in self.to_list(self.hidden_outputs):
+ node = self.path.find_or_declare(hidden_output)
+ if node is None:
+ raise Errors.WafError("File %s not found in dir %s" % (hidden_output, self.path))
+ outputs.append(node)
+
+ if not (inputs or getattr(self, 'no_inputs', None)):
+ raise Errors.WafError('command-output objects must have at least one input file or give self.no_inputs')
+ if not (outputs or getattr(self, 'no_outputs', None)):
+ raise Errors.WafError('command-output objects must have at least one output file or give self.no_outputs')
+
+ cwd = self.bld.variant_dir
+ task = command_output(self.env, cmd, cmd_node, self.argv, stdin, stdout, cwd, self.os_env, stderr)
+ task.generator = self
+ copy_attrs(self, task, 'before after ext_in ext_out', only_if_set=True)
+ self.tasks.append(task)
+
+ task.inputs = inputs
+ task.outputs = outputs
+ task.dep_vars = self.to_list(self.dep_vars)
+
+ for dep in self.dependencies:
+ assert dep is not self
+ dep.post()
+ for dep_task in dep.tasks:
+ task.set_run_after(dep_task)
+
+ if not task.inputs:
+ # the case for svnversion, always run, and update the output nodes
+ task.runnable_status = type(Task.TaskBase.run)(runnable_status, task, task.__class__) # always run
+ task.post_run = type(Task.TaskBase.run)(post_run, task, task.__class__)
+
+ # TODO the case with no outputs?
+
+def post_run(self):
+ for x in self.outputs:
+ x.sig = Utils.h_file(x.abspath())
+
+def runnable_status(self):
+ return self.RUN_ME
+
+Task.task_factory('copy', vars=[], func=action_process_file_func)
+
diff --git a/wscript b/wscript
index 4b5acb0ad7..f5d1b28e56 100644
--- a/wscript
+++ b/wscript
@@ -1011,9 +1011,15 @@ def configure(conf):
if Options.options.dist_target != 'mingw':
if Options.options.dist_target != 'msvc' and re.search ("openbsd", sys.platform) == None:
if re.search ("freebsd", sys.platform) != None:
- conf.check_cc(function_name='dlopen', header_name='dlfcn.h', uselib_store='DL')
+ conf.check_cc(
+ msg="Checking for function 'dlopen' in dlfcn.h",
+ fragment = "#include <dlfcn.h>\n int main(void) { dlopen (\"\", 0); return 0;}\n",
+ uselib_store='DL', execute = False)
else:
- conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL')
+ conf.check_cc(
+ msg="Checking for function 'dlopen' in dlfcn.h",
+ fragment = "#include <dlfcn.h>\n int main(void) { dlopen (\"\", 0); return 0;}\n",
+ linkflags='-ldl', uselib_store='DL', execute = False)
conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
execute = "1",
mandatory = True,
--
2.21.0

View File

@@ -1,99 +0,0 @@
From 19603d075f7013453c79711a646301df694c7b03 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Mon, 20 Jan 2020 23:08:55 +0100
Subject: [PATCH 2/8] Update waf to v2.0.19
For oe:
* Removed waf: we cannot patch binary files. Recipe ships waf
* tools/misc.py was added from master in previous patch so no adjustment here
Upstream-Status: Backport [1]
[1] https://github.com/Ardour/ardour/commit/19603d075f7013453c79711a646301df694c7b03
---
doc/updating_waf.txt | 25 +++++++++++-------
tools/autowaf.py | 11 ++++----
tools/waf-str.patch | 11 ++++++++
4 files changed, 31 insertions(+), 77 deletions(-)
create mode 100644 tools/waf-str.patch
diff --git a/doc/updating_waf.txt b/doc/updating_waf.txt
index 69c1225d63..0c192d4489 100644
--- a/doc/updating_waf.txt
+++ b/doc/updating_waf.txt
@@ -1,15 +1,20 @@
-Download waf (https://waf.io/)
-
-autowaf.py is present in the tools directory of the Ardour source code.
-a patch for C++11/clang can be found in tools/waflib.patch (needed for waf 1.8.19)
-
-Current waf is build as follows;
+# Download waf (https://waf.io/)
+#
+# autowaf.py and misc.py are present in the tools directory of the Ardour source code.
+# - waf-str.patch is needed for py2/py3 compatible install_dir:
+# * in py2 paths are byte-arrays and would need to be converted using .encode("utf-8")
+# (otherwise waf expands them /t/o/p/a/t/h/s/l/i/k/e/t/h/i/s)
+# * however py3 cannot handled encoded arrays:
+# (TypeError: cannot use a string pattern on a bytes-like object)
+#
+# Current waf is build as follows:
ARDOURSRC=`pwd`
cd /tmp
-curl https://waf.io/waf-1.6.11.tar.bz2 | tar xj
-cd waf-1.6.11
+curl https://waf.io/waf-2.0.19.tar.bz2 | tar xj
+cd waf-2.0.19
+
+patch -p1 < $ARDOURSRC/tools/waf-str.patch
-patch -p1 < $ARDOURSRC/tools/waflib.patch
-./waf-light -v --make-waf --tools=misc,doxygen,$ARDOURSRC/tools/autowaf.py --prelude=''
+./waf-light -v --make-waf --tools=misc,doxygen,$ARDOURSRC/tools/autowaf.py,$ARDOURSRC/tools/misc.py --prelude=''
cp ./waf $ARDOURSRC/waf
diff --git a/tools/autowaf.py b/tools/autowaf.py
index f82b80a83f..375dc5909a 100644
--- a/tools/autowaf.py
+++ b/tools/autowaf.py
@@ -140,14 +140,13 @@ def check_pkg(conf, name, **args):
found = None
pkg_var_name = 'PKG_' + name.replace('-', '_')
pkg_name = name
- if conf.env.PARDEBUG:
- args['mandatory'] = False # Smash mandatory arg
- found = conf.check_cfg(package=pkg_name + 'D', args="--cflags --libs", **args)
- if found:
- pkg_name += 'D'
if mandatory:
args['mandatory'] = True # Unsmash mandatory arg
- if not found:
+ if 'atleast_version' in args:
+ if not 'msg' in args:
+ args['msg'] = 'Checking for %r >= %s' %(pkg_name, args['atleast_version'])
+ found = conf.check_cfg(package=pkg_name, args=[pkg_name + " >= " + args['atleast_version'], '--cflags', '--libs'], **args)
+ else:
found = conf.check_cfg(package=pkg_name, args="--cflags --libs", **args)
if found:
conf.env[pkg_var_name] = pkg_name
diff --git a/tools/waf-str.patch b/tools/waf-str.patch
new file mode 100644
index 0000000000..8d37f68d32
--- /dev/null
+++ b/tools/waf-str.patch
@@ -0,0 +1,11 @@
+--- a/waflib/Build.py 2020-01-21 15:01:13.864899388 +0100
++++ b/waflib/Build.py 2020-01-21 15:01:59.573030630 +0100
+@@ -953,7 +953,7 @@
+ tsk.link = kw.get('link', '') or kw.get('install_from', '')
+ tsk.relative_trick = kw.get('relative_trick', False)
+ tsk.type = kw['type']
+- tsk.install_to = tsk.dest = kw['install_to']
++ tsk.install_to = tsk.dest = str(kw['install_to'])
+ tsk.install_from = kw['install_from']
+ tsk.relative_base = kw.get('cwd') or kw.get('relative_base', self.path)
+ tsk.install_user = kw.get('install_user')
--
2.21.0

View File

@@ -1,31 +0,0 @@
From 1d2cfd6f2d736144b8c81179126b5850a718f769 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Tue, 21 Jan 2020 02:23:51 +0100
Subject: [PATCH 3/8] Change waf/darwin default compiler to prefer gcc (if
available)
---
wscript | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/wscript b/wscript
index cb3980ed41..e1beb6a86d 100644
--- a/wscript
+++ b/wscript
@@ -11,6 +11,13 @@ from waflib.Tools import winres
from waflib.Build import Context
from waflib.Build import BuildContext
+# Fixup OSX 10.5/10.6 builds
+# prefer gcc, g++ 4.x over ancient clang-1.5
+from waflib.Tools.compiler_c import c_compiler
+from waflib.Tools.compiler_cxx import cxx_compiler
+c_compiler['darwin'] = ['gcc', 'clang' ]
+cxx_compiler['darwin'] = ['g++', 'clang++' ]
+
class i18n(BuildContext):
cmd = 'i18n'
fun = 'i18n'
--
2.21.0

View File

@@ -1,128 +0,0 @@
From 5a841ef4624ef4b776e578af80d2397241754b00 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Wed, 22 Jan 2020 00:47:33 +0100
Subject: [PATCH 5/8] Tweaks to build/package scripts for new waf
* Windows: delete waf installed .dll.a files
* Windows: override waf's conf.env.LIBDIR = conf.env.BINDIR
with explicit --libdir
* Windows: fix asm (`x86_64-w64-mingw32-as` -D flag is for
debug messages, -D defines are not available)
* Mac: override waf adding -install_name (and
-Wl,-compatibility_version -Wl,-current_version)
by moving -dynamiclib from linkflags to ldflags
* Mac: Allow libs with compat version number suffix
(not needed anymore, but may help in the future)
Upstream-Status: Backport [1]
[1] https://github.com/Ardour/ardour/commit/5a841ef4624ef4b776e578af80d2397241754b00
---
libs/ardour/wscript | 7 ++++++-
tools/osx_packaging/osx_build | 2 +-
tools/x-win/compile.sh | 3 ++-
tools/x-win/package.sh | 1 +
wscript | 17 +++++++++++++++++
5 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index 8a65daaaf0..a27826953a 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -1,6 +1,6 @@
#!/usr/bin/env python
from waflib.extras import autowaf as autowaf
-from waflib import Options
+from waflib import Options, Task, Tools
import os
import sys
import re
@@ -369,6 +369,11 @@ def build(bld):
# micro increment <=> no interface changes
LIBARDOUR_LIB_VERSION = "3.0.0"
+ # remove '${DEFINES_ST:DEFINES}' from run_str.
+ # x86_64-w64-mingw32-as (mingw) -D flag is for debug messages
+ if bld.env['build_target'] == 'mingw':
+ class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
+
# operate on copy to avoid adding sources twice
sources = list(libardour_sources)
if bld.is_tracks_build():
diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build
index 2b417b86af..cb681bafd1 100755
--- a/tools/osx_packaging/osx_build
+++ b/tools/osx_packaging/osx_build
@@ -449,7 +449,7 @@ while [ true ] ; do
strip -u -r -arch all $file &>/dev/null
fi
- deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | grep -v 'libjack\.' | grep -v "$(basename $file)"`
+ deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | grep -v 'libjack\.' | egrep -v "$(basename $file .dylib).*.dylib"`
# echo -n "."
for dep in $deps ; do
base=`basename $dep`
diff --git a/tools/x-win/compile.sh b/tools/x-win/compile.sh
index d778e921b5..4f54f6623d 100755
--- a/tools/x-win/compile.sh
+++ b/tools/x-win/compile.sh
@@ -79,7 +79,8 @@ LDFLAGS="-L${PREFIX}/lib" ./waf configure \
--dist-target=mingw \
--also-include=${PREFIX}/include \
$ARDOURCFG \
- --prefix=${PREFIX}
+ --prefix=${PREFIX} \
+ --libdir=${PREFIX}/lib
./waf ${CONCURRENCY}
if [ "$(id -u)" = "0" ]; then
diff --git a/tools/x-win/package.sh b/tools/x-win/package.sh
index bfb7381e41..032c45a192 100755
--- a/tools/x-win/package.sh
+++ b/tools/x-win/package.sh
@@ -200,6 +200,7 @@ cp gtk2_ardour/icons/cursor_square/* $DESTDIR/share/${LOWERCASE_DIRNAME}/icons/
# clean build-dir after depoyment
echo " === bundle completed, cleaning up"
./waf uninstall
+find $DESTDIR -name "*.dll.a" | xargs rm
echo " === complete"
du -sh $DESTDIR
diff --git a/wscript b/wscript
index d4724ecb72..9fd84bb2ca 100644
--- a/wscript
+++ b/wscript
@@ -915,6 +915,12 @@ def configure(conf):
conf.env.append_value ('CXXFLAGS', '-DSILENCE_AFTER')
conf.define ('FREEBIE', 1)
+ # set explicit LIBDIR, otherwise mingw/windows builds use
+ # conf.env.LIBDIR = conf.env.BINDIR and `waf install` fails
+ # because $BINDIR/ardour6 is the main binary, and $LIBDIR/ardour6/ a directory
+ if Options.options.libdir:
+ conf.env.LIBDIR = Options.options.libdir
+
if Options.options.lv2dir:
conf.env['LV2DIR'] = Options.options.lv2dir
else:
@@ -1247,6 +1253,17 @@ int main () { return 0; }
# Fix utterly braindead FLAC include path to not smash assert.h
conf.env['INCLUDES_FLAC'] = []
+ if sys.platform == 'darwin':
+ # override waf's -install_name added in
+ # waflib/Tools/ccroot.py when -dynamiclib is used
+ if conf.env.LINKFLAGS_cshlib:
+ conf.env.LINKFLAGS_cshlib = [];
+ conf.env.LDFLAGS_cshlib = ['-dynamiclib']
+
+ if conf.env.LINKFLAGS_cxxshlib:
+ conf.env.LINKFLAGS_cxxshlib = [];
+ conf.env.LDFLAGS_cxxshlib = ['-dynamiclib']
+
config_text = open('libs/ardour/config_text.cc', "w")
config_text.write('''#include "ardour/ardour.h"
namespace ARDOUR {
--
2.21.0

View File

@@ -1,25 +0,0 @@
From 7c381dab6e0977f61f9bbd08bd1d20f0fe2abcf6 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Sat, 25 Jan 2020 04:17:53 +0100
Subject: [PATCH 6/8] Downgrade "using all channels" warning to info - part 2
---
libs/backends/alsa/alsa_audiobackend.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc
index 6b044f9fd0..357b00c044 100644
--- a/libs/backends/alsa/alsa_audiobackend.cc
+++ b/libs/backends/alsa/alsa_audiobackend.cc
@@ -883,7 +883,7 @@ AlsaAudioBackend::_start (bool for_latency_measurement)
} else {
_n_outputs = std::min (_n_outputs, _pcmi->nplay ());
}
- PBD::warning << _("AlsaAudioBackend: adjusted output channel count to match device.") << endmsg;
+ PBD::info << _("AlsaAudioBackend: adjusted output channel count to match device.") << endmsg;
}
if (_n_inputs != _pcmi->ncapt ()) {
--
2.21.0

View File

@@ -1,114 +0,0 @@
From 4fe30364951ea46b93e3c93acbaf2f777343d131 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Sat, 25 Jan 2020 06:20:16 +0100
Subject: [PATCH 7/8] Update waf2.x "subst" feature uses obj attributes
Upstrem-Status: Backport [1]
[1] https://github.com/Ardour/ardour/commit/4fe30364951ea46b93e3c93acbaf2f777343d131
---
libs/fst/wscript | 4 +---
libs/plugins/a-comp.lv2/wscript | 2 +-
libs/plugins/a-delay.lv2/wscript | 2 +-
libs/plugins/a-eq.lv2/wscript | 2 +-
libs/plugins/a-fluidsynth.lv2/wscript | 2 +-
libs/plugins/a-reverb.lv2/wscript | 2 +-
libs/plugins/reasonablesynth.lv2/wscript | 2 +-
7 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/libs/fst/wscript b/libs/fst/wscript
index ca90b7207d..bbac8d6f27 100644
--- a/libs/fst/wscript
+++ b/libs/fst/wscript
@@ -52,9 +52,7 @@ def build(bld):
obj.target = 'ardour-vst-scanner'
obj.chmod = Utils.O755
obj.install_path = os.path.join(bld.env['LIBDIR'])
- obj.dict = {
- 'VERSION' : bld.env['VERSION'],
- }
+ obj.VERSION = bld.env['VERSION']
obj = bld (features = 'c cxx cxxprogram wine')
obj.source = (
diff --git a/libs/plugins/a-comp.lv2/wscript b/libs/plugins/a-comp.lv2/wscript
index 99d7bb03f1..00099cb564 100644
--- a/libs/plugins/a-comp.lv2/wscript
+++ b/libs/plugins/a-comp.lv2/wscript
@@ -34,7 +34,7 @@ def build(bld):
obj.target = '../../LV2/%s/%s' % (bundle, i)
obj.install_path = '${LV2DIR}/%s' % bundle
obj.chmod = Utils.O644
- obj.dict = {'LIB_EXT': module_ext}
+ obj.LIB_EXT = module_ext
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/a-delay.lv2/wscript b/libs/plugins/a-delay.lv2/wscript
index 2af05ff137..c28d7cabcf 100644
--- a/libs/plugins/a-delay.lv2/wscript
+++ b/libs/plugins/a-delay.lv2/wscript
@@ -33,7 +33,7 @@ def build(bld):
obj.target = '../../LV2/%s/%s' % (bundle, i)
obj.install_path = '${LV2DIR}/%s' % bundle
obj.chmod = Utils.O644
- obj.dict = {'LIB_EXT': module_ext}
+ obj.LIB_EXT = module_ext
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/a-eq.lv2/wscript b/libs/plugins/a-eq.lv2/wscript
index e36a804f7f..6f380aa232 100644
--- a/libs/plugins/a-eq.lv2/wscript
+++ b/libs/plugins/a-eq.lv2/wscript
@@ -33,7 +33,7 @@ def build(bld):
obj.target = '../../LV2/%s/%s' % (bundle, i)
obj.install_path = '${LV2DIR}/%s' % bundle
obj.chmod = Utils.O644
- obj.dict = {'LIB_EXT': module_ext}
+ obj.LIB_EXT = module_ext
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/a-fluidsynth.lv2/wscript b/libs/plugins/a-fluidsynth.lv2/wscript
index 3a093259d6..681ad1f489 100644
--- a/libs/plugins/a-fluidsynth.lv2/wscript
+++ b/libs/plugins/a-fluidsynth.lv2/wscript
@@ -32,7 +32,7 @@ def build(bld):
obj.target = '../../LV2/%s/%s' % (bundle, i)
obj.install_path = '${LV2DIR}/%s' % bundle
obj.chmod = Utils.O644
- obj.dict = {'LIB_EXT': module_ext}
+ obj.LIB_EXT = module_ext
# Build plugin library
obj = bld(features = 'cxx cshlib',
diff --git a/libs/plugins/a-reverb.lv2/wscript b/libs/plugins/a-reverb.lv2/wscript
index 3eb5ce10bc..a11e2cf7af 100644
--- a/libs/plugins/a-reverb.lv2/wscript
+++ b/libs/plugins/a-reverb.lv2/wscript
@@ -32,7 +32,7 @@ def build(bld):
obj.target = '../../LV2/%s/%s' % (bundle, i)
obj.install_path = '${LV2DIR}/%s' % bundle
obj.chmod = Utils.O644
- obj.dict = {'LIB_EXT': module_ext}
+ obj.LIB_EXT = module_ext
# Build plugin library
obj = bld(features = 'c cshlib',
diff --git a/libs/plugins/reasonablesynth.lv2/wscript b/libs/plugins/reasonablesynth.lv2/wscript
index 0eb5c55a04..ee54ce8bee 100644
--- a/libs/plugins/reasonablesynth.lv2/wscript
+++ b/libs/plugins/reasonablesynth.lv2/wscript
@@ -32,7 +32,7 @@ def build(bld):
obj.target = '../../LV2/%s/%s' % (bundle, i)
obj.install_path = '${LV2DIR}/%s' % bundle
obj.chmod = Utils.O644
- obj.dict = {'LIB_EXT': module_ext}
+ obj.LIB_EXT = module_ext
# Build plugin library
obj = bld(features = 'c cshlib',
--
2.21.0

View File

@@ -1,55 +0,0 @@
From cf71cc33c44d25a5483ef3ed4ea994f845e0f9b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 25 Jan 2020 17:20:39 +0100
Subject: [PATCH] a-comp.lv2/wscript: sync to master
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Backport
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
libs/plugins/a-comp.lv2/wscript | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/libs/plugins/a-comp.lv2/wscript b/libs/plugins/a-comp.lv2/wscript
index 00099cb564..c739e4bea7 100644
--- a/libs/plugins/a-comp.lv2/wscript
+++ b/libs/plugins/a-comp.lv2/wscript
@@ -15,10 +15,9 @@ def options(opt):
def configure(conf):
conf.load('compiler_c')
autowaf.configure(conf)
- if Options.options.lv2:
- autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0',
- uselib_store='LV2_1_0_0')
- autowaf.check_pkg(conf, 'cairo', uselib_store='CAIRO', atleast_version='1.12.0')
+ autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0',
+ uselib_store='LV2_1_0_0')
+ autowaf.check_pkg(conf, 'cairo', uselib_store='CAIRO', atleast_version='1.12.0')
def build(bld):
bundle = 'a-comp.lv2'
@@ -28,7 +27,6 @@ def build(bld):
if bld.is_defined('HAVE_LV2'):
# Build RDF files
for i in ['manifest.ttl', 'a-comp.ttl', 'a-comp#stereo.ttl', 'presets.ttl']:
- bld(features = 'subst',
obj = bld(features='subst')
obj.source = i + '.in'
obj.target = '../../LV2/%s/%s' % (bundle, i)
@@ -40,8 +38,8 @@ def build(bld):
obj = bld(features = 'c cshlib',
source = 'a-comp.c',
name = 'a-comp',
- cflags = [ '-fPIC', bld.env['compiler_flags_dict']['c99'] ],
- includes = [ '../../ardour' ],
+ cflags = [ bld.env['compiler_flags_dict']['pic'], bld.env['compiler_flags_dict']['c99'] ],
+ includes = [ '../../ardour', '../shared' ],
target = '../../LV2/%s/a-comp' % bundle,
install_path = '${LV2DIR}/%s' % bundle,
uselib = 'CAIRO',
--
2.21.0

File diff suppressed because one or more lines are too long

View File

@@ -1,127 +0,0 @@
SUMMARY = "Ardour is a multi-channel digital audio workstation"
HOMEPAGE = "http://ardour.org/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b"
DEPENDS += " \
gettext-native \
gtk+ \
gtkmm \
cppunit \
jack \
alsa-lib \
fftw \
vamp-plugin-sdk \
aubio \
taglib \
boost \
virtual/libx11 \
dssi \
zlib \
lrdf \
rubberband \
suil \
lilv \
libarchive \
libltc \
qm-dsp \
fluidsynth \
"
inherit waf features_check gtk-icon-cache pkgconfig python3native mime-xdg siteinfo
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = " \
git://github.com/Ardour/ardour.git \
file://waf-backport/waf \
file://waf-backport/0001-Towards-waf-python-2-3-support.patch \
file://waf-backport/0002-Update-waf-to-v2.0.19.patch \
file://waf-backport/0003-Change-waf-darwin-default-compiler-to-prefer-gcc-if-.patch \
file://waf-backport/0004-Tweaks-to-build-package-scripts-for-new-waf.patch \
file://waf-backport/0005-Downgrade-using-all-channels-warning-to-info-part-2.patch \
file://waf-backport/0006-Update-waf2.x-subst-feature-uses-obj-attributes.patch \
file://waf-backport/0007-a-comp.lv2-wscript-sync-to-master.patch \
file://0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch \
file://0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch \
file://0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \
file://0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \
file://0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch \
file://0006-Find-fmt-binding-in-out-of-tree-building.patch \
file://ardour5.desktop \
"
SRCREV = "ae0dcdc0c5d13483271065c360e378202d20170a"
PV = "5.12"
S = "${WORKDIR}/git"
# arch specific override - default (tested) is ARM -> no fpu-optimizations
# can be something like i686 / x86_64 see file 'wscript' in sourcepath for more details
BUILD_DIST_TARGET ??= "none"
EXTRA_OECONF = " \
--configdir=${sysconfdir} \
--bindir=${bindir} \
--libdir=${libdir} \
--optimize \
--cxx11 \
--no-phone-home \
--use-external-libs \
--qm-dsp-include=${STAGING_INCDIR}/qm-dsp \
\
--with-backends="jack,alsa" \
--dist-target=${BUILD_DIST_TARGET} \
"
PATH_append = ":${B}"
# Asking fails - waf supports --bindir / --libdir
waf_preconfigure() {
}
do_configure_prepend() {
# link python -> python3
ln -sf `which python3` ${B}/python
# copy waf
cp -f ${WORKDIR}/waf-backport/waf ${S}/
}
do_install_append() {
# install icons to freedesktop locations
for s in 16 22 32 48 256 512; do
install -d ${D}${datadir}/icons/hicolor/${s}x${s}/apps
ln -s ../../../../${BPN}/resources/Ardour-icon_${s}px.png \
${D}${datadir}/icons/hicolor/${s}x${s}/apps/${BPN}.png
done
# install .desktop
install -d ${D}${datadir}/applications
install -m 0644 ${WORKDIR}/ardour5.desktop ${D}${datadir}/applications
}
FILES_${PN} += " \
${datadir}/${BPN} \
${libdir}/${BPN} \
"
FILES_${PN}-dev += " \
${libdir}/${BPN}/libardour.so \
${libdir}/${BPN}/libardouralsautil.so \
${libdir}/${BPN}/libaudiographer.so \
${libdir}/${BPN}/libcanvas.so \
${libdir}/${BPN}/libevoral.so \
${libdir}/${BPN}/libgtkmm2ext.so \
${libdir}/${BPN}/libmidipp.so \
${libdir}/${BPN}/libpbd.so \
${libdir}/${BPN}/libptformat.so \
${libdir}/${BPN}/libwaveview.so \
${libdir}/${BPN}/libwidgets.so \
${libdir}/${BPN}/vamp/*.so \
"
FILES_${PN}-staticdev += " \
${libdir}/${BPN}/*.a \
"
# did not get ardour6 to fly on 32bit systems - so (r)provide for 32 bits as fallback
PROVIDES = "${@oe.utils.conditional('SITEINFO_BITS', '32', 'ardour', '', d)}"
RPROVIDES_${PN} = "${@oe.utils.conditional('SITEINFO_BITS', '32', 'ardour', '', d)}"

View File

@@ -102,6 +102,5 @@ FILES_${PN}-staticdev += " \
${libdir}/${BPN}/*.a \
"
# did not get ardour6 to fly on 32bit systems - so (r)provide for 64 bits only
PROVIDES = "${@oe.utils.conditional('SITEINFO_BITS', '64', 'ardour', '', d)}"
RPROVIDES_${PN} = "${@oe.utils.conditional('SITEINFO_BITS', '64', 'ardour', '', d)}"
PROVIDES = "ardour"
RPROVIDES_${PN} = "ardour"