From 35f0a9aaae7412df82ddb2f9602728241f3282fa Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Sun, 25 Sep 2011 16:28:09 +0100 Subject: [PATCH] Bug 1137 - mpi module is hard-coded for openmpi --- src/mpi/model/mpi-interface.h | 4 ++++ src/mpi/wscript | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/mpi/model/mpi-interface.h b/src/mpi/model/mpi-interface.h index b4adbe831..d0dc4ef21 100644 --- a/src/mpi/model/mpi-interface.h +++ b/src/mpi/model/mpi-interface.h @@ -28,8 +28,12 @@ #include "ns3/nstime.h" #include "ns3/buffer.h" +#if defined(NS3_OPENMPI) struct ompi_request_t; typedef struct ompi_request_t* MPI_Request; +#elif defined(NS3_MPICH) +typedef int MPI_Request; +#endif namespace ns3 { diff --git a/src/mpi/wscript b/src/mpi/wscript index 24dd7b395..11aabfb01 100644 --- a/src/mpi/wscript +++ b/src/mpi/wscript @@ -6,8 +6,18 @@ from waflib.Errors import WafError def configure(conf): if Options.options.enable_mpi: - if conf.check_cfg(path='mpic++', args='-showme', - package='', uselib_store='MPI', mandatory=False): + # try to detect openmpi installation + mpi = conf.check_cfg(path='mpic++', args='-showme', + package='', uselib_store='MPI', mandatory=False) + if mpi: + conf.env.append_value('DEFINES_MPI', 'NS3_OPENMPI') + else: + # try the MPICH2 flags + mpi = conf.check_cfg(path='mpic++', args='-compile-info -link-info', + package='', uselib_store='MPI', mandatory=False) + if mpi: + conf.env.append_value('DEFINES_MPI', 'NS3_MPICH') + if mpi: conf.env.append_value('DEFINES_MPI', 'NS3_MPI') conf.env['ENABLE_MPI'] = True for libpath in conf.env.LIBPATH_MPI: