from sets import Set
import SCons.Node.FS
+print "\n----------------------------------------\nPlease build Ardour 3.X using waf:\n\n./waf configure\n./waf"
+exit (0)
+
SConsignFile()
EnsureSConsVersion(0, 96)
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('EXTRA_WARN', 'Compile with -Wextra, -ansi, and -pedantic. Might break compilation. For pedants', 0),
BoolOption('FREESOUND', 'Include Freesound database lookup', 0),
BoolOption('FPU_OPTIMIZATION', 'Build runtime checked assembler code', 1),
- BoolOption('LIBLO', 'Compile with support for liblo library', 1),
BoolOption('NLS', 'Set to turn on i18n support', 1),
PathOption('PREFIX', 'Set the install "prefix"', '/usr/local'),
BoolOption('SURFACES', 'Build support for control surfaces', 1),
sys.exit (-1)
try:
- text = "#include <ardour/svn_revision.h>\n"
+ text = "#include \"ardour/svn_revision.h\"\n"
text += "namespace ARDOUR {\n";
text += "extern const char* svn_revision = \"" + rev + "\";\n";
text += "}\n";
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.2'):
+ if conf.CheckPKGVersion('slv2', '0.6.4'):
libraries['slv2'] = LibraryInfo()
libraries['slv2'].ParseConfig('pkg-config --cflags --libs slv2')
- env.Append (CCFLAGS="-DHAVE_LV2")
+ env.Append (CCFLAGS="-DHAVE_SLV2")
else:
- print 'LV2 support is not enabled (SLV2 not found or older than 0.6.0)'
+ print 'LV2 support is not enabled (SLV2 not found or older than 0.6.4 (svn))'
env['LV2'] = 0
conf.Finish()
else:
libraries['glib2'].ParseConfig ('pkg-config --cflags --libs gmodule-2.0')
libraries['glib2'].ParseConfig ('pkg-config --cflags --libs gthread-2.0')
+libraries['gio'] = LibraryInfo()
+libraries['gio'].ParseConfig('pkg-config --cflags --libs gio-2.0')
+libraries['gio'].ParseConfig('pkg-config --cflags --libs gio-unix-2.0')
+
libraries['freetype2'] = LibraryInfo()
libraries['freetype2'].ParseConfig ('pkg-config --cflags --libs freetype2')
# The Ardour backend/engine
-libraries['ardour'] = LibraryInfo (LIBS='ardour', LIBPATH='#libs/ardour', CPPPATH='#libs/ardour')
-libraries['midi++2'] = LibraryInfo (LIBS='midi++', LIBPATH='#libs/midi++2', CPPPATH='#libs/midi++2')
-libraries['evoral'] = LibraryInfo (LIBS='evoral', LIBPATH='#libs/evoral', CPPPATH='#libs/evoral')
-libraries['pbd'] = LibraryInfo (LIBS='pbd', LIBPATH='#libs/pbd', CPPPATH='#libs/pbd')
+libraries['ardour'] = LibraryInfo (LIBS='ardour', LIBPATH='#libs/ardour', CPPPATH='#libs/ardour')
+libraries['midi++2'] = LibraryInfo (LIBS='midi++', LIBPATH='#libs/midi++2', CPPPATH='#libs/midi++2')
+libraries['smf'] = LibraryInfo (LIBS='smf', LIBPATH='#libs/evoral/src/libsmf', CPPPATH='#libs/evoral/src/libsmf/')
+libraries['evoral'] = LibraryInfo (LIBS='evoral', LIBPATH='#libs/evoral', CPPPATH='#libs/evoral')
+libraries['pbd'] = LibraryInfo (LIBS='pbd', LIBPATH='#libs/pbd', CPPPATH='#libs/pbd')
libraries['gtkmm2ext'] = LibraryInfo (LIBS='gtkmm2ext', LIBPATH='#libs/gtkmm2ext', CPPPATH='#libs/gtkmm2ext')
opt_flags = []
if env['GPROFILE'] == 1:
- debug_flags = [ '-g', '-pg' ]
+ debug_flags = [ '-O0', '-g', '-pg' ]
else:
- debug_flags = [ '-g' ]
+ debug_flags = [ '-O0', '-g' ]
# guess at the platform, used to define compiler flags
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
#
env.Append(CXXFLAGS="-ansi")
# env.Append(CFLAGS="-iso")
-if env['LIBLO']:
- env.Append(CCFLAGS="-DHAVE_LIBLO")
-
-
#
# fix scons nitpickiness on APPLE
#
#
# Check for liblo
-if env['LIBLO']:
- libraries['lo'] = LibraryInfo ()
- prep_libcheck(env, libraries['lo'])
+libraries['lo'] = LibraryInfo ()
+prep_libcheck(env, libraries['lo'])
- conf = Configure (libraries['lo'])
- if conf.CheckLib ('lo', 'lo_server_new') == False:
- print "liblo does not appear to be installed."
- sys.exit (1)
-
- libraries['lo'] = conf.Finish ()
+conf = Configure (libraries['lo'])
+if conf.CheckLib ('lo', 'lo_server_new') == False:
+ print "liblo does not appear to be installed."
+ env['HAVE_LIBLO'] = False
+else:
+ env['HAVE_LIBLO'] = True
+
+libraries['lo'] = conf.Finish ()
#
# Check for dmalloc
libraries['asound'] = LibraryInfo ()
if conf.CheckCHeader('alsa/asoundlib.h'):
- libraries['asound'] = LibraryInfo (LIBS='asound')
+ libraries['asound'].ParseConfig('pkg-config --cflags --libs alsa')
if conf.CheckCHeader('jack/midiport.h'):
libraries['sysmidi'] = LibraryInfo (LIBS='jack')
env.Append(CCFLAGS=" -DWITH_JACK_MIDI")
print "Using JACK MIDI"
elif conf.CheckCHeader('alsa/asoundlib.h'):
- libraries['sysmidi'] = LibraryInfo (LIBS='asound')
+ libraries['sysmidi'] = LibraryInfo ()
+ libraries['sysmidi'].ParseConfig('pkg-config --cflags --libs alsa')
env['SYSMIDI'] = 'ALSA Sequencer'
- subst_dict['%MIDITAG%'] = "seq"
+ subst_dict['%MIDITAG%'] = "control"
subst_dict['%MIDITYPE%'] = "alsa/sequencer"
print "Using ALSA MIDI"
elif conf.CheckCHeader('/System/Library/Frameworks/CoreMIDI.framework/Headers/CoreMIDI.h'):
libraries['sigc2'].ParseConfig('pkg-config --cflags --libs sigc++-2.0')
libraries['glibmm2'] = LibraryInfo()
libraries['glibmm2'].ParseConfig('pkg-config --cflags --libs glibmm-2.4')
+ libraries['giomm'] = LibraryInfo()
+ libraries['giomm'].ParseConfig('pkg-config --cflags --libs giomm-2.4')
libraries['cairo'] = LibraryInfo()
libraries['cairo'].ParseConfig('pkg-config --cflags --libs cairo')
libraries['cairomm'] = LibraryInfo()
subdirs = [
'libs/pbd',
'libs/midi++2',
+ 'libs/evoral/src/libsmf',
'libs/evoral',
'libs/ardour',
'libs/vamp-sdk',
libraries['glibmm2'] = LibraryInfo(LIBS='glibmm2',
LIBPATH='#libs/glibmm2',
CPPPATH='#libs/glibmm2/glib')
+ libraries['giomm'] = LibraryInfo(LIBS='giomm',
+ LIBPATH='#libs/glibmm2',
+ CPPPATH='#libs/glibmm2/gio')
libraries['pangomm'] = LibraryInfo(LIBS='pangomm',
LIBPATH='#libs/gtkmm2/pango',
CPPPATH='#libs/gtkmm2/pango')
CPPPATH=['#libs', '#libs/soundtouch'])
libraries['taglib'] = LibraryInfo(LIBS='libtaglib',
LIBPATH='#libs/taglib',
- CPPPATH=['#libs/taglib/headers','#libs/taglib/headers/taglib'])
+ CPPPATH=['#libs/taglib', '#libs/taglib/taglib'])
# libraries['libglademm'] = LibraryInfo(LIBS='libglademm',
# LIBPATH='#libs/libglademm',
# CPPPATH='#libs/libglademm')
'libs/taglib',
'libs/pbd',
'libs/midi++2',
+ 'libs/evoral/src/libsmf',
'libs/evoral',
'libs/ardour',
'libs/vamp-sdk',
#
# * always build the LGPL control protocol lib, since we link against it from libardour
-# * ditto for generic MIDI
+# * ditto for generic MIDI and OSC
# * tranzport & wiimote check whether they should build internally, but we need them here
# so that they are included in the tarball
#
'libs/surfaces/tranzport',
'libs/surfaces/mackie',
'libs/surfaces/powermate',
- 'libs/surfaces/wiimote'
+ 'libs/surfaces/wiimote',
+ 'libs/surfaces/osc'
]
if env['SURFACES']:
# the subdirs
#
-for subdir in coredirs:
- SConscript (subdir + '/SConscript')
+#for subdir in coredirs:
+# SConscript (subdir + '/SConscript')
-for sublistdir in [ subdirs, timefx_subdirs, gtk_subdirs, surface_subdirs ]:
- for subdir in sublistdir:
- SConscript (subdir + '/SConscript')
+#for sublistdir in [ subdirs, timefx_subdirs, gtk_subdirs, surface_subdirs ]:
+# for subdir in sublistdir:
+# SConscript (subdir + '/SConscript')
# cleanup
env.Clean ('scrub', [ 'scache.conf', '.sconf_temp', '.sconsign.dblite', 'config.log'])