git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1951 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.71
@@ -19,6 +19,10 @@ Nedko Arnaudov | |||||
Jackdmp changes log | Jackdmp changes log | ||||
--------------------------- | --------------------------- | ||||
2008-03-12 Stephane Letz <letz@grame.fr> | |||||
* Marc-Olivier Barre library related scons patch. | |||||
2008-03-11 Stephane Letz <letz@grame.fr> | 2008-03-11 Stephane Letz <letz@grame.fr> | ||||
* Fix engine real-time notification (was broken since ??). | * Fix engine real-time notification (was broken since ??). | ||||
@@ -87,6 +87,11 @@ env = Environment(tools=['default', 'scanreplace', 'pkgconfig', 'doxygen'], tool | |||||
Help('To build jackdmp you can set different options as listed below. You have to specify them only once, scons will save the latest values you set and re-use then. To really undo your settings and return to the factory defaults, remove the .sconsign.dblite and options.cache files from your BUILDDIR directory.') | Help('To build jackdmp you can set different options as listed below. You have to specify them only once, scons will save the latest values you set and re-use then. To really undo your settings and return to the factory defaults, remove the .sconsign.dblite and options.cache files from your BUILDDIR directory.') | ||||
Help(opts.GenerateHelpText(env)) | Help(opts.GenerateHelpText(env)) | ||||
# Set the lib names | |||||
env['CLIENTLIB'] = 'jackmp' | |||||
env['SERVERLIB'] = 'jackservermp' | |||||
env['WRAPPERLIB'] = 'jackwrapper' | |||||
# make sure the necessary dirs exist | # make sure the necessary dirs exist | ||||
if not os.path.isdir('cache/' + build_base): | if not os.path.isdir('cache/' + build_base): | ||||
os.makedirs('cache/' + build_base) | os.makedirs('cache/' + build_base) | ||||
@@ -2,6 +2,9 @@ | |||||
Jackdmp Todo list | Jackdmp Todo list | ||||
--------------------- | --------------------- | ||||
2008-03-12 : Do not start the client RT thread if no callback or thread routine has been setup (no use of jack_set_process_callback or jack_set_process_thread). This require change in the server to avoid signaling the client in this case. | |||||
2008-02-07 : Pipelining idea: | 2008-02-07 : Pipelining idea: | ||||
- cut the driver buffer size in n slices : clients see the divided value, server deal with the driver value, some clients may want to keep the driver buffer size (non pipelining) | - cut the driver buffer size in n slices : clients see the divided value, server deal with the driver value, some clients may want to keep the driver buffer size (non pipelining) | ||||
@@ -39,7 +39,7 @@ env.AppendUnique(LIBS=['rt', 'pthread']) | |||||
env.AppendUnique(CPPPATH=['#/linux','#/macosx']) | env.AppendUnique(CPPPATH=['#/linux','#/macosx']) | ||||
# A symlinking command for our libraries' names | # A symlinking command for our libraries' names | ||||
symlinkcmd = 'cd $TARGET.dir && rm -f $TARGET.name && ln -s $SOURCE.name $TARGET.name' | |||||
symlinkcmd = 'ln -nsf $SOURCE.name $TARGET' | |||||
# Library names | # Library names | ||||
clientlib_name = 'jackmp' | clientlib_name = 'jackmp' | ||||
@@ -151,18 +151,18 @@ jack_headers = [ | |||||
# | # | ||||
# Libraries | # Libraries | ||||
clientlib = env.SharedLibrary(clientlib_name, srcfiles_common_clientlib) | |||||
serverlib = env.SharedLibrary(serverlib_name, srcfiles_common_serverlib) | |||||
wrapperlib = env.SharedLibrary(wrapperlib_name, srcfiles_common_wrapperlib) | |||||
clientlib = env.SharedLibrary(env['CLIENTLIB'], srcfiles_common_clientlib) | |||||
serverlib = env.SharedLibrary(env['SERVERLIB'], srcfiles_common_serverlib) | |||||
wrapperlib = env.SharedLibrary(env['WRAPPERLIB'], srcfiles_common_wrapperlib) | |||||
env.Install( env['LIBDIR'], [clientlib, serverlib, wrapperlib]) | env.Install( env['LIBDIR'], [clientlib, serverlib, wrapperlib]) | ||||
env.Alias('install', env['LIBDIR']) | env.Alias('install', env['LIBDIR']) | ||||
# Handle the way we name libraries on a POSIX system | # Handle the way we name libraries on a POSIX system | ||||
# TODO: this is not quite clean yet. changing the library version is a pain we'll need a nicer loop and a config value somewhere | # TODO: this is not quite clean yet. changing the library version is a pain we'll need a nicer loop and a config value somewhere | ||||
if env['PLATFORM'] == 'posix': | if env['PLATFORM'] == 'posix': | ||||
for lib_name, lib in [(clientlib_name, clientlib), (serverlib_name, serverlib), (wrapperlib_name, wrapperlib)]: | |||||
env.Command('lib' + lib_name + '.so.0', lib, symlinkcmd) | |||||
env.Command('lib' + lib_name + '.so', 'lib'+lib_name+'.so.0', symlinkcmd) | |||||
for lib_name, lib in [(env['CLIENTLIB'], clientlib), (env['SERVERLIB'], serverlib), (env['WRAPPERLIB'], wrapperlib)]: | |||||
env.Command('#/common/lib' + lib_name + '.so.0', lib, symlinkcmd) | |||||
env.Command('#/common/lib' + lib_name + '.so', '#/common/lib'+lib_name+'.so.0', symlinkcmd) | |||||
env.Command(env['LIBDIR'] + '/lib' + lib_name + '.so.0', env['LIBDIR'] + '/lib' + lib_name + '.so.0.0', symlinkcmd) | env.Command(env['LIBDIR'] + '/lib' + lib_name + '.so.0', env['LIBDIR'] + '/lib' + lib_name + '.so.0.0', symlinkcmd) | ||||
env.Command(env['LIBDIR'] + '/lib' + lib_name + '.so', env['LIBDIR'] + '/lib' + lib_name + '.so.0', symlinkcmd) | env.Command(env['LIBDIR'] + '/lib' + lib_name + '.so', env['LIBDIR'] + '/lib' + lib_name + '.so.0', symlinkcmd) | ||||
env.Alias('install', env['LIBDIR'] + '/lib' + lib_name + '.so.0') | env.Alias('install', env['LIBDIR'] + '/lib' + lib_name + '.so.0') | ||||
@@ -52,16 +52,13 @@ example_libs = { | |||||
# Libraries to link | # Libraries to link | ||||
extra_libs = {} | extra_libs = {} | ||||
for example_program in example_programs: | for example_program in example_programs: | ||||
extra_libs[example_program] = ['jackservermp', 'dl'] | |||||
extra_libs[example_program] = [env['CLIENTLIB']] | |||||
# Replace library listing for some special cases | |||||
extra_libs['jack_load'] = ['jackmp'] | |||||
extra_libs['jack_unload'] = ['jackmp'] | |||||
# TODO: we need to really test for READLINE... | |||||
# TODO: we need to really test for READLINE... pkgconfig ? | |||||
env['HAS_READLINE']=True | env['HAS_READLINE']=True | ||||
if env['HAS_READLINE']: | if env['HAS_READLINE']: | ||||
extra_libs['jack_transport'] = ['readline', 'jackservermp', 'dl'] | |||||
example_programs['jack_transport'] = 'transport.c' | example_programs['jack_transport'] = 'transport.c' | ||||
extra_libs['jack_transport'] = ['readline', env['CLIENTLIB']] | |||||
# | # | ||||
# Build/install section | # Build/install section | ||||
@@ -75,7 +72,7 @@ if env['BUILD_EXAMPLES']: | |||||
if env['INSTALL_EXAMPLES']: | if env['INSTALL_EXAMPLES']: | ||||
clientenv.Install(env['BINDIR'], example_program) | clientenv.Install(env['BINDIR'], example_program) | ||||
for example_lib, example_lib_source in example_libs.items(): | for example_lib, example_lib_source in example_libs.items(): | ||||
clientenv.SharedLibrary(example_lib, example_lib_source) | |||||
# TODO: Not working yet. Do we even intend to install a test library ? | |||||
# if env['INSTALL_EXAMPLES']: | |||||
# clientenv.Install(env['LIBDIR'], example_client_lib) | |||||
lib = clientenv.SharedLibrary(example_lib, example_lib_source) | |||||
if clientenv['INSTALL_EXAMPLES']: | |||||
clientenv.InstallAs(clientenv['LIBDIR'] + '/jackmp/' + example_lib + '.so', lib) | |||||
clientenv.Alias('install', clientenv['LIBDIR'] + '/jackmp/' + example_lib + '.so') |
@@ -25,7 +25,7 @@ from string import Template | |||||
Import( 'env' ) | Import( 'env' ) | ||||
# paths where include files can be found | # paths where include files can be found | ||||
env.AppendUnique( CPPPATH=["#/", "#/common", "#/common/jack", "#/linux"] ) | |||||
env.AppendUnique( CPPPATH=['#/', '#/common', '#/common/jack', '#/linux'] ) | |||||
# | # | ||||
# Define the source files | # Define the source files | ||||
@@ -56,28 +56,28 @@ srcfiles_linux_dummy = ['#/common/JackDummyDriver.cpp'] | |||||
# build the server and its backends | # build the server and its backends | ||||
serverenv = env.Copy() | serverenv = env.Copy() | ||||
serverenv.PrependUnique( LIBPATH=env['build_base'] ) | serverenv.PrependUnique( LIBPATH=env['build_base'] ) | ||||
serverenv.PrependUnique( LIBS=["jackservermp", "dl"] ) | |||||
serverenv.PrependUnique( LIBS=[env['SERVERLIB'], 'dl'] ) | |||||
server = serverenv.Program("jackdmp", srcfiles_linux_server) | |||||
server = serverenv.Program('jackdmp', srcfiles_linux_server) | |||||
serverenv.Install( env['BINDIR'], server ) | serverenv.Install( env['BINDIR'], server ) | ||||
drv = serverenv.SharedLibrary( "jack_dummy", srcfiles_linux_dummy ) | |||||
serverenv.InstallAs( env['LIBDIR']+ "/jackmp/jack_dummy.so", drv ) | |||||
drv = serverenv.SharedLibrary( 'jack_dummy', srcfiles_linux_dummy ) | |||||
serverenv.InstallAs( env['LIBDIR'] + '/jackmp/jack_dummy.so', drv ) | |||||
if env['ENABLE_ALSA']: | if env['ENABLE_ALSA']: | ||||
if not env.GetOption('clean'): | if not env.GetOption('clean'): | ||||
serverenv.MergeFlags( env['ALSA_FLAGS'] ) | serverenv.MergeFlags( env['ALSA_FLAGS'] ) | ||||
drv = serverenv.SharedLibrary( "jack_alsa", srcfiles_linux_alsa ) | |||||
serverenv.InstallAs( env['LIBDIR']+ "/jackmp/jack_alsa.so", drv ) | |||||
drv = serverenv.SharedLibrary( 'jack_alsa', srcfiles_linux_alsa ) | |||||
serverenv.InstallAs( env['LIBDIR'] + '/jackmp/jack_alsa.so', drv ) | |||||
if env['ENABLE_FREEBOB']: | if env['ENABLE_FREEBOB']: | ||||
if not env.GetOption('clean'): | if not env.GetOption('clean'): | ||||
serverenv.MergeFlags( env['FREEBOB_FLAGS'] ) | serverenv.MergeFlags( env['FREEBOB_FLAGS'] ) | ||||
drv = serverenv.SharedLibrary( "jack_freebob", srcfiles_linux_freebob ) | |||||
serverenv.InstallAs( env['LIBDIR']+ "/jackmp/jack_freebob.so", drv ) | |||||
drv = serverenv.SharedLibrary( 'jack_freebob', srcfiles_linux_freebob ) | |||||
serverenv.InstallAs( env['LIBDIR'] + '/jackmp/jack_freebob.so', drv ) | |||||
if env['ENABLE_FIREWIRE']: | if env['ENABLE_FIREWIRE']: | ||||
if not env.GetOption('clean'): | if not env.GetOption('clean'): | ||||
serverenv.MergeFlags( env['FFADO_FLAGS'] ) | serverenv.MergeFlags( env['FFADO_FLAGS'] ) | ||||
drv = serverenv.SharedLibrary( "jack_firewire", srcfiles_linux_ffado ) | |||||
serverenv.InstallAs( env['LIBDIR']+ "/jackmp/jack_firewire.so", drv ) | |||||
drv = serverenv.SharedLibrary( 'jack_firewire', srcfiles_linux_ffado ) | |||||
serverenv.InstallAs( env['LIBDIR'] + '/jackmp/jack_firewire.so', drv ) |
@@ -44,7 +44,7 @@ srcfiles_macosx_dummy = ['#/common/JackDummyDriver.cpp'] | |||||
# build the server and its backends | # build the server and its backends | ||||
serverenv = env.Copy() | serverenv = env.Copy() | ||||
serverenv.PrependUnique( LIBPATH=env['build_base'] ) | serverenv.PrependUnique( LIBPATH=env['build_base'] ) | ||||
serverenv.PrependUnique( LIBS=['jackdmp', 'dl'] ) | |||||
serverenv.PrependUnique( LIBS=[env['SERVERLIB'], 'dl'] ) | |||||
server = serverenv.Program('jackdmp', srcfiles_macosx_server) | server = serverenv.Program('jackdmp', srcfiles_macosx_server) | ||||
serverenv.Install( env['BINDIR'], server ) | serverenv.Install( env['BINDIR'], server ) | ||||