/[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 1839 by phornby, Fri Oct 3 02:06:00 2008 UTC
# Line 1  Line 1 
1  Import('*')  
2    ########################################################
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    sources = """
25        Assemble_AverageElementData.c
26        Assemble_CopyElementData.c
27        Assemble_CopyNodalData.c
28        Assemble_LumpedSystem.c
29        Assemble_NodeCoordinates.c
30        Assemble_PDE.c
31        Assemble_PDE_Single2_1D.c
32        Assemble_PDE_Single2_2D.c
33        Assemble_PDE_Single2_3D.c
34        Assemble_PDE_Single2_C.c
35        Assemble_PDE_System2_1D.c
36        Assemble_PDE_System2_2D.c
37        Assemble_PDE_System2_3D.c
38        Assemble_PDE_System2_C.c
39        Assemble_addToSystemMatrix.c
40        Assemble_getAssembleParameters.c
41        Assemble_getSize.c
42        Assemble_gradient.c
43        Assemble_integrate.c
44        Assemble_interpolate.c
45        Assemble_jacobeans.c
46        Assemble_setNormal.c
47        ElementFile.c
48        ElementFile_allocTable.c
49        ElementFile_copyTable.c
50        ElementFile_createColoring.c
51        ElementFile_distributeByRankOfDOF.c
52        ElementFile_gather.c
53        ElementFile_jacobeans.c
54        ElementFile_markNodes.c
55        ElementFile_optimizeOrdering.c
56        ElementFile_relableNodes.c
57        ElementFile_scatter.c
58        ElementFile_setCoordinates.c
59        ElementFile_setNodeRange.c
60        ElementFile_setTags.c
61        Finley.c
62        IndexList.c
63        Mesh.c
64        Mesh_createNodeFileMappings.c
65        Mesh_distributeByRankOfDOF.c
66        Mesh_findMatchingFaces.c
67        Mesh_getPattern.c
68        Mesh_glueFaces.c
69        Mesh_hex20.c
70        Mesh_hex8.c
71        Mesh_joinFaces.c
72        Mesh_markNodes.c
73        Mesh_merge.c
74        Mesh_optimizeDOFDistribution.c
75        Mesh_optimizeDOFLabeling.c
76        Mesh_prepare.c
77        Mesh_print.c
78        Mesh_read.c
79        Mesh_readGmsh.c
80        Mesh_rec4.c
81        Mesh_rec8.c
82        Mesh_relableElementNodes.c
83        Mesh_resolveNodeIds.c
84        Mesh_saveDX.c
85        Mesh_saveVTK.c
86        Mesh_setCoordinates.c
87        Mesh_tagmaps.c
88        Mesh_write.c
89        NodeFile.c
90        NodeFile_allocTable.c
91        NodeFile_copyTable.c
92        NodeFile_createDenseLabelings.c
93        NodeFile_gather.c
94        NodeFile_scatter.c
95        NodeFile_setCoordinates.c
96        NodeFile_setIdRange.c
97        NodeFile_setTags.c
98        NodeMapping.c
99        Quadrature.c
100        ReferenceElements.c
101        ShapeFunctions.c
102        TagMap.c
103        Util.c
104        CPPAdapter/FinleAdapterException.cpp
105        CPPAdapter/FinleyError.cpp
106        CPPAdapter/MeshAdapter.cpp
107        CPPAdapter/MeshAdapterFactory.cpp
108        CPPAdapter/SystemMatrixAdapter.cpp
109        CPPAdapter/TransportProblemAdapter.cpp
110    """.split()
111    headers = """
112        Assemble.h
113        ElementFile.h
114        Finley.h
115        FinleyVersion.h
116        IndexList.h
117        Mesh.h
118        NodeFile.h
119        NodeMapping.h
120        Quadrature.h
121        RectangularMesh.h
122        ReferenceElements.h
123        ShapeFunctions.h
124        TagMap.h
125        Util.h
126        vtkCellType.h
127    """.split()
128    cppadapter_headers = """
129        CPPAdapter/FinleyAdapterException.h
130        CPPAdapter/FinleyError.h
131        CPPAdapter/MeshAdapter.h
132        CPPAdapter/MeshAdapterFactory.h
133        CPPAdapter/SystemMatrixAdapter.h
134        CPPAdapter/TransportProblemAdapter.h
135        CPPAdapter/system_dep.h
136    """.split()
137    
138    local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'] + env['sys_libs'] )
139    py_wrapper_local_env.Append(LIBS = ['finley', 'escript', 'esysUtils', 'paso'] + env['sys_libs'] )
140    
141    lib = local_env.SharedLibrary('finley', sources)
142    env.Alias('target_finley_so', lib)
143    
144    py_wrapper_lib = py_wrapper_local_env.SharedLibrary('finleycpp', 'CPPAdapter/finleycpp.cpp')
145    env.Alias('target_finleycpp_so', py_wrapper_lib)
146    
147    include_path = Dir('finley', local_env['incinstall'])
148    cppadapter_include_path = Dir('CppAdapter', include_path)
149    
150    tmp1 = local_env.Install(include_path, headers )
151    tmp2 = local_env.Install(cppadapter_include_path, cppadapter_headers )
152    env.Alias('target_install_finley_headers', [tmp1, tmp2])
153    
154    tmp3 = local_env.Install(local_env['libinstall'], lib)
155    env.Alias('target_install_finley_so', tmp3)
156    
157    #windows specific mod
158    if os.name == 'nt':
159      tmp4 = py_wrapper_local_env.Install(local_env['pyinstall']+'/finley', py_wrapper_lib)
160    else:
161      tmp4 = py_wrapper_local_env.InstallAs(local_env['pyinstall']+'/finley/finleycpp.so', py_wrapper_lib)
162    env.Alias('target_install_finleycpp_so', tmp4)
163    
164    # export the lib target since tests will depend on it
165    # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
166    # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
167    dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
168    Export('dep_lib')
169    
170    # Call the python sconscript
171    env.SConscript(dirs = ['#/finley/py_src'], build_dir='py', duplicate=0)
172    
173  escript_path = str(esysroot) + '/escript/inc'  # Call the unit tests SConscript
174  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)  
175    
 finleyC_lib = finleyC_env.StaticLibrary(lib, sources)  
 finleyC_env.Install(libdir, finleyC_lib)  

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

  ViewVC Help
Powered by ViewVC 1.1.26