View Issue Details

IDProjectCategoryView StatusLast Update
0004529ardourotherpublic2020-04-19 20:15
Reporterx42 Assigned Topaul  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Summary0004529: OSX build fails on >=10.5; univesal binary is broken; no OSX 64bit support
Descriptionsee discussion on ardour-dev.

Attached patches make Carbon optional (64bit support); add missing header includes for OSX>=10.5; and allow to compile a universal (PPC, i386, x64_64) binary
TagsNo tags attached.

Activities

2011-12-02 18:47

 

0001-OSX-fixes-explicit-typecasts-and-glib-includes.patch (7,743 bytes)   
From a64c0834374825da9f52ba526e399ec3b652977f Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Fri, 2 Dec 2011 02:24:28 +0100
Subject: [PATCH 1/6] OSX fixes: explicit typecasts and glib includes

* replace all <glib/FILENAME.h> includes with <glib.h> for glib-2.31.2
  #error "Only <glib.h> can be included directly."

* work around "looses precision" and implicit typecast errors:
	  size_t/SInt32 for OSX and void*/int for 32/64bit
---
 gtk2_ardour/engine_dialog.cc                 |   12 ++++++------
 libs/appleutility/CAComponent.cpp            |    4 ++--
 libs/appleutility/CAComponentDescription.cpp |    2 +-
 libs/ardour/ardour/graph.h                   |    2 +-
 libs/ardour/coreaudiosource.cc               |    6 +++---
 libs/ardour/globals.cc                       |    2 +-
 libs/ardour/operations.cc                    |    2 +-
 libs/clearlooks-newer/animation.c            |    2 +-
 8 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc
index 46098c5..1a10476 100644
--- a/gtk2_ardour/engine_dialog.cc
+++ b/gtk2_ardour/engine_dialog.cc
@@ -743,14 +743,14 @@ EngineControl::enumerate_coreaudio_devices ()
 	backend_devs.clear ();
 
 	err = AudioHardwareGetPropertyInfo(kAudioHardwarePropertyDevices,
-					   &outSize, &isWritable);
+					   (UInt32*) &outSize, &isWritable);
 	if (err == noErr) {
 		// Calculate the number of device available...
 		int numCoreDevices = outSize / sizeof(AudioDeviceID);
 		// Make space for the devices we are about to get...
 		AudioDeviceID *coreDeviceIDs = new AudioDeviceID [numCoreDevices];
 		err = AudioHardwareGetProperty(kAudioHardwarePropertyDevices,
-					       &outSize, (void *) coreDeviceIDs);
+					       (UInt32*) &outSize, (void *) coreDeviceIDs);
 		if (err == noErr) {
 			// Look for the CoreAudio device name...
 			char coreDeviceName[256];
@@ -764,7 +764,7 @@ EngineControl::enumerate_coreaudio_devices ()
 
 				err = AudioDeviceGetPropertyInfo(coreDeviceIDs[i],
 								 0, true, kAudioDevicePropertyStreams,
-								 &outSize, &isWritable);
+								 (UInt32*) &outSize, &isWritable);
 
 				if (err != noErr || outSize == 0) {
 					continue;
@@ -772,7 +772,7 @@ EngineControl::enumerate_coreaudio_devices ()
 
 				err = AudioDeviceGetPropertyInfo(coreDeviceIDs[i],
 								 0, false, kAudioDevicePropertyStreams,
-								 &outSize, &isWritable);
+								 (UInt32*) &outSize, &isWritable);
 
 				if (err != noErr || outSize == 0) {
 					continue;
@@ -780,11 +780,11 @@ EngineControl::enumerate_coreaudio_devices ()
 
 				err = AudioDeviceGetPropertyInfo(coreDeviceIDs[i],
 								 0, true, kAudioDevicePropertyDeviceName,
-								 &outSize, &isWritable);
+								 (UInt32*) &outSize, &isWritable);
 				if (err == noErr) {
 					err = AudioDeviceGetProperty(coreDeviceIDs[i],
 								     0, true, kAudioDevicePropertyDeviceName,
-								     &nameSize, (void *) coreDeviceName);
+								     (UInt32*) &nameSize, (void *) coreDeviceName);
 					if (err == noErr) {
 						char drivername[128];
 
diff --git a/libs/appleutility/CAComponent.cpp b/libs/appleutility/CAComponent.cpp
index 700d9e2..9df4ce1 100644
--- a/libs/appleutility/CAComponent.cpp
+++ b/libs/appleutility/CAComponent.cpp
@@ -96,7 +96,7 @@ OSStatus		CAComponent::GetResourceVersion (UInt32 &outVersion) const
 	short thngResourceCount;
 	
 	short curRes = CurResFile();
-	require_noerr (result = OpenAComponentResFile( mComp, &componentResFileID), home);
+	require_noerr (result = OpenAComponentResFile( mComp, (ResFileRefNum*) &componentResFileID), home);
 	require_noerr (result = componentResFileID <= 0, home);
 	
 	UseResFile(componentResFileID);
@@ -247,7 +247,7 @@ void	_ShowCF (FILE* file, CFStringRef str)
 
 void	CAComponent::Print(FILE* file) const
 {
-	fprintf (file, "CAComponent: 0x%X", int(Comp()));
+	fprintf (file, "CAComponent: 0x%X", (int64_t) Comp());
 	if (mManuName) {
 		fprintf (file, ", Manu:"); _ShowCF (file, mManuName);
 		if (mAUName) fprintf (file, ", Name:"); _ShowCF (file, mAUName);
diff --git a/libs/appleutility/CAComponentDescription.cpp b/libs/appleutility/CAComponentDescription.cpp
index 261a2b8..35aa350 100644
--- a/libs/appleutility/CAComponentDescription.cpp
+++ b/libs/appleutility/CAComponentDescription.cpp
@@ -74,7 +74,7 @@ void 	CAComponentDescription::_CAShowComponentDescription(const ComponentDescrip
 		fprintf (file, "ComponentDescription: %s - ", StringForOSType(desc->componentType, str));
 		fprintf (file, "%s - ", StringForOSType(desc->componentSubType, str));
 		fprintf (file, "%s", StringForOSType(desc->componentManufacturer, str));		
-		fprintf (file, ", 0x%lX, 0x%lX\n", desc->componentFlags, desc->componentFlagsMask);
+		fprintf (file, ", 0x%lX, 0x%lX\n", (long unsigned int) desc->componentFlags, (long unsigned int) desc->componentFlagsMask);
 	}
 }
 
diff --git a/libs/ardour/ardour/graph.h b/libs/ardour/ardour/graph.h
index f1ebba6..0079024 100644
--- a/libs/ardour/ardour/graph.h
+++ b/libs/ardour/ardour/graph.h
@@ -28,7 +28,7 @@
 
 #include <boost/shared_ptr.hpp>
 
-#include <glib/gatomic.h>
+#include <glib.h>
 #include <cassert>
 
 #include <pthread.h>
diff --git a/libs/ardour/coreaudiosource.cc b/libs/ardour/coreaudiosource.cc
index ef99b9a..3b0323d 100644
--- a/libs/ardour/coreaudiosource.cc
+++ b/libs/ardour/coreaudiosource.cc
@@ -239,7 +239,7 @@ CoreAudioSource::get_soundfile_info (string path, SoundFileInfo& _info, string&)
 	AudioStreamBasicDescription absd;
 	memset(&absd, 0, sizeof(absd));
 	size = sizeof(AudioStreamBasicDescription);
-	if (ExtAudioFileGetProperty (af, kExtAudioFileProperty_FileDataFormat, &size, &absd) != noErr) {
+	if (ExtAudioFileGetProperty (af, kExtAudioFileProperty_FileDataFormat, (UInt32*) &size, &absd) != noErr) {
 		goto out;
 	}
 
@@ -247,12 +247,12 @@ CoreAudioSource::get_soundfile_info (string path, SoundFileInfo& _info, string&)
 	_info.channels   = absd.mChannelsPerFrame;
 
 	size = sizeof(_info.length);
-	if (ExtAudioFileGetProperty(af, kExtAudioFileProperty_FileLengthFrames, &size, &_info.length) != noErr) {
+	if (ExtAudioFileGetProperty(af, kExtAudioFileProperty_FileLengthFrames, (UInt32*) &size, &_info.length) != noErr) {
 		goto out;
 	}
 
 	size = sizeof(CFStringRef);
-	if (AudioFormatGetProperty(kAudioFormatProperty_FormatName, sizeof(absd), &absd, &size, &name) != noErr) {
+	if (AudioFormatGetProperty(kAudioFormatProperty_FormatName, sizeof(absd), &absd, (UInt32*) &size, &name) != noErr) {
 		goto out;
 	}
 
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index 5a2a2ad..ccc74fc 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -177,7 +177,7 @@ setup_hardware_optimization (bool try_optimization)
 #elif defined (__APPLE__) && defined (BUILD_VECLIB_OPTIMIZATIONS)
 		long sysVersion = 0;
 
-		if (noErr != Gestalt(gestaltSystemVersion, &sysVersion))
+		if (noErr != Gestalt(gestaltSystemVersion, (SInt32*) &sysVersion))
 			sysVersion = 0;
 
 		if (sysVersion >= 0x00001040) { // Tiger at least
diff --git a/libs/ardour/operations.cc b/libs/ardour/operations.cc
index 84da0f5..3cdd936 100644
--- a/libs/ardour/operations.cc
+++ b/libs/ardour/operations.cc
@@ -17,7 +17,7 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <glib/gquark.h>
+#include <glib.h>
 #include "ardour/operations.h"
 #include "i18n.h"
 
diff --git a/libs/clearlooks-newer/animation.c b/libs/clearlooks-newer/animation.c
index e6ac9fa..24766aa 100644
--- a/libs/clearlooks-newer/animation.c
+++ b/libs/clearlooks-newer/animation.c
@@ -27,7 +27,7 @@
 #include "animation.h"
 
 #ifdef HAVE_ANIMATION
-#include <glib/gtimer.h>
+#include <glib.h>
 
 struct _AnimationInfo {
 	GTimer *timer;
-- 
1.6.5.2

2011-12-02 18:47

 

0002-allow-to-compile-without-VST-support.patch (953 bytes)   
From 02b1804ec93c6b411059136e5f846794a313acf1 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Fri, 2 Dec 2011 02:28:44 +0100
Subject: [PATCH 2/6] allow to compile without VST support.

get_vst_midi() is undefined in vst_plugin.cc
---
 libs/ardour/vst_plugin.cc |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index 1afc496..2613fdb 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -32,6 +32,8 @@ using namespace std;
 using namespace PBD;
 using namespace ARDOUR;
 
+#if (defined WINDOWS_VST_SUPPORT) || (defined LXVST_SUPPORT) // get_vst_midi() is undefined.
+
 VSTPlugin::VSTPlugin (AudioEngine& engine, Session& session, VSTHandle* handle)
 	: Plugin (engine, session)
 	, _handle (handle)
@@ -678,4 +680,4 @@ VSTPlugin::presets_file () const
 {
 	return string_compose ("vst-%1", unique_id ());
 }
-
+#endif
-- 
1.6.5.2

2011-12-02 18:47

 

0003-multi-arch-binary-use-compiler-defines-in-FPU-detect.patch (825 bytes)   
From 91f919d4005937fb5ce16bee95f10e9da8552204 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Fri, 2 Dec 2011 02:31:20 +0100
Subject: [PATCH 3/6] multi-arch binary: use compiler defines in FPU detection code

---
 libs/pbd/fpu.cc |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/libs/pbd/fpu.cc b/libs/pbd/fpu.cc
index a004d8a..1018414 100644
--- a/libs/pbd/fpu.cc
+++ b/libs/pbd/fpu.cc
@@ -19,12 +19,12 @@ FPU::FPU ()
 
 	_flags = Flags (0);
 
-#ifndef ARCH_X86
+#if !( (defined __x86_64__) || (defined __i386__) ) // !ARCH_X86
 	return;
-#endif
+#else
 
 	
-#ifndef USE_X86_64_ASM
+#ifndef _LP64 //USE_X86_64_ASM
 	asm volatile (
 		"mov $1, %%eax\n"
 		"pushl %%ebx\n"
@@ -102,6 +102,7 @@ FPU::FPU ()
 			free (fxbuf);
 		}
 	}
+#endif
 }			
 
 FPU::~FPU ()
-- 
1.6.5.2

2011-12-02 18:47

 

0004-fixed-GTKOSX-AUDIOUNIT_SUPPORT-ifdefs.patch (2,343 bytes)   
From 493a1a6a15ea79bd46da0da03c0976c15002fd17 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Fri, 2 Dec 2011 02:35:31 +0100
Subject: [PATCH 4/6] fixed GTKOSX -> AUDIOUNIT_SUPPORT ifdefs

---
 gtk2_ardour/plugin_ui.cc |    6 +++---
 gtk2_ardour/wscript      |    5 ++++-
 libs/ardour/wscript      |    2 ++
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index c71fd19..9774d3d 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -313,13 +313,13 @@ PluginUIWindow::create_lxvst_editor(boost::shared_ptr<PluginInsert>)
 }
 
 bool
-#ifdef GTKOSX
+#ifdef AUDIOUNIT_SUPPORT
 PluginUIWindow::create_audiounit_editor (boost::shared_ptr<PluginInsert> insert)
 #else
 PluginUIWindow::create_audiounit_editor (boost::shared_ptr<PluginInsert>)
 #endif
 {
-#ifndef GTKOSX
+#ifndef AUDIOUNIT_SUPPORT
 	return false;
 #else
 	VBox* box;
@@ -340,7 +340,7 @@ PluginUIWindow::app_activated (bool yn)
 PluginUIWindow::app_activated (bool)
 #endif
 {
-#ifdef GTKOSX
+#ifdef AUDIOUNIT_SUPPORT
 	if (_pluginui) {
 		if (yn) {
 			if (was_visible) {
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
index f378f49..d3c2499 100644
--- a/gtk2_ardour/wscript
+++ b/gtk2_ardour/wscript
@@ -427,9 +427,12 @@ def build(bld):
 
     if bld.is_defined('HAVE_COREAUDIO'):
         TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
-        obj.source += [ 'cocoacarbon.mm', 'au_pluginui.mm' ]
+        obj.source += [ 'cocoacarbon.mm' ]
         obj.use += ' libappleutility '
 
+    if bld.is_defined('AUDIOUNIT_SUPPORT'):
+        obj.source += [ 'au_pluginui.mm' ]
+
     if bld.is_defined('WINDOWS_VST_SUPPORT'):
         # If we require VST support we build a stub main() and the FST library
         # here using winegcc, and link it to the GTK front-end library
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index 52c24c5..7bbde91 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -399,6 +399,8 @@ def build(bld):
     if bld.is_defined('HAVE_COREAUDIO'):
         obj.source += [ 'coreaudiosource.cc', 'caimportable.cc' ]
         obj.use    += ['libappleutility']
+
+    if bld.is_defined('AUDIOUNIT_SUPPORT'):
         obj.source += [ 'audio_unit.cc' ]
 
     if Options.options.fpu_optimization:
-- 
1.6.5.2

2011-12-02 18:48

 

0005-made-OSX-Carbon-optional-allow-64bit-builds.patch (4,075 bytes)   
From cdfea35161c9a60c8c69da8d16a7dcf378b8da61 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Fri, 2 Dec 2011 02:39:21 +0100
Subject: [PATCH 5/6] made OSX Carbon optional (allow 64bit builds).

---
 gtk2_ardour/au_pluginui.mm |   24 +++++++++++++++++++++++-
 libs/ardour/audio_unit.cc  |    7 +++++++
 2 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm
index c90f4c1..d1ba3d4 100644
--- a/gtk2_ardour/au_pluginui.mm
+++ b/gtk2_ardour/au_pluginui.mm
@@ -133,7 +133,7 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
 
 	smaller_hbox->set_spacing (6);
 	smaller_hbox->pack_start (preset_label, false, false, 4);
-	smaller_hbox->pack_start (_preset_box, false, false);
+	smaller_hbox->pack_start (_preset_combo, false, false);
 	smaller_hbox->pack_start (save_button, false, false);
 #if 0
 	/* one day these might be useful with an AU plugin, but not yet */
@@ -171,6 +171,7 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
 	cocoa_parent = 0;
 	_notify = 0;
 	cocoa_window = 0;
+	carbon_window = 0;
 	au_view = 0;
 	editView = 0;
 
@@ -178,8 +179,10 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
 
 	if (test_cocoa_view_support()) {
 		create_cocoa_view ();
+#ifdef WITH_CARBON
 	} else if (test_carbon_view_support()) {
 		create_carbon_view ();
+#endif
 	} else {
 		create_cocoa_view ();
 	}
@@ -196,10 +199,12 @@ AUPluginUI::~AUPluginUI ()
 
 	} 
 
+#ifdef WITH_CARBON
 	if (carbon_window) {
 		/* not parented, just overlaid on top of our window */
 		DisposeWindow (carbon_window);
 	}
+#endif
 
 	if (editView) {
 		CloseComponent (editView);
@@ -410,6 +415,7 @@ AUPluginUI::cocoa_view_resized ()
 int
 AUPluginUI::create_carbon_view ()
 {
+#ifdef WITH_CARBON
 	OSStatus err;
 	ControlRef root_control;
 
@@ -465,6 +471,10 @@ AUPluginUI::create_carbon_view ()
 	low_box.set_size_request (prefwidth, prefheight);
 
 	return 0;
+#else
+	error << _("AU Carbon GUI is not supported.") << endmsg;
+	return -1;
+#endif
 }
 
 NSWindow*
@@ -490,19 +500,24 @@ AUPluginUI::get_nswindow ()
 void
 AUPluginUI::activate ()
 {
+#ifdef WITH_CARBON
 	ActivateWindow (carbon_window, TRUE);
+#endif
 	// [cocoa_parent makeKeyAndOrderFront:nil];
 }
 
 void
 AUPluginUI::deactivate ()
 {
+#ifdef WITH_CARBON
 	ActivateWindow (carbon_window, FALSE);
+#endif
 }
 
 int
 AUPluginUI::parent_carbon_window ()
 {
+#ifdef WITH_CARBON
 	NSWindow* win = get_nswindow ();
 	int x, y;
 
@@ -543,6 +558,9 @@ AUPluginUI::parent_carbon_window ()
 	[win addChildWindow:cocoa_parent ordered:NSWindowAbove];
 
 	return 0;
+#else
+	return -1;
+#endif
 }	
 
 int
@@ -647,10 +665,12 @@ AUPluginUI::on_map_event (GdkEventAny*)
 void
 AUPluginUI::on_window_hide ()
 {
+#ifdef WITH_CARBON
 	if (carbon_window) {
 		HideWindow (carbon_window);
 		ActivateWindow (carbon_window, FALSE);
 	}
+#endif
 
 	hide_all ();
 }
@@ -664,10 +684,12 @@ AUPluginUI::on_window_show (const string& /*title*/)
 
 	show_all ();
 
+#ifdef WITH_CARBON
 	if (carbon_window) {
 		ShowWindow (carbon_window);
 		ActivateWindow (carbon_window, TRUE);
 	}
+#endif
 
 	return true;
 }
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc
index 75a6ceb..ca171dd 100644
--- a/libs/ardour/audio_unit.cc
+++ b/libs/ardour/audio_unit.cc
@@ -54,6 +54,9 @@
 #include <CoreServices/CoreServices.h>
 #include <AudioUnit/AudioUnit.h>
 #include <AudioToolbox/AudioUnitUtilities.h>
+#ifdef WITH_CARBON
+#include <Carbon/Carbon.h>
+#endif
 
 #include "i18n.h"
 
@@ -2677,7 +2680,11 @@ AUPlugin::set_info (PluginInfoPtr info)
 int
 AUPlugin::create_parameter_listener (AUEventListenerProc cb, void* arg, float interval_secs)
 {
+#ifdef WITH_CARBON
 	CFRunLoopRef run_loop = (CFRunLoopRef) GetCFRunLoopFromEventLoop(GetCurrentEventLoop()); 
+#else
+	CFRunLoopRef run_loop = CFRunLoopGetCurrent();
+#endif
 	CFStringRef  loop_mode = kCFRunLoopDefaultMode;
 
 	if (AUEventListenerCreate (cb, arg, run_loop, loop_mode, interval_secs, interval_secs, &_parameter_listener) != noErr) {
-- 
1.6.5.2

2011-12-02 18:48

 

0006-updated-and-fixed-configure-options.patch (4,041 bytes)   
From 20636f28a0f62fb50772c1242baca990c9afb919 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Fri, 2 Dec 2011 02:48:07 +0100
Subject: [PATCH 6/6] updated and fixed configure options:

--no-carbon: prerequisite for 64bit OSX builds
--universal: fixed parameters string->array
---
 wscript |   31 +++++++++++++++++++++++--------
 1 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/wscript b/wscript
index 263ddea..485af1b 100644
--- a/wscript
+++ b/wscript
@@ -312,9 +312,14 @@ def set_compiler_flags (conf,opt):
         conf.env.append_value('LINKFLAGS', '-ldl')
 
     if opt.universal:
-        conf.env.append_value('CFLAGS', "-arch i386 -arch ppc")
-        conf.env.append_value('CXXFLAGS', "-arch i386 -arch ppc")
-        conf.env.append_value('LINKFLAGS', "-arch i386 -arch ppc")
+        if not Options.options.nocarbon:
+            conf.env.append_value('CFLAGS', ["-arch", "i386", "-arch", "ppc"])
+            conf.env.append_value('CXXFLAGS', ["-arch", "i386", "-arch", "ppc"])
+            conf.env.append_value('LINKFLAGS', ["-arch", "i386", "-arch", "ppc"])
+        else:
+            conf.env.append_value('CFLAGS', ["-arch", "x86_64", "-arch", "i386", "-arch", "ppc"])
+            conf.env.append_value('CXXFLAGS', ["-arch", "x86_64", "-arch", "i386", "-arch", "ppc"])
+            conf.env.append_value('LINKFLAGS', ["-arch", "x86_64", "-arch", "i386", "-arch", "ppc"])
 
     #
     # warnings flags
@@ -352,6 +357,8 @@ def options(opt):
                     help='The user-visible name of the program being built')
     opt.add_option('--arch', type='string', action='store', dest='arch',
                     help='Architecture-specific compiler flags')
+    opt.add_option('--no-carbon', action='store_true', default=False, dest='nocarbon',
+                    help='Compile without support for AU Plugins with only CARBON UI (needed for 64bit)')
     opt.add_option('--boost-sp-debug', action='store_true', default=False, dest='boost_sp_debug',
                     help='Compile with Boost shared pointer debugging')
     opt.add_option('--dist-target', type='string', default='auto', dest='dist_target',
@@ -444,8 +451,11 @@ def configure(conf):
 
         conf.define ('HAVE_COREAUDIO', 1)
         conf.define ('AUDIOUNIT_SUPPORT', 1)
+        if not Options.options.nocarbon:
+            conf.define ('WITH_CARBON', 1)
         if not Options.options.freebie:
             conf.define ('AU_STATE_SUPPORT', 1)
+
         conf.define ('GTKOSX', 1)
         conf.define ('TOP_MENUBAR',1)
         conf.define ('GTKOSX',1)
@@ -484,13 +494,18 @@ def configure(conf):
         conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreFoundation'])
         conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreServices'])
 
-	conf.env.append_value('LINKFLAGS_OSX', ['-undefined', 'dynamic_lookup' ])
-	conf.env.append_value('LINKFLAGS_OSX', ['-flat_namespace'])
+        conf.env.append_value('LINKFLAGS_OSX', ['-undefined', 'dynamic_lookup' ])
+        conf.env.append_value('LINKFLAGS_OSX', ['-flat_namespace'])
 
         conf.env.append_value('CXXFLAGS_AUDIOUNITS', "-DAUDIOUNIT_SUPPORT")
-        conf.env.append_value('CXXFLAGS_AUDIOUNITS', "-DAU_STATE_SUPPORT")
-        conf.env.append_value('LINKFLAGS_AUDIOUNITS', ['-framework', 'Carbon', 
-		'-framework', 'Audiotoolbox', '-framework', 'AudioUnit'])
+        conf.env.append_value('LINKFLAGS_AUDIOUNITS', ['-framework', 'Audiotoolbox', '-framework', 'AudioUnit'])
+        conf.env.append_value('LINKFLAGS_AUDIOUNITS', ['-framework', 'Cocoa'])
+
+        if not Options.options.freebie:
+            conf.env.append_value('CXXFLAGS_AUDIOUNITS', "-DAU_STATE_SUPPORT")
+        if not Options.options.nocarbon:
+            conf.env.append_value('CXXFLAGS_AUDIOUNITS', "-DWITH_CARBON")
+            conf.env.append_value('LINKFLAGS_AUDIOUNITS', ['-framework', 'Carbon'])
 
     if Options.options.boost_include != '':
         conf.env.append_value('CXXFLAGS', '-I' + Options.options.boost_include)
-- 
1.6.5.2

paul

2011-12-02 21:00

administrator   ~0012281

all committed, except 0002, which was fixed by no longer unconditionally including vst_plugin.cc in the build (i think).

system

2020-04-19 20:15

developer   ~0022872

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2011-12-02 18:46 x42 New Issue
2011-12-02 18:47 x42 File Added: 0001-OSX-fixes-explicit-typecasts-and-glib-includes.patch
2011-12-02 18:47 x42 File Added: 0002-allow-to-compile-without-VST-support.patch
2011-12-02 18:47 x42 File Added: 0003-multi-arch-binary-use-compiler-defines-in-FPU-detect.patch
2011-12-02 18:47 x42 File Added: 0004-fixed-GTKOSX-AUDIOUNIT_SUPPORT-ifdefs.patch
2011-12-02 18:48 x42 File Added: 0005-made-OSX-Carbon-optional-allow-64bit-builds.patch
2011-12-02 18:48 x42 File Added: 0006-updated-and-fixed-configure-options.patch
2011-12-02 21:00 paul cost => 0.00
2011-12-02 21:00 paul Note Added: 0012281
2011-12-02 21:00 paul Status new => resolved
2011-12-02 21:00 paul Resolution open => fixed
2011-12-02 21:00 paul Assigned To => paul
2020-04-19 20:15 system Note Added: 0022872
2020-04-19 20:15 system Status resolved => closed