WAF: convert code to WAF 1.4 API; the 'waf' script bundle will be updated later, for now has been disabled.
--- a/src/wscript Mon Apr 21 17:31:01 2008 +0100
+++ b/src/wscript Sat Apr 26 21:54:36 2008 +0100
@@ -69,33 +69,27 @@
def build(bld):
- Object.register('ns3header', Ns3Header)
+ #Object.register('ns3header', Ns3Header)
Action.Action('ns3header', func=_ns3_headers_inst, color='BLUE')
- Object.register('ns3-module-header', Ns3ModuleHeader)
+ #Object.register('ns3-module-header', Ns3ModuleHeader)
Action.Action('gen-ns3-module-header', func=gen_ns3_module_header, color='BLUE')
bld.create_ns3_module = types.MethodType(create_ns3_module, bld)
bld.add_subdirs(list(all_modules))
for module in all_modules:
- modheader = bld.create_obj('ns3-module-header')
+ modheader = bld.create_obj('ns3moduleheader')
modheader.module = module.split('/')[-1]
-class Ns3Header(Object.genobj):
+class ns3header_taskgen(Object.task_gen):
"""A set of NS-3 header files"""
- def __init__(self, env=None):
- Object.genobj.__init__(self, 'ns3header')
+ def __init__(self, *features):
+ Object.task_gen.__init__(self, *features)
self.inst_var = 'INCLUDEDIR'
self.inst_dir = 'ns3'
self.sub_dir = None # if not None, header files will be published as ns3/sub_dir/file.h
self.module = None # module name
- self.env = env
- if not self.env:
- self.env = Params.g_build.m_allenvs['default']
-
- def get_valid_types(self):
- return ['ns3header']
def apply(self):
if self.module is None:
@@ -169,17 +163,13 @@
return 0
-class Ns3ModuleHeader(Object.genobj):
+class ns3moduleheader_taskgen(Object.task_gen):
"""
Generates a 'ns3/foo-module.h' header file that includes all
public ns3 headers of a certain module.
"""
- def __init__(self, env=None):
- Object.genobj.__init__(self, 'other')
- self.install_var = 0
- self.env = env
- if not self.env:
- self.env = Params.g_build.m_allenvs['default'].copy()
+ def __init__(self, *features):
+ Object.task_gen.__init__(self, *features)
self.module_name = None
def apply(self):
@@ -187,7 +177,7 @@
ns3_dir_node = Params.g_build.m_srcnode.find_dir("ns3")
all_headers_inputs = []
for ns3headers in Object.g_allobjs:
- if ns3headers.m_type == 'ns3header':
+ if isinstance(ns3headers, ns3header_taskgen):
if ns3headers.module != self.module:
continue
for source in ns3headers.to_list(ns3headers.source):
--- a/waf Mon Apr 21 17:31:01 2008 +0100
+++ b/waf Sat Apr 26 21:54:36 2008 +0100
@@ -2,6 +2,9 @@
# encoding: utf-8
# Thomas Nagy, 2005-2008
+raise RuntimeError("Sorry, this ns-3 branch temporarily requires WAF trunk (or 1.4.1);"
+ " I will update the WAF script later...")
+
"""
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
--- a/wscript Mon Apr 21 17:31:01 2008 +0100
+++ b/wscript Sat Apr 26 21:54:36 2008 +0100
@@ -6,9 +6,11 @@
import optparse
import os.path
+import pproc as subprocess
+
import Params
import Object
-import pproc as subprocess
+import ccroot
Params.g_autoconfig = 1
@@ -218,6 +220,7 @@
def create_ns3_program(bld, name, dependencies=('simulator',)):
program = bld.create_obj('cpp', 'program')
+ program.is_ns3_program = True
program.name = name
program.target = program.name
program.uselib_local = 'ns3'
@@ -351,7 +354,7 @@
# --enable-modules=xxx
pass
else:
- prog = program_obj.path.find_build(program_obj.get_target_name()).abspath(env)
+ prog = program_obj.path.find_build(ccroot.get_target_name(program_obj)).abspath(env)
out = open('doc/introspected-doxygen.h', 'w')
if subprocess.Popen([prog], stdout=out, env=proc_env).wait():
raise SystemExit(1)
@@ -359,12 +362,11 @@
run_program('run-tests', get_command_template())
-
def _find_program(program_name, env):
launch_dir = os.path.abspath(Params.g_cwd_launch)
found_programs = []
for obj in Object.g_allobjs:
- if obj.m_type != 'program' or not obj.target:
+ if not getattr(obj, 'is_ns3_program', False):
continue
## filter out programs not in the subtree starting at the launch dir
@@ -430,7 +432,7 @@
Params.fatal(str(ex))
try:
- program_node = program_obj.path.find_build(program_obj.get_target_name())
+ program_node = program_obj.path.find_build(ccroot.get_target_name(program_obj))
except AttributeError:
Params.fatal("%s does not appear to be a program" % (program_name,))
@@ -444,7 +446,7 @@
except ValueError, ex:
Params.fatal(str(ex))
try:
- program_node = program_obj.path.find_build(program_obj.get_target_name())
+ program_node = program_obj.path.find_build(ccroot.get_target_name(program_obj))
except AttributeError:
Params.fatal("%s does not appear to be a program" % (program_name,))