diff --git a/SConstruct b/SConstruct index ff25f2c8..cba8ba21 100644 --- a/SConstruct +++ b/SConstruct @@ -22,9 +22,9 @@ import os from string import Template -JACK_MAJOR_VERSION=1 -JACK_MINOR_VERSION=8 -JACK_MICRO_VERSION=0 +JACK_MAJOR_VERSION=0 +JACK_MINOR_VERSION=7 +JACK_MICRO_VERSION=1 JACK_VERSION="%u.%u.%u" % (JACK_MAJOR_VERSION, JACK_MINOR_VERSION, JACK_MICRO_VERSION) @@ -141,13 +141,13 @@ if not env.GetOption('clean'): print "--> At least one of the dependencies is missing. I can't go on without it, please install the needed packages (remember to also install the *-devel packages)" Exit(1) - # If jack has the same PREFIX as the one we plan to use, exit with an error message - env['JACK_FLAGS'] = conf.GetPKGFlags('jack', '0.90') - if env['JACK_FLAGS']: - print "--> Found an existing JACK installation, let's be careful not to erase it" - if conf.GetPKGPrefix( 'jack' ) == env['PREFIX']: - print '--> JACK is installed in the same directory as our current PREFIX. Either remove JACK or change your installation PREFIX.' - Exit(1) +# Shouldn't be needed with the new wrapper/full_mimic features +# env['JACK_FLAGS'] = conf.GetPKGFlags('jack', '0.90') +# if env['JACK_FLAGS']: +# print "--> Found an existing JACK installation, let's be careful not to erase it" +# if conf.GetPKGPrefix( 'jack' ) == env['PREFIX']: +# print '--> JACK is installed in the same directory as our current PREFIX. Either remove JACK or change your installation PREFIX.' +# Exit(1) # Optional checks follow: if env['BUILD_FOR_LINUX'] and env['ENABLE_ALSA']: @@ -207,22 +207,22 @@ env['LIBDIR'] = env.subst(env['LIBDIR']) env['INCLUDEDIR'] = env.subst(env['INCLUDEDIR']) env.ScanReplace('jack.pc.in') +# jack.pc is always updated in case of config changes +# (PREFIX or JACK_VERSION for instance) AlwaysBuild('jack.pc') pkg_config_dir = env['PREFIX']+"/lib/pkgconfig/" env.Install(pkg_config_dir, 'jack.pc') env.Alias('install', pkg_config_dir) -# for config.h.in -# TODO: Is that necessary ? -env['LIB_DIR']='lib' -env['JACK_LOCATION']=env.subst(env['BINDIR']) - # To have the top_srcdir as the doxygen-script is used from auto* -# TODO: Understand the previous comment env['top_srcdir'] = env.Dir('.').abspath +# for config.h.in +env['LIB_DIR']='lib' +env['JACK_LOCATION']=env.subst(env['BINDIR']) env.ScanReplace( 'config.h.in' ) -# TODO: find out what's that about. Is it useful ? +# just like jack.pc, config.h is always updated in case of config changes +# (PREFIX or JACK_VERSION for instance) AlwaysBuild('config.h') # Ensure we have a path to where the libraries are diff --git a/common/SConscript b/common/SConscript index da56466f..d8cdef56 100644 --- a/common/SConscript +++ b/common/SConscript @@ -27,7 +27,7 @@ Import('env') # Define the library suffix for POSIX like systems if env['PLATFORM'] == 'posix': - env.AppendUnique(SHLIBSUFFIX='.0.0') + env.AppendUnique(SHLIBSUFFIX='.' + env['JACK_VERSION']) # Paths where include files can be found env.AppendUnique(CPPPATH=['#/', '#/common', '#/common/jack']) @@ -39,7 +39,7 @@ env.AppendUnique(LIBS=['rt', 'pthread']) env.AppendUnique(CPPPATH=['#/linux','#/macosx']) # A symlinking command for our libraries' names -symlinkcmd = 'ln -nsf $SOURCE.name $TARGET' +symlinkcmd = 'rm -f $TARGET;ln -nsf $SOURCE.name $TARGET' # # Source files section @@ -161,13 +161,19 @@ if env['PLATFORM'] == 'posix': libs = [(env['CLIENTLIB'], clientlib), (env['SERVERLIB'], serverlib)] if not env['FULL_MIMIC']: libs.append((env['WRAPPERLIB'], wrapperlib)) + # When we use the wrapper, we want symlinks named libjack.so[.0] so regular clients can use it as a proxy + # this will delete the 2 links installed by jack-1 + # if jackd if running and not jackdmp, jack-1 libs will be used (hopefully...) + # Uncomment when sletz approves + env.Command(env['LIBDIR'] + '/libjack.so.0', env['LIBDIR'] + '/lib' + env['WRAPPERLIB'] + '.so.' + env['JACK_VERSION'], symlinkcmd) + env.Command(env['LIBDIR'] + '/libjack.so', env['LIBDIR'] + '/libjack.so.0', symlinkcmd) + env.Alias('install', env['LIBDIR'] + '/lib' + env['WRAPPERLIB'] + '.so.' + env['JACK_VERSION']) for lib_name, lib in libs: - 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') - env.Alias('install', env['LIBDIR'] + '/lib' + lib_name + '.so') + env.Command('#/common/lib' + lib_name + '.so.' + str(env['JACK_MAJOR_VERSION']), lib, symlinkcmd) + env.Command('#/common/lib' + lib_name + '.so', '#/common/lib' + lib_name + '.so.' + str(env['JACK_MAJOR_VERSION']), symlinkcmd) + env.Command(env['LIBDIR'] + '/lib' + lib_name + '.so.' + str(env['JACK_MAJOR_VERSION']), env['LIBDIR'] + '/lib' + lib_name + '.so.' + env['JACK_VERSION'], symlinkcmd) + env.Command(env['LIBDIR'] + '/lib' + lib_name + '.so', env['LIBDIR'] + '/lib' + lib_name + '.so.' + str(env['JACK_MAJOR_VERSION']), symlinkcmd) + env.Alias('install', env['LIBDIR'] + '/lib' + lib_name + '.so.' + str(env['JACK_MAJOR_VERSION'])) # Headers for header in jack_headers: