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 | |||
| --------------------------- | |||
| 2008-03-12 Stephane Letz <letz@grame.fr> | |||
| * Marc-Olivier Barre library related scons patch. | |||
| 2008-03-11 Stephane Letz <letz@grame.fr> | |||
| * 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(opts.GenerateHelpText(env)) | |||
| # Set the lib names | |||
| env['CLIENTLIB'] = 'jackmp' | |||
| env['SERVERLIB'] = 'jackservermp' | |||
| env['WRAPPERLIB'] = 'jackwrapper' | |||
| # make sure the necessary dirs exist | |||
| if not os.path.isdir('cache/' + build_base): | |||
| os.makedirs('cache/' + build_base) | |||
| @@ -2,6 +2,9 @@ | |||
| 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: | |||
| - 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']) | |||
| # 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 | |||
| clientlib_name = 'jackmp' | |||
| @@ -151,18 +151,18 @@ jack_headers = [ | |||
| # | |||
| # 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.Alias('install', env['LIBDIR']) | |||
| # 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 | |||
| 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', env['LIBDIR'] + '/lib' + lib_name + '.so.0', symlinkcmd) | |||
| env.Alias('install', env['LIBDIR'] + '/lib' + lib_name + '.so.0') | |||
| @@ -52,16 +52,13 @@ example_libs = { | |||
| # Libraries to link | |||
| extra_libs = {} | |||
| 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 | |||
| if env['HAS_READLINE']: | |||
| extra_libs['jack_transport'] = ['readline', 'jackservermp', 'dl'] | |||
| example_programs['jack_transport'] = 'transport.c' | |||
| extra_libs['jack_transport'] = ['readline', env['CLIENTLIB']] | |||
| # | |||
| # Build/install section | |||
| @@ -75,7 +72,7 @@ if env['BUILD_EXAMPLES']: | |||
| if env['INSTALL_EXAMPLES']: | |||
| clientenv.Install(env['BINDIR'], example_program) | |||
| 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' ) | |||
| # 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 | |||
| @@ -56,28 +56,28 @@ srcfiles_linux_dummy = ['#/common/JackDummyDriver.cpp'] | |||
| # build the server and its backends | |||
| serverenv = env.Copy() | |||
| 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 ) | |||
| 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 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 ) | |||
| 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 ) | |||
| 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 ) | |||
| 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 | |||
| serverenv = env.Copy() | |||
| serverenv.PrependUnique( LIBPATH=env['build_base'] ) | |||
| serverenv.PrependUnique( LIBS=['jackdmp', 'dl'] ) | |||
| serverenv.PrependUnique( LIBS=[env['SERVERLIB'], 'dl'] ) | |||
| server = serverenv.Program('jackdmp', srcfiles_macosx_server) | |||
| serverenv.Install( env['BINDIR'], server ) | |||