Create separate module and test-module libraries

This commit is contained in:
Mitch Watrous
2011-03-18 10:58:21 -07:00
parent 403e100f56
commit 28384516a2
41 changed files with 1578 additions and 101 deletions

View File

@@ -17,6 +17,8 @@ def register_types(module):
module.add_class('GnuplotCollection')
## gnuplot.h: ns3::GnuplotDataset [class]
module.add_class('GnuplotDataset')
## gtk-config-store.h: ns3::GtkConfigStore [class]
module.add_class('GtkConfigStore')
## file-config.h: ns3::NoneFileConfig [class]
module.add_class('NoneFileConfig', parent=root_module['ns3::FileConfig'])
## config-store.h: ns3::ConfigStore [class]
@@ -138,6 +140,7 @@ def register_methods(root_module):
register_Ns3Gnuplot_methods(root_module, root_module['ns3::Gnuplot'])
register_Ns3GnuplotCollection_methods(root_module, root_module['ns3::GnuplotCollection'])
register_Ns3GnuplotDataset_methods(root_module, root_module['ns3::GnuplotDataset'])
register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig'])
register_Ns3ConfigStore_methods(root_module, root_module['ns3::ConfigStore'])
register_Ns3FlowIdTag_methods(root_module, root_module['ns3::FlowIdTag'])
@@ -362,6 +365,21 @@ def register_Ns3GnuplotDataset_methods(root_module, cls):
visibility='protected')
return
def register_Ns3GtkConfigStore_methods(root_module, cls):
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore() [constructor]
cls.add_constructor([])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureAttributes() [member function]
cls.add_method('ConfigureAttributes',
'void',
[])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureDefaults() [member function]
cls.add_method('ConfigureDefaults',
'void',
[])
return
def register_Ns3NoneFileConfig_methods(root_module, cls):
## file-config.h: ns3::NoneFileConfig::NoneFileConfig(ns3::NoneFileConfig const & arg0) [copy constructor]
cls.add_constructor([param('ns3::NoneFileConfig const &', 'arg0')])

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -13,6 +13,7 @@ pybindgen.settings.error_handler = ErrorHandler()
import sys
import ns3_module_core
import ns3_module_core_test
import ns3_module_network
import ns3_module_test
import ns3_module_visualizer
@@ -21,6 +22,7 @@ import ns3_module_contrib
import ns3_module_emu
import ns3_module_mobility
import ns3_module_mpi
import ns3_module_network_test
import ns3_module_stats
import ns3_module_topology_read
import ns3_module_propagation
@@ -43,10 +45,12 @@ import ns3_module_csma
import ns3_module_uan
import ns3_module_aodv
import ns3_module_dsdv
import ns3_module_ns3wifi_test
import ns3_module_wimax
import ns3_module_ns3tcp
import ns3_module_olsr
import ns3_module_lte
import ns3_module_ns3tcp_test
def module_init():
root_module = Module('ns3', cpp_namespace='::ns3')
@@ -66,6 +70,17 @@ def register_types(module):
ns3_module_core__local.register_types(module)
root_module.end_section('ns3_module_core')
root_module.begin_section('ns3_module_core_test')
ns3_module_core_test.register_types(module)
try:
import ns3_module_core_test__local
except ImportError:
pass
else:
ns3_module_core_test__local.register_types(module)
root_module.end_section('ns3_module_core_test')
root_module.begin_section('ns3_module_network')
ns3_module_network.register_types(module)
@@ -154,6 +169,17 @@ def register_types(module):
ns3_module_mpi__local.register_types(module)
root_module.end_section('ns3_module_mpi')
root_module.begin_section('ns3_module_network_test')
ns3_module_network_test.register_types(module)
try:
import ns3_module_network_test__local
except ImportError:
pass
else:
ns3_module_network_test__local.register_types(module)
root_module.end_section('ns3_module_network_test')
root_module.begin_section('ns3_module_stats')
ns3_module_stats.register_types(module)
@@ -396,6 +422,17 @@ def register_types(module):
ns3_module_dsdv__local.register_types(module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_ns3wifi_test')
ns3_module_ns3wifi_test.register_types(module)
try:
import ns3_module_ns3wifi_test__local
except ImportError:
pass
else:
ns3_module_ns3wifi_test__local.register_types(module)
root_module.end_section('ns3_module_ns3wifi_test')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_types(module)
@@ -440,6 +477,17 @@ def register_types(module):
ns3_module_lte__local.register_types(module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_ns3tcp_test')
ns3_module_ns3tcp_test.register_types(module)
try:
import ns3_module_ns3tcp_test__local
except ImportError:
pass
else:
ns3_module_ns3tcp_test__local.register_types(module)
root_module.end_section('ns3_module_ns3tcp_test')
module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
module.add_container('std::vector< bool >', 'bool', container_type='vector')
module.add_container('std::vector< int >', 'int', container_type='vector')
@@ -564,6 +612,17 @@ def register_methods(root_module):
ns3_module_core__local.register_methods(root_module)
root_module.end_section('ns3_module_core')
root_module.begin_section('ns3_module_core_test')
ns3_module_core_test.register_methods(root_module)
try:
import ns3_module_core_test__local
except ImportError:
pass
else:
ns3_module_core_test__local.register_methods(root_module)
root_module.end_section('ns3_module_core_test')
root_module.begin_section('ns3_module_network')
ns3_module_network.register_methods(root_module)
@@ -652,6 +711,17 @@ def register_methods(root_module):
ns3_module_mpi__local.register_methods(root_module)
root_module.end_section('ns3_module_mpi')
root_module.begin_section('ns3_module_network_test')
ns3_module_network_test.register_methods(root_module)
try:
import ns3_module_network_test__local
except ImportError:
pass
else:
ns3_module_network_test__local.register_methods(root_module)
root_module.end_section('ns3_module_network_test')
root_module.begin_section('ns3_module_stats')
ns3_module_stats.register_methods(root_module)
@@ -894,6 +964,17 @@ def register_methods(root_module):
ns3_module_dsdv__local.register_methods(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_ns3wifi_test')
ns3_module_ns3wifi_test.register_methods(root_module)
try:
import ns3_module_ns3wifi_test__local
except ImportError:
pass
else:
ns3_module_ns3wifi_test__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3wifi_test')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_methods(root_module)
@@ -938,6 +1019,17 @@ def register_methods(root_module):
ns3_module_lte__local.register_methods(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_ns3tcp_test')
ns3_module_ns3tcp_test.register_methods(root_module)
try:
import ns3_module_ns3tcp_test__local
except ImportError:
pass
else:
ns3_module_ns3tcp_test__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3tcp_test')
return
def register_functions(root_module):
@@ -953,6 +1045,17 @@ def register_functions(root_module):
ns3_module_core__local.register_functions(root_module)
root_module.end_section('ns3_module_core')
root_module.begin_section('ns3_module_core_test')
ns3_module_core_test.register_functions(root_module)
try:
import ns3_module_core_test__local
except ImportError:
pass
else:
ns3_module_core_test__local.register_functions(root_module)
root_module.end_section('ns3_module_core_test')
root_module.begin_section('ns3_module_network')
ns3_module_network.register_functions(root_module)
@@ -1041,6 +1144,17 @@ def register_functions(root_module):
ns3_module_mpi__local.register_functions(root_module)
root_module.end_section('ns3_module_mpi')
root_module.begin_section('ns3_module_network_test')
ns3_module_network_test.register_functions(root_module)
try:
import ns3_module_network_test__local
except ImportError:
pass
else:
ns3_module_network_test__local.register_functions(root_module)
root_module.end_section('ns3_module_network_test')
root_module.begin_section('ns3_module_stats')
ns3_module_stats.register_functions(root_module)
@@ -1283,6 +1397,17 @@ def register_functions(root_module):
ns3_module_dsdv__local.register_functions(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_ns3wifi_test')
ns3_module_ns3wifi_test.register_functions(root_module)
try:
import ns3_module_ns3wifi_test__local
except ImportError:
pass
else:
ns3_module_ns3wifi_test__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3wifi_test')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_functions(root_module)
@@ -1327,6 +1452,17 @@ def register_functions(root_module):
ns3_module_lte__local.register_functions(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_ns3tcp_test')
ns3_module_ns3tcp_test.register_functions(root_module)
try:
import ns3_module_ns3tcp_test__local
except ImportError:
pass
else:
ns3_module_ns3tcp_test__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3tcp_test')
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)

View File

@@ -17,6 +17,8 @@ def register_types(module):
module.add_class('GnuplotCollection')
## gnuplot.h: ns3::GnuplotDataset [class]
module.add_class('GnuplotDataset')
## gtk-config-store.h: ns3::GtkConfigStore [class]
module.add_class('GtkConfigStore')
## file-config.h: ns3::NoneFileConfig [class]
module.add_class('NoneFileConfig', parent=root_module['ns3::FileConfig'])
## config-store.h: ns3::ConfigStore [class]
@@ -138,6 +140,7 @@ def register_methods(root_module):
register_Ns3Gnuplot_methods(root_module, root_module['ns3::Gnuplot'])
register_Ns3GnuplotCollection_methods(root_module, root_module['ns3::GnuplotCollection'])
register_Ns3GnuplotDataset_methods(root_module, root_module['ns3::GnuplotDataset'])
register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig'])
register_Ns3ConfigStore_methods(root_module, root_module['ns3::ConfigStore'])
register_Ns3FlowIdTag_methods(root_module, root_module['ns3::FlowIdTag'])
@@ -362,6 +365,21 @@ def register_Ns3GnuplotDataset_methods(root_module, cls):
visibility='protected')
return
def register_Ns3GtkConfigStore_methods(root_module, cls):
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore() [constructor]
cls.add_constructor([])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureAttributes() [member function]
cls.add_method('ConfigureAttributes',
'void',
[])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureDefaults() [member function]
cls.add_method('ConfigureDefaults',
'void',
[])
return
def register_Ns3NoneFileConfig_methods(root_module, cls):
## file-config.h: ns3::NoneFileConfig::NoneFileConfig(ns3::NoneFileConfig const & arg0) [copy constructor]
cls.add_constructor([param('ns3::NoneFileConfig const &', 'arg0')])

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -13,6 +13,7 @@ pybindgen.settings.error_handler = ErrorHandler()
import sys
import ns3_module_core
import ns3_module_core_test
import ns3_module_network
import ns3_module_test
import ns3_module_visualizer
@@ -21,6 +22,7 @@ import ns3_module_contrib
import ns3_module_emu
import ns3_module_mobility
import ns3_module_mpi
import ns3_module_network_test
import ns3_module_stats
import ns3_module_topology_read
import ns3_module_propagation
@@ -43,10 +45,12 @@ import ns3_module_csma
import ns3_module_uan
import ns3_module_aodv
import ns3_module_dsdv
import ns3_module_ns3wifi_test
import ns3_module_wimax
import ns3_module_ns3tcp
import ns3_module_olsr
import ns3_module_lte
import ns3_module_ns3tcp_test
def module_init():
root_module = Module('ns3', cpp_namespace='::ns3')
@@ -66,6 +70,17 @@ def register_types(module):
ns3_module_core__local.register_types(module)
root_module.end_section('ns3_module_core')
root_module.begin_section('ns3_module_core_test')
ns3_module_core_test.register_types(module)
try:
import ns3_module_core_test__local
except ImportError:
pass
else:
ns3_module_core_test__local.register_types(module)
root_module.end_section('ns3_module_core_test')
root_module.begin_section('ns3_module_network')
ns3_module_network.register_types(module)
@@ -154,6 +169,17 @@ def register_types(module):
ns3_module_mpi__local.register_types(module)
root_module.end_section('ns3_module_mpi')
root_module.begin_section('ns3_module_network_test')
ns3_module_network_test.register_types(module)
try:
import ns3_module_network_test__local
except ImportError:
pass
else:
ns3_module_network_test__local.register_types(module)
root_module.end_section('ns3_module_network_test')
root_module.begin_section('ns3_module_stats')
ns3_module_stats.register_types(module)
@@ -396,6 +422,17 @@ def register_types(module):
ns3_module_dsdv__local.register_types(module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_ns3wifi_test')
ns3_module_ns3wifi_test.register_types(module)
try:
import ns3_module_ns3wifi_test__local
except ImportError:
pass
else:
ns3_module_ns3wifi_test__local.register_types(module)
root_module.end_section('ns3_module_ns3wifi_test')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_types(module)
@@ -440,6 +477,17 @@ def register_types(module):
ns3_module_lte__local.register_types(module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_ns3tcp_test')
ns3_module_ns3tcp_test.register_types(module)
try:
import ns3_module_ns3tcp_test__local
except ImportError:
pass
else:
ns3_module_ns3tcp_test__local.register_types(module)
root_module.end_section('ns3_module_ns3tcp_test')
module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
module.add_container('std::vector< bool >', 'bool', container_type='vector')
module.add_container('std::vector< int >', 'int', container_type='vector')
@@ -564,6 +612,17 @@ def register_methods(root_module):
ns3_module_core__local.register_methods(root_module)
root_module.end_section('ns3_module_core')
root_module.begin_section('ns3_module_core_test')
ns3_module_core_test.register_methods(root_module)
try:
import ns3_module_core_test__local
except ImportError:
pass
else:
ns3_module_core_test__local.register_methods(root_module)
root_module.end_section('ns3_module_core_test')
root_module.begin_section('ns3_module_network')
ns3_module_network.register_methods(root_module)
@@ -652,6 +711,17 @@ def register_methods(root_module):
ns3_module_mpi__local.register_methods(root_module)
root_module.end_section('ns3_module_mpi')
root_module.begin_section('ns3_module_network_test')
ns3_module_network_test.register_methods(root_module)
try:
import ns3_module_network_test__local
except ImportError:
pass
else:
ns3_module_network_test__local.register_methods(root_module)
root_module.end_section('ns3_module_network_test')
root_module.begin_section('ns3_module_stats')
ns3_module_stats.register_methods(root_module)
@@ -894,6 +964,17 @@ def register_methods(root_module):
ns3_module_dsdv__local.register_methods(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_ns3wifi_test')
ns3_module_ns3wifi_test.register_methods(root_module)
try:
import ns3_module_ns3wifi_test__local
except ImportError:
pass
else:
ns3_module_ns3wifi_test__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3wifi_test')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_methods(root_module)
@@ -938,6 +1019,17 @@ def register_methods(root_module):
ns3_module_lte__local.register_methods(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_ns3tcp_test')
ns3_module_ns3tcp_test.register_methods(root_module)
try:
import ns3_module_ns3tcp_test__local
except ImportError:
pass
else:
ns3_module_ns3tcp_test__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3tcp_test')
return
def register_functions(root_module):
@@ -953,6 +1045,17 @@ def register_functions(root_module):
ns3_module_core__local.register_functions(root_module)
root_module.end_section('ns3_module_core')
root_module.begin_section('ns3_module_core_test')
ns3_module_core_test.register_functions(root_module)
try:
import ns3_module_core_test__local
except ImportError:
pass
else:
ns3_module_core_test__local.register_functions(root_module)
root_module.end_section('ns3_module_core_test')
root_module.begin_section('ns3_module_network')
ns3_module_network.register_functions(root_module)
@@ -1041,6 +1144,17 @@ def register_functions(root_module):
ns3_module_mpi__local.register_functions(root_module)
root_module.end_section('ns3_module_mpi')
root_module.begin_section('ns3_module_network_test')
ns3_module_network_test.register_functions(root_module)
try:
import ns3_module_network_test__local
except ImportError:
pass
else:
ns3_module_network_test__local.register_functions(root_module)
root_module.end_section('ns3_module_network_test')
root_module.begin_section('ns3_module_stats')
ns3_module_stats.register_functions(root_module)
@@ -1283,6 +1397,17 @@ def register_functions(root_module):
ns3_module_dsdv__local.register_functions(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_ns3wifi_test')
ns3_module_ns3wifi_test.register_functions(root_module)
try:
import ns3_module_ns3wifi_test__local
except ImportError:
pass
else:
ns3_module_ns3wifi_test__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3wifi_test')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_functions(root_module)
@@ -1327,6 +1452,17 @@ def register_functions(root_module):
ns3_module_lte__local.register_functions(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_ns3tcp_test')
ns3_module_ns3tcp_test.register_functions(root_module)
try:
import ns3_module_ns3tcp_test__local
except ImportError:
pass
else:
ns3_module_ns3tcp_test__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3tcp_test')
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)

View File

@@ -704,7 +704,10 @@ def build(bld):
bindgen.after = 'gen_everything_h_task'
bindgen.name = "pybindgen-command"
features = 'cxx cshlib pyext'
if bld.env['ENABLE_STATIC_NS3']:
features = 'cxx cstaticlib pyext'
else:
features = 'cxx cshlib pyext'
if env['ENABLE_PYTHON_PCH']:
features += ' pch'
pymod = bld.new_task_gen(features=features)
@@ -716,14 +719,16 @@ def build(bld):
pymod.source.append("ns3_module_%s.cc" % module)
pymod.target = 'ns3/_ns3'
pymod.name = 'ns3module'
pymod.uselib_local = "ns3"
pymod.uselib_local = bld.env['NS3_ENABLED_MODULES']
if pymod.env['ENABLE_STATIC_NS3']:
if sys.platform == 'darwin':
pymod.env.append_value('LINKFLAGS', '-Wl,-all_load')
pymod.env.append_value('LINKFLAGS', '-lns3')
for mod in pymod.uselib_local:
pymod.env.append_value('LINKFLAGS', '-l' + mod)
else:
pymod.env.append_value('LINKFLAGS', '-Wl,--whole-archive,-Bstatic')
pymod.env.append_value('LINKFLAGS', '-lns3')
for mod in pymod.uselib_local:
pymod.env.append_value('LINKFLAGS', '-l' + mod)
pymod.env.append_value('LINKFLAGS', '-Wl,-Bdynamic,--no-whole-archive')
defines = list(pymod.env['CXXDEFINES'])

View File

@@ -1,6 +1,6 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
obj = bld.create_ns3_program('ns2-mobility-trace', ['core', 'mobility', 'wifi', 'mesh'])
obj = bld.create_ns3_program('ns2-mobility-trace', ['internet', 'mobility', 'wifi', 'mesh', 'applications'])
obj.source = 'ns2-mobility-trace.cc'

View File

@@ -10,5 +10,5 @@ def build(bld):
obj.source = 'third-distributed.cc'
obj = bld.create_ns3_program('nms-p2p-nix-distributed',
['point-to-point', 'network', 'applications'])
['point-to-point', 'internet', 'applications'])
obj.source = 'nms-p2p-nix-distributed.cc'

View File

@@ -1,32 +1,32 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
obj = bld.create_ns3_program('mixed-wireless', ['core', 'mobility', 'wifi', 'point-to-point',
'internet', 'csma'])
obj = bld.create_ns3_program('mixed-wireless', ['core', 'mobility', 'wifi', 'applications', 'point-to-point',
'internet', 'csma', 'olsr'])
obj.source = 'mixed-wireless.cc'
obj = bld.create_ns3_program('wifi-adhoc', ['core', 'mobility', 'wifi', 'contrib'])
obj = bld.create_ns3_program('wifi-adhoc', ['core', 'mobility', 'wifi', 'applications', 'contrib'])
obj.source = 'wifi-adhoc.cc'
obj = bld.create_ns3_program('wifi-clear-channel-cmu', ['core', 'mobility', 'wifi', 'contrib'])
obj = bld.create_ns3_program('wifi-clear-channel-cmu', ['internet', 'mobility', 'wifi', 'contrib'])
obj.source = 'wifi-clear-channel-cmu.cc'
obj = bld.create_ns3_program('wifi-ap', ['core', 'mobility', 'wifi', 'applications', 'contrib'])
obj.source = 'wifi-ap.cc'
obj = bld.create_ns3_program('wifi-wired-bridging', ['core', 'mobility', 'wifi', 'csma', 'bridge'])
obj = bld.create_ns3_program('wifi-wired-bridging', ['internet', 'mobility', 'wifi', 'csma', 'bridge', 'applications'])
obj.source = 'wifi-wired-bridging.cc'
obj = bld.create_ns3_program('simple-wifi-frame-aggregation', ['internet', 'mobility', 'wifi', 'applications'])
obj.source = 'simple-wifi-frame-aggregation.cc'
obj = bld.create_ns3_program('multirate', ['core', 'mobility', 'wifi', 'contrib', 'flow-monitor'])
obj = bld.create_ns3_program('multirate', ['internet', 'mobility', 'wifi', 'contrib', 'flow-monitor', 'olsr', 'applications', 'point-to-point'])
obj.source = 'multirate.cc'
obj = bld.create_ns3_program('wifi-simple-adhoc', ['internet', 'mobility', 'wifi', 'contrib'])
obj.source = 'wifi-simple-adhoc.cc'
obj = bld.create_ns3_program('wifi-simple-adhoc-grid', ['core', 'mobility', 'wifi', 'olsr'])
obj = bld.create_ns3_program('wifi-simple-adhoc-grid', ['internet', 'mobility', 'wifi', 'olsr', 'contrib', 'point-to-point'])
obj.source = 'wifi-simple-adhoc-grid.cc'
obj = bld.create_ns3_program('wifi-simple-infra', ['internet', 'mobility', 'wifi'])
@@ -41,5 +41,5 @@ def build(bld):
obj = bld.create_ns3_program('ofdm-validation', ['core', 'mobility', 'wifi', 'contrib'])
obj.source = 'ofdm-validation.cc'
obj = bld.create_ns3_program('wifi-hidden-terminal', ['core', 'mobility', 'wifi', 'propagation', 'flow-monitor'])
obj = bld.create_ns3_program('wifi-hidden-terminal', ['internet', 'mobility', 'wifi', 'applications', 'propagation', 'flow-monitor'])
obj.source = 'wifi-hidden-terminal.cc'

View File

@@ -47,7 +47,7 @@ def build(bld):
obj.source = 'main-random-walk.cc'
obj = bld.create_ns3_program('main-propagation-loss',
['core', 'mobility', 'contrib'])
['core', 'mobility', 'contrib', 'propagation'])
obj.source = 'main-propagation-loss.cc'
obj = bld.create_ns3_program('sample-random-variable',

View File

@@ -1,7 +1,7 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
obj = bld.create_ns3_module('energy', ['network', 'wifi'])
obj = bld.create_ns3_module('energy', ['internet', 'wifi'])
obj.source = [
'model/wifi-radio-energy-model.cc',
'model/energy-source.cc',

View File

@@ -138,6 +138,10 @@ def build(bld):
'model/names.cc',
'model/vector.cc',
'model/fatal-impl.cc',
]
core_test = bld.create_ns3_module_test_library('core')
core_test.source = [
'test/attribute-test-suite.cc',
'test/callback-test-suite.cc',
'test/names-test-suite.cc',
@@ -249,9 +253,11 @@ def build(bld):
'model/realtime-simulator-impl.cc',
'model/wall-clock-synchronizer.cc',
])
core.uselib = 'RT'
core.uselib = 'RT'
core_test.uselib = 'RT'
else:
core.uselib = ''
core.uselib = ''
core_test.uselib = ''
if env['ENABLE_THREADING']:
core.source.extend([
@@ -260,7 +266,8 @@ def build(bld):
'model/unix-system-mutex.cc',
'model/unix-system-condition.cc',
])
core.uselib = core.uselib + ' PTHREAD'
core.uselib = core.uselib + ' PTHREAD'
core_test.uselib = core_test.uselib + ' PTHREAD'
headers.source.extend([
'model/unix-fd-reader.h',
'model/system-mutex.h',
@@ -269,8 +276,9 @@ def build(bld):
])
if env['ENABLE_GSL']:
core.uselib = core.uselib + ' GSL GSLCBLAS M'
core.source.extend(['test/rng-test-suite.cc'])
core.uselib = core.uselib + ' GSL GSLCBLAS M'
core_test.uselib = core_test.uselib + ' GSL GSLCBLAS M'
core_test.source.extend(['test/rng-test-suite.cc'])
pymod = bld.ns3_python_bindings()
if pymod is not None:

View File

@@ -3,8 +3,8 @@
def build(bld):
env = bld.env_of_name('default')
if env['ENABLE_EMU']:
obj = bld.create_ns3_program('emu-udp-echo', ['emu', 'internet'])
obj = bld.create_ns3_program('emu-udp-echo', ['emu', 'internet', 'applications'])
obj.source = 'emu-udp-echo.cc'
obj = bld.create_ns3_program('emu-ping', ['emu', 'internet'])
obj = bld.create_ns3_program('emu-ping', ['emu', 'internet', 'applications'])
obj.source = 'emu-ping.cc'

View File

@@ -92,7 +92,7 @@ def configure(conf):
def build(bld):
# bridge and mpi dependencies are due to global routing
obj = bld.create_ns3_module('internet', ['bridge', 'mpi', 'network'])
obj = bld.create_ns3_module('internet', ['bridge', 'mpi', 'network', 'core'])
obj.source = [
'test/tcp-test.cc',
'test/udp-test.cc',

View File

@@ -14,7 +14,7 @@ def build(bld):
obj.source = 'lte-device.cc'
obj = bld.create_ns3_program('lte-channel-model',
['lte'])
['lte', 'network'])
obj.source = 'lte-channel-model.cc'
obj = bld.create_ns3_program('lte-amc',

View File

@@ -2,7 +2,7 @@
def build(bld):
module = bld.create_ns3_module('lte', ['core', 'network', 'spectrum', 'wimax'])
module = bld.create_ns3_module('lte', ['internet', 'spectrum', 'wimax'])
module.source = [
'model/lte-spectrum-phy.cc',
'model/enb-lte-spectrum-phy.cc',

View File

@@ -1,5 +1,5 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
obj = bld.create_ns3_program('mesh', ['core', 'mobility', 'wifi', 'mesh'])
obj = bld.create_ns3_program('mesh', ['internet', 'mobility', 'wifi', 'mesh'])
obj.source = 'mesh.cc'

View File

@@ -49,10 +49,6 @@ def build(bld):
'utils/sequence-number.cc',
'utils/simple-channel.cc',
'utils/simple-net-device.cc',
'test/buffer-test.cc',
'test/packetbb-test-suite.cc',
'test/packet-metadata-test.cc',
'test/pcap-file-test-suite.cc',
'helper/application-container.cc',
'helper/net-device-container.cc',
'helper/node-container.cc',
@@ -60,6 +56,14 @@ def build(bld):
'helper/trace-helper.cc',
]
network_test = bld.create_ns3_module_test_library('network')
network_test.source = [
'test/buffer-test.cc',
'test/packetbb-test-suite.cc',
'test/packet-metadata-test.cc',
'test/pcap-file-test-suite.cc',
]
headers = bld.new_task_gen('ns3header')
headers.module = 'network'
headers.source = [

View File

@@ -2,9 +2,9 @@
def build(bld):
obj = bld.create_ns3_program('nix-simple',
['point-to-point', 'internet', 'nix-vector-routing'])
['point-to-point', 'applications', 'internet', 'nix-vector-routing'])
obj.source = 'nix-simple.cc'
obj = bld.create_ns3_program('nms-p2p-nix',
['point-to-point', 'internet', 'nix-vector-routing'])
['point-to-point', 'applications', 'internet', 'nix-vector-routing'])
obj.source = 'nms-p2p-nix.cc'

View File

@@ -2,7 +2,7 @@
def build(bld):
obj = bld.create_ns3_program('simple-point-to-point-olsr',
['point-to-point', 'internet', 'olsr'])
['point-to-point', 'internet', 'olsr', 'applications', 'wifi'])
obj.source = 'simple-point-to-point-olsr.cc'
obj = bld.create_ns3_program('olsr-hna',

View File

@@ -2,11 +2,11 @@
def build(bld):
obj = bld.create_ns3_program('adhoc-aloha-ideal-phy',
['spectrum'])
['spectrum', 'mobility'])
obj.source = 'adhoc-aloha-ideal-phy.cc'
obj = bld.create_ns3_program('adhoc-aloha-ideal-phy-with-microwave-oven',
['spectrum'])
['spectrum', 'mobility'])
obj.source = 'adhoc-aloha-ideal-phy-with-microwave-oven.cc'

View File

@@ -2,7 +2,7 @@
def build(bld):
module = bld.create_ns3_module('spectrum', ['core', 'network', 'propagation', 'applications'])
module = bld.create_ns3_module('spectrum', ['internet', 'propagation', 'applications'])
module.source = [
'model/spectrum-model.cc',
'model/spectrum-value.cc',

View File

@@ -7,7 +7,7 @@ def build(bld):
obj.source = 'tap-csma.cc'
obj = bld.create_ns3_program('tap-csma-virtual-machine', ['csma', 'tap-bridge', 'internet'])
obj.source = 'tap-csma-virtual-machine.cc'
obj = bld.create_ns3_program('tap-wifi-virtual-machine', ['csma', 'tap-bridge', 'internet'])
obj = bld.create_ns3_program('tap-wifi-virtual-machine', ['csma', 'tap-bridge', 'internet', 'wifi'])
obj.source = 'tap-wifi-virtual-machine.cc'
obj = bld.create_ns3_program('tap-wifi-dumbbell', ['wifi', 'csma', 'point-to-point', 'tap-bridge', 'internet'])
obj.source = 'tap-wifi-dumbbell.cc'

View File

@@ -10,12 +10,16 @@ def build(bld):
headers.source = [
'ns3tcp.h',
]
ns3tcp.source = [
ns3tcp_test = bld.create_ns3_module_test_library('ns3tcp')
ns3tcp_test.source = [
'ns3tcp-socket-writer.cc',
'ns3tcp-socket-test-suite.cc',
'ns3tcp-loss-test-suite.cc',
'ns3tcp-state-test-suite.cc',
]
if bld.env['NSC_ENABLED']:
ns3tcp.source.append ('ns3tcp-interop-test-suite.cc')
ns3tcp.source.append ('ns3tcp-cwnd-test-suite.cc')
ns3tcp_test.source.append ('ns3tcp-interop-test-suite.cc')
ns3tcp_test.source.append ('ns3tcp-cwnd-test-suite.cc')
ns3tcp_test.source.append ('nsctcp-loss-test-suite.cc')

View File

@@ -5,12 +5,15 @@ def configure(conf):
def build(bld):
ns3wifi = bld.create_ns3_module('ns3wifi', ['internet', 'mobility', 'propagation', 'wifi', 'applications'])
ns3wifi.source = [
'wifi-interference-test-suite.cc',
'wifi-msdu-aggregator-test-suite.cc',
]
headers = bld.new_task_gen('ns3header')
headers.module = 'ns3wifi'
headers.source = [
'ns3wifi.h',
]
ns3wifi_test = bld.create_ns3_module_test_library('ns3wifi')
ns3wifi_test.source = [
'wifi-interference-test-suite.cc',
'wifi-msdu-aggregator-test-suite.cc',
]

View File

@@ -1,15 +0,0 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def configure(conf):
pass
def build(bld):
nsctcp = bld.create_ns3_module('nsctcp')
headers = bld.new_task_gen('ns3header')
headers.module = 'nsctcp'
headers.source = [
]
if bld.env['NSC_ENABLED']:
nsctcp.source = [
'nsctcp-loss-test-suite.cc',
]

View File

@@ -4,11 +4,7 @@ def configure(conf):
pass
def build(bld):
obj = bld.create_ns3_module('perf')
headers = bld.new_task_gen('ns3header')
headers.module = 'perf'
obj = bld.create_ns3_program('perf-io', ['core', 'helper', 'node'])
obj = bld.create_ns3_program('perf-io', ['network'])
obj.source = 'perf-io.cc'

View File

@@ -1,5 +1,5 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
obj = bld.create_ns3_program('topology-read', ['topology-read', 'internet'])
obj = bld.create_ns3_program('topology-read', ['topology-read', 'internet', 'nix-vector-routing', 'point-to-point', 'applications'])
obj.source = 'topology-example-sim.cc'

View File

@@ -1,8 +1,8 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
obj = bld.create_ns3_program('uan-cw-example', ['network', 'mobility', 'contrib', 'applications', 'uan'])
obj = bld.create_ns3_program('uan-cw-example', ['internet', 'mobility', 'contrib', 'applications', 'uan'])
obj.source = 'uan-cw-example.cc'
obj = bld.create_ns3_program('uan-rc-example', ['network', 'mobility', 'contrib', 'applications', 'uan'])
obj = bld.create_ns3_program('uan-rc-example', ['internet', 'mobility', 'contrib', 'applications', 'uan'])
obj.source = 'uan-rc-example.cc'

View File

@@ -1,11 +1,11 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
7## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
obj = bld.create_ns3_program( 'wimax-ipv4', ['wimax', 'internet', 'csma'])
obj = bld.create_ns3_program( 'wimax-ipv4', ['wimax', 'internet', 'mobility', 'csma'])
obj.source = 'wimax-ipv4.cc'
obj = bld.create_ns3_program( 'wimax-multicast', ['wimax', 'internet', 'csma'])
obj.source = 'wimax-multicast.cc'
obj = bld.create_ns3_program( 'wimax-simple', ['wimax', 'internet'])
obj = bld.create_ns3_program( 'wimax-simple', ['wimax', 'internet', 'mobility'])
obj.source = 'wimax-simple.cc'

View File

@@ -12,6 +12,9 @@ import Build
import Utils
import Constants
import ccroot
ccroot.USE_TOP_LEVEL = True
try:
set
except NameError:
@@ -44,9 +47,7 @@ all_modules = (
'spectrum',
'mesh',
'test',
'test/perf',
'test/ns3tcp',
'test/nsctcp',
'test/ns3wifi',
'contrib/flow-monitor',
'wimax',
@@ -94,15 +95,29 @@ def configure(conf):
def create_ns3_module(bld, name, dependencies=()):
module = bld.new_task_gen('cxx', 'cc')
# Create a separate library for this module.
if bld.env['ENABLE_STATIC_NS3']:
module = bld.new_task_gen('cxx', 'cstaticlib')
else:
module = bld.new_task_gen('cxx', 'cshlib')
module.is_ns3_module = True
module.name = 'ns3-' + name
module.target = module.name
module.add_objects = ['ns3-' + dep for dep in dependencies]
# Add the proper path to the module's name.
module.target = '%s/ns3-%s' % (bld.srcnode.relpath_gen(bld.path), name)
# Set the libraries this module depends on.
module.uselib_local = ['ns3-' + dep for dep in dependencies]
module.module_deps = list(dependencies)
if not module.env['ENABLE_STATIC_NS3']:
module.env.append_value('CXXFLAGS', module.env['shlib_CXXFLAGS'])
module.env.append_value('CCFLAGS', module.env['shlib_CXXFLAGS'])
# Turn on the link flags for shared libraries if we have the
# proper compiler and platform.
if module.env['CXX_NAME'] in ['gcc', 'icc'] and module.env['WL_SONAME_SUPPORTED']:
# Get the module library name without any relative paths
# at its beginning because all of the libraries will end
# up in the same directory.
module_library_name = os.path.basename(ccroot.get_target_name(module))
module.env.append_value('LINKFLAGS', '-Wl,--soname=%s' % module_library_name)
elif module.env['CXX_NAME'] in ['gcc', 'icc'] and \
os.uname()[4] == 'x86_64' and \
module.env['ENABLE_PYTHON_BINDINGS']:
@@ -116,6 +131,32 @@ def create_ns3_module(bld, name, dependencies=()):
module.env.append_value('CCDEFINES', "NS3_MODULE_COMPILATION")
return module
def create_ns3_module_test_library(bld, name):
# Create an ns3 module for the test library that depends only on
# the module being tested.
library_name = name + "-test"
library = bld.create_ns3_module(library_name, [name])
# Modify attributes for the test library that are different from a
# normal module.
del library.is_ns3_module
library.is_ns3_module_test_library = True
library.module_name = 'ns3-' + name
# Add this test library and module to the lists if the module is
# enabled.
if library.module_name in bld.env['NS3_ENABLED_MODULES']:
bld.env.append_value('NS3_ENABLED_MODULES_WITH_TEST_LIBRARIES', library.module_name)
bld.env.append_value('NS3_ENABLED_MODULE_TEST_LIBRARIES', library.name)
# Set the include path from the build directory to modules.
relative_path_from_build_to_here = bld.path.relpath_gen(bld.bldnode)
include_flag = '-I' + relative_path_from_build_to_here
library.env.append_value('CXXFLAGS', include_flag)
library.env.append_value('CCFLAGS', include_flag)
return library
def create_obj(bld, *args):
warnings.warn("(in %s) Use bld.new_task_gen(...) now, instead of bld.create_obj(...)" % str(bld.path),
DeprecationWarning, stacklevel=2)
@@ -178,14 +219,16 @@ def ns3_python_bindings(bld):
pymod.source = ['bindings/ns3module.cc']
pymod.target = '%s/%s' % (bld.srcnode.find_dir("bindings/python/ns").relpath_gen(bld.path), module.replace('-', '_'))
pymod.name = 'ns3module_%s' % module
pymod.uselib_local = "ns3"
pymod.uselib_local = bld.env['NS3_ENABLED_MODULES']
if pymod.env['ENABLE_STATIC_NS3']:
if sys.platform == 'darwin':
pymod.env.append_value('LINKFLAGS', '-Wl,-all_load')
pymod.env.append_value('LINKFLAGS', '-lns3')
for mod in pymod.uselib_local:
pymod.env.append_value('LINKFLAGS', '-l' + mod)
else:
pymod.env.append_value('LINKFLAGS', '-Wl,--whole-archive,-Bstatic')
pymod.env.append_value('LINKFLAGS', '-lns3')
for mod in pymod.uselib_local:
pymod.env.append_value('LINKFLAGS', '-l' + mod)
pymod.env.append_value('LINKFLAGS', '-Wl,-Bdynamic,--no-whole-archive')
defines = list(pymod.env['CXXDEFINES'])
defines.extend(['NS_DEPRECATED=', 'NS3_DEPRECATED_H'])
@@ -201,6 +244,7 @@ def ns3_python_bindings(bld):
def build(bld):
bld.create_ns3_module = types.MethodType(create_ns3_module, bld)
bld.create_ns3_module_test_library = types.MethodType(create_ns3_module_test_library, bld)
bld.create_obj = types.MethodType(create_obj, bld)
bld.ns3_python_bindings = types.MethodType(ns3_python_bindings, bld)

View File

@@ -7,7 +7,10 @@ def build(bld):
test_runner = bld.create_ns3_program('test-runner', ['core'])
test_runner.install_path = None # do not install
test_runner.source = 'test-runner.cc'
test_runner.uselib_local = 'ns3'
# Set the libraries the testrunner depends on equal to the list of
# enabled modules plus the list of enabled module test libraries.
test_runner.uselib_local = env['NS3_ENABLED_MODULES'] + env['NS3_ENABLED_MODULE_TEST_LIBRARIES']
obj = bld.create_ns3_program('bench-simulator', ['core'])
obj.source = 'bench-simulator.cc'

47
wscript
View File

@@ -382,6 +382,15 @@ def configure(conf):
else:
conf.report_optional_feature("static", "Static build", False,
"option --enable-static not selected")
# These flags are used for the implicitly dependent modules.
if env['ENABLE_STATIC_NS3']:
if sys.platform == 'darwin':
env.STATICLIB_MARKER = '-Wl,-all_load'
else:
env.STATICLIB_MARKER = '-Wl,--whole-archive,-Bstatic'
env.SHLIB_MARKER = '-Wl,-Bdynamic,--no-whole-archive'
have_gsl = conf.pkg_check_modules('GSL', 'gsl', mandatory=False)
conf.env['ENABLE_GSL'] = have_gsl
@@ -482,15 +491,18 @@ def create_ns3_program(bld, name, dependencies=('core',)):
program.is_ns3_program = True
program.name = name
program.target = program.name
program.uselib_local = 'ns3'
# Each of the modules this program depends on has its own library.
program.uselib_local = ['ns3-' + dep for dep in dependencies]
program.ns3_module_dependencies = ['ns3-'+dep for dep in dependencies]
if program.env['ENABLE_STATIC_NS3']:
if sys.platform == 'darwin':
program.env.append_value('LINKFLAGS', '-Wl,-all_load')
program.env.append_value('LINKFLAGS', '-lns3')
for dep in dependencies:
program.env.append_value('LINKFLAGS', '-lns3-' + dep)
else:
program.env.append_value('LINKFLAGS', '-Wl,--whole-archive,-Bstatic')
program.env.append_value('LINKFLAGS', '-lns3')
for dep in dependencies:
program.env.append_value('LINKFLAGS', '-lns3-' + dep)
program.env.append_value('LINKFLAGS', '-Wl,-Bdynamic,--no-whole-archive')
return program
@@ -525,6 +537,9 @@ def add_scratch_programs(bld):
def build(bld):
bld.env['NS3_ENABLED_MODULES_WITH_TEST_LIBRARIES'] = []
bld.env['NS3_ENABLED_MODULE_TEST_LIBRARIES'] = []
wutils.bld = bld
if Options.options.no_task_lines:
import Runner
@@ -572,7 +587,8 @@ def build(bld):
module_obj = bld.name_to_obj(module, env)
if module_obj is None:
raise ValueError("module %s not found" % module)
for dep in module_obj.add_objects:
# Each enabled module has its own library.
for dep in module_obj.uselib_local:
if not dep.startswith('ns3-'):
continue
if dep not in modules:
@@ -582,6 +598,8 @@ def build(bld):
env['NS3_ENABLED_MODULES'] = modules
print "Modules to build:", modules
print "Modules to test:", env['NS3_ENABLED_MODULES_WITH_TEST_LIBRARIES']
def exclude_taskgen(bld, taskgen):
# ok, so WAF does not provide an API to prevent an
# arbitrary taskgen from running; we have to muck around with
@@ -616,30 +634,17 @@ def build(bld):
if hasattr(obj, "is_ns3_module") and obj.name not in modules:
exclude_taskgen(bld, obj) # kill the module
# disable the module test libraries
if hasattr(obj, "is_ns3_module_test_library") and obj.module_name not in modules:
exclude_taskgen(bld, obj) # kill the module test library
# disable the ns3header_taskgen
if type(obj).__name__ == 'ns3header_taskgen':
if ("ns3-%s" % obj.module) not in modules:
obj.mode = 'remove' # tell it to remove headers instead of installing
## Create a single ns3 library containing all enabled modules
if env['ENABLE_STATIC_NS3']:
lib = bld.new_task_gen('cxx', 'staticlib')
lib.name = 'ns3'
lib.target = 'ns3'
else:
lib = bld.new_task_gen('cxx', 'shlib')
lib.name = 'ns3'
lib.target = 'ns3'
if lib.env['CXX_NAME'] in ['gcc', 'icc'] and env['WL_SONAME_SUPPORTED']:
lib.env.append_value('LINKFLAGS', '-Wl,--soname=%s' % ccroot.get_target_name(lib))
if env['NS3_ENABLED_MODULES']:
lib.add_objects = list(modules)
env['NS3_ENABLED_MODULES'] = list(modules)
lib.uselib_local = list(modules)
else:
lib.add_objects = list(env['NS3_MODULES'])
lib.uselib_local = list(env['NS3_MODULES'])
bld.add_subdirs('bindings/python')