13
0
Commit Graph

629 Commits

Author SHA1 Message Date
cfae218b8a
Amend prev. commit (ARM FPU optimization configuration) 2020-08-21 03:48:03 +02:00
fb5abde677
Use specific build-target for ARM/NEON routines 2020-08-21 03:39:56 +02:00
58a5e256a9
GNU libc 2.31 compatibility part two
This fixes underlinking against -lm and reverts the
prior workaround 83cd796a47.
2020-05-12 12:23:26 +02:00
Nils Philippsen
845d7d3a3b Recognize dist, distcheck better to set app name
Previously, `dist` had to be the first argument to waf. If it came in a
different position (e.g. `APPNAME=Ardour ./waf tarball dist`) or
`distcheck` was used instead of `dist`, the resulting archive was named
`noname-....tar.bz2`.

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2020-04-25 10:39:29 -06:00
Luciano Iam
d694ee97c7
Update waf scripts 2020-04-09 20:56:46 +02:00
83cd796a47
GNU libc 2.31 compatibility
Optimized builds of Ardour use various _finite math methods
(due to -ffast-math). Those functions have apparently been
removed, and replaced with macros and are no longer available
in libm/libc++.

see also
https://discourse.ardour.org/t/a-eq-and-a-comp-fail-on-manjaro-xfce/103122
https://lists.gnu.org/archive/html/info-gnu/2020-02/msg00001.html
2020-03-30 22:41:11 +02:00
34e68fe5e2
Automatic backend selection, and fix backend option parsing
python ''.split(',') returns an array with an empty string,
it does not evaluate to false.
2020-03-28 14:56:29 +01:00
e219a6cd1e
Source-tree consistency (headless tools at top-level)
This move ardour-lua session tool to top-level, next to
headless/hardev.
2020-03-26 19:00:41 +01:00
nia
9be75befbe Add support for NetBSD by generalizing BSD OS tests. 2020-03-26 09:39:44 -06:00
a254ce22a8
Fix optimized mingw/gcc-8.2 builds
gcc-8.2 -O3 optimization enables -finline-functions.
For reasons yet unknown this causes issues with Glib::Threads::Private
when loading sessions (creating new ones is fine) and likely some
other operations.

Without this change the following happens (5.12 as well as current git)
when loading an existing session:

---
[Switching to Thread 6092.0x12fc]
Breakpoint 1, ARDOUR::SessionEvent::create_per_thread_pool (name=..., nitems=4096)
    at ../libs/ardour/session_events.cc:60
60      in ../libs/ardour/session_events.cc
$6 = (const std::__cxx11::string &) @0x210dfc60: {static npos = 18446744073709551615,
  _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
    _M_p = 0x210dfc70 "GUI"}, _M_string_length = 3, {_M_local_buf = "GUI\000\000\000\000\000<E0>P<DA>:\000\000\000",
    _M_allocated_capacity = 4805959}}
#0  ARDOUR::SessionEvent::create_per_thread_pool (name=..., nitems=4096) at ../libs/ardour/session_events.cc:60
#1  0x0000000000434e77 in ?? ()

[..]

Thread 1 (Thread 6092.0x12fc):
#0  0x0000000061f152ef in PBD::RingBuffer<void*>::write (this=this@entry=0x50, src=src@entry=0x210dcdc8,
    cnt=cnt@entry=1) at ../libs/pbd/pbd/ringbuffer.h:170
#1  0x0000000061ee954d in push (t=<optimized out>, this=0x0) at ../libs/pbd/pool.cc:290
#2  CrossThreadPool::flush_pending_with_ev (this=0x0, ptr=<optimized out>) at ../libs/pbd/pool.cc:254
#3  0x00000000218d5b01 in operator() (a0=0x210dcdc8, this=0x48)
    at /home/ardour/win-stack-w64/include/boost/function/function_template.hpp:682
#4  operator()<boost::function<void(ARDOUR::SessionEvent*)>, boost::_bi::list0> (a=<synthetic pointer>, f=...,
    this=0x68) at /home/ardour/win-stack-w64/include/boost/bind/bind.hpp:259
#5  operator() (this=0x48) at /home/ardour/win-stack-w64/include/boost/bind/bind.hpp:1294
#6  boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void (ARDOUR::SessionEvent*)>, boost::_bi::list1<boost::_bi::value<ARDOUR::SessionEvent*> > >, void>::invoke(boost::detail::function::function_buffer&) (function_obj_ptr=...)
    at /home/ardour/win-stack-w64/include/boost/function/function_template.hpp:159
#7  0x0000000063e2dc39 in operator() (this=0x210dcf70)
    at /home/ardour/win-stack-w64/include/boost/function/function_template.hpp:682
#8  AbstractUI<Gtkmm2ext::UIRequest>::call_slot(PBD::EventLoop::InvalidationRecord*, boost::function<void ()> const&)
    (this=0x3ada50e0, invalidation=0x0, f=...) at ../libs/pbd/pbd/abstract_ui.cc:434
#9  0x00000000216cbb96 in ARDOUR::SessionEventManager::merge_event (this=<optimized out>, ev=<optimized out>)
    at /home/ardour/win-stack-w64/include/boost/function/function_template.hpp:507
#10 0x00000000216e3861 in non-virtual thunk to ARDOUR::Session::queue_event(ARDOUR::SessionEvent*) ()
    at ../../win-stack-w64/include/glibmm-2.4/glibmm/threads.h:709
#11 0x00000000216c91bf in ARDOUR::SessionEventManager::clear_events(ARDOUR::SessionEvent::Type, boost::function<void ()>) (this=this@entry=0x4256cc08, type=type@entry=ARDOUR::SessionEvent::Skip, after=...)
    at ../libs/ardour/session_events.cc:156
#12 0x000000002168874a in ARDOUR::Session::sync_locations_to_skips (this=this@entry=0x4256ca90)
    at /usr/lib/gcc/x86_64-w64-mingw32/8.3-posix/include/c++/new:169
#13 0x0000000021688802 in ARDOUR::Session::update_skips (this=this@entry=0x4256ca90, loc=loc@entry=0x0,
    consolidate=consolidate@entry=false) at ../libs/ardour/session.cc:1683
#14 0x0000000021699649 in _locations_changed (locations=..., this=0x4256ca90) at ../libs/ardour/session.cc:1859
#15 apply<ARDOUR::Session> (method=
    (void (ARDOUR::Session::*)(ARDOUR::Session * const, const ARDOUR::Locations::LocationList &)) 0x216994f0 <ARDOUR::Session::_locations_changed(std::__cxx11::list<ARDOUR::Location*, std::allocator<ARDOUR::Location*> > const&)>,
    obj=..., this=0x40ff4c60) at ../libs/ardour/ardour/location.h:240
#16 ARDOUR::Session::locations_changed (this=this@entry=0x4256ca90) at ../libs/ardour/session.cc:1840
#17 0x0000000021700abd in ARDOUR::Session::set_state (this=0x4256ca90, node=..., version=6000)
    at ../libs/ardour/session_state.cc:1657
#18 0x0000000021713456 in ARDOUR::Session::post_engine_init (this=this@entry=0x4256ca90) at ../libs/pbd/pbd/xml++.h:81
#19 0x00000000216ad5cd in ARDOUR::Session::Session (this=0x4256ca90, eng=..., fullpath=..., snapshot_name=...,
    bus_profile=<optimized out>, mix_template=...) at ../libs/ardour/session.cc:383
#20 0x000000000046db8b in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

---

Note that in the trace starting at #19 the source-file references
are offset :post_engine_init() isn't in xml++.h
(likely debug symbols are incorrect due to inline functions)

The application crashes due to #2 ::flush_pending_with_ev (this=0x0 ..)
But the earlier breakpoint above shows that the ThreadPool was
created, and this #11 ::clear_events() should not assign NULL.

(This happens on a single-core CPU, too)
2020-03-10 20:55:50 +01:00
6f29f45c81
Fix typo in f265bbbf82 2020-03-08 04:23:45 +01:00
f265bbbf82
mingw/gcc-8.2 compat: _xgetbv() needs -mxsave
Otherwise this causes PBD::FPU to fail with
error: inlining failed in call to always_inline ‘long long int _xgetbv(unsigned int)’
2020-03-08 02:41:15 +01:00
b0e7ba1262
Fix for modern boost + updated buildstack
Ardour's boost is not compiled --with-system, this causes issues
with modern compilers (gcc 8.2) when linking.
2020-03-08 02:38:30 +01:00
ede853d791
NO-OP: whitespace 2020-03-08 02:32:07 +01:00
6fd27f89b3
Remove debug message 2020-03-06 01:44:32 +01:00
09d45eff42
Update boost-ptr debug patch for boost 1.67 2020-02-25 02:29:03 +01:00
f79ae05a93
Amend 180843f9 - move scripts 2020-02-23 21:21:33 +01:00
54c4d3adc5
Clean up top-level source tree
Collect architecture independent data in 'share' subfolder.
This also matches the install path
2020-02-23 16:21:55 +01:00
674116b156
Fix configuration with gcc-9
Libraries need to be specified in order as last argument,
not as linkflag.
2020-01-26 01:11:23 +01:00
5a841ef462
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)
2020-01-25 04:07:42 +01:00
1d2cfd6f2d
Change waf/darwin default compiler to prefer gcc (if available) 2020-01-25 04:07:41 +01:00
David Runge
2e9ac80e99
Towards waf python 2+3 support 2020-01-25 04:07:37 +01:00
8be727114c
Add tsan option to trace data-races 2019-12-07 00:46:33 +01:00
216492c60c
Bump boost version requirement
1.56 is needed for boost::optional::value_or
2019-11-21 17:43:32 +01:00
7e10eec3c2 Use conf.fatal for fatal configuration errors 2019-10-19 02:22:59 +02:00
84efcb2534 Fix Python3 incompatible syntax 2019-10-19 02:22:59 +02:00
a1d5499f40 Fix typo 2019-10-19 02:22:59 +02:00
68ec0d23c9 changes required to get build-stack to run on a Mojave VM. 2019-10-02 18:04:40 -06:00
5ec5bc4523 goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build 2019-09-25 12:16:13 -06:00
b9ff3b1e77
Cleanup configuration stage
* use print() only for errors
* use write_config_text() for normal operation
* fail if lld was requested, but not found
2019-09-25 14:13:51 +02:00
d48e916ef1 add configure-time option to use lld as the linker (on linux)
this cuts about 15 seconds off the total linker time on a 16 core ryzen threadripper
2019-09-24 17:36:45 -06:00
4992c69108 remove compiler flags required only by boost::msm and a large transition table 2019-09-19 22:34:18 -06:00
bd229936ec add finite state machine to control/manage transport state 2019-09-17 18:26:03 -06:00
65268bae5b
Report whether arlua is being built 2019-09-09 04:15:20 +02:00
63994f3b82
Include vamp-pyin
In preparation for captainMorgan's pitch analysis script.
2019-09-02 03:12:22 +02:00
8775087ea6
Remove explicit pulse version check (debian/wheezy builds) 2019-08-17 00:18:39 +02:00
384c97e12d
Puls der Zeit
Prototype a basic stereo-playback only pulseaudio backend.
2019-07-25 17:49:42 +02:00
e0e5ee0b44
Unify build-system customization (Ardour/Mixbus) 2019-04-09 13:17:15 +02:00
754591e2ee remove dangling --lv2 waf configure option 2019-01-02 08:11:09 -05:00
04ccd328dc remove configure-time --no-lv2 option. LV2 is integral to what we do 2018-12-28 09:47:55 -05:00
e554d1fad5 Add upstream libzita-convolver 4.0.3 2018-10-20 00:24:38 +02:00
df2a18ec1c Fix --no-nls (1/5): ENABLE_NLS = 1/0 config
system-wide gettext uses `#if ENABLE_NLS`, not #ifdef
2018-09-21 19:00:33 +02:00
Guido Aulisi
5ffd2078da AppData: 'revision' in revision.cc is expected in the 2nd line
Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2018-09-19 19:14:02 -04:00
Nils Philippsen
2b8f25e05e generate revision.cc with one item per line 2018-09-19 19:14:02 -04:00
Nils Philippsen
12544795e8 AppData release tags need a date to be valid
Or a timestamp, but that's deprecated. Create it from the last commit,
store it in/retrieve it from revision.cc and substitute it in the
template.

https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-releases
2018-09-19 19:14:02 -04:00
Johannes Mueller
3620122ad0 First draft of a-expander 2018-05-12 19:49:18 +02:00
49130df35b Add factory plugin tags + favorites 2018-01-30 01:34:46 +01:00
Chris Dennis
e3c6a41c11 Adds support for building in Mac OS High Sierra 2018-01-28 12:59:25 +01:00
7036b2825a Detected boost using a compile-time check (works w/x-compile) 2017-10-21 21:07:18 +02:00
48d402c960 part two of initial libtemporal creation 2017-09-24 10:48:00 -04:00
3a5f98ba65 Fix buildstack revision report 2017-09-20 14:06:27 +02:00
658c6e7141 Fix buildstack report 2017-09-19 20:26:26 +02:00
de7963941d Don't build ni-maschine support by default
While the pads work, overall integration is still not present, mainly
because the device does not lend itself for editing & mixing in a
DAW environment.
2017-09-18 11:40:53 -04:00
eb71eddbc8 Add libzita-resampler as lib
This simplifies x-compiling and x-platform builds as well
allows to statically link, if needed.
2017-09-16 18:31:54 +02:00
5d0b00589c Fix the Unicode workaround in wscript
The previous code was supposed to ensure VERSION and PROGRAM_VERSION
were *not* Unicode objects since though they are the correct type to
represent strings in Python 2, too many libraries have strange issues
dealing with them, and UnicodeErrors can creep in with implicit
conversions from/to Unicode objects.

But in fact it did exactly the contrary since str.decode() always
returns Unicode objects, whose type corresponds to the str class in
Python 3. Fix it so that in both Python 2 and 3 the constants are
eventually instances of str.
2017-09-03 20:39:10 +02:00
55f0bb692a fix waf template install 2017-08-24 15:26:14 +02:00
5cffe7fa84 Deploy Session-templates 2017-08-23 23:55:00 +02:00
f9aff37623 full integration of beatbox test app into ardour tree+build system
Plus a few attempts at catching note on/off quantization stuff
2017-08-05 02:03:59 -04:00
beb73edf55 Purify libcanvas, remove libardour dependency
A canvas is just a canvas. Move WaveView into its own library.
2017-07-17 21:06:04 +02:00
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
843d5ffa59 Output the setting of the --no-threaded-waveviews option during configure 2017-06-26 08:40:47 +10:00
38285d0e54 Remove cfgtool, it's not useful anymore
cfgtool was used to dump the current config defaults into ./system_config
on the system it runs. It was manually invoked (usually on Linux) and
hence produced incorrect settings for Windows and OSX variants.

Since ea4bbcf5 Ardour binaries bundle a minimal empty system_config,
and the built-in defaults are used (correct for every platform).
2017-05-12 16:35:08 +02:00
d4f2121cfa Fix linking on El Capitan
Modern xcode, does not allow std::locale::numeric with 10.8 SDK
2017-04-07 23:31:44 +02:00
b38e81d261 Fix build-stack revision path (3d952b095) 2017-04-04 17:42:10 +02:00
3d952b095a Include build-stack rev in config report 2017-04-04 17:13:32 +02:00
24f7ae4cf6 Sort and group configuration report 2017-04-04 17:13:08 +02:00
54fd56de75 Fix yet another oversight for the windows icon file update 2017-02-26 14:40:22 +01:00
0653766f79 Allow to keep environment C/XXFLAGS with debug builds
this is needed for e.g. windows debug builds to pass mstackrealign
2017-02-19 16:01:25 +01:00
1570b6c088 consolidate --help text, allow to generate man page. 2017-01-14 23:07:44 +01:00
powerpaul17
019ab92a5e adapted wscript for macos sierra 2017-01-05 09:32:41 +00:00
Paul Tirk
e6f94215c4 fixed compilation on osx, minimal version was wrong 2017-01-05 09:32:41 +00:00
2481db7a7f Add a small tool to experiment with libcanvas 2016-12-11 15:52:56 +01:00
4c92d75cbe Always build dummy backend if building tests
The libardour tests require the dummy backend to be present.
2016-12-04 15:13:19 -05:00
David Carlier
282b7c2443 separate openbsd cases 2016-11-29 13:18:46 +00:00
David Carlier
28435d1a30 Making buildable under OpenBSD. 2016-11-29 13:18:46 +00:00
878635222a Disable OSX 10.5/PPC support (MacVST is Cocoa UI only) 2016-11-19 00:46:13 +01:00
dcc16b7440 Revert "disable MacVST support (until it's ready)"
This reverts commit e0766e8f74.
2016-11-16 01:25:29 +01:00
e0766e8f74 disable MacVST support (until it's ready) 2016-11-13 16:35:06 +01:00
8b93fb02f3 Mac VST-2.x support 2016-11-13 16:35:06 +01:00
c78824aef5 Include hidapi library 2016-10-23 22:53:10 +02:00
Nils Philippsen
0aaded5318 allow linking unbundled version of qm-dsp
In the course, rename the bundled, built version libqm-dsp so it matches
packaged versions.
2016-10-04 22:03:28 +02:00
e3c93b7470 clang on el capitan etc. no longer supports -fstrength-reduce 2016-09-28 16:52:16 -04:00
e297e27b7f Add defines necessary for successful gcc/mingw compile with --cxx11 option
_USE_MATH_DEFINES is required for M_PI

WIN32 is no longer defined by gcc/mingw with --cxx11 option enabled(of course
_WIN32 still is) but as it is used in a liblo header(even though it is probably
incorrect to do so) define it.
2016-09-15 21:27:55 +10:00
53ee3e2e72 Add support for built-in file/url unzip/untar
This introduces new build-dependency: libarchive
(http://www.libarchive.org/)
2016-09-13 16:14:40 +02:00
7ccbc0ca73 OSC: Add preset loading to OSC GUI 2016-08-24 10:07:21 -07:00
870cb19737 a-fluidsynth 2016-08-24 03:18:14 +02:00
ac05f05023 Import libfluidsynth into the Ardour codebase 2016-08-23 22:21:03 +02:00
43f8d2503c a-reverb prototype (based on setBfree b_reverb) 2016-07-12 16:43:10 +02:00
44de8560a6 Add a-EQ (basic 4 band EQ) with inline display based on SVF filters 2016-07-07 22:15:44 +10:00
de4cb2f8af Add a-Delay plugin 2016-07-06 01:53:59 +10:00
b9891ec298 add another warning-disable flag for clang 2016-07-04 15:10:34 -04:00
94e5060168 bundle a-comp 2016-07-03 03:21:44 +02:00
86763cba90 Enable build for FreeBSD (part 1/2)
Adopted from Michael Beer -- GH pull-request #232 with minor changes:

*   rebased on master,
*   removed trailing whitespace,
*   don't explicitly change saved configuration defaults (wscript)
*   moved sys/wait (WNOHANG) to header include
*   separate changes in GUI and lib
2016-06-26 16:43:07 +02:00
a8fa5e9158 Ignore numerals before "+" in tag 2016-06-24 02:34:56 +02:00
3f665883da clean up configure output
print is not interleaved with autowaf.display_msg
2016-05-16 20:05:08 +02:00
2d9ff7b7e7 fix windows builds - rc file needs to be present at build call 2016-05-16 20:04:23 +02:00
13e0db6914 icon-name follows program-name
so that derivative products don't need to replace binary image/icon
files in the source (use ./waf configure --program-name=...)
2016-05-16 17:35:01 +02:00
6972db0d55 add luadoc binary (developer tool) to dump lua bindings
output is either JSON or lua-tables.
enable via  ./waf configure --luadoc ... , needs C++11
2016-03-20 20:54:36 +01:00
5fa4cf996b prepare custom LV2 extensions 2016-03-14 00:17:08 +01:00
c26a53d401 tweak optimization flags for clang 2016-03-04 17:04:04 +01:00