/[escript]/branches/inv2jf/SConstruct
ViewVC logotype

Diff of /branches/inv2jf/SConstruct

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5249 by caltinay, Wed Oct 1 04:19:22 2014 UTC revision 5250 by caltinay, Mon Nov 10 04:05:11 2014 UTC
# Line 86  vars.AddVariables( Line 86  vars.AddVariables(
86    EnumVariable('mpi', 'Compile parallel version using MPI flavour', 'none', allowed_values=mpi_flavours),    EnumVariable('mpi', 'Compile parallel version using MPI flavour', 'none', allowed_values=mpi_flavours),
87    ('mpi_prefix', 'Prefix/Paths of MPI installation', default_prefix),    ('mpi_prefix', 'Prefix/Paths of MPI installation', default_prefix),
88    ('mpi_libs', 'MPI shared libraries to link with', ['mpi']),    ('mpi_libs', 'MPI shared libraries to link with', ['mpi']),
89      BoolVariable('cuda', 'Enable GPU code with CUDA (requires thrust)', False),
90      ('thrust_prefix', 'Prefix/Paths to NVidia thrust installation', default_prefix),
91    BoolVariable('netcdf', 'Enable netCDF file support', False),    BoolVariable('netcdf', 'Enable netCDF file support', False),
92    ('netcdf_prefix', 'Prefix/Paths of netCDF installation', default_prefix),    ('netcdf_prefix', 'Prefix/Paths of netCDF installation', default_prefix),
93    ('netcdf_libs', 'netCDF libraries to link with', ['netcdf_c++', 'netcdf']),    ('netcdf_libs', 'netCDF libraries to link with', ['netcdf_c++', 'netcdf']),
94    BoolVariable('parmetis', 'Enable ParMETIS (requires MPI)', False),    BoolVariable('parmetis', 'Enable ParMETIS (requires MPI)', False),
95    ('parmetis_prefix', 'Prefix/Paths of ParMETIS installation', default_prefix),    ('parmetis_prefix', 'Prefix/Paths of ParMETIS installation', default_prefix),
96    ('parmetis_libs', 'ParMETIS libraries to link with', ['parmetis', 'metis']),    ('parmetis_libs', 'ParMETIS libraries to link with', ['parmetis', 'metis']),
   BoolVariable('papi', 'Enable PAPI', False),  
   ('papi_prefix', 'Prefix/Paths to PAPI installation', default_prefix),  
   ('papi_libs', 'PAPI libraries to link with', ['papi']),  
   BoolVariable('papi_instrument_solver', 'Use PAPI to instrument each iteration of the solver', False),  
97    BoolVariable('mkl', 'Enable the Math Kernel Library', False),    BoolVariable('mkl', 'Enable the Math Kernel Library', False),
98    ('mkl_prefix', 'Prefix/Paths to MKL installation', default_prefix),    ('mkl_prefix', 'Prefix/Paths to MKL installation', default_prefix),
99    ('mkl_libs', 'MKL libraries to link with', ['mkl_solver','mkl_em64t','guide','pthread']),    ('mkl_libs', 'MKL libraries to link with', ['mkl_solver','mkl_em64t','guide','pthread']),
# Line 114  vars.AddVariables( Line 112  vars.AddVariables(
112    BoolVariable('visit', 'Enable the VisIt simulation interface', False),    BoolVariable('visit', 'Enable the VisIt simulation interface', False),
113    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),
114    ('visit_libs', 'VisIt libraries to link with', ['simV2']),    ('visit_libs', 'VisIt libraries to link with', ['simV2']),
   BoolVariable('vsl_random', 'Use VSL from intel for random data', False),  
   BoolVariable('cuda', 'Enable GPU code with CUDA (requires thrust)', False),  
115    ListVariable('domains', 'Which domains to build', 'all',\    ListVariable('domains', 'Which domains to build', 'all',\
116                 ['dudley','finley','ripley','speckley']),                 ['dudley','finley','ripley','speckley']),
   ('thrust_prefix', 'Prefix/Paths to NVidia thrust installation', default_prefix),  
117  # Advanced settings  # Advanced settings
118    #dudley_assemble_flags = -funroll-loops      to actually do something    #dudley_assemble_flags = -funroll-loops      to actually do something
119    ('dudley_assemble_flags', 'compiler flags for some dudley optimisations', ''),    ('dudley_assemble_flags', 'compiler flags for some dudley optimisations', ''),
# Line 129  vars.AddVariables( Line 124  vars.AddVariables(
124    ('env_export', 'Environment variables to be passed to tools',[]),    ('env_export', 'Environment variables to be passed to tools',[]),
125    EnumVariable('forcelazy', 'For testing use only - set the default value for autolazy', 'leave_alone', allowed_values=('leave_alone', 'on', 'off')),    EnumVariable('forcelazy', 'For testing use only - set the default value for autolazy', 'leave_alone', allowed_values=('leave_alone', 'on', 'off')),
126    EnumVariable('forcecollres', 'For testing use only - set the default value for force resolving collective ops', 'leave_alone', allowed_values=('leave_alone', 'on', 'off')),    EnumVariable('forcecollres', 'For testing use only - set the default value for force resolving collective ops', 'leave_alone', allowed_values=('leave_alone', 'on', 'off')),
   # finer control over library building, intel aggressive global optimisation  
   # works with dynamic libraries on windows.  
127    ('build_shared', 'Build dynamic libraries only', False),    ('build_shared', 'Build dynamic libraries only', False),
128    ('sys_libs', 'Extra libraries to link with', []),    ('sys_libs', 'Extra libraries to link with', []),
129    ('escript_opts_version', 'Version of options file (do not specify on command line)'),    ('escript_opts_version', 'Version of options file (do not specify on command line)'),
130    ('SVN_VERSION', 'Do not use from options file', -2),    ('SVN_VERSION', 'Do not use from options file', -2),
131    ('pythoncmd', 'which python to compile with','python'),    ('pythoncmd', 'which python to compile with','python'),
132    ('usepython3', 'Is this a python3 build? (experimental)', False),    ('usepython3', 'Is this a python3 build? (experimental)', False),
   ('longindices', 'use long indices (for very large matrices)', False),  
133    ('pythonlibname', 'Name of the python library to link. (This is found automatically for python2.X.)', ''),    ('pythonlibname', 'Name of the python library to link. (This is found automatically for python2.X.)', ''),
134    ('pythonlibpath', 'Path to the python library. (You should not need to set this unless your python has moved)',''),    ('pythonlibpath', 'Path to the python library. (You should not need to set this unless your python has moved)',''),
135    ('pythonincpath','Path to python include files. (You should not need to set this unless your python has moved',''),    ('pythonincpath','Path to python include files. (You should not need to set this unless your python has moved',''),
136      BoolVariable('longindices', 'use long indices (for very large matrices)', False),
137    BoolVariable('BADPYTHONMACROS','Extra \#include to get around a python bug.', True),    BoolVariable('BADPYTHONMACROS','Extra \#include to get around a python bug.', True),
138    BoolVariable('compressed_files','Enables reading from compressed binary files', True),    BoolVariable('compressed_files','Enables reading from compressed binary files', True),
139    ('compression_libs', 'Compression libraries to link with', ['boost_iostreams'])    ('compression_libs', 'Compression libraries to link with', ['boost_iostreams']),
140      BoolVariable('papi', 'Enable PAPI', False),
141      ('papi_prefix', 'Prefix/Paths to PAPI installation', default_prefix),
142      ('papi_libs', 'PAPI libraries to link with', ['papi']),
143      BoolVariable('papi_instrument_solver', 'Use PAPI to instrument each iteration of the solver', False)
144  )  )
145    
146  ##################### Create environment and help text #######################  ##################### Create environment and help text #######################
# Line 251  if cc_name == 'icpc': Line 248  if cc_name == 'icpc':
248      omp_ldflags = "-openmp -openmp_report=1"      omp_ldflags = "-openmp -openmp_report=1"
249      fatalwarning = "-Werror"      fatalwarning = "-Werror"
250  elif cc_name[:3] == 'g++':  elif cc_name[:3] == 'g++':
251      # GNU C on any system      # GNU C++ on any system
252      # note that -ffast-math is not used because it breaks isnan(),      # note that -ffast-math is not used because it breaks isnan(),
253      # see mantis #691      # see mantis #691
254      cc_flags     = "-pedantic -Wall -fPIC -Wno-unknown-pragmas -Wno-sign-compare -Wno-system-headers -Wno-long-long -Wno-strict-aliasing -finline-functions"      cc_flags     = "-pedantic -Wall -fPIC -Wno-unknown-pragmas -Wno-sign-compare -Wno-system-headers -Wno-long-long -Wno-strict-aliasing -finline-functions"
255      cc_optim     = "-O3"      cc_optim     = "-O3"
256      cc_debug     = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK --param=max-vartrack-size=90000000" #avoids vartrack limit being exceeded with escriptcpp.cpp      #max-vartrack-size: avoid vartrack limit being exceeded with escriptcpp.cpp
257        cc_debug     = "-g3 -O0 -D_GLIBCXX_DEBUG -DDOASSERT -DDOPROF -DBOUNDS_CHECK --param=max-vartrack-size=100000000"
258      omp_flags    = "-fopenmp"      omp_flags    = "-fopenmp"
259      omp_ldflags  = "-fopenmp"      omp_ldflags  = "-fopenmp"
260      fatalwarning = "-Werror"      fatalwarning = "-Werror"
# Line 366  if IS_WINDOWS: Line 364  if IS_WINDOWS:
364          env.Append(CPPDEFINES = ['ESYSUTILS_STATIC_LIB'])          env.Append(CPPDEFINES = ['ESYSUTILS_STATIC_LIB'])
365          env.Append(CPPDEFINES = ['PASO_STATIC_LIB'])          env.Append(CPPDEFINES = ['PASO_STATIC_LIB'])
366    
 # VSL random numbers  
 env['buildvars']['vsl_random']=int(env['vsl_random'])  
 if env['vsl_random']:  
     env.Append(CPPDEFINES = ['MKLRANDOM'])  
   
367  env['IS_WINDOWS']=IS_WINDOWS  env['IS_WINDOWS']=IS_WINDOWS
368    
369  ###################### Copy required environment vars ########################  ###################### Copy required environment vars ########################
# Line 528  env.SConscript(dirs = ['cusplibrary']) Line 521  env.SConscript(dirs = ['cusplibrary'])
521    
522  #This will pull in the escriptcore/py_src and escriptcore/test  #This will pull in the escriptcore/py_src and escriptcore/test
523  env.SConscript(dirs = ['escriptcore/src'], variant_dir='$BUILD_DIR/$PLATFORM/escriptcore', duplicate=0)  env.SConscript(dirs = ['escriptcore/src'], variant_dir='$BUILD_DIR/$PLATFORM/escriptcore', duplicate=0)
 #env.SConscript(dirs = ['escript/test'], variant_dir='$BUILD_DIR/$PLATFORM/escript/test', duplicate=0)  
524  env.SConscript(dirs = ['esysUtils/src'], variant_dir='$BUILD_DIR/$PLATFORM/esysUtils', duplicate=0)  env.SConscript(dirs = ['esysUtils/src'], variant_dir='$BUILD_DIR/$PLATFORM/esysUtils', duplicate=0)
525  env.SConscript(dirs = ['pasowrap/src'], variant_dir='$BUILD_DIR/$PLATFORM/pasowrap', duplicate=0)  env.SConscript(dirs = ['pasowrap/src'], variant_dir='$BUILD_DIR/$PLATFORM/pasowrap', duplicate=0)
526  if 'dudley' in env['domains']:  if 'dudley' in env['domains']:
# Line 659  if not IS_WINDOWS: Line 651  if not IS_WINDOWS:
651      generateTestScripts(env, TestGroups)      generateTestScripts(env, TestGroups)
652    
653    
   
654  ######################## Summarize our environment ###########################  ######################## Summarize our environment ###########################
655  def print_summary():  def print_summary():
656      print("")      print("")
# Line 675  def print_summary(): Line 666  def print_summary():
666      if env['usempi']:      if env['usempi']:
667          print("             MPI:  YES (flavour: %s)"%env['mpi'])          print("             MPI:  YES (flavour: %s)"%env['mpi'])
668      else:      else:
669          print("             MPI:  DISABLED")          print("             MPI:  NO")
670      if env['uselapack']:      if env['uselapack']:
671          print("          LAPACK:  YES (flavour: %s)"%env['lapack'])          print("          LAPACK:  YES (flavour: %s)"%env['lapack'])
672      else:      else:
673          print("          LAPACK:  DISABLED")          print("          LAPACK:  NO")
674      if env['cuda']:      if env['cuda']:
675          print("            CUDA:  YES (nvcc: %s)"%env['nvcc_version'])          print("            CUDA:  YES (nvcc: %s)"%env['nvcc_version'])
676      else:      else:
677          print("            CUDA:  DISABLED")          print("            CUDA:  NO")
678      d_list=[]      d_list=[]
679      e_list=[]      e_list=[]
680      for i in 'debug','openmp','boomeramg','gdal','mkl','netcdf','papi','parmetis','pyproj','scipy','silo','sympy','umfpack','visit','vsl_random':      for i in 'debug','openmp','boomeramg','gdal','mkl','netcdf','papi','parmetis','pyproj','scipy','silo','sympy','umfpack','visit':
681          if env[i]: e_list.append(i)          if env[i]: e_list.append(i)
682          else: d_list.append(i)          else: d_list.append(i)
683      for i in e_list:      for i in e_list:
684          print("%16s:  YES"%i)          print("%16s:  YES"%i)
685      for i in d_list:      for i in d_list:
686          print("%16s:  DISABLED"%i)          print("%16s:  NO"%i)
687      if env['cppunit']:      if env['cppunit']:
688          print("         CppUnit:  FOUND")          print("         CppUnit:  YES")
689      else:      else:
690          print("         CppUnit:  NOT FOUND")          print("         CppUnit:  NO")
691      if env['gmsh']=='m':      if env['gmsh']=='m':
692          print("            gmsh:  FOUND, MPI-ENABLED")          print("            gmsh:  YES, MPI-ENABLED")
693      elif env['gmsh']=='s':      elif env['gmsh']=='s':
694          print("            gmsh:  FOUND")          print("            gmsh:  YES")
695      else:      else:
696          print("            gmsh:  NOT FOUND")          print("            gmsh:  NO")
697      print(    "            gzip:  " + ("YES" if env['compressed_files'] else "NO"))      print(    "            gzip:  " + ("YES" if env['compressed_files'] else "NO"))
698    
699      if ((fatalwarning != '') and (env['werror'])):      if ((fatalwarning != '') and (env['werror'])):

Legend:
Removed from v.5249  
changed lines
  Added in v.5250

  ViewVC Help
Powered by ViewVC 1.1.26