From: Igor Maravic <[email protected]> If env['rtld_origin'] is set to TRUE, makes symlinks for module bins in $BUILDDIR/lib/xorp/sbin, so xorpsh could be run from $BUILDDIR. Also, makes running of xorp_rtrmgr from $BUILDDIR easier.
Signed-off-by: Igor Maravic <[email protected]> --- xorp/bgp/SConscript | 5 +++++ xorp/contrib/mld6igmp_lite/SConscript | 10 ++++++++++ xorp/contrib/olsr/SConscript | 6 +++++- xorp/fea/SConscript | 11 ++++++++++- xorp/fib2mrib/SConscript | 6 +++++- xorp/libxipc/SConscript | 5 +++++ xorp/mld6igmp/SConscript | 9 +++++++++ xorp/ospf/SConscript | 11 ++++++++++- xorp/pim/SConscript | 12 ++++++++++-- xorp/policy/SConscript | 5 +++++ xorp/rib/SConscript | 6 +++++- xorp/rip/SConscript | 10 ++++++++++ xorp/static_routes/SConscript | 5 +++++ xorp/vrrp/SConscript | 6 +++++- 14 files changed, 99 insertions(+), 8 deletions(-) diff --git a/xorp/bgp/SConscript b/xorp/bgp/SConscript index 55f6176..1a49fcf 100644 --- a/xorp/bgp/SConscript +++ b/xorp/bgp/SConscript @@ -190,6 +190,11 @@ bgpsrcs = [ ] bgp = bgp_env.Program(target = 'xorp_bgp', source = bgpsrcs) +if env['rtld_origin']: + for obj in bgp: + env.AddPostAction(bgp, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) bgp_env.Alias('install', bgp_env.InstallProgram(bgp_env['xorp_moduledir'], bgp)) diff --git a/xorp/contrib/mld6igmp_lite/SConscript b/xorp/contrib/mld6igmp_lite/SConscript index 0c82a39..f4379a9 100644 --- a/xorp/contrib/mld6igmp_lite/SConscript +++ b/xorp/contrib/mld6igmp_lite/SConscript @@ -101,9 +101,19 @@ mldlite = env.Program(target = 'xorp_mld_lite', source = mldlitesrcs) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], igmplite)) +if env['rtld_origin']: + for obj in igmplite: + env.AddPostAction(igmplite, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], mldlite)) +if env['rtld_origin']: + for obj in mldlite: + env.AddPostAction(mldlite, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) Default(libmld6igmplite, igmplite, mldlite) diff --git a/xorp/contrib/olsr/SConscript b/xorp/contrib/olsr/SConscript index 888a715..1f7f1c0 100644 --- a/xorp/contrib/olsr/SConscript +++ b/xorp/contrib/olsr/SConscript @@ -150,7 +150,11 @@ olsr4srcs = [ olsr4 = env.Program(target = 'xorp_olsr4', source = olsr4srcs) - +if env['rtld_origin']: + for obj in olsr4: + env.AddPostAction(olsr4, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], olsr4)) Default(libolsr, libolsrxrl, olsr4) diff --git a/xorp/fea/SConscript b/xorp/fea/SConscript index 192f954..4d8fbe0 100644 --- a/xorp/fea/SConscript +++ b/xorp/fea/SConscript @@ -235,7 +235,11 @@ feasrcs = [ ] fea = env.Program(target = 'xorp_fea', source = feasrcs) - +if env['rtld_origin']: + for obj in fea: + env.AddPostAction(fea, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], fea)) ####################### @@ -252,6 +256,11 @@ if env['enable_fea_dummy']: ] feadummy = env.Program(target = 'xorp_fea_dummy', source = feadummysrcs) + if env['rtld_origin']: + for obj in feadummy: + env.AddPostAction(feadummy, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], feadummy)) ####################### diff --git a/xorp/fib2mrib/SConscript b/xorp/fib2mrib/SConscript index 2b50b0a..7e9e9c5 100644 --- a/xorp/fib2mrib/SConscript +++ b/xorp/fib2mrib/SConscript @@ -113,7 +113,11 @@ fib2mribsrcs = [ ] fib2mrib = env.Program(target = 'xorp_fib2mrib', source = fib2mribsrcs) - +if env['rtld_origin']: + for obj in fib2mrib: + env.AddPostAction(fib2mrib, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], fib2mrib)) if is_shared: diff --git a/xorp/libxipc/SConscript b/xorp/libxipc/SConscript index 95d7f4b..0735b94 100644 --- a/xorp/libxipc/SConscript +++ b/xorp/libxipc/SConscript @@ -245,6 +245,11 @@ call_xrl = env.Program(target = 'call_xrl', env.Alias('install', env.InstallProgram('$exec_prefix/sbin/', call_xrl)) if env['enable_tests']: + if env['rtld_origin']: + for obj in xorp_finder: + env.AddPostAction(xorp_finder, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], xorp_finder)) Default(libxipc, libfinder, call_xrl, xorp_finder) diff --git a/xorp/mld6igmp/SConscript b/xorp/mld6igmp/SConscript index 30b202d..566ca94 100644 --- a/xorp/mld6igmp/SConscript +++ b/xorp/mld6igmp/SConscript @@ -125,6 +125,15 @@ mld = env.Program(target = 'xorp_mld', source = mldsrcs) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], igmp)) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], mld)) +if env['rtld_origin']: + for obj in igmp: + env.AddPostAction(igmp, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) + for obj in mld: + env.AddPostAction(mld, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) if is_shared: env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxorp_mld6igmp)) diff --git a/xorp/ospf/SConscript b/xorp/ospf/SConscript index edc25ab..d0d7908 100644 --- a/xorp/ospf/SConscript +++ b/xorp/ospf/SConscript @@ -129,6 +129,11 @@ else: ospfv2srcs = [ 'xorp_ospfv2.cc', ] ospfv2 = env.Program(target = 'xorp_ospfv2', source = ospfv2srcs) +if env['rtld_origin']: + for obj in ospfv2: + env.AddPostAction(ospfv2, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], ospfv2)) if is_shared: @@ -137,7 +142,11 @@ if is_shared: if not (env.has_key('disable_ipv6') and env['disable_ipv6']): ospfv3srcs = [ 'xorp_ospfv3.cc' ] ospfv3 = env.Program(target = 'xorp_ospfv3', source = ospfv3srcs) - + if env['rtld_origin']: + for obj in ospfv3: + env.AddPostAction(ospfv3, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], ospfv3)) Default(ospfv2, ospfv3) else: diff --git a/xorp/pim/SConscript b/xorp/pim/SConscript index ac05531..4b56b05 100644 --- a/xorp/pim/SConscript +++ b/xorp/pim/SConscript @@ -143,7 +143,11 @@ pim4srcs = [ ] pim4 = env.Program(target = 'xorp_pimsm4', source = pim4srcs) - +if env['rtld_origin']: + for obj in pim4: + env.AddPostAction(pim4, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], pim4)) if not (env.has_key('disable_ipv6') and env['disable_ipv6']): @@ -152,7 +156,11 @@ if not (env.has_key('disable_ipv6') and env['disable_ipv6']): ] pim6 = env.Program(target = 'xorp_pimsm6', source = pim6srcs) - + if env['rtld_origin']: + for obj in pim6: + env.AddPostAction(pim6, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], pim6)) diff --git a/xorp/policy/SConscript b/xorp/policy/SConscript index f60e771..6941232 100644 --- a/xorp/policy/SConscript +++ b/xorp/policy/SConscript @@ -136,6 +136,11 @@ else: policysrcs = [ 'xorp_policy.cc', ] policy = env.Program(target = 'xorp_policy', source = policysrcs) +if env['rtld_origin']: + for obj in policy: + env.AddPostAction(policy, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], policy)) Default(libxorp_policy, policy) diff --git a/xorp/rib/SConscript b/xorp/rib/SConscript index ca991ce..cf5af51 100644 --- a/xorp/rib/SConscript +++ b/xorp/rib/SConscript @@ -146,7 +146,11 @@ ribsrcs = [ ] rib = env.Program(target = 'xorp_rib', source = ribsrcs) - +if env['rtld_origin']: + for obj in rib: + env.AddPostAction(rib, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], rib)) if is_shared: diff --git a/xorp/rip/SConscript b/xorp/rip/SConscript index 3807956..0f48182 100644 --- a/xorp/rip/SConscript +++ b/xorp/rip/SConscript @@ -175,6 +175,11 @@ else: LIBS = '') rip = e.Program(target = 'xorp_rip', source = ripsrcs) +if env['rtld_origin']: + for obj in rip: + env.AddPostAction(rip, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) e.Alias('install', e.InstallProgram(e['xorp_moduledir'], rip)) if not (env.has_key('disable_ipv6') and env['disable_ipv6']): @@ -283,6 +288,11 @@ if not (env.has_key('disable_ipv6') and env['disable_ipv6']): LIBS = '') ripng = e.Program(target = 'xorp_ripng', source = ripngsrcs) + if env['rtld_origin']: + for obj in ripng: + env.AddPostAction(ripng, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) e.Alias('install', e.InstallProgram(e['xorp_moduledir'], ripng)) Default(rip, ripng) diff --git a/xorp/static_routes/SConscript b/xorp/static_routes/SConscript index b8d4297..690582e 100644 --- a/xorp/static_routes/SConscript +++ b/xorp/static_routes/SConscript @@ -113,6 +113,11 @@ else: xorp_static_routes = env.Program(target = 'xorp_static_routes', source = xorp_static_routes_srcs) +if env['rtld_origin']: + for obj in xorp_static_routes: + env.AddPostAction(xorp_static_routes, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], xorp_static_routes)) if is_shared: diff --git a/xorp/vrrp/SConscript b/xorp/vrrp/SConscript index e42fdfc..f70799e 100644 --- a/xorp/vrrp/SConscript +++ b/xorp/vrrp/SConscript @@ -99,7 +99,11 @@ vrrpsources = [ 'xorp_vrrp.cc' ] xorp_vrrp = env.Program(target = 'xorp_vrrp', source = vrrpsources) - +if env['rtld_origin']: + for obj in xorp_vrrp: + env.AddPostAction(xorp_vrrp, + env.Symlink(obj.abspath, + os.path.join(env['xorp_alias_moduledir'], str(obj)))) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], xorp_vrrp)) if is_shared: env.Alias('install', env.InstallLibrary(env['xorp_libdir'], libxorp_vrrp)) -- 1.7.5.4 _______________________________________________ Xorp-hackers mailing list [email protected] http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers
