From: Igor Maravic <[email protected]> Introduced enable_builddirrun flag, so /lib/xorp/{bin, sbin} directories would be built even if rtld_origin is set to false or if shared is set to false. In this folder module and tool binaries are placed so Xorp could be run from BUILD_DIR By default this flag is set to false. Changed BUILD_NOTES according to this.
Signed-off-by: Igor Maravic <[email protected]> --- xorp/BUILD_NOTES | 15 +++------ xorp/SConstruct | 51 ++++++++++++++++++++------------- xorp/bgp/SConscript | 2 +- xorp/bgp/tools/SConscript | 4 +- xorp/cli/tools/SConscript | 2 +- xorp/contrib/mld6igmp_lite/SConscript | 4 +- xorp/contrib/olsr/SConscript | 2 +- xorp/contrib/olsr/tools/SConscript | 2 +- xorp/etc/templates/SConscript | 5 ++- xorp/fea/SConscript | 4 +- xorp/fea/tools/SConscript | 2 +- xorp/fib2mrib/SConscript | 2 +- xorp/libxipc/SConscript | 2 +- xorp/mld6igmp/SConscript | 2 +- xorp/ospf/SConscript | 4 +- xorp/ospf/tools/SConscript | 2 +- xorp/pim/SConscript | 4 +- xorp/policy/SConscript | 2 +- xorp/rib/SConscript | 2 +- xorp/rib/tools/SConscript | 2 +- xorp/rip/SConscript | 4 +- xorp/rip/tools/SConscript | 2 +- xorp/static_routes/SConscript | 2 +- xorp/utils/SConscript | 2 +- xorp/vrrp/SConscript | 2 +- 25 files changed, 67 insertions(+), 60 deletions(-) diff --git a/xorp/BUILD_NOTES b/xorp/BUILD_NOTES index 2688697..2d81ebc 100644 --- a/xorp/BUILD_NOTES +++ b/xorp/BUILD_NOTES @@ -76,23 +76,18 @@ To compile using uSTL instead of standard STL library: eg. "xorp-top-level-directory/obj/<arch>-<os>-<rel>", it is necessary to run command: - scons rtld_origin=true - - By default, rtld_origin is set to "True", so it is enough, - to run command: - - scons + scons enable_builddirrun=true Binaries xorp_rtrmgr and xorpsh, will be compiled in directory obj/<arch>-<os>-<rel>/rtrmgr. Copy of all necessary tool binaries, like "ospf_print_neighbours", are placed inside obj/<arch>-<os>-<rel>/lib/xorp/bin. - Symbolic links for all libraries, are created in - obj/<arch>-<os>-<rel>/lib/xorp/lib. Symbolic links for all modules, like "xorp_ospf", are created in obj/<arch>-<os>-<rel>/lib/xorp/sbin. - This layout of executable binary files, enable us to debug Xorp, - more easily. + All necessary template files will be copied to + obj/<arch>-<os>-<rel>/etc/templates. + This layout of executable binary files and template files, + enable us to debug Xorp, more easily. scons disable_ipv6=yes disable_fw=yes disable_warninglogs=yes \ disable_tracelogs=yes disable_fatallogs=yes disable_infologs=yes \ diff --git a/xorp/SConstruct b/xorp/SConstruct index 234f3c0..700fac9 100644 --- a/xorp/SConstruct +++ b/xorp/SConstruct @@ -82,6 +82,7 @@ vars.AddVariables( BoolVariable('disable_errorlogs', 'Force disable error logs', False), BoolVariable('disable_otherlogs', 'Force disable other logs', False), BoolVariable('disable_profile', 'Disable Xorp Profiler feature', False), + BoolVariable('enable_builddirrun', 'Enable Xorp to run from BUILD_DIR', False), BoolVariable('enable_boost', 'Use BOOST', False), BoolVariable('enable_ustl', 'Use uSTL', False), BoolVariable('enable_bgp', 'Build BGP', True), @@ -273,6 +274,7 @@ print 'Enable FEA Dummy: ', env['enable_fea_dummy'] print 'Enable async method impls: ', env['enable_async_server'] print 'Enable BGP: ', env['enable_bgp'] print 'Enable BuildInfo: ', env['enable_buildinfo'] +print 'Xorp can run from BUILD_DIR: ', env['enable_builddirrun'] print 'Try Enable BOOST: ', env['enable_boost'] print 'Try Enable uSTL : ', env['enable_ustl'] print 'Disable IPv6: ', env['disable_ipv6'] @@ -394,6 +396,12 @@ env['xorp_tooldir'] = env['libdir'] + '/xorp/bin' # tools/* env['xorp_xrlsdir'] = env['datadir'] + '/xrl/targets' # *.xrls env['xorp_sourcedir'] = sourcedir # rtrmgr/util.cc and xif need this +tst = ARGUMENTS.get('enable_builddirrun', False) +if tst and not (tst == "no"): + env['enable_builddirrun'] = True +else: + env['enable_builddirrun'] = False + tst = ARGUMENTS.get('enable_boost', False) if tst and not (tst == "no"): env['enable_boost'] = True @@ -1019,7 +1027,7 @@ if env.has_key('SHAREDLIBS'): os.path.relpath(env.Dir('$xorp_libdir').abspath, env.Dir('$xorp_moduledir').abspath)) -if env['rtld_origin']: +if env['enable_builddirrun']: # # Build a subdirectories for holding symlinks to modules and command binaries, # so that xorpsh and rtrmngr, about to be built, can be run from inside the BUILDDIR. @@ -1027,25 +1035,28 @@ if env['rtld_origin']: # $BUILDIR/lib/bin will contain symlinks to command bins # $BUILDIR/lib/sbin will contain symlinks to module bins # - xorp_alias_moduledir = os.path.join(xorp_alias_subdir, 'sbin') - xorp_alias_tooldir = os.path.join(xorp_alias_subdir, 'bin') - try: - Execute(Mkdir(xorp_alias_moduledir)) - except: - pass - env['xorp_alias_moduledir'] = xorp_alias_moduledir - try: - Execute(Mkdir(xorp_alias_tooldir)) - except: - pass - env['xorp_alias_tooldir'] = xorp_alias_tooldir - #Make subdir $BUILDDIR/etc/templates for holding template files - xorp_alias_templatedir = os.path.join(builddir, 'etc/templates') - try: - Execute(Mkdir(xorp_alias_templatedir)) - except: - pass - env['xorp_alias_templatedir'] = xorp_alias_templatedir + xorp_alias_subdir = os.path.join(builddir, 'lib') + xorp_alias_subdir = os.path.join(xorp_alias_subdir, 'xorp') + xorp_alias_moduledir = os.path.join(xorp_alias_subdir, 'sbin') + xorp_alias_tooldir = os.path.join(xorp_alias_subdir, 'bin') + try: + Execute(Mkdir(xorp_alias_moduledir)) + except: + pass + env['xorp_alias_moduledir'] = xorp_alias_moduledir + try: + Execute(Mkdir(xorp_alias_tooldir)) + except: + pass + env['xorp_alias_tooldir'] = xorp_alias_tooldir + #Make subdir $BUILDDIR/etc/templates for holding template files + xorp_alias_templatedir = os.path.join(builddir, 'etc') + xorp_alias_templatedir = os.path.join(builddir, 'templates') + try: + Execute(Mkdir(xorp_alias_templatedir)) + except: + pass + env['xorp_alias_templatedir'] = xorp_alias_templatedir if not fnmatch.fnmatch(host_os, 'mingw32*'): diff --git a/xorp/bgp/SConscript b/xorp/bgp/SConscript index 1a49fcf..46d89d7 100644 --- a/xorp/bgp/SConscript +++ b/xorp/bgp/SConscript @@ -190,7 +190,7 @@ bgpsrcs = [ ] bgp = bgp_env.Program(target = 'xorp_bgp', source = bgpsrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in bgp: env.AddPostAction(bgp, env.Symlink(obj.abspath, diff --git a/xorp/bgp/tools/SConscript b/xorp/bgp/tools/SConscript index eb13bd1..d71fbdb 100644 --- a/xorp/bgp/tools/SConscript +++ b/xorp/bgp/tools/SConscript @@ -124,7 +124,7 @@ xppeers_srcs = [ ] xppeers = env.Program(target = 'bgp_print_peers', source = xppeers_srcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in xppeers: env.AddPostAction(xppeers, env.Copy(obj.abspath, @@ -140,7 +140,7 @@ xproutes_srcs = [ ] xproutes = env.Program(target = 'bgp_print_routes', source = xproutes_srcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in xproutes: env.AddPostAction(xproutes, env.Copy(obj.abspath, diff --git a/xorp/cli/tools/SConscript b/xorp/cli/tools/SConscript index 7780711..e5b958a 100644 --- a/xorp/cli/tools/SConscript +++ b/xorp/cli/tools/SConscript @@ -81,7 +81,7 @@ sendclisrcs = [ cligen = env.Program(target = 'cli_generic', source = cligensrcs) sendcli = env.Program(target = 'cli_send_processor_xrl', source = sendclisrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in cligen: env.AddPostAction(cligen, env.Copy(obj.abspath, diff --git a/xorp/contrib/mld6igmp_lite/SConscript b/xorp/contrib/mld6igmp_lite/SConscript index c70d5c4..0d9784e 100644 --- a/xorp/contrib/mld6igmp_lite/SConscript +++ b/xorp/contrib/mld6igmp_lite/SConscript @@ -107,7 +107,7 @@ mldlite = env.Program(target = 'xorp_mld_lite', source = mldlitesrcs) env.Alias('install', env.InstallProgram(env['xorp_moduledir'], igmplite)) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in igmplite: env.AddPostAction(igmplite, env.Symlink(obj.abspath, @@ -115,7 +115,7 @@ if env['rtld_origin']: env.Alias('install', env.InstallProgram(env['xorp_moduledir'], mldlite)) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in mldlite: env.AddPostAction(mldlite, env.Symlink(obj.abspath, diff --git a/xorp/contrib/olsr/SConscript b/xorp/contrib/olsr/SConscript index b4cdba4..dcd288d 100644 --- a/xorp/contrib/olsr/SConscript +++ b/xorp/contrib/olsr/SConscript @@ -162,7 +162,7 @@ olsr4srcs = [ olsr4 = env.Program(target = 'xorp_olsr4', source = olsr4srcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in olsr4: env.AddPostAction(olsr4, env.Symlink(obj.abspath, diff --git a/xorp/contrib/olsr/tools/SConscript b/xorp/contrib/olsr/tools/SConscript index c0342d1..6e63a71 100644 --- a/xorp/contrib/olsr/tools/SConscript +++ b/xorp/contrib/olsr/tools/SConscript @@ -83,7 +83,7 @@ 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']: +if env['enable_builddirrun']: for obj in cleardb: env.AddPostAction(cleardb, env.Copy(obj.abspath, diff --git a/xorp/etc/templates/SConscript b/xorp/etc/templates/SConscript index fcab12e..fcf4ea2 100644 --- a/xorp/etc/templates/SConscript +++ b/xorp/etc/templates/SConscript @@ -153,8 +153,9 @@ for tp in tp_raw: Default(all_tp_raw) -if env['rtld_origin']: - template_source_dir = os.path.join(env['xorp_sourcedir'], "etc/templates") +if env['enable_builddirrun']: + template_source_dir = os.path.join(env['xorp_sourcedir'], "etc") + template_source_dir = os.path.join(template_source_dir, "templates") cmd_files = [c.__add__('.cmds') for c in cmds] for obj in cmd_files: diff --git a/xorp/fea/SConscript b/xorp/fea/SConscript index 4d8fbe0..da483ee 100644 --- a/xorp/fea/SConscript +++ b/xorp/fea/SConscript @@ -235,7 +235,7 @@ feasrcs = [ ] fea = env.Program(target = 'xorp_fea', source = feasrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in fea: env.AddPostAction(fea, env.Symlink(obj.abspath, @@ -256,7 +256,7 @@ if env['enable_fea_dummy']: ] feadummy = env.Program(target = 'xorp_fea_dummy', source = feadummysrcs) - if env['rtld_origin']: + if env['enable_builddirrun']: for obj in feadummy: env.AddPostAction(feadummy, env.Symlink(obj.abspath, diff --git a/xorp/fea/tools/SConscript b/xorp/fea/tools/SConscript index 96094c1..4304525 100644 --- a/xorp/fea/tools/SConscript +++ b/xorp/fea/tools/SConscript @@ -82,7 +82,7 @@ showifsrcs = [ ] showif = env.Program(target = 'fea_show_interfaces', source = showifsrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in showif: env.AddPostAction(showif, env.Copy(obj.abspath, diff --git a/xorp/fib2mrib/SConscript b/xorp/fib2mrib/SConscript index 7e9e9c5..57d830e 100644 --- a/xorp/fib2mrib/SConscript +++ b/xorp/fib2mrib/SConscript @@ -113,7 +113,7 @@ fib2mribsrcs = [ ] fib2mrib = env.Program(target = 'xorp_fib2mrib', source = fib2mribsrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in fib2mrib: env.AddPostAction(fib2mrib, env.Symlink(obj.abspath, diff --git a/xorp/libxipc/SConscript b/xorp/libxipc/SConscript index 0735b94..5bbd275 100644 --- a/xorp/libxipc/SConscript +++ b/xorp/libxipc/SConscript @@ -245,7 +245,7 @@ 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']: + if env['enable_builddirrun']: for obj in xorp_finder: env.AddPostAction(xorp_finder, env.Symlink(obj.abspath, diff --git a/xorp/mld6igmp/SConscript b/xorp/mld6igmp/SConscript index 566ca94..54ad030 100644 --- a/xorp/mld6igmp/SConscript +++ b/xorp/mld6igmp/SConscript @@ -125,7 +125,7 @@ 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']: +if env['enable_builddirrun']: for obj in igmp: env.AddPostAction(igmp, env.Symlink(obj.abspath, diff --git a/xorp/ospf/SConscript b/xorp/ospf/SConscript index d0d7908..81cc5d1 100644 --- a/xorp/ospf/SConscript +++ b/xorp/ospf/SConscript @@ -129,7 +129,7 @@ else: ospfv2srcs = [ 'xorp_ospfv2.cc', ] ospfv2 = env.Program(target = 'xorp_ospfv2', source = ospfv2srcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in ospfv2: env.AddPostAction(ospfv2, env.Symlink(obj.abspath, @@ -142,7 +142,7 @@ 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']: + if env['enable_builddirrun']: for obj in ospfv3: env.AddPostAction(ospfv3, env.Symlink(obj.abspath, diff --git a/xorp/ospf/tools/SConscript b/xorp/ospf/tools/SConscript index cad0ecc..04c4783 100644 --- a/xorp/ospf/tools/SConscript +++ b/xorp/ospf/tools/SConscript @@ -95,7 +95,7 @@ printlsas = env.Program(target = 'ospf_print_lsas', source = printlsassrcs) printneighbors = env.Program(target = 'ospf_print_neighbours', source = printneighborssrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in cleardb: env.AddPostAction(cleardb, env.Copy(obj.abspath, diff --git a/xorp/pim/SConscript b/xorp/pim/SConscript index 4b56b05..d0e8ba9 100644 --- a/xorp/pim/SConscript +++ b/xorp/pim/SConscript @@ -143,7 +143,7 @@ pim4srcs = [ ] pim4 = env.Program(target = 'xorp_pimsm4', source = pim4srcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in pim4: env.AddPostAction(pim4, env.Symlink(obj.abspath, @@ -156,7 +156,7 @@ if not (env.has_key('disable_ipv6') and env['disable_ipv6']): ] pim6 = env.Program(target = 'xorp_pimsm6', source = pim6srcs) - if env['rtld_origin']: + if env['enable_builddirrun']: for obj in pim6: env.AddPostAction(pim6, env.Symlink(obj.abspath, diff --git a/xorp/policy/SConscript b/xorp/policy/SConscript index 6941232..b6dc68c 100644 --- a/xorp/policy/SConscript +++ b/xorp/policy/SConscript @@ -136,7 +136,7 @@ else: policysrcs = [ 'xorp_policy.cc', ] policy = env.Program(target = 'xorp_policy', source = policysrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in policy: env.AddPostAction(policy, env.Symlink(obj.abspath, diff --git a/xorp/rib/SConscript b/xorp/rib/SConscript index cf5af51..466ae9c 100644 --- a/xorp/rib/SConscript +++ b/xorp/rib/SConscript @@ -146,7 +146,7 @@ ribsrcs = [ ] rib = env.Program(target = 'xorp_rib', source = ribsrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in rib: env.AddPostAction(rib, env.Symlink(obj.abspath, diff --git a/xorp/rib/tools/SConscript b/xorp/rib/tools/SConscript index 6e676a3..dc18743 100644 --- a/xorp/rib/tools/SConscript +++ b/xorp/rib/tools/SConscript @@ -86,7 +86,7 @@ shrtessrcs = [ shdist = env.Program(target = 'rib_show_distances', source = shdistsrcs) shrtes = env.Program(target = 'rib_show_routes', source = shrtessrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in shdist: env.AddPostAction(shdist, env.Copy(obj.abspath, diff --git a/xorp/rip/SConscript b/xorp/rip/SConscript index 0f48182..98727d5 100644 --- a/xorp/rip/SConscript +++ b/xorp/rip/SConscript @@ -175,7 +175,7 @@ else: LIBS = '') rip = e.Program(target = 'xorp_rip', source = ripsrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in rip: env.AddPostAction(rip, env.Symlink(obj.abspath, @@ -288,7 +288,7 @@ if not (env.has_key('disable_ipv6') and env['disable_ipv6']): LIBS = '') ripng = e.Program(target = 'xorp_ripng', source = ripngsrcs) - if env['rtld_origin']: + if env['enable_builddirrun']: for obj in ripng: env.AddPostAction(ripng, env.Symlink(obj.abspath, diff --git a/xorp/rip/tools/SConscript b/xorp/rip/tools/SConscript index b4676d1..7980646 100644 --- a/xorp/rip/tools/SConscript +++ b/xorp/rip/tools/SConscript @@ -73,7 +73,7 @@ shstatssrcs = [ shpeer = env.Program(target = 'rip_show_peer_stats', source = shpeersrcs) shstats = env.Program(target = 'rip_show_stats', source = shstatssrcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in shpeer: env.AddPostAction(shpeer, env.Copy(obj.abspath, diff --git a/xorp/static_routes/SConscript b/xorp/static_routes/SConscript index 690582e..583432a 100644 --- a/xorp/static_routes/SConscript +++ b/xorp/static_routes/SConscript @@ -113,7 +113,7 @@ else: xorp_static_routes = env.Program(target = 'xorp_static_routes', source = xorp_static_routes_srcs) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in xorp_static_routes: env.AddPostAction(xorp_static_routes, env.Symlink(obj.abspath, diff --git a/xorp/utils/SConscript b/xorp/utils/SConscript index 336c048..88e5cd6 100644 --- a/xorp/utils/SConscript +++ b/xorp/utils/SConscript @@ -51,7 +51,7 @@ runit_srcs = [ runit = env.Program(target = 'runit', source = runit_srcs) if env['enable_tests']: - if env['rtld_origin']: + if env['enable_builddirrun']: for obj in runit: env.AddPostAction(runit, env.Symlink(obj.abspath, diff --git a/xorp/vrrp/SConscript b/xorp/vrrp/SConscript index f70799e..56795ad 100644 --- a/xorp/vrrp/SConscript +++ b/xorp/vrrp/SConscript @@ -99,7 +99,7 @@ vrrpsources = [ 'xorp_vrrp.cc' ] xorp_vrrp = env.Program(target = 'xorp_vrrp', source = vrrpsources) -if env['rtld_origin']: +if env['enable_builddirrun']: for obj in xorp_vrrp: env.AddPostAction(xorp_vrrp, env.Symlink(obj.abspath, -- 1.7.5.4 _______________________________________________ Xorp-hackers mailing list [email protected] http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers
