Index: linux/SConscript =================================================================== --- linux/SConscript (revision 758) +++ linux/SConscript (working copy) @@ -53,31 +53,43 @@ # Start building # +if env['FULL_MIMIC']: + server_name = "jackd" + server_lib = "jackserver" +else: + server_name = "jackdmp" + server_lib = "jackservermp" + # build the server and its backends serverenv = env.Copy() serverenv.PrependUnique( LIBPATH=env['build_base'] ) -serverenv.PrependUnique( LIBS=["jackservermp", "dl"] ) +serverenv.PrependUnique( LIBS=[server_lib, "dl"] ) -server = serverenv.Program("jackdmp", srcfiles_linux_server) +server = serverenv.Program(server_name, srcfiles_linux_server) serverenv.Install( env['BINDIR'], server ) +if env['FULL_MIMIC']: + driver_dir = env['LIBDIR'] + "/jack/" +else: + driver_dir = env['LIBDIR'] + "/jackmp/" + drv = serverenv.SharedLibrary( "jack_dummy", srcfiles_linux_dummy ) -serverenv.InstallAs( env['LIBDIR']+ "/jackmp/jack_dummy.so", drv ) +serverenv.InstallAs( driver_dir + "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 ) + serverenv.InstallAs( driver_dir + "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 ) + serverenv.InstallAs( driver_dir + "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 ) + serverenv.InstallAs( driver_dir + "jack_firewire.so", drv ) Index: SConstruct =================================================================== --- SConstruct (revision 758) +++ SConstruct (working copy) @@ -59,6 +59,7 @@ BoolOption('BUILD_EXAMPLES', 'Build the example clients in their directory', True), BoolOption('INSTALL_EXAMPLES', 'Install the example clients in the BINDIR directory', True), BoolOption('BUILD_DOXYGEN_DOCS', 'Build doxygen documentation', False), + BoolOption('FULL_MIMIC', 'Mimic jack-1.0 installation layout as much as possible', False), ) # Index: common/SConscript =================================================================== --- common/SConscript (revision 758) +++ common/SConscript (working copy) @@ -42,9 +42,13 @@ symlinkcmd = 'cd $TARGET.dir && rm -f $TARGET.name && ln -s $SOURCE.name $TARGET.name' # Library names -clientlib_name = 'jackmp' -serverlib_name = 'jackservermp' -wrapperlib_name = 'jackwrapper' +if env['FULL_MIMIC']: + clientlib_name = 'jack' + serverlib_name = 'jackserver' +else: + clientlib_name = 'jackmp' + serverlib_name = 'jackservermp' + wrapperlib_name = 'jackwrapper' # # Source files section @@ -130,10 +134,11 @@ 'JackTools.cpp' ] -srcfiles_common_wrapperlib = [ - 'JackAPIWrapper.cpp', - 'ringbuffer.c' - ] +if not env['FULL_MIMIC']: + srcfiles_common_wrapperlib = [ + 'JackAPIWrapper.cpp', + 'ringbuffer.c' + ] jack_headers = [ 'intclient.h', @@ -153,14 +158,19 @@ # 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) -env.Install( env['LIBDIR'], [clientlib, serverlib, wrapperlib]) +env.Install( env['LIBDIR'], [clientlib, serverlib]) +if not env['FULL_MIMIC']: + wrapperlib = env.SharedLibrary(wrapperlib_name, srcfiles_common_wrapperlib) + env.Install( env['LIBDIR'], [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)]: + libs = [(clientlib_name, clientlib), (serverlib_name, serverlib)] + if not env['FULL_MIMIC']: + libs.append((wrapperlib_name, wrapperlib)) + for lib_name, lib in libs: env.Command('lib' + lib_name + '.so.0', lib, symlinkcmd) env.Command('lib' + lib_name + '.so', 'lib'+lib_name+'.so.0', symlinkcmd) env.Command(env['LIBDIR'] + '/lib' + lib_name + '.so.0', env['LIBDIR'] + '/lib' + lib_name + '.so.0.0', symlinkcmd) Index: example-clients/SConscript =================================================================== --- example-clients/SConscript (revision 758) +++ example-clients/SConscript (working copy) @@ -49,18 +49,23 @@ 'inprocess' : 'inprocess.c', } +if env['FULL_MIMIC']: + clientlib = 'jack' +else: + clientlib = 'jackmp' + # Libraries to link extra_libs = {} for example_program in example_programs: - extra_libs[example_program] = ['jackservermp', 'dl'] + extra_libs[example_program] = [clientlib, 'dl'] # Replace library listing for some special cases -extra_libs['jack_load'] = ['jackmp'] -extra_libs['jack_unload'] = ['jackmp'] +extra_libs['jack_load'] = [clientlib] +extra_libs['jack_unload'] = [clientlib] # TODO: we need to really test for READLINE... env['HAS_READLINE']=True if env['HAS_READLINE']: - extra_libs['jack_transport'] = ['readline', 'jackservermp', 'dl'] + extra_libs['jack_transport'] = ['readline', clientlib, 'dl'] example_programs['jack_transport'] = 'transport.c' #