+if env['EXTRA_WARN']:
+ env.Append(CCFLAGS="-Wextra -pedantic -ansi")
+ env.Append(CXXFLAGS="-ansi")
+# env.Append(CFLAGS="-iso")
+
+if env['LIBLO']:
+ env.Append(CCFLAGS="-DHAVE_LIBLO")
+
+
+#
+# fix scons nitpickiness on APPLE
+#
+
+
+def prep_libcheck(topenv, libinfo):
+ if topenv['DIST_TARGET'] == 'panther' or topenv['DIST_TARGET'] == 'tiger':
+ libinfo.Append(CCFLAGS="-I/opt/local/include", LINKFLAGS="-L/opt/local/lib")
+
+prep_libcheck(env, env)
+
+#
+# Check for libusb
+
+libraries['usb'] = LibraryInfo ()
+prep_libcheck(env, libraries['usb'])
+
+conf = Configure (libraries['usb'])
+if conf.CheckLib ('usb', 'usb_interrupt_write'):
+ have_libusb = True
+else:
+ have_libusb = False
+
+libraries['usb'] = conf.Finish ()
+
+#
+# Check for FLAC
+
+libraries['flac'] = LibraryInfo ()
+prep_libcheck(env, libraries['flac'])
+libraries['flac'].Append(CCFLAGS="-I/usr/local/include", LINKFLAGS="-L/usr/local/lib")
+
+conf = Configure (libraries['flac'])
+conf.CheckLib ('FLAC', 'FLAC__stream_decoder_new', language='CXX')
+libraries['flac'] = conf.Finish ()
+
+# or if that fails...
+#libraries['flac'] = LibraryInfo (LIBS='FLAC')
+
+# boost (we don't link against boost, just use some header files)
+
+libraries['boost'] = LibraryInfo ()
+prep_libcheck(env, libraries['boost'])
+libraries['boost'].Append(CCFLAGS="-I/usr/local/include", LINKFLAGS="-L/usr/local/lib")
+conf = Configure (libraries['boost'])
+if conf.CheckHeader ('boost/shared_ptr.hpp', language='CXX') == False:
+ print "Boost header files do not appear to be installed."
+ sys.exit (1)
+
+libraries['boost'] = conf.Finish ()
+
+#
+# Check for liblo
+
+if env['LIBLO']:
+ 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 ()
+
+#
+# Check for dmalloc
+
+libraries['dmalloc'] = LibraryInfo ()
+prep_libcheck(env, libraries['dmalloc'])
+
+#
+# look for the threaded version
+#
+
+conf = Configure (libraries['dmalloc'])
+if conf.CheckLib ('dmallocth', 'dmalloc_shutdown'):
+ have_libdmalloc = True
+else:
+ have_libdmalloc = False
+
+libraries['dmalloc'] = conf.Finish ()
+
+#
+# Audio/MIDI library (needed for MIDI, since audio is all handled via JACK)
+#
+
+conf = Configure(env)
+
+if conf.CheckCHeader('alsa/asoundlib.h'):
+ libraries['sysmidi'] = LibraryInfo (LIBS='asound')
+ env['SYSMIDI'] = 'ALSA Sequencer'
+ subst_dict['%MIDITAG%'] = "seq"
+ subst_dict['%MIDITYPE%'] = "alsa/sequencer"
+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')
+ env['SYSMIDI'] = 'CoreMIDI'
+ subst_dict['%MIDITAG%'] = "ardour"
+ subst_dict['%MIDITYPE%'] = "coremidi"
+else:
+ print "It appears you don't have the required MIDI libraries installed. For Linux this means you are missing the development package for ALSA libraries."
+ sys.exit (1)
+
+env = conf.Finish()
+
+if env['SYSLIBS']:
+
+ syslibdeps = \
+ {
+ 'sigc++-2.0' : '2.0',
+ 'gtkmm-2.4' : '2.8',
+ 'libgnomecanvasmm-2.6' : '2.12.0'
+ }
+
+ conf = Configure(env, custom_tests = { 'CheckPKGConfig' : CheckPKGConfig,
+ 'CheckPKGVersion' : CheckPKGVersion })
+
+ for pkg, version in syslibdeps.iteritems():
+ if not conf.CheckPKGVersion( pkg, version ):
+ print '%s >= %s not found.' %(pkg, version)
+ DependenciesRequiredMessage()
+ Exit(1)
+
+ env = conf.Finish()
+
+ libraries['sigc2'] = LibraryInfo()
+ libraries['sigc2'].ParseConfig('pkg-config --cflags --libs sigc++-2.0')
+ libraries['glibmm2'] = LibraryInfo()
+ libraries['glibmm2'].ParseConfig('pkg-config --cflags --libs glibmm-2.4')
+ libraries['gdkmm2'] = LibraryInfo()
+ libraries['gdkmm2'].ParseConfig ('pkg-config --cflags --libs gdkmm-2.4')
+ libraries['gtkmm2'] = LibraryInfo()
+ libraries['gtkmm2'].ParseConfig ('pkg-config --cflags --libs gtkmm-2.4')
+ libraries['atkmm'] = LibraryInfo()
+ libraries['atkmm'].ParseConfig ('pkg-config --cflags --libs atkmm-1.6')
+ libraries['pangomm'] = LibraryInfo()
+ libraries['pangomm'].ParseConfig ('pkg-config --cflags --libs pangomm-1.4')
+ libraries['libgnomecanvasmm'] = LibraryInfo()
+ libraries['libgnomecanvasmm'].ParseConfig ('pkg-config --cflags --libs libgnomecanvasmm-2.6')
+
+#
+# cannot use system one for the time being
+#
+
+ libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour',
+ LIBPATH='#libs/libsndfile',
+ CPPPATH=['#libs/libsndfile/src'])
+
+# libraries['libglademm'] = LibraryInfo()
+# libraries['libglademm'].ParseConfig ('pkg-config --cflags --libs libglademm-2.4')
+
+# libraries['flowcanvas'] = LibraryInfo(LIBS='flowcanvas', LIBPATH='#/libs/flowcanvas', CPPPATH='#libs/flowcanvas')
+ libraries['soundtouch'] = LibraryInfo()
+ libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs soundtouch-1.0')
+ # Comment the previous line and uncomment this for Debian:
+ #libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs libSoundTouch')
+
+ libraries['appleutility'] = LibraryInfo(LIBS='libappleutility',
+ LIBPATH='#libs/appleutility',
+ CPPPATH='#libs/appleutility')
+
+ coredirs = [
+ 'templates'
+ ]
+
+ subdirs = [
+ 'libs/libsndfile',
+ 'libs/pbd',
+ 'libs/midi++2',
+ 'libs/ardour',
+ # these are unconditionally included but have
+ # tests internally to avoid compilation etc
+ # if VST is not set
+ 'libs/fst',
+ 'vst',
+ # this is unconditionally included but has
+ # tests internally to avoid compilation etc
+ # if COREAUDIO is not set
+ 'libs/appleutility'
+ ]
+
+ gtk_subdirs = [
+# 'libs/flowcanvas',
+ 'libs/gtkmm2ext',
+ 'gtk2_ardour',
+ 'libs/clearlooks'
+ ]
+
+else:
+ libraries['sigc2'] = LibraryInfo(LIBS='sigc++2',
+ LIBPATH='#libs/sigc++2',
+ CPPPATH='#libs/sigc++2')
+ libraries['glibmm2'] = LibraryInfo(LIBS='glibmm2',
+ LIBPATH='#libs/glibmm2',
+ CPPPATH='#libs/glibmm2')
+ libraries['pangomm'] = LibraryInfo(LIBS='pangomm',
+ LIBPATH='#libs/gtkmm2/pango',
+ CPPPATH='#libs/gtkmm2/pango')
+ libraries['atkmm'] = LibraryInfo(LIBS='atkmm',
+ LIBPATH='#libs/gtkmm2/atk',
+ CPPPATH='#libs/gtkmm2/atk')
+ libraries['gdkmm2'] = LibraryInfo(LIBS='gdkmm2',
+ LIBPATH='#libs/gtkmm2/gdk',
+ CPPPATH='#libs/gtkmm2/gdk')
+ libraries['gtkmm2'] = LibraryInfo(LIBS='gtkmm2',
+ LIBPATH="#libs/gtkmm2/gtk",
+ CPPPATH='#libs/gtkmm2/gtk/')
+ libraries['libgnomecanvasmm'] = LibraryInfo(LIBS='libgnomecanvasmm',
+ LIBPATH='#libs/libgnomecanvasmm',
+ CPPPATH='#libs/libgnomecanvasmm')
+
+ libraries['soundtouch'] = LibraryInfo(LIBS='soundtouch',
+ LIBPATH='#libs/soundtouch',
+ CPPPATH=['#libs', '#libs/soundtouch'])
+ libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour',
+ LIBPATH='#libs/libsndfile',
+ CPPPATH=['#libs/libsndfile', '#libs/libsndfile/src'])
+# libraries['libglademm'] = LibraryInfo(LIBS='libglademm',
+# LIBPATH='#libs/libglademm',
+# CPPPATH='#libs/libglademm')
+ libraries['appleutility'] = LibraryInfo(LIBS='libappleutility',
+ LIBPATH='#libs/appleutility',
+ CPPPATH='#libs/appleutility')
+
+ coredirs = [
+ 'libs/soundtouch',
+ 'templates'
+ ]
+
+ subdirs = [
+ 'libs/sigc++2',
+ 'libs/libsndfile',
+ 'libs/pbd',
+ 'libs/midi++2',
+ 'libs/ardour',
+ # these are unconditionally included but have
+ # tests internally to avoid compilation etc
+ # if VST is not set
+ 'libs/fst',
+ 'vst',
+ # this is unconditionally included but has
+ # tests internally to avoid compilation etc
+ # if COREAUDIO is not set
+ 'libs/appleutility'
+ ]
+
+ gtk_subdirs = [
+ 'libs/glibmm2',
+ 'libs/gtkmm2/pango',
+ 'libs/gtkmm2/atk',
+ 'libs/gtkmm2/gdk',
+ 'libs/gtkmm2/gtk',
+ 'libs/libgnomecanvasmm',
+# 'libs/flowcanvas',
+ 'libs/gtkmm2ext',
+ 'gtk2_ardour',
+ 'libs/clearlooks'
+ ]
+
+#
+# * 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
+#
+
+surface_subdirs = [ 'libs/surfaces/control_protocol', 'libs/surfaces/generic_midi', 'libs/surfaces/tranzport', 'libs/surfaces/mackie' ]
+
+if env['SURFACES']:
+ if have_libusb:
+ env['TRANZPORT'] = 1
+ else:
+ env['TRANZPORT'] = 0
+ print 'Disabled building Tranzport code because libusb could not be found'
+ if os.access ('libs/surfaces/sony9pin', os.F_OK):
+ surface_subdirs += [ 'libs/surfaces/sony9pin' ]
+
+opts.Save('scache.conf', env)
+Help(opts.GenerateHelpText(env))
+
+if os.environ.has_key('PATH'):
+ env.Append(PATH = os.environ['PATH'])
+
+if os.environ.has_key('PKG_CONFIG_PATH'):
+ env.Append(PKG_CONFIG_PATH = os.environ['PKG_CONFIG_PATH'])
+
+if os.environ.has_key('CC'):
+ env['CC'] = os.environ['CC']
+
+if os.environ.has_key('CXX'):
+ env['CXX'] = os.environ['CXX']
+
+if os.environ.has_key('DISTCC_HOSTS'):
+ env['ENV']['DISTCC_HOSTS'] = os.environ['DISTCC_HOSTS']
+ env['ENV']['HOME'] = os.environ['HOME']
+
+final_prefix = '$PREFIX'
+
+if env['DESTDIR'] :
+ install_prefix = '$DESTDIR/$PREFIX'
+else:
+ install_prefix = env['PREFIX']
+
+subst_dict['%INSTALL_PREFIX%'] = install_prefix;
+subst_dict['%FINAL_PREFIX%'] = final_prefix;
+subst_dict['%PREFIX%'] = final_prefix;
+
+if env['PREFIX'] == '/usr':
+ final_config_prefix = '/etc'
+else:
+ final_config_prefix = env['PREFIX'] + '/etc'
+
+config_prefix = '$DESTDIR' + final_config_prefix