SConstruct
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Wed, 06 Sep 2006 13:59:43 +0200
changeset 62 0ec2ff3a483f
parent 61 440c63f03259
child 104 3006f1b350ae
permissions -rw-r--r--
split SConstruct to make it more readable

import os.path
import build

ns3 = build.Ns3 ()
ns3.build_dir = 'build-dir'
ns3.version = '0.0.1'
ns3.name = 'ns3'
ns3.doxygen_config = os.path.join ('doc', 'doxygen.conf')
ns3.add_extra_dist (os.path.join ('doc', 'main.txt'))


#
# The Core module
#
core = build.Ns3Module ('core', 'src/core')
ns3.add (core)
core.add_sources ([
        'reference-list-test.cc',
        'callback-test.cc',
        'test.cc'
	])
env = Environment ()
if env['PLATFORM'] == 'posix' or env['PLATFORM'] == 'darwin':
	core.add_external_dep ('pthread')
	core.add_sources ([
		'unix-system-wall-clock-ms.cc',
		'unix-system-file.cc'
		])
elif env['PLATFORM'] == 'win32':
	core.add_sources ([
		'win32-system-wall-clock-ms.cc',
		'win32-system-file.cc'
		])
core.add_inst_headers ([
	'system-file.h',
        'system-wall-clock-ms.h',
        'reference-list.h',
        'callback.h',
        'test.h'
	])


#
# The Simu module
#
simu = build.Ns3Module ('simulator', 'src/simulator')
ns3.add (simu)
simu.add_dep ('core')
simu.add_sources ([
	'time.cc',
	'event-id.cc',
	'scheduler.cc',
	'scheduler-factory.cc',
	'scheduler-list.cc',
	'scheduler-heap.cc',
	'scheduler-map.cc',
        'event-impl.cc',
        'simulator.cc',
	])
simu.add_headers ([
	'scheduler-heap.h',
	'scheduler-map.h',
	'scheduler-list.h'
	])
simu.add_inst_headers ([
	'time.h',
	'event-id.h',
	'event-impl.h',
	'simulator.h',
	'scheduler.h',
	'scheduler-factory.h',
	])

#
# The Common module
#
common = build.Ns3Module ('common', 'src/common')
common.add_deps (['core', 'simulator'])
ns3.add (common)
common.add_sources ([
	'buffer.cc',
	'chunk.cc',
	'chunk-constant-data.cc',
	'packet.cc',
	'tags.cc',
	'pcap-writer.cc',
	'trace-container.cc',
	'variable-tracer-test.cc',
	'stream-tracer-test.cc',
	])
common.add_inst_headers ([
	'buffer.h',
	'chunk.h',
	'chunk-constant-data.h',
	'tags.h',
	'packet.h',
	'ui-variable-tracer.h',
	'si-variable-tracer.h',
	'f-variable-tracer.h',
	'callback-tracer.h',
	'stream-tracer.h',
	'trace-container.h',
	'pcap-writer.h',
	])


# utils
run_tests = build.Ns3Module ('run-tests', 'utils')
ns3.add (run_tests)
run_tests.set_executable ()
run_tests.add_deps (['core', 'simulator', 'common'])
run_tests.add_source ('run-tests.cc')

bench_packets = build.Ns3Module ('bench-packets', 'utils')
#ns3.add (bench_packets)
bench_packets.set_executable ()
bench_packets.add_dep ('core')
bench_packets.add_source ('bench-packets.cc')

bench_simu = build.Ns3Module ('bench-simulator', 'utils')
ns3.add (bench_simu)
bench_simu.set_executable ()
bench_simu.add_dep ('simulator')
bench_simu.add_source ('bench-simulator.cc')


# samples
sample_callback = build.Ns3Module ('sample-callback', 'samples')
sample_callback.set_executable ()
ns3.add (sample_callback)
sample_callback.add_dep ('core')
sample_callback.add_source ('main-callback.cc')

sample_trace = build.Ns3Module ('sample-trace', 'samples')
ns3.add (sample_trace)
sample_trace.add_dep ('common')
sample_trace.set_executable ()
sample_trace.add_source ('main-trace.cc')

sample_simu = build.Ns3Module ('sample-simulator', 'samples')
ns3.add (sample_simu)
sample_simu.set_executable ()
sample_simu.add_dep ('simulator')
sample_simu.add_source ('main-simulator.cc')

sample_packet = build.Ns3Module ('sample-packet', 'samples')
ns3.add (sample_packet)
sample_packet.set_executable ()
sample_packet.add_dep ('common')
sample_packet.add_source ('main-packet.cc')

sample_test = build.Ns3Module ('sample-test', 'samples')
sample_test.set_executable ()
ns3.add (sample_test)
sample_test.add_dep ('core')
sample_test.add_source ('main-test.cc')


ns3.generate_dependencies ()