/[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/finley/SConscript revision 425 by gross, Tue Jan 10 04:10:39 2006 UTC trunk/finley/src/SConscript revision 3400 by caltinay, Mon Dec 6 02:23:07 2010 UTC
# Line 1  Line 1 
 libinstall = None  
1    
2  Import('*')  ########################################################
3    #
4    # Copyright (c) 2003-2010 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  import os  import os
15  import string  Import('*')
16    
17    local_env = env.Clone()
18    py_wrapper_local_env = env.Clone()
19    
20    # Remove the sharedlibrary prefix on all platform - we don't want 'lib'
21    # 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_setCoordinates.c
86        Mesh_tagmaps.c
87        Mesh_write.c
88        NodeFile.c
89        NodeFile_allocTable.c
90        NodeFile_copyTable.c
91        NodeFile_createDenseLabelings.c
92        NodeFile_gather.c
93        NodeFile_scatter.c
94        NodeFile_setCoordinates.c
95        NodeFile_setIdRange.c
96        NodeFile_setTags.c
97        NodeMapping.c
98        Quadrature.c
99        ReferenceElements.c
100        ShapeFunctions.c
101        TagMap.c
102        Util.c
103        ReferenceElementSets.c
104        CPPAdapter/FinleyAdapterException.cpp
105        CPPAdapter/FinleyError.cpp
106        CPPAdapter/MeshAdapter.cpp
107        CPPAdapter/MeshAdapterFactory.cpp
108        CPPAdapter/SystemMatrixAdapter.cpp
109        CPPAdapter/TransportProblemAdapter.cpp
110    """.split()
111    
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        ReferenceElementSets.h
128    """.split()
129    
130    cppadapter_headers = """
131        CPPAdapter/FinleyAdapterException.h
132        CPPAdapter/FinleyError.h
133        CPPAdapter/MeshAdapter.h
134        CPPAdapter/MeshAdapterFactory.h
135        CPPAdapter/SystemMatrixAdapter.h
136        CPPAdapter/TransportProblemAdapter.h
137        CPPAdapter/system_dep.h
138    """.split()
139    
140    local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'])
141    if IS_WINDOWS:
142        local_env.Append(CPPDEFINES = ['FINLEY_EXPORTS'])
143    
144    module_name = 'finley'
145    
146    lib = local_env.SharedLibrary(module_name, sources)
147    env.Alias('build_finley_lib', lib)
148    
149    include_path = Dir('finley', local_env['incinstall'])
150    cppadapter_include_path = Dir('CppAdapter', include_path)
151    
152    hdr_inst1 = local_env.Install(include_path, headers)
153    hdr_inst2 = local_env.Install(cppadapter_include_path, cppadapter_headers)
154    env.Alias('install_finley_headers', [hdr_inst1, hdr_inst2])
155    
156    lib_inst = local_env.Install(local_env['libinstall'], lib)
157    env.Alias('install_finley_lib', lib_inst)
158    
159    ### Python wrapper ###
160    py_wrapper_local_env.Append(LIBS = ['finley', 'escript', 'esysUtils', 'paso'])
161    py_wrapper_name = module_name + 'cpp'
162    py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/finleycpp.cpp')
163    env.Alias('build_finleycpp_lib', py_wrapper_lib)
164    
165    tmp_inst = os.path.join(local_env['pyinstall'], module_name)
166    if IS_WINDOWS:
167        wrapper_ext = '.pyd'
168    else:
169        wrapper_ext = '.so'
170    
171    share_name = os.path.join(tmp_inst, py_wrapper_name+wrapper_ext)
172    mod_inst = py_wrapper_local_env.InstallAs(target=share_name,
173                                              source=py_wrapper_lib[0])
174    env.Alias('install_finleycpp_lib', mod_inst)
175    
176    # configure python module
177    local_env.SConscript(dirs = ['#/finley/py_src'], variant_dir='py', duplicate=0)
178    
179  libname = 'finleycpp'  # configure unit tests
180    local_env.SConscript(dirs = ['#/finley/test'], variant_dir='$BUILD_DIR/$PLATFORM/finley/test', duplicate=0, exports=['py_wrapper_lib'])
181    
 finley_path = str(esysroot) + '/finley/src/finley'  
 finley_cppadapter_path = str(esysroot) + '/finley/src/finley/CPPAdapter'  
 paso_path = str(esysroot) + '/paso/inc'  
 escript_path = str(esysroot) + '/escript/inc'  
 esysUtils_path = str(esysroot) + '/esysUtils/inc'  
   
 esys_lib_path = str(esysroot) + '/lib'  
 mmio_lib_path = str(esysroot) + '/tools/mmio/lib'  
 esysUtils_lib_path = str(esysroot) + '/esysUtils/lib'  
   
 esysUtils_lib = str(esysUtils_lib_path) + '/libesysUtils.a'  
 escript_lib = str(esys_lib_path) + '/libescriptcpp.so'  
 paso_lib = str(esys_lib_path) + '/libpaso.a'  
 mmio_lib = str(mmio_lib_path) + '/libmmio.a'  
   
 cpp_path = [finley_path,  
             finley_cppadapter_path,  
             paso_path,  
             escript_path,  
             esysUtils_path,  
             python_path,  
             boost_path]  
   
 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',  
            'CPPAdapter/FinleyError.cpp',  
            'CPPAdapter/MeshAdapter.cpp',  
            'CPPAdapter/MeshAdapterFactory.cpp',  
            'CPPAdapter/SystemMatrixAdapter.cpp',  
            'CPPAdapter/finleycpp.cpp']  
   
 lib_path = [esys_lib_path,  
             mmio_lib_path,  
             esysUtils_lib_path,  
             boost_lib_path] \  
           + solver_lib_paths  
   
   
 libs = ['escriptcpp',  
         'esysUtils',  
         'paso',  
         'mmio',  
         str(boost_lib),  
         'dl',  
         'util']     \  
        + sys_libs   \  
        + solver_libs  
   
 finley_env = Environment(ENV = os.environ)  
   
 finley_env.Replace(CC = cc)  
 finley_env.Replace(CXX = cxx)  
 finley_env.Replace(CCFLAGS = cc_flags)  
 finley_env.Replace(CXXFLAGS = cxx_flags)  
 finley_env.Replace(SHOBJSUFFIX = '.lo')  
 finley_env.Replace(CPPPATH = cpp_path)  
 finley_env.Replace(LIBPATH = lib_path)  
 finley_env.Replace(LIBS = libs)  
   
 finley_lib = finley_env.SharedLibrary(libname, sources)  
   
 Depends(finley_lib, esysUtils_lib)  
 Depends(finley_lib, escript_lib)  
 Depends(finley_lib, paso_lib)  
 Depends(finley_lib, mmio_lib)  
   
 Default(finley_env.Install(libdir, finley_lib))  
 Default(finley_env.Install(libdir2, finley_lib))  
 if libinstall != None:  
   Default(finley_env.Install(libinstall, finley_lib))  

Legend:
Removed from v.425  
changed lines
  Added in v.3400

  ViewVC Help
Powered by ViewVC 1.1.26