Browse Source

Marc-Olivier Barre library related scons patch.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1951 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.71
sletz 17 years ago
parent
commit
0b972cbe87
7 changed files with 38 additions and 29 deletions
  1. +4
    -0
      ChangeLog
  2. +5
    -0
      SConstruct
  3. +3
    -0
      Todo
  4. +7
    -7
      common/SConscript
  5. +7
    -10
      example-clients/SConscript
  6. +11
    -11
      linux/SConscript
  7. +1
    -1
      macosx/SConscript

+ 4
- 0
ChangeLog View File

@@ -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 ??).


+ 5
- 0
SConstruct View File

@@ -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)


+ 3
- 0
Todo View File

@@ -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)


+ 7
- 7
common/SConscript View File

@@ -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')


+ 7
- 10
example-clients/SConscript View File

@@ -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')

+ 11
- 11
linux/SConscript View File

@@ -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 )

+ 1
- 1
macosx/SConscript View File

@@ -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 )


Loading…
Cancel
Save