/[escript]/trunk/SConstruct
ViewVC logotype

Diff of /trunk/SConstruct

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

revision 1391 by gross, Mon Jan 14 03:54:57 2008 UTC revision 1634 by phornby, Sat Jul 12 09:08:33 2008 UTC
# Line 12  Line 12 
12  EnsureSConsVersion(0,96,91)  EnsureSConsVersion(0,96,91)
13  EnsurePythonVersion(2,3)  EnsurePythonVersion(2,3)
14    
   
15  #===============================================================  #===============================================================
16  #   import tools:  #   import tools:
17  import glob  import glob
# Line 216  opts.AddOptions( Line 215  opts.AddOptions(
215    ('cc_flags_debug', 'C compiler flags to use (Debug build)', cc_flags_debug_default),    ('cc_flags_debug', 'C compiler flags to use (Debug build)', cc_flags_debug_default),
216    ('cxx_flags', 'C++ compiler flags to use (Release build)', cxx_flags_default),    ('cxx_flags', 'C++ compiler flags to use (Release build)', cxx_flags_default),
217    ('cxx_flags_debug', 'C++ compiler flags to use (Debug build)', cxx_flags_debug_default),    ('cxx_flags_debug', 'C++ compiler flags to use (Debug build)', cxx_flags_debug_default),
218      ('link_flags', 'Linker flags to use (Release build)', None),
219      ('link_flags_debug', 'Linker flags to use (Debug build)', None),
220    
221    ('omp_flags', 'OpenMP compiler flags to use (Release build)', ''),    ('omp_flags', 'OpenMP compiler flags to use (Release build)', ''),
222    ('omp_flags_debug', 'OpenMP compiler flags to use (Debug build)', ''),    ('omp_flags_debug', 'OpenMP compiler flags to use (Debug build)', ''),
223    ('ar_flags', 'Static library archiver flags to use', None),    ('ar_flags', 'Static library archiver flags to use', None),
# Line 239  opts.AddOptions( Line 241  opts.AddOptions(
241    PathOption('amd_path', 'Path to AMD includes', amd_path_default),    PathOption('amd_path', 'Path to AMD includes', amd_path_default),
242    PathOption('amd_lib_path', 'Path to AMD libs', amd_lib_path_default),    PathOption('amd_lib_path', 'Path to AMD libs', amd_lib_path_default),
243    ('amd_libs', 'AMD libraries to link with', amd_libs_default),    ('amd_libs', 'AMD libraries to link with', amd_libs_default),
244    # ParMETIS
245      ('parmetis_path', 'Path to ParMETIS includes', ''),
246      ('parmetis_lib_path', 'Path to ParMETIS library', ''),
247      ('parmetis_lib', 'ParMETIS library to link with', []),
248  # TRILINOS  # TRILINOS
249    PathOption('trilinos_path', 'Path to TRILINOS includes', None),    PathOption('trilinos_path', 'Path to TRILINOS includes', None),
250    PathOption('trilinos_lib_path', 'Path to TRILINOS libs', None),    PathOption('trilinos_lib_path', 'Path to TRILINOS libs', None),
# Line 292  opts.AddOptions( Line 298  opts.AddOptions(
298    
299  if IS_WINDOWS_PLATFORM:  if IS_WINDOWS_PLATFORM:
300        env = Environment(tools = ['default', 'msvc'], options = opts)        env = Environment(tools = ['default', 'msvc'], options = opts)
301          #env = Environment(tools = ['default', 'intelc'], options = opts)
302  else:  else:
303     if os.uname()[4]=='ia64':     if socket.gethostname().split('.')[0] == 'service0':
304          env = Environment(tools = ['default', 'intelc'], options = opts)
305       elif os.uname()[4]=='ia64':
306        env = Environment(tools = ['default', 'intelc'], options = opts)        env = Environment(tools = ['default', 'intelc'], options = opts)
307        if env['CXX'] == 'icpc':        if env['CXX'] == 'icpc':
308           env['LINK'] = env['CXX'] # version >=9 of intel c++ compiler requires use of icpc to link in C++ runtimes (icc does not). FIXME: this behaviour could be directly incorporated into scons intelc.py           env['LINK'] = env['CXX'] # version >=9 of intel c++ compiler requires use of icpc to link in C++ runtimes (icc does not). FIXME: this behaviour could be directly incorporated into scons intelc.py
# Line 352  except KeyError: Line 361  except KeyError:
361    
362  try:  try:
363     tmp = os.environ['LD_LIBRARY_PATH']     tmp = os.environ['LD_LIBRARY_PATH']
    print tmp  
364     env['ENV']['LD_LIBRARY_PATH'] = tmp     env['ENV']['LD_LIBRARY_PATH'] = tmp
365  except KeyError:  except KeyError:
366     pass     pass
# Line 453  except KeyError: Line 461  except KeyError:
461     useMPI = None     useMPI = None
462  # ========= set compiler flags ===========================================  # ========= set compiler flags ===========================================
463    
 # Can't use MPI and OpenMP simultaneously at this time  
 if useMPI:  
     omp_flags=''  
     omp_flags_debug=''  
   
464  if dodebug:  if dodebug:
465      try:      try:
466        flags = env['cc_flags_debug'] + ' ' + omp_flags_debug        flags = env['cc_flags_debug'] + ' ' + omp_flags_debug
# Line 482  else: Line 485  else:
485          env.Append(CXXFLAGS = flags)          env.Append(CXXFLAGS = flags)
486       except KeyError:       except KeyError:
487          pass          pass
488    
489    # Impassioned plea - please do this sort of thing in the options files.
490  try:  try:
491       if env['CC'] == 'gcc': env.Append(CCFLAGS = "-pedantic-errors -Wno-long-long")       if env['CC'] == 'gcc': env.Append(CCFLAGS = "-pedantic-errors -Wno-long-long")
492  except:  except:
493       pass       pass
494    
495    if dodebug:
496         try:
497            flags = env['link_flags_debug']
498            env.Append(LINKFLAGS = flags)
499         except KeyError:
500            pass
501    else:
502         try:
503            flags = env['link_flags']
504            env.Append(LINKFLAGS = flags)
505         except KeyError:
506            pass
507    
508  # ============= Remember what options were used in the compile =====================================  # ============= Remember what options were used in the compile =====================================
509  if not IS_WINDOWS_PLATFORM:  if not IS_WINDOWS_PLATFORM:
510    env.Execute("/bin/rm -f " + libinstall + "/Compiled.with.*")    env.Execute("/bin/rm -f " + libinstall + "/Compiled.with.*")
# Line 722  try: Line 740  try:
740     epydoc_path = env['epydoc_path']     epydoc_path = env['epydoc_path']
741  except KeyError:  except KeyError:
742     epydoc_path = None     epydoc_path = None
743    # =============== ParMETIS =======================================
744    try:
745       parmetis_path = env['parmetis_path']
746       parmetis_lib_path = env['parmetis_lib_path']
747       parmetis_lib = env['parmetis_lib']
748    except KeyError:
749       parmetis_path = ''
750       parmetis_lib_path = ''
751       parmetis_lib = ''
752    
753    if useMPI and os.path.isdir(parmetis_lib_path):
754       env.Append(CPPDEFINES = [ 'PARMETIS' ])
755       env.Append(CXXDEFINES = [ 'PARMETIS' ])
756       env.Append(CPPPATH = [parmetis_path])
757       env.Append(LIBPATH = [parmetis_lib_path])
758       env.Append(LIBS = parmetis_lib)
759  # =============== PAPI =======================================  # =============== PAPI =======================================
760  try:  try:
761     includes = env['papi_path']     includes = env['papi_path']
# Line 739  except KeyError: Line 773  except KeyError:
773     papi_libs = None     papi_libs = None
774  # ============= set mpi =====================================  # ============= set mpi =====================================
775  if useMPI:  if useMPI:
776     env.Append(CPPDEFINES=['PASO_MPI',])     env.Append(CPPDEFINES=['PASO_MPI', 'MPI_NO_CPPBIND'])
777     try:     try:
778        includes = env['mpi_path']        includes = env['mpi_path']
779        env.Append(CPPPATH = [includes,])        env.Append(CPPPATH = [includes,])
# Line 854  try: Line 888  try:
888  except:  except:
889     global_revision="-1"     global_revision="-1"
890     print "Warning: unable to recover global revsion number."     print "Warning: unable to recover global revsion number."
891    if global_revision == "": global_revision="0"
892  print "Revision number is %s."%global_revision  print "Revision number is %s."%global_revision
893  env.Append(CPPDEFINES = "SVN_VERSION="+global_revision)  env.Append(CPPDEFINES = "SVN_VERSION="+global_revision)
894    
# Line 910  except AttributeError: Line 945  except AttributeError:
945  # Third Party libraries  # Third Party libraries
946  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)
947  # C/C++ Libraries  # C/C++ Libraries
948    env.SConscript(dirs = ['esysUtils/src'], build_dir='build/$PLATFORM/esysUtils', duplicate=0)
949    env.SConscript(dirs = ['escript/src'], build_dir='build/$PLATFORM/escript', duplicate=0)
950  env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0)  env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0)
951  # bruce is removed for now as it doesn't really do anything  # bruce is removed for now as it doesn't really do anything
952  # env.SConscript(dirs = ['bruce/src'], build_dir='build/$PLATFORM/bruce', duplicate=0)  # env.SConscript(dirs = ['bruce/src'], build_dir='build/$PLATFORM/bruce', duplicate=0)
 env.SConscript(dirs = ['escript/src'], build_dir='build/$PLATFORM/escript', duplicate=0)  
 env.SConscript(dirs = ['esysUtils/src'], build_dir='build/$PLATFORM/esysUtils', duplicate=0)  
953  env.SConscript(dirs = ['finley/src'], build_dir='build/$PLATFORM/finley', duplicate=0)  env.SConscript(dirs = ['finley/src'], build_dir='build/$PLATFORM/finley', duplicate=0)
954  env.SConscript(dirs = ['modellib/py_src'], build_dir='build/$PLATFORM/modellib', duplicate=0)  env.SConscript(dirs = ['modellib/py_src'], build_dir='build/$PLATFORM/modellib', duplicate=0)
955  env.SConscript(dirs = ['doc'], build_dir='build/$PLATFORM/doc', duplicate=0)  env.SConscript(dirs = ['doc'], build_dir='build/$PLATFORM/doc', duplicate=0)

Legend:
Removed from v.1391  
changed lines
  Added in v.1634

  ViewVC Help
Powered by ViewVC 1.1.26