# -*- 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 = 0, MINOR = 887, MICRO = 1)
ardour.Append(CXXFLAGS = "-DPACKAGE=\\\"" + domain + "\\\"")
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
""")

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\\\"")

#
# See if JACK supports jack_client_open()
#

ardour.Merge ([ libraries['jack'] ])

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

conf = Configure(ardour, custom_tests = {'CheckJackClientOpen' : CheckJackClientOpen})

if conf.CheckJackClientOpen():
    ardour.Append(CXXFLAGS="-DHAVE_JACK_CLIENT_OPEN")

#
# 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['sigc'],
	     libraries['pbd'],
	     libraries['soundtouch'],
	     libraries['midi++']
	     ])


ardour.VersionBuild(['version.cc', 'ardour/version.h'], 'SConscript')

if env['DEVBUILD'] == 1:
    libardour = ardour.SharedLibrary('ardour', ardour_files + extra_sources)
else:
    libardour = ardour.StaticLibrary('ardour', ardour_files + extra_sources)

Default(libardour)

if env['NLS']:
	i18n (ardour, ardour_files + vst_files, env)
	      
env.Alias('tarball', env.Distribute (env['DISTTREE'],
				     [ 'SConscript', 'i18n.h', 'gettext.h'] +
				     ardour_files + vst_files +
				     glob.glob('po/*.po') + glob.glob('ardour/*.h')))
