/[escript]/trunk/escript/src/SConscript
ViewVC logotype

Diff of /trunk/escript/src/SConscript

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

trunk/escript/src/Data/SConscript revision 352 by jgs, Wed Dec 14 02:21:37 2005 UTC trunk/escript/src/SConscript revision 1837 by phornby, Fri Oct 3 02:03:07 2008 UTC
# Line 1  Line 1 
 libinstall = None  
1    
2  Import('*')  ########################################################
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    ########################################################
13    
14    
15  import os  import os
16  import string  Import('*')
17    
18    local_env = clone_env(env_mpi)
19    py_wrapper_local_env = clone_env(env_mpi)
20    
21    # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
22    del py_wrapper_local_env['SHLIBPREFIX']
23    
24  libname = 'escriptcpp'  sources = """
25        AbstractContinuousDomain.cpp
26        AbstractDomain.cpp
27        AbstractSystemMatrix.cpp
28        AbstractTransportProblem.cpp
29        Data.cpp
30        DataAbstract.cpp
31        DataBlocks2D.cpp
32        DataC.cpp
33        DataConstant.cpp
34        DataEmpty.cpp
35        DataException.cpp
36        DataExpanded.cpp
37        DataFactory.cpp
38        DataMaths.cpp
39        DataTagged.cpp
40        DataTypes.cpp
41        DataVector.cpp
42        DomainException.cpp
43        FunctionSpace.cpp
44        FunctionSpaceException.cpp
45        FunctionSpaceFactory.cpp
46        NullDomain.cpp
47        SystemMatrixException.cpp
48        Taipan.cpp
49        TransportProblemException.cpp
50        Utils.cpp
51        blocktimer.c
52    """.split()
53    headers = """
54        AbstractContinuousDomain.h
55        AbstractDomain.h
56        AbstractSystemMatrix.h
57        AbstractTransportProblem.h
58        BinaryOp.h
59        Data.h
60        DataAbstract.h
61        DataAlgorithm.h
62        DataBlocks2D.h
63        DataC.h
64        DataConstant.h
65        DataEmpty.h
66        DataException.h
67        DataExpanded.h
68        DataFactory.h
69        DataMaths.h
70        DataTagged.h
71        DataTypes.h
72        DataVector.h
73        DomainException.h
74        FunctionSpace.h
75        FunctionSpaceException.h
76        FunctionSpaceFactory.h
77        LocalOps.h
78        NullDomain.h
79        SystemMatrixException.h
80        Taipan.h
81        TransportProblemException.h
82        UnaryFuncs.h
83        UnaryOp.h
84        UtilC.h
85        Utils.h
86        blocktimer.h
87        esysmpi.h
88        system_dep.h
89    """.split()
90    
91    local_env.Append(LIBS = [ 'esysUtils'] + env['sys_libs'] )
92    py_wrapper_local_env.Append(LIBS = [ 'escript', 'esysUtils'] + env['sys_libs'])
93    
94    lib = local_env.SharedLibrary('escript', sources)
95    env.Alias('target_escript_so', lib)
96    
97    py_wrapper_lib = py_wrapper_local_env.SharedLibrary('escriptcpp', 'escriptcpp.cpp')
98    env.Alias('target_escriptcpp_so', py_wrapper_lib)
99    
100    include_path = Dir('escript', local_env['incinstall'])
101    
102    tmp1 = local_env.Install(include_path, headers )
103    env.Alias('target_install_escript_headers', [tmp1])
104    
105    tmp3 = local_env.Install(local_env['libinstall'], lib)
106    env.Alias('target_install_escript_so', tmp3)
107    
108    #windows specific mod
109    if os.name == 'nt':
110      tmp4 = py_wrapper_local_env.Install(local_env['pyinstall']+'/escript', py_wrapper_lib)
111    else:
112      tmp4 = py_wrapper_local_env.InstallAs(local_env['pyinstall']+'/escript/escriptcpp.so', py_wrapper_lib)
113    env.Alias('target_install_escriptcpp_so', tmp4)
114    
115    # export the lib target since tests will depend on it
116    # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
117    # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
118    dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
119    Export('dep_lib')
120    
121  escript_path = str(esysroot) + '/escript/inc'  # Call the python sconscript
122  esysUtils_path = str(esysroot) + '/esysUtils/inc'  env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
123    
124  esysUtils_lib_path = str(esysroot) + '/esysUtils/lib'  # Call the unit tests SConscript
125    local_env.SConscript(dirs = ['#/escript/test'], build_dir='#/build/$PLATFORM/escript/test', duplicate=0)
126    
 esysUtils_lib = str(esysUtils_lib_path) + '/libesysUtils.a'  
   
 cpp_path = [escript_path,  
             esysUtils_path,  
             python_path,  
             boost_path]  
   
 sources = ['AbstractContinuousDomain.cpp',  
            'AbstractDomain.cpp',  
            'AbstractSystemMatrix.cpp',  
            'DataAbstract.cpp',  
            'DataArray.cpp',  
            'DataArrayView.cpp',  
            'DataBlocks2D.cpp',  
            'DataCached.cpp',  
            'DataC.cpp',  
            'DataConstant.cpp',  
            'Data.cpp',  
            'DataEmpty.cpp',  
            'DataExpanded.cpp',  
            'DataFactory.cpp',  
            'DataProf.cpp',  
            'DataTagged.cpp',  
            'DataVariable.cpp',  
            'DataVector.cpp',  
            'FunctionSpace.cpp',  
            'FunctionSpaceFactory.cpp',  
            'NullDomain.cpp',  
            'Taipan.cpp',  
            'escriptcpp.cpp']  
   
 lib_path = [esysUtils_lib_path,  
             boost_lib_path]  
   
 libs = ['esysUtils',  
         str(boost_lib)]  
   
 libs.extend(sys_libs)  
   
 escript_env = Environment(ENV = os.environ)  
   
 escript_env.Replace(CXX = cxx)  
 escript_env.Replace(SHOBJSUFFIX = '.lo')  
 escript_env.Replace(CXXFLAGS = cxx_flags)  
 escript_env.Replace(CPPPATH = cpp_path)  
 escript_env.Replace(LIBPATH = lib_path)  
 escript_env.Replace(LIBS = libs)  
   
 escript_lib = escript_env.SharedLibrary(libname, sources)  
   
 Depends(escript_lib, esysUtils_lib)  
   
 Default(escript_env.Install(libdir, escript_lib))  
 Default(escript_env.Install(libdir2, escript_lib))  
 if libinstall != None:  
   Default(escript_env.Install(libinstall, escript_lib))  

Legend:
Removed from v.352  
changed lines
  Added in v.1837

  ViewVC Help
Powered by ViewVC 1.1.26