1## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- 2 3def configure(conf): 4 have_sqlite3 = conf.check_cfg(package='sqlite3', uselib_store='SQLITE3', 5 args=['--cflags', '--libs'], 6 mandatory=False) 7 8 conf.env['SQLITE_STATS'] = have_sqlite3 9 have_sem = conf.check_nonfatal(header_name='semaphore.h', define_name='HAVE_SEMAPHORE_H') 10 conf.env['SEMAPHORE_ENABLED'] = have_sem 11 conf.report_optional_feature("SQLiteStats", "SQLite stats support", 12 conf.env['SQLITE_STATS'] and conf.env['SEMAPHORE_ENABLED'], 13 "library 'sqlite3' and/or semaphore.h not found") 14 15def build(bld): 16 obj = bld.create_ns3_module('stats', ['core']) 17 obj.source = [ 18 'helper/file-helper.cc', 19 'helper/gnuplot-helper.cc', 20 'model/data-calculator.cc', 21 'model/time-data-calculators.cc', 22 'model/data-output-interface.cc', 23 'model/omnet-data-output.cc', 24 'model/data-collector.cc', 25 'model/gnuplot.cc', 26 'model/data-collection-object.cc', 27 'model/probe.cc', 28 'model/boolean-probe.cc', 29 'model/double-probe.cc', 30 'model/time-probe.cc', 31 'model/uinteger-8-probe.cc', 32 'model/uinteger-16-probe.cc', 33 'model/uinteger-32-probe.cc', 34 'model/time-series-adaptor.cc', 35 'model/file-aggregator.cc', 36 'model/gnuplot-aggregator.cc', 37 'model/get-wildcard-matches.cc', 38 'model/histogram.cc', 39 ] 40 41 module_test = bld.create_ns3_module_test_library('stats') 42 module_test.source = [ 43 'test/basic-data-calculators-test-suite.cc', 44 'test/average-test-suite.cc', 45 'test/double-probe-test-suite.cc', 46 'test/histogram-test-suite.cc', 47 ] 48 49 # Tests encapsulating example programs should be listed here 50 if (bld.env['ENABLE_EXAMPLES']): 51 module_test.source.extend([ 52 # 'test/stats-examples-test-suite.cc', 53 ]) 54 55 headers = bld(features='ns3header') 56 headers.module = 'stats' 57 headers.source = [ 58 'helper/file-helper.h', 59 'helper/gnuplot-helper.h', 60 'model/data-calculator.h', 61 'model/time-data-calculators.h', 62 'model/basic-data-calculators.h', 63 'model/data-output-interface.h', 64 'model/omnet-data-output.h', 65 'model/data-collector.h', 66 'model/gnuplot.h', 67 'model/average.h', 68 'model/data-collection-object.h', 69 'model/probe.h', 70 'model/boolean-probe.h', 71 'model/double-probe.h', 72 'model/time-probe.h', 73 'model/uinteger-8-probe.h', 74 'model/uinteger-16-probe.h', 75 'model/uinteger-32-probe.h', 76 'model/time-series-adaptor.h', 77 'model/file-aggregator.h', 78 'model/gnuplot-aggregator.h', 79 'model/get-wildcard-matches.h', 80 'model/histogram.h', 81 ] 82 83 if bld.env['SQLITE_STATS']: 84 headers.source.append('model/sqlite-data-output.h') 85 obj.source.append('model/sqlite-data-output.cc') 86 obj.use.append('SQLITE3') 87 88 if bld.env['SQLITE_STATS'] and bld.env['SEMAPHORE_ENABLED']: 89 obj.source.append('model/sqlite-output.cc') 90 headers.source.append('model/sqlite-output.h') 91 92 if (bld.env['ENABLE_EXAMPLES']): 93 bld.recurse('examples') 94 95 bld.ns3_python_bindings() 96