LEFT | RIGHT |
1 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8;
-*- | 1 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8;
-*- |
2 import os | 2 import os |
3 import sys | 3 import sys |
4 | 4 |
5 import Options | 5 import Options |
6 import Logs | 6 import Logs |
7 import Utils | 7 import Utils |
8 import Task | 8 import Task |
9 | 9 |
10 # Required NSC version | 10 # Required NSC version |
11 NSC_RELEASE_NAME = "nsc-0.5.1" | 11 NSC_RELEASE_NAME = "nsc-0.5.2" |
12 | 12 |
13 | 13 |
14 def set_options(opt): | 14 def set_options(opt): |
15 opt.add_option('--with-nsc', | 15 opt.add_option('--with-nsc', |
16 help=('Use Network Simulation Cradle, given by the indicated
path,' | 16 help=('Use Network Simulation Cradle, given by the indicated
path,' |
17 ' to allow the use of real-world network stacks'), | 17 ' to allow the use of real-world network stacks'), |
18 default='', dest='with_nsc') | 18 default='', dest='with_nsc') |
19 | 19 |
20 | 20 |
21 def configure(conf): | 21 def configure(conf): |
22 conf.env['ENABLE_NSC'] = False | 22 conf.env['ENABLE_NSC'] = False |
23 | 23 |
24 # checks for flex and bison, which is needed to build NSCs globaliser | 24 # checks for flex and bison, which is needed to build NSCs globaliser |
25 # TODO: how to move these checks into the allinone scripts? | 25 # TODO: how to move these checks into the allinone scripts? |
26 #def check_nsc_buildutils(): | 26 #def check_nsc_buildutils(): |
27 # import flex | 27 # import flex |
28 # import bison | 28 # import bison |
29 # conf.check_tool('flex bison') | 29 # conf.check_tool('flex bison') |
30 # conf.check(lib='fl', mandatory=True) | 30 # conf.check(lib='fl', mandatory=True) |
31 | 31 |
32 # Check for the location of NSC | 32 # Check for the location of NSC |
33 if Options.options.with_nsc: | 33 if Options.options.with_nsc: |
34 if os.path.isdir(Options.options.with_nsc): | 34 if os.path.isdir(Options.options.with_nsc): |
35 conf.check_message("NSC location", '', True, ("%s (given)" % Options
.options.with_nsc)) | 35 conf.check_message("NSC location", '', True, ("%s (given)" % Options
.options.with_nsc)) |
36 conf.env['WITH_NSC'] = os.path.abspath(Options.options.with_nsc) | 36 conf.env['WITH_NSC'] = os.path.abspath(Options.options.with_nsc) |
37 else: | 37 else: |
| 38 # ns-3-dev uses ../nsc, while ns-3 releases use ../NSC_RELEASE_NAME |
38 nsc_dir = os.path.join('..', "nsc") | 39 nsc_dir = os.path.join('..', "nsc") |
| 40 nsc_release_dir = os.path.join('..', NSC_RELEASE_NAME) |
39 if os.path.isdir(nsc_dir): | 41 if os.path.isdir(nsc_dir): |
40 conf.check_message("NSC location", '', True, ("%s (guessed)" % nsc_d
ir)) | 42 conf.check_message("NSC location", '', True, ("%s (guessed)" % nsc_d
ir)) |
41 conf.env['WITH_NSC'] = os.path.abspath(nsc_dir) | 43 conf.env['WITH_NSC'] = os.path.abspath(nsc_dir) |
| 44 elif os.path.isdir(nsc_release_dir): |
| 45 conf.check_message("NSC location", '', True, ("%s (guessed)" % nsc_r
elease_dir)) |
| 46 conf.env['WITH_NSC'] = os.path.abspath(nsc_release_dir) |
42 del nsc_dir | 47 del nsc_dir |
| 48 del nsc_release_dir |
43 if not conf.env['WITH_NSC']: | 49 if not conf.env['WITH_NSC']: |
44 conf.check_message("NSC location", '', False) | 50 conf.check_message("NSC location", '', False) |
45 conf.report_optional_feature("nsc", "Network Simulation Cradle", False, | 51 conf.report_optional_feature("nsc", "Network Simulation Cradle", False, |
46 "NSC not found (see option --with-nsc)") | 52 "NSC not found (see option --with-nsc)") |
47 return | 53 return |
48 ···· | 54 ···· |
49 if sys.platform in ['linux2']: | 55 if sys.platform in ['linux2']: |
50 arch = os.uname()[4] | 56 arch = os.uname()[4] |
51 else: | 57 else: |
52 arch = None | 58 arch = None |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 'tcp-l4-protocol.cc', | 92 'tcp-l4-protocol.cc', |
87 'arp-header.cc', | 93 'arp-header.cc', |
88 'arp-cache.cc', | 94 'arp-cache.cc', |
89 'arp-l3-protocol.cc', | 95 'arp-l3-protocol.cc', |
90 'udp-socket-impl.cc', | 96 'udp-socket-impl.cc', |
91 # 'tcp-socket-impl.cc', | 97 # 'tcp-socket-impl.cc', |
92 'ipv4-end-point-demux.cc', | 98 'ipv4-end-point-demux.cc', |
93 'udp-socket-factory-impl.cc', | 99 'udp-socket-factory-impl.cc', |
94 'tcp-socket-factory-impl.cc', | 100 'tcp-socket-factory-impl.cc', |
95 'pending-data.cc', | 101 'pending-data.cc', |
96 'sequence-number.cc', | |
97 'rtt-estimator.cc', | 102 'rtt-estimator.cc', |
98 'ipv4-raw-socket-factory-impl.cc', | 103 'ipv4-raw-socket-factory-impl.cc', |
99 'ipv4-raw-socket-impl.cc', | 104 'ipv4-raw-socket-impl.cc', |
100 'icmpv4.cc', | 105 'icmpv4.cc', |
101 'icmpv4-l4-protocol.cc', | 106 'icmpv4-l4-protocol.cc', |
102 'loopback-net-device.cc', | 107 'loopback-net-device.cc', |
103 'ndisc-cache.cc', | 108 'ndisc-cache.cc', |
104 'ipv6-interface.cc', | 109 'ipv6-interface.cc', |
105 'icmpv6-header.cc', | 110 'icmpv6-header.cc', |
106 'ipv6-l3-protocol.cc', | 111 'ipv6-l3-protocol.cc', |
(...skipping 19 matching lines...) Expand all Loading... |
126 'tcp-newreno.cc', | 131 'tcp-newreno.cc', |
127 'tcp-rx-buffer.cc', | 132 'tcp-rx-buffer.cc', |
128 'tcp-tx-buffer.cc', | 133 'tcp-tx-buffer.cc', |
129 ] | 134 ] |
130 | 135 |
131 headers = bld.new_task_gen('ns3header') | 136 headers = bld.new_task_gen('ns3header') |
132 headers.module = 'internet-stack' | 137 headers.module = 'internet-stack' |
133 headers.source = [ | 138 headers.source = [ |
134 'udp-header.h', | 139 'udp-header.h', |
135 'tcp-header.h', | 140 'tcp-header.h', |
136 'sequence-number.h', | |
137 'icmpv4.h', | 141 'icmpv4.h', |
138 'icmpv6-header.h', | 142 'icmpv6-header.h', |
139 # used by routing | 143 # used by routing |
140 'ipv4-interface.h', | 144 'ipv4-interface.h', |
141 'ipv4-l3-protocol.h', | 145 'ipv4-l3-protocol.h', |
142 'ipv6-l3-protocol.h', | 146 'ipv6-l3-protocol.h', |
143 'ipv6-extension-header.h', | 147 'ipv6-extension-header.h', |
144 'ipv6-option-header.h', | 148 'ipv6-option-header.h', |
145 'arp-l3-protocol.h', | 149 'arp-l3-protocol.h', |
146 'udp-l4-protocol.h', | 150 'udp-l4-protocol.h', |
147 'tcp-l4-protocol.h', | 151 'tcp-l4-protocol.h', |
148 'icmpv4-l4-protocol.h', | 152 'icmpv4-l4-protocol.h', |
149 'ipv4-l4-protocol.h', | 153 'ipv4-l4-protocol.h', |
| 154 'arp-header.h', |
150 'arp-cache.h', | 155 'arp-cache.h', |
151 'icmpv6-l4-protocol.h', | 156 'icmpv6-l4-protocol.h', |
152 'ipv6-l4-protocol.h', | 157 'ipv6-l4-protocol.h', |
153 'ipv6-interface.h', | 158 'ipv6-interface.h', |
154 'ndisc-cache.h', | 159 'ndisc-cache.h', |
155 'loopback-net-device.h' | 160 'loopback-net-device.h', |
156 ] | 161 ] |
157 | 162 |
158 if bld.env['NSC_ENABLED']: | 163 if bld.env['NSC_ENABLED']: |
159 obj.source.append ('nsc-tcp-socket-impl.cc') | 164 obj.source.append ('nsc-tcp-socket-impl.cc') |
160 obj.source.append ('nsc-tcp-l4-protocol.cc') | 165 obj.source.append ('nsc-tcp-l4-protocol.cc') |
161 obj.source.append ('nsc-tcp-socket-factory-impl.cc') | 166 obj.source.append ('nsc-tcp-socket-factory-impl.cc') |
162 obj.source.append ('nsc-sysctl.cc') | 167 obj.source.append ('nsc-sysctl.cc') |
163 headers.source.append('nsc-tcp-l4-protocol.h') | 168 headers.source.append('nsc-tcp-l4-protocol.h') |
164 obj.uselib = 'DL' | 169 obj.uselib = 'DL' |
LEFT | RIGHT |