/[escript]/trunk/SConstruct
ViewVC logotype

Diff of /trunk/SConstruct

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

revision 3851 by jfenwick, Wed Feb 29 05:23:30 2012 UTC revision 4078 by jfenwick, Fri Nov 16 07:50:49 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)  # http://www.uq.edu.au
 # http://www.uq.edu.au/esscc  
5  #  #
6  # Primary Business: Queensland, Australia  # Primary Business: Queensland, Australia
7  # Licensed under the Open Software License version 3.0  # Licensed under the Open Software License version 3.0
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)
11    # Development since 2012 by School of Earth Sciences
12    #
13    ##############################################################################
14    
15  EnsureSConsVersion(0,98,1)  EnsureSConsVersion(0,98,1)
16  EnsurePythonVersion(2,5)  EnsurePythonVersion(2,5)
# Line 16  EnsurePythonVersion(2,5) Line 18  EnsurePythonVersion(2,5)
18  import sys, os, platform, re  import sys, os, platform, re
19  from distutils import sysconfig  from distutils import sysconfig
20  from site_init import *  from site_init import *
 import subprocess  
21  from subprocess import PIPE, Popen  from subprocess import PIPE, Popen
22    
23  # 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
# Line 110  vars.AddVariables( Line 111  vars.AddVariables(
111    BoolVariable('visit', 'Enable the VisIt simulation interface', False),    BoolVariable('visit', 'Enable the VisIt simulation interface', False),
112    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),    ('visit_prefix', 'Prefix/Paths to VisIt installation', default_prefix),
113    ('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),  
114    BoolVariable('vsl_random', 'Use VSL from intel for random data', False),    BoolVariable('vsl_random', 'Use VSL from intel for random data', False),
115  # Advanced settings  # Advanced settings
116    #dudley_assemble_flags = -funroll-loops      to actually do something    #dudley_assemble_flags = -funroll-loops      to actually do something
# Line 129  vars.AddVariables( Line 129  vars.AddVariables(
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),
133      ('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)',''),
135      ('pythonincpath','Path to python include files. (You should not need to set this unless your python has moved',''),
136      BoolVariable('BADPYTHONMACROS','Extra \#include to get around a python bug.', True),
137  )  )
138    
139  ##################### Create environment and help text #######################  ##################### Create environment and help text #######################
# Line 140  vars.AddVariables( Line 145  vars.AddVariables(
145  # in default locations.  # in default locations.
146  env = Environment(tools = ['default'], options = vars,  env = Environment(tools = ['default'], options = vars,
147                    ENV = {'PATH': os.environ['PATH']})                    ENV = {'PATH': os.environ['PATH']})
148                      
149    
150    #set the vars for clang
151    def mkclang(env):
152      env['CC']='clang'
153      env['CXX']='clang++'
154                      
155                      
156  if env['tools_names'] != 'default':  if env['tools_names'] != 'default':
157        zz=env['tools_names']
158        if 'clang' in zz:
159            zz.remove('clang')
160            zz.insert(0, mkclang)
161      env = Environment(tools = ['default'] + env['tools_names'], options = vars,      env = Environment(tools = ['default'] + env['tools_names'], options = vars,
162                        ENV = {'PATH' : os.environ['PATH']})                        ENV = {'PATH' : os.environ['PATH']})
163    
# Line 168  if len(vars.UnknownVariables())>0: Line 185  if len(vars.UnknownVariables())>0:
185    
186  #################### Make sure install directories exist #####################  #################### Make sure install directories exist #####################
187    
188  env['BUILD_DIR']=env['build_dir']  env['BUILD_DIR']=Dir(env['build_dir']).abspath
189  prefix=Dir(env['prefix']).abspath  prefix=Dir(env['prefix']).abspath
190  env['incinstall'] = os.path.join(prefix, 'include')  env['incinstall'] = os.path.join(prefix, 'include')
191  env['bininstall'] = os.path.join(prefix, 'bin')  env['bininstall'] = os.path.join(prefix, 'bin')
# Line 247  if env['cc_extra']  != '': env.Append(CF Line 264  if env['cc_extra']  != '': env.Append(CF
264  if env['cxx_extra'] != '': env.Append(CXXFLAGS = env['cxx_extra'])  if env['cxx_extra'] != '': env.Append(CXXFLAGS = env['cxx_extra'])
265  if env['ld_extra']  != '': env.Append(LINKFLAGS = env['ld_extra'])  if env['ld_extra']  != '': env.Append(LINKFLAGS = env['ld_extra'])
266    
267    if env['BADPYTHONMACROS']: env.Append(CXXFLAGS = ' -DBADPYTHONMACROS')
268    
269    if env['usepython3']:
270        env.Append(CPPDEFINES=['ESPYTHON3'])
271    
272  # set up the autolazy values  # set up the autolazy values
273  if env['forcelazy'] == 'on':  if env['forcelazy'] == 'on':
274      env.Append(CPPDEFINES=['FAUTOLAZYON'])      env.Append(CPPDEFINES=['FAUTOLAZYON'])
# Line 328  for key in 'OMP_NUM_THREADS', 'ESCRIPT_N Line 350  for key in 'OMP_NUM_THREADS', 'ESCRIPT_N
350          env['ENV'][key] = 1          env['ENV'][key] = 1
351    
352  env_export=env['env_export']  env_export=env['env_export']
353  env_export.extend(['ESCRIPT_NUM_THREADS','ESCRIPT_HOSTFILE','DISPLAY','XAUTHORITY','PATH','HOME','TMPDIR','TEMP','TMP'])  env_export.extend(['ESCRIPT_NUM_THREADS','ESCRIPT_HOSTFILE','DISPLAY','XAUTHORITY','PATH','HOME','KMP_MONITOR_STACKSIZE','TMPDIR','TEMP','TMP'])
354    
355  for key in set(env_export):  for key in set(env_export):
356      try:      try:
# Line 358  except KeyError: Line 380  except KeyError:
380  if env['pythoncmd']=='python':  if env['pythoncmd']=='python':
381      py_builder = Builder(action = build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)      py_builder = Builder(action = build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)
382  else:  else:
383      py_builder = Builder(action = "scripts/testcomp.py $SOURCE $TARGET", suffix = '.pyc', src_suffix = '.py', single_source=True)      py_builder = Builder(action = env['pythoncmd']+" scripts/py_comp.py $SOURCE $TARGET", suffix = '.pyc', src_suffix = '.py', single_source=True)
384  env.Append(BUILDERS = {'PyCompile' : py_builder});  env.Append(BUILDERS = {'PyCompile' : py_builder});
385    
386  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 397  if conf.CheckFunc('gethostname'): Line 419  if conf.CheckFunc('gethostname'):
419    
420  ######## Python headers & library (required)  ######## Python headers & library (required)
421    
422  python_inc_path=sysconfig.get_python_inc()  #First we check to see if the config file has specified
423  if IS_WINDOWS:  ##Where to find the filae. Ideally, this should be automatic
424      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
425  elif env['PLATFORM']=='darwin':  #Directory
426      python_lib_path=sysconfig.get_config_var('LIBPL')  # Use the python scons is running
427  else:  if env['pythoncmd']=='python':
428      python_lib_path=sysconfig.get_config_var('LIBDIR')      python_inc_path=sysconfig.get_python_inc()
429  #python_libs=[sysconfig.get_config_var('LDLIBRARY')] # only on linux      if IS_WINDOWS:
430  if IS_WINDOWS:          python_lib_path=os.path.join(sysconfig.get_config_var('prefix'), 'libs')
431      python_libs=['python%s%s'%(sys.version_info[0], sys.version_info[1])]      elif env['PLATFORM']=='darwin':
432  else:          python_lib_path=sysconfig.get_config_var('LIBPL')
433      python_libs=['python'+sysconfig.get_python_version()]      else:
434            python_lib_path=sysconfig.get_config_var('LIBDIR')
435    
436        #python_libs=[sysconfig.get_config_var('LDLIBRARY')] # only on linux
437        if IS_WINDOWS:
438            python_libs=['python%s%s'%(sys.version_info[0], sys.version_info[1])]
439        else:
440            python_libs=['python'+sysconfig.get_python_version()]
441    
442  #if we want to use a python other than the one scons is running  #if we want to use a python other than the one scons is running
443  if env['pythoncmd']!='python':  else:
444     py3scons=False   # Is scons running on python3?      initstring='from __future__ import print_function;from distutils import sysconfig;'
445     initstring='from __future__ import print_function;from distutils import sysconfig;'      if env['pythonlibname']!='':
446     if IS_WINDOWS:          python_libs=env['pythonlibname']
447        cmd='print("python%s%s"%(sys.version_info[0], sys.version_info[1]))'      else:   # work it out by calling python    
448     else:          if IS_WINDOWS:
449        cmd='print("python"+sysconfig.get_python_version())'              cmd='print("python%s%s"%(sys.version_info[0], sys.version_info[1]))'
450     p=Popen([env['pythoncmd'], '-c', initstring+cmd], stdout=PIPE)          else:
451     python_libs=p.stdout.readline()              cmd='print("python"+sysconfig.get_python_version())'
452     if type(python_libs)!=str():          p=Popen([env['pythoncmd'], '-c', initstring+cmd], stdout=PIPE)
453        py3scons=True          python_libs=p.stdout.readline()
454        python_libs=python_libs.encode()          if env['usepython3']:       # This is to convert unicode str into py2 string
455     p.wait()              python_libs=python_libs.encode() # If scons runs on py3 then this must be rethought
456     python_libs=python_libs.strip()          p.wait()
457     # Now we know whether we are using python3 or not          python_libs=python_libs.strip()
458     p=Popen([env['pythoncmd'], '-c',  initstring+'print(sysconfig.get_python_inc())'], stdout=PIPE)  
459     python_inc_path=p.stdout.readline()    
460     if py3scons:      # Now we know whether we are using python3 or not
461        p=Popen([env['pythoncmd'], '-c',  initstring+'print(sysconfig.get_python_inc())'], stdout=PIPE)
462        python_inc_path=p.stdout.readline()
463        if env['usepython3']:
464           python_inc_path=python_inc_path.encode()           python_inc_path=python_inc_path.encode()
465     p.wait()        p.wait()  
466     python_inc_path=python_inc_path.strip()      python_inc_path=python_inc_path.strip()
467     if IS_WINDOWS:      if IS_WINDOWS:
468          cmd="os.path.join(sysconfig.get_config_var('prefix'), 'libs')"          cmd="os.path.join(sysconfig.get_config_var('prefix'), 'libs')"
469     elif env['PLATFORM']=='darwin':      elif env['PLATFORM']=='darwin':
470          cmd="sysconfig.get_config_var(\"LIBPL\")"          cmd="sysconfig.get_config_var(\"LIBPL\")"
471     else:      else:
472          cmd="sysconfig.get_config_var(\"LIBDIR\")"          cmd="sysconfig.get_config_var(\"LIBDIR\")"
473    
474     p=Popen([env['pythoncmd'], '-c', initstring+'print('+cmd+')'], stdout=PIPE)      p=Popen([env['pythoncmd'], '-c', initstring+'print('+cmd+')'], stdout=PIPE)
475     python_lib_path=p.stdout.readline()      python_lib_path=p.stdout.readline()
476     if py3scons:      if env['usepython3']:
477        python_lib_path=python_lib_path.decode()          python_lib_path=python_lib_path.decode()
478     p.wait()      p.wait()
479     python_lib_path=python_lib_path.strip()      python_lib_path=python_lib_path.strip()
480    
481    #Check for an override from the config file.
482    #Ideally, this should be automatic
483    #But we need to deal with the case where python is not in its INSTALL
484    #Directory
485    if env['pythonlibpath']!='':
486        python_lib_path=env['pythonlibpath']
487    
488    if env['pythonincpath']!='':
489        python_inc_path=env['pythonincpath']
490    
491    
492  if sysheaderopt == '':  if sysheaderopt == '':
# Line 466  if not conf.CheckFunc('Py_Exit'): Line 506  if not conf.CheckFunc('Py_Exit'):
506      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))
507      Exit(1)      Exit(1)
508    
509  # reuse conf to check for numpy header (optional)  ## reuse conf to check for numpy header (optional)
510  if conf.CheckCXXHeader(['Python.h','numpy/ndarrayobject.h']):  if env['usepython3']:
511      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:  
512      conf.env['numpy_h']=False      conf.env['numpy_h']=False
513    else:
514        if conf.CheckCXXHeader(['Python.h','numpy/ndarrayobject.h']):
515            conf.env.Append(CPPDEFINES = ['HAVE_NUMPY_H'])
516            conf.env['numpy_h']=True
517        else:
518            conf.env['numpy_h']=False
519    
520  # Commit changes to environment  # Commit changes to environment
521  env = conf.Finish()  env = conf.Finish()
# Line 495  env.PrependENVPath(LD_LIBRARY_PATH_KEY, Line 539  env.PrependENVPath(LD_LIBRARY_PATH_KEY,
539    
540  ######## numpy (required)  ######## numpy (required)
541    
542  if env['pythoncmd']=='python':  if not detectModule(env, 'numpy'):
543      try:      print("Cannot import numpy. If it is installed try setting your PYTHONPATH and probably %s"%LD_LIBRARY_PATH_KEY)
544        from numpy import identity      Exit(1)
     except ImportError:  
       print("Cannot import numpy, you need to set your PYTHONPATH and probably %s"%LD_LIBRARY_PATH_KEY)  
       Exit(1)  
 else:  
     p=subprocess.call([env['pythoncmd'],'-c','import numpy'])  
     if p!=0:  
       print("Cannot import numpy, you need to set your PYTHONPATH and probably %s"%LD_LIBRARY_PATH_KEY)  
       Exit(1)  
545    
546  ######## CppUnit (required for tests)  ######## CppUnit (required for tests)
547    
# Line 518  try: Line 554  try:
554  except:  except:
555      env['cppunit']=False      env['cppunit']=False
556    
557  ######## VTK (optional)  ######## sympy (optional)
558    
559  if env['pyvisi']:  if detectModule(env, 'sympy'):
560      try:      env['sympy'] = True
561          import vtk  else:
562          env['pyvisi'] = True      print("Cannot import sympy. Symbolic toolbox and nonlinear PDEs will not be available.")
563      except ImportError:      env['sympy'] = False
         print("Cannot import vtk, disabling pyvisi.")  
         env['pyvisi'] = False  
564    
565  ######## netCDF (optional)  ######## netCDF (optional)
566    
# Line 673  if env['parmetis']: Line 707  if env['parmetis']:
707  ######## gmsh (optional, for tests)  ######## gmsh (optional, for tests)
708    
709  try:  try:
710      import subprocess      p=Popen(['gmsh', '-info'], stderr=PIPE)
     p=subprocess.Popen(['gmsh', '-info'], stderr=subprocess.PIPE)  
711      _,e=p.communicate()      _,e=p.communicate()
712      if e.split().count("MPI"):      if e.split().count("MPI"):
713          env['gmsh']='m'          env['gmsh']='m'
# Line 727  else: Line 760  else:
760      print("          LAPACK:  DISABLED")      print("          LAPACK:  DISABLED")
761  d_list=[]  d_list=[]
762  e_list=[]  e_list=[]
763  for i in 'debug','openmp','netcdf','parmetis','papi','mkl','umfpack','boomeramg','silo','visit','vsl_random':  for i in 'debug','openmp','boomeramg','mkl','netcdf','papi','parmetis','silo','sympy','umfpack','visit','vsl_random':
764      if env[i]: e_list.append(i)      if env[i]: e_list.append(i)
765      else: d_list.append(i)      else: d_list.append(i)
766  for i in e_list:  for i in e_list:
# Line 787  env.SConscript(dirs = ['pasowrap/src'], Line 820  env.SConscript(dirs = ['pasowrap/src'],
820  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)
821  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)
822  env.SConscript(dirs = ['ripley/src'], variant_dir='$BUILD_DIR/$PLATFORM/ripley', duplicate=0)  env.SConscript(dirs = ['ripley/src'], variant_dir='$BUILD_DIR/$PLATFORM/ripley', duplicate=0)
823    env.SConscript(dirs = ['downunder/py_src'], variant_dir='$BUILD_DIR/$PLATFORM/downunder', duplicate=0)
824  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)  
825  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)
826  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)
827    env.SConscript(dirs = ['doc'], variant_dir='$BUILD_DIR/$PLATFORM/doc', duplicate=0)
828  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)
829    
830    
831  ######################## Populate the buildvars file #########################  ######################## Populate the buildvars file #########################
832    
833  # remove obsolete file  # remove obsolete file
# Line 813  except StopIteration: Line 847  except StopIteration:
847      pass      pass
848  boosthpp.close()  boosthpp.close()
849    
850    
851  buildvars=open(os.path.join(env['libinstall'], 'buildvars'), 'w')  buildvars=open(os.path.join(env['libinstall'], 'buildvars'), 'w')
852  buildvars.write("svn_revision="+str(global_revision)+"\n")  buildvars.write("svn_revision="+str(global_revision)+"\n")
853  buildvars.write("prefix="+prefix+"\n")  buildvars.write("prefix="+prefix+"\n")
# Line 823  if env['pythoncmd']=='python': Line 858  if env['pythoncmd']=='python':
858      buildvars.write("python_version="+str(sys.version_info[0])+"."+str(sys.version_info[1])+"."+str(sys.version_info[2])+"\n")      buildvars.write("python_version="+str(sys.version_info[0])+"."+str(sys.version_info[1])+"."+str(sys.version_info[2])+"\n")
859  else:  else:
860      buildvars.write("python="+env['pythoncmd']+"\n")      buildvars.write("python="+env['pythoncmd']+"\n")
861      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)      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)
862      verstring=p.stdout.readline().strip()      verstring=p.stdout.readline().strip()
863      p.wait()      p.wait()
864      buildvars.write("python version="+verstring+"\n")      buildvars.write("python_version="+verstring+"\n")
865  buildvars.write("boost_inc_path="+boost_inc_path+"\n")  buildvars.write("boost_inc_path="+boost_inc_path+"\n")
866  buildvars.write("boost_lib_path="+boost_lib_path+"\n")  buildvars.write("boost_lib_path="+boost_lib_path+"\n")
867  buildvars.write("boost_version="+boostversion+"\n")  buildvars.write("boost_version="+boostversion+"\n")
# Line 836  buildvars.write("mpi=%s\n"%env['mpi']) Line 871  buildvars.write("mpi=%s\n"%env['mpi'])
871  buildvars.write("mpi_inc_path=%s\n"%mpi_inc_path)  buildvars.write("mpi_inc_path=%s\n"%mpi_inc_path)
872  buildvars.write("mpi_lib_path=%s\n"%mpi_lib_path)  buildvars.write("mpi_lib_path=%s\n"%mpi_lib_path)
873  buildvars.write("lapack=%s\n"%env['lapack'])  buildvars.write("lapack=%s\n"%env['lapack'])
 buildvars.write("pyvisi=%d\n"%env['pyvisi'])  
874  buildvars.write("vsl_random=%d\n"%int(env['vsl_random']))  buildvars.write("vsl_random=%d\n"%int(env['vsl_random']))
875  for i in 'netcdf','parmetis','papi','mkl','umfpack','boomeramg','silo','visit':  for i in 'netcdf','parmetis','papi','mkl','umfpack','boomeramg','silo','visit':
876      buildvars.write("%s=%d\n"%(i, int(env[i])))      buildvars.write("%s=%d\n"%(i, int(env[i])))
# Line 866  env.Alias('install_escript', ['build_esc Line 900  env.Alias('install_escript', ['build_esc
900  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'])
901  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'])
902    
   
903  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'])
904  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'])
905    
# Line 908  install_all_list += ['install_finley'] Line 941  install_all_list += ['install_finley']
941  install_all_list += ['install_ripley']  install_all_list += ['install_ripley']
942  install_all_list += ['install_weipa']  install_all_list += ['install_weipa']
943  if not IS_WINDOWS: install_all_list += ['install_escriptreader']  if not IS_WINDOWS: install_all_list += ['install_escriptreader']
944  #install_all_list += ['install_pyvisi_py']  install_all_list += ['install_downunder_py']
945  install_all_list += ['install_modellib_py']  install_all_list += ['install_modellib_py']
946  install_all_list += ['install_pycad_py']  install_all_list += ['install_pycad_py']
947  if env['usempi']:   install_all_list += ['install_pythonMPI']  if env['usempi']:   install_all_list += ['install_pythonMPI']
# Line 920  env.Default('install_all') Line 953  env.Default('install_all')
953    
954  ################## Targets to build and run the test suite ###################  ################## Targets to build and run the test suite ###################
955    
 test_msg = env.Command('.dummy.', None, '@echo "Cannot run C/C++ unit tests, CppUnit not found!";exit 1')  
956  if not env['cppunit']:  if not env['cppunit']:
957        test_msg = env.Command('.dummy.', None, '@echo "Cannot run C/C++ unit tests, CppUnit not found!";exit 1')
958      env.Alias('run_tests', test_msg)      env.Alias('run_tests', test_msg)
959  env.Alias('run_tests', ['install_all'])  env.Alias('run_tests', ['install_all'])
960  env.Alias('all_tests', ['install_all', 'run_tests', 'py_tests'])  env.Alias('all_tests', ['install_all', 'run_tests', 'py_tests'])
# Line 931  env.Alias('build_PasoTests','$BUILD_DIR/ Line 964  env.Alias('build_PasoTests','$BUILD_DIR/
964  ##################### Targets to build the documentation #####################  ##################### Targets to build the documentation #####################
965    
966  env.Alias('api_epydoc','install_all')  env.Alias('api_epydoc','install_all')
967  env.Alias('docs', ['examples_tarfile', 'examples_zipfile', 'api_epydoc', 'api_doxygen', 'user_pdf', 'install_pdf', 'cookbook_pdf'])  env.Alias('docs', ['examples_tarfile', 'examples_zipfile', 'api_epydoc', 'api_doxygen', 'user_pdf', 'install_pdf', 'cookbook_pdf', 'inversion_pdf'])
968  env.Alias('release_prep', ['docs', 'install_all'])  env.Alias('release_prep', ['docs', 'install_all'])
969    
970    
971    # The test scripts are always generated, this target allows us to
972    # generate the testscripts without doing a full build
973    env.Alias('testscripts',[])
974    
975  if not IS_WINDOWS:  if not IS_WINDOWS:
976      try:      try:
977          utest=open('utest.sh','w')          utest=open('utest.sh','w')
978          utest.write(GroupTest.makeHeader(env['PLATFORM'], prefix))          utest.write(GroupTest.makeHeader(env['PLATFORM'], prefix, False))
979          for tests in TestGroups:          for tests in TestGroups:
980              utest.write(tests.makeString())              utest.write(tests.makeString())
981          utest.close()          utest.close()
982          Execute(Chmod('utest.sh', 0o755))          Execute(Chmod('utest.sh', 0o755))
983          print("Generated utest.sh.")          print("Generated utest.sh.")
984            # This version contains only python tests - I want this to be usable
985            # From a binary only install if you have the test files
986            utest=open('itest.sh','w')
987            utest.write(GroupTest.makeHeader(env['PLATFORM'], prefix, True))
988            for tests in TestGroups:
989              if tests.exec_cmd=='$PYTHONRUNNER ':
990                utest.write(tests.makeString())
991            utest.close()
992            Execute(Chmod('itest.sh', 0o755))
993            print("Generated itest.sh.")        
994      except IOError:      except IOError:
995          print("Error attempting to write unittests file.")          print("Error attempting to write unittests file.")
996          Exit(1)          Exit(1)
997    
998      # delete utest.sh upon cleanup      # delete utest.sh upon cleanup
999      env.Clean('target_init', 'utest.sh')      env.Clean('target_init', 'utest.sh')
1000        env.Clean('target_init', 'itest.sh')
1001    
1002      # Make sure that the escript wrapper is in place      # Make sure that the escript wrapper is in place
1003      if not os.path.isfile(os.path.join(env['bininstall'], 'run-escript')):      if not os.path.isfile(os.path.join(env['bininstall'], 'run-escript')):

Legend:
Removed from v.3851  
changed lines
  Added in v.4078

  ViewVC Help
Powered by ViewVC 1.1.26