blob: 0142dc2a1f1f203b979a4965e2fc853fbf2692be [file] [log] [blame]
Ilya Moiseenko1762af72011-07-18 16:43:10 -07001## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
2
Alexander Afanasyev45b92d42011-08-14 23:11:38 -07003import os
4import Logs
5import Utils
Alexander Afanasyev2a5df202011-08-15 22:39:05 -07006import Options
7
8def set_options(opt):
9 opt.tool_options('boost')
10
11def configure(conf):
12 conf.check_tool('boost')
13 conf.env['BOOST'] = conf.check_boost(lib = '', # need only base
14 min_version='1.40.0' )
15 if not conf.env['BOOST']:
16 conf.report_optional_feature("ndn-abstract", "NDN abstraction", False,
17 "Required boost libraries not found")
18 conf.env['ENABLE_NDN_ABSTRACT']=False;
19 return
20
21 conf.env['ENABLE_NDN_ABSTRACT']=True;
22
Alexander Afanasyev45b92d42011-08-14 23:11:38 -070023
Ilya Moiseenko1762af72011-07-18 16:43:10 -070024def build(bld):
Ilya Moiseenko1eff17d2011-08-17 10:55:53 -070025 module = bld.create_ns3_module ('NDNabstraction', ['applications', 'core', 'network', 'point-to-point','topology-read','visualizer'])
Alexander Afanasyev404c0792011-08-09 17:09:59 -070026
Alexander Afanasyev45b92d42011-08-14 23:11:38 -070027 tests = bld.create_ns3_module_test_library('NDNabstraction')
Ilya Moiseenko1762af72011-07-18 16:43:10 -070028 headers = bld.new_task_gen('ns3header')
29 headers.module = 'NDNabstraction'
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070030
31 if not bld.env['ENABLE_NDN_ABSTRACT']:
32 return
33
34 module.find_sources_in_dirs (['model', 'apps', 'helper'],[],['.cc']);
35 tests.find_sources_in_dirs( ['test'], [], ['.cc'] );
Alexander Afanasyevc74a6022011-08-15 20:01:35 -070036 headers.find_sources_in_dirs( ['model', 'apps', 'helper'], [], ['.h'] );
Alexander Afanasyev43e70252011-08-08 18:48:18 -070037
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070038
Alexander Afanasyev45b92d42011-08-14 23:11:38 -070039 for path in ["examples"]:
40 anode = bld.path.find_dir (path)
41 if not anode or not anode.is_child_of(bld.srcnode):
42 raise Utils.WscriptError("Unable to use '%s' - either because \
43 it's not a relative path"", or it's not child of \
44 '%s'."%(name,bld.srcnode))
45 bld.rescan(anode)
46 for filename in bld.cache_dir_contents[anode.id]:
47 if filename.startswith('.') or not filename.endswith(".cc"):
48 continue
49 name = filename[:-len(".cc")]
50 obj = bld.create_ns3_program(name, ['NDNabstraction'])
51 obj.path = obj.path.find_dir (path)
52 obj.source = filename
53 obj.target = name
54 obj.name = obj.target
Ilya Moiseenko1762af72011-07-18 16:43:10 -070055
Ilya Moiseenko54a6bba2011-08-01 11:01:26 -070056 if bld.env['ENABLE_OPENSSL']:
Alexander Afanasyev404c0792011-08-09 17:09:59 -070057 module.uselib = 'OPENSSL'
Ilya Moiseenko54a6bba2011-08-01 11:01:26 -070058
Ilya Moiseenko1762af72011-07-18 16:43:10 -070059 if bld.env['ENABLE_EXAMPLES']:
60 bld.add_subdirs('examples')
61
Ilya Moiseenko02fb7062011-08-11 17:18:00 -070062 bld.ns3_python_bindings()
Alexander Afanasyev43e70252011-08-08 18:48:18 -070063