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

Annotation of /branches/domexper/dudley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3253 - (hide 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 ksteube 1811
2 phornby 1847
3 ksteube 1811 ########################################################
4 gross 707 #
5 jfenwick 2881 # Copyright (c) 2003-2010 by University of Queensland
6 ksteube 1811 # Earth Systems Science Computational Center (ESSCC)
7     # http://www.uq.edu.au/esscc
8 ksteube 1705 #
9 ksteube 1811 # 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 ksteube 1705 #
13 ksteube 1811 ########################################################
14 ksteube 1705
15 ksteube 1811
16 gross 700 import os
17 jgs 182 Import('*')
18    
19 caltinay 3253 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 ksteube 1705
24 jfenwick 3189
25 robwdcock 682 # 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 jgs 182
28 ksteube 1705 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 jfenwick 3220 ElementType.c
60 jfenwick 3082 Dudley.c
61 ksteube 1705 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 jfenwick 3114 Mesh_tet4.c
81     Mesh_tri3.c
82 ksteube 1705 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 jfenwick 3196 ShapeTable.c
94 ksteube 1705 TagMap.c
95     Util.c
96 jfenwick 3086 CPPAdapter/DudleyAdapterException.cpp
97     CPPAdapter/DudleyError.cpp
98 ksteube 1705 CPPAdapter/MeshAdapter.cpp
99     CPPAdapter/MeshAdapterFactory.cpp
100     CPPAdapter/SystemMatrixAdapter.cpp
101     CPPAdapter/TransportProblemAdapter.cpp
102     """.split()
103 jfenwick 3189 unroll_sources= """
104     Assemble_gradient.c
105     Assemble_jacobeans.c
106     """.split()
107    
108    
109 ksteube 1705 headers = """
110     Assemble.h
111 jfenwick 3082 Dudley.h
112     DudleyVersion.h
113 jfenwick 3220 ElementFile.h
114     ElementType.h
115 ksteube 1705 IndexList.h
116     Mesh.h
117     NodeFile.h
118     NodeMapping.h
119 jfenwick 3114 TriangularMesh.h
120 jfenwick 3184 ShapeTable.h
121 ksteube 1705 TagMap.h
122     Util.h
123     vtkCellType.h
124     """.split()
125     cppadapter_headers = """
126 jfenwick 3086 CPPAdapter/DudleyAdapterException.h
127     CPPAdapter/DudleyError.h
128 ksteube 1705 CPPAdapter/MeshAdapter.h
129     CPPAdapter/MeshAdapterFactory.h
130     CPPAdapter/SystemMatrixAdapter.h
131     CPPAdapter/TransportProblemAdapter.h
132 caltinay 2898 CPPAdapter/system_dep.h
133 ksteube 1705 """.split()
134 jgs 277
135 jfenwick 3251 local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'])
136 phornby 2027
137 jfenwick 3251 if IS_WINDOWS :
138 jfenwick 3082 local_env.Append(CPPDEFINES = ['DUDLEY_EXPORTS'])
139 phornby 2027
140 jfenwick 3082 module_name = 'dudley'
141 phornby 1847
142 jfenwick 3189 un = [ local_unroll_env.SharedObject(x) for x in unroll_sources]
143    
144     lib = local_env.SharedLibrary(module_name, sources+un)
145 jfenwick 3251 env.Alias('build_dudley_lib', lib)
146 jgs 277
147 jfenwick 3082 include_path = Dir('dudley', local_env['incinstall'])
148 ksteube 1705 cppadapter_include_path = Dir('CppAdapter', include_path)
149 jgs 190
150 jfenwick 3251 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 jgs 481
154 jfenwick 3251 lib_inst = local_env.Install(local_env['libinstall'], lib)
155     env.Alias('install_dudley_lib', lib_inst)
156 gross 806
157 jfenwick 3251 ### 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 ksteube 1705 else:
167 jfenwick 3251 wrapper_ext = '.so'
168 phornby 1840
169 jfenwick 3251 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 phornby 1840
174 jfenwick 3251 # configure python module
175     local_env.SConscript(dirs = ['#/dudley/py_src'], variant_dir='py', duplicate=0)
176 phornby 1840
177 jfenwick 3251 # configure unit tests
178     local_env.SConscript(dirs = ['#/dudley/test'], variant_dir='#/build/$PLATFORM/dudley/test', duplicate=0, exports=['py_wrapper_lib'])
179 caltinay 3253

  ViewVC Help
Powered by ViewVC 1.1.26