diff --git a/src/wscript b/src/wscript index 8ca00fc75..b9ff0c36f 100644 --- a/src/wscript +++ b/src/wscript @@ -69,33 +69,27 @@ def create_ns3_module(bld, name, dependencies=()): 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 @@ def gen_ns3_module_header(task): 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 @@ class Ns3ModuleHeader(Object.genobj): 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): diff --git a/waf b/waf index 0c1da006c..9de39e5bf 100755 --- a/waf +++ b/waf @@ -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 diff --git a/wscript b/wscript index b803d1381..8205fc469 100644 --- a/wscript +++ b/wscript @@ -6,9 +6,11 @@ import types 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 configure(conf): 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 @@ def _run_waf_check(): # --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 @@ def _run_waf_check(): 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 @@ def run_program(program_string, command_template=None): 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 @@ def run_program(program_string, command_template=None): 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,))