X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2FSConscript;h=054b251ae749baa03a094ddcf7d7eba9ece4a137;hb=c0fa196073f21587129aaf7e8305bbbb8f1ec5ca;hp=3d83b3e2765a689915fa232e2174937f6e3899f8;hpb=028e1ebc4a392572cae586d0e9044a32b867cba4;p=ardour.git diff --git a/libs/ardour/SConscript b/libs/ardour/SConscript index 3d83b3e276..054b251ae7 100644 --- a/libs/ardour/SConscript +++ b/libs/ardour/SConscript @@ -1,6 +1,7 @@ # -*- python -*- import os +import os.path import glob Import('env final_prefix install_prefix final_config_prefix libraries i18n') @@ -19,29 +20,35 @@ ardour.Append(CXXFLAGS="-DLIBSIGC_DISABLE_DEPRECATED") ardour.Append(PACKAGE = domain) ardour.Append(POTFILE = domain + '.pot') +# +# explicitly reference the control protocol LGPL library for includes +# + +ardour.Append(CPPPATH = '#libs/surfaces/control_protocol') + ardour_files=Split(""" +diskstream.cc +audio_diskstream.cc audio_library.cc audio_playlist.cc +track.cc audio_track.cc audioengine.cc +audiofilesource.cc audiofilter.cc audioregion.cc +audiosource.cc auditioner.cc automation.cc automation_event.cc -basic_ui.cc configuration.cc connection.cc -control_protocol.cc control_protocol_manager.cc crossfade.cc curve.cc cycle_timer.cc default_click.cc destructive_filesource.cc -diskstream.cc -externalsource.cc -filesource.cc gain.cc gdither.cc globals.cc @@ -63,6 +70,7 @@ port.cc recent_sessions.cc redirect.cc region.cc +region_factory.cc reverse.cc route.cc route_group.cc @@ -70,6 +78,7 @@ send.cc session.cc session_butler.cc session_click.cc +session_command.cc session_events.cc session_export.cc session_midi.cc @@ -81,8 +90,8 @@ session_transport.cc sndfile_helpers.cc sndfilesource.cc source.cc +source_factory.cc state_manager.cc -stateful.cc tempo.cc utils.cc version.cc @@ -91,12 +100,18 @@ mix.cc arch_specific_objects = [ ] +osc_files = [ 'osc.cc' ] vst_files = [ 'vst_plugin.cc', 'session_vst.cc' ] -coreaudio_files = [ 'coreaudio_source.cc' ] +audiounit_files = [ 'audio_unit.cc' ] +coreaudio_files = [ 'coreaudiosource.cc' ] extra_sources = [ ] if ardour['VST']: extra_sources += vst_files + ardour.Append(CCFLAGS="-DVST_SUPPORT", CPPPATH="#libs/fst") + +if ardour['LIBLO']: + extra_sources += osc_files ardour.Append(CCFLAGS="-D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE") ardour.Append(CXXFLAGS="-DDATA_DIR=\\\""+final_prefix+"/share\\\"") @@ -142,9 +157,27 @@ def CheckJackRecomputeLatencies(context): context.Result(result) return result +jack_video_frame_offset_test = """ +#include +int main(int argc, char** argv) +{ + jack_position_t pos; + + pos.valid & JackVideoFrameOffset; + return 0; +} +""" + +def CheckJackVideoFrameOffset(context): + context.Message('Checking for JackVideoFrameOffset in jack_position_bits_t enum...') + result = context.TryLink(jack_video_frame_offset_test, '.c') + context.Result(result) + return result + conf = Configure(ardour, custom_tests = { 'CheckJackClientOpen' : CheckJackClientOpen, - 'CheckJackRecomputeLatencies' : CheckJackRecomputeLatencies + 'CheckJackRecomputeLatencies' : CheckJackRecomputeLatencies, + 'CheckJackVideoFrameOffset' : CheckJackVideoFrameOffset }) if conf.CheckJackClientOpen(): @@ -153,6 +186,14 @@ if conf.CheckJackClientOpen(): if conf.CheckJackRecomputeLatencies(): ardour.Append(CXXFLAGS="-DHAVE_JACK_RECOMPUTE_LATENCIES") +if conf.CheckJackVideoFrameOffset(): + ardour.Append(CXXFLAGS="-DHAVE_JACK_VIDEO_SUPPORT") + +if conf.CheckFunc('jack_port_ensure_monitor'): + env.Append(CCFLAGS='-DHAVE_JACK_PORT_ENSURE_MONITOR') +else: + print '\nWARNING: You need at least svn revision 985 of jack for hardware monitoring to work correctly.\n' + # # Optional header files # @@ -166,24 +207,44 @@ if conf.CheckCHeader('sys/vfs.h'): if conf.CheckCHeader('/System/Library/Frameworks/CoreMIDI.framework/Headers/CoreMIDI.h'): ardour.Append(LINKFLAGS="-framework CoreMIDI") -if conf.CheckCHeader('/System/Library/Frameworks/AudioToolbox.framework/Headers/ExtendedAudioFile.h'): +if conf.CheckCHeader('/System/Library/Frameworks/AudioUnit.framework/Headers/AudioUnit.h') and ardour['AUDIOUNITS']: + ardour.Append(CXXFLAGS="-DHAVE_AUDIOUNITS") + ardour.Append(LINKFLAGS="-framework AudioUnit") + extra_sources += audiounit_files + +if conf.CheckCHeader('/System/Library/Frameworks/AudioToolbox.framework/Headers/ExtendedAudioFile.h') and ardour['COREAUDIO']: ardour.Append(CXXFLAGS="-DHAVE_COREAUDIO") + ardour.Append(LINKFLAGS="-framework AudioToolbox") extra_sources += coreaudio_files +if env['CONFIG_ARCH'] == 'apple': + # this next line avoids issues with circular dependencies between libardour and libardour_cp. + # it is based on the (entirely reasonable) assumption that a system with CoreAudio is OS X + # + ardour.Append(LINKFLAGS='-undefined suppress -flat_namespace') + ardour = conf.Finish () ardour.Merge ([ libraries['core'], libraries['xml'], libraries['sndfile'], + libraries['raptor'], libraries['lrdf'], libraries['samplerate'], libraries['sigc2'], - libraries['pbd3'], + libraries['pbd'], libraries['soundtouch'], libraries['midi++2'], + libraries['glib2'], + libraries['glibmm2'] ]) +if ardour['LIBLO']: + ardour.Merge ([ libraries['lo'] ]) + +if ardour['COREAUDIO'] or ardour['AUDIOUNITS']: + ardour.Merge ([ libraries['appleutility'] ]) ardour.VersionBuild(['version.cc', 'ardour/version.h'], 'SConscript') @@ -199,33 +260,25 @@ env['BUILDERS']['SharedAsmObject'] = Builder (action = '$CXX -c -fPIC $SOURCE -o src_suffix = '.s', single_source = 1) -if env['DEVBUILD'] == 1: - if env['FPU_OPTIMIZATION']: - if env['DIST_TARGET'] == "i386": - arch_specific_objects = env.SharedAsmObject('sse_functions.os', 'sse_functions.s') - if env['DIST_TARGET'] == "i686": - arch_specific_objects = env.SharedAsmObject('sse_functions.os', 'sse_functions.s') - if env['DIST_TARGET'] == "x86_64": - arch_specific_objects = env.SharedAsmObject('sse_functions_64bit.os', 'sse_functions_64bit.s') +if env['FPU_OPTIMIZATION']: + if env['DIST_TARGET'] == "i386": + arch_specific_objects = env.SharedAsmObject('sse_functions.os', 'sse_functions.s') + if env['DIST_TARGET'] == "i686": + arch_specific_objects = env.SharedAsmObject('sse_functions.os', 'sse_functions.s') + if env['DIST_TARGET'] == "x86_64": + arch_specific_objects = env.SharedAsmObject('sse_functions_64bit.os', 'sse_functions_64bit.s') - libardour = ardour.SharedLibrary('ardour', ardour_files + extra_sources + arch_specific_objects) -else: - if env['FPU_OPTIMIZATION']: - if env['DIST_TARGET'] == "i386": - arch_specific_objects = env.StaticObject(target='sse_functions',source='sse_functions.s') - if env['DIST_TARGET'] == "i686": - arch_specific_objects = env.StaticObject(target='sse_functions',source='sse_functions.s') - if env['DIST_TARGET'] == "x86_64": - arch_specific_objects = env.StaticObject(target='sse_functions_64bit',source='sse_functions_64bit.s') - - libardour = ardour.StaticLibrary('ardour', ardour_files + extra_sources + arch_specific_objects) +libardour = ardour.SharedLibrary('ardour', ardour_files + extra_sources + arch_specific_objects) Default(libardour) if env['NLS']: - i18n (ardour, ardour_files + vst_files + coreaudio_files, env) + i18n (ardour, ardour_files + vst_files + coreaudio_files + audiounit_files, env) + + +env.Alias('install', env.Install(os.path.join(install_prefix, 'lib/ardour2'), libardour)) env.Alias('tarball', env.Distribute (env['DISTTREE'], [ 'SConscript', 'i18n.h', 'gettext.h', 'sse_functions.s', 'sse_functions_64bit.s' ] + - ardour_files + vst_files + coreaudio_files + + ardour_files + osc_files + vst_files + coreaudio_files + audiounit_files + glob.glob('po/*.po') + glob.glob('ardour/*.h')))