90 |
('cxx', 'path to C++ compiler', 'DEFAULT'), |
('cxx', 'path to C++ compiler', 'DEFAULT'), |
91 |
('win_cc_name', 'windows C compiler name if needed', 'msvc'), |
('win_cc_name', 'windows C compiler name if needed', 'msvc'), |
92 |
# The strings -DDEFAULT_ get replaced by scons/<hostname>_options.py or by defaults below |
# The strings -DDEFAULT_ get replaced by scons/<hostname>_options.py or by defaults below |
93 |
('cc_flags', 'C compiler flags to use', '-DEFAULT_1'), |
('cc_flags', 'C/C++ compiler flags to use', '-DEFAULT_1'), |
94 |
('cc_optim', 'C compiler optimization flags to use', '-DEFAULT_2'), |
('cc_optim', 'C/C++ optimization flags to use', '-DEFAULT_2'), |
95 |
('cc_debug', 'C compiler debug flags to use', '-DEFAULT_3'), |
('cc_debug', 'C/C++ debug flags to use', '-DEFAULT_3'), |
96 |
('omp_optim', 'OpenMP compiler flags to use (Release build)', '-DEFAULT_4'), |
('omp_optim', 'OpenMP compiler flags to use (Release build)', '-DEFAULT_4'), |
97 |
('omp_debug', 'OpenMP compiler flags to use (Debug build)', '-DEFAULT_5'), |
('omp_debug', 'OpenMP compiler flags to use (Debug build)', '-DEFAULT_5'), |
98 |
('omp_libs', 'OpenMP compiler libraries to link with', '-DEFAULT_6'), |
('omp_libs', 'OpenMP compiler libraries to link with', '-DEFAULT_6'), |
99 |
('cc_extra', 'Extra C/C++ flags', ''), |
('cc_extra', 'Extra C compiler flags', ''), |
100 |
|
('cxx_extra', 'Extra C++ compiler flags', ''), |
101 |
('ld_extra', 'Extra linker flags', ''), |
('ld_extra', 'Extra linker flags', ''), |
102 |
('sys_libs', 'System libraries to link with', []), |
('sys_libs', 'System libraries to link with', []), |
103 |
('ar_flags', 'Static library archiver flags to use', ''), |
('ar_flags', 'Static library archiver flags to use', ''), |
193 |
env = Environment(tools = ['default'] + env['tools_names'], |
env = Environment(tools = ['default'] + env['tools_names'], |
194 |
options = opts) |
options = opts) |
195 |
else: |
else: |
196 |
if effective_hostname == 'service0': |
if effective_hostname == 'savanna': |
197 |
env = Environment(tools = ['default', 'intelc'], options = opts) |
env = Environment(tools = ['default', 'intelc'], options = opts) |
198 |
elif os.uname()[4]=='ia64': |
elif os.uname()[4]=='ia64': |
199 |
env = Environment(tools = ['default', 'intelc'], options = opts) |
env = Environment(tools = ['default', 'intelc'], options = opts) |
389 |
# Add cc option -L<Escript>/trunk/lib |
# Add cc option -L<Escript>/trunk/lib |
390 |
env.Append(LIBPATH = [Dir(env['libinstall'])]) |
env.Append(LIBPATH = [Dir(env['libinstall'])]) |
391 |
|
|
392 |
if env['cc_extra'] != '': env.Append(CCFLAGS = env['cc_extra']) |
if env['cc_extra'] != '': env.Append(CFLAGS = env['cc_extra']) |
393 |
|
if env['cxx_extra'] != '': env.Append(CXXFLAGS = env['cxx_extra']) |
394 |
if env['ld_extra'] != '': env.Append(LINKFLAGS = env['ld_extra']) |
if env['ld_extra'] != '': env.Append(LINKFLAGS = env['ld_extra']) |
395 |
|
|
396 |
if env['usepedantic']: env.Append(CCFLAGS = pedantic) |
if env['usepedantic']: env.Append(CCFLAGS = pedantic) |
481 |
conf.env.PrependENVPath('PYTHONPATH', prefix) |
conf.env.PrependENVPath('PYTHONPATH', prefix) |
482 |
conf.env.PrependENVPath(LD_LIBRARY_PATH_KEY, env['libinstall']) |
conf.env.PrependENVPath(LD_LIBRARY_PATH_KEY, env['libinstall']) |
483 |
|
|
|
if not conf.CheckCXXHeader('boost/python.hpp'): |
|
|
print "Cannot find boost include files (tried boost/python.hpp in directory %s)" % (env['boost_path']) |
|
|
sys.exit(1) |
|
484 |
|
|
485 |
if not conf.CheckFunc('PyObject_SetAttr'): |
#Yep we still cant figure this one out. - working on it. |
486 |
print "Cannot find boost library method PyObject_SetAttr (tried method PyObject_SetAttr in library %s in directory %s)" % (env['boost_libs'], env['boost_lib_path']) |
if not IS_WINDOWS_PLATFORM: |
487 |
sys.exit(1) |
if not conf.CheckCXXHeader('boost/python.hpp'): |
488 |
|
print "Cannot find boost include files (tried boost/python.hpp in directory %s)" % (env['boost_path']) |
489 |
|
sys.exit(1) |
490 |
|
|
491 |
|
if not conf.CheckFunc('PyObject_SetAttr'): |
492 |
|
print "Cannot find boost library method PyObject_SetAttr (tried method PyObject_SetAttr in library %s in directory %s)" % (env['boost_libs'], env['boost_lib_path']) |
493 |
|
sys.exit(1) |
494 |
|
|
495 |
|
|
496 |
# Commit changes to environment |
# Commit changes to environment |
497 |
env = conf.Finish() |
env = conf.Finish() |
628 |
|
|
629 |
# Add the path to Silo to environment env if it was found. |
# Add the path to Silo to environment env if it was found. |
630 |
# Note that we do not add the libs since they are only needed for the |
# Note that we do not add the libs since they are only needed for the |
631 |
# escriptexport library and tools. |
# weipa library and tools. |
632 |
if env['usesilo']: |
if env['usesilo']: |
633 |
env.AppendUnique(CPPPATH = [env['silo_path']]) |
env.AppendUnique(CPPPATH = [env['silo_path']]) |
634 |
env.AppendUnique(LIBPATH = [env['silo_lib_path']]) |
env.AppendUnique(LIBPATH = [env['silo_lib_path']]) |
|
env.Append(CPPDEFINES = ['USE_SILO']) |
|
635 |
|
|
636 |
########### Lapack (optional) ################################## |
########### Lapack (optional) ################################## |
637 |
|
|
706 |
if env_mpi['usempi']: |
if env_mpi['usempi']: |
707 |
env_mpi = conf.Finish() |
env_mpi = conf.Finish() |
708 |
env_mpi.Append(CPPDEFINES = ['PASO_MPI', 'MPI_NO_CPPBIND', env_mpi['MPICH_IGNORE_CXX_SEEK']]) |
env_mpi.Append(CPPDEFINES = ['PASO_MPI', 'MPI_NO_CPPBIND', env_mpi['MPICH_IGNORE_CXX_SEEK']]) |
709 |
|
# NetCDF 4.1 defines MPI_Comm et al. if MPI_INCLUDED is not defined! |
710 |
|
# On the other hand MPT and OpenMPI don't define the latter so we have to |
711 |
|
# do that here |
712 |
|
if env['usenetcdf'] and env_mpi['mpi_flavour'] in ["MPT","OPENMPI"]: |
713 |
|
env_mpi.Append(CPPDEFINES = ['MPI_INCLUDED']) |
714 |
else: |
else: |
715 |
conf.Finish() |
conf.Finish() |
716 |
|
|
821 |
env.SConscript(dirs = ['tools/CppUnitTest/src'], build_dir='build/$PLATFORM/tools/CppUnitTest', duplicate=0) |
env.SConscript(dirs = ['tools/CppUnitTest/src'], build_dir='build/$PLATFORM/tools/CppUnitTest', duplicate=0) |
822 |
env.SConscript(dirs = ['tools/escriptconvert'], build_dir='build/$PLATFORM/tools/escriptconvert', duplicate=0) |
env.SConscript(dirs = ['tools/escriptconvert'], build_dir='build/$PLATFORM/tools/escriptconvert', duplicate=0) |
823 |
env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0) |
env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0) |
824 |
env.SConscript(dirs = ['dataexporter/src'], build_dir='build/$PLATFORM/dataexporter', duplicate=0) |
env.SConscript(dirs = ['weipa/src'], build_dir='build/$PLATFORM/weipa', duplicate=0) |
825 |
env.SConscript(dirs = ['escript/src'], build_dir='build/$PLATFORM/escript', duplicate=0) |
env.SConscript(dirs = ['escript/src'], build_dir='build/$PLATFORM/escript', duplicate=0) |
826 |
env.SConscript(dirs = ['esysUtils/src'], build_dir='build/$PLATFORM/esysUtils', duplicate=0) |
env.SConscript(dirs = ['esysUtils/src'], build_dir='build/$PLATFORM/esysUtils', duplicate=0) |
827 |
env.SConscript(dirs = ['finley/src'], build_dir='build/$PLATFORM/finley', duplicate=0) |
env.SConscript(dirs = ['finley/src'], build_dir='build/$PLATFORM/finley', duplicate=0) |
918 |
env.Alias('build_paso', ['target_install_paso_headers', 'target_paso_a']) |
env.Alias('build_paso', ['target_install_paso_headers', 'target_paso_a']) |
919 |
env.Alias('install_paso', ['build_paso', 'target_install_paso_a']) |
env.Alias('install_paso', ['build_paso', 'target_install_paso_a']) |
920 |
|
|
921 |
env.Alias('build_dataexporter', ['target_install_escriptexport_headers', 'target_escriptexport_so', 'target_escriptexportcpp_so']) |
env.Alias('build_weipa', ['target_install_weipa_headers', 'target_weipa_so', 'target_weipacpp_so']) |
922 |
env.Alias('install_dataexporter', ['build_dataexporter', 'target_install_escriptexport_so', 'target_install_escriptexportcpp_so', 'target_install_dataexporter_py']) |
env.Alias('install_weipa', ['build_weipa', 'target_install_weipa_so', 'target_install_weipacpp_so', 'target_install_weipa_py']) |
923 |
|
|
924 |
|
env.Alias('build_escriptreader', ['target_install_weipa_headers', 'target_escriptreader_a']) |
925 |
|
env.Alias('install_escriptreader', ['build_escriptreader', 'target_install_escriptreader_a']) |
926 |
|
|
927 |
env.Alias('build_escript', ['target_install_escript_headers', 'target_escript_so', 'target_escriptcpp_so']) |
env.Alias('build_escript', ['target_install_escript_headers', 'target_escript_so', 'target_escriptcpp_so']) |
928 |
env.Alias('install_escript', ['build_escript', 'target_install_escript_so', 'target_install_escriptcpp_so', 'target_install_escript_py']) |
env.Alias('install_escript', ['build_escript', 'target_install_escript_so', 'target_install_escriptcpp_so', 'target_install_escript_py']) |
934 |
build_all_list = [] |
build_all_list = [] |
935 |
build_all_list += ['build_esysUtils'] |
build_all_list += ['build_esysUtils'] |
936 |
build_all_list += ['build_paso'] |
build_all_list += ['build_paso'] |
937 |
build_all_list += ['build_dataexporter'] |
build_all_list += ['build_weipa'] |
938 |
build_all_list += ['build_escript'] |
build_all_list += ['build_escript'] |
939 |
build_all_list += ['build_finley'] |
build_all_list += ['build_finley'] |
940 |
if env['usempi']: build_all_list += ['target_pythonMPI_exe'] |
if env['usempi']: build_all_list += ['target_pythonMPI_exe'] |
941 |
#if not IS_WINDOWS_PLATFORM: build_all_list += ['target_escript_wrapper'] |
#if not IS_WINDOWS_PLATFORM: build_all_list += ['target_escript_wrapper'] |
942 |
if env['usesilo']: build_all_list += ['target_escriptconvert'] |
build_all_list += ['target_escriptconvert'] |
943 |
env.Alias('build_all', build_all_list) |
env.Alias('build_all', build_all_list) |
944 |
|
|
945 |
install_all_list = [] |
install_all_list = [] |
946 |
install_all_list += ['target_init'] |
install_all_list += ['target_init'] |
947 |
install_all_list += ['install_esysUtils'] |
install_all_list += ['install_esysUtils'] |
948 |
install_all_list += ['install_paso'] |
install_all_list += ['install_paso'] |
949 |
install_all_list += ['install_dataexporter'] |
install_all_list += ['install_weipa'] |
950 |
install_all_list += ['install_escript'] |
install_all_list += ['install_escript'] |
951 |
install_all_list += ['install_finley'] |
install_all_list += ['install_finley'] |
952 |
install_all_list += ['target_install_pyvisi_py'] |
install_all_list += ['target_install_pyvisi_py'] |
974 |
|
|
975 |
env.Alias('api_epydoc','install_all') |
env.Alias('api_epydoc','install_all') |
976 |
|
|
977 |
env.Alias('docs', ['examples_tarfile', 'examples_zipfile', 'api_epydoc', 'api_doxygen', 'guide_pdf', 'guide_html','install_pdf']) |
env.Alias('docs', ['examples_tarfile', 'examples_zipfile', 'api_epydoc', 'api_doxygen', 'guide_pdf', 'guide_html','install_pdf', 'cookbook_pdf']) |
978 |
|
|
979 |
build_platform=os.name |
build_platform=os.name |
980 |
|
|
1002 |
############ Targets to build PasoTests suite ################ |
############ Targets to build PasoTests suite ################ |
1003 |
|
|
1004 |
env.Alias('build_PasoTests','build/'+build_platform+'/paso/profiling/PasoTests') |
env.Alias('build_PasoTests','build/'+build_platform+'/paso/profiling/PasoTests') |
1005 |
|
|
1006 |
|
env.Alias('release_prep', ['docs', 'install_all']) |