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

Contents of /trunk/dudley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3400 - (show annotations)
Mon Dec 6 02:23:07 2010 UTC (9 years, 1 month ago) by caltinay
File size: 4593 byte(s)
Moved vtkCellType.h to weipa where it belongs now.

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_setCoordinates.c
78 Mesh_tagmaps.c
79 Mesh_tet4.c
80 Mesh_tri3.c
81 Mesh_write.c
82 NodeFile.c
83 NodeFile_allocTable.c
84 NodeFile_copyTable.c
85 NodeFile_createDenseLabelings.c
86 NodeFile_gather.c
87 NodeFile_scatter.c
88 NodeFile_setCoordinates.c
89 NodeFile_setIdRange.c
90 NodeFile_setTags.c
91 NodeMapping.c
92 ShapeTable.c
93 TagMap.c
94 Util.c
95 CPPAdapter/DudleyAdapterException.cpp
96 CPPAdapter/DudleyError.cpp
97 CPPAdapter/MeshAdapter.cpp
98 CPPAdapter/MeshAdapterFactory.cpp
99 CPPAdapter/SystemMatrixAdapter.cpp
100 CPPAdapter/TransportProblemAdapter.cpp
101 """.split()
102 unroll_sources= """
103 Assemble_gradient.c
104 Assemble_jacobeans.c
105 """.split()
106
107
108 headers = """
109 Assemble.h
110 Dudley.h
111 DudleyVersion.h
112 ElementFile.h
113 ElementType.h
114 IndexList.h
115 Mesh.h
116 NodeFile.h
117 NodeMapping.h
118 TriangularMesh.h
119 ShapeTable.h
120 TagMap.h
121 Util.h
122 """.split()
123 cppadapter_headers = """
124 CPPAdapter/DudleyAdapterException.h
125 CPPAdapter/DudleyError.h
126 CPPAdapter/MeshAdapter.h
127 CPPAdapter/MeshAdapterFactory.h
128 CPPAdapter/SystemMatrixAdapter.h
129 CPPAdapter/TransportProblemAdapter.h
130 CPPAdapter/system_dep.h
131 """.split()
132
133 local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'])
134
135 if IS_WINDOWS :
136 local_env.Append(CPPDEFINES = ['DUDLEY_EXPORTS'])
137
138 module_name = 'dudley'
139
140 un = [ local_unroll_env.SharedObject(x) for x in unroll_sources]
141
142 lib = local_env.SharedLibrary(module_name, sources+un)
143 env.Alias('build_dudley_lib', lib)
144
145 include_path = Dir('dudley', local_env['incinstall'])
146 cppadapter_include_path = Dir('CppAdapter', include_path)
147
148 hdr_inst1 = local_env.Install(include_path, headers )
149 hdr_inst2 = local_env.Install(cppadapter_include_path, cppadapter_headers )
150 env.Alias('install_dudley_headers', [hdr_inst1, hdr_inst2])
151
152 lib_inst = local_env.Install(local_env['libinstall'], lib)
153 env.Alias('install_dudley_lib', lib_inst)
154
155 ### Python wrapper ###
156 py_wrapper_local_env.Append(LIBS = ['dudley', 'escript', 'esysUtils', 'paso'])
157 py_wrapper_name = module_name + 'cpp'
158 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/dudleycpp.cpp')
159 env.Alias('build_dudleycpp_lib', py_wrapper_lib)
160
161 tmp_inst = os.path.join(local_env['pyinstall'], module_name)
162 if IS_WINDOWS:
163 wrapper_ext = '.pyd'
164 else:
165 wrapper_ext = '.so'
166
167 share_name = os.path.join(tmp_inst, py_wrapper_name+wrapper_ext)
168 mod_inst = py_wrapper_local_env.InstallAs(target=share_name,
169 source=py_wrapper_lib[0])
170 env.Alias('install_dudleycpp_lib', mod_inst)
171
172 # configure python module
173 local_env.SConscript(dirs = ['#/dudley/py_src'], variant_dir='py', duplicate=0)
174
175 # configure unit tests
176 local_env.SConscript(dirs = ['#/dudley/test'], variant_dir='$BUILD_DIR/$PLATFORM/dudley/test', duplicate=0, exports=['py_wrapper_lib'])
177

  ViewVC Help
Powered by ViewVC 1.1.26