1 |
libinstall = None |
2 |
|
3 |
Import('*') |
4 |
|
5 |
import os |
6 |
import string |
7 |
|
8 |
libname = 'finleycpp' |
9 |
|
10 |
finley_path = str(esysroot) + '/finley/src/finley' |
11 |
finley_cppadapter_path = str(esysroot) + '/finley/src/finley/CPPAdapter' |
12 |
paso_path = str(esysroot) + '/paso/src' |
13 |
escript_path = str(esysroot) + '/escript/inc' |
14 |
esysUtils_path = str(esysroot) + '/esysUtils/inc' |
15 |
|
16 |
esys_lib_path = str(esysroot) + '/lib' |
17 |
mmio_lib_path = str(esysroot) + '/tools/mmio/lib' |
18 |
esysUtils_lib_path = str(esysroot) + '/esysUtils/lib' |
19 |
|
20 |
esysUtils_lib = str(esysUtils_lib_path) + '/libesysUtils.a' |
21 |
escript_lib = str(esys_lib_path) + '/libescriptcpp.so' |
22 |
paso_lib = str(esys_lib_path) + '/libpaso.a' |
23 |
mmio_lib = str(mmio_lib_path) + '/libmmio.a' |
24 |
|
25 |
cpp_path = [finley_path, |
26 |
finley_cppadapter_path, |
27 |
paso_path, |
28 |
escript_path, |
29 |
esysUtils_path, |
30 |
python_path, |
31 |
boost_path] |
32 |
|
33 |
sources = ['Assemble_addToSystemMatrix.c', |
34 |
'Assemble_CopyElementData.c', |
35 |
'Assemble_CopyNodalData.c', |
36 |
'Assemble_getAssembleParameters.c', |
37 |
'Assemble_getSize.c', |
38 |
'Assemble_gradient.c', |
39 |
'Assemble_handelShapeMissMatch.c', |
40 |
'Assemble_integrate.c', |
41 |
'Assemble_interpolate.c', |
42 |
'Assemble_NodeCoordinates.c', |
43 |
'Assemble_PDE.c', |
44 |
'Assemble_PDEMatrix_Single2.c', |
45 |
'Assemble_PDEMatrix_System2.c', |
46 |
'Assemble_PDE_RHS.c', |
47 |
'Assemble_RHSMatrix_Single.c', |
48 |
'Assemble_RHSMatrix_System.c', |
49 |
'Assemble_RobinCondition.c', |
50 |
'Assemble_RobinCondition_RHS.c', |
51 |
'Assemble_setNormal.c', |
52 |
'ElementFile_allocTable.c', |
53 |
'ElementFile.c', |
54 |
'ElementFile_copyTable.c', |
55 |
'ElementFile_gather.c', |
56 |
'ElementFile_improveColoring.c', |
57 |
'ElementFile_markNodes.c', |
58 |
'ElementFile_optimizeDistribution.c', |
59 |
'ElementFile_prepare.c', |
60 |
'ElementFile_relableNodes.c', |
61 |
'ElementFile_scatter.c', |
62 |
'ElementFile_setNodeRange.c', |
63 |
'Finley.c', |
64 |
'IndexList.c', |
65 |
'Mesh.c', |
66 |
'Mesh_findMatchingFaces.c', |
67 |
'Mesh_getPattern.c', |
68 |
'Mesh_glueFaces.c', |
69 |
'Mesh_hex20.c', |
70 |
'Mesh_hex8.c', |
71 |
'Mesh_joinFaces.c', |
72 |
'Mesh_line2.c', |
73 |
'Mesh_line3.c', |
74 |
'Mesh_markNodes.c', |
75 |
'Mesh_merge.c', |
76 |
'Mesh_prepare.c', |
77 |
'Mesh_prepareNodes.c', |
78 |
'Mesh_print.c', |
79 |
'Mesh_read.c', |
80 |
'Mesh_rec4.c', |
81 |
'Mesh_rec8.c', |
82 |
'Mesh_relabelElementNodes.c', |
83 |
'Mesh_resolveNodeIds.c', |
84 |
'Mesh_saveDX.c', |
85 |
'Mesh_saveVTK.c', |
86 |
'Mesh_write.c', |
87 |
'NodeFile_allocTable.c', |
88 |
'NodeFile.c', |
89 |
'NodeFile_copyTable.c', |
90 |
'NodeFile_gatter.c', |
91 |
'NodeFile_scatter.c', |
92 |
'NodeFile_setCoordinates.c', |
93 |
'NodeFile_setIdRange.c', |
94 |
'Quadrature.c', |
95 |
'ReferenceElements.c', |
96 |
'ShapeFunctions.c', |
97 |
'Util.c', |
98 |
'CPPAdapter/FinleyError.cpp', |
99 |
'CPPAdapter/MeshAdapter.cpp', |
100 |
'CPPAdapter/MeshAdapterFactory.cpp', |
101 |
'CPPAdapter/SystemMatrixAdapter.cpp', |
102 |
'CPPAdapter/finleycpp.cpp'] |
103 |
|
104 |
lib_path = [esys_lib_path, |
105 |
mmio_lib_path, |
106 |
esysUtils_lib_path, |
107 |
boost_lib_path] \ |
108 |
+ solver_lib_paths |
109 |
|
110 |
|
111 |
libs = ['escriptcpp', |
112 |
'esysUtils', |
113 |
'paso', |
114 |
'mmio', |
115 |
str(boost_lib), |
116 |
'dl', |
117 |
'util'] \ |
118 |
+ sys_libs \ |
119 |
+ solver_libs |
120 |
|
121 |
finley_env = Environment(ENV = os.environ) |
122 |
|
123 |
finley_env.Replace(CC = cc) |
124 |
finley_env.Replace(CXX = cxx) |
125 |
finley_env.Replace(CCFLAGS = cc_flags) |
126 |
finley_env.Replace(CXXFLAGS = cxx_flags) |
127 |
finley_env.Replace(SHOBJSUFFIX = '.lo') |
128 |
finley_env.Replace(CPPPATH = cpp_path) |
129 |
finley_env.Replace(LIBPATH = lib_path) |
130 |
finley_env.Replace(LIBS = libs) |
131 |
|
132 |
finley_lib = finley_env.SharedLibrary(libname, sources) |
133 |
|
134 |
Depends(finley_lib, esysUtils_lib) |
135 |
Depends(finley_lib, escript_lib) |
136 |
Depends(finley_lib, paso_lib) |
137 |
Depends(finley_lib, mmio_lib) |
138 |
|
139 |
Default(finley_env.Install(libdir, finley_lib)) |
140 |
Default(finley_env.Install(libdir2, finley_lib)) |
141 |
if libinstall != None: |
142 |
Default(finley_env.Install(libinstall, finley_lib)) |