diff --git a/SConstruct b/SConstruct
index cddc7384c8..5f6bde5103 100644
--- a/SConstruct
+++ b/SConstruct
@@ -16,7 +16,7 @@ import SCons.Node.FS
SConsignFile()
EnsureSConsVersion(0, 96)
-ardour_version = '2.1pre'
+ardour_version = '3.0'
subst_dict = { }
@@ -30,6 +30,7 @@ opts.AddOptions(
BoolOption('AUDIOUNITS', 'Compile with Apple\'s AudioUnit library. (experimental)', 0),
BoolOption('CMT', 'Compile with support for CMT Additions', 1),
BoolOption('COREAUDIO', 'Compile with Apple\'s CoreAudio library', 0),
+ BoolOption('GTKOSX', 'Compile for use with GTK-OSX, not GTK-X11', 0),
BoolOption('DEBUG', 'Set to build with debugging information and no optimizations', 1),
PathOption('DESTDIR', 'Set the intermediate install "prefix"', '/'),
EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'tiger', 'panther', 'none' ), ignorecase=2),
@@ -711,8 +712,13 @@ if env['LIBLO']:
def prep_libcheck(topenv, libinfo):
if topenv['DIST_TARGET'] == 'panther' or topenv['DIST_TARGET'] == 'tiger':
+ #
+ # rationale: GTK-Quartz uses jhbuild and installs to /opt/gtk by default.
+ # All libraries needed should be built against this location
+ if topenv['GTKOSX']:
+ libinfo.Append(CCFLAGS="-I/opt/gtk/include", LINKFLAGS="-L/opt/gtk/lib")
libinfo.Append(CCFLAGS="-I/opt/local/include", LINKFLAGS="-L/opt/local/lib")
-
+
prep_libcheck(env, env)
#
@@ -803,10 +809,18 @@ else:
libraries['dmalloc'] = conf.Finish ()
#
-# Audio/MIDI library (needed for MIDI, since audio is all handled via JACK)
+# Audio/MIDI library (needed for MIDI, since audio is all handled via JACK. Note, however, that
+# we still need ALSA & CoreAudio to discover audio devices for the engine
+# dialog, regardless of what MIDI subsystem is being used)
#
conf = Configure(env)
+
+if conf.CheckCHeader('alsa/asoundlib.h'):
+ libraries['sysaudio'] = LibraryInfo (LIBS='asound')
+elif conf.CheckCHeader('/System/Library/Frameworks/CoreAudio.framework/Versions/A/Headers/CoreAudio.h'):
+ libraries['sysaudio'] = LibraryInfo (LINKFLAGS= '-framework CoreMIDI -framework CoreFoundation -framework CoreAudio -framework CoreServices -framework AudioUnit -framework AudioToolbox -bind_at_load')
+
if conf.CheckCHeader('jack/midiport.h'):
libraries['sysmidi'] = LibraryInfo (LIBS='jack')
env['SYSMIDI'] = 'JACK MIDI'
@@ -821,7 +835,13 @@ elif conf.CheckCHeader('alsa/asoundlib.h'):
print "Using ALSA MIDI"
elif conf.CheckCHeader('/System/Library/Frameworks/CoreMIDI.framework/Headers/CoreMIDI.h'):
# this line is needed because scons can't handle -framework in ParseConfig() yet.
- libraries['sysmidi'] = LibraryInfo (LINKFLAGS= '-framework CoreMIDI -framework CoreFoundation -framework CoreAudio -framework CoreServices -framework AudioUnit -framework AudioToolbox -bind_at_load')
+ if env['GTKOSX']:
+ # We need Carbon as well as the rest
+ libraries['sysmidi'] = LibraryInfo (
+ LINKFLAGS = ' -framework CoreMIDI -framework CoreFoundation -framework CoreAudio -framework CoreServices -framework AudioUnit -framework AudioToolbox -framework Carbon -bind_at_load' )
+ else:
+ libraries['sysmidi'] = LibraryInfo (
+ LINKFLAGS = ' -framework CoreMIDI -framework CoreFoundation -framework CoreAudio -framework CoreServices -framework AudioUnit -framework AudioToolbox -bind_at_load' )
env['SYSMIDI'] = 'CoreMIDI'
subst_dict['%MIDITAG%'] = "ardour"
subst_dict['%MIDITYPE%'] = "coremidi"
@@ -1148,9 +1168,14 @@ if os.path.exists('.svn'):
# specbuild = env.SubstInFile ('ardour.spec','ardour.spec.in', SUBST_DICT = subst_dict)
the_revision = env.Command ('frobnicatory_decoy', [], create_stored_revision)
+remove_ardour = env.Command ('frobnicatory_decoy2', [],
+ [ Delete ('$PREFIX/etc/ardour2'),
+ Delete ('$PREFIX/lib/ardour2'),
+ Delete ('$PREFIX/bin/ardour2')])
env.Alias('revision', the_revision)
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour_system.rc'))
+env.Alias('uninstall', remove_ardour)
Default (sysrcbuild)
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript
index b96498602e..12e3225f89 100644
--- a/gtk2_ardour/SConscript
+++ b/gtk2_ardour/SConscript
@@ -13,7 +13,7 @@ gtkmmtests = env.Copy()
# this defines the version number of the GTK interface to ardour
#
-domain = 'gtk_ardour'
+domain = 'gtk2_ardour'
gtkardour.Append(DOMAIN=domain, MAJOR=1,MINOR=0,MICRO=2)
gtkardour.Append(CCFLAGS="-DPACKAGE=\\\"" + domain + "\\\"")
@@ -24,6 +24,9 @@ gtkardour.Append(CPPPATH="#/") # for top level svn_revision.h
gtkardour.Append(PACKAGE=domain)
gtkardour.Append(POTFILE=domain + '.pot')
+if gtkardour['DIST_TARGET'] == 'panther' or gtkardour['DIST_TARGET'] == 'tiger':
+ gtkardour.Append (LINKFLAGS="-Xlinker -headerpad -Xlinker 2048")
+
gtkardour.Merge ([
libraries['ardour'],
libraries['ardour_cp'],
@@ -48,7 +51,8 @@ gtkardour.Merge ([
libraries['xslt'],
libraries['soundtouch'],
libraries['samplerate'],
- libraries['jack']
+ libraries['jack'],
+ libraries['sysaudio']
])
gtkmmtests.Append(CXXFLAGS="-DLIBSIGC_DISABLE_DEPRECATED")
@@ -80,6 +84,15 @@ audiounit_files=Split("""
au_pluginui.cc
""")
+gtkosx_files=Split("""
+sync-menu.c
+cocoacarbon.c
+""")
+
+x11_files=Split("""
+x11.cc
+""")
+
gtkardour_files=Split("""
about.cc
actions.cc
@@ -143,6 +156,7 @@ editor_selection.cc
editor_selection_list.cc
editor_tempodisplay.cc
editor_timefx.cc
+engine_dialog.cc
export_dialog.cc
export_session_dialog.cc
export_region_dialog.cc
@@ -258,6 +272,12 @@ if env['CMT']:
extra_sources += cmt_files
gtkardour.Append (CCFLAGS="-DWITH_CMT")
+if gtkardour['GTKOSX']:
+ extra_sources += gtkosx_files
+ gtkardour.Append (CCFLAGS="-DTOP_MENUBAR -DGTKOSX")
+else:
+ extra_sources += x11_files
+
if gtkardour['AUDIOUNITS']:
extra_sources += audiounit_files
gtkardour.Append(CCFLAGS='-DHAVE_AUDIOUNITS')
@@ -292,41 +312,43 @@ if gtkardour['DIST_TARGET'] == 'panther' or gtkardour['DIST_TARGET'] == 'tiger':
#
# OS X font rendering is different even with X11
#
- my_font_dict['%FONT_TINY%'] = 'sans 7'
- my_font_dict['%FONT_SMALLER%'] = 'sans 9'
- my_font_dict['%FONT_SMALL%'] = 'sans 10'
- my_font_dict['%FONT_NORMAL%'] = 'sans 11'
- my_font_dict['%FONT_BIG%'] = 'sans 15'
- my_font_dict['%FONT_BIGGER%'] = 'sans 16'
- my_font_dict['%FONT_LARGE%'] = 'sans 20'
- my_font_dict['%FONT_LARGER%'] = 'sans 28'
- my_font_dict['%FONT_HUGER%'] = 'sans 36'
- my_font_dict['%FONT_MASSIVE%'] = 'sans 60'
- my_font_dict['%FONT_BOLD_TINY%'] = 'sans bold 7'
- my_font_dict['%FONT_BOLD_SMALLER%'] = 'sans bold 9'
- my_font_dict['%FONT_BOLD_SMALL%'] = 'sans bold 10'
- my_font_dict['%FONT_BOLD_NORMAL%'] = 'sans bold 11'
- my_font_dict['%FONT_BOLD_BIG%'] = 'sans bold 15'
- my_font_dict['%FONT_BOLD_BIGGER%'] = 'sans bold 16'
- my_font_dict['%FONT_BOLD_LARGE%'] = 'sans bold 20'
- my_font_dict['%FONT_BOLD_LARGER%'] = 'sans bold 28'
- my_font_dict['%FONT_BOLD_HUGER%'] = 'sans bold 36'
- my_font_dict['%FONT_BOLD_MASSIVE%'] = 'sans bold 60'
- my_font_dict['%FONT_ITALIC_TINY%'] = 'sans italic 7'
- my_font_dict['%FONT_ITALIC_SMALLER%'] = 'sans italic 9'
- my_font_dict['%FONT_ITALIC_SMALL%'] = 'sans italic 10'
- my_font_dict['%FONT_ITALIC_NORMAL%'] = 'sans italic 11'
- my_font_dict['%FONT_ITALIC_BIG%'] = 'sans italic 15'
- my_font_dict['%FONT_ITALIC_BIGGER%'] = 'sans italic 16'
- my_font_dict['%FONT_ITALIC_LARGE%'] = 'sans italic 20'
- my_font_dict['%FONT_ITALIC_LARGER%'] = 'sans italic 28'
- my_font_dict['%FONT_ITALIC_HUGER%'] = 'sans italic 36'
- my_font_dict['%FONT_ITALIC_MASSIVE%'] = 'sans italic 60'
+ my_font_dict['%FONT_TINY%'] = 'Lucida Grande 7'
+ my_font_dict['%FONT_SMALLERER%'] = 'Lucida Grande 8'
+ my_font_dict['%FONT_SMALLER%'] = 'Lucida Grande 9'
+ my_font_dict['%FONT_SMALL%'] = 'Lucida Grande 10'
+ my_font_dict['%FONT_NORMAL%'] = 'Lucida Grande 11'
+ my_font_dict['%FONT_BIG%'] = 'Lucida Grande 12'
+ my_font_dict['%FONT_BIGGER%'] = 'Lucida Grande 14'
+ my_font_dict['%FONT_LARGE%'] = 'Lucida Grande 18'
+ my_font_dict['%FONT_LARGER%'] = 'Lucida Grande 28'
+ my_font_dict['%FONT_HUGER%'] = 'Lucida Grande 36'
+ my_font_dict['%FONT_MASSIVE%'] = 'Lucida Grande 60'
+ my_font_dict['%FONT_BOLD_TINY%'] = 'Lucida Grande bold 7'
+ my_font_dict['%FONT_BOLD_SMALLER%'] = 'Lucida Grande bold 9'
+ my_font_dict['%FONT_BOLD_SMALL%'] = 'Lucida Grande bold 10'
+ my_font_dict['%FONT_BOLD_NORMAL%'] = 'Lucida Grande bold 11'
+ my_font_dict['%FONT_BOLD_BIG%'] = 'Lucida Grande bold 13'
+ my_font_dict['%FONT_BOLD_BIGGER%'] = 'Lucida Grande bold 14'
+ my_font_dict['%FONT_BOLD_LARGE%'] = 'Lucida Grande bold 20'
+ my_font_dict['%FONT_BOLD_LARGER%'] = 'Lucida Grande bold 25'
+ my_font_dict['%FONT_BOLD_HUGER%'] = 'Lucida Grande bold 36'
+ my_font_dict['%FONT_BOLD_MASSIVE%'] = 'Lucida Grande bold 60'
+ my_font_dict['%FONT_ITALIC_TINY%'] = 'Lucida Grande italic 7'
+ my_font_dict['%FONT_ITALIC_SMALLER%'] = 'Lucida Grande italic 9'
+ my_font_dict['%FONT_ITALIC_SMALL%'] = 'Lucida Grande italic 10'
+ my_font_dict['%FONT_ITALIC_NORMAL%'] = 'Lucida Grande italic 11'
+ my_font_dict['%FONT_ITALIC_BIG%'] = 'Lucida Grande italic 15'
+ my_font_dict['%FONT_ITALIC_BIGGER%'] = 'Lucida Grande italic 16'
+ my_font_dict['%FONT_ITALIC_LARGE%'] = 'Lucida Grande italic 20'
+ my_font_dict['%FONT_ITALIC_LARGER%'] = 'Lucida Grande italic 28'
+ my_font_dict['%FONT_ITALIC_HUGER%'] = 'Lucida Grande italic 36'
+ my_font_dict['%FONT_ITALIC_MASSIVE%'] = 'Lucida Grande italic 60'
else:
#
# Linux/X11 font rendering
#
my_font_dict['%FONT_TINY%'] = 'sans 4'
+ my_font_dict['%FONT_SMALLERER%'] = 'sans 6'
my_font_dict['%FONT_SMALLER%'] = 'sans 6'
my_font_dict['%FONT_SMALL%'] = 'sans 7'
my_font_dict['%FONT_NORMAL%'] = 'sans 8'
@@ -411,6 +433,7 @@ if env['NLS']:
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), ardour_dark_theme))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), ardour_light_theme))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour.menus'))
+env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour-sae.menus'))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour.bindings'))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour2_ui_default.conf'))
# data files
@@ -428,7 +451,9 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'],
'ardev_common.sh.in',
'ardev', 'ardbg',
'ardour2_ui_dark.rc', 'ardour2_ui_light.rc', 'splash.png',
- 'ardour.menus', 'ardour.bindings.in', 'ardour2_ui_default.conf',
+ 'ardour.menus',
+ 'ardour-sae.menus',
+ 'ardour.bindings.in', 'ardour2_ui_default.conf',
'editor_xpms'
] +
gtkardour_files +
@@ -437,6 +462,8 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'],
icon_files +
skipped_files +
audiounit_files +
+ gtkosx_files +
+ x11_files +
fft_analysis_files +
glob.glob('po/*.po') + glob.glob('*.h')))
diff --git a/gtk2_ardour/ardbg b/gtk2_ardour/ardbg
index ab99296f45..063b2b1b6d 100755
--- a/gtk2_ardour/ardbg
+++ b/gtk2_ardour/ardbg
@@ -2,4 +2,4 @@
dir=`dirname "$0"`
. $dir/ardev_common.sh
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
-exec gdb $EXECUTABLE $*
+exec gdb $EXECUTABLE "$@"
diff --git a/gtk2_ardour/ardev b/gtk2_ardour/ardev
index 5dd8fc9d13..7980c43d93 100755
--- a/gtk2_ardour/ardev
+++ b/gtk2_ardour/ardev
@@ -1,4 +1,4 @@
#!/bin/sh
. `dirname "$0"`/ardev_common.sh
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
-exec $EXECUTABLE $*
+exec $EXECUTABLE "$@"
diff --git a/gtk2_ardour/ardour.menus b/gtk2_ardour/ardour.menus
index 24adba9f7f..128ca81c27 100644
--- a/gtk2_ardour/ardour.menus
+++ b/gtk2_ardour/ardour.menus
@@ -13,13 +13,7 @@
-
+
-