#
# Missing pkgconfig tests to check if stuff is installed
#

SConsignFile()
EnsureSConsVersion(0, 96)

# global options

opts = Options( None, ARGUMENTS )

jack_source_dir = '/'

print ARGUMENTS
opts.AddOptions( PathOption('jack_source_dir', 'Path to the source of the jack install. (Needed for the driver headerfiles)', jack_source_dir) )
opts.AddOptions( BoolOption('with_alsa', 'Have Alsa support', 1) )

options=['-O2', '-I../../','-I../../config', '-DPIC','-D_REENTRANT', '-D_POSIX_PTHREAD_SEMANTICS','-Wall']
ldopts=['-lm','-lpthread','-ldl']


# find out include path

includepath=''

# initialize environment
env = Environment(options=opts, LIBS=ldopts, CPPPATH=includepath)
env.ParseConfig('pkg-config --cflags --libs jack samplerate')

with_alsa = env['with_alsa']

if with_alsa==1:
	env.ParseConfig('pkg-config --cflags --libs alsa')


jack_source_dir = env['jack_source_dir']
includepath=[ jack_source_dir, jack_source_dir + '/config' ]
env['CPPPATH'] += includepath

lib_target  = "jack_net"
lib_sources = ["net_driver.c", "netjack_packet.c" ]
env['LIBPREFIX']=""
driver = env.SharedLibrary(target = lib_target, source = lib_sources, LDFLAGS=ldopts, CCFLAGS=options)

client_target = "jacknet_client"
client_sources = ["net_source.c", "netjack_packet.c"]
client = env.Program(target=client_target,source = client_sources, CCFLAGS=options)


if with_alsa==1:
	alsaout_target = "alsa_out"
	alsaout_sources = "alsa_out.c"
	alsaout = env.Program(target=alsaout_target,source = alsaout_sources, CCFLAGS=options)

	alsain_target = "alsa_in"
	alsain_sources = "alsa_in.c"
	alsain = env.Program(target=alsain_target,source = alsain_sources, CCFLAGS=options)

#Alias('install')
#Alias('install','/usr/bin')
#Alias(['install','install-lib'],'/usr/lib/jack')

env.Alias('install','/usr/bin')
env.Alias('install2','/usr/lib/jack')
env.Install('/usr/lib/jack',driver)
env.Install('/usr/bin',client)
if with_alsa==1:
	env.Install('/usr/bin',alsain)
	env.Install('/usr/bin',alsaout)
