[Xorp-hackers] [PATCH 9/9] xorp: Make symlinks for shared libraries

igorm at etf.rs igorm at etf.rs
Mon Feb 6 09:00:37 PST 2012


From: Igor Maravic <igorm at etf.rs>

Make symlinks to shared libraries, so xorpsh and xorp_rtrmgr could be run from
$BUILDDIR.

Signed-off-by: Igor Maravic <igorm at etf.rs>
---
 xorp/contrib/mld6igmp_lite/SConscript         |    6 ++++++
 xorp/contrib/olsr/SConscript                  |   12 ++++++++++++
 xorp/fea/data_plane/control_socket/SConscript |    5 +++++
 xorp/fea/data_plane/fibconfig/SConscript      |    6 ++++++
 xorp/fea/data_plane/firewall/SConscript       |    6 ++++++
 xorp/fea/data_plane/ifconfig/SConscript       |    6 ++++++
 xorp/fea/data_plane/io/SConscript             |    6 ++++++
 xorp/fea/data_plane/managers/SConscript       |    5 +++++
 8 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/xorp/contrib/mld6igmp_lite/SConscript b/xorp/contrib/mld6igmp_lite/SConscript
index f4379a9..c70d5c4 100644
--- a/xorp/contrib/mld6igmp_lite/SConscript
+++ b/xorp/contrib/mld6igmp_lite/SConscript
@@ -81,6 +81,12 @@ libmld6igmplitesrcs = [
 
 if is_shared:
     libmld6igmplite = env.SharedLibrary(target = 'libmld6igmplite', source = libmld6igmplitesrcs, LIBS = '')
+    if env['rtld_origin']:
+        for obj in libmld6igmplite:
+            env.AddPostAction(libmld6igmplite,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
+
     env.Alias('install',
               env.InstallLibrary(env['xorp_libdir'], libmld6igmplite))
 else:
diff --git a/xorp/contrib/olsr/SConscript b/xorp/contrib/olsr/SConscript
index 1f7f1c0..b4cdba4 100644
--- a/xorp/contrib/olsr/SConscript
+++ b/xorp/contrib/olsr/SConscript
@@ -121,6 +121,12 @@ libolsrsrcs = [
 
 if is_shared:
     libolsr = env.SharedLibrary(target = 'libolsr', source = libolsrsrcs, LIBS = '')
+    if env['rtld_origin']:
+        for obj in libolsr:
+            env.AddPostAction(libolsr,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
+
     env.Alias('install',
               env.InstallLibrary(env['xorp_libdir'], libolsr))
 else:
@@ -137,6 +143,12 @@ libolsrxrlsrcs = [
 
 if is_shared:
     libolsrxrl = env.SharedLibrary(target = 'libolsrxrl', source = libolsrxrlsrcs, LIBS = '')
+    if env['rtld_origin']:
+        for obj in libolsrxrl:
+            env.AddPostAction(libolsrxrl,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
+
     env.Alias('install',
               env.InstallLibrary(env['xorp_libdir'], libolsrxrl))
 else:
diff --git a/xorp/fea/data_plane/control_socket/SConscript b/xorp/fea/data_plane/control_socket/SConscript
index 2d97dde..afb6796 100644
--- a/xorp/fea/data_plane/control_socket/SConscript
+++ b/xorp/fea/data_plane/control_socket/SConscript
@@ -45,6 +45,11 @@ if env['enable_click']:
 if is_shared:
     libxcs = env.SharedLibrary(target = 'libxorp_fea_control_socket',
 			       source = sources)
+    if env['rtld_origin']:
+        for obj in libxcs:
+            env.AddPostAction(libxcs,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
     env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxcs))
 else:
     libxcs = env.StaticLibrary(target = 'libxorp_fea_control_socket',
diff --git a/xorp/fea/data_plane/fibconfig/SConscript b/xorp/fea/data_plane/fibconfig/SConscript
index 5f03308..02b9a23 100644
--- a/xorp/fea/data_plane/fibconfig/SConscript
+++ b/xorp/fea/data_plane/fibconfig/SConscript
@@ -87,6 +87,12 @@ if env['enable_fea_dummy']:
 if is_shared:
     libxfc = env.SharedLibrary(target = 'libxorp_fea_fibconfig',
 			       source = sources)
+    if env['rtld_origin']:
+        for obj in libxfc:
+            env.AddPostAction(libxfc,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
+
     env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxfc))
 else:
     libxfc = env.StaticLibrary(target = 'libxorp_fea_fibconfig',
diff --git a/xorp/fea/data_plane/firewall/SConscript b/xorp/fea/data_plane/firewall/SConscript
index 3e9b59e..1f50e71 100644
--- a/xorp/fea/data_plane/firewall/SConscript
+++ b/xorp/fea/data_plane/firewall/SConscript
@@ -44,6 +44,12 @@ sources = [
 if is_shared:
     libxfw = env.SharedLibrary(target = 'libxorp_fea_firewall',
 			       source = sources)
+    if env['rtld_origin']:
+        for obj in libxfw:
+            env.AddPostAction(libxfw,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
+
     env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxfw))
 else:
     libxfw = env.StaticLibrary(target = 'libxorp_fea_firewall',
diff --git a/xorp/fea/data_plane/ifconfig/SConscript b/xorp/fea/data_plane/ifconfig/SConscript
index 65694d5..241f718 100644
--- a/xorp/fea/data_plane/ifconfig/SConscript
+++ b/xorp/fea/data_plane/ifconfig/SConscript
@@ -69,6 +69,12 @@ if env['enable_fea_dummy']:
 if is_shared:
     libxifc = env.SharedLibrary(target = 'libxorp_fea_ifconfig',
 				source = sources)
+    if env['rtld_origin']:
+        for obj in libxifc:
+            env.AddPostAction(libxifc,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
+
     # XXX missing RPATH.
 else:
     libxifc = env.StaticLibrary(target = 'libxorp_fea_ifconfig',
diff --git a/xorp/fea/data_plane/io/SConscript b/xorp/fea/data_plane/io/SConscript
index ca17bfb..0cd0fdb 100644
--- a/xorp/fea/data_plane/io/SConscript
+++ b/xorp/fea/data_plane/io/SConscript
@@ -45,6 +45,12 @@ if env['enable_fea_dummy']:
 
 if is_shared:
     libxio = env.SharedLibrary(target = 'libxorp_fea_io', source = sources)
+    if env['rtld_origin']:
+        for obj in libxio:
+            env.AddPostAction(libxio,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
+
     env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxio))
 else:
     libxio = env.StaticLibrary(target = 'libxorp_fea_io', source = sources)
diff --git a/xorp/fea/data_plane/managers/SConscript b/xorp/fea/data_plane/managers/SConscript
index 6966787..18ca073 100644
--- a/xorp/fea/data_plane/managers/SConscript
+++ b/xorp/fea/data_plane/managers/SConscript
@@ -45,6 +45,11 @@ if env['enable_fea_dummy']:
 if is_shared:
     libxdpm = env.SharedLibrary(target = 'libxorp_fea_data_plane_managers',
 				source = sources)
+    if env['rtld_origin']:
+        for obj in libxdpm:
+            env.AddPostAction(libxdpm,
+                env.Symlink(obj.abspath,
+                            os.path.join(env['xorp_alias_libdir'], str(obj))))
 else:
     libxdpm = env.StaticLibrary(target = 'libxorp_fea_data_plane_managers',
 				source = sources)
-- 
1.7.5.4



More information about the Xorp-hackers mailing list