SConsignFile()
EnsureSConsVersion(0, 96)
-ardour_version = '2.6.1'
+ardour_version = '2.8'
subst_dict = { }
opts = Options('scache.conf')
opts.AddOptions(
('ARCH', 'Set architecture-specific compilation flags by hand (all flags as 1 argument)',''),
- ('WINDOWS_KEY', 'Set X Modifier (Mod1,Mod2,Mod3,Mod4,Mod5) for "Windows" key', 'Mod4'),
+ ('WINDOWS_KEY', 'Set X Modifier (Mod1,Mod2,Mod3,Mod4,Mod5) for "Windows" key', 'Mod4><Super'),
BoolOption('AUDIOUNITS', 'Compile with Apple\'s AudioUnit library. (experimental)', 0),
BoolOption('COREAUDIO', 'Compile with Apple\'s CoreAudio library', 0),
BoolOption('GTKOSX', 'Compile for use with GTK-OSX, not GTK-X11', 0),
BoolOption('GPROFILE', 'Compile with support for gprofile (Developers only)', 0),
BoolOption('FREEDESKTOP', 'Install MIME type, icons and .desktop file as per the freedesktop.org spec (requires xdg-utils and shared-mime-info). "scons uninstall" removes associations in desktop database', 0),
BoolOption('TRANZPORT', 'Compile with support for Frontier Designs (if libusb is available)', 1),
- BoolOption('AUBIO', "Use Paul Brossier's aubio library for feature detection (if available)", 1)
-
+ BoolOption('AUBIO', "Use Paul Brossier's aubio library for feature detection (if available)", 1),
+ BoolOption('AUSTATE', "Build with support for AU settings & presets saving/loading", 0)
)
#----------------------------------------------------------------------
env.Append (BUILDERS = {'Distribute' : dist_bld})
env.Append (BUILDERS = {'Tarball' : tarball_bld})
-#
-# Make sure they know what they are doing
-#
-
-if env['VST']:
- if os.path.isfile('.personal_use_only'):
- print "Enabling VST support. Note that distributing a VST-enabled ardour\nis a violation of several different licences.\nBuild with VST=false if you intend to distribute ardour to others."
- else:
- sys.stdout.write ("Are you building Ardour for personal use (rather than distribution to others)? [no]: ")
- answer = sys.stdin.readline ()
- answer = answer.rstrip().strip()
- if answer == "yes" or answer == "y":
- fh = open('.personal_use_only', 'w')
- fh.close()
- print "OK, VST support will be enabled"
- else:
- print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. Build with VST=false.'
- sys.exit (-1);
-else:
- if os.path.isfile('.personal_use_only'):
- os.remove('.personal_use_only')
-
####################
# push environment
####################
def pushEnvironment(context):
if os.environ.has_key('PATH'):
context.Append(PATH = os.environ['PATH'])
+ context['ENV']['PATH'] = os.environ['PATH']
if os.environ.has_key('PKG_CONFIG_PATH'):
context.Append(PKG_CONFIG_PATH = os.environ['PKG_CONFIG_PATH'])
+ context['ENV']['PKG_CONFIG_PATH'] = os.environ['PKG_CONFIG_PATH']
if os.environ.has_key('CC'):
context['CC'] = os.environ['CC']
if env['LV2']:
conf = env.Configure(custom_tests = { 'CheckPKGVersion' : CheckPKGVersion})
- if conf.CheckPKGVersion('slv2', '0.6.0'):
+ if conf.CheckPKGVersion('slv2', '0.6.1'):
libraries['slv2'] = LibraryInfo()
libraries['slv2'].ParseConfig('pkg-config --cflags --libs slv2')
env.Append (CCFLAGS="-DHAVE_LV2")
else:
print 'LV2 support is not enabled. Build with \'scons LV2=1\' to enable.'
-if env['WIIMOTE']:
- wiimote_surface = [ 'libs/surfaces/wiimote' ]
-else:
- wiimote_surface = [ ]
- print 'WIIMOTE support not enabled. Build with \'scons WIIMOTE=1\' to enale.'
+if not env['WIIMOTE']:
+ print 'WIIMOTE not enabled. Build with \'scons WIIMOTE=1\' to enable support.'
libraries['jack'] = LibraryInfo()
libraries['jack'].ParseConfig('pkg-config --cflags --libs jack')
build_host_supports_sse = 0
- if (re.search ("i[0-9]86", config[config_cpu]) != None):
+ #
+ # ARCH_X86 means anything in the x86 family from i386 to x86_64
+ # USE_X86_64_ASM is used to distingush 32 and 64 bit assembler
+ #
+
+ if (re.search ("(i[0-9]86|x86_64)", config[config_cpu]) != None):
debug_flags.append ("-DARCH_X86")
opt_flags.append ("-DARCH_X86")
if ((env['DIST_TARGET'] == 'i686') or (env['DIST_TARGET'] == 'x86_64')) and build_host_supports_sse:
opt_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"])
debug_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"])
+
+ if (env['VST']):
+ #
+ # everything must be 32 bit for VST (we're not replicating Cakewalk's hack, yet ...)
+ #
+ opt_flags.extend(["-m32"])
+ debug_flags.extend(["-m32"])
+
# end of processor-specific section
# optimization section
elif env['DIST_TARGET'] == 'i686' or env['DIST_TARGET'] == 'x86_64':
opt_flags.append ("-DBUILD_SSE_OPTIMIZATIONS")
debug_flags.append ("-DBUILD_SSE_OPTIMIZATIONS")
- if env['DIST_TARGET'] == 'x86_64':
+ if env['DIST_TARGET'] == 'x86_64' and not env['VST']:
opt_flags.append ("-DUSE_X86_64_ASM")
debug_flags.append ("-DUSE_X86_64_ASM")
if build_host_supports_sse != 1:
else:
env['LIBDIR']='lib'
+#
+# no VST on x86_64
+#
+
+if env['DIST_TARGET'] == 'x86_64' and env['VST']:
+ print "\n\n=================================================="
+ print "You cannot use VST plugins with a 64 bit host. Please run scons with VST=0"
+ print "\nIt is theoretically possible to build a 32 bit host on a 64 bit system."
+ print "However, this is tricky and not recommended for beginners."
+ sys.exit (-1)
+
#
# a single way to test if we're on OS X
#
def prep_libcheck(topenv, libinfo):
if topenv['IS_OSX']:
#
- # rationale: GTK-Quartz uses jhbuild and installs to /opt/gtk by default.
- # All libraries needed should be built against this location
- # However.. now jhbuild installs to ~/gtk/inst by default.. changed to accomodate this
+ # rationale: GTK-Quartz uses jhbuild and installs to ~/gtk/inst by default.
+ # All libraries needed should be built against this location
if topenv['GTKOSX']:
- GTKROOT = os.path.expanduser ('~/gtk/inst')
- libinfo.Append(CPPPATH= GTKROOT + "/include", LIBPATH= GTKROOT + "/lib")
- libinfo.Append(CXXFLAGS="-I" + GTKROOT + "/include", LINKFLAGS="-L" + GTKROOT + "/lib")
- #libinfo.Append(CPPPATH="/opt/local/include", LIBPATH="/opt/local/lib")
- #libinfo.Append(CXXFLAGS="-I/opt/local/include", LINKFLAGS="-L/opt/local/lib")
-
+ GTKROOT = os.path.expanduser ('~/gtk/inst')
+ libinfo.Append(CPPPATH= GTKROOT + "/include", LIBPATH= GTKROOT + "/lib")
+ libinfo.Append(CXXFLAGS="-I" + GTKROOT + "/include", LINKFLAGS="-L" + GTKROOT + "/lib")
+
prep_libcheck(env, env)
env = conf.Finish()
+if env['GTKOSX']:
+ clearlooks_version = 'libs/clearlooks-newer'
+else:
+ clearlooks_version = 'libs/clearlooks-older'
+
if env['SYSLIBS']:
syslibdeps = \
# 'libs/flowcanvas',
'libs/gtkmm2ext',
'gtk2_ardour',
- 'libs/clearlooks'
+ clearlooks_version
]
else:
'libs/libgnomecanvasmm',
'libs/gtkmm2ext',
'gtk2_ardour',
- 'libs/clearlooks'
+ clearlooks_version
]
#
# * always build the LGPL control protocol lib, since we link against it from libardour
# * ditto for generic MIDI
-# * tranzport checks whether it should build internally, but we need here so that
-# its included in the tarball
+# * tranzport & wiimote check whether they should build internally, but we need them here
+# so that they are included in the tarball
#
surface_subdirs = [ 'libs/surfaces/control_protocol',
'libs/surfaces/generic_midi',
'libs/surfaces/tranzport',
'libs/surfaces/mackie',
- 'libs/surfaces/powermate'
+ 'libs/surfaces/powermate',
+ 'libs/surfaces/wiimote'
]
-surface_subdirs += wiimote_surface
if env['SURFACES']:
if have_libusb:
'icons/icon/ardour_icon_tango_48px_blue.png',
'icons/icon/ardour_icon_tango_48px_red.png'
] +
- glob.glob ('DOCUMENTATION/AUTHORS*') +
- glob.glob ('DOCUMENTATION/CONTRIBUTORS*') +
- glob.glob ('DOCUMENTATION/TRANSLATORS*') +
- glob.glob ('DOCUMENTATION/BUILD*') +
- glob.glob ('DOCUMENTATION/FAQ*') +
- glob.glob ('DOCUMENTATION/README*')
+ glob.glob ('ardour.1*') +
+ glob.glob ('libs/clearlooks-newer/*.c') +
+ glob.glob ('libs/clearlooks-newer/*.h') +
+ glob.glob ('libs/clearlooks-newer/SConscript')
)
srcdist = env.Tarball(env['TARBALL'], [ env['DISTTREE'], the_revision ])