I am attempting to build Ardour 7.3 from source on Mac (Intel, Big Sur 11.7.4). I have read some documentation and forum posts on doing so but I cannot find a solution to my problem.
No matter how I configure it, I end up with the same result when running ./waf:
Build failed → task in ‘libgtkmm2ext’ failed with exit status 1: {task 4398947816: cxx nsglview.mm → nsglview.mm.1.o}
I have tried configuring the build using various combinations of these flags: ./waf configure --libjack=weak --with-backends=jack,dummy --cxx11 --strict --optimize --no-fpu-optimization
What is the actual error message from the compiler?
That is printed a bit above in the compile output before the “tasked failed”.
nsglview.mm is a dedicated openGL View for macOS, and while apple deprecated it, it still compiles just fine. I am building Ventura 13.2.1 and official Ardour Apple-silicon binaries are done on BigSur (11.6).
OK, I just got a crazy idea that ended up working. I located the nsglview.mm file and was looking thru the code when I noticed this:
#ifndef ARDOUR_CANVAS_NSVIEW_TAG #error NO TAG #define ARDOUR_CANVAS_NSVIEW_TAG 0x0 #endif
So I thought to myself “cool, what if I just commented out that #error line?”
So I did.
And it compiled successfully.
I understand this probably shouldnt have worked. I assume that the #error was there for a reason but whatevs.
So thank you Robin for making me actually read the error message, giving me the impetus to go snoop around the code.
On another note, to make it an app bundle the osx_build script is failing.
When I run the ./osx_build --public command I get this:
Removing old Ardour7.app tree …
Building new app directory structure …
Copying ardour executable …
cp: …/…/build/gtk2_ardour/ardour-7.3.23: No such file or directory
Any suggestions? If not thats OK, I can simply make a shell script that runs the ardev executable.
To consolidate the problem and a poor short term solution:
MY SETUP: Intel Macbook, Big Sur 11.7.4 | Ardour 7.3.23
PROBLEM: While compiling from source during the ./waf step, the build fails in task libgtkmm2ext because of a NO TAG error raised in the the file ../libs/gtkmm2ext/nsglview.mm.
SOLUTION (ymmv): Manually edit line 46 of the previously mentioned file. Either remove that line completely or comment it out.
Old Broken code:
#ifndef ARDOUR_CANVAS_NSVIEW_TAG #error NO TAG #define ARDOUR_CANVAS_NSVIEW_TAG 0x0 #endif
Edited Code:
#ifndef ARDOUR_CANVAS_NSVIEW_TAG
// #error NO TAG #define ARDOUR_CANVAS_NSVIEW_TAG 0x0 #endif
This causes the build to be incomplete. While I was able to run the ../gtk2_ardour/ardev just once. The app functioned just fine. But after closing the app, I was unable to reopen it. Now each attempt to run the ardev script gives an error such as ../../gtk2_ardour/ardev: line 5: ~/../../build/gtk2_ardour/ardour-7.3.23: No such file or directory.
With your change, I expect there may be some issues with mouse events. To work around this, you could change Ardour > Preferences > Appearance > Render Canvas on openGL texture to No.
What is the output of ls build/gtk2_ardour/ardour-* ?
Did you perhaps git pull since the last call to ./waf configure ...?