1 |
Import('libascend_env') |
Import('env') |
2 |
|
|
3 |
objs = [] |
objs = [] |
4 |
|
|
5 |
csrcs = Split(""" |
sundials_env = solver_env.Copy() |
|
integrator.c lsode.c samplelist.c aww.c |
|
|
""") |
|
6 |
|
|
7 |
solver_env = libascend_env.Copy() |
if env.get('WITH_MMIO'): |
8 |
if solver_env.get('WITH_MMIO'): |
sundials_env.Append(CPPPATH=["#/mmio"]) |
|
solver_env.Append(CPPPATH=["#/mmio"]) |
|
9 |
|
|
10 |
|
if env.get('SUNDIALS_CPPPATH'): |
11 |
|
sundials_env.Append(CPPPATH=[env.get('SUNDIALS_CPPPATH')]) |
12 |
|
|
13 |
for c in csrcs: |
if env.get('SUNDIALS_CPPPATH_EXTRA'): |
14 |
objs += solver_env.SharedObject(c) |
sundials_env.AppendUnique( |
15 |
|
CPPPATH=env.get('SUNDIALS_CPPPATH_EXTRA') |
|
if solver_env.get('WITH_IDA'): |
|
|
sundials_env = solver_env.Copy() |
|
|
|
|
|
if solver_env.get('SUNDIALS_CPPPATH'): |
|
|
sundials_env.Append(CPPPATH=[solver_env.get('SUNDIALS_CPPPATH')]) |
|
|
|
|
|
if solver_env.get('SUNDIALS_CPPPATH_EXTRA'): |
|
|
sundials_env.AppendUnique( |
|
|
CPPPATH=solver_env.get('SUNDIALS_CPPPATH_EXTRA') |
|
|
) |
|
|
|
|
|
sundials_env.Append(CPPDEFINES=[('SUNDIALS_VERSION_MAJOR',"$SUNDIALS_VERSION_MAJOR"),('SUNDIALS_VERSION_MINOR',"$SUNDIALS_VERSION_MINOR")]) |
|
|
|
|
|
libascend_env.Append( |
|
|
LIBPATH=[solver_env.get('SUNDIALS_LIBPATH')] |
|
|
, LIBS=[solver_env.get('SUNDIALS_LIBS')] |
|
16 |
) |
) |
17 |
|
|
18 |
idasrcs = ['ida.c','idalinear.c', 'idaanalyse.c'] |
sundials_env.Append( |
19 |
for s in idasrcs: |
CPPDEFINES=[ |
20 |
objs += sundials_env.SharedObject(s) |
('SUNDIALS_VERSION_MAJOR',"$SUNDIALS_VERSION_MAJOR") |
21 |
else: |
,('SUNDIALS_VERSION_MINOR',"$SUNDIALS_VERSION_MINOR") |
22 |
pass |
] |
23 |
# print "NO IDA REQUESTED!" |
) |
24 |
|
|
25 |
if 'LSOD' in solver_env.get('WITH_SOLVERS'): |
sundials_env.Append( |
26 |
if solver_env.get('F2C_LIBPATH'): |
LIBPATH=[solver_env.get('SUNDIALS_LIBPATH')] |
27 |
libascend_env.AppendUnique(LIBPATH=[solver_env.get('F2C_LIBPATH')]) |
, LIBS=[solver_env.get('SUNDIALS_LIBS')] |
28 |
if solver_env.get('F2C_LIB'): |
) |
29 |
libascend_env.AppendUnique(LIBS=[solver_env.get('F2C_LIB')]) |
|
30 |
|
idasrcs = ['ida.c','idalinear.c', 'idaanalyse.c'] |
31 |
#-------------------- |
for s in idasrcs: |
32 |
# INSTALL |
objs += sundials_env.SharedObject(s) |
33 |
|
|
34 |
import glob |
libida = sundials_env.SharedLibrary("ida",objs) |
35 |
|
|
36 |
if libascend_env.get('CAN_INSTALL'): |
env['extfns'] += libda |
37 |
installdir = Dir(libascend_env.subst("$INSTALL_ROOT$INSTALL_INCLUDE/integrator")) |
|
38 |
|
if env.get('CAN_INSTALL'): |
39 |
headers = glob.glob("*.h") |
dir = Dir(env.subst("$INSTALL_ROOT$INSTALL_SOLVERS")) |
40 |
libascend_env.InstallHeader(installdir,headers) |
env.InstallShared(dir,libida) |
|
|
|
|
print "OBJS =",objs |
|
|
Return('objs') |
|
41 |
|
|
42 |
# vim: set syntax=python: |
# vim: set syntax=python: |
|
|
|