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

Diff of /branches/diaplayground/SConstruct

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

trunk/SConstruct revision 4295 by caltinay, Fri Mar 8 04:42:01 2013 UTC branches/diaplayground/SConstruct revision 5053 by caltinay, Fri Jun 20 00:36:10 2014 UTC
# Line 1  Line 1 
1  ##############################################################################  ##############################################################################
2  #  #
3  # Copyright (c) 2003-2013 by University of Queensland  # Copyright (c) 2003-2014 by University of Queensland
4  # http://www.uq.edu.au  # http://www.uq.edu.au
5  #  #
6  # Primary Business: Queensland, Australia  # Primary Business: Queensland, Australia
# Line 8  Line 8 
8  # http://www.opensource.org/licenses/osl-3.0.php  # http://www.opensource.org/licenses/osl-3.0.php
9  #  #
10  # Development until 2012 by Earth Systems Science Computational Center (ESSCC)  # Development until 2012 by Earth Systems Science Computational Center (ESSCC)
11  # Development since 2012 by School of Earth Sciences  # Development 2012-2013 by School of Earth Sciences
12    # Development from 2014 by Centre for Geoscience Computing (GeoComp)
13  #  #
14  ##############################################################################  ##############################################################################
15    
# Line 27  REQUIRED_OPTS_VERSION=201 Line 28  REQUIRED_OPTS_VERSION=201
28  # MS Windows support, many thanks to PH  # MS Windows support, many thanks to PH
29  IS_WINDOWS = (os.name == 'nt')  IS_WINDOWS = (os.name == 'nt')
30    
31    IS_OSX = (os.uname()[0] == 'Darwin')
32    
33  ########################## Determine options file ############################  ########################## Determine options file ############################
34  # 1. command line  # 1. command line
35  # 2. scons/<hostname>_options.py  # 2. scons/<hostname>_options.py
# Line 43  if not options_file: Line 46  if not options_file:
46  if not os.path.isfile(options_file):  if not os.path.isfile(options_file):
47      print("\nWARNING:\nOptions file %s" % options_file)      print("\nWARNING:\nOptions file %s" % options_file)
48      print("not found! Default options will be used which is most likely suboptimal.")      print("not found! Default options will be used which is most likely suboptimal.")
49      print("It is recommended that you copy one of the TEMPLATE files in the scons/")      print("We recommend that you copy the most relavent options file in the scons/os/")
50      print("subdirectory and customize it to your needs.\n")      print("subdirectory and customize it to your needs.\n")
51      options_file = None      options_file = None
52    
# Line 60  vars.AddVariables( Line 63  vars.AddVariables(
63    PathVariable('build_dir', 'Top-level build directory', Dir('#/build').abspath, PathVariable.PathIsDirCreate),    PathVariable('build_dir', 'Top-level build directory', Dir('#/build').abspath, PathVariable.PathIsDirCreate),
64    BoolVariable('verbose', 'Output full compile/link lines', False),    BoolVariable('verbose', 'Output full compile/link lines', False),
65  # Compiler/Linker options  # Compiler/Linker options
   ('cc', 'Path to C compiler', 'default'),  
66    ('cxx', 'Path to C++ compiler', 'default'),    ('cxx', 'Path to C++ compiler', 'default'),
67    ('cc_flags', 'Base C/C++ compiler flags', 'default'),    ('cc_flags', 'Base C++ compiler flags', 'default'),
68    ('cc_optim', 'Additional C/C++ flags for a non-debug build', 'default'),    ('cc_optim', 'Additional C++ flags for a non-debug build', 'default'),
69    ('cc_debug', 'Additional C/C++ flags for a debug build', 'default'),    ('cc_debug', 'Additional C++ flags for a debug build', 'default'),
   ('cc_extra', 'Extra C compiler flags', ''),  
70    ('cxx_extra', 'Extra C++ compiler flags', ''),    ('cxx_extra', 'Extra C++ compiler flags', ''),
71    ('ld_extra', 'Extra linker flags', ''),    ('ld_extra', 'Extra linker flags', ''),
72      ('nvcc', 'Path to CUDA compiler', 'default'),
73      ('nvccflags', 'Base CUDA compiler flags', 'default'),
74    BoolVariable('werror','Treat compiler warnings as errors', True),    BoolVariable('werror','Treat compiler warnings as errors', True),
75    BoolVariable('debug', 'Compile with debug flags', False),    BoolVariable('debug', 'Compile with debug flags', False),
76    BoolVariable('openmp', 'Compile parallel version using OpenMP', False),    BoolVariable('openmp', 'Compile parallel version using OpenMP', False),
# Line 112  vars.AddVariables( Line 115  vars.AddVariables(
115    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),
116    ('visit_libs', 'VisIt libraries to link with', ['simV2']),    ('visit_libs', 'VisIt libraries to link with', ['simV2']),
117    BoolVariable('vsl_random', 'Use VSL from intel for random data', False),    BoolVariable('vsl_random', 'Use VSL from intel for random data', False),
118      BoolVariable('cuda', 'Enable GPU code with CUDA (requires thrust)', False),
119      ('thrust_prefix', 'Prefix/Paths to NVidia thrust installation', default_prefix),
120  # Advanced settings  # Advanced settings
121    #dudley_assemble_flags = -funroll-loops      to actually do something    #dudley_assemble_flags = -funroll-loops      to actually do something
122    ('dudley_assemble_flags', 'compiler flags for some dudley optimisations', ''),    ('dudley_assemble_flags', 'compiler flags for some dudley optimisations', ''),
# Line 134  vars.AddVariables( Line 139  vars.AddVariables(
139    ('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)',''),
140    ('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',''),
141    BoolVariable('BADPYTHONMACROS','Extra \#include to get around a python bug.', True),    BoolVariable('BADPYTHONMACROS','Extra \#include to get around a python bug.', True),
142      BoolVariable('compressed_files','Enables reading from compressed binary files', True),
143      ('compression_libs', 'Compression libraries to link with', ['boost_iostreams'])
144  )  )
145    
146  ##################### Create environment and help text #######################  ##################### Create environment and help text #######################
# Line 148  env = Environment(tools = ['default'], o Line 155  env = Environment(tools = ['default'], o
155    
156  # set the vars for clang  # set the vars for clang
157  def mkclang(env):  def mkclang(env):
     env['CC']='clang'  
158      env['CXX']='clang++'      env['CXX']='clang++'
159    
160  if env['tools_names'] != 'default':  if env['tools_names'] != 'default':
# Line 181  if len(vars.UnknownVariables())>0: Line 187  if len(vars.UnknownVariables())>0:
187          print("Unknown option '%s'" % k)          print("Unknown option '%s'" % k)
188      Exit(1)      Exit(1)
189    
190    env.Tool('nvcc')
191    
192  # create dictionary which will be populated with info for buildvars file  # create dictionary which will be populated with info for buildvars file
193  env['buildvars']={}  env['buildvars']={}
194  # create list which will be populated with warnings if there are any  # create list which will be populated with warnings if there are any
# Line 207  env.Append(LIBPATH = [env['libinstall']] Line 215  env.Append(LIBPATH = [env['libinstall']]
215    
216  ################# Fill in compiler options if not set above ##################  ################# Fill in compiler options if not set above ##################
217    
 if env['cc'] != 'default': env['CC']=env['cc']  
218  if env['cxx'] != 'default': env['CXX']=env['cxx']  if env['cxx'] != 'default': env['CXX']=env['cxx']
219    
220    if env['nvcc'] != 'default':
221        env['NVCC'] = env['nvcc']
222    else:
223        env['NVCC'] = 'nvcc'
224    
225  # version >=9 of intel C++ compiler requires use of icpc to link in C++  # version >=9 of intel C++ compiler requires use of icpc to link in C++
226  # runtimes (icc does not)  # runtimes (icc does not)
227  if not IS_WINDOWS and os.uname()[4]=='ia64' and env['CXX']=='icpc':  if not IS_WINDOWS and os.uname()[4]=='ia64' and env['CXX']=='icpc':
# Line 225  fatalwarning = '' # switch to turn warni Line 237  fatalwarning = '' # switch to turn warni
237  sysheaderopt = '' # how to indicate that a header is a system header  sysheaderopt = '' # how to indicate that a header is a system header
238    
239  # env['CC'] might be a full path  # env['CC'] might be a full path
240  cc_name=os.path.basename(env['CC'])  cc_name=os.path.basename(env['CXX'])
241    
242  if cc_name == 'icc':  if cc_name == 'icpc':
243      # Intel compiler      # Intel compiler
244      # #1875: offsetof applied to non-POD types is nonstandard (in boost)      # #1875: offsetof applied to non-POD types is nonstandard (in boost)
245      cc_flags    = "-std=c99 -fPIC -w2 -wd1875 -Wno-unknown-pragmas -DBLOCKTIMER -DCORE_ID1"      # removed -std=c99 because icpc doesn't like it and we aren't using c anymore
246      cc_optim    = "-O3 -ftz -fno-alias -ipo -xHost"      cc_flags    = "-fPIC -w2 -wd1875 -Wno-unknown-pragmas"
247        cc_optim    = "-O3 -ftz -fno-alias -inline-level=2 -ipo -xHost"
248      cc_debug    = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK"      cc_debug    = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK"
249      omp_flags   = "-openmp"      omp_flags   = "-openmp"
250      omp_ldflags = "-openmp -openmp_report=1"      omp_ldflags = "-openmp -openmp_report=1"
251      fatalwarning = "-Werror"      fatalwarning = "-Werror"
252  elif cc_name[:3] == 'gcc':  elif cc_name[:3] == 'g++':
253      # GNU C on any system      # GNU C on any system
254      # note that -ffast-math is not used because it breaks isnan(),      # note that -ffast-math is not used because it breaks isnan(),
255      # see mantis #691      # see mantis #691
256      cc_flags     = "-pedantic -Wall -fPIC -Wno-unknown-pragmas -DBLOCKTIMER  -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"
257      cc_optim     = "-O3"      cc_optim     = "-O3"
258      cc_debug     = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK"      cc_debug     = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK --param=max-vartrack-size=90000000" #avoids vartrack limit being exceeded with escriptcpp.cpp
259      omp_flags    = "-fopenmp"      omp_flags    = "-fopenmp"
260      omp_ldflags  = "-fopenmp"      omp_ldflags  = "-fopenmp"
261      fatalwarning = "-Werror"      fatalwarning = "-Werror"
# Line 269  if env['cc_optim']    == 'default': env[ Line 282  if env['cc_optim']    == 'default': env[
282  if env['cc_debug']    == 'default': env['cc_debug'] = cc_debug  if env['cc_debug']    == 'default': env['cc_debug'] = cc_debug
283  if env['omp_flags']   == 'default': env['omp_flags'] = omp_flags  if env['omp_flags']   == 'default': env['omp_flags'] = omp_flags
284  if env['omp_ldflags'] == 'default': env['omp_ldflags'] = omp_ldflags  if env['omp_ldflags'] == 'default': env['omp_ldflags'] = omp_ldflags
 if env['cc_extra']  != '': env.Append(CFLAGS = env['cc_extra'])  
285  if env['cxx_extra'] != '': env.Append(CXXFLAGS = env['cxx_extra'])  if env['cxx_extra'] != '': env.Append(CXXFLAGS = env['cxx_extra'])
286  if env['ld_extra']  != '': env.Append(LINKFLAGS = env['ld_extra'])  if env['ld_extra']  != '': env.Append(LINKFLAGS = env['ld_extra'])
287    
288    if env['nvccflags'] != 'default':
289        env['NVCCFLAGS'] = env['nvccflags']
290        env['SHNVCCFLAGS'] = env['nvccflags']
291    
292  if env['BADPYTHONMACROS']: env.Append(CXXFLAGS = ' -DBADPYTHONMACROS')  if env['BADPYTHONMACROS']: env.Append(CXXFLAGS = ' -DBADPYTHONMACROS')
293    
294  if env['usepython3']:  if env['usepython3']:
# Line 372  for key in 'OMP_NUM_THREADS', 'ESCRIPT_N Line 388  for key in 'OMP_NUM_THREADS', 'ESCRIPT_N
388          env['ENV'][key] = 1          env['ENV'][key] = 1
389    
390  env_export=env['env_export']  env_export=env['env_export']
391  env_export.extend(['ESCRIPT_NUM_THREADS','ESCRIPT_HOSTFILE','DISPLAY','XAUTHORITY','PATH','HOME','KMP_MONITOR_STACKSIZE','TMPDIR','TEMP','TMP'])  env_export.extend(['ESCRIPT_NUM_THREADS','ESCRIPT_HOSTFILE','DISPLAY','XAUTHORITY','PATH','HOME','KMP_MONITOR_STACKSIZE','TMPDIR','TEMP','TMP','LD_PRELOAD'])
392    
393  for key in set(env_export):  for key in set(env_export):
394      try:      try:
# Line 385  try: Line 401  try:
401  except KeyError:  except KeyError:
402      pass      pass
403    
404    if IS_OSX:
405      try:
406        env.PrependENVPath('DYLD_LIBRARY_PATH', os.environ['DYLD_LIBRARY_PATH'])
407      except KeyError:
408        pass
409    
410    
411  # these shouldn't be needed  # these shouldn't be needed
412  #for key in 'C_INCLUDE_PATH','CPLUS_INCLUDE_PATH','LIBRARY_PATH':  #for key in 'C_INCLUDE_PATH','CPLUS_INCLUDE_PATH','LIBRARY_PATH':
413  #    try:  #    try:
# Line 446  env.PrependENVPath('PYTHONPATH', prefix) Line 469  env.PrependENVPath('PYTHONPATH', prefix)
469  env['ENV']['ESCRIPT_ROOT'] = prefix  env['ENV']['ESCRIPT_ROOT'] = prefix
470    
471  if not env['verbose']:  if not env['verbose']:
     env['CCCOMSTR'] = "Compiling $TARGET"  
472      env['CXXCOMSTR'] = "Compiling $TARGET"      env['CXXCOMSTR'] = "Compiling $TARGET"
     env['SHCCCOMSTR'] = "Compiling $TARGET"  
473      env['SHCXXCOMSTR'] = "Compiling $TARGET"      env['SHCXXCOMSTR'] = "Compiling $TARGET"
474      env['ARCOMSTR'] = "Linking $TARGET"      env['ARCOMSTR'] = "Linking $TARGET"
475      env['LINKCOMSTR'] = "Linking $TARGET"      env['LINKCOMSTR'] = "Linking $TARGET"
# Line 488  Export( Line 509  Export(
509  env.SConscript(dirs = ['tools/escriptconvert'], variant_dir='$BUILD_DIR/$PLATFORM/tools/escriptconvert', duplicate=0)  env.SConscript(dirs = ['tools/escriptconvert'], variant_dir='$BUILD_DIR/$PLATFORM/tools/escriptconvert', duplicate=0)
510  env.SConscript(dirs = ['paso/src'], variant_dir='$BUILD_DIR/$PLATFORM/paso', duplicate=0)  env.SConscript(dirs = ['paso/src'], variant_dir='$BUILD_DIR/$PLATFORM/paso', duplicate=0)
511  env.SConscript(dirs = ['weipa/src'], variant_dir='$BUILD_DIR/$PLATFORM/weipa', duplicate=0)  env.SConscript(dirs = ['weipa/src'], variant_dir='$BUILD_DIR/$PLATFORM/weipa', duplicate=0)
512  env.SConscript(dirs = ['escript/src'], variant_dir='$BUILD_DIR/$PLATFORM/escript', duplicate=0)  env.SConscript(dirs = ['escript/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/escript', duplicate=0)
513    
514    #This will pull in the escriptcore/py_src and escriptcore/test
515    env.SConscript(dirs = ['escriptcore/src'], variant_dir='$BUILD_DIR/$PLATFORM/escriptcore', duplicate=0)
516    #env.SConscript(dirs = ['escript/test'], variant_dir='$BUILD_DIR/$PLATFORM/escript/test', duplicate=0)
517  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)
518  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)
519  env.SConscript(dirs = ['dudley/src'], variant_dir='$BUILD_DIR/$PLATFORM/dudley', duplicate=0)  env.SConscript(dirs = ['dudley/src'], variant_dir='$BUILD_DIR/$PLATFORM/dudley', duplicate=0)
# Line 513  env.Alias('target_init', [target_init]) Line 538  env.Alias('target_init', [target_init])
538  # delete buildvars upon cleanup  # delete buildvars upon cleanup
539  env.Clean('target_init', os.path.join(env['libinstall'], 'buildvars'))  env.Clean('target_init', os.path.join(env['libinstall'], 'buildvars'))
540    
541    cusphdr_inst = env.Install(env['incinstall'], Dir('#cusplibrary/cusp'))
542    env.Alias('install_cusp_headers', cusphdr_inst)
543  # The headers have to be installed prior to build in order to satisfy  # The headers have to be installed prior to build in order to satisfy
544  # #include <paso/Common.h>  # #include <paso/Common.h>
545  env.Alias('build_esysUtils', ['install_esysUtils_headers', 'build_esysUtils_lib'])  env.Alias('build_esysUtils', ['install_esysUtils_headers', 'build_esysUtils_lib'])
# Line 522  env.Alias('build_paso', ['install_paso_h Line 549  env.Alias('build_paso', ['install_paso_h
549  env.Alias('install_paso', ['build_paso', 'install_paso_lib'])  env.Alias('install_paso', ['build_paso', 'install_paso_lib'])
550    
551  env.Alias('build_escript', ['install_escript_headers', 'build_escript_lib', 'build_escriptcpp_lib'])  env.Alias('build_escript', ['install_escript_headers', 'build_escript_lib', 'build_escriptcpp_lib'])
552  env.Alias('install_escript', ['build_escript', 'install_escript_lib', 'install_escriptcpp_lib', 'install_escript_py'])  env.Alias('install_escript', ['build_escript', 'install_escript_lib', 'install_escriptcpp_lib', 'install_escriptcore_py', 'install_escript_py'])
553    
554  env.Alias('build_pasowrap', ['install_pasowrap_headers', 'build_pasowrap_lib', 'build_pasowrapcpp_lib'])  env.Alias('build_pasowrap', ['install_pasowrap_headers', 'build_pasowrap_lib', 'build_pasowrapcpp_lib'])
555  env.Alias('install_pasowrap', ['build_pasowrap', 'install_pasowrap_lib', 'install_pasowrapcpp_lib', 'install_pasowrap_py'])  env.Alias('install_pasowrap', ['build_pasowrap', 'install_pasowrap_lib', 'install_pasowrapcpp_lib', 'install_pasowrap_py'])
# Line 533  env.Alias('install_dudley', ['build_dudl Line 560  env.Alias('install_dudley', ['build_dudl
560  env.Alias('build_finley', ['install_finley_headers', 'build_finley_lib', 'build_finleycpp_lib'])  env.Alias('build_finley', ['install_finley_headers', 'build_finley_lib', 'build_finleycpp_lib'])
561  env.Alias('install_finley', ['build_finley', 'install_finley_lib', 'install_finleycpp_lib', 'install_finley_py'])  env.Alias('install_finley', ['build_finley', 'install_finley_lib', 'install_finleycpp_lib', 'install_finley_py'])
562    
563  env.Alias('build_ripley', ['install_ripley_headers', 'build_ripley_lib', 'build_ripleycpp_lib'])  env.Alias('build_ripley', ['install_cusp_headers', 'install_ripley_headers', 'build_ripley_lib', 'build_ripleycpp_lib'])
564  env.Alias('install_ripley', ['build_ripley', 'install_ripley_lib', 'install_ripleycpp_lib', 'install_ripley_py'])  env.Alias('install_ripley', ['build_ripley', 'install_ripley_lib', 'install_ripleycpp_lib', 'install_ripley_py'])
565    
566  env.Alias('build_weipa', ['install_weipa_headers', 'build_weipa_lib', 'build_weipacpp_lib'])  env.Alias('build_weipa', ['install_weipa_headers', 'build_weipa_lib', 'build_weipacpp_lib'])
# Line 581  env.Default('install_all') Line 608  env.Default('install_all')
608  ################## Targets to build and run the test suite ###################  ################## Targets to build and run the test suite ###################
609    
610  if not env['cppunit']:  if not env['cppunit']:
611      test_msg = env.Command('.dummy.', None, '@echo "Cannot run C/C++ unit tests, CppUnit not found!";exit 1')      test_msg = env.Command('.dummy.', None, '@echo "Cannot run C++ unit tests, CppUnit not found!";exit 1')
612      env.Alias('run_tests', test_msg)      env.Alias('run_tests', test_msg)
613      env.Alias('build_tests', '')      env.Alias('build_tests', '')
614  env.Alias('run_tests', ['install_all'])  env.Alias('run_tests', ['install_all'])
# Line 609  if not IS_WINDOWS: Line 636  if not IS_WINDOWS:
636  ######################## Summarize our environment ###########################  ######################## Summarize our environment ###########################
637  def print_summary():  def print_summary():
638      print("")      print("")
639      print("*** Config Summary (see config.log and lib/buildvars for details) ***")      print("*** Config Summary (see config.log and <prefix>/lib/buildvars for details) ***")
640      print("Escript/Finley revision %s"%global_revision)      print("Escript/Finley revision %s"%global_revision)
641      print("  Install prefix:  %s"%env['prefix'])      print("  Install prefix:  %s"%env['prefix'])
642      print("          Python:  %s"%sysconfig.PREFIX)      print("          Python:  %s"%sysconfig.PREFIX)
643      print("           boost:  %s"%env['boost_prefix'])      print("           boost:  %s"%env['boost_prefix'])
644      print("           numpy:  YES")      if env['numpy_h']:
645            print("           numpy:  YES (with headers)")
646        else:
647            print("           numpy:  YES (without headers)")
648      if env['usempi']:      if env['usempi']:
649          print("             MPI:  YES (flavour: %s)"%env['mpi'])          print("             MPI:  YES (flavour: %s)"%env['mpi'])
650      else:      else:
# Line 625  def print_summary(): Line 655  def print_summary():
655          print("          LAPACK:  DISABLED")          print("          LAPACK:  DISABLED")
656      d_list=[]      d_list=[]
657      e_list=[]      e_list=[]
658      for i in 'debug','openmp','boomeramg','mkl','netcdf','papi','parmetis','pyproj','silo','sympy','umfpack','visit','vsl_random':      for i in 'debug','openmp','boomeramg','gdal','mkl','netcdf','papi','parmetis','pyproj','scipy','silo','sympy','umfpack','visit','vsl_random':
659          if env[i]: e_list.append(i)          if env[i]: e_list.append(i)
660          else: d_list.append(i)          else: d_list.append(i)
661      for i in e_list:      for i in e_list:
# Line 642  def print_summary(): Line 672  def print_summary():
672          print("            gmsh:  FOUND")          print("            gmsh:  FOUND")
673      else:      else:
674          print("            gmsh:  NOT FOUND")          print("            gmsh:  NOT FOUND")
675      if env['numpy_h']:      print(    "            gzip:  " + ("YES" if env['compressed_files'] else "NO"))
676          print("   numpy headers:  FOUND")  
     else:  
         print("   numpy headers:  NOT FOUND")  
     print("   vsl_random:  %s"%env['vsl_random'])  
           
677      if ((fatalwarning != '') and (env['werror'])):      if ((fatalwarning != '') and (env['werror'])):
678          print("  Treating warnings as errors")          print("  Treating warnings as errors")
679      else:      else:
# Line 655  def print_summary(): Line 681  def print_summary():
681      print("")      print("")
682      for w in env['warnings']:      for w in env['warnings']:
683          print("WARNING: %s"%w)          print("WARNING: %s"%w)
684        if len(GetBuildFailures()):
685            print("\nERROR: build stopped due to errors\n")
686        else:
687            print("\nSUCCESS: build complete\n")
688    
689  atexit.register(print_summary)  atexit.register(print_summary)
690    

Legend:
Removed from v.4295  
changed lines
  Added in v.5053

  ViewVC Help
Powered by ViewVC 1.1.26