Esempio n. 1
0
def get_mpi_flags():
    output = _get_mpi_cmd()
    if not output:
        if sys.platform=='win32': #From Simon Frost
            output = "gcc -L$MPICH_DIR\SDK.gcc\lib -lmpich -I$MPICH_DIR\SDK.gcc\include"
        else:
            output = "cc -L/usr/opt/mpi -lmpi -lelan"

        
    # now get the include, library dirs and the libs to link with.
    flags = string.split(output)
    flags = uniq_arr(flags) # remove repeated values.
    import numpy
    inc_dirs = [(numpy.__str__().split()[-1].split('__init__')[0]+'core/include')[1:]]
    lib_dirs = []
    libs = []
    def_macros = []
    undef_macros = []
    for f in flags:
        if f[:2] == '-I':
            inc_dirs.append(f[2:])
        elif f[:2] == '-L':
            lib_dirs.append(f[2:])
        elif f[:2] == '-l':
            libs.append(f[2:])
        elif f[:2] == '-U':
            undef_macros.append(f[2:])
        elif f[:2] == '-D':
            tmp = string.split(f[2:], '=')
            if len(tmp) == 1:
                def_macros.append((tmp[0], None))
            else:
                def_macros.append(tuple(tmp))
    return {'inc_dirs': inc_dirs, 'lib_dirs': lib_dirs, 'libs':libs,
            'def_macros': def_macros, 'undef_macros': undef_macros}
Esempio n. 2
0
shutil.copy(py_dir+'/'+name+'.py','.')

shutil.copy(py_dir+'/WalkerArray.py','.')


sources = [cpp_dir+'/convert.cpp',cpp_dir+'/functions.cpp',cpp_dir+'/mc.cpp',\
           cpp_dir+'/particle.cpp',cpp_dir+'/QickArray.cpp',\
           cpp_dir+'/random.cpp',cpp_dir+'/walker.cpp',cpp_dir+'/warray.cpp',\
           swig_dir+'/'+name+'_cxx_wrap.cxx',]

if not use_sprng:
    sources += [cpp_dir+'/RngStream.cpp']

include_dirs = [swig_dir,cpp_dir,mpi_include,]
import numpy
include_dirs += [(numpy.__str__().split()[-1].split('__init__')[0]+\
                  'core/include')[1:]]
if use_sprng:
    include_dirs += [sprng_dir]
library_dirs     = [mpi_lib]
libraries    = mpi_libraries+['stdc++']

cpp_files  = list_files(cpp_dir)
swig_files = list_files(swig_dir)
ex_files   = list_files(ex_dir)

extra_objects = [os.path.join(pypar_lib,'mpiext.so')]

if use_sprng:
    extra_objects += [os.path.join(sprng_lib,'libsprng.a')]