[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