summaryrefslogtreecommitdiff
path: root/libs/ardour/SConscript
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/SConscript')
-rw-r--r--libs/ardour/SConscript206
1 files changed, 206 insertions, 0 deletions
diff --git a/libs/ardour/SConscript b/libs/ardour/SConscript
new file mode 100644
index 0000000000..e9b38e75c2
--- /dev/null
+++ b/libs/ardour/SConscript
@@ -0,0 +1,206 @@
+# -*- python -*-
+
+import os
+import glob
+
+Import('env final_prefix install_prefix final_config_prefix libraries i18n')
+
+ardour = env.Copy()
+
+#
+# this defines the version number of libardour
+#
+
+domain = 'libardour'
+
+ardour.Append(DOMAIN = domain, MAJOR = 1, MINOR = 0, MICRO = 0)
+ardour.Append(CXXFLAGS = "-DPACKAGE=\\\"" + domain + "\\\"")
+ardour.Append(CCFLAGS="-DLIBSIGC_DISABLE_DEPRECATED")
+ardour.Append(PACKAGE = domain)
+ardour.Append(POTFILE = domain + '.pot')
+
+ardour_files=Split("""
+audio_library.cc
+audio_playlist.cc
+audio_track.cc
+audioengine.cc
+audiofilter.cc
+audioregion.cc
+auditioner.cc
+automation.cc
+automation_event.cc
+configuration.cc
+connection.cc
+crossfade.cc
+curve.cc
+cycle_timer.cc
+default_click.cc
+diskstream.cc
+filesource.cc
+gain.cc
+gdither.cc
+globals.cc
+import.cc
+insert.cc
+io.cc
+jack_slave.cc
+ladspa_plugin.cc
+location.cc
+mtc_slave.cc
+named_selection.cc
+panner.cc
+playlist.cc
+playlist_factory.cc
+plugin.cc
+plugin_manager.cc
+port.cc
+recent_sessions.cc
+redirect.cc
+region.cc
+reverse.cc
+route.cc
+route_group.cc
+send.cc
+session.cc
+session_butler.cc
+session_click.cc
+session_events.cc
+session_export.cc
+session_feedback.cc
+session_midi.cc
+session_process.cc
+session_state.cc
+session_time.cc
+session_timefx.cc
+session_transport.cc
+sndfile_helpers.cc
+sndfilesource.cc
+source.cc
+state_manager.cc
+stateful.cc
+tempo.cc
+utils.cc
+version.cc
+mix.cc
+""")
+
+arch_specific_objects = [ ]
+
+vst_files = [ 'vst_plugin.cc', 'session_vst.cc' ]
+extra_sources = [ ]
+
+if ardour['VST']:
+ extra_sources += vst_files
+
+ardour.Append(CCFLAGS="-D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE")
+ardour.Append(CXXFLAGS="-DDATA_DIR=\\\""+final_prefix+"/share\\\"")
+ardour.Append(CXXFLAGS="-DCONFIG_DIR=\\\""+final_config_prefix+"\\\"")
+ardour.Append(CXXFLAGS="-DLOCALEDIR=\\\""+final_prefix+"/share/locale\\\"")
+
+ardour.Merge ([ libraries['jack'] ])
+
+#
+# See if JACK supports jack_client_open()
+#
+
+jack_test_source_file = """
+#include <jack/jack.h>
+int main(int argc, char **argv)
+{
+ jack_client_open ("foo", 0, 0);
+ return 0;
+}
+"""
+def CheckJackClientOpen(context):
+ context.Message('Checking for jack_client_open()...')
+ result = context.TryLink(jack_test_source_file, '.c')
+ context.Result(result)
+ return result
+
+#
+# See if JACK supports jack_recompute_total_latencies()
+#
+
+jack_test_source_file = """
+#include <jack/jack.h>
+int main(int argc, char **argv)
+{
+ jack_recompute_total_latencies ((jack_client_t*) 0);
+ return 0;
+}
+"""
+def CheckJackRecomputeLatencies(context):
+ context.Message('Checking for jack_recompute_total_latencies()...')
+ result = context.TryLink(jack_test_source_file, '.c')
+ context.Result(result)
+ return result
+
+conf = Configure(ardour, custom_tests = {
+ 'CheckJackClientOpen' : CheckJackClientOpen,
+ 'CheckJackRecomputeLatencies' : CheckJackRecomputeLatencies
+})
+
+if conf.CheckJackClientOpen():
+ ardour.Append(CXXFLAGS="-DHAVE_JACK_CLIENT_OPEN")
+
+if conf.CheckJackRecomputeLatencies():
+ ardour.Append(CXXFLAGS="-DHAVE_JACK_RECOMPUTE_LATENCIES")
+
+#
+# Optional header files
+#
+
+if conf.CheckCHeader('wordexp.h'):
+ ardour.Append(CXXFLAGS="-DHAVE_WORDEXP")
+
+if conf.CheckCHeader('sys/vfs.h'):
+ ardour.Append(CXXFLAGS="-DHAVE_SYS_VFS_H")
+
+ardour = conf.Finish ()
+
+ardour.Merge ([
+ libraries['core'],
+ libraries['xml'],
+ libraries['sndfile'],
+ libraries['lrdf'],
+ libraries['samplerate'],
+ libraries['sigc2'],
+ libraries['pbd3'],
+ libraries['soundtouch'],
+ libraries['midi++2']
+ ])
+
+
+ardour.VersionBuild(['version.cc', 'ardour/version.h'], 'SConscript')
+
+def SharedAsmObjectEmitter(target, source, env):
+ for tgt in target:
+ tgt.attributes.shared = 1
+ return (target, source)
+
+
+env['BUILDERS']['SharedAsmObject'] = Builder (action = '$CXX -c -fPIC $SOURCE -o $TARGET',
+ emitter = SharedAsmObjectEmitter,
+ suffix = '$SHOBJSUFFIX',
+ src_suffix = '.s',
+ single_source = 1)
+
+if env['DEVBUILD'] == 1:
+ if env['BUILD_SSE_OPTIMIZATIONS'] == 1:
+ arch_specific_objects = env.SharedAsmObject('sse_functions.os', 'sse_functions.s')
+ libardour = ardour.SharedLibrary('ardour', ardour_files + extra_sources + arch_specific_objects)
+else:
+ if env['BUILD_SSE_OPTIMIZATIONS'] == 1:
+ arch_specific_objects = env.StaticObject(target='sse_functions',source='sse_functions.s')
+
+ libardour = ardour.StaticLibrary('ardour', ardour_files + extra_sources + arch_specific_objects)
+
+Default(libardour)
+
+if env['NLS']:
+ i18n (ardour, ardour_files + vst_files, env)
+
+env.Alias('tarball', env.Distribute (env['DISTTREE'],
+ [ 'SConscript', 'i18n.h', 'gettext.h', 'sse_functions.s' ] +
+ ardour_files + vst_files +
+ glob.glob('po/*.po') + glob.glob('ardour/*.h')))