/[escript]/trunk/SConstruct
ViewVC logotype

Diff of /trunk/SConstruct

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

revision 1753 by ksteube, Sun Sep 7 22:01:23 2008 UTC revision 2060 by jfenwick, Tue Nov 18 00:18:08 2008 UTC
# Line 1  Line 1 
1  #         Copyright 2006 by ACcESS MNRF  
2    ########################################################
3    #
4    # Copyright (c) 2003-2008 by University of Queensland
5    # Earth Systems Science Computational Center (ESSCC)
6    # http://www.uq.edu.au/esscc
7    #
8    # Primary Business: Queensland, Australia
9    # Licensed under the Open Software License version 3.0
10    # http://www.opensource.org/licenses/osl-3.0.php
11  #  #
12  #              http://www.access.edu.au  ########################################################
13  #       Primary Business: Queensland, Australia  
 #  Licensed under the Open Software License version 3.0  
 #     http://www.opensource.org/licenses/osl-3.0.php  
14    
15  EnsureSConsVersion(0,96,91)  EnsureSConsVersion(0,96,91)
16  EnsurePythonVersion(2,3)  EnsurePythonVersion(2,3)
# Line 30  prefix = ARGUMENTS.get('prefix', Dir('#. Line 37  prefix = ARGUMENTS.get('prefix', Dir('#.
37  hostname = re.sub("[^0-9a-zA-Z]", "_", socket.gethostname().split('.')[0])  hostname = re.sub("[^0-9a-zA-Z]", "_", socket.gethostname().split('.')[0])
38  tmp = os.path.join("scons",hostname+"_options.py")  tmp = os.path.join("scons",hostname+"_options.py")
39  options_file = ARGUMENTS.get('options_file', tmp)  options_file = ARGUMENTS.get('options_file', tmp)
40  if not os.path.isfile(options_file): options_file = False  if not os.path.isfile(options_file):
41  else: print "Options file is", options_file    options_file = False
42      print "Options file not found (expected '%s')" % tmp
43    else:
44      print "Options file is", options_file
45    
46  # Load options file and command-line arguments  # Load options file and command-line arguments
47  opts = Options(options_file, ARGUMENTS)  opts = Options(options_file, ARGUMENTS)
# Line 42  opts.AddOptions( Line 52  opts.AddOptions(
52  # Where to install esys stuff  # Where to install esys stuff
53    ('prefix', 'where everything will be installed',                       Dir('#.').abspath),    ('prefix', 'where everything will be installed',                       Dir('#.').abspath),
54    ('incinstall', 'where the esys headers will be installed',             os.path.join(Dir('#.').abspath,'include')),    ('incinstall', 'where the esys headers will be installed',             os.path.join(Dir('#.').abspath,'include')),
55      ('bininstall', 'where the esys binaries will be installed',            os.path.join(prefix,'bin')),
56    ('libinstall', 'where the esys libraries will be installed',           os.path.join(prefix,'lib')),    ('libinstall', 'where the esys libraries will be installed',           os.path.join(prefix,'lib')),
57    ('pyinstall', 'where the esys python modules will be installed',       os.path.join(prefix,'esys')),    ('pyinstall', 'where the esys python modules will be installed',       os.path.join(prefix,'esys')),
58  # Compilation options  # Compilation options
# Line 49  opts.AddOptions( Line 60  opts.AddOptions(
60    BoolOption('usedebug', 'Do you want a debug build?', 'no'),    BoolOption('usedebug', 'Do you want a debug build?', 'no'),
61    BoolOption('usevtk', 'Do you want to use VTK?', 'yes'),    BoolOption('usevtk', 'Do you want to use VTK?', 'yes'),
62    ('options_file', 'File of paths/options. Default: scons/<hostname>_options.py', options_file),    ('options_file', 'File of paths/options. Default: scons/<hostname>_options.py', options_file),
63      ('win_cc_name', 'windows C compiler name if needed', 'msvc'),
64    # 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
65    ('cc_flags', 'C compiler flags to use', '-DEFAULT_1'),    ('cc_flags', 'C compiler flags to use', '-DEFAULT_1'),
66    ('cc_optim', 'C compiler optimization flags to use', '-DEFAULT_2'),    ('cc_optim', 'C compiler optimization flags to use', '-DEFAULT_2'),
# Line 57  opts.AddOptions( Line 69  opts.AddOptions(
69    ('omp_debug', 'OpenMP compiler flags to use (Debug build)', '-DEFAULT_5'),    ('omp_debug', 'OpenMP compiler flags to use (Debug build)', '-DEFAULT_5'),
70    ('omp_libs', 'OpenMP compiler libraries to link with', '-DEFAULT_6'),    ('omp_libs', 'OpenMP compiler libraries to link with', '-DEFAULT_6'),
71    ('cc_extra', 'Extra C/C++ flags', ''),    ('cc_extra', 'Extra C/C++ flags', ''),
72      ('ld_extra', 'Extra linker flags', ''),
73    ('sys_libs', 'System libraries to link with', []),    ('sys_libs', 'System libraries to link with', []),
74    ('ar_flags', 'Static library archiver flags to use', ''),    ('ar_flags', 'Static library archiver flags to use', ''),
75    BoolOption('useopenmp', 'Compile parallel version using OpenMP', 'yes'),    BoolOption('useopenmp', 'Compile parallel version using OpenMP', 'yes'),
76    BoolOption('usepedantic', 'Compile with -pedantic if using gcc', 'yes'),    BoolOption('usepedantic', 'Compile with -pedantic if using gcc', 'no'),
77      BoolOption('usewarnings','Compile with warnings as errors if using gcc','yes'),
78  # Python  # Python
79    ('python_path', 'Path to Python includes', '/usr/include/'+python_version),    ('python_path', 'Path to Python includes', '/usr/include/'+python_version),
80    ('python_lib_path', 'Path to Python libs', usr_lib),    ('python_lib_path', 'Path to Python libs', usr_lib),
# Line 112  opts.AddOptions( Line 126  opts.AddOptions(
126  # BLAS (used by UMFPACK)  # BLAS (used by UMFPACK)
127    ('blas_path', 'Path to BLAS includes', '/usr/include/suitesparse'),    ('blas_path', 'Path to BLAS includes', '/usr/include/suitesparse'),
128    ('blas_lib_path', 'Path to BLAS libs', usr_lib),    ('blas_lib_path', 'Path to BLAS libs', usr_lib),
129    ('blas_libs', 'BLAS libraries to link with', ['blas'])    ('blas_libs', 'BLAS libraries to link with', ['blas']),
130    # An option for specifying the compiler tools set (see windows branch).
131      ('tools_names', 'allow control over the tools in the env setup', ['intelc']),
132    # finer control over library building, intel aggressive global optimisation
133    # works with dynamic libraries on windows.
134      ('share_esysUtils', 'control static or dynamic esysUtils lib', False),
135      ('share_paso', 'control static or dynamic paso lib', False)
136  )  )
137    
138  ############ Specify which compilers to use ####################  ############ Specify which compilers to use ####################
# Line 121  opts.AddOptions( Line 141  opts.AddOptions(
141  # failing to find the compilers.  This warning can be safely ignored.  # failing to find the compilers.  This warning can be safely ignored.
142    
143  if IS_WINDOWS_PLATFORM:  if IS_WINDOWS_PLATFORM:
144        env = Environment(tools = ['default', 'msvc'], options = opts)        env = Environment(options = opts)
145          env = Environment(tools = ['default'] + env['tools_names'],
146                            options = opts)
147  else:  else:
148     if socket.gethostname().split('.')[0] == 'service0':     if socket.gethostname().split('.')[0] == 'service0':
149        env = Environment(tools = ['default', 'intelc'], options = opts)        env = Environment(tools = ['default', 'intelc'], options = opts)
# Line 146  if env["CC"] == "icc": Line 168  if env["CC"] == "icc":
168    # Intel compilers    # Intel compilers
169    cc_flags      = "-fPIC -ansi -wd161 -w1 -vec-report0 -DBLOCKTIMER -DCORE_ID1"    cc_flags      = "-fPIC -ansi -wd161 -w1 -vec-report0 -DBLOCKTIMER -DCORE_ID1"
170    cc_optim      = "-O3 -ftz -IPF_ftlacc- -IPF_fma -fno-alias"    cc_optim      = "-O3 -ftz -IPF_ftlacc- -IPF_fma -fno-alias"
171    cc_debug      = "-g -O0 -UDOASSERT -DDOPROF -DBOUNDS_CHECK"    cc_debug      = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK"
172    omp_optim     = "-openmp -openmp_report0"    omp_optim     = "-openmp -openmp_report0"
173    omp_debug     = "-openmp -openmp_report0"    omp_debug     = "-openmp -openmp_report0"
174    omp_libs      = ['guide', 'pthread']    omp_libs      = ['guide', 'pthread']
175    pedantic      = ""    pedantic      = ""
176      fatalwarning      = ""        # Switch to turn warnings into errors
177  elif env["CC"] == "gcc":  elif env["CC"] == "gcc":
178    # GNU C on any system    # GNU C on any system
179    cc_flags      = "-fPIC -ansi -ffast-math -Wno-unknown-pragmas -DBLOCKTIMER"    cc_flags      = "-pedantic -Wall -fPIC -ansi -ffast-math -Wno-unknown-pragmas -DBLOCKTIMER -isystem " + env['boost_path'] + "/boost -isystem " + env['python_path'] + " -Wno-sign-compare -Wno-system-headers -Wno-strict-aliasing"
180    #the strict aliasing warning is triggered by some type punning in the boost headers for version 1.34
181    #isystem does not seem to prevent this
182    cc_optim      = "-O3"    cc_optim      = "-O3"
183    cc_debug      = "-g -O0 -UDOASSERT -DDOPROF -DBOUNDS_CHECK"    cc_debug      = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK"
184    omp_optim     = ""    omp_optim     = ""
185    omp_debug     = ""    omp_debug     = ""
186    omp_libs      = []    omp_libs      = []
187    pedantic      = "-pedantic-errors -Wno-long-long"    pedantic      = "-pedantic-errors -Wno-long-long"
188      fatalwarning      = "-Werror"
189  elif env["CC"] == "cl":  elif env["CC"] == "cl":
190    # Microsoft Visual C on Windows    # Microsoft Visual C on Windows
191    cc_flags      = "/FD /EHsc /GR /wd4068 -D_USE_MATH_DEFINES -DDLL_NETCDF"    cc_flags      = "/FD /EHsc /GR /wd4068 -D_USE_MATH_DEFINES -DDLL_NETCDF"
# Line 169  elif env["CC"] == "cl": Line 195  elif env["CC"] == "cl":
195    omp_debug     = ""    omp_debug     = ""
196    omp_libs      = []    omp_libs      = []
197    pedantic      = ""    pedantic      = ""
198      fatalwarning      = ""
199    elif env["CC"] == "icl":
200      # intel C on Windows, see windows_intelc_options.py for a start
201      pedantic      = ""
202      fatalwarning      = ""
203    
204  # If not specified in hostname_options.py then set them here  # If not specified in hostname_options.py then set them here
205  if env["cc_flags"]  == "-DEFAULT_1": env['cc_flags'] = cc_flags  if env["cc_flags"]  == "-DEFAULT_1": env['cc_flags'] = cc_flags
# Line 186  if not env["useopenmp"]: Line 217  if not env["useopenmp"]:
217    
218  if env['omp_optim'] == "" and env['omp_debug'] == "": env["useopenmp"] = 0  if env['omp_optim'] == "" and env['omp_debug'] == "": env["useopenmp"] = 0
219    
 Execute(Delete(env['libinstall'] + "/Compiled.with.debug"))  
 Execute(Delete(env['libinstall'] + "/Compiled.with.mpi"))  
 Execute(Delete(env['libinstall'] + "/Compiled.with.openmp"))  
 if not env['useMPI']: Execute(Delete(env['libinstall'] + "/pythonMPI"))  
   
220  ############ Copy environment variables into scons env #########  ############ Copy environment variables into scons env #########
221    
222  try: env['ENV']['OMP_NUM_THREADS'] = os.environ['OMP_NUM_THREADS']  try: env['ENV']['OMP_NUM_THREADS'] = os.environ['OMP_NUM_THREADS']
# Line 227  except KeyError: pass Line 253  except KeyError: pass
253  env.PrependENVPath('PYTHONPATH', prefix)  env.PrependENVPath('PYTHONPATH', prefix)
254  env.PrependENVPath('LD_LIBRARY_PATH', env['libinstall'])  env.PrependENVPath('LD_LIBRARY_PATH', env['libinstall'])
255    
256    env['ENV']['ESCRIPT_ROOT'] = prefix
257    
258  ############ Set up paths for Configure() ######################  ############ Set up paths for Configure() ######################
259    
260  # Make a copy of an environment  # Make a copy of an environment
# Line 241  env.Append(CPPPATH     = [Dir('include')]) Line 269  env.Append(CPPPATH     = [Dir('include')])
269  # Add cc option -L<Escript>/trunk/lib  # Add cc option -L<Escript>/trunk/lib
270  env.Append(LIBPATH      = [Dir(env['libinstall'])])  env.Append(LIBPATH      = [Dir(env['libinstall'])])
271    
 env.Append(CPPDEFINES = ['ESCRIPT_EXPORTS', 'FINLEY_EXPORTS'])  
   
272  if env['cc_extra'] != '': env.Append(CCFLAGS = env['cc_extra'])  if env['cc_extra'] != '': env.Append(CCFLAGS = env['cc_extra'])
273    if env['ld_extra'] != '': env.Append(LINKFLAGS = env['ld_extra'])
274    
275  if env['usepedantic']: env.Append(CCFLAGS = pedantic)  if env['usepedantic']: env.Append(CCFLAGS = pedantic)
276    
# Line 251  if env['usepedantic']: env.Append(CCFLAG Line 278  if env['usepedantic']: env.Append(CCFLAG
278  if IS_WINDOWS_PLATFORM:  if IS_WINDOWS_PLATFORM:
279    env.PrependENVPath('PATH',    [env['boost_lib_path']])    env.PrependENVPath('PATH',    [env['boost_lib_path']])
280    env.PrependENVPath('PATH',    [env['libinstall']])    env.PrependENVPath('PATH',    [env['libinstall']])
281      if not env['share_esysUtils'] :
282        env.Append(CPPDEFINES = ['ESYSUTILS_STATIC_LIB'])
283      if not env['share_paso'] :
284        env.Append(CPPDEFINES = ['PASO_STATIC_LIB'])
285    
286    if env['usenetcdf']:    if env['usenetcdf']:
287      env.PrependENVPath('PATH',  [env['netCDF_lib_path']])      env.PrependENVPath('PATH',  [env['netCDF_lib_path']])
288    
# Line 284  if not conf.CheckFunc('printf'): Line 316  if not conf.CheckFunc('printf'):
316    print "Cannot run C compiler '%s' (or libc is missing)" % (env['CC'])    print "Cannot run C compiler '%s' (or libc is missing)" % (env['CC'])
317    sys.exit(1)    sys.exit(1)
318    
319  if not conf.CheckFunc('gethostname'):  if conf.CheckFunc('gethostname'):
320    env.Append(CPPDEFINES = ['HAVE_GETHOSTNAME'])    conf.env.Append(CPPDEFINES = ['HAVE_GETHOSTNAME'])
321    
322  ############ python libraries (required) #######################  ############ python libraries (required) #######################
323    
# Line 293  conf.env.AppendUnique(CPPPATH      = [env['p Line 325  conf.env.AppendUnique(CPPPATH      = [env['p
325  conf.env.AppendUnique(LIBPATH       = [env['python_lib_path']])  conf.env.AppendUnique(LIBPATH       = [env['python_lib_path']])
326  conf.env.AppendUnique(LIBS      = [env['python_libs']])  conf.env.AppendUnique(LIBS      = [env['python_libs']])
327    
328    conf.env.PrependENVPath('LD_LIBRARY_PATH', env['python_lib_path'])  # The wrapper script needs to find these libs
329    
330  if not conf.CheckCHeader('Python.h'):  if not conf.CheckCHeader('Python.h'):
331    print "Cannot find python include files (tried 'Python.h' in directory %s)" % (env['python_path'])    print "Cannot find python include files (tried 'Python.h' in directory %s)" % (env['python_path'])
332    sys.exit(1)    sys.exit(1)
# Line 306  conf.env.AppendUnique(CPPPATH      = [env['b Line 340  conf.env.AppendUnique(CPPPATH      = [env['b
340  conf.env.AppendUnique(LIBPATH       = [env['boost_lib_path']])  conf.env.AppendUnique(LIBPATH       = [env['boost_lib_path']])
341  conf.env.AppendUnique(LIBS      = [env['boost_libs']])  conf.env.AppendUnique(LIBS      = [env['boost_libs']])
342    
343    conf.env.PrependENVPath('LD_LIBRARY_PATH', env['boost_lib_path'])   # The wrapper script needs to find these libs
344    
345  if not conf.CheckCXXHeader('boost/python.hpp'):  if not conf.CheckCXXHeader('boost/python.hpp'):
346    print "Cannot find boost include files (tried boost/python.hpp in directory %s)" % (env['boost_path'])    print "Cannot find boost include files (tried boost/python.hpp in directory %s)" % (env['boost_path'])
347    sys.exit(1)    sys.exit(1)
# Line 337  if env['usenetcdf']: Line 373  if env['usenetcdf']:
373    conf.env.AppendUnique(CPPPATH = [env['netCDF_path']])    conf.env.AppendUnique(CPPPATH = [env['netCDF_path']])
374    conf.env.AppendUnique(LIBPATH = [env['netCDF_lib_path']])    conf.env.AppendUnique(LIBPATH = [env['netCDF_lib_path']])
375    conf.env.AppendUnique(LIBS    = [env['netCDF_libs']])    conf.env.AppendUnique(LIBS    = [env['netCDF_libs']])
376      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['netCDF_lib_path'])    # The wrapper script needs to find these libs
377    
378  if env['usenetcdf'] and not conf.CheckCHeader('netcdf.h'): env['usenetcdf'] = 0  if env['usenetcdf'] and not conf.CheckCHeader('netcdf.h'): env['usenetcdf'] = 0
379  if env['usenetcdf'] and not conf.CheckFunc('nc_open'): env['usenetcdf'] = 0  if env['usenetcdf'] and not conf.CheckFunc('nc_open'): env['usenetcdf'] = 0
# Line 357  if env['usepapi']: Line 394  if env['usepapi']:
394    conf.env.AppendUnique(CPPPATH = [env['papi_path']])    conf.env.AppendUnique(CPPPATH = [env['papi_path']])
395    conf.env.AppendUnique(LIBPATH = [env['papi_lib_path']])    conf.env.AppendUnique(LIBPATH = [env['papi_lib_path']])
396    conf.env.AppendUnique(LIBS    = [env['papi_libs']])    conf.env.AppendUnique(LIBS    = [env['papi_libs']])
397      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['papi_lib_path'])  # The wrapper script needs to find these libs
398    
399  if env['usepapi'] and not conf.CheckCHeader('papi.h'): env['usepapi'] = 0  if env['usepapi'] and not conf.CheckCHeader('papi.h'): env['usepapi'] = 0
400  if env['usepapi'] and not conf.CheckFunc('PAPI_start_counters'): env['usepapi'] = 0  if env['usepapi'] and not conf.CheckFunc('PAPI_start_counters'): env['usepapi'] = 0
# Line 377  if env['usemkl']: Line 415  if env['usemkl']:
415    conf.env.AppendUnique(CPPPATH = [env['mkl_path']])    conf.env.AppendUnique(CPPPATH = [env['mkl_path']])
416    conf.env.AppendUnique(LIBPATH = [env['mkl_lib_path']])    conf.env.AppendUnique(LIBPATH = [env['mkl_lib_path']])
417    conf.env.AppendUnique(LIBS    = [env['mkl_libs']])    conf.env.AppendUnique(LIBS    = [env['mkl_libs']])
418      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['mkl_lib_path'])   # The wrapper script needs to find these libs
419    
420  if env['usemkl'] and not conf.CheckCHeader('mkl_solver.h'): env['usemkl'] = 0  if env['usemkl'] and not conf.CheckCHeader('mkl_solver.h'): env['usemkl'] = 0
421  if env['usemkl'] and not conf.CheckFunc('pardiso_'): env['usemkl'] = 0  if env['usemkl'] and not conf.CheckFunc('pardiso_'): env['usemkl'] = 0
# Line 404  if env['useumfpack']: Line 443  if env['useumfpack']:
443    conf.env.AppendUnique(CPPPATH = [env['blas_path']])    conf.env.AppendUnique(CPPPATH = [env['blas_path']])
444    conf.env.AppendUnique(LIBPATH = [env['blas_lib_path']])    conf.env.AppendUnique(LIBPATH = [env['blas_lib_path']])
445    conf.env.AppendUnique(LIBS    = [env['blas_libs']])    conf.env.AppendUnique(LIBS    = [env['blas_libs']])
446      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['umf_lib_path'])   # The wrapper script needs to find these libs
447      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['amd_lib_path'])   # The wrapper script needs to find these libs
448      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['blas_lib_path'])  # The wrapper script needs to find these libs
449    
450  if env['useumfpack'] and not conf.CheckCHeader('umfpack.h'): env['useumfpack'] = 0  if env['useumfpack'] and not conf.CheckCHeader('umfpack.h'): env['useumfpack'] = 0
451  if env['useumfpack'] and not conf.CheckFunc('umfpack_di_symbolic'): env['useumfpack'] = 0  if env['useumfpack'] and not conf.CheckFunc('umfpack_di_symbolic'): env['useumfpack'] = 0
# Line 441  if env_mpi['usempi']: Line 483  if env_mpi['usempi']:
483    conf.env.AppendUnique(CPPPATH = [env_mpi['mpi_path']])    conf.env.AppendUnique(CPPPATH = [env_mpi['mpi_path']])
484    conf.env.AppendUnique(LIBPATH = [env_mpi['mpi_lib_path']])    conf.env.AppendUnique(LIBPATH = [env_mpi['mpi_lib_path']])
485    conf.env.AppendUnique(LIBS    = [env_mpi['mpi_libs']])    conf.env.AppendUnique(LIBS    = [env_mpi['mpi_libs']])
486      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['mpi_lib_path'])   # The wrapper script needs to find these libs
487    
488  if env_mpi['usempi'] and not conf.CheckCHeader('mpi.h'): env_mpi['usempi'] = 0  if env_mpi['usempi'] and not conf.CheckCHeader('mpi.h'): env_mpi['usempi'] = 0
489  if env_mpi['usempi'] and not conf.CheckFunc('MPI_Init'): env_mpi['usempi'] = 0  if env_mpi['usempi'] and not conf.CheckFunc('MPI_Init'): env_mpi['usempi'] = 0
# Line 465  if env_mpi['useparmetis']: Line 508  if env_mpi['useparmetis']:
508    conf.env.AppendUnique(CPPPATH = [env_mpi['parmetis_path']])    conf.env.AppendUnique(CPPPATH = [env_mpi['parmetis_path']])
509    conf.env.AppendUnique(LIBPATH = [env_mpi['parmetis_lib_path']])    conf.env.AppendUnique(LIBPATH = [env_mpi['parmetis_lib_path']])
510    conf.env.AppendUnique(LIBS    = [env_mpi['parmetis_libs']])    conf.env.AppendUnique(LIBS    = [env_mpi['parmetis_libs']])
511      conf.env.PrependENVPath('LD_LIBRARY_PATH', env['parmetis_lib_path'])  # The wrapper script needs to find these libs
512    
513  if env_mpi['useparmetis'] and not conf.CheckCHeader('parmetis.h'): env_mpi['useparmetis'] = 0  if env_mpi['useparmetis'] and not conf.CheckCHeader('parmetis.h'): env_mpi['useparmetis'] = 0
514  if env_mpi['useparmetis'] and not conf.CheckFunc('ParMETIS_V3_PartGeomKway'): env_mpi['useparmetis'] = 0  if env_mpi['useparmetis'] and not conf.CheckFunc('ParMETIS_V3_PartGeomKway'): env_mpi['useparmetis'] = 0
# Line 478  else: Line 522  else:
522    
523  env['useparmetis'] = env_mpi['useparmetis']  env['useparmetis'] = env_mpi['useparmetis']
524    
525    ############ Now we switch on Warnings as errors ###############
526    
527    #this needs to be done after configuration because the scons test files have warnings in them
528    
529    if ((fatalwarning != "") and (env['usewarnings'])):
530      env.Append(CCFLAGS        = fatalwarning)
531      env_mpi.Append(CCFLAGS        = fatalwarning)
532    
533  ############ Summarize our environment #########################  ############ Summarize our environment #########################
534    
535  print ""  print ""
# Line 504  else: print "  Not using PAPI" Line 556  else: print "  Not using PAPI"
556  if env['usedebug']: print " Compiling for debug"  if env['usedebug']: print " Compiling for debug"
557  else: print "   Not compiling for debug"  else: print "   Not compiling for debug"
558  print " Installing in", prefix  print " Installing in", prefix
559    if ((fatalwarning != "") and (env['usewarnings'])): print " Treating warnings as errors"
560    else: print "   Not treating warnings as errors"
561  print ""  print ""
562    
563    ############ Delete option-dependent files #####################
564    
565    Execute(Delete(env['libinstall'] + "/Compiled.with.debug"))
566    Execute(Delete(env['libinstall'] + "/Compiled.with.mpi"))
567    Execute(Delete(env['libinstall'] + "/Compiled.with.openmp"))
568    if not env['usempi']: Execute(Delete(env['libinstall'] + "/pythonMPI"))
569    
570  ############ Add some custom builders ##########################  ############ Add some custom builders ##########################
571    
572  py_builder = Builder(action = scons_extensions.build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)  py_builder = Builder(action = scons_extensions.build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)
# Line 517  env.Append(BUILDERS = {'RunUnitTest' : r Line 578  env.Append(BUILDERS = {'RunUnitTest' : r
578  runPyUnitTest_builder = Builder(action = scons_extensions.runPyUnitTest, suffix = '.passed', src_suffic='.py', single_source=True)  runPyUnitTest_builder = Builder(action = scons_extensions.runPyUnitTest, suffix = '.passed', src_suffic='.py', single_source=True)
579  env.Append(BUILDERS = {'RunPyUnitTest' : runPyUnitTest_builder});  env.Append(BUILDERS = {'RunPyUnitTest' : runPyUnitTest_builder});
580    
581  ############ Build the desired subdirectories ##################  ############ Build the subdirectories ##########################
582    
583  Export(["env", "env_mpi", "clone_env"])  Export(
584      ["env",
585       "env_mpi",
586       "clone_env",
587       "IS_WINDOWS_PLATFORM"
588       ]
589      )
590    
591  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)
592  env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0)  env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0)
# Line 531  env.SConscript(dirs = ['doc'], build_dir Line 598  env.SConscript(dirs = ['doc'], build_dir
598  env.SConscript(dirs = ['pyvisi/py_src'], build_dir='build/$PLATFORM/pyvisi', duplicate=0)  env.SConscript(dirs = ['pyvisi/py_src'], build_dir='build/$PLATFORM/pyvisi', duplicate=0)
599  env.SConscript(dirs = ['pycad/py_src'], build_dir='build/$PLATFORM/pycad', duplicate=0)  env.SConscript(dirs = ['pycad/py_src'], build_dir='build/$PLATFORM/pycad', duplicate=0)
600  env.SConscript(dirs = ['pythonMPI/src'], build_dir='build/$PLATFORM/pythonMPI', duplicate=0)  env.SConscript(dirs = ['pythonMPI/src'], build_dir='build/$PLATFORM/pythonMPI', duplicate=0)
601    env.SConscript(dirs = ['scripts'], build_dir='build/$PLATFORM/scripts', duplicate=0)
602    
603  ############ Remember what optimizations we used ###############  ############ Remember what optimizations we used ###############
604    
# Line 571  build_all_list += ['build_esysUtils'] Line 639  build_all_list += ['build_esysUtils']
639  build_all_list += ['build_paso']  build_all_list += ['build_paso']
640  build_all_list += ['build_escript']  build_all_list += ['build_escript']
641  build_all_list += ['build_finley']  build_all_list += ['build_finley']
642  if env['usempi']: build_all_list += ['target_pythonMPI_exe']  if env['usempi']:       build_all_list += ['target_pythonMPI_exe']
643    if not IS_WINDOWS_PLATFORM: build_all_list += ['target_finley_wrapper']
644  env.Alias('build_all', build_all_list)  env.Alias('build_all', build_all_list)
645    
646  install_all_list = []  install_all_list = []
# Line 583  install_all_list += ['install_finley'] Line 652  install_all_list += ['install_finley']
652  install_all_list += ['target_install_pyvisi_py']  install_all_list += ['target_install_pyvisi_py']
653  install_all_list += ['target_install_modellib_py']  install_all_list += ['target_install_modellib_py']
654  install_all_list += ['target_install_pycad_py']  install_all_list += ['target_install_pycad_py']
655  if env['usempi']: install_all_list += ['target_install_pythonMPI_exe']  if env['usempi']:       install_all_list += ['target_install_pythonMPI_exe']
656    if not IS_WINDOWS_PLATFORM: install_all_list += ['target_install_finley_wrapper']
657  install_all_list += ['remember_options']  install_all_list += ['remember_options']
658  env.Alias('install_all', install_all_list)  env.Alias('install_all', install_all_list)
659    

Legend:
Removed from v.1753  
changed lines
  Added in v.2060

  ViewVC Help
Powered by ViewVC 1.1.26