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

Diff of /trunk/finley/src/SConscript

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

trunk/finley/src/finleyC/SConscript revision 191 by jgs, Mon Nov 21 04:10:12 2005 UTC trunk/finley/src/SConscript revision 2041 by phornby, Sat Nov 15 12:45:15 2008 UTC
# Line 1  Line 1 
1  Import('*')  
2    
3    ########################################################
4    #
5    # Copyright (c) 2003-2008 by University of Queensland
6    # Earth Systems Science Computational Center (ESSCC)
7    # http://www.uq.edu.au/esscc
8    #
9    # Primary Business: Queensland, Australia
10    # Licensed under the Open Software License version 3.0
11    # http://www.opensource.org/licenses/osl-3.0.php
12    #
13    ########################################################
14    
15    
16  import os  import os
17  import string  Import('*')
18    
19    local_env = clone_env(env_mpi)
20    py_wrapper_local_env = clone_env(env_mpi)
21    
22    # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
23    del py_wrapper_local_env['SHLIBPREFIX']
24    
25    sources = """
26        Assemble_AverageElementData.c
27        Assemble_CopyElementData.c
28        Assemble_CopyNodalData.c
29        Assemble_LumpedSystem.c
30        Assemble_NodeCoordinates.c
31        Assemble_PDE.c
32        Assemble_PDE_Single2_1D.c
33        Assemble_PDE_Single2_2D.c
34        Assemble_PDE_Single2_3D.c
35        Assemble_PDE_Single2_C.c
36        Assemble_PDE_System2_1D.c
37        Assemble_PDE_System2_2D.c
38        Assemble_PDE_System2_3D.c
39        Assemble_PDE_System2_C.c
40        Assemble_addToSystemMatrix.c
41        Assemble_getAssembleParameters.c
42        Assemble_getSize.c
43        Assemble_gradient.c
44        Assemble_integrate.c
45        Assemble_interpolate.c
46        Assemble_jacobeans.c
47        Assemble_setNormal.c
48        ElementFile.c
49        ElementFile_allocTable.c
50        ElementFile_copyTable.c
51        ElementFile_createColoring.c
52        ElementFile_distributeByRankOfDOF.c
53        ElementFile_gather.c
54        ElementFile_jacobeans.c
55        ElementFile_markNodes.c
56        ElementFile_optimizeOrdering.c
57        ElementFile_relableNodes.c
58        ElementFile_scatter.c
59        ElementFile_setCoordinates.c
60        ElementFile_setNodeRange.c
61        ElementFile_setTags.c
62        Finley.c
63        IndexList.c
64        Mesh.c
65        Mesh_createNodeFileMappings.c
66        Mesh_distributeByRankOfDOF.c
67        Mesh_findMatchingFaces.c
68        Mesh_getPattern.c
69        Mesh_glueFaces.c
70        Mesh_hex20.c
71        Mesh_hex8.c
72        Mesh_joinFaces.c
73        Mesh_markNodes.c
74        Mesh_merge.c
75        Mesh_optimizeDOFDistribution.c
76        Mesh_optimizeDOFLabeling.c
77        Mesh_prepare.c
78        Mesh_print.c
79        Mesh_read.c
80        Mesh_readGmsh.c
81        Mesh_rec4.c
82        Mesh_rec8.c
83        Mesh_relableElementNodes.c
84        Mesh_resolveNodeIds.c
85        Mesh_saveDX.c
86        Mesh_saveVTK.c
87        Mesh_setCoordinates.c
88        Mesh_tagmaps.c
89        Mesh_write.c
90        NodeFile.c
91        NodeFile_allocTable.c
92        NodeFile_copyTable.c
93        NodeFile_createDenseLabelings.c
94        NodeFile_gather.c
95        NodeFile_scatter.c
96        NodeFile_setCoordinates.c
97        NodeFile_setIdRange.c
98        NodeFile_setTags.c
99        NodeMapping.c
100        Quadrature.c
101        ReferenceElements.c
102        ShapeFunctions.c
103        TagMap.c
104        Util.c
105        CPPAdapter/FinleAdapterException.cpp
106        CPPAdapter/FinleyError.cpp
107        CPPAdapter/MeshAdapter.cpp
108        CPPAdapter/MeshAdapterFactory.cpp
109        CPPAdapter/SystemMatrixAdapter.cpp
110        CPPAdapter/TransportProblemAdapter.cpp
111    """.split()
112    headers = """
113        Assemble.h
114        ElementFile.h
115        Finley.h
116        FinleyVersion.h
117        IndexList.h
118        Mesh.h
119        NodeFile.h
120        NodeMapping.h
121        Quadrature.h
122        RectangularMesh.h
123        ReferenceElements.h
124        ShapeFunctions.h
125        TagMap.h
126        Util.h
127        vtkCellType.h
128    """.split()
129    cppadapter_headers = """
130        CPPAdapter/FinleyAdapterException.h
131        CPPAdapter/FinleyError.h
132        CPPAdapter/MeshAdapter.h
133        CPPAdapter/MeshAdapterFactory.h
134        CPPAdapter/SystemMatrixAdapter.h
135        CPPAdapter/TransportProblemAdapter.h
136        CPPAdapter/system_dep.h
137    """.split()
138    
139    local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'] + env['sys_libs'] )
140    
141    if IS_WINDOWS_PLATFORM :
142      local_env.Append(CPPDEFINES = ['FINLEY_EXPORTS'])
143    
144    py_wrapper_local_env.Append(LIBS = ['finley', 'escript', 'esysUtils', 'paso'] + env['sys_libs'] )
145    
146    module_name = 'finley'
147    py_wrapper_name = module_name + 'cpp'
148    
149    lib = local_env.SharedLibrary(module_name, sources)
150    env.Alias('target_finley_so', lib)
151    
152    py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/finleycpp.cpp')
153    env.Alias('target_finleycpp_so', py_wrapper_lib)
154    
155    include_path = Dir('finley', local_env['incinstall'])
156    cppadapter_include_path = Dir('CppAdapter', include_path)
157    
158    tmp1 = local_env.Install(include_path, headers )
159    tmp2 = local_env.Install(cppadapter_include_path, cppadapter_headers )
160    env.Alias('target_install_finley_headers', [tmp1, tmp2])
161    
162    tmp3 = local_env.Install(local_env['libinstall'], lib)
163    env.Alias('target_install_finley_so', tmp3)
164    
165    #windows specific mod
166    tmp_inst = os.path.join(local_env['pyinstall'],module_name)
167    if os.name == 'nt':
168      wrapper_postfix = '.pyd'
169    else:
170      wrapper_postfix = '.so'
171    
172    share_name = os.path.join(tmp_inst,py_wrapper_name+wrapper_postfix)
173    
174    tmp4 = py_wrapper_local_env.InstallAs(target=share_name,
175                                          source=py_wrapper_lib[0])
176    
177    env.Alias('target_install_finleycpp_so', tmp4)
178    
179    # export the lib target since tests will depend on it
180    # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
181    # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
182    dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
183    Export('dep_lib')
184    
185    # Call the python sconscript
186    env.SConscript(dirs = ['#/finley/py_src'], build_dir='py', duplicate=0)
187    
188  escript_path = str(esysroot) + '/escript/inc'  # Call the unit tests SConscript
189  esysUtils_path = str(esysroot) + '/esysUtils/inc'  local_env.SConscript(dirs = ['#/finley/test'], build_dir='#/build/$PLATFORM/finley/test', duplicate=0)
 finley_path = str(esysroot) + '/finley/inc'  
 paso_path = str(esysroot) + '/paso/inc'  
   
 cpp_path = [escript_path,  
             esysUtils_path,  
             finley_path,  
             paso_path,  
             python_path,  
             boost_path]  
   
 lib = 'finleyC'  
 sources = ['Assemble_addToSystemMatrix.c',  
            'Assemble_CopyElementData.c',  
            'Assemble_CopyNodalData.c',  
            'Assemble_getAssembleParameters.c',  
            'Assemble_getSize.c',  
            'Assemble_gradient.c',  
            'Assemble_handelShapeMissMatch.c',  
            'Assemble_integrate.c',  
            'Assemble_interpolate.c',  
            'Assemble_NodeCoordinates.c',  
            'Assemble_PDE.c',  
            'Assemble_PDEMatrix_Single2.c',  
            'Assemble_PDEMatrix_System2.c',  
            'Assemble_PDE_RHS.c',  
            'Assemble_RHSMatrix_Single.c',  
            'Assemble_RHSMatrix_System.c',  
            'Assemble_RobinCondition.c',  
            'Assemble_RobinCondition_RHS.c',  
            'Assemble_setNormal.c',  
            'ElementFile_allocTable.c',  
            'ElementFile.c',  
            'ElementFile_copyTable.c',  
            'ElementFile_gather.c',  
            'ElementFile_improveColoring.c',  
            'ElementFile_markNodes.c',  
            'ElementFile_optimizeDistribution.c',  
            'ElementFile_prepare.c',  
            'ElementFile_relableNodes.c',  
            'ElementFile_scatter.c',  
            'ElementFile_setNodeRange.c',  
            'Finley.c',  
            'IndexList.c',  
            'Mesh.c',  
            'Mesh_findMatchingFaces.c',  
            'Mesh_getPattern.c',  
            'Mesh_glueFaces.c',  
            'Mesh_hex20.c',  
            'Mesh_hex8.c',  
            'Mesh_joinFaces.c',  
            'Mesh_line2.c',  
            'Mesh_line3.c',  
            'Mesh_markNodes.c',  
            'Mesh_merge.c',  
            'Mesh_prepare.c',  
            'Mesh_prepareNodes.c',  
            'Mesh_print.c',  
            'Mesh_read.c',  
            'Mesh_rec4.c',  
            'Mesh_rec8.c',  
            'Mesh_relabelElementNodes.c',  
            'Mesh_resolveNodeIds.c',  
            'Mesh_saveDX.c',  
            'Mesh_saveVTK.c',  
            'Mesh_write.c',  
            'NodeFile_allocTable.c',  
            'NodeFile.c',  
            'NodeFile_copyTable.c',  
            'NodeFile_gatter.c',  
            'NodeFile_scatter.c',  
            'NodeFile_setCoordinates.c',  
            'NodeFile_setIdRange.c',  
            'Quadrature.c',  
            'ReferenceElements.c',  
            'ShapeFunctions.c',  
            'Util.c']  
   
 finleyC_env = Environment(ENV = os.environ)  
   
 finleyC_env.Replace(CC = 'icc')  
 finleyC_env.Replace(CCFLAGS = cc_flags)  
 finleyC_env.Replace(CPPPATH = cpp_path)  
190    
 finleyC_lib = finleyC_env.StaticLibrary(lib, sources)  
 finleyC_env.Install(libdir, finleyC_lib)  

Legend:
Removed from v.191  
changed lines
  Added in v.2041

  ViewVC Help
Powered by ViewVC 1.1.26