diff --git a/common/SConscript b/common/SConscript new file mode 100644 index 00000000..0a3fbb9e --- /dev/null +++ b/common/SConscript @@ -0,0 +1,313 @@ +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originally was part of FFADO +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +import glob +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common", "#/common/jack"] ) + +# +# Define the source files +# + +srcfiles_common_serverlib = env.Split( '\ + JackActivationCount.cpp JackAPI.cpp JackAudioDriver.cpp JackClient.cpp JackConnectionManager.cpp \ + JackDriver.cpp JackEngine.cpp JackEngineControl.cpp JackError.c JackExternalClient.cpp JackFrameTimer.cpp \ + JackFreewheelDriver.cpp JackGlobalsServer.cpp JackGraphManager.cpp JackInternalClient.cpp JackPort.cpp JackPosixSemaphore.cpp \ + JackPosixThread.cpp JackFifo.cpp JackLoopbackDriver.cpp JackPortType.cpp JackAudioPort.cpp JackMidiPort.cpp \ + JackServer.cpp JackShmMem.cpp JackThreadedDriver.cpp shm.c JackSocket.cpp JackSocketServerChannel.cpp JackSocketNotifyChannel.cpp \ + JackSocketServerNotifyChannel.cpp JackTime.c JackServerAPI.cpp JackGlobals.cpp JackDriverLoader.cpp JackDebugClient.cpp \ + JackTransportEngine.cpp JackServerGlobals.cpp JackServerLaunch.cpp timestamps.c JackTools.cpp \ + ') + +# FIXME: this is not pretty +srcfiles_common_serverlib.append('#/example-clients/internal_metro.cpp') + +srcfiles_common_clientlib = env.Split( '\ + JackActivationCount.cpp JackAPI.cpp JackClient.cpp JackConnectionManager.cpp ringbuffer.c JackServerLaunch.cpp\ + JackError.c JackFrameTimer.cpp JackGlobalsClient.cpp JackGraphManager.cpp JackLibClient.cpp JackLibAPI.cpp JackPort.cpp JackPosixSemaphore.cpp \ + JackFifo.cpp JackPortType.cpp JackAudioPort.cpp JackMidiPort.cpp JackMidiAPI.cpp JackEngineControl.cpp JackPosixThread.cpp JackShmMem.cpp \ + shm.c JackSocket.cpp JackSocketClientChannel.cpp JackTime.c JackGlobals.cpp JackDebugClient.cpp JackTransportEngine.cpp timestamps.c JackTools.cpp \ + ') + +srcfiles_common_wrapperlib = ['JackAPIWrapper.cpp', 'ringbuffer.c'] + +jack_headers = env.Split( 'intclient.h jack.h midiport.h ringbuffer.h \ + statistics.h thread.h transport.h types.h') + +# +# Start building +# + +#pkgconfig = env.ScanReplace( "libjackmp.pc.in" ) +#env.Install( env['libdir'] + '/pkgconfig', pkgconfig ) + +env.AppendUnique( LIBS=["rt", "pthread"] ) + +# build the common stuff +clientlib = env.SharedLibrary( "jackmp", srcfiles_common_clientlib ) +env.Install( "$libdir", clientlib ) +serverlib = env.SharedLibrary( "jackdmp", srcfiles_common_serverlib ) +env.Install( "$libdir", serverlib ) +wrapperlib = env.SharedLibrary( "jackwrapper", srcfiles_common_wrapperlib ) +env.Install( "$libdir", wrapperlib ) + + +# install the headers +#if env['JACK_FLAGS']: + #jack_include_dir = env['JACK_INCLUDEDIR'] + #if 'install' in COMMAND_LINE_TARGETS and os.path.isdir( jack_include_dir ): + #if env.GetOption('clean'): + #pass + #else: + #jack_old_includes_dir = env['includedir'] + '/jack_up' + #print "moving old jack includes to %s..." % jack_old_includes_dir + #env.Command(jack_old_includes_dir, jack_include_dir, Move("$TARGET", "$SOURCE")) + +for header in jack_headers: + env.Alias("install", env.Install( env['includedir'] + '/jack', 'jack/' + header )) + + +# install the libs +env.Alias("install", env.Install(env['libdir'], serverlib)) +env.Alias("install", env.Install(env['libdir'], clientlib)) +env.Alias("install", env.Install(env['libdir'], wrapperlib)) +#jack_libdir = env['JACK_LIBDIR'] +#libjackdmp_location = env['libdir'] + '/libjackmp.so' +#if 'install' in COMMAND_LINE_TARGETS and os.path.isdir( jack_libdir ): + + #if env.GetOption('clean'): + ##note: is this executed before the actual uninstall? + #lib_files = glob.glob(jack_libdir + '/libjack.so.*.up') + #for old_name in lib_files: + #new_name = old_name[:-3] + #print "restoring old jack lib %s to %s..." % (old_name, new_name) + #env.Command(Delete(new_name)) + #env.Command(new_name, old_name, Move("$TARGET", "$SOURCE")) + #else: + #lib_files = glob.glob(jack_libdir + '/libjack.so.*') + #env.Alias("install", env.Install(env['libdir'], serverlib)) + #env.Alias("install", env.Install(env['libdir'], clientlib)) + + #for old_name in lib_files: + #new_name = old_name + '.up' + #print "moving old jack lib %s to %s..." % (old_name, new_name) + #env.Command(new_name, old_name, Move("$TARGET", "$SOURCE")) + #print " linking to %s..." % (libjackdmp_location) + #env.Command(old_name, libjackdmp_location, "ln -s $TARGET $SOURCE") +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originally was part of FFADO +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +import glob +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common", "#/common/jack"] ) + +# +# Define the source files +# + +srcfiles_common_serverlib = env.Split( '\ + JackActivationCount.cpp JackAPI.cpp JackAudioDriver.cpp JackClient.cpp JackConnectionManager.cpp \ + JackDriver.cpp JackEngine.cpp JackEngineControl.cpp JackError.c JackExternalClient.cpp JackFrameTimer.cpp \ + JackFreewheelDriver.cpp JackGlobalsServer.cpp JackGraphManager.cpp JackInternalClient.cpp JackPort.cpp JackPosixSemaphore.cpp \ + JackPosixThread.cpp JackFifo.cpp JackLoopbackDriver.cpp JackPortType.cpp JackAudioPort.cpp JackMidiPort.cpp \ + JackServer.cpp JackShmMem.cpp JackThreadedDriver.cpp shm.c JackSocket.cpp JackSocketServerChannel.cpp JackSocketNotifyChannel.cpp \ + JackSocketServerNotifyChannel.cpp JackTime.c JackServerAPI.cpp JackGlobals.cpp JackDriverLoader.cpp JackDebugClient.cpp \ + JackTransportEngine.cpp JackServerGlobals.cpp JackServerLaunch.cpp timestamps.c JackTools.cpp \ + ') + +# FIXME: this is not pretty +srcfiles_common_serverlib.append('#/example-clients/internal_metro.cpp') + +srcfiles_common_clientlib = env.Split( '\ + JackActivationCount.cpp JackAPI.cpp JackClient.cpp JackConnectionManager.cpp ringbuffer.c JackServerLaunch.cpp\ + JackError.c JackFrameTimer.cpp JackGlobalsClient.cpp JackGraphManager.cpp JackLibClient.cpp JackLibAPI.cpp JackPort.cpp JackPosixSemaphore.cpp \ + JackFifo.cpp JackPortType.cpp JackAudioPort.cpp JackMidiPort.cpp JackMidiAPI.cpp JackEngineControl.cpp JackPosixThread.cpp JackShmMem.cpp \ + shm.c JackSocket.cpp JackSocketClientChannel.cpp JackTime.c JackGlobals.cpp JackDebugClient.cpp JackTransportEngine.cpp timestamps.c JackTools.cpp \ + ') + +srcfiles_common_wrapperlib = ['JackAPIWrapper.cpp', 'ringbuffer.c'] + +jack_headers = env.Split( 'intclient.h jack.h midiport.h ringbuffer.h \ + statistics.h thread.h transport.h types.h') + +# +# Start building +# + +#pkgconfig = env.ScanReplace( "libjackmp.pc.in" ) +#env.Install( env['libdir'] + '/pkgconfig', pkgconfig ) + +env.AppendUnique( LIBS=["rt", "pthread"] ) + +# build the common stuff +clientlib = env.SharedLibrary( "jackmp", srcfiles_common_clientlib ) +env.Install( "$libdir", clientlib ) +serverlib = env.SharedLibrary( "jackdmp", srcfiles_common_serverlib ) +env.Install( "$libdir", serverlib ) +wrapperlib = env.SharedLibrary( "jackwrapper", srcfiles_common_wrapperlib ) +env.Install( "$libdir", wrapperlib ) + + +# install the headers +#if env['JACK_FLAGS']: + #jack_include_dir = env['JACK_INCLUDEDIR'] + #if 'install' in COMMAND_LINE_TARGETS and os.path.isdir( jack_include_dir ): + #if env.GetOption('clean'): + #pass + #else: + #jack_old_includes_dir = env['includedir'] + '/jack_up' + #print "moving old jack includes to %s..." % jack_old_includes_dir + #env.Command(jack_old_includes_dir, jack_include_dir, Move("$TARGET", "$SOURCE")) + +for header in jack_headers: + env.Alias("install", env.Install( env['includedir'] + '/jack', 'jack/' + header )) + + +# install the libs +env.Alias("install", env.Install(env['libdir'], serverlib)) +env.Alias("install", env.Install(env['libdir'], clientlib)) +env.Alias("install", env.Install(env['libdir'], wrapperlib)) +#jack_libdir = env['JACK_LIBDIR'] +#libjackdmp_location = env['libdir'] + '/libjackmp.so' +#if 'install' in COMMAND_LINE_TARGETS and os.path.isdir( jack_libdir ): + + #if env.GetOption('clean'): + ##note: is this executed before the actual uninstall? + #lib_files = glob.glob(jack_libdir + '/libjack.so.*.up') + #for old_name in lib_files: + #new_name = old_name[:-3] + #print "restoring old jack lib %s to %s..." % (old_name, new_name) + #env.Command(Delete(new_name)) + #env.Command(new_name, old_name, Move("$TARGET", "$SOURCE")) + #else: + #lib_files = glob.glob(jack_libdir + '/libjack.so.*') + #env.Alias("install", env.Install(env['libdir'], serverlib)) + #env.Alias("install", env.Install(env['libdir'], clientlib)) + + #for old_name in lib_files: + #new_name = old_name + '.up' + #print "moving old jack lib %s to %s..." % (old_name, new_name) + #env.Command(new_name, old_name, Move("$TARGET", "$SOURCE")) + #print " linking to %s..." % (libjackdmp_location) + #env.Command(old_name, libjackdmp_location, "ln -s $TARGET $SOURCE") +# -*- python -*- + +import os +import os.path +import glob +#Import('env') + +#CPPPATH = ['macosx', 'common'] + +objects_common_server_lib=Split(""" +JackActivationCount.cpp +JackAPI.cpp +JackAudioDriver.cpp +JackClient.cpp +JackConnectionManager.cpp +JackDriver.cpp +JackEngine.cpp +JackEngineTiming.cpp +JackError.cpp +JackExternalClient.cpp +JackFrameTimer.cpp +JackFreewheelDriver.o +JackGlobalsServer.cpp +JackGraphManager.cpp +JackInternalClient.cpp +JackPort.cpp +JackPosixSemaphore.cpp +JackPosixThread.cpp +JackFifo.cpp +JackLoopbackDriver.cpp +JackServer.cpp +JackShmMem.cpp +JackThreadedDriver.cpp +shm.c +JackSocket.cpp +JackSocketServerChannel.cpp +JackSocketNotifyChannel.cpp +JackSocketServerNotifyChannel.cpp +JackTime.cpp +JackServerAPI.cpp +JackGlobals.cpp +JackDriverLoader.cpp +internal_metro.cpp +JackDebugClient.cpp +JackTransportEngine.cpp +JackServerGlobals.o +""") + +objects_common_client_lib =Split(""" +JackActivationCount.cpp +JackAPI.cpp +JackClient.cpp +JackConnectionManager.cpp +ringbuffer.cpp +JackError.cpp +JackFrameTimer.cpp +JackGlobalsClient.cpp +JackGraphManager.cpp +JackLibClient.cpp +JackLibAPI.cpp +JackPort.cpp +JackPosixSemaphore.cpp +JackFifo.cpp +JackPosixThread.cpp +JackShmMem.cpp +shm.c +JackSocket.cpp +JackSocketClientChannel.cpp +JackTime.cpp +JackGlobals.cpp +JackDebugClient.cpp +JackTransportEngine.cpp +""") + + +SharedLibrary('libjackdmp', objects_common_server_lib, CPPPATH = ['.','../macosx','jack'], CXXFLAGS=["-O3"]) +SharedLibrary('libjackmp', objects_common_client_lib, CPPPATH = ['.','../macosx','jack'], CXXFLAGS=["-O3"]) diff --git a/example-clients/SConscript b/example-clients/SConscript new file mode 100644 index 00000000..716d729d --- /dev/null +++ b/example-clients/SConscript @@ -0,0 +1,172 @@ +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originates from FFADO (www.ffado.org) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common"] ) + +# +# Define the source files +# + +example_client_programs = { + "jack_freewheel" : "freewheel.c", + "jack_connect" : "connect.c", + "jack_lsp" : "lsp.c", + "jack_metro" : "metro.c", + #"jack_midiseq" : "midiseq.c", + #"jack_midisine" : "midisine.c", + "jack_showtime" : "showtime.c", + "jack_simple_client" : "simple_client.c", + "jack_zombie" : "zombie.c", + "jack_load" : "ipload.c", + "jack_unload" : "ipunload.c", +} + +example_client_libs = { + "inprocess" : "inprocess.c", +} + +# link extra libs? +extra_libs = {} +for example_client_program in example_client_programs.keys(): + extra_libs[example_client_program] = ["jackdmp", "dl"] + +# special cases +extra_libs["jack_load"] = ["jackmp"] +extra_libs["jack_unload"] = ["jackmp"] + +env['HAS_READLINE']=True +if env['HAS_READLINE']: + extra_libs["jack_transport"] = ["readline", "jackdmp", "dl"] + example_client_programs["jack_transport"] = "transport.c" + +# +# Start building +# + +# build the example clients +if env['BUILD_EXAMPLES']: + clientenv = env.Copy() + clientenv.PrependUnique( LIBPATH=env['build_base'] ) + + for example_client_program in example_client_programs.keys(): + clientenv.Program(target=example_client_program, + source=env.Split( example_client_programs[example_client_program]), + LIBS=extra_libs[example_client_program] ) + if env['INSTALL_EXAMPLES']: + clientenv.Install( "$bindir", example_client_program ) + + for example_client_lib in example_client_libs.keys(): + clientenv.SharedLibrary(target=example_client_lib, + source=env.Split( example_client_libs[example_client_lib] ) ) + if env['INSTALL_EXAMPLES']: + #clientenv.Install( "$libdir", example_client_lib ) + pass +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originates from FFADO (www.ffado.org) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common"] ) + +# +# Define the source files +# + +example_client_programs = { + "jack_freewheel" : "freewheel.c", + "jack_connect" : "connect.c", + "jack_lsp" : "lsp.c", + "jack_metro" : "metro.c", + #"jack_midiseq" : "midiseq.c", + #"jack_midisine" : "midisine.c", + "jack_showtime" : "showtime.c", + "jack_simple_client" : "simple_client.c", + "jack_zombie" : "zombie.c", + "jack_load" : "ipload.c", + "jack_unload" : "ipunload.c", +} + +example_client_libs = { + "inprocess" : "inprocess.c", +} + +# link extra libs? +extra_libs = {} +for example_client_program in example_client_programs.keys(): + extra_libs[example_client_program] = ["jackdmp", "dl"] + +# special cases +extra_libs["jack_load"] = ["jackmp"] +extra_libs["jack_unload"] = ["jackmp"] + +env['HAS_READLINE']=True +if env['HAS_READLINE']: + extra_libs["jack_transport"] = ["readline", "jackdmp", "dl"] + example_client_programs["jack_transport"] = "transport.c" + +# +# Start building +# + +# build the example clients +if env['BUILD_EXAMPLES']: + clientenv = env.Copy() + clientenv.PrependUnique( LIBPATH=env['build_base'] ) + + for example_client_program in example_client_programs.keys(): + clientenv.Program(target=example_client_program, + source=env.Split( example_client_programs[example_client_program]), + LIBS=extra_libs[example_client_program] ) + if env['INSTALL_EXAMPLES']: + clientenv.Install( "$bindir", example_client_program ) + + for example_client_lib in example_client_libs.keys(): + clientenv.SharedLibrary(target=example_client_lib, + source=env.Split( example_client_libs[example_client_lib] ) ) + if env['INSTALL_EXAMPLES']: + #clientenv.Install( "$libdir", example_client_lib ) + pass diff --git a/linux/SConscript b/linux/SConscript new file mode 100644 index 00000000..bf0d60c6 --- /dev/null +++ b/linux/SConscript @@ -0,0 +1,156 @@ +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originates from FFADO (www.ffado.org) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common", "#/common/jack", "#/linux"] ) + +# +# Define the source files +# + +srcfiles_linux_server = ['#/common/Jackdmp.cpp'] + +srcfiles_linux_alsa = env.Split( '\ + JackAlsaDriver.cpp memops.c generic_hw.c hdsp.c hammerfall.c ice1712.c') +for i in range(len(srcfiles_linux_alsa)): + srcfiles_linux_alsa[i] = 'alsa/%s' % srcfiles_linux_alsa[i] + +srcfiles_linux_freebob = ['freebob/JackFreebobDriver.cpp'] +srcfiles_linux_ffado = ['firewire/JackFFADODriver.cpp'] +srcfiles_linux_dummy = ['#/common/JackDummyDriver.cpp'] + +# +# Start building +# + +#pkgconfig = env.ScanReplace( "libjackmp.pc.in" ) +#env.Install( env['libdir'] + '/pkgconfig', pkgconfig ) + +# build the server and its backends +serverenv = env.Copy() +serverenv.PrependUnique( LIBPATH=env['build_base'] ) +serverenv.PrependUnique( LIBS=["jackdmp", "dl"] ) + +server = serverenv.Program("jackdmp", srcfiles_linux_server) +serverenv.Install( env['bindir'], server ) + +drv = serverenv.SharedLibrary( "jack_dummy", srcfiles_linux_dummy ) +serverenv.InstallAs( env['libdir']+ "/jackmp/jack_dummy.so", drv ) + +if env['ENABLE_ALSA']: + if not env.GetOption('clean'): + serverenv.MergeFlags( env['ALSA_FLAGS'] ) + drv = serverenv.SharedLibrary( "jack_alsa", srcfiles_linux_alsa ) + serverenv.InstallAs( env['libdir']+ "/jackmp/jack_alsa.so", drv ) + +if env['ENABLE_FREEBOB']: + if not env.GetOption('clean'): + serverenv.MergeFlags( env['FREEBOB_FLAGS'] ) + drv = serverenv.SharedLibrary( "jack_freebob", srcfiles_linux_freebob ) + serverenv.InstallAs( env['libdir']+ "/jackmp/jack_freebob.so", drv ) + +if env['ENABLE_FIREWIRE']: + if not env.GetOption('clean'): + serverenv.MergeFlags( env['FFADO_FLAGS'] ) + drv = serverenv.SharedLibrary( "jack_firewire", srcfiles_linux_ffado ) + serverenv.InstallAs( env['libdir']+ "/jackmp/jack_firewire.so", drv ) +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originates from FFADO (www.ffado.org) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common", "#/common/jack", "#/linux"] ) + +# +# Define the source files +# + +srcfiles_linux_server = ['#/common/Jackdmp.cpp'] + +srcfiles_linux_alsa = env.Split( '\ + JackAlsaDriver.cpp memops.c generic_hw.c hdsp.c hammerfall.c ice1712.c') +for i in range(len(srcfiles_linux_alsa)): + srcfiles_linux_alsa[i] = 'alsa/%s' % srcfiles_linux_alsa[i] + +srcfiles_linux_freebob = ['freebob/JackFreebobDriver.cpp'] +srcfiles_linux_ffado = ['firewire/JackFFADODriver.cpp'] +srcfiles_linux_dummy = ['#/common/JackDummyDriver.cpp'] + +# +# Start building +# + +#pkgconfig = env.ScanReplace( "libjackmp.pc.in" ) +#env.Install( env['libdir'] + '/pkgconfig', pkgconfig ) + +# build the server and its backends +serverenv = env.Copy() +serverenv.PrependUnique( LIBPATH=env['build_base'] ) +serverenv.PrependUnique( LIBS=["jackdmp", "dl"] ) + +server = serverenv.Program("jackdmp", srcfiles_linux_server) +serverenv.Install( env['bindir'], server ) + +drv = serverenv.SharedLibrary( "jack_dummy", srcfiles_linux_dummy ) +serverenv.InstallAs( env['libdir']+ "/jackmp/jack_dummy.so", drv ) + +if env['ENABLE_ALSA']: + if not env.GetOption('clean'): + serverenv.MergeFlags( env['ALSA_FLAGS'] ) + drv = serverenv.SharedLibrary( "jack_alsa", srcfiles_linux_alsa ) + serverenv.InstallAs( env['libdir']+ "/jackmp/jack_alsa.so", drv ) + +if env['ENABLE_FREEBOB']: + if not env.GetOption('clean'): + serverenv.MergeFlags( env['FREEBOB_FLAGS'] ) + drv = serverenv.SharedLibrary( "jack_freebob", srcfiles_linux_freebob ) + serverenv.InstallAs( env['libdir']+ "/jackmp/jack_freebob.so", drv ) + +if env['ENABLE_FIREWIRE']: + if not env.GetOption('clean'): + serverenv.MergeFlags( env['FFADO_FLAGS'] ) + drv = serverenv.SharedLibrary( "jack_firewire", srcfiles_linux_ffado ) + serverenv.InstallAs( env['libdir']+ "/jackmp/jack_firewire.so", drv ) diff --git a/tests/SConscript b/tests/SConscript new file mode 100644 index 00000000..c65d7f03 --- /dev/null +++ b/tests/SConscript @@ -0,0 +1,104 @@ +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originates from FFADO (www.ffado.org) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common"] ) + +# +# Define the source files +# + +test_programs = { + "synchroClient" : "testSynchroClient.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp", + "synchroServer" : "testSynchroServer.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp", + "synchroServerClient" : "testSynchroServerClient.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp #/common/JackPthreadCond.cpp", + "testSem" : "testSem.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp", + "jack_test" : "jack_test.cpp", +} + +# +# Start building +# + +# build the tests +testenv = env.Copy() +testenv.PrependUnique( LIBPATH=env['build_base'] ) +testenv.PrependUnique( LIBS="jackmp" ) + +for test_program in test_programs.keys(): + testenv.Program(target=test_program, + source=env.Split( test_programs[test_program] ) ) +# +# Copyright (C) 2007 Arnold Krille +# Copyright (C) 2007 Pieter Palmers +# +# This file originates from FFADO (www.ffado.org) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import os +from string import Template + +Import( 'env' ) + +# paths where include files can be found +env.AppendUnique( CPPPATH=["#/", "#/common"] ) + +# +# Define the source files +# + +test_programs = { + "synchroClient" : "testSynchroClient.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp", + "synchroServer" : "testSynchroServer.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp", + "synchroServerClient" : "testSynchroServerClient.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp #/common/JackPthreadCond.cpp", + "testSem" : "testSem.cpp #/common/JackPosixSemaphore.cpp #/common/JackPosixThread.cpp #/common/JackError.c #/common/JackFifo.cpp", + "jack_test" : "jack_test.cpp", +} + +# +# Start building +# + +# build the tests +testenv = env.Copy() +testenv.PrependUnique( LIBPATH=env['build_base'] ) +testenv.PrependUnique( LIBS="jackmp" ) + +for test_program in test_programs.keys(): + testenv.Program(target=test_program, + source=env.Split( test_programs[test_program] ) )