2012-12-04 11:53:47 -05:00
|
|
|
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
|
2013-04-01 22:33:46 +02:00
|
|
|
|
2012-12-04 11:53:47 -05:00
|
|
|
import os
|
2013-04-01 22:33:46 +02:00
|
|
|
|
|
|
|
|
from waflib import Options
|
2012-12-04 11:53:47 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def options(opt):
|
|
|
|
|
opt.add_option('--with-brite',
|
|
|
|
|
help=('Use BRITE integration support, given by the indicated path,'
|
|
|
|
|
' to allow the use of the BRITE topology generator'),
|
|
|
|
|
default=False, dest='with_brite')
|
|
|
|
|
|
|
|
|
|
def configure(conf):
|
|
|
|
|
conf.env['ENABLE_BRITE'] = False
|
|
|
|
|
|
|
|
|
|
if Options.options.with_brite:
|
|
|
|
|
if os.path.isdir(Options.options.with_brite):
|
|
|
|
|
conf.msg("Checking BRITE location", ("%s (given)" % Options.options.with_brite))
|
|
|
|
|
conf.env['WITH_BRITE'] = os.path.abspath(Options.options.with_brite)
|
|
|
|
|
else:
|
|
|
|
|
brite_dir = os.path.join('..','BRITE')
|
|
|
|
|
if os.path.isdir(brite_dir):
|
|
|
|
|
conf.msg("Checking for BRITE location", ("%s (guessed)" % brite_dir))
|
|
|
|
|
conf.env['WITH_BRITE'] = os.path.abspath(brite_dir)
|
|
|
|
|
del brite_dir
|
|
|
|
|
if not conf.env['WITH_BRITE']:
|
|
|
|
|
conf.msg("Checking for BRITE location", False)
|
|
|
|
|
conf.report_optional_feature("brite", "BRITE Integration", False,
|
|
|
|
|
"BRITE not found (see option --with-brite)")
|
2012-12-16 22:37:14 -08:00
|
|
|
# Add this module to the list of modules that won't be built
|
|
|
|
|
# if they are enabled.
|
|
|
|
|
conf.env['MODULES_NOT_BUILT'].append('brite')
|
|
|
|
|
|
2012-12-04 11:53:47 -05:00
|
|
|
return
|
|
|
|
|
else:
|
|
|
|
|
conf.report_optional_feature("brite", "BRITE Integration", False, 'BRITE not enabled (see option --with-brite)')
|
2012-12-16 22:37:14 -08:00
|
|
|
|
|
|
|
|
# Add this module to the list of modules that won't be built
|
|
|
|
|
# if they are enabled.
|
|
|
|
|
conf.env['MODULES_NOT_BUILT'].append('brite')
|
|
|
|
|
|
2012-12-04 11:53:47 -05:00
|
|
|
return
|
|
|
|
|
|
|
|
|
|
test_code = '''
|
|
|
|
|
#include "Brite.h"
|
|
|
|
|
|
|
|
|
|
int main()
|
|
|
|
|
{
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
conf.env['DL'] = conf.check(mandatory=True, lib='dl', define_name='DL', uselib='DL')
|
|
|
|
|
|
|
|
|
|
conf.env.append_value('NS3_MODULE_PATH',os.path.abspath(os.path.join(conf.env['WITH_BRITE'], '.')))
|
|
|
|
|
|
|
|
|
|
conf.env['INCLUDES_BRITE'] = os.path.abspath(os.path.join(conf.env['WITH_BRITE'],'.'))
|
|
|
|
|
|
|
|
|
|
conf.env['CPPPATH_BRITE'] = [
|
|
|
|
|
os.path.abspath(os.path.join(conf.env['WITH_BRITE'],'.')),
|
|
|
|
|
os.path.abspath(os.path.join(conf.env['WITH_BRITE'],'Models'))
|
|
|
|
|
]
|
|
|
|
|
conf.env['LIBPATH_BRITE'] = [os.path.abspath(os.path.join(conf.env['WITH_BRITE'], '.'))]
|
|
|
|
|
|
|
|
|
|
conf.env.append_value('CXXDEFINES', 'NS3_BRITE')
|
|
|
|
|
conf.env.append_value('CPPPATH', conf.env['CPPPATH_BRITE'])
|
|
|
|
|
|
|
|
|
|
conf.env['BRITE'] = conf.check(fragment=test_code, lib='brite', libpath=conf.env['LIBPATH_BRITE'], use='BRITE DL')
|
|
|
|
|
conf.report_optional_feature("brite", "BRITE Integration",
|
|
|
|
|
conf.env['BRITE'], "BRITE library not found")
|
|
|
|
|
|
|
|
|
|
if conf.env['BRITE']:
|
|
|
|
|
conf.env['ENABLE_BRITE'] = True
|
|
|
|
|
conf.env.append_value('CXXDEFINES', 'NS3_BRITE')
|
|
|
|
|
conf.env.append_value('CPPPATH', conf.env['CPPPATH_BRITE'])
|
|
|
|
|
|
|
|
|
|
def build(bld):
|
2012-12-16 22:37:14 -08:00
|
|
|
# Don't do anything for this module if brite's not enabled.
|
|
|
|
|
if 'brite' in bld.env['MODULES_NOT_BUILT']:
|
|
|
|
|
return
|
2012-12-04 11:53:47 -05:00
|
|
|
|
|
|
|
|
module = bld.create_ns3_module('brite', ['network', 'core', 'internet', 'point-to-point'])
|
|
|
|
|
module.source = [
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
module_test = bld.create_ns3_module_test_library('brite')
|
|
|
|
|
module_test.source = [
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
if bld.env['BRITE'] and bld.env['DL']:
|
|
|
|
|
module.uselib = 'BRITE DL'
|
|
|
|
|
|
2013-04-01 22:33:46 +02:00
|
|
|
headers = bld(features='ns3header')
|
2012-12-04 11:53:47 -05:00
|
|
|
headers.module = 'brite'
|
|
|
|
|
headers.source = [
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
if bld.env['ENABLE_BRITE']:
|
|
|
|
|
module.source.append ('helper/brite-topology-helper.cc')
|
|
|
|
|
headers.source.append ('helper/brite-topology-helper.h')
|
|
|
|
|
module_test.source.append('test/brite-test-topology.cc')
|
|
|
|
|
|
|
|
|
|
if bld.env['ENABLE_EXAMPLES'] and bld.env['ENABLE_BRITE']:
|
2013-04-01 22:33:46 +02:00
|
|
|
bld.recurse('examples')
|