author | Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
Thu, 05 May 2011 15:16:49 +0200 | |
changeset 71 | 38b25a74e8e7 |
parent 69 | 19d7af80f47f |
permissions | -rw-r--r-- |
0 | 1 |
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- |
2 |
||
3 |
import os |
|
63 | 4 |
import Options |
5 |
import os.path |
|
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
6 |
import ns3waf |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
7 |
import sys |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
8 |
|
63 | 9 |
|
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
10 |
def options(opt): |
63 | 11 |
opt.tool_options('compiler_cc') |
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
12 |
ns3waf.options(opt) |
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
13 |
opt.add_option('--enable-kernel-stack', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
14 |
help=('Path to the prefix where the kernel wrapper headers are installed'), |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
15 |
default=None, |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
16 |
dest='kernel_stack', type="string") |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
17 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
18 |
def search_file(files): |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
19 |
for f in files: |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
20 |
if os.path.isfile (f): |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
21 |
return f |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
22 |
return None |
0 | 23 |
|
24 |
def configure(conf): |
|
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
25 |
ns3waf.check_modules(conf, ['core', 'network', 'internet'], mandatory = True) |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
26 |
ns3waf.check_modules(conf, ['point-to-point'], mandatory = False) |
63 | 27 |
|
28 |
conf.check_tool('compiler_cc') |
|
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
29 |
|
63 | 30 |
conf.env.append_value('LINKFLAGS', '-pthread') |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
31 |
conf.check (lib='dl', mandatory = True) |
63 | 32 |
|
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
33 |
vg_h = conf.check(header_name='valgrind/valgrind.h', mandatory=False) |
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
34 |
vg_memcheck_h = conf.check(header_name='valgrind/memcheck.h', mandatory=False) |
63 | 35 |
if vg_h and vg_memcheck_h: |
36 |
conf.env.append_value('CXXDEFINES', 'HAVE_VALGRIND_H') |
|
37 |
||
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
38 |
conf.start_msg('Searching C library') |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
39 |
libc = search_file ([ |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
40 |
'/lib64/libc.so.6', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
41 |
'/lib/libc.so.6', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
42 |
]) |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
43 |
if libc is None: |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
44 |
conf.fatal('not found') |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
45 |
else: |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
46 |
conf.end_msg(libc, True) |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
47 |
conf.env['LIBC_FILE'] = libc |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
48 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
49 |
conf.start_msg('Searching pthread library') |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
50 |
libpthread = search_file ([ |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
51 |
'/lib64/libpthread.so.0', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
52 |
'/lib/libpthread.so.0', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
53 |
]) |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
54 |
if libpthread is None: |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
55 |
conf.fatal('not found') |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
56 |
else: |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
57 |
conf.end_msg(libpthread, True) |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
58 |
conf.env['LIBPTHREAD_FILE'] = libpthread |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
59 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
60 |
if Options.options.kernel_stack is not None and os.path.isdir(Options.options.kernel_stack): |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
61 |
conf.check(header_name='sim/sim.h', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
62 |
includes=os.path.join(Options.options.kernel_stack, 'include')) |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
63 |
conf.check() |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
64 |
conf.env['KERNEL_STACK'] = Options.options.kernel_stack |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
65 |
|
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
66 |
ns3waf.print_feature_summary(conf) |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
67 |
|
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
68 |
def build_netlink(bld): |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
69 |
module_source = [ |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
70 |
'netlink/netlink-socket.cc', |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
71 |
'netlink/netlink-socket-address.cc', |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
72 |
'netlink/netlink-socket-factory.cc', |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
73 |
'netlink/netlink-attribute.cc', |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
74 |
'netlink/netlink-message.cc', |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
75 |
'netlink/netlink-message-route.cc', |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
76 |
] |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
77 |
module_headers = [ |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
78 |
'netlink/netlink-socket-factory.h' |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
79 |
] |
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
80 |
module = ns3waf.create_module(bld, |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
81 |
name='netlink', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
82 |
needed = ['internet', 'core'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
83 |
source=module_source, |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
84 |
headers=module_headers) |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
85 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
86 |
module_tests = [ |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
87 |
'test/netlink-socket-test.cc', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
88 |
] |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
89 |
module.add_runner_test(needed = ['internet', 'point-to-point', 'core', 'netlink'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
90 |
source=module_tests) |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
91 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
92 |
def dce_kw(**kw): |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
93 |
d = dict(**kw) |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
94 |
if os.uname()[4] == 'x86_64': |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
95 |
mcmodel = ['-mcmodel=large'] |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
96 |
else: |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
97 |
mcmodel = [] |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
98 |
nofortify = ['-U_FORTIFY_SOURCE'] |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
99 |
#debug_dl = ['-Wl,--dynamic-linker=/usr/lib/debug/ld-linux-x86-64.so.2'] |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
100 |
debug_dl = [] |
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
101 |
d['cxxflags'] = d.get('cxxflags', []) + ['-fpie'] + mcmodel + nofortify |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
102 |
d['cflags'] = d.get('cflags', []) + ['-fpie'] + mcmodel + nofortify |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
103 |
d['linkflags'] = d.get('linkflags', []) + ['-pie'] + debug_dl |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
104 |
return d |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
105 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
106 |
def build_dce_tests(module): |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
107 |
module.add_runner_test(needed=['core', 'dce', 'internet'], source=['test/dce-manager-test.cc']) |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
108 |
module.add_test(features='cxx cxxshlib', source=['test/test-macros.cc'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
109 |
target='lib/test', linkflags=['-Wl,-soname=libtest.so']) |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
110 |
|
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
111 |
tests = [['test-empty', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
112 |
['test-sleep', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
113 |
['test-nanosleep', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
114 |
['test-pthread', ['PTHREAD']], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
115 |
['test-mutex', ['PTHREAD']], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
116 |
['test-once', ['PTHREAD']], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
117 |
['test-pthread-key', ['PTHREAD']], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
118 |
['test-sem', ['PTHREAD']], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
119 |
['test-malloc', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
120 |
['test-malloc-2', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
121 |
['test-fd-simple', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
122 |
['test-strerror', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
123 |
['test-stdio', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
124 |
['test-string', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
125 |
['test-netdb', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
126 |
['test-env', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
127 |
['test-cond', ['PTHREAD']], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
128 |
['test-timer-fd', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
129 |
['test-stdlib', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
130 |
['test-select', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
131 |
['test-random', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
132 |
['test-ioctl', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
133 |
['test-fork', []], |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
134 |
] |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
135 |
for name,uselib in tests: |
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
136 |
module.add_test(**dce_kw(target='bin/' + name, source = ['test/' + name + '.cc'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
137 |
use = uselib + ['lib/test'])) |
68
a384d3f2f086
build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
66
diff
changeset
|
138 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
139 |
def build_dce_examples(module): |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
140 |
dce_examples = [['udp-server', []], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
141 |
['udp-client', []], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
142 |
['udp-perf', ['m']], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
143 |
['tcp-server', []], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
144 |
['tcp-client', []], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
145 |
] |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
146 |
for name,lib in dce_examples: |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
147 |
module.add_example(**dce_kw(target = 'bin/' + name, |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
148 |
source = ['example/' + name + '.cc'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
149 |
lib = lib)) |
68
a384d3f2f086
build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
66
diff
changeset
|
150 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
151 |
module.add_example(needed = ['core', 'internet', 'dce'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
152 |
target='bin/dce-tcp-simple', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
153 |
source=['example/dce-tcp-simple.cc']) |
68
a384d3f2f086
build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
66
diff
changeset
|
154 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
155 |
module.add_example(needed = ['core', 'internet', 'dce'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
156 |
target='bin/dce-udp-simple', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
157 |
source=['example/dce-udp-simple.cc']) |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
158 |
|
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
159 |
module.add_example(needed = ['core', 'internet', 'dce', 'point-to-point'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
160 |
target='bin/dce-udp-perf', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
161 |
source=['example/dce-udp-perf.cc']) |
68
a384d3f2f086
build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
66
diff
changeset
|
162 |
|
a384d3f2f086
build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
66
diff
changeset
|
163 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
164 |
def build_dce_kernel_examples(module): |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
165 |
module.add_example(needed = ['core', 'network', 'dce'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
166 |
target='bin/dce-linux-simple', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
167 |
source=['example/dce-linux-simple.cc']) |
68
a384d3f2f086
build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
66
diff
changeset
|
168 |
|
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
169 |
module.add_example(needed = ['core', 'network', 'dce', 'wifi', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
170 |
'point-to-point', 'csma', 'mobility'], |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
171 |
target='bin/dce-linux', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
172 |
source=['example/dce-linux.cc']) |
68
a384d3f2f086
build examples
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
66
diff
changeset
|
173 |
|
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
174 |
|
0 | 175 |
def build(bld): |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
176 |
build_netlink(bld) |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
177 |
|
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
178 |
if bld.env['KERNEL_STACK']: |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
179 |
kernel_source = [ |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
180 |
'linux-socket-fd-factory.cc', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
181 |
'linux-socket-fd.cc', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
182 |
] |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
183 |
kernel_headers = [ 'linux-socket-fd-factory.h'] |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
184 |
kernel_includes = [os.path.join(bld.env['KERNEL_STACK'], 'include')] |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
185 |
else: |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
186 |
kernel_source = [] |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
187 |
kernel_headers = [] |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
188 |
kernel_includes = [] |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
189 |
|
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
190 |
module_source = [ |
63 | 191 |
'model/dce-manager.cc', |
192 |
'model/dce-application.cc', |
|
193 |
'model/dce.cc', |
|
194 |
'model/dce-signal.cc', |
|
195 |
'model/libc-dce.c', |
|
196 |
'model/utils.cc', |
|
197 |
'model/unix-fd.cc', |
|
198 |
'model/unix-file-fd.cc', |
|
199 |
'model/unix-socket-fd.cc', |
|
200 |
'model/unix-datagram-socket-fd.cc', |
|
201 |
'model/unix-stream-socket-fd.cc', |
|
202 |
'model/unix-timer-fd.cc', |
|
203 |
'model/dce-fd.cc', |
|
204 |
'model/dce-stdio.cc', |
|
205 |
'model/dce-pthread.cc', |
|
206 |
'model/dce-stdlib.cc', |
|
207 |
'model/dce-debug.cc', |
|
208 |
'model/dce-semaphore.cc', |
|
209 |
'model/dce-pthread-mutex.cc', |
|
210 |
'model/dce-cxa.cc', |
|
211 |
'model/dce-netdb.cc', |
|
212 |
'model/dce-string.cc', |
|
213 |
'model/dce-env.cc', |
|
214 |
'model/dce-pthread-cond.cc', |
|
215 |
'model/dce-timerfd.cc', |
|
216 |
'model/dce-stat.cc', |
|
217 |
'model/dce-global-variables.cc', |
|
218 |
'model/cmsg.cc', |
|
219 |
'model/waiter.cc', |
|
220 |
'model/kingsley-alloc.cc', |
|
221 |
'model/dce-alloc.cc', |
|
222 |
'model/fiber-manager.cc', |
|
223 |
'model/ucontext-fiber-manager.cc', |
|
224 |
'model/pthread-fiber-manager.cc', |
|
225 |
'model/task-manager.cc', |
|
226 |
'model/task-scheduler.cc', |
|
227 |
'model/rr-task-scheduler.cc', |
|
228 |
'model/loader-factory.cc', |
|
229 |
'model/elf-dependencies.cc', |
|
230 |
'model/elf-cache.cc', |
|
231 |
'model/cooja-loader-factory.cc', |
|
232 |
'model/copy-loader-factory.cc', |
|
233 |
'model/dlm-loader-factory.cc', |
|
234 |
'model/socket-fd-factory.cc', |
|
235 |
'model/ns3-socket-fd-factory.cc', |
|
236 |
# helper. |
|
237 |
'helper/dce-manager-helper.cc', |
|
238 |
'helper/dce-application-helper.cc', |
|
239 |
] |
|
64
015a353a487b
initial build of module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
63
diff
changeset
|
240 |
module_headers = [ |
63 | 241 |
'model/dce-manager.h', |
242 |
'model/task-scheduler.h', |
|
243 |
'model/task-manager.h', |
|
244 |
'model/socket-fd-factory.h', |
|
245 |
'model/loader-factory.h', |
|
246 |
'model/dce-application.h', |
|
247 |
'helper/dce-manager-helper.h', |
|
248 |
'helper/dce-application-helper.h', |
|
249 |
] |
|
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
250 |
module_source = module_source + kernel_source |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
251 |
module_headers = module_headers + kernel_headers |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
252 |
uselib = ns3waf.modules_uselib(bld, ['core', 'network', 'internet', 'netlink']) |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
253 |
module = ns3waf.create_module(bld, name='dce', |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
254 |
source=module_source, |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
255 |
headers=module_headers, |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
256 |
use=uselib, |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
257 |
includes=kernel_includes, |
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
258 |
lib=['dl']) |
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
259 |
build_dce_tests(module) |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
260 |
build_dce_examples(module) |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
261 |
|
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
262 |
if bld.env['KERNEL_STACK']: |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
263 |
build_dce_kernel_examples(module) |
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
264 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
265 |
bld.add_group('dce_version_files') |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
266 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
267 |
bld(source=['model/libc-ns3.version'], |
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
268 |
target='model/libc.version', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
269 |
rule='readversiondef ' + bld.env['LIBC_FILE'] + ' |' \ |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
270 |
'cat ${SRC[0].abspath()} - > ${TGT}') |
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
271 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
272 |
bld(source=['model/libpthread-ns3.version'], |
69
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
273 |
target='model/libpthread.version', |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
274 |
rule='readversiondef ' + bld.env['LIBPTHREAD_FILE'] + ' |' \ |
19d7af80f47f
cleanup build script
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
68
diff
changeset
|
275 |
'cat ${SRC[0].abspath()} - > ${TGT}') |
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
276 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
277 |
bld.add_group('dce_use_version_files') |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
278 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
279 |
# The very small libc used to replace the glibc |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
280 |
# and forward to the dce_* code |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
281 |
bld.shlib(source = ['model/libc.c', 'model/libc-global-variables.c'], |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
282 |
target='lib/c-ns3', cflags=['-g'], |
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
283 |
defines=['LIBSETUP=libc_setup'], |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
284 |
linkflags=['-nostdlib', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
285 |
'-Wl,--version-script=' + os.path.join('model', 'libc.version'), |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
286 |
'-Wl,-soname=libc.so.6']) |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
287 |
|
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
288 |
# The very small libpthread used to replace the glibc |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
289 |
# and forward to the dce_* code |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
290 |
bld.shlib(source = ['model/libc.c'], |
66
2fe1f3e576c9
make it somewhat build sanely
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
65
diff
changeset
|
291 |
target='lib/pthread-ns3', cflags=['-g'], |
65
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
292 |
defines=['LIBSETUP=libpthread_setup'], |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
293 |
linkflags=['-nostdlib', '-lc', |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
294 |
'-Wl,--version-script=' + os.path.join('model', 'libpthread.version'), |
227f6347e4e1
build fake c and pthread libraries
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
64
diff
changeset
|
295 |
'-Wl,-soname=libpthread.so.0']) |