/[escript]/trunk-mpi-branch/escript/src/SConscript
ViewVC logotype

Contents of /trunk-mpi-branch/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 682 - (show annotations)
Mon Mar 27 02:43:09 2006 UTC (13 years, 6 months ago) by robwdcock
Original Path: trunk/escript/src/SConscript
File size: 1841 byte(s)
+ NEW BUILD SYSTEM

This commit contains the new build system with cross-platform support.
Most things work are before though you can have more control.

ENVIRONMENT settings have changed:
+ You no longer require LD_LIBRARY_PATH or PYTHONPATH to point to the
esysroot for building and testing performed via scons
+ ACcESS altix users: It is recommended you change your modules to load
the latest intel compiler and other libraries required by boost to match
the setup in svn (you can override). The correct modules are as follows

module load intel_cc.9.0.026
export
MODULEPATH=${MODULEPATH}:/data/raid2/toolspp4/modulefiles/gcc-3.3.6
module load boost/1.33.0/python-2.4.1
module load python/2.4.1
module load numarray/1.3.3


1 Import('*')
2
3 local_env=env.Copy()
4 py_wrapper_local_env=env.Copy()
5 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
6 del py_wrapper_local_env['SHLIBPREFIX']
7
8 lib_name = 'escript'
9 py_wrapper_name = lib_name+'cpp'
10 py_wrapper_source = py_wrapper_name+'.cpp'
11 py_wrapper_lib_name = py_wrapper_name
12
13 src_dir = local_env.Dir('.').srcnode().abspath
14
15 import os
16 filenames = os.listdir(src_dir)
17 sources = [x for x in filenames if os.path.splitext(x)[1] in ['.cpp', '.c']]
18 headers = [x for x in filenames if os.path.splitext(x)[1] in ['.h']]
19 # Filter out sources that should not be in the list automatically
20 sources.remove(py_wrapper_source) # FIXME: should probably refactor the source tree so the python wrapper isn't colocated with c++ sources
21
22
23 local_env.Append(LIBS = [boost_lib, 'esysUtils', sys_libs ])
24 py_wrapper_local_env.Append(LIBS = [boost_lib, lib_name, 'esysUtils', sys_libs ])
25
26 lib = local_env.SharedLibrary(lib_name, sources)
27 py_wrapper_lib = py_wrapper_local_env.SharedLibrary( py_wrapper_lib_name, py_wrapper_source)
28
29 include_path = Dir(lib_name, incinstall)
30
31 local_env.Install(include_path, headers )
32 local_env.Install(libinstall, lib)
33 py_wrapper_local_env.Install(pyinstall+'/escript', py_wrapper_lib)
34
35 # export the lib target since tests will depend on it
36 # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
37 # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
38 dep_lib = [libinstall+'/'+str(x) for x in lib]
39 Export('dep_lib')
40
41 # Call the python sconscript
42 env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
43
44 # Call the unit tests SConscript
45 local_env.SConscript(dirs = ['#/escript/test'], build_dir='#/build/$PLATFORM/escript/test', duplicate=0)

  ViewVC Help
Powered by ViewVC 1.1.26