/[escript]/trunk/escript/src/SConscript
ViewVC logotype

Contents of /trunk/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2005 - (show annotations)
Mon Nov 10 01:21:39 2008 UTC (10 years, 11 months ago) by jfenwick
File size: 3565 byte(s)
Bringing all changes across from schroedinger.
(Note this does not mean development is done, just that it will happen
on the trunk for now).
If anyone notices any problems please contact me.


1 ########################################################
2 #
3 # Copyright (c) 2003-2008 by University of Queensland
4 # Earth Systems Science Computational Center (ESSCC)
5 # http://www.uq.edu.au/esscc
6 #
7 # Primary Business: Queensland, Australia
8 # Licensed under the Open Software License version 3.0
9 # http://www.opensource.org/licenses/osl-3.0.php
10 #
11 ########################################################
12
13
14 import os
15 Import('*')
16
17 local_env = clone_env(env_mpi)
18 py_wrapper_local_env = clone_env(env_mpi)
19
20 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
21 del py_wrapper_local_env['SHLIBPREFIX']
22
23 sources = """
24 AbstractContinuousDomain.cpp
25 AbstractDomain.cpp
26 AbstractSystemMatrix.cpp
27 AbstractTransportProblem.cpp
28 Data.cpp
29 DataAbstract.cpp
30 DataBlocks2D.cpp
31 DataC.cpp
32 DataConstant.cpp
33 DataEmpty.cpp
34 DataException.cpp
35 DataExpanded.cpp
36 DataFactory.cpp
37 DataLazy.cpp
38 DataMaths.cpp
39 DataReady.cpp
40 DataTagged.cpp
41 DataTypes.cpp
42 DataVector.cpp
43 DomainException.cpp
44 EscriptParams.cpp
45 FunctionSpace.cpp
46 FunctionSpaceException.cpp
47 FunctionSpaceFactory.cpp
48 NullDomain.cpp
49 SystemMatrixException.cpp
50 Taipan.cpp
51 TransportProblemException.cpp
52 Utils.cpp
53 blocktimer.c
54 """.split()
55 headers = """
56 AbstractContinuousDomain.h
57 AbstractDomain.h
58 AbstractSystemMatrix.h
59 AbstractTransportProblem.h
60 BinaryOp.h
61 Data.h
62 DataAbstract.h
63 DataAlgorithm.h
64 DataBlocks2D.h
65 DataC.h
66 DataConstant.h
67 DataEmpty.h
68 DataException.h
69 DataExpanded.h
70 DataFactory.h
71 DataLazy.h
72 DataMaths.h
73 DataReady.h
74 DataTagged.h
75 DataTypes.h
76 DataVector.h
77 DomainException.h
78 EscriptParams.h
79 FunctionSpace.h
80 FunctionSpaceException.h
81 FunctionSpaceFactory.h
82 LocalOps.h
83 NullDomain.h
84 Pointers.h
85 SystemMatrixException.h
86 Taipan.h
87 TransportProblemException.h
88 UnaryFuncs.h
89 UnaryOp.h
90 UtilC.h
91 Utils.h
92 blocktimer.h
93 esysmpi.h
94 system_dep.h
95 """.split()
96
97 local_env.Append(LIBS = [ 'esysUtils'] + env['sys_libs'] )
98 py_wrapper_local_env.Append(LIBS = [ 'escript', 'esysUtils'] + env['sys_libs'])
99
100 module_name = 'escript'
101 py_wrapper_name = module_name + 'cpp'
102
103 lib = local_env.SharedLibrary(module_name, sources)
104 env.Alias('target_escript_so', lib)
105
106 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'escriptcpp.cpp')
107 env.Alias('target_escriptcpp_so', py_wrapper_lib)
108
109 include_path = Dir('escript', local_env['incinstall'])
110
111 tmp1 = local_env.Install(include_path, headers )
112 env.Alias('target_install_escript_headers', [tmp1])
113
114 tmp3 = local_env.Install(local_env['libinstall'], lib)
115 env.Alias('target_install_escript_so', tmp3)
116
117 #windows specific mod
118 tmp_inst = os.path.join(local_env['pyinstall'],module_name)
119 if os.name == 'nt':
120 wrapper_postfix = '.pyd'
121 else:
122 wrapper_postfix = '.so'
123
124 share_name = os.path.join(tmp_inst,py_wrapper_name+wrapper_postfix)
125
126 tmp4 = py_wrapper_local_env.InstallAs(target=share_name,
127 source=py_wrapper_lib[0])
128
129 env.Alias('target_install_escriptcpp_so', tmp4)
130
131 # export the lib target since tests will depend on it
132 # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
133 # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
134 dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
135 Export('dep_lib')
136
137 # Call the python sconscript
138 env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
139
140 # Call the unit tests SConscript
141 local_env.SConscript(dirs = ['#/escript/test'], build_dir='#/build/$PLATFORM/escript/test', duplicate=0)
142

  ViewVC Help
Powered by ViewVC 1.1.26