All pastes #1195062 Raw Edit

Diff

public text v1 · immutable
#1195062 ·published 2008-09-05 18:42 UTC
rendered paste body
diff -r 672f2a6de8b4 src/internet-stack/wscript--- a/src/internet-stack/wscript	Fri Sep 05 18:42:59 2008 +0100+++ b/src/internet-stack/wscript	Fri Sep 05 19:42:16 2008 +0100@@ -1,9 +1,23 @@ ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- import Params+import Task import os  # Mercurial repository of the network simulation cradle NETWORK_SIMULATION_CRADLE_REPO = "https://secure.wand.net.nz/mercurial/nsc"++# directory that contains network simulation cradle source+# note, this path is relative to the project root+NSC_DIR = "nsc"+++def set_options(opt):+    opt.add_option('--nsc',+                   help=('Enable Network Simulation Cradle to allow the use real-world network stacks'),+                   action="store_true", default=False,+                   dest='nsc')++ def nsc_fetch():     def nsc_clone():         print "Retrieving nsc from " + NETWORK_SIMULATION_CRADLE_REPO@@ -62,6 +76,26 @@     nsc_fetch()  ++class NscBuildTask(Task.TaskBase):+    """task that builds nsc+    """+    def __init__(self):+        self.m_display = 'build-nsc'+        self.prio = 1000 # build after the rest of ns-3+        super(NscBuildTask, self).__init__()++    def run(self):+        # XXX: Detect gcc major version(s) available to build supported stacks+        kernels = [['linux-2.6.18', 'linux2.6.18'],+                   ['linux-2.6.26', 'linux2.6.26']]+        for dir, name in kernels:+            soname = 'lib' + name + '.so'+            if not os.path.exists(os.path.join("..", NSC_DIR, dir, soname)):+                if os.system('cd ../%s && python scons.py %s' % (NSC_DIR, dir)) != 0:+                    Params.fatal("Building NSC stack failed")+        + def build(bld):     obj = bld.create_ns3_module('internet-stack', ['node'])     obj.source = [@@ -110,3 +144,5 @@         obj.source.append ('nsc-tcp-socket-factory-impl.cc')         obj.source.append ('nsc-sysctl.cc')         obj.uselib = 'DL'+        +        NscBuildTask()diff -r 672f2a6de8b4 wscript--- a/wscript	Fri Sep 05 18:42:59 2008 +0100+++ b/wscript	Fri Sep 05 19:42:16 2008 +0100@@ -55,8 +55,6 @@ # TRACEBALL_SUFFIX = ".tar.bz2" -# directory that contains network simulation cradle source-NSC_DIR = "nsc"  def dist_hook():     import tarfile@@ -168,14 +166,11 @@                    help=('For regression testing, only run/generate the indicated regression tests, '                          'specified as a comma separated list of test names'),                    dest='regression_tests', type="string")-    opt.add_option('--nsc',-                   help=('Enable Network Simulation Cradle to allow the use real-world network stacks'),-                   action="store_true", default=False,-                   dest='nsc')      # options provided in a script in a subdirectory named "src"     opt.sub_options('src')     opt.sub_options('bindings/python')+    opt.sub_options('src/internet-stack')   def check_compilation_flag(conf, flag):@@ -329,28 +324,6 @@     return stat >> 8  -def nsc_build(bld):-    # XXX: Detect gcc major version(s) available to build supported stacks-    kernels = [['linux-2.6.18', 'linux2.6.18'],-               ['linux-2.6.26', 'linux2.6.26']]-    for dir,name in kernels:-        soname = 'lib' + name + '.so'-        tmp = NSC_DIR + '/' + dir +'/' + soname-        if not os.path.exists(tmp):-            if os.system('cd ' + NSC_DIR + ' && python scons.py ' + dir) != 0:-                Params.fatal("Building NSC stack failed")-        builddir = os.path.abspath(os.path.join(bld.env()['NS3_BUILDDIR'], bld.env ().variant()))-        if not os.path.exists(builddir + '/nsc'):-            try:-                os.symlink('../../' + NSC_DIR, builddir + '/nsc')-            except:-                Params.fatal("Error linkink " + builddir + '/nsc')-        if not os.path.exists(builddir + '/' + soname):-            try:-                os.symlink('../../' + NSC_DIR + '/' + dir + '/' + soname, builddir +  '/' + soname)-            except:-                Params.fatal("Error linking " + builddir + '/' + soname)- def build(bld):     if Params.g_options.no_task_lines:         import Runner@@ -440,8 +413,6 @@      bld.add_subdirs('bindings/python') -    if env['NSC_ENABLED'] == 'yes':-        nsc_build(bld)  def get_command_template(*arguments):     if Params.g_options.valgrind: