/[escript]/trunk/SConstruct
ViewVC logotype

Diff of /trunk/SConstruct

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

revision 3784 by caltinay, Wed Jan 25 01:31:42 2012 UTC revision 3961 by jfenwick, Tue Sep 11 07:21:41 2012 UTC
# Line 1  Line 1 
1  ########################################################  ########################################################
2  #  #
3  # Copyright (c) 2003-2010 by University of Queensland  # Copyright (c) 2003-2012 by University of Queensland
4  # Earth Systems Science Computational Center (ESSCC)  # Earth Systems Science Computational Center (ESSCC)
5  # http://www.uq.edu.au/esscc  # http://www.uq.edu.au/esscc
6  #  #
# Line 16  EnsurePythonVersion(2,5) Line 16  EnsurePythonVersion(2,5)
16  import sys, os, platform, re  import sys, os, platform, re
17  from distutils import sysconfig  from distutils import sysconfig
18  from site_init import *  from site_init import *
19    import subprocess
20    from subprocess import PIPE, Popen
21    
22  # Version number to check for in options file. Increment when new features are  # Version number to check for in options file. Increment when new features are
23  # added or existing options changed.  # added or existing options changed.
# Line 108  vars.AddVariables( Line 110  vars.AddVariables(
110    BoolVariable('visit', 'Enable the VisIt simulation interface', False),    BoolVariable('visit', 'Enable the VisIt simulation interface', False),
111    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),
112    ('visit_libs', 'VisIt libraries to link with', ['simV2']),    ('visit_libs', 'VisIt libraries to link with', ['simV2']),
   BoolVariable('pyvisi', 'Enable pyvisi (deprecated, requires VTK module)', False),  
113    BoolVariable('vsl_random', 'Use VSL from intel for random data', False),    BoolVariable('vsl_random', 'Use VSL from intel for random data', False),
114  # Advanced settings  # Advanced settings
115    #dudley_assemble_flags = -funroll-loops      to actually do something    #dudley_assemble_flags = -funroll-loops      to actually do something
# Line 126  vars.AddVariables( Line 127  vars.AddVariables(
127    ('sys_libs', 'Extra libraries to link with', []),    ('sys_libs', 'Extra libraries to link with', []),
128    ('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)'),
129    ('SVN_VERSION', 'Do not use from options file', -2),    ('SVN_VERSION', 'Do not use from options file', -2),
130      ('pythoncmd', 'which python to compile with','python'),
131      ('usepython3', 'Is this a python3 build? (experimental)', False),
132      ('pythonlibname', 'Name of the python library to link. (This is found automatically for python2.X.)', ''),
133      ('pythonlibpath', 'Path to the python library. (You should not need to set this unless your python has moved)',''),
134      ('pythonincpath','Path to python include files. (You should not need to set this unless your python has moved',''),
135      BoolVariable('BADPYTHONMACROS','Extra \#include to get around a python bug.', True),
136  )  )
137    
138  ##################### Create environment and help text #######################  ##################### Create environment and help text #######################
# Line 209  if cc_name == 'icc': Line 216  if cc_name == 'icc':
216      cc_optim    = "-O3 -ftz -IPF_ftlacc- -IPF_fma -fno-alias -ip"      cc_optim    = "-O3 -ftz -IPF_ftlacc- -IPF_fma -fno-alias -ip"
217      cc_debug    = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK"      cc_debug    = "-g -O0 -DDOASSERT -DDOPROF -DBOUNDS_CHECK"
218      omp_flags   = "-openmp -openmp_report0"      omp_flags   = "-openmp -openmp_report0"
219      omp_ldflags = "-openmp -openmp_report0 -lguide -lpthread"      omp_ldflags = "-openmp -openmp_report0 -lpthread"
220      fatalwarning = "-Werror"      fatalwarning = "-Werror"
221  elif cc_name[:3] == 'gcc':  elif cc_name[:3] == 'gcc':
222      # GNU C on any system      # GNU C on any system
# Line 244  if env['cc_extra']  != '': env.Append(CF Line 251  if env['cc_extra']  != '': env.Append(CF
251  if env['cxx_extra'] != '': env.Append(CXXFLAGS = env['cxx_extra'])  if env['cxx_extra'] != '': env.Append(CXXFLAGS = env['cxx_extra'])
252  if env['ld_extra']  != '': env.Append(LINKFLAGS = env['ld_extra'])  if env['ld_extra']  != '': env.Append(LINKFLAGS = env['ld_extra'])
253    
254    if env['BADPYTHONMACROS']: env.Append(CXXFLAGS = ' -DBADPYTHONMACROS')
255    
256    if env['usepython3']:
257        env.Append(CPPDEFINES=['ESPYTHON3'])
258    
259  # set up the autolazy values  # set up the autolazy values
260  if env['forcelazy'] == 'on':  if env['forcelazy'] == 'on':
261      env.Append(CPPDEFINES=['FAUTOLAZYON'])      env.Append(CPPDEFINES=['FAUTOLAZYON'])
# Line 352  except KeyError: Line 364  except KeyError:
364    
365  ######################## Add some custom builders ############################  ######################## Add some custom builders ############################
366    
367  py_builder = Builder(action = build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)  if env['pythoncmd']=='python':
368        py_builder = Builder(action = build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)
369    else:
370        py_builder = Builder(action = env['pythoncmd']+" scripts/py_comp.py $SOURCE $TARGET", suffix = '.pyc', src_suffix = '.py', single_source=True)
371  env.Append(BUILDERS = {'PyCompile' : py_builder});  env.Append(BUILDERS = {'PyCompile' : py_builder});
372    
373  runUnitTest_builder = Builder(action = runUnitTest, suffix = '.passed', src_suffix=env['PROGSUFFIX'], single_source=True)  runUnitTest_builder = Builder(action = runUnitTest, suffix = '.passed', src_suffix=env['PROGSUFFIX'], single_source=True)
# Line 391  if conf.CheckFunc('gethostname'): Line 406  if conf.CheckFunc('gethostname'):
406    
407  ######## Python headers & library (required)  ######## Python headers & library (required)
408    
409  python_inc_path=sysconfig.get_python_inc()  #First we check to see if the config file has specified
410  if IS_WINDOWS:  ##Where to find the filae. Ideally, this should be automatic
411      python_lib_path=os.path.join(sysconfig.get_config_var('prefix'), 'libs')  #But we need to deal with the case where python is not in its INSTALL
412  elif env['PLATFORM']=='darwin':  #Directory
413      python_lib_path=sysconfig.get_config_var('LIBPL')  # Use the python scons is running
414  else:  if env['pythoncmd']=='python':
415      python_lib_path=sysconfig.get_config_var('LIBDIR')      python_inc_path=sysconfig.get_python_inc()
416  #python_libs=[sysconfig.get_config_var('LDLIBRARY')] # only on linux      if IS_WINDOWS:
417  if IS_WINDOWS:          python_lib_path=os.path.join(sysconfig.get_config_var('prefix'), 'libs')
418      python_libs=['python%s%s'%(sys.version_info[0], sys.version_info[1])]      elif env['PLATFORM']=='darwin':
419            python_lib_path=sysconfig.get_config_var('LIBPL')
420        else:
421            python_lib_path=sysconfig.get_config_var('LIBDIR')
422    
423        #python_libs=[sysconfig.get_config_var('LDLIBRARY')] # only on linux
424        if IS_WINDOWS:
425            python_libs=['python%s%s'%(sys.version_info[0], sys.version_info[1])]
426        else:
427            python_libs=['python'+sysconfig.get_python_version()]
428    
429    #if we want to use a python other than the one scons is running
430  else:  else:
431      python_libs=['python'+sysconfig.get_python_version()]      initstring='from __future__ import print_function;from distutils import sysconfig;'
432        if env['pythonlibname']!='':
433            python_libs=env['pythonlibname']
434        else:   # work it out by calling python    
435            if IS_WINDOWS:
436                cmd='print("python%s%s"%(sys.version_info[0], sys.version_info[1]))'
437            else:
438                cmd='print("python"+sysconfig.get_python_version())'
439            p=Popen([env['pythoncmd'], '-c', initstring+cmd], stdout=PIPE)
440            python_libs=p.stdout.readline()
441            if env['usepython3']:       # This is to convert unicode str into py2 string
442                python_libs=python_libs.encode() # If scons runs on py3 then this must be rethought
443            p.wait()
444            python_libs=python_libs.strip()
445    
446      
447        # Now we know whether we are using python3 or not
448        p=Popen([env['pythoncmd'], '-c',  initstring+'print(sysconfig.get_python_inc())'], stdout=PIPE)
449        python_inc_path=p.stdout.readline()
450        if env['usepython3']:
451             python_inc_path=python_inc_path.encode()
452        p.wait()  
453        python_inc_path=python_inc_path.strip()
454        if IS_WINDOWS:
455            cmd="os.path.join(sysconfig.get_config_var('prefix'), 'libs')"
456        elif env['PLATFORM']=='darwin':
457            cmd="sysconfig.get_config_var(\"LIBPL\")"
458        else:
459            cmd="sysconfig.get_config_var(\"LIBDIR\")"
460    
461        p=Popen([env['pythoncmd'], '-c', initstring+'print('+cmd+')'], stdout=PIPE)
462        python_lib_path=p.stdout.readline()
463        if env['usepython3']:
464            python_lib_path=python_lib_path.decode()
465        p.wait()
466        python_lib_path=python_lib_path.strip()
467    
468    #Check for an override from the config file.
469    #Ideally, this should be automatic
470    #But we need to deal with the case where python is not in its INSTALL
471    #Directory
472    if env['pythonlibpath']!='':
473        python_lib_path=env['pythonlibpath']
474    
475    if env['pythonincpath']!='':
476        python_inc_path=env['pythonincpath']
477    
478    
479  if sysheaderopt == '':  if sysheaderopt == '':
480      conf.env.AppendUnique(CPPPATH = [python_inc_path])      conf.env.AppendUnique(CPPPATH = [python_inc_path])
# Line 421  if not conf.CheckFunc('Py_Exit'): Line 493  if not conf.CheckFunc('Py_Exit'):
493      print("Cannot find python library method Py_Main (tried %s in directory %s)" % (python_libs, python_lib_path))      print("Cannot find python library method Py_Main (tried %s in directory %s)" % (python_libs, python_lib_path))
494      Exit(1)      Exit(1)
495    
496  # reuse conf to check for numpy header (optional)  ## reuse conf to check for numpy header (optional)
497  if conf.CheckCXXHeader(['Python.h','numpy/ndarrayobject.h']):  if env['usepython3']:
498      conf.env.Append(CPPDEFINES = ['HAVE_NUMPY_H'])      # FIXME: This is until we can work out how to make the checks in python 3
     conf.env['numpy_h']=True  
 else:  
499      conf.env['numpy_h']=False      conf.env['numpy_h']=False
500    else:
501        if conf.CheckCXXHeader(['Python.h','numpy/ndarrayobject.h']):
502            conf.env.Append(CPPDEFINES = ['HAVE_NUMPY_H'])
503            conf.env['numpy_h']=True
504        else:
505            conf.env['numpy_h']=False
506    
507  # Commit changes to environment  # Commit changes to environment
508  env = conf.Finish()  env = conf.Finish()
# Line 450  env.PrependENVPath(LD_LIBRARY_PATH_KEY, Line 526  env.PrependENVPath(LD_LIBRARY_PATH_KEY,
526    
527  ######## numpy (required)  ######## numpy (required)
528    
529  try:  if env['pythoncmd']=='python':
530      from numpy import identity      try:
531  except ImportError:        from numpy import identity
532      print("Cannot import numpy, you need to set your PYTHONPATH and probably %s"%LD_LIBRARY_PATH_KEY)      except ImportError:
533      Exit(1)        print("Cannot import numpy, you need to set your PYTHONPATH and probably %s"%LD_LIBRARY_PATH_KEY)
534          Exit(1)
535    else:
536        p=subprocess.call([env['pythoncmd'],'-c','import numpy'])
537        if p!=0:
538          print("Cannot import numpy, you need to set your PYTHONPATH and probably %s"%LD_LIBRARY_PATH_KEY)
539          Exit(1)
540    
541  ######## CppUnit (required for tests)  ######## CppUnit (required for tests)
542    
# Line 467  try: Line 549  try:
549  except:  except:
550      env['cppunit']=False      env['cppunit']=False
551    
 ######## VTK (optional)  
   
 if env['pyvisi']:  
     try:  
         import vtk  
         env['pyvisi'] = True  
     except ImportError:  
         print("Cannot import vtk, disabling pyvisi.")  
         env['pyvisi'] = False  
   
552  ######## netCDF (optional)  ######## netCDF (optional)
553    
554  netcdf_inc_path=''  netcdf_inc_path=''
# Line 697  if env['numpy_h']: Line 769  if env['numpy_h']:
769      print("   numpy headers:  FOUND")      print("   numpy headers:  FOUND")
770  else:  else:
771      print("   numpy headers:  NOT FOUND")      print("   numpy headers:  NOT FOUND")
772    print("   vsl_random:  %s"%env['vsl_random'])
773            
774  if ((fatalwarning != '') and (env['werror'])):  if ((fatalwarning != '') and (env['werror'])):
775      print("  Treating warnings as errors")      print("  Treating warnings as errors")
# Line 734  env.SConscript(dirs = ['esysUtils/src'], Line 807  env.SConscript(dirs = ['esysUtils/src'],
807  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)
808  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)
809  env.SConscript(dirs = ['finley/src'], variant_dir='$BUILD_DIR/$PLATFORM/finley', duplicate=0)  env.SConscript(dirs = ['finley/src'], variant_dir='$BUILD_DIR/$PLATFORM/finley', duplicate=0)
810    env.SConscript(dirs = ['ripley/src'], variant_dir='$BUILD_DIR/$PLATFORM/ripley', duplicate=0)
811    env.SConscript(dirs = ['downunder/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/downunder', duplicate=0)
812  env.SConscript(dirs = ['modellib/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/modellib', duplicate=0)  env.SConscript(dirs = ['modellib/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/modellib', duplicate=0)
 env.SConscript(dirs = ['doc'], variant_dir='$BUILD_DIR/$PLATFORM/doc', duplicate=0)  
 env.SConscript(dirs = ['pyvisi/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/pyvisi', duplicate=0)  
813  env.SConscript(dirs = ['pycad/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/pycad', duplicate=0)  env.SConscript(dirs = ['pycad/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/pycad', duplicate=0)
814  env.SConscript(dirs = ['pythonMPI/src'], variant_dir='$BUILD_DIR/$PLATFORM/pythonMPI', duplicate=0)  env.SConscript(dirs = ['pythonMPI/src'], variant_dir='$BUILD_DIR/$PLATFORM/pythonMPI', duplicate=0)
815    env.SConscript(dirs = ['doc'], variant_dir='$BUILD_DIR/$PLATFORM/doc', duplicate=0)
816  env.SConscript(dirs = ['paso/profiling'], variant_dir='$BUILD_DIR/$PLATFORM/paso/profiling', duplicate=0)  env.SConscript(dirs = ['paso/profiling'], variant_dir='$BUILD_DIR/$PLATFORM/paso/profiling', duplicate=0)
817    
818    
819  ######################## Populate the buildvars file #########################  ######################## Populate the buildvars file #########################
820    
821  # remove obsolete file  # remove obsolete file
# Line 760  except StopIteration: Line 835  except StopIteration:
835      pass      pass
836  boosthpp.close()  boosthpp.close()
837    
838    
839  buildvars=open(os.path.join(env['libinstall'], 'buildvars'), 'w')  buildvars=open(os.path.join(env['libinstall'], 'buildvars'), 'w')
840  buildvars.write("svn_revision="+str(global_revision)+"\n")  buildvars.write("svn_revision="+str(global_revision)+"\n")
841  buildvars.write("prefix="+prefix+"\n")  buildvars.write("prefix="+prefix+"\n")
842  buildvars.write("cc="+env['CC']+"\n")  buildvars.write("cc="+env['CC']+"\n")
843  buildvars.write("cxx="+env['CXX']+"\n")  buildvars.write("cxx="+env['CXX']+"\n")
844  buildvars.write("python="+sys.executable+"\n")  if env['pythoncmd']=='python':
845  buildvars.write("python_version="+str(sys.version_info[0])+"."+str(sys.version_info[1])+"."+str(sys.version_info[2])+"\n")      buildvars.write("python="+sys.executable+"\n")
846        buildvars.write("python_version="+str(sys.version_info[0])+"."+str(sys.version_info[1])+"."+str(sys.version_info[2])+"\n")
847    else:
848        buildvars.write("python="+env['pythoncmd']+"\n")
849        p=Popen([env['pythoncmd'], '-c', 'from __future__ import print_function;import sys;print(str(sys.version_info[0])+"."+str(sys.version_info[1])+"."+str(sys.version_info[2]))'], stdout=PIPE)
850        verstring=p.stdout.readline().strip()
851        p.wait()
852        buildvars.write("python_version="+verstring+"\n")
853  buildvars.write("boost_inc_path="+boost_inc_path+"\n")  buildvars.write("boost_inc_path="+boost_inc_path+"\n")
854  buildvars.write("boost_lib_path="+boost_lib_path+"\n")  buildvars.write("boost_lib_path="+boost_lib_path+"\n")
855  buildvars.write("boost_version="+boostversion+"\n")  buildvars.write("boost_version="+boostversion+"\n")
# Line 776  buildvars.write("mpi=%s\n"%env['mpi']) Line 859  buildvars.write("mpi=%s\n"%env['mpi'])
859  buildvars.write("mpi_inc_path=%s\n"%mpi_inc_path)  buildvars.write("mpi_inc_path=%s\n"%mpi_inc_path)
860  buildvars.write("mpi_lib_path=%s\n"%mpi_lib_path)  buildvars.write("mpi_lib_path=%s\n"%mpi_lib_path)
861  buildvars.write("lapack=%s\n"%env['lapack'])  buildvars.write("lapack=%s\n"%env['lapack'])
 buildvars.write("pyvisi=%d\n"%env['pyvisi'])  
862  buildvars.write("vsl_random=%d\n"%int(env['vsl_random']))  buildvars.write("vsl_random=%d\n"%int(env['vsl_random']))
863  for i in 'netcdf','parmetis','papi','mkl','umfpack','boomeramg','silo','visit':  for i in 'netcdf','parmetis','papi','mkl','umfpack','boomeramg','silo','visit':
864      buildvars.write("%s=%d\n"%(i, int(env[i])))      buildvars.write("%s=%d\n"%(i, int(env[i])))
# Line 806  env.Alias('install_escript', ['build_esc Line 888  env.Alias('install_escript', ['build_esc
888  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'])
889  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'])
890    
   
891  env.Alias('build_dudley', ['install_dudley_headers', 'build_dudley_lib', 'build_dudleycpp_lib'])  env.Alias('build_dudley', ['install_dudley_headers', 'build_dudley_lib', 'build_dudleycpp_lib'])
892  env.Alias('install_dudley', ['build_dudley', 'install_dudley_lib', 'install_dudleycpp_lib', 'install_dudley_py'])  env.Alias('install_dudley', ['build_dudley', 'install_dudley_lib', 'install_dudleycpp_lib', 'install_dudley_py'])
893    
894  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'])
895  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'])
896    
897    env.Alias('build_ripley', ['install_ripley_headers', 'build_ripley_lib', 'build_ripleycpp_lib'])
898    env.Alias('install_ripley', ['build_ripley', 'install_ripley_lib', 'install_ripleycpp_lib', 'install_ripley_py'])
899    
900  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'])
901  env.Alias('install_weipa', ['build_weipa', 'install_weipa_lib', 'install_weipacpp_lib', 'install_weipa_py'])  env.Alias('install_weipa', ['build_weipa', 'install_weipa_lib', 'install_weipacpp_lib', 'install_weipa_py'])
902    
# Line 827  build_all_list += ['build_escript'] Line 911  build_all_list += ['build_escript']
911  build_all_list += ['build_pasowrap']  build_all_list += ['build_pasowrap']
912  build_all_list += ['build_dudley']  build_all_list += ['build_dudley']
913  build_all_list += ['build_finley']  build_all_list += ['build_finley']
914    build_all_list += ['build_ripley']
915  build_all_list += ['build_weipa']  build_all_list += ['build_weipa']
916  if not IS_WINDOWS: build_all_list += ['build_escriptreader']  if not IS_WINDOWS: build_all_list += ['build_escriptreader']
917  if env['usempi']:   build_all_list += ['build_pythonMPI']  if env['usempi']:   build_all_list += ['build_pythonMPI']
# Line 841  install_all_list += ['install_escript'] Line 926  install_all_list += ['install_escript']
926  install_all_list += ['install_pasowrap']  install_all_list += ['install_pasowrap']
927  install_all_list += ['install_dudley']  install_all_list += ['install_dudley']
928  install_all_list += ['install_finley']  install_all_list += ['install_finley']
929    install_all_list += ['install_ripley']
930  install_all_list += ['install_weipa']  install_all_list += ['install_weipa']
931  if not IS_WINDOWS: install_all_list += ['install_escriptreader']  if not IS_WINDOWS: install_all_list += ['install_escriptreader']
932  install_all_list += ['install_pyvisi_py']  install_all_list += ['install_downunder_py']
933  install_all_list += ['install_modellib_py']  install_all_list += ['install_modellib_py']
934  install_all_list += ['install_pycad_py']  install_all_list += ['install_pycad_py']
935  if env['usempi']:   install_all_list += ['install_pythonMPI']  if env['usempi']:   install_all_list += ['install_pythonMPI']
# Line 855  env.Default('install_all') Line 941  env.Default('install_all')
941    
942  ################## Targets to build and run the test suite ###################  ################## Targets to build and run the test suite ###################
943    
 test_msg = env.Command('.dummy.', None, '@echo "Cannot run C/C++ unit tests, CppUnit not found!";exit 1')  
944  if not env['cppunit']:  if not env['cppunit']:
945        test_msg = env.Command('.dummy.', None, '@echo "Cannot run C/C++ unit tests, CppUnit not found!";exit 1')
946      env.Alias('run_tests', test_msg)      env.Alias('run_tests', test_msg)
947  env.Alias('run_tests', ['install_all'])  env.Alias('run_tests', ['install_all'])
948  env.Alias('all_tests', ['install_all', 'run_tests', 'py_tests'])  env.Alias('all_tests', ['install_all', 'run_tests', 'py_tests'])
# Line 872  env.Alias('release_prep', ['docs', 'inst Line 958  env.Alias('release_prep', ['docs', 'inst
958  if not IS_WINDOWS:  if not IS_WINDOWS:
959      try:      try:
960          utest=open('utest.sh','w')          utest=open('utest.sh','w')
961          utest.write(GroupTest.makeHeader(env['PLATFORM']))          utest.write(GroupTest.makeHeader(env['PLATFORM'], prefix))
962          for tests in TestGroups:          for tests in TestGroups:
963              utest.write(tests.makeString())              utest.write(tests.makeString())
964          utest.close()          utest.close()
965          Execute(Chmod('utest.sh', 0755))          Execute(Chmod('utest.sh', 0o755))
966          print("Generated utest.sh.")          print("Generated utest.sh.")
967      except IOError:      except IOError:
968          print("Error attempting to write unittests file.")          print("Error attempting to write unittests file.")

Legend:
Removed from v.3784  
changed lines
  Added in v.3961

  ViewVC Help
Powered by ViewVC 1.1.26