[Xorp-hackers] [PATCH 6/9] xorp: Make symlinks to command bins in $BUILDDIR/lib/xorp/bin

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


From: Igor Maravic <igorm at etf.rs>

If env['rtld_origin'] is set to TRUE, makes symlinks to command
bins in $BUILDDIR/lib/xorp/bin, so the xorpsh could be run from
$BUILDDIR. Also, makes running of xorp_rtrmgr from $BUILDDIR easier.

Signed-off-by: Igor Maravic <igorm at etf.rs>
---
 xorp/bgp/tools/SConscript          |   10 ++++++++++
 xorp/cli/tools/SConscript          |   10 +++++++++-
 xorp/contrib/olsr/tools/SConscript |   10 +++++++++-
 xorp/fea/tools/SConscript          |    6 +++++-
 xorp/ospf/tools/SConscript         |   14 +++++++++++++-
 xorp/rib/tools/SConscript          |   10 +++++++++-
 xorp/rip/tools/SConscript          |   10 +++++++++-
 xorp/utils/SConscript              |    5 +++++
 8 files changed, 69 insertions(+), 6 deletions(-)

diff --git a/xorp/bgp/tools/SConscript b/xorp/bgp/tools/SConscript
index eba4f1a..62875a8 100644
--- a/xorp/bgp/tools/SConscript
+++ b/xorp/bgp/tools/SConscript
@@ -124,6 +124,11 @@ xppeers_srcs = [
 	]
 
 xppeers = env.Program(target = 'bgp_print_peers', source = xppeers_srcs)
+if env['rtld_origin']:
+    for obj in xppeers:
+        env.AddPostAction(xppeers,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install',
     env.InstallProgram(env['xorp_tooldir'], xppeers))
 
@@ -135,6 +140,11 @@ xproutes_srcs = [
 	]
 
 xproutes = env.Program(target = 'bgp_print_routes', source = xproutes_srcs)
+if env['rtld_origin']:
+    for obj in xproutes:
+        env.AddPostAction(xproutes,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], xproutes))
 
 Default(xppeers, xproutes)
diff --git a/xorp/cli/tools/SConscript b/xorp/cli/tools/SConscript
index 0a14b66..d1fdfc0 100644
--- a/xorp/cli/tools/SConscript
+++ b/xorp/cli/tools/SConscript
@@ -81,7 +81,15 @@ sendclisrcs = [
 
 cligen = env.Program(target = 'cli_generic', source = cligensrcs)
 sendcli = env.Program(target = 'cli_send_processor_xrl', source = sendclisrcs)
-
+if env['rtld_origin']:
+    for obj in cligen:
+        env.AddPostAction(cligen,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
+    for obj in sendcli:
+        env.AddPostAction(sendcli,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], cligen))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], sendcli))
 
diff --git a/xorp/contrib/olsr/tools/SConscript b/xorp/contrib/olsr/tools/SConscript
index 14b5fce..6a61597 100644
--- a/xorp/contrib/olsr/tools/SConscript
+++ b/xorp/contrib/olsr/tools/SConscript
@@ -83,7 +83,15 @@ cleardb = env.Program(target = 'olsr_clear_database', source = cleardbsrcs)
 printdb = env.Program(target = 'olsr_print_databases', source = printdbsrcs)
 
 #olsrtoolpath = '$exec_prefix/contrib/olsr/tools'
-
+if env['rtld_origin']:
+    for obj in cleardb:
+        env.AddPostAction(cleardb,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
+    for obj in printdb:
+        env.AddPostAction(printdb,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], cleardb))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], printdb))
 
diff --git a/xorp/fea/tools/SConscript b/xorp/fea/tools/SConscript
index 6ae06e5..a0c2cdf 100644
--- a/xorp/fea/tools/SConscript
+++ b/xorp/fea/tools/SConscript
@@ -82,7 +82,11 @@ showifsrcs = [
     ]
 
 showif = env.Program(target = 'fea_show_interfaces', source = showifsrcs)
-
+if env['rtld_origin']:
+    for obj in showif:
+        env.AddPostAction(showif,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], showif))
 
 Default(showif)
diff --git a/xorp/ospf/tools/SConscript b/xorp/ospf/tools/SConscript
index 8b7047d..f7a86f4 100644
--- a/xorp/ospf/tools/SConscript
+++ b/xorp/ospf/tools/SConscript
@@ -95,7 +95,19 @@ printlsas = env.Program(target = 'ospf_print_lsas',
 			source = printlsassrcs)
 printneighbors = env.Program(target = 'ospf_print_neighbours',
 			     source = printneighborssrcs)
-
+if env['rtld_origin']:
+    for obj in cleardb:
+        env.AddPostAction(cleardb,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
+    for obj in printlsas:
+        env.AddPostAction(printlsas,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
+    for obj in printneighbors:
+        env.AddPostAction(printneighbors,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], cleardb))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], printlsas))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], printneighbors))
diff --git a/xorp/rib/tools/SConscript b/xorp/rib/tools/SConscript
index 134264b..1697798 100644
--- a/xorp/rib/tools/SConscript
+++ b/xorp/rib/tools/SConscript
@@ -86,7 +86,15 @@ shrtessrcs = [
 
 shdist = env.Program(target = 'rib_show_distances', source = shdistsrcs)
 shrtes = env.Program(target = 'rib_show_routes', source = shrtessrcs)
-
+if env['rtld_origin']:
+    for obj in shdist:
+        env.AddPostAction(shdist,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
+    for obj in shrtes:
+        env.AddPostAction(shrtes,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], shdist))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], shrtes))
 
diff --git a/xorp/rip/tools/SConscript b/xorp/rip/tools/SConscript
index 2c291b4..96d6075 100644
--- a/xorp/rip/tools/SConscript
+++ b/xorp/rip/tools/SConscript
@@ -73,7 +73,15 @@ shstatssrcs = [
 
 shpeer = env.Program(target = 'rip_show_peer_stats', source = shpeersrcs)
 shstats = env.Program(target = 'rip_show_stats', source = shstatssrcs)
-
+if env['rtld_origin']:
+    for obj in shpeer:
+        env.AddPostAction(shpeer,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
+    for obj in shstats:
+        env.AddPostAction(shstats,
+            env.Symlink(obj.abspath,
+                        os.path.join(env['xorp_alias_tooldir'], str(obj))))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], shpeer))
 env.Alias('install', env.InstallProgram(env['xorp_tooldir'], shstats))
 
diff --git a/xorp/utils/SConscript b/xorp/utils/SConscript
index d5c1a05..336c048 100644
--- a/xorp/utils/SConscript
+++ b/xorp/utils/SConscript
@@ -51,6 +51,11 @@ runit_srcs = [
 runit = env.Program(target = 'runit', source = runit_srcs)
 
 if env['enable_tests']:
+    if env['rtld_origin']:
+        for obj in runit:
+            env.AddPostAction(runit,
+                env.Symlink(obj.abspath,
+                    os.path.join(env['xorp_alias_tooldir'], str(obj))))
     env.Alias('install', env.InstallProgram(env['xorp_tooldir'], runit))
 
 # Install scripts
-- 
1.7.5.4



More information about the Xorp-hackers mailing list