1 |
libinstall = None |
2 |
incinstall = None |
3 |
|
4 |
Import('*') |
5 |
|
6 |
import os |
7 |
import string |
8 |
paso_env = Environment(ENV = os.environ) |
9 |
|
10 |
paso_path = Dir(str(esysroot) + '/paso/src') |
11 |
solvers_path = Dir(str(esysroot) + '/paso/src/Solvers') |
12 |
mmio_path = Dir(str(esysroot) + '/tools/mmio/inc') |
13 |
|
14 |
cpp_path = [paso_path, |
15 |
solvers_path, |
16 |
mmio_path, |
17 |
python_path, |
18 |
boost_path] |
19 |
|
20 |
paso_env.Replace(CC = cc) |
21 |
paso_env.Replace(CCFLAGS = cc_flags) |
22 |
if len(mkl_libs) >0: paso_env.Append(CCFLAGS=' -DMKL') |
23 |
if len(scsl_libs)>0 : paso_env.Append(CCFLAGS=' -DSCSL') |
24 |
if len(mkl_path)>0: cpp_path.append(mkl_path) |
25 |
if len(scsl_path)>0: cpp_path.append(scsl_path) |
26 |
if len(umfpack_path)>0: cpp_path.append(umfpack_path) |
27 |
if len(papi_path)>0: cpp_path.append(papi_path) |
28 |
if len(umfpack_libs)>0 : paso_env.Append(CCFLAGS=' -DUMFPACK') |
29 |
if len(papi_libs)>0 : paso_env.Append(CCFLAGS=' -DPAPI') |
30 |
|
31 |
paso_env.Replace(CPPPATH = cpp_path) |
32 |
paso_env.Replace(ARFLAGS = ar_flags) |
33 |
|
34 |
lib = 'paso' |
35 |
|
36 |
incs = ['Common.h', |
37 |
'mmio.h', |
38 |
'MKL.h', |
39 |
'Options.h', |
40 |
'Paso.h', |
41 |
'SCSL.h', |
42 |
'SystemMatrix.h', |
43 |
'SystemMatrixPattern.h', |
44 |
'PasoUtil.h', |
45 |
'performance.h', |
46 |
'Solvers/Solver.h'] |
47 |
|
48 |
sources = ['Options_getPackage.c', |
49 |
'Options_getSolver.c', |
50 |
'Options_setDefaults.c', |
51 |
'mmio.c', |
52 |
'performance.c', |
53 |
'Paso.c', |
54 |
'solve.c', |
55 |
'SystemMatrix_borrowNormalization.c', |
56 |
'SystemMatrix.c', |
57 |
'SystemMatrix_copy.c', |
58 |
'SystemMatrix_getSubmatrix.c', |
59 |
'SystemMatrix_getSystemMatrixTypeId.c', |
60 |
'SystemMatrix_loadMM.c', |
61 |
'SystemMatrix_MatrixVector.c', |
62 |
'SystemMatrix_nullifyRowsAndCols.c', |
63 |
'SystemMatrixPattern.c', |
64 |
'SystemMatrixPattern_getSubpattern.c', |
65 |
'SystemMatrixPattern_mis.c', |
66 |
'SystemMatrixPattern_unrollBlocks.c', |
67 |
'SystemMatrix_saveHB.c', |
68 |
'SystemMatrix_saveMM.c', |
69 |
'SystemMatrix_setValues.c', |
70 |
'PasoUtil.c', |
71 |
'MKL.c', |
72 |
'SCSL.c', |
73 |
'SCSL_direct.c', |
74 |
'SCSL_iterative.c', |
75 |
'Solvers/BiCGStab.c', |
76 |
'Solvers/GMRES.c', |
77 |
'Solvers/PCG.c', |
78 |
'Solvers/Solver_applyBlockDiagonalMatrix.c', |
79 |
'Solvers/Solver.c', |
80 |
'Solvers/Solver_ILU.c', |
81 |
'Solvers/Solver_RILU.c', |
82 |
'Solvers/Solver_jacobi.c', |
83 |
'Solvers/Solver_preconditioner.c', |
84 |
'Solvers/Solver_SchurComplement.c'] |
85 |
|
86 |
paso_lib = paso_env.StaticLibrary(lib, sources) |
87 |
|
88 |
Default(paso_env.Install(incdir, incs)) |
89 |
Default(paso_env.Install(incdir2, incs)) |
90 |
if incinstall != None: |
91 |
Default(paso_env.Install(incinstall, incs)) |
92 |
|
93 |
Default(paso_env.Install(libdir, paso_lib)) |
94 |
Default(paso_env.Install(libdir2, paso_lib)) |
95 |
if libinstall != None: |
96 |
Default(paso_env.Install(libinstall, paso_lib)) |