add ENABLE_SONAME option + embed rpath/loader_path by default - closes #1225
This commit is contained in:
parent
cdaa31aa5e
commit
0e38731152
2 changed files with 12 additions and 3 deletions
|
@ -391,6 +391,7 @@ opts.AddVariables(
|
||||||
BoolVariable('PYTHON_DYNAMIC_LOOKUP', 'On OSX, do not directly link python lib, but rather dynamically lookup symbols', 'True'),
|
BoolVariable('PYTHON_DYNAMIC_LOOKUP', 'On OSX, do not directly link python lib, but rather dynamically lookup symbols', 'True'),
|
||||||
('FRAMEWORK_SEARCH_PATH','Custom framework search path on Mac OS X', ''),
|
('FRAMEWORK_SEARCH_PATH','Custom framework search path on Mac OS X', ''),
|
||||||
BoolVariable('FULL_LIB_PATH', 'Use the full path for the libmapnik.dylib "install_name" when linking on Mac OS X', 'True'),
|
BoolVariable('FULL_LIB_PATH', 'Use the full path for the libmapnik.dylib "install_name" when linking on Mac OS X', 'True'),
|
||||||
|
BoolVariable('ENABLE_SONAME', 'Use the full path for the libmapnik.dylib "install_name" when linking on Mac OS X', 'True'),
|
||||||
ListVariable('BINDINGS','Language bindings to build','all',['python']),
|
ListVariable('BINDINGS','Language bindings to build','all',['python']),
|
||||||
EnumVariable('THREADING','Set threading support','multi', ['multi','single']),
|
EnumVariable('THREADING','Set threading support','multi', ['multi','single']),
|
||||||
EnumVariable('XMLPARSER','Set xml parser','libxml2', ['libxml2','ptree']),
|
EnumVariable('XMLPARSER','Set xml parser','libxml2', ['libxml2','ptree']),
|
||||||
|
|
14
src/build.py
14
src/build.py
|
@ -100,12 +100,14 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
if env['FULL_LIB_PATH']:
|
if env['FULL_LIB_PATH']:
|
||||||
lib_path = '%s/%s' % (env['MAPNIK_LIB_BASE'],mapnik_libname)
|
lib_path = '%s/%s' % (env['MAPNIK_LIB_BASE'],mapnik_libname)
|
||||||
else:
|
else:
|
||||||
lib_path = mapnik_libname
|
lib_path = '@loader_path/'+libmapnik_libname
|
||||||
mapnik_lib_link_flag += ' -Wl,-install_name,%s' % lib_path
|
mapnik_lib_link_flag += ' -Wl,-install_name,%s' % lib_path
|
||||||
_d = {'version':env['MAPNIK_VERSION_STRING'].replace('-pre','')}
|
_d = {'version':env['MAPNIK_VERSION_STRING'].replace('-pre','')}
|
||||||
mapnik_lib_link_flag += ' -current_version %(version)s -compatibility_version %(version)s' % _d
|
mapnik_lib_link_flag += ' -current_version %(version)s -compatibility_version %(version)s' % _d
|
||||||
else: # unix, non-macos
|
else: # unix, non-macos
|
||||||
mapnik_libname = env.subst(env['MAPNIK_LIB_NAME']) + (".%d.%d" % (int(ABI_VERSION[0]),int(ABI_VERSION[1])))
|
mapnik_libname = env.subst(env['MAPNIK_LIB_NAME'])
|
||||||
|
if env['ENABLE_SONAME']:
|
||||||
|
mapnik_libname = env.subst(env['MAPNIK_LIB_NAME']) + (".%d.%d" % (int(ABI_VERSION[0]),int(ABI_VERSION[1])))
|
||||||
if env['PLATFORM'] == 'SunOS':
|
if env['PLATFORM'] == 'SunOS':
|
||||||
if env['CXX'].startswith('CC'):
|
if env['CXX'].startswith('CC'):
|
||||||
mapnik_lib_link_flag += ' -R. -h %s' % mapnik_libname
|
mapnik_lib_link_flag += ' -R. -h %s' % mapnik_libname
|
||||||
|
@ -113,7 +115,13 @@ else: # unix, non-macos
|
||||||
mapnik_lib_link_flag += ' -Wl,-h,%s' % mapnik_libname
|
mapnik_lib_link_flag += ' -Wl,-h,%s' % mapnik_libname
|
||||||
else: # Linux and others
|
else: # Linux and others
|
||||||
lib_env['LIBS'].append('dl')
|
lib_env['LIBS'].append('dl')
|
||||||
mapnik_lib_link_flag += ' -Wl,-rpath-link,. -Wl,-soname,%s' % mapnik_libname
|
mapnik_lib_link_flag += ' -Wl,-rpath-link,.'
|
||||||
|
if env['ENABLE_SONAME']:
|
||||||
|
mapnik_lib_link_flag += ' -Wl,-soname,%s' % mapnik_libname
|
||||||
|
if env['FULL_LIB_PATH']:
|
||||||
|
mapnik_lib_link_flag += ' -Wl,-rpath=%s' % env['MAPNIK_LIB_BASE']
|
||||||
|
else:
|
||||||
|
mapnik_lib_link_flag += ' -Wl,-z,origin -Wl,-rpath=\$$ORIGIN'
|
||||||
|
|
||||||
source = Split(
|
source = Split(
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue