--- a/src/mpi/wscript Sat Sep 24 18:37:22 2011 +0100
+++ b/src/mpi/wscript Sun Sep 25 15:43:30 2011 +0100
@@ -5,30 +5,19 @@
from waflib.Errors import WafError
def configure(conf):
- env = conf.env
- try:
- conf.find_program('mpic++', var='MPI')
- except WafError:
- return
- if Options.options.enable_mpi and conf.env['MPI']:
- p = subprocess.Popen([conf.env['MPI'], '-showme:compile'], stdout=subprocess.PIPE)
- flags = p.stdout.read().rstrip().split()
- p.wait()
- env.append_value("CXXFLAGS_MPI", flags)
-
- p = subprocess.Popen([conf.env['MPI'], '-showme:link'], stdout=subprocess.PIPE)
- flags = p.stdout.read().rstrip().split()
- p.wait()
- env.append_value("LINKFLAGS_MPI", flags)
-
- env.append_value('CXXDEFINES', 'NS3_MPI')
- conf.report_optional_feature("mpi", "MPI Support", True, '')
- conf.env['ENABLE_MPI'] = True
+ if Options.options.enable_mpi:
+ if conf.check_cfg(path='mpic++', args='-showme',
+ package='', uselib_store='MPI', mandatory=False):
+ conf.env.append_value('DEFINES_MPI', 'NS3_MPI')
+ conf.env['ENABLE_MPI'] = True
+ for libpath in conf.env.LIBPATH_MPI:
+ if 'mpi' in libpath:
+ conf.env.append_value('LINKFLAGS_MPI', '-Wl,-rpath='+libpath)
+ conf.report_optional_feature("mpi", "MPI Support", True, '')
+ else:
+ conf.report_optional_feature("mpi", "MPI Support", False, 'mpic++ not found')
else:
- if Options.options.enable_mpi:
- conf.report_optional_feature("mpi", "MPI Support", False, 'mpic++ not found')
- else:
- conf.report_optional_feature("mpi", "MPI Support", False, 'option --enable-mpi not selected')
+ conf.report_optional_feature("mpi", "MPI Support", False, 'option --enable-mpi not selected')
def build(bld):