[Xorp-hackers] [PATCH 5/9] xorp: Make symlink to module bins in $BUILDDIR/lib/xorp/sbin
igorm at etf.rs
igorm at etf.rs
Mon Feb 6 09:00:33 PST 2012
From: Igor Maravic <igorm at etf.rs>
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 <igorm at etf.rs>
---
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
More information about the Xorp-hackers
mailing list