From: Igor Maravic <[email protected]> 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 <[email protected]> --- 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 _______________________________________________ Xorp-hackers mailing list [email protected] http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers
