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}
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')]