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

Annotation of /trunk/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 682 - (hide annotations)
Mon Mar 27 02:43:09 2006 UTC (13 years, 3 months ago) by robwdcock
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 jgs 181 Import('*')
2    
3 robwdcock 682 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 jgs 181
8 robwdcock 682 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 jgs 277
13 robwdcock 682 src_dir = local_env.Dir('.').srcnode().abspath
14 jgs 181
15 robwdcock 682 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 jgs 277
22    
23 robwdcock 682 local_env.Append(LIBS = [boost_lib, 'esysUtils', sys_libs ])
24     py_wrapper_local_env.Append(LIBS = [boost_lib, lib_name, 'esysUtils', sys_libs ])
25 jgs 190
26 robwdcock 682 lib = local_env.SharedLibrary(lib_name, sources)
27     py_wrapper_lib = py_wrapper_local_env.SharedLibrary( py_wrapper_lib_name, py_wrapper_source)
28 jgs 481
29 robwdcock 682 include_path = Dir(lib_name, incinstall)
30 jgs 181
31 robwdcock 682 local_env.Install(include_path, headers )
32     local_env.Install(libinstall, lib)
33     py_wrapper_local_env.Install(pyinstall+'/escript', py_wrapper_lib)
34 jgs 277
35 robwdcock 682 # 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 jgs 277
41 robwdcock 682 # Call the python sconscript
42     env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
43 jgs 277
44 robwdcock 682 # 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