/[escript]/branches/domexper/dudley/src/SConscript
ViewVC logotype

Contents of /branches/domexper/dudley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3253 - (show annotations)
Thu Oct 7 05:34:33 2010 UTC (9 years, 4 months ago) by caltinay
File size: 4621 byte(s)
Corrected some merge issues, fixed another name clash that caused a segfault
in tests, changed remaining PASO_MPI's to ESYS_MPI and added -std=c99 to
gcc's default options.

1
2
3 ########################################################
4 #
5 # Copyright (c) 2003-2010 by University of Queensland
6 # Earth Systems Science Computational Center (ESSCC)
7 # http://www.uq.edu.au/esscc
8 #
9 # Primary Business: Queensland, Australia
10 # Licensed under the Open Software License version 3.0
11 # http://www.opensource.org/licenses/osl-3.0.php
12 #
13 ########################################################
14
15
16 import os
17 Import('*')
18
19 local_env = env.Clone()
20 py_wrapper_local_env = env.Clone()
21 local_unroll_env = env.Clone()
22 local_unroll_env.Append(CFLAGS = env['dudley_assemble_flags'])
23
24
25 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
26 del py_wrapper_local_env['SHLIBPREFIX']
27
28 sources = """
29 Assemble_AverageElementData.c
30 Assemble_CopyElementData.c
31 Assemble_CopyNodalData.c
32 Assemble_LumpedSystem.c
33 Assemble_NodeCoordinates.c
34 Assemble_PDE.c
35 Assemble_PDE_Single2_2D.c
36 Assemble_PDE_Single2_3D.c
37 Assemble_PDE_System2_2D.c
38 Assemble_PDE_System2_3D.c
39 Assemble_addToSystemMatrix.c
40 Assemble_getAssembleParameters.c
41 Assemble_getSize.c
42 Assemble_integrate.c
43 Assemble_interpolate.c
44 Assemble_setNormal.c
45 ElementFile.c
46 ElementFile_allocTable.c
47 ElementFile_copyTable.c
48 ElementFile_createColoring.c
49 ElementFile_distributeByRankOfDOF.c
50 ElementFile_gather.c
51 ElementFile_jacobeans.c
52 ElementFile_markNodes.c
53 ElementFile_optimizeOrdering.c
54 ElementFile_relableNodes.c
55 ElementFile_scatter.c
56 ElementFile_setCoordinates.c
57 ElementFile_setNodeRange.c
58 ElementFile_setTags.c
59 ElementType.c
60 Dudley.c
61 IndexList.c
62 Mesh.c
63 Mesh_createNodeFileMappings.c
64 Mesh_distributeByRankOfDOF.c
65 Mesh_findMatchingFaces.c
66 Mesh_getPattern.c
67 Mesh_markNodes.c
68 Mesh_optimizeDOFDistribution.c
69 Mesh_optimizeDOFLabeling.c
70 Mesh_prepare.c
71 Mesh_print.c
72 Mesh_read.c
73 Mesh_readGmsh.c
74 Mesh_relableElementNodes.c
75 Mesh_resolveNodeIds.c
76 Mesh_saveDX.c
77 Mesh_saveVTK.c
78 Mesh_setCoordinates.c
79 Mesh_tagmaps.c
80 Mesh_tet4.c
81 Mesh_tri3.c
82 Mesh_write.c
83 NodeFile.c
84 NodeFile_allocTable.c
85 NodeFile_copyTable.c
86 NodeFile_createDenseLabelings.c
87 NodeFile_gather.c
88 NodeFile_scatter.c
89 NodeFile_setCoordinates.c
90 NodeFile_setIdRange.c
91 NodeFile_setTags.c
92 NodeMapping.c
93 ShapeTable.c
94 TagMap.c
95 Util.c
96 CPPAdapter/DudleyAdapterException.cpp
97 CPPAdapter/DudleyError.cpp
98 CPPAdapter/MeshAdapter.cpp
99 CPPAdapter/MeshAdapterFactory.cpp
100 CPPAdapter/SystemMatrixAdapter.cpp
101 CPPAdapter/TransportProblemAdapter.cpp
102 """.split()
103 unroll_sources= """
104 Assemble_gradient.c
105 Assemble_jacobeans.c
106 """.split()
107
108
109 headers = """
110 Assemble.h
111 Dudley.h
112 DudleyVersion.h
113 ElementFile.h
114 ElementType.h
115 IndexList.h
116 Mesh.h
117 NodeFile.h
118 NodeMapping.h
119 TriangularMesh.h
120 ShapeTable.h
121 TagMap.h
122 Util.h
123 vtkCellType.h
124 """.split()
125 cppadapter_headers = """
126 CPPAdapter/DudleyAdapterException.h
127 CPPAdapter/DudleyError.h
128 CPPAdapter/MeshAdapter.h
129 CPPAdapter/MeshAdapterFactory.h
130 CPPAdapter/SystemMatrixAdapter.h
131 CPPAdapter/TransportProblemAdapter.h
132 CPPAdapter/system_dep.h
133 """.split()
134
135 local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'])
136
137 if IS_WINDOWS :
138 local_env.Append(CPPDEFINES = ['DUDLEY_EXPORTS'])
139
140 module_name = 'dudley'
141
142 un = [ local_unroll_env.SharedObject(x) for x in unroll_sources]
143
144 lib = local_env.SharedLibrary(module_name, sources+un)
145 env.Alias('build_dudley_lib', lib)
146
147 include_path = Dir('dudley', local_env['incinstall'])
148 cppadapter_include_path = Dir('CppAdapter', include_path)
149
150 hdr_inst1 = local_env.Install(include_path, headers )
151 hdr_inst2 = local_env.Install(cppadapter_include_path, cppadapter_headers )
152 env.Alias('install_dudley_headers', [hdr_inst1, hdr_inst2])
153
154 lib_inst = local_env.Install(local_env['libinstall'], lib)
155 env.Alias('install_dudley_lib', lib_inst)
156
157 ### Python wrapper ###
158 py_wrapper_local_env.Append(LIBS = ['dudley', 'escript', 'esysUtils', 'paso'])
159 py_wrapper_name = module_name + 'cpp'
160 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/dudleycpp.cpp')
161 env.Alias('build_dudleycpp_lib', py_wrapper_lib)
162
163 tmp_inst = os.path.join(local_env['pyinstall'], module_name)
164 if IS_WINDOWS:
165 wrapper_ext = '.pyd'
166 else:
167 wrapper_ext = '.so'
168
169 share_name = os.path.join(tmp_inst, py_wrapper_name+wrapper_ext)
170 mod_inst = py_wrapper_local_env.InstallAs(target=share_name,
171 source=py_wrapper_lib[0])
172 env.Alias('install_dudleycpp_lib', mod_inst)
173
174 # configure python module
175 local_env.SConscript(dirs = ['#/dudley/py_src'], variant_dir='py', duplicate=0)
176
177 # configure unit tests
178 local_env.SConscript(dirs = ['#/dudley/test'], variant_dir='#/build/$PLATFORM/dudley/test', duplicate=0, exports=['py_wrapper_lib'])
179

  ViewVC Help
Powered by ViewVC 1.1.26