author | Tom Henderson <tomh@tomh.org> |
Sun, 17 Jun 2007 16:04:12 -0700 | |
changeset 777 | 38099dd26e94 |
parent 654 | 77ced4ddc0f7 |
permissions | -rw-r--r-- |
124
c0d0f7bebb73
add magic emacs incantation for python
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
117
diff
changeset
|
1 |
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- |
83
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
2 |
# Copyright (c) 2006 INRIA |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
3 |
# All rights reserved. |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
4 |
# |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
5 |
# This program is free software; you can redistribute it and/or modify |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
6 |
# it under the terms of the GNU General Public License version 2 as |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
7 |
# published by the Free Software Foundation; |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
8 |
# |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
9 |
# This program is distributed in the hope that it will be useful, |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
10 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
12 |
# GNU General Public License for more details. |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
13 |
# |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
14 |
# You should have received a copy of the GNU General Public License |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
15 |
# along with this program; if not, write to the Free Software |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
16 |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
17 |
# |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
18 |
# Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
19 |
|
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
20 |
|
430203344318
add inria copyright and gpl statement on build.py
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
62
diff
changeset
|
21 |
|
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
import os |
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
import os.path |
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
import shutil |
62
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
25 |
from SCons.Environment import Environment |
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
26 |
from SCons.Builder import Builder |
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
27 |
from SCons.Action import Action |
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
28 |
import SCons |
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
29 |
|
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
30 |
# hack stolen from wengo |
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
31 |
# to get an ARGUMENTS defined correctly |
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
32 |
try: |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
33 |
ARGUMENTS = SCons.Script.ARGUMENTS |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
34 |
COMMAND_LINE_TARGETS = SCons.Script.COMMAND_LINE_TARGETS |
62
0ec2ff3a483f
split SConstruct to make it more readable
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
61
diff
changeset
|
35 |
except AttributeError: |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
36 |
from SCons.Script.SConscript import Arguments |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
37 |
from SCons.Script.SConscript import CommandLineTargets |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
38 |
ARGUMENTS = Arguments |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
39 |
COMMAND_LINE_TARGETS = CommandLineTargets |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
40 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
41 |
class Ns3Module: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
42 |
def __init__(self, name, dir): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
43 |
self.sources = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
44 |
self.inst_headers = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
45 |
self.headers = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
46 |
self.extra_dist = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
47 |
self.deps = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
48 |
self.external_deps = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
49 |
self.config = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
50 |
self.name = name |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
51 |
self.dir = dir |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
52 |
self.executable = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
53 |
self.library = True |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
54 |
self.ldflags = [] |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
55 |
self.header_inst_dir = '' |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
56 |
def set_library(self): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
57 |
self.library = True |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
58 |
self.executable = False |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
59 |
def set_executable(self): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
60 |
self.library = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
61 |
self.executable = True |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
62 |
def add_config(self, config_fn): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
63 |
self.config.append(config_fn) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
64 |
def add_extra_dist(self, dist): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
65 |
self.extra_dist.append(dist) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
66 |
def add_external_dep(self, dep): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
67 |
self.external_deps.append(dep) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
68 |
def add_dep(self, dep): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
69 |
self.deps.append(dep) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
70 |
def add_deps(self, deps): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
71 |
self.deps.extend(deps) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
72 |
def add_source(self, source): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
73 |
self.sources.append(source) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
74 |
def add_sources(self, sources): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
75 |
self.sources.extend(sources) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
76 |
def add_header(self, header): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
77 |
self.headers.append(header) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
78 |
def add_headers(self, headers): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
79 |
self.headers.extend(headers) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
80 |
def add_inst_header(self, header): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
81 |
self.inst_headers.append(header) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
82 |
def add_inst_headers(self, headers): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
83 |
self.inst_headers.extend(headers) |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
84 |
def add_ldflags (self, ldflags): |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
85 |
self.ldflags.extend (ldflags) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
86 |
def add_ldflag (self, ldflag): |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
87 |
self.add_ldflags ([ldflag]) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
88 |
def set_header_inst_dir (self, inst_dir): |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
89 |
self.header_inst_dir = inst_dir |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
90 |
|
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
91 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
92 |
def MyCopyAction(target, source, env): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
93 |
try: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
94 |
if len(target) == len(source): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
95 |
for i in range(len(target)): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
96 |
shutil.copy(source[i].path, target[i].path) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
97 |
return 0 |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
98 |
else: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
99 |
return 'invalid target/source match' |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
100 |
except: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
101 |
|
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
102 |
return 'exception' |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
103 |
def MyCopyActionPrint(target, source, env): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
104 |
if len(target) == len(source): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
105 |
output = '' |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
106 |
for i in range(len(target)): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
107 |
output = output + 'copy \'' + source[i].path + '\' to \'' + target[i].path + '\'' |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
108 |
if i < len(target) - 1: |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
109 |
output = output + '\n' |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
110 |
return output |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
111 |
else: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
112 |
return 'error in copy' |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
113 |
def GcxxEmitter(target, source, env): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
114 |
if os.path.exists(source[0].path): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
115 |
return [target, source] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
116 |
else: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
117 |
return [[], []] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
118 |
def MyRmTree(target, source, env): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
119 |
shutil.rmtree(env['RM_DIR']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
120 |
return 0 |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
121 |
def MyRmTreePrint(target, source, env): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
122 |
return '' |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
123 |
def print_cmd_line(s, target, src, env): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
124 |
print 'Building ' + (' and '.join([str(x) for x in target])) + '...' |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
125 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
126 |
class Ns3BuildVariant: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
127 |
def __init__(self): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
128 |
self.static = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
129 |
self.gcxx_deps = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
130 |
self.gcxx_root = '' |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
131 |
self.build_root = '' |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
132 |
self.env = None |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
133 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
134 |
class Ns3: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
135 |
def __init__(self): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
136 |
self.__modules = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
137 |
self.extra_dist = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
138 |
self.build_dir = 'build' |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
139 |
self.version = '0.0.1' |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
140 |
self.name = 'noname' |
637
6285ef4d0fec
improve dist support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
634
diff
changeset
|
141 |
self.distname = 'noname' |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
142 |
self.doxygen_config = '' |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
143 |
def add(self, module): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
144 |
self.__modules.append(module) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
145 |
def add_extra_dist(self, dist): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
146 |
self.extra_dist.append(dist) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
147 |
def __get_module(self, name): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
148 |
for module in self.__modules: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
149 |
if module.name == name: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
150 |
return module |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
151 |
return None |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
152 |
def get_mod_output(self, module, variant): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
153 |
if module.executable: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
154 |
suffix = variant.env.subst(variant.env['PROGSUFFIX']) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
155 |
filename = os.path.join(variant.build_root, 'bin', |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
156 |
module.name + suffix) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
157 |
else: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
158 |
if variant.static: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
159 |
prefix = variant.env['LIBPREFIX'] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
160 |
suffix = variant.env['LIBSUFFIX'] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
161 |
else: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
162 |
prefix = variant.env['SHLIBPREFIX'] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
163 |
suffix = variant.env['SHLIBSUFFIX'] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
164 |
prefix = variant.env.subst(prefix) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
165 |
suffix = variant.env.subst(suffix) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
166 |
filename = os.path.join(variant.build_root, 'lib', |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
167 |
prefix + module.name + suffix) |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
168 |
return filename |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
169 |
def get_obj_builders(self, variant, module): |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
170 |
env = variant.env.Copy () |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
171 |
objects = [] |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
172 |
hash = {} |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
173 |
self.get_internal_deps (module, hash) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
174 |
for dep in hash.values (): |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
175 |
if dep.header_inst_dir != '': |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
176 |
inc_dir = os.path.join(variant.build_root, 'include', |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
177 |
self.name, dep.header_inst_dir) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
178 |
env.Append (CPPPATH = [inc_dir]) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
179 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
180 |
if len(module.config) > 0: |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
181 |
src_config_file = os.path.join(self.build_dir, 'config', module.name + '-config.h') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
182 |
tgt_config_file = os.path.join(variant.build_root, 'include', |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
183 |
self.name, module.name + '-config.h') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
184 |
|
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
185 |
for source in module.sources: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
186 |
obj_file = os.path.splitext(source)[0] + '.o' |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
187 |
tgt = os.path.join(variant.build_root, module.dir, obj_file) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
188 |
src = os.path.join(module.dir, source) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
189 |
if variant.static: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
190 |
obj_builder = env.StaticObject(target = tgt, source = src) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
191 |
else: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
192 |
obj_builder = env.SharedObject(target = tgt, source = src) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
193 |
if len(module.config) > 0: |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
194 |
config_file = env.MyCopyBuilder(target = [tgt_config_file], |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
195 |
source = [src_config_file]) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
196 |
env.Depends(obj_builder, config_file) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
197 |
if variant.gcxx_deps: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
198 |
gcno_tgt = os.path.join(variant.build_root, module.dir, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
199 |
os.path.splitext(source)[0] + '.gcno') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
200 |
gcda_tgt = os.path.join(variant.build_root, module.dir, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
201 |
os.path.splitext(source)[0] + '.gcda') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
202 |
gcda_src = os.path.join(variant.gcxx_root, module.dir, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
203 |
os.path.splitext(source)[0] + '.gcda') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
204 |
gcno_src = os.path.join(variant.gcxx_root, module.dir, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
205 |
os.path.splitext(source)[0] + '.gcno') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
206 |
gcno_builder = env.CopyGcxxBuilder(target = gcno_tgt, source = gcno_src) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
207 |
gcda_builder = env.CopyGcxxBuilder(target = gcda_tgt, source = gcda_src) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
208 |
env.Depends(obj_builder, gcda_builder) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
209 |
env.Depends(obj_builder, gcno_builder) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
210 |
objects.append(obj_builder) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
211 |
return objects |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
212 |
def get_internal_deps(self, module, hash): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
213 |
for dep_name in module.deps: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
214 |
dep = self.__get_module(dep_name) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
215 |
hash[dep_name] = dep |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
216 |
self.get_internal_deps(dep, hash) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
217 |
def get_external_deps(self, module): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
218 |
hash = {} |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
219 |
self.get_internal_deps(module, hash) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
220 |
ext_hash = {} |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
221 |
for mod in hash.values(): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
222 |
for ext_dep in mod.external_deps: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
223 |
ext_hash[ext_dep] = 1 |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
224 |
return ext_hash.keys() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
225 |
def get_sorted_deps(self, module): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
226 |
h = {} |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
227 |
self.get_internal_deps(module, h) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
228 |
modules = [] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
229 |
for dep in h.keys(): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
230 |
deps_copy = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
231 |
mod = h[dep] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
232 |
deps_copy.extend(mod.deps) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
233 |
modules.append([mod, deps_copy]) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
234 |
sorted = [] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
235 |
while len(modules) > 0: |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
236 |
to_remove = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
237 |
for item in modules: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
238 |
if len(item[1]) == 0: |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
239 |
to_remove.append(item[0].name) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
240 |
for item in to_remove: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
241 |
for i in modules: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
242 |
if item in i[1]: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
243 |
i[1].remove(item) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
244 |
new_modules = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
245 |
for mod in modules: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
246 |
found = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
247 |
for i in to_remove: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
248 |
if i == mod[0].name: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
249 |
found = True |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
250 |
break |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
251 |
if not found: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
252 |
new_modules.append(mod) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
253 |
modules = new_modules |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
254 |
sorted.extend(to_remove) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
255 |
sorted.reverse() |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
256 |
# append external deps |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
257 |
ext_deps = self.get_external_deps(module) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
258 |
for dep in ext_deps: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
259 |
sorted.append(dep) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
260 |
return sorted |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
261 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
262 |
def gen_mod_dep(self, variant): |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
263 |
build_root = variant.build_root |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
264 |
cpp_path = os.path.join(variant.build_root, 'include') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
265 |
env = variant.env |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
266 |
env.Append(CPPPATH = [cpp_path]) |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
267 |
header_dir = os.path.join(build_root, 'include', self.name) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
268 |
lib_path = os.path.join(build_root, 'lib') |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
269 |
env.Append (LIBPATH = [lib_path]) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
270 |
module_builders = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
271 |
for module in self.__modules: |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
272 |
my_env = env.Copy (); |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
273 |
objects = self.get_obj_builders(variant, module) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
274 |
libs = self.get_sorted_deps(module) |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
275 |
my_env.Append (LIBS = libs) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
276 |
my_env.Append (LINKFLAGS = module.ldflags) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
277 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
278 |
filename = self.get_mod_output(module, variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
279 |
if module.executable: |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
280 |
module_builder = my_env.Program(target=filename, source=objects) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
281 |
else: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
282 |
if variant.static: |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
283 |
module_builder = my_env.StaticLibrary(target=filename, source=objects) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
284 |
else: |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
285 |
module_builder = my_env.SharedLibrary(target=filename, source=objects) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
286 |
|
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
287 |
for dep_name in module.deps: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
288 |
dep = self.__get_module(dep_name) |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
289 |
my_env.Depends(module_builder, self.get_mod_output(dep, variant)) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
290 |
|
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
291 |
for header in module.inst_headers: |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
292 |
if module.header_inst_dir != '': |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
293 |
tgt = os.path.join(header_dir, module.header_inst_dir, header) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
294 |
else: |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
295 |
tgt = os.path.join(header_dir, header) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
296 |
src = os.path.join(module.dir, header) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
297 |
#builder = env.Install(target = tgt, source = src) |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
298 |
header_builder = my_env.MyCopyBuilder(target=tgt, source=src) |
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
299 |
my_env.Depends(module_builder, header_builder) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
300 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
301 |
module_builders.append(module_builder) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
302 |
return module_builders |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
303 |
def gen_mod_config(self, env): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
304 |
config_dir = os.path.join(self.build_dir, 'config') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
305 |
for module in self.__modules: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
306 |
if len(module.config) > 0: |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
307 |
config_file = os.path.join(config_dir, module.name + '-config.h') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
308 |
config_file_guard = module.name + '_CONFIG_H' |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
309 |
config_file_guard.upper() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
310 |
if not os.path.isfile(config_file): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
311 |
if not os.path.isdir(config_dir): |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
312 |
os.makedirs(config_dir) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
313 |
outfile = open(config_file, 'w') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
314 |
outfile.write('#ifndef ' + config_file_guard + '\n') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
315 |
outfile.write('#define ' + config_file_guard + '\n') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
316 |
config = env.Configure() |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
317 |
for fn in module.config: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
318 |
output = fn(env, config) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
319 |
for o in output: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
320 |
outfile.write(o) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
321 |
outfile.write('\n') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
322 |
outfile.write('#endif /*' + config_file_guard + '*/\n') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
323 |
config.Finish() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
324 |
def generate_dependencies(self): |
139
84ce50ae8fd1
obey inheritenv variable on scons command-line (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
137
diff
changeset
|
325 |
inheritenv = (ARGUMENTS.get('inheritenv', 'n') in 'yY1') |
84ce50ae8fd1
obey inheritenv variable on scons command-line (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
137
diff
changeset
|
326 |
if inheritenv: |
84ce50ae8fd1
obey inheritenv variable on scons command-line (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
137
diff
changeset
|
327 |
env = Environment(ENV=os.environ) |
84ce50ae8fd1
obey inheritenv variable on scons command-line (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
137
diff
changeset
|
328 |
else: |
84ce50ae8fd1
obey inheritenv variable on scons command-line (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
137
diff
changeset
|
329 |
env = Environment() |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
330 |
self.gen_mod_config(env) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
331 |
cc = env['CC'] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
332 |
cxx = env.subst(env['CXX']) |
340
d548aca8c5af
make sure that there is a C and C++ compiler. Otherwise, we generate large amounts of spurious unrelated errors.
mathieu@mathieu.inria.fr
parents:
277
diff
changeset
|
333 |
if cc == '': |
d548aca8c5af
make sure that there is a C and C++ compiler. Otherwise, we generate large amounts of spurious unrelated errors.
mathieu@mathieu.inria.fr
parents:
277
diff
changeset
|
334 |
print "Missing C compiler." |
d548aca8c5af
make sure that there is a C and C++ compiler. Otherwise, we generate large amounts of spurious unrelated errors.
mathieu@mathieu.inria.fr
parents:
277
diff
changeset
|
335 |
env.Exit (1); |
d548aca8c5af
make sure that there is a C and C++ compiler. Otherwise, we generate large amounts of spurious unrelated errors.
mathieu@mathieu.inria.fr
parents:
277
diff
changeset
|
336 |
if cxx == '': |
d548aca8c5af
make sure that there is a C and C++ compiler. Otherwise, we generate large amounts of spurious unrelated errors.
mathieu@mathieu.inria.fr
parents:
277
diff
changeset
|
337 |
print "Missing C++ compiler." |
d548aca8c5af
make sure that there is a C and C++ compiler. Otherwise, we generate large amounts of spurious unrelated errors.
mathieu@mathieu.inria.fr
parents:
277
diff
changeset
|
338 |
env.Exit (1); |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
339 |
common_flags = ARGUMENTS.get('cflags', '').split(' ') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
340 |
cxxflags = ARGUMENTS.get('cxxflags', '').split(' ') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
341 |
ldflags = ARGUMENTS.get('ldflags', '').split(' ') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
342 |
if cc == 'cl' and cxx == 'cl': |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
343 |
env = Environment(tools=['mingw']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
344 |
cc = env['CC'] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
345 |
cxx = env.subst(env['CXX']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
346 |
if cc == 'gcc' and cxx == 'g++': |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
347 |
common_flags.extend(['-g3', '-Wall', '-Werror']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
348 |
debug_flags = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
349 |
opti_flags = ['-O3'] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
350 |
elif cc == 'cl' and cxx == 'cl': |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
351 |
env = Environment(ENV=os.environ) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
352 |
debug_flags = ['-W1', '-GX', '-EHsc', '-D_DEBUG', '/MDd'] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
353 |
opti_flags = ['-O2', '-EHsc', '-DNDEBUG', '/MD'] |
634
7dbf8f0dc819
fix scons dist and scons all for gcc 4.1
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
340
diff
changeset
|
354 |
cc = ARGUMENTS.get ('cc', '') |
7dbf8f0dc819
fix scons dist and scons all for gcc 4.1
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
340
diff
changeset
|
355 |
cxx = ARGUMENTS.get ('cxx', '') |
7dbf8f0dc819
fix scons dist and scons all for gcc 4.1
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
340
diff
changeset
|
356 |
if cc != '': |
7dbf8f0dc819
fix scons dist and scons all for gcc 4.1
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
340
diff
changeset
|
357 |
env.Replace (CC = cc) |
7dbf8f0dc819
fix scons dist and scons all for gcc 4.1
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
340
diff
changeset
|
358 |
if cxx != '': |
7dbf8f0dc819
fix scons dist and scons all for gcc 4.1
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
340
diff
changeset
|
359 |
env.Replace (CXX = cxx) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
360 |
env.Append(CCFLAGS = common_flags, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
361 |
CPPDEFINES = ['RUN_SELF_TESTS'], |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
362 |
TARFLAGS = '-c -z', |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
363 |
CPPFLAGS = cxxflags, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
364 |
LINKFLAGS = ldflags) |
137
9ce51e526b80
import RPATH handling on posix systems. Based on patch by Nicola Baldo <baldo@dei.unipd.it>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
136
diff
changeset
|
365 |
if env['PLATFORM'] == 'posix': |
9ce51e526b80
import RPATH handling on posix systems. Based on patch by Nicola Baldo <baldo@dei.unipd.it>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
136
diff
changeset
|
366 |
env.Append(LINKFLAGS = ' -z origin') |
9ce51e526b80
import RPATH handling on posix systems. Based on patch by Nicola Baldo <baldo@dei.unipd.it>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
136
diff
changeset
|
367 |
env.Append(RPATH=env.Literal(os.path.join('\\$$ORIGIN', os.pardir, 'lib'))) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
368 |
verbose = ARGUMENTS.get('verbose', 'n') |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
369 |
if verbose == 'n': |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
370 |
env['PRINT_CMD_LINE_FUNC'] = print_cmd_line |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
371 |
header_builder = Builder(action = Action(MyCopyAction, strfunction=MyCopyActionPrint)) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
372 |
env.Append(BUILDERS = {'MyCopyBuilder':header_builder}) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
373 |
gcxx_builder = Builder(action = Action(MyCopyAction, strfunction=MyCopyActionPrint), |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
374 |
emitter = GcxxEmitter) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
375 |
env.Append(BUILDERS = {'CopyGcxxBuilder':gcxx_builder}) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
376 |
variant = Ns3BuildVariant() |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
377 |
builders = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
378 |
|
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
379 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
380 |
gcov_env = env.Copy() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
381 |
gcov_env.Append(CFLAGS = ['-fprofile-arcs', '-ftest-coverage'], |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
382 |
CXXFLAGS = ['-fprofile-arcs', '-ftest-coverage'], |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
383 |
LINKFLAGS = ['-fprofile-arcs']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
384 |
# code coverage analysis |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
385 |
variant.static = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
386 |
variant.env = gcov_env |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
387 |
variant.build_root = os.path.join(self.build_dir, 'gcov') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
388 |
builders = self.gen_mod_dep(variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
389 |
for builder in builders: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
390 |
gcov_env.Alias('gcov', builder) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
391 |
gcov_env.Alias('lcov-report') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
392 |
if 'lcov-report' in COMMAND_LINE_TARGETS: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
393 |
lcov_report_dir = os.path.join(self.build_dir, 'lcov-report') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
394 |
create_dir_command = "rm -rf " + lcov_report_dir |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
395 |
create_dir_command += " && mkdir " + lcov_report_dir + ";" |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
396 |
gcov_env.Execute(create_dir_command) |
207
3732a5c036b3
allow you to specify extra link flags for each module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
139
diff
changeset
|
397 |
info_file = os.path.join(lcov_report_dir, self.name + '.info') |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
398 |
lcov_command = "utils/lcov/lcov -c -d . -o " + info_file |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
399 |
lcov_command += " --source-dirs=" + os.getcwd() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
400 |
lcov_command += ":" + os.path.join(os.getcwd(), |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
401 |
variant.build_root, |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
402 |
'include') |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
403 |
gcov_env.Execute(lcov_command) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
404 |
genhtml_command = "utils/lcov/genhtml -o " + lcov_report_dir |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
405 |
genhtml_command += " " + info_file |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
406 |
gcov_env.Execute(genhtml_command) |
116
d4ee28e845f3
add lcov support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
115
diff
changeset
|
407 |
|
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
408 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
409 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
410 |
opt_env = env.Copy() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
411 |
opt_env.Append(CFLAGS=opti_flags, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
412 |
CXXFLAGS=opti_flags, |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
413 |
CPPDEFINES=['NDEBUG']) |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
414 |
# optimized static support |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
415 |
variant.static = True |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
416 |
variant.env = opt_env |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
417 |
variant.build_root = os.path.join(self.build_dir, 'opt-static') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
418 |
builders = self.gen_mod_dep(variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
419 |
for builder in builders: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
420 |
opt_env.Alias('opt-static', builder) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
421 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
422 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
423 |
opt_env = env.Copy() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
424 |
opt_env.Append(CFLAGS = opti_flags, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
425 |
CXXFLAGS = opti_flags, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
426 |
CPPDEFINES = ['NDEBUG']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
427 |
# optimized shared support |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
428 |
variant.static = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
429 |
variant.env = opt_env |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
430 |
variant.build_root = os.path.join(self.build_dir, 'opt-shared') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
431 |
builders = self.gen_mod_dep(variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
432 |
for builder in builders: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
433 |
opt_env.Alias('opt-shared', builder) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
434 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
435 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
436 |
arc_env = env.Copy() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
437 |
arc_env.Append(CFLAGS=opti_flags, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
438 |
CXXFLAGS=opti_flags, |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
439 |
CPPDEFINES=['NDEBUG']) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
440 |
arc_env.Append(CFLAGS=['-frandom-seed=0', '-fprofile-generate'], |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
441 |
CXXFLAGS=['-frandom-seed=0', '-fprofile-generate'], |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
442 |
LINKFLAGS=['-frandom-seed=0', '-fprofile-generate']) |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
443 |
# arc profiling |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
444 |
variant.static = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
445 |
variant.env = arc_env |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
446 |
variant.build_root = os.path.join(self.build_dir, 'opt-arc') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
447 |
builders = self.gen_mod_dep(variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
448 |
for builder in builders: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
449 |
arc_env.Alias('opt-arc', builder) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
450 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
451 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
452 |
arcrebuild_env = env.Copy() |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
453 |
arcrebuild_env.Append(CFLAGS=opti_flags, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
454 |
CXXFLAGS=opti_flags, |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
455 |
CPPDEFINES=['NDEBUG']) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
456 |
arcrebuild_env.Append(CFLAGS=['-frandom-seed=0', '-fprofile-use'], |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
457 |
CXXFLAGS=['-frandom-seed=0', '-fprofile-use'], |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
458 |
LINKFLAGS=['-frandom-seed=0', '-fprofile-use']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
459 |
# arc rebuild |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
460 |
variant.static = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
461 |
variant.env = arcrebuild_env |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
462 |
variant.gcxx_deps = True |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
463 |
variant.gcxx_root = os.path.join(self.build_dir, 'opt-arc') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
464 |
variant.build_root = os.path.join(self.build_dir, 'opt-arc-rebuild') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
465 |
builders = self.gen_mod_dep(variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
466 |
for builder in builders: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
467 |
arcrebuild_env.Alias('opt-arc-rebuild', builder) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
468 |
variant.gcxx_deps = False |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
469 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
470 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
471 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
472 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
473 |
dbg_env = env.Copy() |
267
79efb83972b4
define NS3_DEBBUG_ENABLE when needed
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
207
diff
changeset
|
474 |
dbg_env.Append(CFLAGS = debug_flags, |
79efb83972b4
define NS3_DEBBUG_ENABLE when needed
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
207
diff
changeset
|
475 |
CXXFLAGS = debug_flags, |
277
9382ea16c568
make sure that NS3_ASSER_ENABLE is defined in debug builds
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
267
diff
changeset
|
476 |
CPPDEFINES = ['NS3_DEBUG_ENABLE', |
9382ea16c568
make sure that NS3_ASSER_ENABLE is defined in debug builds
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
267
diff
changeset
|
477 |
'NS3_ASSERT_ENABLE']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
478 |
# debug static support |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
479 |
variant.static = True |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
480 |
variant.env = dbg_env |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
481 |
variant.build_root = os.path.join(self.build_dir, 'dbg-static') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
482 |
builders = self.gen_mod_dep(variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
483 |
for builder in builders: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
484 |
dbg_env.Alias('dbg-static', builder) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
485 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
486 |
dbg_env = env.Copy() |
267
79efb83972b4
define NS3_DEBBUG_ENABLE when needed
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
207
diff
changeset
|
487 |
dbg_env.Append(CFLAGS=debug_flags, |
79efb83972b4
define NS3_DEBBUG_ENABLE when needed
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
207
diff
changeset
|
488 |
CXXFLAGS=debug_flags, |
277
9382ea16c568
make sure that NS3_ASSER_ENABLE is defined in debug builds
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
267
diff
changeset
|
489 |
CPPDEFINES = ['NS3_DEBUG_ENABLE', |
9382ea16c568
make sure that NS3_ASSER_ENABLE is defined in debug builds
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
267
diff
changeset
|
490 |
'NS3_ASSERT_ENABLE']) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
491 |
# debug shared support |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
492 |
variant.static = False |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
493 |
variant.env = dbg_env |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
494 |
variant.build_root = os.path.join(self.build_dir, 'dbg-shared') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
495 |
builders = self.gen_mod_dep(variant) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
496 |
for builder in builders: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
497 |
dbg_env.Alias('dbg-shared', builder) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
498 |
|
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
499 |
env.Alias('dbg', 'dbg-shared') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
500 |
env.Alias('opt', 'opt-shared') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
501 |
env.Default('dbg') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
502 |
env.Alias('all', ['dbg-shared', 'dbg-static', 'opt-shared', 'opt-static']) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
503 |
|
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
504 |
|
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
505 |
# dist support |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
506 |
dist_env = env.Copy() |
654
77ced4ddc0f7
Make scons dist work on osx
Raj Bhattacharjea <raj.b@gatech.edu>
parents:
637
diff
changeset
|
507 |
if dist_env['PLATFORM'] == 'posix' or dist_env['PLATFORM'] == 'darwin': |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
508 |
dist_list = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
509 |
for module in self.__modules: |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
510 |
for f in module.sources: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
511 |
dist_list.append(os.path.join(module.dir, f)) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
512 |
for f in module.headers: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
513 |
dist_list.append(os.path.join(module.dir, f)) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
514 |
for f in module.inst_headers: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
515 |
dist_list.append(os.path.join(module.dir, f)) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
516 |
for f in module.extra_dist: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
517 |
dist_list.append(os.path.join(module.dir, f)) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
518 |
for f in self.extra_dist: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
519 |
dist_list.append(f) |
637
6285ef4d0fec
improve dist support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
634
diff
changeset
|
520 |
dist_list.append (self.doxygen_config) |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
521 |
dist_list.append('SConstruct') |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
522 |
dist_list.append('build.py') |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
523 |
|
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
524 |
targets = [] |
637
6285ef4d0fec
improve dist support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
634
diff
changeset
|
525 |
basename = self.distname + '-' + self.version |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
526 |
for src in dist_list: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
527 |
tgt = os.path.join(basename, src) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
528 |
targets.append(dist_env.MyCopyBuilder(target=tgt, source=src)) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
529 |
tar = basename + '.tar.gz' |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
530 |
zip = basename + '.zip' |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
531 |
tmp_tar = os.path.join(self.build_dir, tar) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
532 |
tmp_zip = os.path.join(self.build_dir, zip) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
533 |
dist_tgt = [tar, zip] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
534 |
dist_src = [tmp_tar, tmp_zip] |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
535 |
dist_env.Tar(tmp_tar, targets) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
536 |
dist_env.Zip(tmp_zip, targets) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
537 |
dist_builder = dist_env.MyCopyBuilder(target=dist_tgt, source=dist_src) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
538 |
dist_env.Alias('dist', dist_builder) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
539 |
dist_env.Append(RM_DIR=basename) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
540 |
dist_env.AddPostAction(dist_builder, dist_env.Action(MyRmTree, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
541 |
strfunction=MyRmTreePrint)) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
542 |
dist_builder = dist_env.MyCopyBuilder(target=dist_tgt, source=dist_src) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
543 |
dist_env.Alias('fastdist', dist_tgt) |
8
cb4ae01ba180
add scons build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
544 |
|
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
545 |
# distcheck |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
546 |
distcheck_list = [] |
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
547 |
for src in dist_list: |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
548 |
tgt = os.path.join(self.build_dir, basename, src) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
549 |
distcheck_list.append(tgt) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
550 |
untar = env.Command(distcheck_list, tar, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
551 |
['cd ' + self.build_dir + ' && tar -zxf ../' + tar]) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
552 |
scons_dir = os.path.join(self.build_dir, basename) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
553 |
distcheck_builder = env.Command('x', distcheck_list, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
554 |
['cd ' + scons_dir + ' && scons']) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
555 |
env.AlwaysBuild(distcheck_builder) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
556 |
env.Alias('distcheck', distcheck_builder) |
128
b48c310f4e24
fix python tab indent
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
124
diff
changeset
|
557 |
if self.doxygen_config != '': |
136
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
558 |
doxy = env.Command('doc/html/*', self.doxygen_config, |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
559 |
['doxygen ' + self.doxygen_config]) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
560 |
env.AlwaysBuild(doxy) |
4faf1726e8ff
make python code more Pep8 conformant (patch from Gustavo Carneiro)
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
128
diff
changeset
|
561 |
env.Alias('doc', doxy) |