Skip to content

Commit

Permalink
Add support for building with WAF
Browse files Browse the repository at this point in the history
  • Loading branch information
gjcarneiro committed May 7, 2007
1 parent 7e8a27f commit 5d0f261
Show file tree
Hide file tree
Showing 15 changed files with 622 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .hgignore
Expand Up @@ -2,6 +2,8 @@
.*\.o$
.*~$
build-dir
build
.*\.sconsign
doc/html.*
doc/latex.*
.lock-wscript
1 change: 1 addition & 0 deletions ns3/_placeholder_
@@ -0,0 +1 @@
This is a placeholder file used only to keep the ns3 directory present (needed for the WAF build system).
30 changes: 30 additions & 0 deletions samples/wscript
@@ -0,0 +1,30 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
import Params

def build(bld):
def create_ns_prog(name, source, deps=['core', 'common', 'simulator']):
obj = bld.create_obj('cpp', 'program')
obj.target = name
obj.uselib_local = ' '.join(["ns3-%s" % dep for dep in deps])
obj.source = source
for module in deps:
obj.env.append_value('RPATH', r'-Wl,--rpath=\$ORIGIN/../src/%s' % (module,))
return obj

obj = create_ns_prog('main-callback', 'main-callback.cc')
obj = create_ns_prog('main-simulator', 'main-simulator.cc')
obj = create_ns_prog('main-packet', 'main-packet.cc')
#obj = create_ns_prog('main-trace', 'main-trace.cc')
obj = create_ns_prog('main-test', 'main-test.cc')
obj = create_ns_prog('main-ptr', 'main-ptr.cc')

#obj = create_ns_prog('main-p2p-net-device-if', 'main-p2p-net-device-if.cc',
# deps=['core', 'common', 'simulator', 'node', 'p2p'])

obj = create_ns_prog('main-simple', 'main-simple.cc',
deps=['core', 'common', 'simulator',
'node', 'internet-node', 'applications'])

#obj = create_ns_prog('main-simple-p2p', 'main-simple-p2p.cc',
# deps=['core', 'common', 'simulator', 'node', 'p2p'])

20 changes: 20 additions & 0 deletions src/applications/wscript
@@ -0,0 +1,20 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-


def build(bld):
obj = bld.create_obj('cpp', 'shlib')
obj.name = 'ns3-applications'
obj.target = obj.name
obj.deps = ['ns3-node']
obj.source = [
'application-list.cc',
'application.cc',
'onoff-application.cc',
]

headers = bld.create_obj('ns3header')
headers.source = [
'application-list.h',
'application.h',
'onoff-application.h',
]
49 changes: 49 additions & 0 deletions src/common/wscript
@@ -0,0 +1,49 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-


def build(bld):
common = bld.create_obj('cpp', 'shlib')
common.name = 'ns3-common'
common.target = common.name
common.deps = ['ns3-core', 'ns3-simulator']
common.source = [
'buffer.cc',
'header.cc',
'chunk.cc',
'trailer.cc',
'packet.cc',
'tags.cc',
'pcap-writer.cc',
'variable-tracer-test.cc',
'trace-context.cc',
'trace-resolver.cc',
'callback-trace-source.cc',
'empty-trace-resolver.cc',
'composite-trace-resolver.cc',
'trace-root.cc',
'data-rate.cc',
]
headers = bld.create_obj('ns3header')
headers.source = [
'buffer.h',
'header.h',
'chunk.h',
'trailer.h',
'tags.h',
'packet.h',
'uv-trace-source.h',
'sv-trace-source.h',
'fv-trace-source.h',
'pcap-writer.h',
'callback-trace-source.h',
'trace-context.h',
'trace-resolver.h',
'empty-trace-resolver.h',
'composite-trace-resolver.h',
'array-trace-resolver.h',
'trace-root.h',
'terminal-trace-resolver.h',
'smartvector.h',
'smartset.h',
'data-rate.h',
]
74 changes: 74 additions & 0 deletions src/core/wscript
@@ -0,0 +1,74 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
import sys


def configure(conf):
e = conf.create_header_configurator()
e.mandatory = False
e.name = 'stdlib.h'
e.define = 'HAVE_STDLIB_H'
e.run()

e = conf.create_header_configurator()
e.mandatory = False
e.name = 'stdlib.h'
e.define = 'HAVE_GETENV'
e.run()

conf.write_config_header('ns3/core-config.h')



def build(bld):
core = bld.create_obj('cpp', 'shlib')
core.name = 'ns3-core'
core.target = core.name
core.deps = 'ns3-core-headers'
core.source = [
'reference-list-test.cc',
'callback-test.cc',
'debug.cc',
'assert.cc',
'ptr.cc',
'object.cc',
'test.cc',
'random-variable.cc',
'rng-stream.cc',
'ns-unknown.cc',
'uid-manager.cc',
'default-value.cc',
'command-line.cc',
'type-name.cc',
'ns-unknown-manager.cc',
]

if sys.platform == 'win32':
core.source.extend([
'win32-system-wall-clock-ms.cc',
])
else:
core.source.extend([
'unix-system-wall-clock-ms.cc',
])

headers = bld.create_obj('ns3header')
headers.name = 'ns3-core-headers'
headers.source = [
'system-wall-clock-ms.h',
'reference-list.h',
'callback.h',
'ptr.h',
'object.h',
'debug.h',
'assert.h',
'fatal-error.h',
'test.h',
'random-variable.h',
'rng-stream.h',
'ns-unknown.h',
'default-value.h',
'command-line.h',
'type-name.h',
'ns-unknown-manager.h',
]

23 changes: 23 additions & 0 deletions src/devices/p2p-gfr/wscript
@@ -0,0 +1,23 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-


def build(bld):
p2p = bld.create_obj('cpp', 'objects')
p2p.name = 'ns3-p2p-gfr'
p2p.source = [
'p2p-net-device.cc',
'p2p-channel.cc',
'p2p-topology.cc',
'p2p-phy.cc',
'layer-connector.cc',
]
headers = bld.create_obj('ns3header')
headers.name = 'ns3-p2p-gfr-headers'
headers.source = [
'p2p-net-device.h',
'p2p-channel.h',
'p2p-topology.h',
'p2p-phy.h',
'layer-connector.h',
]

18 changes: 18 additions & 0 deletions src/devices/p2p/wscript
@@ -0,0 +1,18 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-


def build(bld):
p2p = bld.create_obj('cpp', 'shlib')
p2p.name = 'ns3-p2p'
p2p.target = p2p.name
p2p.deps = ['ns3-node']
p2p.source = [
'p2p-net-device.cc',
'p2p-channel.cc',
]
headers = bld.create_obj('ns3header')
headers.source = [
'p2p-net-device.h',
'p2p-channel.h',
]

6 changes: 6 additions & 0 deletions src/devices/wscript
@@ -0,0 +1,6 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-

def build(bld):
bld.add_subdirs('p2p')
#bld.add_subdirs('p2p-gfr')

43 changes: 43 additions & 0 deletions src/internet-node/wscript
@@ -0,0 +1,43 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-


def build(bld):
obj = bld.create_obj('cpp', 'shlib')
obj.name = 'ns3-internet-node'
obj.target = obj.name
obj.deps = ['ns3-node', 'ns3-applications']
obj.source = [
'internet-node.cc',
'l3-demux.cc',
'l3-protocol.cc',
'ipv4-l4-demux.cc',
'ipv4-l4-protocol.cc',
'ipv4-header.cc',
'udp-header.cc',
'ipv4-checksum.cc',
'ipv4-interface.cc',
'ipv4.cc',
'ipv4-end-point.cc',
'udp.cc',
'arp-header.cc',
'arp-cache.cc',
'arp-ipv4-interface.cc',
'arp.cc',
'ipv4-loopback-interface.cc',
'header-utils.cc',
'udp-socket.cc',
'ipv4-end-point-demux.cc',
'i-udp-impl.cc',
'i-arp-private.cc',
'i-ipv4-impl.cc',
'i-ipv4-private.cc',
'ascii-trace.cc',
'pcap-trace.cc',
]

headers = bld.create_obj('ns3header')
headers.source = [
'internet-node.h',
'ascii-trace.h',
'pcap-trace.h',
]
40 changes: 40 additions & 0 deletions src/node/wscript
@@ -0,0 +1,40 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-


def build(bld):
node = bld.create_obj('cpp', 'shlib')
node.name = 'ns3-node'
node.target = node.name
node.deps = ['ns3-core', 'ns3-common', 'ns3-simulator']
node.source = [
'node.cc',
'ipv4-address.cc',
'net-device.cc',
'mac-address.cc',
'llc-snap-header.cc',
'ipv4-route.cc',
'queue.cc',
'drop-tail.cc',
'channel.cc',
'node-list.cc',
'socket.cc',
'i-udp.cc',
'i-ipv4.cc',
]

headers = bld.create_obj('ns3header')
headers.source = [
'node.h',
'ipv4-address.h',
'net-device.h',
'mac-address.h',
'ipv4-route.h',
'queue.h',
'drop-tail.h',
'llc-snap-header.h',
'channel.h',
'node-list.h',
'socket.h',
'i-udp.h',
'i-ipv4.h',
]

0 comments on commit 5d0f261

Please sign in to comment.